(推荐)SDB复习材料

上传人:日度 文档编号:153731896 上传时间:2020-12-01 格式:PPT 页数:347 大小:4.39MB
返回 下载 相关 举报
(推荐)SDB复习材料_第1页
第1页 / 共347页
(推荐)SDB复习材料_第2页
第2页 / 共347页
(推荐)SDB复习材料_第3页
第3页 / 共347页
(推荐)SDB复习材料_第4页
第4页 / 共347页
(推荐)SDB复习材料_第5页
第5页 / 共347页
点击查看更多>>
资源描述

《(推荐)SDB复习材料》由会员分享,可在线阅读,更多相关《(推荐)SDB复习材料(347页珍藏版)》请在金锄头文库上搜索。

1、1,非关系模型 层次模型(Hierarchical Model) 数据结构:以基本层次联系为基本单位,类似一颗倒置的树 。 基本层次联系:每个节点表示一个记录类型,两个记录类型之间是一对多(包括一对一)的联系。,常用数据模型,2,一定有一个,并且只有一个位于树根的节点,称为根节点; 一个节点下面可以没有节点,即向下没有分支,那么该节点称为叶节点; 一个节点可以有一个或多个节点,前者称为父节点,后者称为子节点; 同一父节点的子节点称为兄弟节点。 除根节点外,其他任何节点有且只有一个父节点;,特征,3,网状模型(Network Model) 网状模型可以看作是层次模型的一种扩展。它采用网状结构表示

2、实体及其之间的联系。网状结构的每一个节点代表一个记录类型,记录类型可包含若干字段,联系用链接指针表示,去掉了层次模型的限制。,4,特征及优缺点,1. 允许一个以上的节点没有父节点; 2. 一个节点可以有多于一个的父节点; 网状模型与层次模型相比,提供了更大的灵活性,能更直接地描述现实世界,性能和效率也比较好。 网状模型的缺点是结构复杂,用户不易掌握,记录类型联系变动后涉及链接指针的调整,扩充和维护都比较复杂。,5,常用数据模型(续),关系模型(Relational Model) 数据结构:表 面向对象模型(Object Oriented Model) 数据结构:对象 如Geodabase 对象

3、关系模型(Object Relational Model),6,关系模型,1970年美国IBM公司的研究员E.F.Codd首次提出了数据库系统的关系模型。 他发表了题为“大型共享银行数据的关系模型”(A Relation Model of Data for Large Shared Data Banks),在文中解释了关系模型,定义了某些关系代数运算,研究了数据的函数相关性,定义了关系的第三范式,从而开创了数据库的关系方法和数据规范化理论的研究,为关系数据库技术奠定了理论基础。 他因此获得了1981年的图灵奖。,7,20世纪80年代以来,计算机厂商新推出的数据库管理系统几乎都支持关系模型,非关

4、系系统的产品也都加上了关系接口。 关系数据库已成为目前应用最广泛的数据库系统,如现在广泛使用的小型数据库系统Foxpro、Access,大型数据库系统Oracle、Informix、Sybase、SQL Server等都是关系数据库系统。,8,1.关系数据模型的数据结构,在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。,9,关系模型的基本概念,关系(Relation) 一个关系对应通常说的一张表。 元组(Tuple) 表中的一行即为一个元组。 属性(Attribute) 表中的一列即为一个属性,给每一个属性起一个名称即属性名。,10,关系模型的基本概念,码(Key) 表中的

5、某个属性(组),它可以唯一确定一个元组,使表中记录具有唯一性的字段称为关键字。 域(Domain) 属性的取值范围。 分量 元组中的一个属性值。 关系模式 对关系的描述 关系名(属性1,属性2,属性n) 学生(学号,姓名,年龄,性别,系,年级),11,如果表中有多个关键字,则可以选定其中一个作为主关键字(简称主键)。 如果表中只有一个关键字,它也是主关键字。 如果表中的一个字段不是本表的主键,但它是另一个表的主键,则这个字段称为外部关键字,简称外键。 主键具有不能输入重复值且不能为空(就是不输入任何值)的特点。,12,关系数据模型的数据结构(续),实体及实体间的联系的表示方法 实体型:直接用关

6、系(表)表示。 属性:用属性名表示。 联系:用关系表示。,13,关系数据模型的数据结构(续),关系必须是规范化的,满足一定的规范条件 最基本的规范条件:关系的每一个分量必须是一个不 可分的数据项。,14,关系的特点,在关系模型中,关系即表的建立是有一定的要求的: (1)同一表中不能出现相同的字段名。 (2)同一表中不能出现两个完全相同内容的记录。 (3)表中行的次序无关紧要。 (4)表中列的次序无关紧要。 (5)表必须规范化。即关系数据库中每一个表都必须满足一定的要求,下面再述。,15,表间联系及其种类,(1)一对一:表A中的记录和表B的记录是一一对应的。例:分别设表A、表B中学号为主键,则两

7、个表中的学号都不能输入重复的学号,所以,表A、B通过学号建立的联系就是一对一的。 (2)一对多:如果设表A中学号为主键,而表B中的学号不设为主键,则表A中的学号都不能输入重复的学号而表B可以,表A、B通过学号建立的联系就是一对多的。 (3)多对多:如果设表A、B中的学号都不设为主键,则表A、B通过学号建立的联系就是多对多的了。,16,数据的完整性,(1)实体完整性。也可以理解为表中数据的完整性。在Access中,当我们希望用户输入某一个关键字段(如:身份证号码)时不允许为空即不输入且不允许输入重复的号码,可以把身份证号码设置为主键,这样就可以保证数据是完整的了。所以说,实体完整性是通过主键实现

8、的。,17,(2)参照完整性。当我们把成绩表和学生情况表建立关系并实施参照完整性时,成绩表学号,课程名称,中的“学号”就只能输入学生情况表中已输入的“学号”,这样就可以保证数据库中的数据的完整,要不然可能出现一个学生有了成绩,但没有他的基本情况。所以说,参照完整性是通过外键实现的。 (3)用户定义完整性:由用户针对某一具体数据库的约束条件,定义完整性。例如:性别只能是“男”或“女”两种可能,年龄的取值只能限制在O200之间才合乎情理等。,18,(四)表的规范化,一、规范(范式)和表的规范化概念 在关系数据库中,对表的设计有一定的条件要求,或者说要满足一定的规范(也称范式),否则,在应用中会产生

9、很多弊病。 前面提过:确定字段的原则之一是该字段是不能再分割的,如果一个表中的所有字段都是不能再分割的,那么,它就是一个满足第一范式(简记为1NF)的表。,19,满足第一范式是表的最低要求,不满足第一范式要求的数据库(表)就不能称之为关系数据库。 在此基础上满足更高要求的称为第二范式,简记为2NF,其余依此类推,还有第三范式(3NF)、BC范式(BCNF)、第四范式(4NF)、第五范式(5NF)。BCNF可以看作是修正了的第三范式。,20,把表从低范式,通过投影运算转换成若干高一级范式的过程,叫做表的规范化。 一般地说,表满足的范式级别越高,设计的表越是规范,表的质量越高,数据的冗余度越小,共

10、享性越高,所占的存储空间越少,并将数据的不一致性减少到最低程度,这也是对表进行规范化的目的。但是,高范式的数据库查询起来比较复杂。所以,不应一味追求高范式,一般满足第三范式或BC范式就可以了。,21,1、第一范式(1NF),思考:上个表满足第一范式吗?,22,如果不把它进行规范化,即转换成满足第一范式的表,将会产生很多问题,如:删除异常,即本来只想删除成绩的,不得不把课程号和课程名也删除了! 转换的方法就是把可以拆分的字段进行拆分,即把选修课程成绩分解成3个字段:课程号,课程名,成绩。变成下面满足第一范式的表:,23,表二 满足第一范式的表,24,2、第二范式(2NF),25,表二中存在以下的

11、问题: l 问题1:数据冗余度大。张丽选几门课程,都必须输入所有几个她的相关信息,同时,如果有几千个人选修高等数学课,就得输入几千个“高等数学”。如果要修改“高等数学”这个课程名称,对于几千个课程名中,只要漏改一个,将造成数据的不一致性。,26,l问题2:删除异常。我们知道,这个表中的关键字为学号和课程号,它们不能为空值,而当李锋退学时,不可能只删除李锋的学号和姓名,只能删除了李锋的整条记录,这时相应的课程号为C004的法律也被删除,如果这个表中只有李锋一人选法律课,该记录删除后,下次将无法查询法律课的课程号。,27,l 问题3:插入记录异常。与删除异常相似,如果李锋刚入学,还没有选修任何一门

12、课程,无法知道他选修的课程号,而课程号为关键字,不能为空,因此,李锋这个记录也不能输入。,28,造成出现这些问题的原因是因为这个表不满足第二范式。 如何判断一个表是否满足第二范式呢,判断方法是: (1)找出表的关键字。 (2)如果只有一个关键字,若每一个非关键字都依赖于这个关键字,则表满足第二范式,否则不是。,29,关系模式中的各属性之间相互依赖、相互制约的联系称为数据依赖。 数据依赖一般分为函数依赖、多值依赖和连接依赖。 其中,函数依赖是最重要的数据依赖。,30,函数依赖 比如描述一个学生的关系,可以有学号(Sno),姓名(Sname),系名(Sdept)等几个属性。由于一个学号只对应一个学

13、生,一个学生只在一个系学习。因而当“学号”值确定之后,姓名和该生所在系的值也就被唯一地确定了。就象自变量x确定之后,函数值f(x)也就唯一地确定一样,称Sno函数决定Sname和Sdept或者说Sname,Sdept函数依赖于Sno,记为: Sno Sname, Sno Sdept,31,平凡函数依赖与非平凡函数依赖 在关系模式R(U)中,对于U的子集X和Y, 如果XY,但Y X,则称XY是 非平凡的函数依赖 若 XY,但Y X, 则称XY是 平凡的函数依赖 例: 在关系SC(Sno, Cno, Grade)中, 非平凡函数依赖: (Sno, Cno) Grade 平凡函数依赖: (Sno,

14、Cno) Sno (Sno, Cno) Cno,32,对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义,因此若不特别声明, 我们总是讨论非平凡函数依赖。,33,完全函数依赖与部分函数依赖 在关系模式R(U)中,如果XY,并且对于X的任何一个真子集X,都有 XY, 则称Y完全函数依赖于X,记作X Y。 若XY,即Y不完全函数依赖于X,则称Y部分函数依赖于X,记作X P Y。,34,例: 在关系SC(Sno, Cno, Grade)中, 由于:Sno Grade,Cno Grade, 因此:(Sno, Cno) Grade,35,传递函数依赖,在关系模式R(U)中,如果XY,YZ,且

15、Y X,YX,则称Z传递函数依赖于X。 注: 如果YX, 即XY,则Z直接依赖于X。 例: 在关系Std(Sno, Sdept, Mname)中,有: Sno Sdept,Sdept Mname Mname传递函数依赖于Sno,36,例3:学生(学号,姓名,学院)表是否满足第二范式? 答:满足。因为,这个表中只有一个关键字即学号,而其他字段(即非关键字)都依赖于学号,也就是说每一个学号只有一个姓名,一个学院与之对应。 例4:学生(学号,姓名,学院,成绩)表是否满足第二范式? 答:不满足。因为,一个学生可能不只选一门课程,不止一个成绩,也就是说每一个学号不只有一个成绩与之对应,或者说,有一个非关

16、键字段(即成绩)不依赖于学号。,37,(3)如果有两个或两个以上的关键字,那么,把这些关键字看成是一个组合关键字,若每一个非关键字都能完全依赖于组合关键字,则表满足第二范式,否则不是。,38,例5:成绩(学号,课程,成绩)表是否满足第二范式? 答:满足。因为,非关键字(成绩)完全依赖于组合关键字(学号+课程),即只有一个成绩与(学号+课程)对应,或者说,一个学生选修一门课程,就只能有一个成绩。 例6:成绩(学号,课程,成绩,姓名)表是否满足第二范式? 答:不满足。因为,非关键字(姓名)不完全依赖于组合关键字(学号+课程),而只是依赖于组合关键字(学号+课程)的一部分即学号。这种依赖关系称为部分依赖。,39,l 定义:如果一个表满足1NF,且每一个非关键字都完全依赖于关键字,则这个表满足第二范式。 l 第一范式转换成第二范式的方法: 找出依赖关系,将能完全依赖于主键的字段从表中提取出来,同主键一起组成一个新的关系。,40,例7:表二(学号,姓名,学院,地址,课程号,课程名,成绩)的依赖关系如下: 显然,不满足2NF。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作范文

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