第二章-3逻辑结构设计

上传人:开*** 文档编号:60834904 上传时间:2018-11-19 格式:PPT 页数:73 大小:380.50KB
返回 下载 相关 举报
第二章-3逻辑结构设计_第1页
第1页 / 共73页
第二章-3逻辑结构设计_第2页
第2页 / 共73页
第二章-3逻辑结构设计_第3页
第3页 / 共73页
第二章-3逻辑结构设计_第4页
第4页 / 共73页
第二章-3逻辑结构设计_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《第二章-3逻辑结构设计》由会员分享,可在线阅读,更多相关《第二章-3逻辑结构设计(73页珍藏版)》请在金锄头文库上搜索。

1、2.5 数据库逻辑模型设计,目标:将数据库概念结构转化为特定DBMS可处理的数据库的逻辑结构。,基本步骤: (1) 初始逻辑数据库模式转换,根据若干规则进行; (2) 规范化处理 (3) 模式评价 (4) 模式修正,2.5.1 关系数据模型,关系模型的理论基础是集合论,是用集合代数定义一个关系。 定义1:域(Domain)是一组具有相同数据类型的值的集合。 定义2:设D1, D2, Dn为一组域, D1, D2, ,Dn 上的笛卡尔积定义为: D1 D2 Dn = (d1, d2, dn) | di Di,i =1,2,n 笛卡尔积是一个集合,集合中的每一个元素(d1, d2, dn) 称为一

2、个n元组,简称元组。元组中的每个值叫做一个分量。 定义3: D1 D2 Dn笛卡尔积的子集叫做在域D1,D2, Dn上的关系(Relation)。用R(D1,D2, Dn)表示,R是关系名。,关系是在一组域( D1,D2, Dn)上的笛卡尔积的一个子集。当n=1时,称为单元关系;当n=2时,称为二元关系。 关系是一个二维表,表的每一行对应一个元组,表的每列对应一个域,由于域可以相同,为了区分给每个列起一个名字,称为属性。 对关系的描述称为关系模式,该描述包括关系名、关系中的属性名、域、属性向域的映象、属性间的数据依赖关系等,可以形式化的表示为:R(U,F)或R(U)。 其中R为关系名,U为组成

3、该关系的属性名集合,F为属性间的数据依赖关系集合。属性向域的映象通常直接说明为属性的类型、长度、取值范围等。,有三个域:男人、女人和儿童。其取值为:男人(张三,李四),女人(王,吴),儿童(张一,李二)。 其笛卡尔积:男人女人儿童共有8个元组,可以列成一张表: (张三,王,张一),(李四,王,张一), (张三,王,李二),(李四,王,李二), (张三,吴,张一),(李四,吴,张一), (张三,吴,李二),(李四,吴,李二)。,家庭(丈夫,妻子,小孩)。该关系中的属性名就用域名,关系形成的二维表如下:,关系是笛卡尔积中有一定意义的、有限的子集。,属性,元组 行 记录,列,在关系数据库中的关系有如

4、下性质: 同一列来自同一个域。 不同的列可以出自相同的域,必须有不同的属性名。 不能有完全相同的元组存在。 关系中元组的顺序无关。 关系中列的顺序无关。 每个属性值必须是不可再分的数据项。,完整性约束规则 候选键:关系模式R(U)的属性集合K是候选键,满足: (1) R(U)的任何一个关系实例的任意两个元组在属性集合K上的值都不相同; (2) K的任何真子集都不满足条件(1)。 以上被称为候选键的两性质:唯一性,最小性。 相关概念:主键/关键字;键(主)属性;非键(非主)属性;,1 实体完整性约束: 若A是关系模式R(U)的主键属性,则R(U)的任何一个实例关系不存在任何元组在A上的值为空。,

5、例: Student ( NO, Name, Sex, Age, Class, DeptNO ) , Course ( Cno, Cname, Dept ) , S_C (NO, Cno, Grade),2 关联/参照完整性约束: 外键:关系模式R1包含关系模式R2的主键,这组属性叫做R1参照R2的外键。 设X是关系模式R(U)关于关系模式R(U)的外键。如果K是R(U)的关系实例的一个元组的外部键值,则R(U)的实例中必存在一个元组T,T在X上的值为K。 例: Student ( NO, Name, Sex, Age, Class, DeptNO ) , Dept (DeptNO, Dept

6、Name),更新时的参照完整性约束: 插入. 如果元组 t2 被插入到r2, 则系统必须确保r1中存在元组 t1 使得 t1K = t2X. 删除. 如果从r1删除元组t1, 则系统必须计算r2中引用t1的元组集合 : X = t1K (r2) 如果此集合非空, 则要么认为出错而拒绝删除命令, 要么删除这些引用t1的元组(级联删除).,修改. 有两种情况: 如果修改关系r2中的元组 t2 并且修改了外键X的值, 则作类似于插入情况的检查. 令 t2 表示元组t2的新值. 系统必须确保 t2X K(r1) 如果修改关系r1中的元组 t1并且修改了主键K的值, 则作类似于删除情况的检查. 系统必须

7、利用t1在修改前的旧值计算 X = t1K (r2) 若此集合非空, 则要么认为出错而拒绝修改, 要么对此集合中的元组作级联修改, 要么删除此集合中的元组,域约束: 域约束是完整性约束的最基本形式. 可用于检测插入到数据库中的数据的合法性, 或用于查询中检测两个数据进行比较时的合法性. check子句允许对域作限制: 利用check 子句确保“小时工资”域只允许大于指定值的值. create domain hourly_wage numeric(5,2) constraint value_test check(value = 4.00) 这个域具有约束:小时工资大于 4.00 子句constr

8、aint value_test 使可选的; 可用于指示以后的更新破坏了哪一条约束. 可有更复杂的域检查条件 Create domain AccountType char(10) constraint account_type_test check (value in (Checking, Saving) check (branch_name in (select branch_name from branch),2.5.2 关系范式,函数依赖 关系范式 分解,关系数据库逻辑设计 针对具体问题,如何构造一个适合于它的数据模式 数据库逻辑设计的工具关系数据库的规范化理论,数据依赖(函数依赖 ,多值

9、依赖) 是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系 是现实世界属性间相互联系的抽象 是数据内在的性质 是语义的体现,函数依赖,设R 是一关系模式, 且有属性集 R , R 函数依赖 在R上成立 当且仅当对任意合法关系r(R), 若r 的任意两条元组t1 和t2 在属性集上的值相同, 则他们在属性集 上的值也相同. 即, t1 = t2 t1 = t2 ,K 是关系模式R 的超键当且仅当 K R K 是R 的候选键当且仅当: K R, 并且 没有 K 使 R,函数依赖的使用: 我们用函数依赖来: 检查关系在给定函数依赖之下是否合法. 若关系r 在函数依赖集F 下是合法的, 则称

10、r 满足F. 对合法关系集合指定约束 如果R 上的所有合法关系都满足F, 则称F 在R上成立. 注意: 关系模式的特定实例可能满足一函数依赖, 但该函数依赖不是在所有合法实例上成立.,平凡依赖 被所有关系实例都满足的函数依赖称为平凡的 例如 customer-name, loan-number customer-name customer-name customer-name 一般地,若 则 是平凡的,CTO(CNO,TNAME,ADDRESS,OFFICE): CNOTNAME,TNAME ADDRESS transitive dependency: CNOADDRESS,如下的函数依赖是传

11、递的: ,( ), , , 称 传递依赖于 .,函数依赖:,if: , , 部分依赖于 .,CTO(CNO,TNAME,ADDRESS,OFFICE): CNOTNAME,TNAME ADDRESS partial dependency: (CNO, TNAME)ADDRESS,部分依赖:,First Normal Form 1NF Second Normal Form 2NF Third Normal Form 3NF Boyce-Codd Normal Form BCNF,基于数据依赖和函数依赖:,关系范式:,第一范式,如果域中元素被认为是不可分的, 则域称为是原子的 非原子域的例子: 名

12、字集合, 复合属性 象CS101之类的标识号可以分成若干部分 如果关系模式R的所有属性的域都是原子的, 则R称为属于第一范式 非原子值存储复杂并易导致数据冗余 E.g. 每个客户的账户集合, 以及每个账户的拥有者集合 我们假定所有关系都属于第一范式,2NF:若R是1NF,且每个非键属性完全依赖于候选键,则称R为2NF(消除非键属性对候选键的部分依赖)。 例:关系模式S(SNO , SN , SD , DEAN , CNO , G) (SNO, CNO)为候选键,SNOSN,SNOSD,存在部分依赖,非2NF,则会有以下问题: 插入异常:如果学生没有选课,关于他的个人信息及所在系的信息就 无法插

13、入。 删除异常:如果删除学生的选课信息,则有关他的个人信息及所在 的信息也随之删除了。 更新异常:如果学生转系,若他选修了k门课,则需要修改k次。 数据冗余:如果一个学生选修了k门课,则有关他的所在系的信息重 复。 可将S分解为:SC(SNO , CNO , G) S_SD(SNO , SN , SD , DEAN),第三范式,关系模式R 属于第三范式 (3NF) 当且仅当对所有F+中依赖: 下列条件中至少一个成立: 是平凡的 (i.e., ) 是R 的超键 中的每个属性A 包含在R 的某个候选键中. (注: 各属性可能包含在不同候选键中) 或: 非主属性既不部分依赖也不传递依赖于R的候选键,

14、则称R是第三范式。,S_SD(SNO , SN , SD , DEAN) : SNO SD, SD DEAN STUDENT(SNO , SN , SD) DEPT(SD , DEAN),Boyce-Codd 范式:, 是平凡的 (i.e., ) 是R的超键,具有函数依赖集合F 的关系模式R 属于BCNF当且仅当对F+中所有函数依赖 , 下列两条件至少一个成立:,或: 如果关系模式R是1NF,且每个属性都不部分依赖于候选键也不传递依赖于候选键,那么称R是BC范式。,SPC(SNO , PNO , CNO) : PNOCNO (SNO,CNO)PNO 每位老师只教授一门课;某学生选定一门课,就对

15、应一位老师 (SNO,PNO)CNO (SNO,CNO)PNO,(SNO,PNO),(SNO,CNO)为候选键。所有属性为键属性,为第三范式,但非BCNF SP(SNO,PNO),PC(PNO,CNO),因3NF的冗余引起的问题 R = (J, K, L) F = JK L, L K,属于3NF但不属于 BCNF的模式有下面的问题 信息重复 (e.g., 联系l1, k1) 需要使用空值 (e.g., 表示联系l2, k2 , 这里没有对应的J 值).,多属性依赖集候选关键字求法:,输入:关系模式R及其函数依赖集F 输出:R的所有候选关键字。 方法: (1)将R的所有属性分为四类: L类:仅出现在F的函数依赖左部的属性; R类:仅出现在F的函数依赖右部的属性; N类:在F的函数依赖左右两边均未出现的属性; LR类:在F的函数依赖左右两边均出现的属性; 并令X代表L、N类,Y代表LR类;,(2)求X+,若包含了R的所有属性,则X即为R的唯一候选关键字,转(5),否则转(3); (3)在Y中取一属性A,求(XA)+,若它包含了R的所有属性,则转(4),否则,调换一属性反复进行这一过程,直到试完所有Y中的属性; (4)如果已找出所有的候选关键字,则转(5),否则在Y中依此取两个、三

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号