1 / 77

数据库系统概论

数据库系统概论. 关系数据库. 概述. 关系数据库系统是支持关系模型的数据库系统。 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 关系操作的特点是集合操作方式,关系数据语言分为三类: 关系代数语言:如 ISBL 关系演算语言:分为元组关系演算语言(如 Aplha , Quel )和域关系演算语言(如 QBE ) 具有关系代数和关系演算双重特点的语言:如 SQL. 关系数据结构及形式化定义 (1). 关系中几个基本概念 域:一组具有相同数据类型的值的集合。值的个数称为域的基数。用 D 来表示。

Download Presentation

数据库系统概论

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 数据库系统概论 关系数据库 数据科系统概论—关系数据库

  2. 概述 • 关系数据库系统是支持关系模型的数据库系统。 • 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 • 关系操作的特点是集合操作方式,关系数据语言分为三类: • 关系代数语言:如ISBL • 关系演算语言:分为元组关系演算语言(如Aplha,Quel)和域关系演算语言(如QBE) • 具有关系代数和关系演算双重特点的语言:如SQL 数据科系统概论—关系数据库

  3. 关系数据结构及形式化定义(1) • 关系中几个基本概念 • 域:一组具有相同数据类型的值的集合。值的个数称为域的基数。用D来表示。 • 笛卡尔积:给定一组域D1 ,D2, …,Dn,笛卡尔积D1×D2×…×Dn={(d1,d2, …,dn)|di∈Di,i=1,2, …,n} • 其中每一个元素 (d1,d2, …,dn) 叫一个n元组,简称元组 • 元组中的每个值di叫作一个分量。 数据科系统概论—关系数据库

  4. 关系数据结构及形式化定义(2) • 例: D1=男人集合MAN={王兵,李平,张英} D2=女人集合WOMAN={丁梅,李芳} D3=儿童集合CHILD={王一,李一,李二} D1×D2×D3 ={(王兵,丁梅,王一),(王兵,丁梅,李一),(王兵,丁梅,李二),…} 18组 • 若Di(i=1,2, …,n)为有限集,其基数为mi(i=1,2, …,n),则D1×D2×…×Dn的基数M为: n M= ∏ mi i=1 数据科系统概论—关系数据库

  5. 关系数据结构及形式化定义(3) • 关系: D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的关系, 表示为 R(D1,D2,…,Dn),R为关系名,n是关系的目或度。n=1:单元关系;n=2:二元关系。 n目关系必有n个属性。 关系 FAMILY(MAN,WOMAN,CHILD) 数据科系统概论—关系数据库

  6. 关系数据结构及形式化定义(4) • 注:构造关系时,不同属性可来自同一个域。如: 成人PERSON={王兵,李平,张英,丁梅,李芳} CHLID={王一,李一,李二} 这样就需要在模式中给以映象,说明这个属性来自某一域,如: Dom(MAN)= Dom(WOMAN)=PERSON 数据科系统概论—关系数据库

  7. 关系数据结构及形式化定义(5) • 候选码(键)(Candidate key):关系中的某一属性组能唯一的标识一个元组,则该属性组为候选码。 • 主码(键)(Primary key):若一关系有多个候选码则选其中一个为主码。 • 主属性:主码的诸属性称为主属性。 • 非码属性:不包含在任何候选码中的属性。 STUDENT(姓名,学号,性别,出生年份,籍贯,系别,入学年份) • 全码:关系模式所有属性组是该关系模式的候选码 SUPPLY(供应商,零件名,项目名) 数据科系统概论—关系数据库

  8. 关系数据结构及形式化定义(6) • 关系的三种类型 • 基本关系(基本表或基表):是实际存在的表,是实际存储数据的逻辑表示 • 查询表:是查询结果对应的表 • 视图表:是由基本表或其他视图表导出的表,是虚表 数据科系统概论—关系数据库

  9. 关系数据结构及形式化定义(7) • 关系的性质 • 列是同质的 • 不同的列可出自同一个域 • 列的顺序无所谓 • 任意两个元组不能完全相同 • 行的顺序无所谓 • 每一个分量都必须是不可分的数据项 数据科系统概论—关系数据库

  10. 关系数据结构及形式化定义(8) • 关系模式:关系的描述称为关系模式,形式化的表示为:R(U, D, dom, F) 简记为R(U)或R(A1, A2, …, An) • 例:定义学生与课程关系模式及主码如下: • S(Sno, Sname, SD, SA) Key(Sno) • C(Cno, Cname, Pcno) Key(Cno) dom(PCno)=Cno • SC(Sno, Cno, Grade) Key(Sno, Cno) 数据科系统概论—关系数据库

  11. 关系数据结构及形式化定义(9) • 关系数据库:用于描述系统的一组关系模式的总称。 • 型:对数据库的描述,包括若干域的定义及在这些域上定义 的若干关系模式。 • 值:这些关系模式在某一时刻对应的关系的集合。 数据科系统概论—关系数据库

  12. 关系的完整性—实体完整性 • 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。 对该规则的说明: • 实体完整性规则是针对基本关系而言的。 • 现实世界中的实体是可区分的,即它们具有某中唯一性标识。 • 关系模型中以主码作为唯一性标识 • 主码中的属性即主属性不能取空值。空值就是“不知道”或“无意义”的值。 数据科系统概论—关系数据库

  13. 参照完整性(1) • 参照完整性约束是不同关系之间或同一关系的不同元组之间的约束。 • 外码:设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码KS相对应,则称F是基本关系R的外码。基本关系R为参照关系,基本关系S为被参照关系。 • S的主码KS和参照关系的外码F必须在同一个域上 • 基本关系S和R不一定是不同的关系 数据科系统概论—关系数据库

  14. 参照完整性(2) • 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码KS相对应,则R中的每个元组在F上的值必须为: • 或者为空值(F的每个属性值均为空值) • 或者等于S中某个元组的主码值。 数据科系统概论—关系数据库

  15. 参照完整性(3) • 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名) • 学生(学号,姓名,性别,专业号,年龄) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩) • 学生(学号,姓名,性别,专业号,年龄,班长学号) 数据科系统概论—关系数据库

  16. 用户定义的完整性 • 是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求,也称为域完整性约束。 数据科系统概论—关系数据库

  17. 关系代数 • 关系代数是一种抽象的查询语言,是关系数据操纵语言的传统表达方式,是用对关系的运算来表达查询的。 • 运算的三要素:运算对象、运算符和运算结果 • 关系代数运算符包括:集合运算符、专门的关系运算符、比较运算符和逻辑运算符四类。 • 据运算符的不同,关系代数的运算可分为:传统的集合运算和专门的关系运算两类。 数据科系统概论—关系数据库

  18. 传统的集合运算—简介 • 传统的集合运算包括并、差、交、广义笛卡尔积四种运算。 • 特点: • 除乘积外,关系R和关系S具有相同的目n,且相应的属性取自同一个域,属性名可不同。 • 二目运算 。 • 是从关系的水平方向进行的运算。 数据科系统概论—关系数据库

  19. 传统的集合运算—并 • 并(∪): R∪S={t|t∈R∨t∈S},由属于R或属于S的元组组成,结果为n目关系 R S R∪S 数据科系统概论—关系数据库

  20. 传统的集合运算—差 • 差(-): R-S={t|t∈R∧t∈S},由属于R而不属于S的元组组成,结果为n目关系 R S R-S 数据科系统概论—关系数据库

  21. 传统的集合运算—交 • 交(∩): R∩S={t|t∈R∧t∈S},由既属于R又属于S的元组组成,结果为n目关系 R S R∩S 数据科系统概论—关系数据库

  22. 传统的集合运算—广义笛卡尔积 • 广义笛卡尔积(×):两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组,若R有k1个元组,S有k2个元组,则它们的广义笛卡尔积有k1×k2个元组。 R×S= {trts|tr∈R∧ts∈S} 数据科系统概论—关系数据库

  23. 广义笛卡尔积 R×S R S 数据科系统概论—关系数据库

  24. 专门的关系运算——几个记号 • 元组:设关系模式为R(A1,A2,…,An),它的一个关系设为R, t∈R表示t是R的一个元组, t[Ai]表示元组t中相对应于属性Ai的一个分量。 • 若A={Ai1,Ai2,…,Aik}, 其中Ai1,Ai2,…,Aik是 A1,A2,…,An中的一部分,则A称为属性列或域列。t[A] =(t[Ai1],t[Ai2],…, t[Aik])表示元组t在属性列A上诸分量的集合。A则表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余属性组。 数据科系统概论—关系数据库

  25. 专门的关系运算—几个记号 • R为n目关系, S为m目关系, tr∈R,ts∈S, trts称为元组的连接。它是一个n+m列的元组,前n个分量是R中的一个n元组,后m个分量是S中的一个m元组。 • 给定一个关系R(X,Z), X和Z为属性组。定义当t[X]=x时,x在R中的象集为: Zx={t[Z]|t∈R ,t[X]=x} 表示R中属性组X上值为x的诸元组在Z上的分量的集合。 数据科系统概论—关系数据库

  26. 专门的关系运算—选择 • 又称为限制,是在关系中选择满足条件的诸元组,记作:σF(R)={t|t∈R∧F(t)=‘真’},是从关系的水平方向进行运算。 • 例1 查询信息系全体学生 σSdept=‘IS’(Student) or σ5=‘IS’(Student) • 例2 查询年龄小于20的学生 σSage<20(Student) or σ4<20(Student) 数据科系统概论—关系数据库

  27. 专门的关系运算—投影 • 从关系R中选择出若干属性列组成新的关系。记作:πA(R)={t[A]| t∈R} 是从关系的垂直方向进行的运算。结果要取消重复的元组。 • 例1 查询学生的姓名和所在系 πSname,Sdept(Student) or π2,5(Student) • 例2 查询学生关系中所有的系 πSdept(Student) 数据科系统概论—关系数据库

  28. 专门的关系运算—连接 • 从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作: R AθB S={trts|tr∈R∧ts∈S∧ tr[A]θts[B]} • A和B分别为R,S上度数相等且可比的属性列 • θ为比较运算符 • 等值连接:θ取“=”的连接运算,是从广义笛卡尔积中选取A、B属性值相等的元组。 R A=B S={trts|tr∈R∧ts∈S∧ tr[A]=ts[B]} 数据科系统概论—关系数据库

  29. 专门的关系运算—连接 • 自然连接:特殊的等值连接。要求两关系中进行比较的分量具有相同的属性组,且在结果中去掉重复的属性列 。 记作: R S={trts|tr∈R∧ts∈S∧tr[B]=ts[B]} • 注:一般连接是从关系的水平方向运算,自然连接不仅从水平方向,且从垂直方向运算。 数据科系统概论—关系数据库

  30. 数据科系统概论—关系数据库

  31. 笛卡儿积、等值连接和自然连接三者之间的区别笛卡儿积、等值连接和自然连接三者之间的区别 • 设关系R的元数为r,元组个数为m;关系S的元数为s,元组个数为n, • 那么,R ×S的元数为r+s,元组个数为m ×n • R A=B S的元数也是r+s,但元组个数小于等于m ×n • R S的元数小于等于r+s,元组个数小于等于m ×n 数据科系统概论—关系数据库

  32. 专门的关系运算—除 • 给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。结果是满足下列条件的元组在X属性列上的投影:元组在X上的分量值x的象集YS包含S在Y上的投影的集合。 R÷S={tr[X]|tr∈R∧πy(S) Yx} • 除是同时从行和列的角度进行运算。 • 除的结果集的属性组为X。 数据科系统概论—关系数据库

  33. R S R÷S a1的象集{(b1,c2),(b2,c3),(b2,c1)} a2的象集{(b3,c7),(b2,c3)} a3的象集{(b4,c6)} a4的象集{(b6,c6)} S在(B,C)上的投影为: {(b1,c2),(b2,c3),(b2,c1)} 数据科系统概论—关系数据库

  34. 专门的关系运算—综合应用 • 查询至少选修1号和3号课程的学生号码。 首先建立一临时关系K πSno,Cno(SC) ÷K • 查询选修了2号课程的学生的学号 πSno (σCno=‘2’ (SC)) 数据科系统概论—关系数据库

  35. 专门的关系运算—综合应用 • 查询至少选修一门直接先行课为5号的姓名 πSname (σCpno=‘5’(Course) SC πSno,Sname(Student)) • 查询选修了全部课程的学生号码和姓名 πSno,cno(SC)÷πcno(Course) πSno,Sname (Student)) 数据科系统概论—关系数据库

  36. 注意的几个问题 • 关系代数的五种基本操作为:并、差、笛卡尔积、投影和选择,其他操作都可由其导出。如 R∩S= R-(R-S) OR R∩S=S-(S-R) • 关系代数在使用的过程中对于只涉及选择、投影、连接的查询可用表达式: πA1, A2,… ,Ak(σF(S R) or πA1, A2,… ,Ak(σF(S×R) 数据科系统概论—关系数据库

  37. 注意的几个问题 • 对于否定操作,一般用差操作表示。不用: πSname (σCname≠ ‘操作系统’(S SC C))而用: πSname (S)-πSname (σCname= ‘操作系统’(S SC C)) • 对于检索具有全部特征的操作一般用除法。 不用:πSno,cno(SC÷πcno(C)) 而用:πSno,cno(SC)÷πcno(C) 数据科系统概论—关系数据库

  38. 2.3 关系演算 数据科系统概论—关系数据库

  39. 元组关系演算 • 形式化定义 { t | P(t)} 表示所有使谓词P为真的元组集合 • t为元组变量 • 如果元组变量前有“全称”()或“存在”()量词,则称其为约束变量,否则称为自由变量 • P是公式 • 由原子公式和运算符组成 数据科系统概论—关系数据库

  40. 元组关系演算 • 原子公式 • s∈R • s是关系R中的一个元组 • s[x]  u[y] • s[x]与u[y]为元组分量,他们之间满足比较关系 • s[x]  c • 分量s[x]与常量c之间满足比较关系 数据科系统概论—关系数据库

  41. 元组关系演算 • 公式的递归定义 • 原子公式是公式 • 如果P是公式,那么┑P也是公式 • 如果P1 , P2是公式,则P1P2 , P1 P2 , P1 P2也是公式 • 如果P(t)是公式,R是关系,则tR (P(t))和tR (P(t))也是公式 数据科系统概论—关系数据库

  42. 元组关系演算 • 公式的等价性 • P1P2 ┑(┑P1 ┑P2) •  tR (P(t)) ┑t R (┑P(t)) • P1 P2 ┑P1 P2 数据科系统概论—关系数据库

  43. 元组关系演算 R S { t | t  S  t[A] >2} { t | t  R  ┑tS } 数据科系统概论—关系数据库

  44. 元组关系演算 { t | tS uR(t[C] < u[B])} { t | tR uS(t[C] < u[A])} { t | vS(uR(u[A]>v[B]  t[A]=u[B] t[B]=v[C] t[C]=u[A]))} 数据科系统概论—关系数据库

  45. 元组关系演算 • 表达式的安全性 • 元组关系演算有可能会产生无限关系,这样的表达式是不安全的 如{t | ┑(t  R)},求所有不在R中的元组 • 引入公式P的域概念,用dom(P)表示 dom(P) = 显式出现在P中的值 + 在P中出现的关系的元组中出现的值(不必是最小集) 如dom ( t | ┑(t  R) )是R中出现的所有值的集合 • 如果出现在表达式{t | P(t)}结果中的所有值均来自dom(P),则称{t | P(t)}是安全的 数据科系统概论—关系数据库

  46. 元组关系演算 { t |┑(t R) } R dom(┑(t R)) = {{A1 , A2} , {B1 , B2 , B3}} 数据科系统概论—关系数据库

  47. 元组关系演算 • 示例 • 找出工资在800元以上的老师 {t | tPROF  t[SAL] > 800} • 找出工资在800元以上的老师的姓名 {t | sPROF ( t[PNAME]  s[PNAME] s[SAL] > 800 )} • 给出计算机系老师的姓名 {t | uDEPT ( u[DNAME] = “计算机系”  sPROF ( s[DNO] = u[DNO]  t[PNAME]  s[PNAME] ))} 数据科系统概论—关系数据库

  48. 元组关系演算 • 求选修了全部课程的学生号 {t | uC ( sSC ( s[CNO] = u[CNO]  t[SNO]  s[SNO] ))} • 求选修了张军同学所选修的全部课程的学生姓名 课程,张军选之  所求同学选之 {t | uC ( sSC  wS ( s[CNO] = u[CNO]  w[SNO]  s[SNO]  w[SNAME] = “张军” )) 数据科系统概论—关系数据库

  49. 元组关系演算 • 元组关系演算与关系代数的等价性 • 投影 ∏A( R ) = { t | sR ( s[A] = t[A] ) } • 选择 F(A)(R) = { t | tR  F(t[A]) } • 广义笛卡儿积 R(A)  S(B) = { t | uRsS( t[A] = u[A]  t[B] = s[B])} • 并 RS={ t | tR tS} • 交 RS={ t | tR ┑tS} 数据科系统概论—关系数据库

  50. 域关系演算 • 形式化定义 { < x1 , x2 , … , xn > | P( x1 , x2 , … , xn)} xi代表域变量,P为由原子构成的公式 • 原子公式 • < x1 , x2 , … , xn >  R • xi是域变量或域常量 • x  y • 域变量x与y之间满足比较关系 • x  c • 域变量x与常量c之间满足比较关系 数据科系统概论—关系数据库

More Related