赞
踩
人工管理阶段 → 文件系统阶段 → 数据库系统阶段及其发展过程 → 云数据库
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
R(D1,D2...Dn)
(是笛卡尔积的有限子集)集合{ }
D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}
; 其中每一个元素(d1,d2,…,dn)称为元组(t);元素中的每一个值di叫作一个分量数据模型三要素
① 数据结构:关系(二维表)(关系可以有三种类型的表:基本关系、查询表、视图表)
② 关系操作:关系代数、关系演算、关系数据库的标准语言SQL(DDL/DML/DCL)
③ 关系的完整性约束:实体完整性、参照完整性、用户自定义的完整性
关系的性质
① 列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。
② 不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。
③ 列的次序可以任意交换。
④ 任意两个元组不能完全相同。
⑤ 行的次序可以任意交换。
⑥ 分量必须取原子值,即每一个分量都必须是不可分的数据项。
关系模式 关系的名称和关系的属性集 (主键要用下划线标出) R(U) / R(A1,A2,...,An)
E-R图的四个主要部分:
①实体集,用矩形表示。
②属性,用椭圆形表示。
③联系,用菱形或三角形表示。
④直线,表示联系的类型及实体与实体之间的联系;多端用无箭头的直线,一端用有箭头的直线
实体到关系模式的转换:将实体的名称作为关系的名称,将实体的属性作为关系的属性,并用下划线标识出主属性。
①若实体间联系是1:1,可以在两个实体转换成的两个关系模式后,在其中任意一个关系模式的属性集中加入另一个关系模式的主键和联系自身的属性。也就是说1:1联系不单独转换为一个独立的关系。
②若实体间联系是1:N,则在N端实体转换成的关系模式中加入1端实体的主键和联系的属性。同样1:N联系也不独立构成一个关系。
③若实体间联系是M:N,则将联系转换成一个关系模式,其属性为两端实体的主键加上联系自身的属性,而联系关系的主键为一复合键,通常包含两端实体主键。
子类与超类——E/R图中“属于”联系到关系的转换
假若A类实体和B类实体之间是“属于”关系,这里假定为B属于A,为了表示出A和B之间的关系,用一种称为“属于”(“isa”)的特殊联系将实体集A和B相连。 “isa“联系用三角形表示,尖端指向A类实体集,底边指向B类实体集,三角形中还要写上”isa”的字样。A类实体和B类实体也称为超类和子类。
子类与超类有两个性质:
① 子类与超类之间具有继承性特点,即子类实体继承超类实体的所有属性。但子类实体本身还可以包含比超类实体更多的属性。
② 这种继承性是通过子类实体和超类实体有相同的实体标识符实现的。
例:
![]() |
![]() |
![]() |
![]() |
数据库设计中可能存在的问题:
数据冗余、修改异常、删除异常、插入异常
部分函数依赖和传递依赖是产生数据冗余和更新异常的主要根源
函数依赖:数据表中各个属性的依赖关系
设有关系模式R(U),X和Y是属性集U的子集,函数依赖(Functional Dependency,简记为FD)是形为X→Y的一个命题,只要r是R的当前关系,对r中任意两个元组t和s,都有t[X]=s[X]蕴涵t[Y]=s[Y],那么称FD X→Y在关系模式R(U)中成立
完全函数依赖与部分函数依赖:主要强调的是主键与非主属性之间的关系
对于函数依赖W→A,如果存在V包含于W(V是W的真子集)而函数依赖V包含于A成立,则称A部分依赖(Partial Dependency)于W;否则,若不存在这种V,则称A完全函数依赖(Full Dependency)于W
传递函数依赖
对于函数依赖X→Y,如果Y ←\ X(X不函数依赖于Y),而函数依赖Y→Z成立,则称Z传递函数依赖于X(Transitive Dependency)
范式(Normal Form,NF):符合某一规范级别的关系模式的集合。共有7种范式:1NF - 2NF - 3NF - BCNF - 4NF - 5NF - 6NF
范式 | 定义 | 备注 |
---|---|---|
第一范式 | 一个关系模式R的所有属性都是不可再分的基本数据项 | 基本要求 |
第二范式 | R属于1NF,且每个非主属性都完全函数依赖于主键 | 单个属性作为主键的一定是2NF |
第三范式 | R属于1NF,且每个非主属性都不传递依赖于主键 | |
BC范式 | R属于1NF,且每个属性都不传递依赖于主键 | 决定因素必须包含键码 |
例:
1NF: student(snum,sname,sdept,mname,cname,grade)
2NF: R1(snum,sname,sdept,mname) - R2 (snum,cname,grade)
3NF: R2 (snum,cname,grade) - R11(snum,sname,sdept)- R12(sdept,mname)
BCNF: R2 (snum,cname,grade) - R11(snum,sname,sdept)- R12(sdept,mname)
![]() |
![]() |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。