




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.数据库原理与应用数据库原理与应用课课.2第第3章章 数据概念模型及关系模型设计数据概念模型及关系模型设计.3【知识目标知识目标】 了解数据库发展过程中的了解数据库发展过程中的3个模型个模型 理解实体与概念模型的概念理解实体与概念模型的概念 理解实体与关系模型的概念理解实体与关系模型的概念 掌握掌握1NF、2NF、3NF【能力目标能力目标】 明确与数据库技术相关的职业技术岗位明确与数据库技术相关的职业技术岗位 能够根据项目需求分析进行数据库的概念模型设计能够根据项目需求分析进行数据库的概念模型设计 能够根据项目需求分析将概念模型转换为关系模型能够根据项目需求分析将概念模型转换为关系模型 能够分
2、析关系模型并将其规范化能够分析关系模型并将其规范化 通过项目需求分析,培养和客户沟通的能力。通过项目需求分析,培养和客户沟通的能力。【重点难点重点难点】 概念模型、关系模型概念模型、关系模型 关系规范化关系规范化.【知识框架知识框架】 本章知识内容为数据库应用系统开发流程中需求分本章知识内容为数据库应用系统开发流程中需求分析、概念模型设计和逻辑模型设计,学习内容知识析、概念模型设计和逻辑模型设计,学习内容知识框架如图框架如图3-1所示。所示。.总项目:学生选课管理系统数据模型设计总项目:学生选课管理系统数据模型设计总项目概述:学生学籍管理系统包括班级、学生、总项目概述:学生学籍管理系统包括班级
3、、学生、课程、教师等实体,含有学生选课管理子模块、学生课程、教师等实体,含有学生选课管理子模块、学生档案管理子模块、学生成绩管理子模块、课程管理子档案管理子模块、学生成绩管理子模块、课程管理子模块、教师授课管理子模块、教师档案管理子模块等,模块、教师授课管理子模块、教师档案管理子模块等,其中学生选课子模块中包含其中学生选课子模块中包含“学生学生”和和“课程课程”两个两个实体,在实体,在“学生学生”和和“课程课程”之间,学生通过之间,学生通过“选课选课”与与“课程课程”发生联系,因此把发生联系,因此把“选修选修”确定为联系类确定为联系类型,并且型,并且“学生学生”和和“课程课程”之间是之间是m:
4、nm:n联系联系。.1.1任务情境任务情境 为为“学生选课管理系统学生选课管理系统”设计一个设计一个ER模型模型12.任务实现任务实现(1)首先确定实体,本题有两个实体类型:学生首先确定实体,本题有两个实体类型:学生s,课程,课程c。(2)确定联系。实体确定联系。实体s与实体与实体c之间有联系,且为之间有联系,且为m:n联系(多对多联联系(多对多联系)系),命名为命名为sc。(3)确定实体和联系的属性。实体学生确定实体和联系的属性。实体学生s的属性有:学号的属性有:学号sno,班级班级class,姓名姓名sname,性别,性别ssex,出生日期出生日期birthday,地址,地址address
5、,电话,电话tel,邮箱邮箱email,其中实体标识符为,其中实体标识符为sno(实体的主码);实体课程(实体的主码);实体课程c的的属性有:课程编号属性有:课程编号cno,课程名称,课程名称cname,学分,学分credit,其中实体,其中实体标识符为标识符为cno(实体的主码实体的主码);联系选课;联系选课sc的属性是某学生选修某课程的属性是某学生选修某课程的成绩的成绩score。利用利用E-R方法画出方法画出“学生选课管理系统学生选课管理系统”ER图,如图图,如图3-2所示。所示。.7图图3-2 “学生选课管理系统学生选课管理系统”ER图图.8数据库设计的任务是针对特定的应用需求和环境,
6、创建一个数据库设计的任务是针对特定的应用需求和环境,创建一个性能良好的数据库模式,建立数据库,并基于数据库开发及其应性能良好的数据库模式,建立数据库,并基于数据库开发及其应用软件系统,使系统能有效地收集、存贮和管理数据,并对数据用软件系统,使系统能有效地收集、存贮和管理数据,并对数据进行处理和加工。进行处理和加工。一、一、数据库设计概述数据库设计概述数据库设计步骤分为数据库设计步骤分为6个阶段个阶段:需求分析需求分析逻辑设计逻辑设计概念设计概念设计物理设计物理设计实施实施运行和维护运行和维护1. 需求分析阶段需求分析阶段进行数据库设计首先必须准确地了解与分析用户需求(包进行数据库设计首先必须准
7、确地了解与分析用户需求(包括括数据和处理数据和处理),需求分析是整个设计过程的基础,是最困难、),需求分析是整个设计过程的基础,是最困难、最耗时间的一步。需求分析做得不好,甚至会导致整个数据库最耗时间的一步。需求分析做得不好,甚至会导致整个数据库设计返工重做。设计返工重做。.92. 2. 概念结构设计阶段概念结构设计阶段概念结构设计是整个数据库设计的关键,它通过对用户需求概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体进行综合、归纳与抽象,形成一个独立于具体DBMSDBMS的概念模型的概念模型(实体模型(实体模型也叫概念模型也叫概念模型)。)。3.
8、3. 逻辑结构设计阶段逻辑结构设计阶段逻辑结构设计是将概念模型转换为某个逻辑结构设计是将概念模型转换为某个DBMSDBMS所支持的数据模所支持的数据模型(关系模型),并对其进行优化。型(关系模型),并对其进行优化。4. 4. 数据库物理设计阶段数据库物理设计阶段数据库物理设计是为逻辑数据模型选取一个最适合应用环境数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存贮结构和存贮方法)。的物理结构(包括存贮结构和存贮方法)。.105. 5. 数据库实施阶段数据库实施阶段运用运用DBMSDBMS提供的数据语言,根据逻辑设计和物理设计的结提供的数据语言,根据逻辑设计和物理设计的结果果
9、建立数据库建立数据库,编制与调试应用程序编制与调试应用程序,组织数据入库,并进行试,组织数据入库,并进行试运行。运行。6. 6. 数据库运行和维护阶段数据库运行和维护阶段数据库应用系统经过试运行之后,即可投入正式运行。在数数据库应用系统经过试运行之后,即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整和修改。据库系统运行过程中必须不断地对其进行评价、调整和修改。设计一个完善的数据库应用系统是不可能一蹴而就的,它往设计一个完善的数据库应用系统是不可能一蹴而就的,它往往是上述往是上述6个阶段的不断反复的过程。个阶段的不断反复的过程。.11现实世界是存在于人脑之外的客观世界,如现实
10、世界是存在于人脑之外的客观世界,如何使用数据来解释和认识现实世界,则需要相应何使用数据来解释和认识现实世界,则需要相应手段进行描述。手段进行描述。模型是对现实世界的模拟和抽象。船模、航模型是对现实世界的模拟和抽象。船模、航模等都是对现实世界事物的一种模拟。数据模型模等都是对现实世界事物的一种模拟。数据模型也是一种模型,它是对现实世界问题的数据特征也是一种模型,它是对现实世界问题的数据特征的描述的描述。.121.现实世界现实世界泛指存在于人们头脑之外的客观世界,其中存在着各种事物,事泛指存在于人们头脑之外的客观世界,其中存在着各种事物,事物间又具有不同的联系。为了用数据库系统来解决现实世界中的问
11、题,物间又具有不同的联系。为了用数据库系统来解决现实世界中的问题,就必须先深入实际,把要解决的问题调查清楚,分析与问题有关的事就必须先深入实际,把要解决的问题调查清楚,分析与问题有关的事物及其联系。物及其联系。关键词:关键词:事物事物联系联系2.信息世界信息世界是现实世界在人们头脑中的反映。客观事物在观念世界中称为实是现实世界在人们头脑中的反映。客观事物在观念世界中称为实体,反映事物联系的是实体模型(概念模型)。体,反映事物联系的是实体模型(概念模型)。关键词:关键词:实体实体联系联系概念模型概念模型3.数据世界数据世界信息世界中的信息经数字化处理形成计算机能够处理的数据,就信息世界中的信息经
12、数字化处理形成计算机能够处理的数据,就进入了数据世界。现实世界中的实体及其相互联系被转换成数据世界进入了数据世界。现实世界中的实体及其相互联系被转换成数据世界中的数据及其联系,这种联系是用数据模型描述的。中的数据及其联系,这种联系是用数据模型描述的。关键词:关键词:数据数据联系联系数据模型数据模型.13因此,客观事物系信息之源,是设计数据库的出发点,也因此,客观事物系信息之源,是设计数据库的出发点,也是使用数据库的最终归宿。实体模型(概念模型)与数据模型是使用数据库的最终归宿。实体模型(概念模型)与数据模型是对客观事物及其联系的两种抽象描述。数据库的核心问题是是对客观事物及其联系的两种抽象描述
13、。数据库的核心问题是数据模型,为了得到正确的模型,首先要充分了解客观事物。数据模型,为了得到正确的模型,首先要充分了解客观事物。4. 现实世界、信息世界、数据世界的关系现实世界、信息世界、数据世界的关系现实世界现实世界事物及联系事物及联系系统分析系统分析信息化信息化信息世界信息世界概念模型概念模型数据库设计数据库设计数据化数据化计算机世界计算机世界数据模型数据模型信息的三个世界的联系和转换过程信息的三个世界的联系和转换过程.14现实世界中的事物在人们头脑中反映的信息世界是用文字和符号记载下现实世界中的事物在人们头脑中反映的信息世界是用文字和符号记载下来的,描述事物的术语有以下几种:来的,描述事
14、物的术语有以下几种:1.实体(实体(Entity)客观世界中存在的并可以相互区分的事物或概念,称为实体。客观世界中存在的并可以相互区分的事物或概念,称为实体。实体可以是具体的,如一个学生、一本书;也可以是抽象的事件,如一实体可以是具体的,如一个学生、一本书;也可以是抽象的事件,如一场足球比赛。场足球比赛。实体的表征:实体的表征:实体用型(实体用型(Type)和值()和值(Value)来表征。例如:一个学)来表征。例如:一个学生是一个实体,学生的生是一个实体,学生的“学号,姓名,年龄,系别学号,姓名,年龄,系别”是实体的型描述,而具是实体的型描述,而具体的学生:体的学生:“021031001,王
15、明,王明,20,计计信系信系”是实体值。是实体值。2.属性(属性(Attribute)实体所具有的某一特性在信息世界中称为属性。一个实体可以由若干个实体所具有的某一特性在信息世界中称为属性。一个实体可以由若干个属性来刻画。例:一个学生有属性来刻画。例:一个学生有姓名姓名、性别性别、年龄年龄等属性。等属性。属性的域:属性的域:属性的取值范围称为该属性的域。属性的取值范围称为该属性的域。每个属性都有一个值域(每个属性都有一个值域(Domain),例:性别),例:性别“男男”、”女女”,年龄,年龄2035;值域有类型,可以是整数,实数或字符型等。例姓名的类型为字;值域有类型,可以是整数,实数或字符型
16、等。例姓名的类型为字符型,年龄的类型为整型。符型,年龄的类型为整型。属性的表征:属性的表征:属性用型(属性用型(Type)和值()和值(Value)表征,例:学号、姓名、)表征,例:学号、姓名、性别、年龄、是属性的型,而具体的性别、年龄、是属性的型,而具体的021031001、王明、男、王明、男、20则是属性值。则是属性值。.153.实体型(实体型(Entity Type)或实体的描述)或实体的描述具有相同属性的实体必然具有共同的特征和性质,用实体名及具有相同属性的实体必然具有共同的特征和性质,用实体名及其属性名其属性名集合集合来抽象和刻画同类实体,称为实体型。如,学生实体,来抽象和刻画同类实
17、体,称为实体型。如,学生实体,其型的描述为:学生(学号,姓名,性别,年龄)是一个实体型。其型的描述为:学生(学号,姓名,性别,年龄)是一个实体型。4.实体值实体值是实体的具体实例,是属性值的集合。如,学生王明的实体值是实体的具体实例,是属性值的集合。如,学生王明的实体值是:(是:(021031001,王明,男,王明,男,18)。)。属于同一实体集的实体的实体型是相同的,但实体值是不同的。属于同一实体集的实体的实体型是相同的,但实体值是不同的。5.实体集(实体集(Entity set)性质相同的同类实体的集合称为实体集。或同型实体的集合称性质相同的同类实体的集合称为实体集。或同型实体的集合称为实
18、体集。如,一班学生,一批书籍。为实体集。如,一班学生,一批书籍。6.码(键码(键Key)能惟一标识实体集中每个实体的属性或属性组称为实体集的码能惟一标识实体集中每个实体的属性或属性组称为实体集的码(键(键Key)。当一个实体集中包括多个码时,通常要选定其中一个)。当一个实体集中包括多个码时,通常要选定其中一个码为主码,其他是候选码,实体集中不能惟一标识实体属性的叫次码为主码,其他是候选码,实体集中不能惟一标识实体属性的叫次码。码。.167.实体集联系实体集联系建立实体模型的一个重要任务就是要找出实体集之间的联系。常建立实体模型的一个重要任务就是要找出实体集之间的联系。常见的实体集联系有以下见的
19、实体集联系有以下3种:(设种:(设A和和B为两个实体集,用为两个实体集,用 矩形矩形表示表示实体集,实体集, 菱形菱形表示联系)。表示联系)。 一对一联系一对一联系(1:1)如果如果A 中的任一实体至多对应中的任一实体至多对应B 中的一个实体;且中的一个实体;且B中的任一实中的任一实体至多对应体至多对应A中的一个实体,则称中的一个实体,则称A 与与B是一对一联系。是一对一联系。例:例:电影院观众与座位实体集之间、乘车旅客与车票之间、病人电影院观众与座位实体集之间、乘车旅客与车票之间、病人与病床之间等都是一对一联系。与病床之间等都是一对一联系。a1a2a3a4a5b1b2b3b4b5AB11示范
20、示范表示表示叫E 图,也称为E 模型.17 一对多联系一对多联系(1:N)如果如果A 中中至少至少有一个实体对应有一个实体对应B中一个以上实体,且中一个以上实体,且B中任中任一实体一实体至多至多对应对应A中一个实体,则称中一个实体,则称A对对B是一对多联系。是一对多联系。例:学校对系、班级对学生等都是一对多联系。例:学校对系、班级对学生等都是一对多联系。a1a2a3a4a5b1b2b3b4b5AB1N示范示范表示表示.18 多对多联系(多对多联系(M:N)如果如果A中至少有一个实体对应中至少有一个实体对应B中一个以上实体,且中一个以上实体,且B中中也至少有一个实体对应也至少有一个实体对应A中一
21、个以上实体,则称中一个以上实体,则称A与与B是多对多是多对多联系。联系。例如:例如:学生与课程、工厂与产品、商品与顾客等都是多对学生与课程、工厂与产品、商品与顾客等都是多对多联系。多联系。a1a2a3a4a5b1b2b3b4b5ABMN示范示范表示表示.198.E-R模型模型E-R模型是一种语义模型,又叫模型是一种语义模型,又叫E-R图、实体图、实体联系模型联系模型(EntityRelationship Approach)E-R模型的模型的构成成分构成成分是是实体集实体集、属性属性和和联系集联系集(一对一、(一对一、一对多、多对多)。构成方法如下:一对多、多对多)。构成方法如下: 实体集用实体
22、集用矩形矩形框表示,框内写上实体集名。框表示,框内写上实体集名。 实体的属性用实体的属性用圆圆或或椭圆椭圆表示,其内写上属性名,并用表示,其内写上属性名,并用无无向边向边与其实体集相连。与其实体集相连。学生学生学号学号姓名姓名性别性别年龄年龄所在系所在系.20 实体集间的联系用菱形框表示,联系以适当含义命名,名实体集间的联系用菱形框表示,联系以适当含义命名,名字写在菱形框内,用无向连线将参加相应联系的实体矩形框分字写在菱形框内,用无向连线将参加相应联系的实体矩形框分别与菱形相连,并在连线上标明联系的类型别与菱形相连,并在连线上标明联系的类型。注意:注意:1和和M要写在对应实体矩形那边的连线上,
23、不可写反。要写在对应实体矩形那边的连线上,不可写反。.21.22例:例:班级班级、学生学生实体集及其联系。实体集及其联系。性别性别学号学号姓名姓名年龄年龄学生学生属于属于班级班级班级号班级号班级名班级名人数人数n1实体集:学生:学号、姓名、性别、年龄;实体集:学生:学号、姓名、性别、年龄;班级班级: : 班级号、班级名、人数;班级号、班级名、人数;属性:属性:“学号学号”、“班级号班级号”分别是学生实体集和班级实体集的码或分别是学生实体集和班级实体集的码或键,故其属性名有下划线。键,故其属性名有下划线。“人数人数”属性是派生属性属性是派生属性( (其值可以从其他相关实体或属性中派生出其值可以从
24、其他相关实体或属性中派生出来来) ),其值可以通过计算该班级学生实体的数目而获得,故用虚椭圆形框,其值可以通过计算该班级学生实体的数目而获得,故用虚椭圆形框表示。表示。联系:联系:“属于属于”是是1 1对多,由于参与者对多,由于参与者“学生学生”在在“属于属于”联系中是联系中是全部的,所以用双线将其与全部的,所以用双线将其与“属于属于”联系相连。联系相连。 .23例:例:“课程课程”实体集、实体集、“教师教师”实体集及相互间的联系。实体集及相互间的联系。教师号教师号姓名姓名性别性别职称职称电话号电话号码码E-mailE-mail地址地址城市城市教师教师家庭地址家庭地址区区街道街道邮政编邮政编码
25、码课程课程课程号课程号课程名课程名学分学分周学时周学时教授教授nm.24其中:其中:“E-mail地址地址”属性是一个多值属性,故用双椭圆形属性是一个多值属性,故用双椭圆形框表示;框表示;“家庭地址家庭地址”属性是一个复合属性,在其下面还有属性是一个复合属性,在其下面还有4个属性与个属性与其相连。其相连。“教师号教师号”下有一下划线,表示此属性是下有一下划线,表示此属性是“教师教师”实体的码实体的码(键)。(键)。总之:总之:E-R模型是数据库设计人员与用户进行交互的最有效工模型是数据库设计人员与用户进行交互的最有效工具,用具,用E-R模型来描述概念模非常接近人的思维,易被人模型来描述概念模非
26、常接近人的思维,易被人理解,而且理解,而且E-R模型与具体的计算机系统无关,易被不具模型与具体的计算机系统无关,易被不具备计算机知识的最终用户接受。备计算机知识的最终用户接受。.25人们常常首先将现实世界人们常常首先将现实世界抽象为信息世界,然后将信息世抽象为信息世界,然后将信息世界转换为机器世界。也就是说,界转换为机器世界。也就是说,首先把现实世界中的客观对象抽首先把现实世界中的客观对象抽象为某一种信息结构,这种信息象为某一种信息结构,这种信息结构并不依赖于具体的计算机系结构并不依赖于具体的计算机系统,不是某一个统,不是某一个DBMS支持的数支持的数据模型,而是概念级的模型;然据模型,而是概
27、念级的模型;然后再把概念模型转换为计算机上后再把概念模型转换为计算机上某一某一DBMS支持的数据模型。支持的数据模型。现实世界现实世界认认识识抽抽象象信息世界:概念模型信息世界:概念模型机器世界机器世界DBMS支持的数据模型支持的数据模型对象的抽象过程对象的抽象过程概念模型小结概念模型小结.26定义:反映实体集之间联系的模型称为模念模型,又称为实体定义:反映实体集之间联系的模型称为模念模型,又称为实体模型。它独立于计算机系统,它是按用户的观点来描述某个模型。它独立于计算机系统,它是按用户的观点来描述某个业务所关心的信息结构,是对现实世界的第一层抽象。业务所关心的信息结构,是对现实世界的第一层抽
28、象。数据库设计的重要任务就是建立概念数据库设计的重要任务就是建立概念 ( (实体实体) )模型,它是概念数模型,它是概念数据库的具体描述。在建立实体模型中,实体要逐一命名以示据库的具体描述。在建立实体模型中,实体要逐一命名以示区别,并描述其间的各种联系。区别,并描述其间的各种联系。概念模型的表示:用概念模型的表示:用E-RE-R图(图(E-RE-R模型、实体模型、实体- -联系模型)。联系模型)。.2.1 任务情境任务情境将任务将任务1的的“学生选课管理系统学生选课管理系统”的的ER模型转换为关系模型模型转换为关系模型2.2 任务实现任务实现首先转换两个实体为关系。首先转换两个实体为关系。 学
29、生关系模式学生关系模式s(sno,class,sname,ssex,birthday,address,tel,email) 课程关系模式课程关系模式c(cno,cname,credit)再转换一个联系为关系。选课关系模式再转换一个联系为关系。选课关系模式sc(sno,cno,score)最后将具有相同码的关系合并,得出新的关系模型如下表最后将具有相同码的关系合并,得出新的关系模型如下表3-2所示。所示。.28在描述现实世界的过程中,通常将在描述现实世界的过程中,通常将模型分为两个层次模型分为两个层次:第第1是概念模型是概念模型(也称信息模型、实体模型),它是对(也称信息模型、实体模型),它是对
30、现实世界的第一层抽象,是根据用户的观点对信息建模,现实世界的第一层抽象,是根据用户的观点对信息建模,与计算机系统无关;与计算机系统无关;第第2是数据模型是数据模型,是对现实世界的第二层抽象,直接与,是对现实世界的第二层抽象,直接与DBMS有关,这类模型有严格的形式化定义,以便于在计有关,这类模型有严格的形式化定义,以便于在计算机系统中实现。它通常有一组严格定义的无二义性语法算机系统中实现。它通常有一组严格定义的无二义性语法和语义的数据库语言,人们可以用这种语言来定义、操作和语义的数据库语言,人们可以用这种语言来定义、操作数据库中的数据。数据库中的数据。定义:定义:一般地讲,数据模型是严格定义的
31、概念的集合,一般地讲,数据模型是严格定义的概念的集合,这些概念精确地描述了系统的这些概念精确地描述了系统的静态特征静态特征、动态特征动态特征和和完整完整性约束性约束。因此,数据模型通常由。因此,数据模型通常由数据结构数据结构、数据操作数据操作和和完完整性约束整性约束三部分组成,又称为数据模型的三要素。三部分组成,又称为数据模型的三要素。.29 数据模型三要素数据模型三要素1.1.数据结构数据结构数据结构是所研究的对象类型的集合。它规定了数据结构是所研究的对象类型的集合。它规定了如何把基本的数据项组织成较大的数据单位,以描述如何把基本的数据项组织成较大的数据单位,以描述数据的类型、内容、性质和数
32、据之间的相互关系。它数据的类型、内容、性质和数据之间的相互关系。它是数据模型最基本的组成部分,规定了数据模型的是数据模型最基本的组成部分,规定了数据模型的静静态特性态特性。在数据库系统中通常按照数据结构的类型来命名在数据库系统中通常按照数据结构的类型来命名数据模型。例如,采用层次型数据结构、网状型数据数据模型。例如,采用层次型数据结构、网状型数据结构和关系型数据结构的数据模型分别称为层次模型、结构和关系型数据结构的数据模型分别称为层次模型、网状模型和关系模型。网状模型和关系模型。.302.2.数据操作数据操作数据操作是对数据库中各种对象(型)的实例(值)数据操作是对数据库中各种对象(型)的实例
33、(值)允许执行的操作的集合,包括操作及操作规则。数据库操允许执行的操作的集合,包括操作及操作规则。数据库操作主要包括查询和更新(包括扦入、删除、修改)两类操作主要包括查询和更新(包括扦入、删除、修改)两类操作。作。数据模型要给出这些操作确切的含义,操作规则和实数据模型要给出这些操作确切的含义,操作规则和实现操作的语言。因此,数据操作规定了数据模型的现操作的语言。因此,数据操作规定了数据模型的动态特动态特性性。3.数据约束数据约束数据约束是指一组完整性规则的集合。数据约束是指一组完整性规则的集合。完整性规则是对给定的数据模型中的数据及其联系所完整性规则是对给定的数据模型中的数据及其联系所制定的制
34、定的约约束和依存束和依存规则规则,用以限定符合数据模型的数据库,用以限定符合数据模型的数据库状态以及可容许的状态改变,以保证数据库中的数据的正状态以及可容许的状态改变,以保证数据库中的数据的正确性、有效性和相容性。确性、有效性和相容性。.31完整性约束的定义对数据模型的动态特性做了进一步的描完整性约束的定义对数据模型的动态特性做了进一步的描述与限定。因为在某些情况下,若只限定使用的数据结构及可述与限定。因为在某些情况下,若只限定使用的数据结构及可在该结构上执行的操作,仍然不能确保数据的正确性、有效性在该结构上执行的操作,仍然不能确保数据的正确性、有效性和相容性。为此,每种数据模型都规定有通用和
35、特殊的完整性和相容性。为此,每种数据模型都规定有通用和特殊的完整性约束条件:约束条件: 通用的完整性约束条件:通用的完整性约束条件:通常把具有普遍性的问题归纳成一组通用的约束规则,只通常把具有普遍性的问题归纳成一组通用的约束规则,只有在满足给定约束规则的条件下才允许对数据库进行更新操作。有在满足给定约束规则的条件下才允许对数据库进行更新操作。例如,关系模型中通用的约束规则是实体完整性和参照完整性。例如,关系模型中通用的约束规则是实体完整性和参照完整性。 特殊的完整性约束条件。特殊的完整性约束条件。把能够反映某一应用所涉及的数据所必须遵守的特定的语把能够反映某一应用所涉及的数据所必须遵守的特定的
36、语义约束条件定义成特殊的完整性条件。例如,关系模型中特殊义约束条件定义成特殊的完整性条件。例如,关系模型中特殊的约束规则是用户定义的完整性。又例如,在实行学分制的条的约束规则是用户定义的完整性。又例如,在实行学分制的条件下,一个学籍管理数据库中学生的修业年限限定在件下,一个学籍管理数据库中学生的修业年限限定在6年之内。年之内。.32 常见的三种数据模型常见的三种数据模型数据库系统中最常使用的数据模型是:数据库系统中最常使用的数据模型是:层次模型(层次模型(hierarchical model)网状模型(网状模型(network model)关系模型(关系模型(relational)不同的数据模
37、型具有不同的数据结构形式、操作特点。不同的数据模型具有不同的数据结构形式、操作特点。1. 层次模型:是数据库中使用得较早的一种数据模型层次模型:是数据库中使用得较早的一种数据模型ABCDEF院系院系院系编号院系编号 院系名称院系名称 办公地点办公地点教研室教研室教研室编号教研室编号 教研室名称教研室名称学号学号 姓名姓名 年龄年龄学生学生教师教师教师号教师号 教师姓名教师姓名 专业方向专业方向图图1.层次模型示例层次模型示例图图2.学校、教学单位层次模型示例学校、教学单位层次模型示例.332.网状模型网状模型在现实世界中事物之间的联系更多的是非层次关系,用层次模在现实世界中事物之间的联系更多的
38、是非层次关系,用层次模型表示非树形结构是很不直接的,网状模型则可以克服这一弊型表示非树形结构是很不直接的,网状模型则可以克服这一弊病。病。结构是结点的连通图:结构是结点的连通图:ABCD学号学号 姓名姓名 年龄年龄 性别性别学生学生(s)课程课程(c)学生选课学生选课(sc)学号学号 课程号课程号 成绩成绩课程号课程号 课程名课程名学生成绩单学生成绩单(ssc)课程成绩单课程成绩单(csc).343.关系模型关系模型关系模型是目前最重要的、应用最广泛的一种数关系模型是目前最重要的、应用最广泛的一种数据模型。据模型。原因:首先,关系模型是建立在严格的数学概念原因:首先,关系模型是建立在严格的数学
39、概念基础上的,有其坚实的数学基础。其次这种数据模型基础上的,有其坚实的数学基础。其次这种数据模型被实践证明是正确有效的数据模型。被实践证明是正确有效的数据模型。 数据结构数据结构在用户看来,一个关系模型的逻辑结构是一张二在用户看来,一个关系模型的逻辑结构是一张二维表,它由行和列组成。亦即,在关系数据模型中,维表,它由行和列组成。亦即,在关系数据模型中,把二维表格称为关系(把二维表格称为关系(Relation)。)。.35术语:术语: 字段(字段(Field)信息世界中的信息世界中的“属性属性”一词,在数据世界中使用一词,在数据世界中使用“数据项数据项”一词进行描述;从数据库的角度讲,数据项就是
40、字段;从表格一词进行描述;从数据库的角度讲,数据项就是字段;从表格的角度讲,数据项称为列,通常使用字段这一名词比较通俗。的角度讲,数据项称为列,通常使用字段这一名词比较通俗。例如:学生的学号、姓名、年龄、性别就是字段的字段名,例如:学生的学号、姓名、年龄、性别就是字段的字段名,字段和属性一样,也用字段和属性一样,也用“型型”和和“值值”表征。由此可见,字段表征。由此可见,字段、属性、数据项、列这些术语,所描述的对象是相同的,只是在属性、数据项、列这些术语,所描述的对象是相同的,只是在不同角度,叫法不同而已。不同角度,叫法不同而已。 记录(记录(Record)字段的有序集合称为记录,在关系模型中
41、,记录称为元组;字段的有序集合称为记录,在关系模型中,记录称为元组;在表中,记录称为一行;在概念模型中称为实体。即实体、记在表中,记录称为一行;在概念模型中称为实体。即实体、记录、元组和行是从不同的角度描述同一个对象。录、元组和行是从不同的角度描述同一个对象。记录也由记录也由“型型”和和“值值”来描述:来描述:记录型是字段型的集合,记录值是字段值的集合。记录型是字段型的集合,记录值是字段值的集合。.36例,组成一个学生行的字段如:例,组成一个学生行的字段如:“学号,姓名,年龄,性学号,姓名,年龄,性别别”是记录的型,而是记录的型,而“021031002,王小艳,王小艳,18,女,女”就是一就是
42、一条记录的值。条记录的值。 表表 即关系即关系记录是字段的集合,表是记录的集合。记录的型和值构成记录是字段的集合,表是记录的集合。记录的型和值构成了关系数据库的基本单位即表。了关系数据库的基本单位即表。显然,显然,表表也分为型和值,表的型也称为也分为型和值,表的型也称为关系模式关系模式,或称为,或称为表结构表结构,显然是由一条列属性(字段)型组成的。,显然是由一条列属性(字段)型组成的。关系模式一般的表示是:关系模式一般的表示是:关系名关系名(属性属性1,属性,属性2,属性属性n)。例:学生(学号,姓名,性别,年龄,所在系)。例:学生(学号,姓名,性别,年龄,所在系)。表的值由记录的值组成。表
43、的值由记录的值组成。 关键字(码,键)关键字(码,键)表中能唯一确定一条记录的表中能唯一确定一条记录的字段字段或或字段组字段组。其余为次码。其余为次码。主码:一个表中包括有多个码时,通常选定其中一个码为主码主码:一个表中包括有多个码时,通常选定其中一个码为主码(Primary Key),其他的码为侯选码。),其他的码为侯选码。.37 域:字段的取值范围域:字段的取值范围 关系数据库关系数据库所谓关系数据库就是由若干个表组成的集合。亦即,关系所谓关系数据库就是由若干个表组成的集合。亦即,关系数据库至少有一个表,才能称之为关系数据库。数据库至少有一个表,才能称之为关系数据库。在关系模型中,在关系模
44、型中,实体集实体集以及之间的以及之间的联系联系都是用关系(都是用关系(表表)来表示。即用来表示。即用二维表二维表表示表示实体集及其属性实体集及其属性,用,用二维表二维表描述实体描述实体集间的集间的联系联系。例如:关系模型中,学生、课程、学生与课程之间的联系例如:关系模型中,学生、课程、学生与课程之间的联系表示为三个关系:表示为三个关系:学生(学号,姓名,性别,年龄,所在系);学生(学号,姓名,性别,年龄,所在系); 课程(课程号,课程名,先行课);课程(课程号,课程名,先行课); 选修(学号,课程号,成绩)选修(学号,课程号,成绩)学生学生选修选修课程课程mn.38 关系组成与性质关系组成与性
45、质一个关系实际上就是一个表,表是由不同的列组合而成的。例:一个关系实际上就是一个表,表是由不同的列组合而成的。例:“学生学生”关系由型和值组成一个表。型部分由关系由型和值组成一个表。型部分由5个字段组成,每个字段组成,每个字段有:字段名、字段类型、字段宽度。如学号字段:名个字段有:字段名、字段类型、字段宽度。如学号字段:名“学号学号”,类型,类型C(字符型),宽度(字符型),宽度8,表示最大取值范围。值,表示最大取值范围。值部分由一条一条记录值组成。即这个表是由部分由一条一条记录值组成。即这个表是由5个个 字段和字段和5条记录条记录组成。字段的型、值,域都被一一描述在表中组成。字段的型、值,域
46、都被一一描述在表中。型型 学号学号 姓名姓名 年龄年龄 性别性别 班级班级 201201 201201 张三张三 1818 男男 物联物联20122012 201202 201202 李四李四 2020 女女 物联物联20122012 201203 201203 王五王五 1919 男男 物联物联20122012 201204 201204 赵七赵七 1818 女女 物联物联201220128 8C C8 8C C2 2N N1010C CC C2 2值值.39从这个关系中可以得出一些重要的结论:从这个关系中可以得出一些重要的结论:表中每一列元素是类型相同的数据;表中每一列元素是类型相同的数据
47、;列不能重名,列的顺序可以任意放置;列不能重名,列的顺序可以任意放置;行的顺序也可以任意,表中任意两行不能完全相同(即没行的顺序也可以任意,表中任意两行不能完全相同(即没有重行);有重行);表中元素是不可再分的最小数据项(描述对象属性的数表中元素是不可再分的最小数据项(描述对象属性的数据)。据)。 E模型的转换模型的转换模型原主要用于数据库逻辑设计。数据库逻辑设计模型原主要用于数据库逻辑设计。数据库逻辑设计是由客观世界到具体是由客观世界到具体DBMS所支持的数据模式的转换过程。所支持的数据模式的转换过程。ER模型就是插在客观世界与具体模型就是插在客观世界与具体DBMS所支持的模型之间的一个所支
48、持的模型之间的一个层次,独立于具体的层次,独立于具体的DBMS。因此在实际的数据库设计过程中。因此在实际的数据库设计过程中必须将必须将E模型转换为具体模型转换为具体DBMS所支持的数据模型。所支持的数据模型。.40将将E ER R模型转换为等效的关系数据模型的基本转换模型转换为等效的关系数据模型的基本转换规规则则如下:如下:1. 1. 把把E ER R图中所有图中所有实体集及其属性实体集及其属性用用关系模式关系模式来表来表示;示;2. 2. 把实体集间的把实体集间的联系联系及与被联系的两实体集中的有及与被联系的两实体集中的有关信息也用一个关系模式表示。关信息也用一个关系模式表示。具体如下:具体
49、如下:若两实体集间为若两实体集间为多对多多对多联系,则两实体集关系的主关联系,则两实体集关系的主关键字(主码)均放入联系中作为其主关键字(主码)(当键字(主码)均放入联系中作为其主关键字(主码)(当然联系关系中还可包括其它一些有用的附加信息);然联系关系中还可包括其它一些有用的附加信息);若是若是一对多一对多联系,则可把表示联系,则可把表示“一一”关系的主关键字关系的主关键字放入表示放入表示“多多”关系中作为其外来关键字(外码、外键),关系中作为其外来关键字(外码、外键),而无需再建立联系关系。而无需再建立联系关系。.41例:例:E ER R图:图:教师教师成绩成绩课程课程课程号课程号课程名课
50、程名学分学分周学时周学时讲授讲授教师号教师号姓名姓名性别性别职称职称 学生学生学号学号姓名姓名年龄年龄性别性别上课上课选课选课1nnn1m.42按规则转换为如下按规则转换为如下4个关系:个关系:课程(课程(课程号课程号,课程名,学分,周学时),课程名,学分,周学时)学生(学生(学号学号,姓名,年龄,性别,姓名,年龄,性别,教师号教师号)教师(教师(教师号教师号,姓名,性别,职称,姓名,性别,职称,课程号课程号)选课(选课(学号学号,课程号课程号,成绩),成绩)这样就得到一个关系数据模型。这样就得到一个关系数据模型。关系模型要求关系必须是规范化的,即要求关系模式必须关系模型要求关系必须是规范化的
51、,即要求关系模式必须满足一定的规范条件,这些规范条件中最基本的一条就是:关满足一定的规范条件,这些规范条件中最基本的一条就是:关系的每一个分量(字段)必须是一个不可分的数据项,也就是系的每一个分量(字段)必须是一个不可分的数据项,也就是说,不允许表中还有表。下面表不符合要求:说,不允许表中还有表。下面表不符合要求:学号学号姓名姓名性别性别年龄年龄系别系别成绩成绩数学数学物理物理英语英语数据库数据库200401李勇李勇男男20信息工程系信息工程系80678688200402刘健刘健女女19信息工程系信息工程系90789599200403赵三丰赵三丰男男20信息工程系信息工程系78909077.4
52、3 数据操作数据操作关系模型中常用的数据操作包括两大部分:关系模型中常用的数据操作包括两大部分:查询操作查询操作(主要部分主要部分):选择选择,投影投影,连接连接,除,并,除,并,交交,差等;差等;更新操作更新操作:有:有插入插入、删除删除和和修改修改。操作特点:关系模型中的数据操作特点是操作特点:关系模型中的数据操作特点是“集合操作集合操作”方方式。即操作的对象和结果都是集合(即又一个关系)。这种操式。即操作的对象和结果都是集合(即又一个关系)。这种操作方式也称为作方式也称为一次一集合一次一集合的方式。相应地,非关系数据模型的的方式。相应地,非关系数据模型的数据操作方式则为一次一记录的方式。
53、数据操作方式则为一次一记录的方式。 完整性约束完整性约束:关系模型中关系的数据操作必须满足关系:关系模型中关系的数据操作必须满足关系的完整性约束条件。的完整性约束条件。关系的完整性约束条件包括三大类:关系的完整性约束条件包括三大类: 实体完整性:实体完整性: 参照完整性:参照完整性: 用户定义的完整性:是应用领域需要遵循的约束条件,用户定义的完整性:是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。体现了具体领域中的语义约束。是关系模型中必须满足的完整性约束条件,应该由关系是关系模型中必须满足的完整性约束条件,应该由关系系统自动支持;系统自动支持;.441.实体完整性实体完整性(ent
54、ity integrity)规则规则1:实体完整性规则:若属性:实体完整性规则:若属性A是基本关系是基本关系R的的主属性,则属性主属性,则属性A不能取空值。不能取空值。例:学生关系中,例:学生关系中,“学号学号”属性是主属性,则属性是主属性,则“学学号号”值不能为空。学生关系的其他属性不是主属性,可值不能为空。学生关系的其他属性不是主属性,可以是空值。以是空值。实体完整性规则是基本关系的所有主属性都不能取实体完整性规则是基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。空值,而不仅是主码整体不能取空值。例:学生选课关系例:学生选课关系“选修(学号,课程号,成绩)选修(学号,课程号,
55、成绩)”中,(学号,课程号)为主码,则学号和课程号两属性中,(学号,课程号)为主码,则学号和课程号两属性都不能取空值。都不能取空值。.452.参照完整性参照完整性(referential integrity)现实世界中的实体之间往往存在某种联系,在关系模型现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系与关系间的在着关系与关系间的引用引用。定义:定义:设设F是基本关系是基本关系R的一个或一组属性,但不是关系的一个或一组属性,但不是关系R的码,如果的码,如果F与基本关系与基本关系S的主
56、码的主码Ks相对应,则称相对应,则称F是基本关是基本关系系R的外码的外码(Foreign key),并称基本关系,并称基本关系R为参照关系为参照关系(referencing relation),基本关系,基本关系S为被参照关系为被参照关系(referenced relation).46例例1:专业实体集和学生实体集可以用下面的关系表示,其:专业实体集和学生实体集可以用下面的关系表示,其中主码用下划线标识中主码用下划线标识,外码用下划线标识,外码用下划线标识:专业(专业(专业号专业号,专业名),专业名)学生(学生(学号学号,姓名,性别,年龄,姓名,性别,年龄,专业号专业号)这两个关系之间存在着属
57、性的引用,即学生关系引用了专这两个关系之间存在着属性的引用,即学生关系引用了专业关系的主码业关系的主码“专业号专业号”。显然,。显然,学生学生关系中关系中专业号专业号值必须是确值必须是确实存在的实存在的“专业专业”的的专业号专业号,即专业关系中有该专业的记录。这,即专业关系中有该专业的记录。这也就是说,学生关系中的某个属性的取值需要参照专业关系的属也就是说,学生关系中的某个属性的取值需要参照专业关系的属性取值。性取值。学生关系的学生关系的“专业号专业号”属性与专业关系的主码属性与专业关系的主码“专业号专业号”相对应,因此相对应,因此“专业号专业号”属性是学生关系的外码。专业关系为被属性是学生关
58、系的外码。专业关系为被参照关系,学生关系为参照关系。参照关系,学生关系为参照关系。学生关系学生关系专业关系专业关系专业号专业号关系参照图关系参照图.47例例2:学生、课程、学生与课程之间的多对多联系的:学生、课程、学生与课程之间的多对多联系的3个关个关系:系:学生(学生(学号学号,姓名,性别,专业号,年龄);,姓名,性别,专业号,年龄);课程(课程(课程号课程号,课程名,学分);,课程名,学分);选选修修(学号学号,课程号课程号,成绩),成绩)选修关系引用了学生的主码选修关系引用了学生的主码“学号学号”和课程关系的主码和课程关系的主码“课程号课程号”。同样,选修关系中的学号值必须是确实存在的学
59、生。同样,选修关系中的学号值必须是确实存在的学生的学号,选修关系中课程号值也必须是确实存在的课程的课程号,的学号,选修关系中课程号值也必须是确实存在的课程的课程号,换句话说,选修关系中某些属性的取值需要参照其他关系的属性换句话说,选修关系中某些属性的取值需要参照其他关系的属性取值。取值。学生关系学生关系关系参照图关系参照图学号学号选修关系选修关系课程关系课程关系课程号课程号.48参照完整性规则就是定义外码与主码之间的引用规则。参照完整性规则就是定义外码与主码之间的引用规则。参照完整性规则:参照完整性规则:若属性(或属性组)若属性(或属性组)F是基本关系是基本关系R的外码,它与基本关系的外码,它
60、与基本关系S的主码的主码KS相对应,则对于相对应,则对于R中每个元组在中每个元组在F上的值必须为:上的值必须为:或者取空值(或者取空值(F的每个属性值均为空值);的每个属性值均为空值);或者等于或者等于S中某个元组的主码值。中某个元组的主码值。例如:对于例例如:对于例1,学生关系中每个元组的专业号属性只能取下面两,学生关系中每个元组的专业号属性只能取下面两类值:类值:.空值:表示尚未给该学生分配专业;空值:表示尚未给该学生分配专业;.非空值:这时该值必须是专业关系中某个元组的专业号值,表非空值:这时该值必须是专业关系中某个元组的专业号值,表示该学生不可能分配到一个不存在的专业中,即被参照关系示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年健康养生特色餐饮店场地租赁与装修改造合同
- 2025年城市广场座椅租赁与定期清洁保养服务合同
- 2025年度校园文化节主持人选拔与活动策划执行合同
- 2025年科技孵化器入驻协议含创业项目争议快速解决机制
- 2025年绿色物流车辆运输节能减排服务合作协议
- 村土地租赁合同
- 通风方面相关知识培训课件
- 2025年新能源商用车辆市场新能源环卫车应用场景优化报告:市场分析
- 2025精简版数码印刷系统购销合同书
- 2025年工业互联网平台AR交互技术在工业现场维护与管理中的应用分析
- 机动车维修竣工出厂合格证样式
- 广东省地质灾害危险性评估报告
- GB/T 8566-2007信息技术软件生存周期过程
- GB/T 32486-2016舞台LED灯具通用技术要求
- 锚杆工程隐蔽验收记录
- 整套教学课件《现代心理与教育统计学》研究生
- 油漆安全技术说明书(MSDS)
- 基层医院如何做好临床科研课件
- RBA(原EICC)ERT应急准备与响应培训课件
- 食品安全知识竞赛参考题库500题(含答案)
- 河西走廊课件
评论
0/150
提交评论