1、第第4 4章章 数据库技术及应用数据库技术及应用 计算机教学实验中心2006软件开发技术基础软件开发技术基础1下一页上一页问题的提出问题的提出n什么是数据库?DBMS?n数据库技术的发展及未来?n有哪些常用的数据库系统平台?n数据库中数据如何存放?怎样组织?n什么是数据模型?n数据之间的联系?n什么是数据规范化?如何规范化?2下一页上一页第一部分:数据库技术基础第一部分:数据库技术基础 n数据模型n规范化理论n关系数据库标准语言SQL3下一页上一页一、数据模型一、数据模型n数字化过程的三个世界n概念模型n数据模型4下一页上一页数字化过程的三个世界数字化过程的三个世界n从现实生活中的客观事物到存
2、放于计算机中的数据,这样一个加工过程可划分为三个世界:n现实世界:事物的客观存在,由事物及其性质反映。n信息世界:是对现实世界的抽象,事物在信息世界中称为实体。反映事物及其之间联系的模型称为(实体)概念模型。n数据世界:信息的数据化。用记录和数据项分别描述信息世界中的实体及属性。实体模型数据化后称为数据模型。5下一页上一页概念模型概念模型n概念模型是逻辑模型,是求解问题数字化的前期处理过程的产物。它是设计人员对求解问题研究和抽象的结果,也是设计人员和用户之间交流的工具。6下一页上一页基本概念基本概念实体(Entity)客观存在并可互相区别的事物称为实体。属性(Attribute)实体具有的特性
3、称为属性。属性组合起来表征了一个学生。主键(Key)唯一标识实体的属性或属性组。域(Domain)属性的取值范围。实体类型(Entity Type)具有相同属性的实体所具有的共同特征和性质。用实体名及属性名集合来抽象。例如,学生(学号、姓名、性别、出生年月、系、班级)。实体集(Entity Set)同种实体的集合。全体学生就是一个实体集。7下一页上一页举例举例8下一页上一页联系(联系(RelationshipRelationship)n实体之间存在着三类联系:一对一联系(1:1):实体集A中的每一个实体最多与实体集B中的一个实体,反之亦然。一对多联系(1:n):实体集A中的每一个实体与实体集B
4、中的n个实体(n=0)联系,而实体集B中的每一个实体与实体集A最多只有一个实体联系。如班级集和学生集是一对多联系。多对多联系(m:n):实体集A中的每一个实体与实体集B中的n个实体(n=0)联系,而实体集B中的每一个实体与实体集A中的m个(m=0)实体联系。如课程和学生之间的联系。9下一页上一页一对一联系举例(一对一联系举例(学校:校长学校:校长)10下一页上一页一对多联系举例(一对多联系举例(学校:学生学校:学生)11下一页上一页多对多联系举例(多对多联系举例(课程:学生课程:学生)课程学生选课12下一页上一页举例举例如学生课程、学生与课程之间的多对多联系:学生(学号、姓名、性别、年龄)课程
5、(课程号,课程名,学分)选课(学号,课程号,成绩)特点:(1)建立在严格的数学基础上。(2)简单:结构简单、清晰易用。(3)存取路径透明。缺点:查询效率不高。13下一页上一页概念模型的表示方法概念模型的表示方法n实体-联系(E-R Entity-Relation)图是由美籍华人Peter Chen在1976年提出的。n在E-R图中:学生学号选课n实体:用矩形表示 n属性:用椭圆表示n联系:用菱形表示 14下一页上一页举例举例 学生选修学号姓名性别年龄课程课程号课程名学分成绩mn15下一页上一页实体模型举例实体模型举例以教学管理为例:教学由学生、课程、教师、学习、任课等实体组成。学生属性:学号、
6、姓名、性别、年龄、班级课程属性:课程号、课程名称教师属性:姓名、课程号、课时学习属性:学号、课程号、分数任课属性:教师名、课程号、教室16下一页上一页教学实体模型示意图教学实体模型示意图 课程课程学习学习任课任课教师教师学生学生姓名、课程号、课时姓名、课程号、课时教师名、课程号、教室教师名、课程号、教室学号、姓名、性别、班级学号、姓名、性别、班级课程号、课程名课程号、课程名学号、课程名、教室学号、课程名、教室17下一页上一页数据模型数据模型 n关系模型:用关系(表)来描述实体及实体之间的联系。n关系:表n元组:表中的一行n属性:表的一列n主码:唯一确定元组的属性或属性组。n关系的描述方式:关系
7、名(属性1,属性2,属性n)学生(学号、姓名、性别、出生年月、系、班级)18下一页上一页数据模型数据模型n从现实生活中的客观事物到存放于计算机中的数据,这样一个加工过程可划分为三个世界:现实世界、观念世界和数据世界n在现实世界中,分析客观事物,找出要求解的对象集合,研究这些对象、认识它们的本质及其规律。n在概念世界中,将求解的事物映射为实体,找出实体之间的各种联系,用E-R图来描述。n在数据世界中,将实体模型转换为能够在计算机中处理的数据模型。19下一页上一页现实世界现实世界现实世界 是存在于人脑之外的客观世界,事物及其相互联系就存在于这个世界中。事物可用“对象”和“性质”来描述又有“共同事物
8、”和“特殊事物”两个不同级别。20下一页上一页观念世界观念世界观念世界 是现实世界在人脑中的反映,客观事物在概念世界中称为“实体”。反映事物联系的是实体模型。实体用“对象”和“属性”来描述又分为“个体实体”和“总体实体”两个级别。21下一页上一页数据世界数据世界数据世界 是数据在观念世界中信息的数据化,现实世界中的事物及联系在这个世界中用数据模型来描述。数据模型反映的是数据间的联系。数据用“数据记录”和“数据项”来描述;又分为“数据类型”和“数据值”两个不同级别。22下一页上一页数据加工三个阶段的关系数据加工三个阶段的关系数据数据数据分级数据分级记录记录项项项项值值数数据据模模型型实实体体模模
9、型型事物事物及及联系联系实体分级实体分级实体实体对象对象属性属性总体总体个体个体事物事物事物分级事物分级对象对象性质性质共同共同特殊特殊抽抽象象过过程程数据数据世界世界观念观念世界世界现实现实世界世界客观世界是信息之源,是设计DB的出发点。实体模型和数据模型是对客观事物的两级抽象描述。数据库的核心问题是数据模型。结论:要得到正确的数据模型,必须首先充分了解客观事物。23下一页上一页数据模型(数据模型(DBDB)的设计的设计命名数据模型(数据库名称)以示区别不同的模型,例如:成绩库.MDB命名记录类型(数据库结构)定义数据库记录结构,例如:成绩库记录 学号、课程号、分数命名每个记录中的数据项(字
10、段)XH(学号)、CNO(课程号)、SCORE(分数)说明各个记录类型之间的联系指出各数据项的数据特征 数据类型、长度、值域等。例如,XH,字符型,长度为724下一页上一页三种数据模型三种数据模型 数据模型的好坏直接影响到DB的性能。当前较流行的设计方法有三种:关系、层次和网络方法;对应的模型为:关系模型、层次模型、网络模型。25下一页上一页层次模型层次模型描述层次(树形)结构的模型。特点:n每个模型中只有一个称为根的最高结点n其它结点都只能和一个父结点相连接(1:M)n查询、访问都必须从根结点开始n最有影响的层次模型的DBS是60年代末,IBM公司推出的IMS层次模型数据库系统。26下一页上
11、一页层次模型示意图层次模型示意图 校长校长校长办公室校长办公室 各学院各学院 各职能处各职能处 (电信学院)电信学院)计算机系计算机系 电子系电子系 信控系信控系 计算机教学实验中心计算机教学实验中心网络所网络所.软件教研室软件教研室27下一页上一页网络模型网络模型n图结构模型,其特点:n可有0个或多个结点无双亲n允许结点有多个双亲n允许结点间有2种以上的关系n存取、访问必须按事先定义好的路径进行(从指定出发点)n最有影响的网络模型是美国数据系统语言协会推出的DBTG系统,也称CODASYL(Conference On DAta SYstem Language)28下一页上一页关系模型关系模型
12、关系模型是由IBM公司的E.F.Codd于1970年首次提出的.其组织形式是一张二维表,一个表即一个关系;其特点:n一个关系一张表n数据独立性高n操作简单n一行是一个记录n一列是一个数据项(字段)29下一页上一页数据操纵数据操纵n指查询操作和更新操作:n查询操作有选择、投影、连接、并、交、差等;n更新操作有插入、删除和修改。n关系操作的特点是集合操作方式,即操作对象和结果都是集合,而不是单记录的操作方式。30下一页上一页完整性约束完整性约束n实体完整性约束 关系中元组关键字不能为空且取值惟一。n参照完整性约束 在关系数据库中,关系与关系之间的联系是通过公共属性实现的。这个公共属性是一个关系的关
13、键字,在另一个关系中称为外部关键字(外键)。n系和学生表之间的联系是通过系名实现的,系名是系信息表的关键字,是学生信息表的外键。n系名的取值必须符合实体完整性规则。系信息表称为参照关系,学生信息表称为依赖关系。31下一页上一页二、关系的规范化概念二、关系的规范化概念如何评价关系模型的好坏,这关系到如何设计关系模型(关系框架)的问题。以SCT关系为例说明存在的问题:SCT关系是由S#(学号)、C#(课程号),GRADE(成绩)、TNAME(教师姓名)、TAGE(教师年龄)、OFFICE(办公室)属性组成。SCTSCT关系关系 (学生课程教师关系)(学生课程教师关系)S#C#GRADE TNAME
14、 TAGE OFFICES#C#GRADE TNAME TAGE OFFICE S1 C1 90 S1 C1 90 周周 45 301 45 301 S1 C2 91 S1 C2 91 刘刘 39 302 39 302 S1 C3 85 S1 C3 85 刘刘 39 302 39 302 S1 C4 87 S1 C4 87 王王 51 301 51 301 S2 C1 92 S2 C1 92 周周 45 301 45 301 S3 C1 75 S3 C1 75 周周 45 301 45 301 S3 C2 56 S3 C2 56 刘刘 39 302 39 30232下一页上一页关系模式的存储异
15、常问题关系模式的存储异常问题在上述SCT关系中,至少存在下列问题:n数据冗余 n更新异常n插入异常n删除异常33下一页上一页n如果某门课程有100个学生选修,就要出现100个元组(记录),相应的教这门功课的教师的姓名、年龄、办公室也要出现100次。SCTSCT关系关系 (学生课程教师关系)(学生课程教师关系)S#C#GRADE TNAME TAGE OFFICES#C#GRADE TNAME TAGE OFFICE S1 C1 90 S1 C1 90 周周 45 301 45 301 S1 C2 91 S1 C2 91 刘刘 39 302 39 302 S1 C3 85 S1 C3 85 刘刘
16、 39 302 39 302 S1 C4 87 S1 C4 87 王王 51 301 51 301 S2 C1 92 S2 C1 92 周周 45 301 45 301 S3 C1 75 S3 C1 75 周周 45 301 45 301 S3 C2 56 S3 C2 56 刘刘 39 302 39 30234下一页上一页n对SCT关系中的元组进行修改,可能导致出现存储数据不一致的情况。例如,要修改第一元组中的OFFICE值时,将301改为303,会出现周老师的办公室号码不一致,除非修改所有周老师元组(记录)中的办公室号码。SCTSCT关系关系 (学生课程教师关系)(学生课程教师关系)S#C#
17、GRADE TNAME TAGE OFFICES#C#GRADE TNAME TAGE OFFICE S1 C1 90 S1 C1 90 周周 45 303 45 303 S1 C2 91 S1 C2 91 刘刘 39 302 39 302 S1 C3 85 S1 C3 85 刘刘 39 302 39 302 S1 C4 87 S1 C4 87 王王 51 301 51 301 S2 C1 92 S2 C1 92 周周 45 301 45 301 S3 C1 75 S3 C1 75 周周 45 301 45 301 S3 C2 56 S3 C2 56 刘刘 39 302 39 30235下一页
18、上一页n如果某课程决定由张老师担任,但在还不知道哪些学生选修前,无法将张老师的记录插入关系中。因为,在SCT关系中(S#,C#)是主关键字,在C#不确定的情况下,根据关系模型的实体完整性规则,不允许主关键字中出现空值。因此,在C#不确定的情况下,不能插入该记录。SCTSCT关系关系 (学生课程教师关系)(学生课程教师关系)S#C#GRADE TNAME TAGE OFFICES#C#GRADE TNAME TAGE OFFICE S1 C1 90 S1 C1 90 周周 45 301 45 301 S1 C2 91 S1 C2 91 刘刘 39 302 39 302 S1 C3 85 S1 C
19、3 85 刘刘 39 302 39 302 S1 C4 87 S1 C4 87 王王 51 301 51 301 S2 C1 92 S2 C1 92 周周 45 301 45 301 S3 C1 75 S3 C1 75 周周 45 301 45 301 S3 C2 56 S3 C2 56 刘刘 39 302 39 302 C5 C5 张张 30 304 30 30436下一页上一页n如果要删除某门课程的所有成绩,则会将教这门功课的教师信息也删除掉。例如,若要删除C4的元组,结果会丢失王老师的有关信息。显然,这是不希望发生的事情。SCTSCT关系关系 (学生课程教师关系)(学生课程教师关系)S#
20、C#GRADE TNAME TAGE OFFICES#C#GRADE TNAME TAGE OFFICE S1 C1 90 S1 C1 90 周周 45 301 45 301 S1 C2 91 S1 C2 91 刘刘 39 302 39 302 S1 C3 85 S1 C3 85 刘刘 39 302 39 302 S1 C4 87 S1 C4 87 王王 51 301 51 301 S2 C1 92 S2 C1 92 周周 45 301 45 301 S3 C1 75 S3 C1 75 周周 45 301 45 301 S3 C2 56 S3 C2 56 刘刘 39 302 39 30237下
21、一页上一页关系的规范化举例关系的规范化举例 显然,SCT关系的性能是很差的。如果将SCT关系分解为两个子关系SC和CT,即SC(S#,C#,GRADE)、CT(C#,TNAME,TAGE,OFFICE)上述存储异常问题将消失。C#TNAME TAGE OFFICEC#TNAME TAGE OFFICE C1 C1 周周 45 301 45 301 C2 C2 刘刘 39 302 39 302 C3 C3 刘刘 39 302 39 302 C4 C4 王王 51 301 51 301 S#C#GRADE S#C#GRADE S1 C1 90 S1 C1 90 S1 C2 91 S1 C2 91
22、S1 C3 85 S1 C3 85 S1 C4 87 S1 C4 87 S2 C1 92 S2 C1 92 S3 C1 75 S3 C1 75 S3 C2 56S3 C2 56SCSC关系关系CTCT关系关系38下一页上一页产生储异常问题的原因产生储异常问题的原因为什么会产生存储异常的问题呢?这与每个关系模式中各属性值之间的联系有关。在SCT关系中,(S#,C#)是主关键字,它们的值唯一决定其它所有属性的值,形成一种依赖关系。TANME、TAGE、OFFICE的属性值由课程号C#决定,与学号S#无直接联系。把无直接联系的教师属性和学生学号放在一起,就产生了存储异常的问题。因此,模式设计时强调“
23、独立的联系,独立表达”。这是一条设计原则。将SCT分解为SC、CT,就符合这条设计原则。通常,将结构较简单的关系取代结构较复杂关系(简单和复杂是指数据相关性而言)的过程称为关系的规范化。39下一页上一页数据依赖数据依赖描述同一关系内各属性之间的相互关系被称为数据依赖。数据依赖有许多种类型,这里只介绍函数依赖、完全函数依赖和传递依赖的概念。关系BORROW40下一页上一页关系关系BORROW 8212102 陆华陆华 自控自控86 女生宿舍女生宿舍206 6201 自控原理自控原理 93.07.060621 张山张山 自控教研室自控教研室 花园路花园路312号号 6201 自控原理自控原理 93
24、.03.02 0621 张山张山 自控教研室自控教研室 花园路花园路312号号 3104 数据处理数据处理 93.04.040621 张山张山 自控教研室自控教研室 花园路花园路312号号 5112 晶体管电路晶体管电路 93.06.058212103 何白何白 自控自控86 女生宿舍女生宿舍206 5112 晶体管电路晶体管电路 93.07.06书证号书证号 姓名姓名 单位单位 住址住址 书号书号 书名书名 日期日期41下一页上一页函数依赖函数依赖 定义:在关系R中,如果每个属性(或属性组)A的值只有一个属性B的值与之对应,就称属性B函数依赖于属性(或属性组)A,记为:A B 读作:“A函数
25、决定B”或“B函数依赖于A”。举例,在关系BORROW中,各属性之间的函数依赖可描述为:借书证号 姓名 借书证号 单位 借书证号 住址 书号 书名 (借书证号,书号)日期知道了知道了“借书证号借书证号”,就知,就知道了道了“姓名姓名”、“单位单位”和和“住址住址”,即,即“借书证号借书证号”决定了决定了“姓名姓名”、“单位单位”和和“住址住址”。42下一页上一页主属性、非主属性主属性、非主属性定义:如果关系模式R中的某属性A是候选关键字的一部分,则称A是关系模式R中的主属性,反之则为非主属性。例如,关系BORROW中,候选关键字只有一个(借书证号,书号),所以,“借书证号”和“书号”组是主属性
26、,其它属性都是非主属性。43下一页上一页完全函数依赖完全函数依赖定义:如果非主属性B函数依赖于构成某个候选关键字的一组主属性A,而不函数依赖于A的任何一个真子集,则称B完全函数依赖于A;反之,则称B部分函数依赖于A。记为:A A B B44下一页上一页完全函数依赖举例完全函数依赖举例 举例:在关系BORROW中,只有属性“日期”完全函数依赖于关键字(借书证号,书号),其它非主属性都是部分函数依赖于关键字。这里,借书证号,书号是主属性,“日期”是非主属性,“借书证号“和“书号”都是借书证号,书号的真子集,因有借书证号,书号日期,而 借书证号 日期,书号 日期(不函数依赖),所以,借书证号,书号借
27、书证号,书号 日期日期45下一页上一页部分函数依赖部分函数依赖部分函数依赖:在SC关系中,“GRADE”函数依赖于主关键字S#、C#,但决定“GRADE”的只是“C#”,与“S#”无关。所以,“GRADE”部分函数依赖于“C#”。S#C#GRADE S#C#GRADE S1 C1 90 S1 C1 90 S1 C2 91 S1 C2 91 S1 C3 85 S1 C3 85 S1 C4 87 S1 C4 87 S2 C1 92 S2 C1 92 S3 C1 75 S3 C1 75 S3 C2 56S3 C2 56SCSC关系关系46下一页上一页关系关系BICYCLE 品品 名名 厂厂 家家 厂
28、厂 长长 产产 地地 年产量年产量 单单 价价黄山牌黄山牌26男车男车 黄山自行车厂黄山自行车厂 刘同利刘同利 合肥合肥 20000 336.00黄山牌黄山牌26坤车坤车 黄山自行车厂黄山自行车厂 刘同利刘同利 合肥合肥 23000 326.00红旗牌红旗牌24坤车坤车 海河自行车厂海河自行车厂 王山王山 天津天津 76000 310.00大象牌大象牌28男车男车 生发自行车厂生发自行车厂 丁三元丁三元 广州广州 10000 310.00大象牌大象牌28加重加重 生发自行车厂生发自行车厂 丁三元丁三元 广州广州 50000 340.00大象牌大象牌28跑车跑车 生发自行车厂生发自行车厂 丁三元
29、丁三元 广州广州 10000 371.00大象牌大象牌26男车男车 生发自行车厂生发自行车厂 丁三元丁三元 广州广州 30000 320.00大象牌大象牌26坤车坤车 生发自行车厂生发自行车厂 丁三元丁三元 广州广州 50000 320.00大象牌大象牌24坤车坤车 生发自行车厂生发自行车厂 丁三元丁三元 广州广州 10000 305.0047下一页上一页传递函数依赖传递函数依赖定义:设R是一个关系模式,X、Y和Z是的子集,若XY,YZ,且X不函数依赖于Y,称Z传递函数依赖于X。记为:举例,关系BICYCLE中的“厂长”和“产地”,传递函数依赖于“品名”。因为,品名 厂家,厂家 厂长 品名 厂
30、家,厂家 产地 所以,厂长、产地传递函数依赖于品名。品名品名 厂长,厂长,品名品名 产地产地 t tt tt tX X Z Z48下一页上一页传递函数依赖举例传递函数依赖举例传递依赖的关系:学生住宿的“楼号”依赖于“学号”,学生应交的住宿费是由“楼号”决定的,即“收费”依赖于“楼号”,“楼号”依赖于“学号”、而“收费”又依赖于“楼号”学号学号楼号楼号收费收费10025001204600130250015088001802500 学生住宿收费表学生住宿收费表(有传递依赖的关系)(有传递依赖的关系)学学号号 楼号楼号楼号楼号 收费收费所以,所以,学号学号 收费收费t t学 号 楼 号楼 号 收 费
31、1 0 0225 0 01 2 0446 0 01 3 0225 0 01 5 0888 0 01 8 0225 0 0进行分解,可以进行分解,可以消除传递依赖消除传递依赖49下一页上一页关系规范化关系规范化范式范式 关系规范化有不同的标准,将规范标准称之为范式。可以把范式看成是用范式定义消除数据冗余的程度。范式分为:n第一范式1NFn第二范式2NFn第三范式3NFnBoyce-Codd范式BCNFn第四范式4NFn第五范式5NF 它们满足下列关系:5NF 4NF BCNF 3NF 2NF 1NF50下一页上一页非非规范化关系规范化关系n表中具有复合数据项和多值数据项的都不是规范化的表。职工号
32、职工号姓姓 名名工工 资资基本工资基本工资职务工资职务工资工龄工资工龄工资职工号职工号姓姓 名名学历学历系系办公地址办公地址毕业年份毕业年份系名系名职称职称001002张强张强李刚李刚教授教授讲师讲师计算机计算机1-205大学大学研究生研究生19631982电信电信2-204大学大学1989复合数据项复合数据项多值数据项多值数据项51下一页上一页转化非规范化关系举例转化非规范化关系举例表中具有复合数据项和多值数据项的都不是规范化的表。职工号职工号姓姓 名名基本工资基本工资职务工资职务工资工龄工资工龄工资职工号职工号姓姓 名名学历学历系系办公地址办公地址毕业年份毕业年份系名系名职称职称00100
33、2张强张强李刚李刚教授教授讲师讲师计算机计算机1-205大学大学1963电信电信2-204大学大学1989消除复合数据项消除复合数据项消除多值数据项消除多值数据项研究生研究生1982001张强张强教授教授 计算机计算机1-20552下一页上一页第一范式第一范式1NF定义:所有符合关系定义(二维表格)的关系被称为规范关系,或称为第一范式,记为1NF。或曰:每个属性都必须是原子值,即仅仅是一个简单值而不含内部结构。如果关系模式R的每个关系的各个属性值都是基本数据项,则称R为第一范式。53下一页上一页第一范式的讨论第一范式的讨论关系BORROW虽然满足了1NF,但还存在不规范的问题。数据冗余 一个学
34、生要借10本书,他的有关信息要重复存放10次;插入问题 若某学生没借过书,则有关信息无法插入;因为,作为主关键字(借书证号,书号)的“书号”无值;删除问题 若某学生归还了借阅的全部图书,则有关他的信息将全被删除(丢失)。结论:作为关系模式来说,在某些应用中,只满足1NF还不够,还要进一步规范化。54下一页上一页第二范式第二范式2NF如果R是1NF,并且每个非主属性都完全函数依赖于关键字,则称R为第二范式,记为2NF。关系BORROW不是第二范式,因为其属性“姓名”、“单位”、“住址”、“书名”都不完全函数依赖于唯一的候选关键字 借书证号,书号。作下列投影运算,就可将其分解为2NF的关系:REA
35、DER=借书证号、姓名、单位、住址(BORROW)BOOK=书号、书名(BORROW)BORROW=借书证号、书号、日期(BORROW)55下一页上一页2NF的关系(的关系(a)READER关系关系 借书证号借书证号 姓姓 名名 单单 位位 住住 址址8612101 陆华陆华 自控自控86 女生宿舍女生宿舍2060621 张山张山 自控教研室自控教研室 花园路花园路312号号8612103 何白何白 自控自控86 女生宿舍女生宿舍2068603211 李维李维 自控自控86 男生宿舍男生宿舍101书号书号 书书 名名6201 自控原理自控原理3104 数据处理数据处理5112 晶体管电路晶体管
36、电路0116 机械制造机械制造0229 金相分析金相分析2NF的的关系关系BOOK 56下一页上一页2NF的关系(的关系(c)关系关系BORROW 借书证号借书证号 书书 号号 日日 期期 8612102 6201 93.07.06 0621 6201 93.03.02 0621 3104 93.04.04 0621 5112 93.06.05 8612103 5112 93.07.06 8603211 0116 93.05.05 8603211 0229 93.05.0557下一页上一页关系关系BICYCLE 品品 名名 厂厂 家家 厂厂 长长 产地产地 年产量年产量 单单 价价黄山牌黄山牌
37、26男车男车 黄山自行车厂黄山自行车厂 刘同利刘同利 合肥合肥 20000 336.00黄山牌黄山牌26坤车坤车 黄山自行车厂黄山自行车厂 刘同利刘同利 合肥合肥 23000 326.00红旗牌红旗牌24坤车坤车 海河自行车厂海河自行车厂 王山王山 天津天津 76000 310.00大象牌大象牌28男车男车 生发自行车厂生发自行车厂 丁三元丁三元 广州广州 10000 310.00大象牌大象牌28加重加重 生发自行车厂生发自行车厂 丁三元丁三元 广州广州 50000 340.00大象牌大象牌28跑车跑车 生发自行车厂生发自行车厂 丁三元丁三元 广州广州 10000 371.00大象牌大象牌26
38、男车男车 生发自行车厂生发自行车厂 丁三元丁三元 广州广州 30000 320.00大象牌大象牌26坤车坤车 生发自行车厂生发自行车厂 丁三元丁三元 广州广州 50000 320.00大象牌大象牌24坤车坤车 生发自行车厂生发自行车厂 丁三元丁三元 广州广州 10000 305.0058下一页上一页第三范式第三范式3NF 如果关系模式R满足2NF,且它的任何一个非主属性都不传递依赖于任何候选关键字,则称R为第三范式,记为3NF。例关系BICYCLE满足第二范式,但不满足第三范式,因为:tt品名品名 厂家,厂家,厂家厂家 厂长厂长去掉其中的传递依赖关系,即可得到满足第三去掉其中的传递依赖关系,即
39、可得到满足第三范式的关系。范式的关系。例如,新关系例如,新关系BICYCLEBICYCLE和(和(c c)新关系新关系BICYCLE_PLANTBICYCLE_PLANT。tt品名品名 厂家,厂家,厂家厂家 产地产地59下一页上一页第三范式第三范式3NF 举例举例 品品 名名 厂厂 家家 厂厂 长长 产地产地 年产量年产量 单单 价价黄山牌黄山牌26男车男车 黄山自行车厂黄山自行车厂 刘同利刘同利 合肥合肥 20000 336.00黄山牌黄山牌26坤车坤车 黄山自行车厂黄山自行车厂 刘同利刘同利 合肥合肥 23000 326.00红旗牌红旗牌24坤车坤车 海河自行车厂海河自行车厂 王山王山 天
40、津天津 76000 310.00大象牌大象牌28男车男车 生发自行车厂生发自行车厂 丁三元丁三元 广州广州 10000 310.00大象牌大象牌28加重加重 生发自行车厂生发自行车厂 丁三元丁三元 广州广州 50000 340.00大象牌大象牌28跑车跑车 生发自行车厂生发自行车厂 丁三元丁三元 广州广州 10000 371.00大象牌大象牌26男车男车 生发自行车厂生发自行车厂 丁三元丁三元 广州广州 30000 320.00大象牌大象牌26坤车坤车 生发自行车厂生发自行车厂 丁三元丁三元 广州广州 50000 320.00大象牌大象牌24坤车坤车 生发自行车厂生发自行车厂 丁三元丁三元 广
41、州广州 10000 305.00(a)a)关系关系BICYCLEBICYCLE60下一页上一页第三范式第三范式3NF 举例举例经投影操作:BICYCLE=品名、厂家、年产量、单价(BICYCLE)得:品品 名名 厂厂 家家 年产量年产量 单单 价价黄山牌黄山牌26男车男车 黄山自行车厂黄山自行车厂 20000 336.00黄山牌黄山牌26坤车坤车 黄山自行车厂黄山自行车厂 23000 326.00红旗牌红旗牌24坤车坤车 海河自行车厂海河自行车厂 76000 310.00大象牌大象牌28男车男车 生发自行车厂生发自行车厂 10000 310.00大象牌大象牌28加重加重 生发自行车厂生发自行车
42、厂 50000 340.00大象牌大象牌28跑车跑车 生发自行车厂生发自行车厂 10000 371.00大象牌大象牌26男车男车 生发自行车厂生发自行车厂 30000 320.00大象牌大象牌26坤车坤车 生发自行车厂生发自行车厂 50000 320.00大象牌大象牌24坤车坤车 生发自行车厂生发自行车厂 10000 305.00(b)b)新关系新关系BICYCLEBICYCLE61下一页上一页第三范式第三范式3NF 举例举例经投影操作:BICYCLE_PLANT=厂家,厂长,产地(BICYCLE),得 厂厂 家家 厂厂 长长 产产 地地黄山自行车厂黄山自行车厂 刘同利刘同利 合肥合肥海河自行
43、车厂海河自行车厂 王山王山 天津天津生发自行车厂生发自行车厂 丁三元丁三元 广州广州(c)c)新关系新关系BICYCLE_PLANTBICYCLE_PLANT新关系新关系(b)BICYCLEb)BICYCLE和和(c)BICYCLE_PLANTc)BICYCLE_PLANT满足第三范式的关系。满足第三范式的关系。62下一页上一页综合举例综合举例-SCT关系关系 SCT关系是由S#(学号)、C#(课程号),GRADE(成绩)、TNAME(教师姓名)、TAGE(教师年龄)、OFFICE(办公室)属性组成。SCTSCT是是1 1NF,NF,而不是而不是2 2NFNF。因为(因为(S#S#,C#C#)
44、是是SCTSCT的候选关键字,的候选关键字,TNAMETNAME是非主属性,是非主属性,C#C#是(是(S#S#,C#C#)的一个真子集,的一个真子集,C#C#TNAMETNAME。S#C#GRADE TNAME TAGE OFFICE S#C#GRADE TNAME TAGE OFFICE S1 C1 90 S1 C1 90 周周 45 301 45 301 S1 C2 91 S1 C2 91 刘刘 39 302 39 302 S1 C3 85 S1 C3 85 刘刘 39 30 39 30 S1 C4 87 S1 C4 87 王王 51 301 51 301 S2 C1 92 S2 C1
45、92 周周 45 301 45 301 S3 C1 75 S3 C1 75 周周 45 301 45 301 S3 C2 56 S3 C2 56 刘刘 39 302 39 302SCTSCT关系关系 (学生课程教师关系)(学生课程教师关系)63下一页上一页SCT从从1NF分解为分解为2NF将SCT关系分解为两个子关系SC和CT,即SC(S#,C#,GRADE)、CT(C#,TNAME,TAGE,OFFICE),即得到两个2NF关系。S#C#GRADE S#C#GRADE S1 C1 90 S1 C1 90 S1 C2 91 S1 C2 91 S1 C3 85 S1 C3 85 S1 C4 87
46、 S1 C4 87 S2 C1 92 S2 C1 92 S3 C1 75 S3 C1 75 S3 C2 56S3 C2 56SCSC关系关系 C#TNAME TAGE OFFICEC#TNAME TAGE OFFICE C1 C1 周周 45 301 45 301 C2 C2 刘刘 39 302 39 302 C3 C3 刘刘 39 302 39 302 C4 C4 王王 51 301 51 301 CTCT关系关系CTCT还有冗余,还有冗余,TAGETAGE传递依传递依赖于赖于C#C#,可再进行分解。可再进行分解。64下一页上一页CT从从2NF分解为分解为3NF 对CT再作投影分解:CT=C
47、#,TNAME(CT)TO=TNAME,OFFICE(CT),得两个满足3NF的关系:CTCT关系关系TOTO关系关系C#TNAMEC#TNAMEC1 C1 周周C2 C2 刘刘C3 C3 刘刘C4 C4 王王TNAME TAGE OFFICETNAME TAGE OFFICE周周 45 301刘刘 39 302王王 51 30165下一页上一页总结总结 5NF4NFBCNF3NF1NF2NF关系世界(规范与非规范关系)关系世界(规范与非规范关系)一般而言,分解到一般而言,分解到3 3NFNF就能满足应用需要。就能满足应用需要。范式级别越高,产生的新关系就越多,数据范式级别越高,产生的新关系就
48、越多,数据查询时就不得不进行大量的联结运算。查询时就不得不进行大量的联结运算。非规范关系消去重复组或空白非规范关系消去重复组或空白 变为变为1NF关系;关系;1NF关系中消去非主属性对候选关系中消去非主属性对候选 关键字的部分依赖变为关键字的部分依赖变为2NF关系;关系;再消去非主属性对候选关键字的再消去非主属性对候选关键字的 传递依赖变成传递依赖变成3NF;随之消去所有部分依赖就变成随之消去所有部分依赖就变成 BCNF关系;关系;若消去函数依赖以外的所有多值若消去函数依赖以外的所有多值 依赖,就变成依赖,就变成4NF关系;关系;最后,消去所有不按候选关键字最后,消去所有不按候选关键字 进行连
49、接运算的连接相关性,得进行连接运算的连接相关性,得 到到5NF关系。关系。66下一页上一页结束语结束语欢迎参加到中心网站课程的学习讨论中来。中心网址:http:/我的E-mail地址:LZQ 谢谢!谢谢!67下一页上一页基本概念基本概念n数据(Data)是用来记录信息的可识别的符号,是信息的具体表现形式。n数据表示 可用实体(Entity)、属性(Attribute)和属性值(Attribute Value)表示。(“C52001”,“Java技术与应用”,3,48)数据处理(Data Processing)是表示一系列活动的一个总过程,包括收集、存储、加工、检索和发布数据;并在此过程中过滤掉
50、无关数据,抽取最有价值的相关数据,以供计算机进一步处理使用。数据处理是计算机应用中的最大的一个分支。最初指在计算机上加工商业、企业的信息和数据,现在常用来泛指非科技工程方面的计算、管理和操纵任何形式的数据资料。68下一页上一页数据库数据库(DataBaseDataBase)在计算机上合理存放的相互关联的数据的集合,被称为数据库。它具有下列特点:n最小冗余(尽可能不重复)n可以最优方式提供数据共享n数据的独立性n实现数据的统一管理和数据安全的保障n 数据库技术是数据处理最有效的手段。69下一页上一页数据库管理系统数据库管理系统(DBMS)(DBMS)nDBMS是在OS支持下工作的数据库管理软件。