资源描述
第二章 数据库模型
序:联系是普遍存在的,任何人都不能否定,必须恰当的处理好
人类将现实事物通过计算机进行处理的过程是
现实世界
抽象
信息世界
(概念模型)
抽象
计算机世界
(数据模型)
第一节 模型与抽象
一、基本概念
1.模型:现实世界特征的模拟和实现。
2.模型的分类
根据模型的应用目的不同分为:概念模型(信息模型)、数据模型
概念模型:按用户的观点来对数据信息建模,主要用于数据库设计。
数据模型:在数据库中用来抽象、表示和处理现实世界的数据和信息。即现实世界的模拟。主要包括网状模型、层次模型、关系模型、面向对象,按计算机系统的观点对数据进行建模。主要用于DBMS的实现,是数据库系统的核心和基础
二、抽象过程
1.抽象
例:思考如何介绍自己? 根据自己的特点分类介绍
数学上遇到的三角形、正方形、是不是一种抽象? 是
2.抽象过程
客观对象抽象为数据模型的过程:
先将现实世界抽象为信息世界,然后将信息世界转换为机器世界
现实世界的客观对象抽象为某种不依赖于具体计算机系统的信息结构(概念级模型),然后将概念模型转换为计算机上某个DBMS支持的数据模型。如图:
三、概念模型
1.基本概念
实体(entity):客观存在并可以相互区别的事物。可以是具体的人、事、物,也可是抽象的概念或联系。
属性(Attribute):实体所具有的某一特性,一个实体可以由多个特性。
例:学生实体有学号、姓名、性别、出生年份、系、入学时间等属性组成。
码(key):唯一标示实体的属性集成为码,如学号是学生实体的码,姓名不是。
域(domain):属性的取值范围为该属性的域,如性别属性的域为(男,女)
实体型(entity type):具有相同属性的实体必然具有相同的特征和性质,用实体名和属性名集合来抽象和刻画同类实体,称为实体型,
如:学生(学号、姓名、性别、出生年份、系、入学时间)
实体集:同型实体的集合。如:全体学生
联系(relationship):现实世界的联系在信息世界中反映为实体(型)内部的和实体(型)之间的联系。
实体内部的联系常指组成实体的各属性之间的联系。
实体间的联系指不同实体集之间的联系。分三类:
一对一联系(1:1)
如果实体集A中的每一个实体,实体集B中至多有一个实体与之相对应,反之亦然,称实体集A和B有一对一联系。
如:学校里一个班级只有一个班长,一个班长只在一个班级任职,则班级和班长之间具有一对一联系
一对多联系(1:n)
如果实体集A中的每一个实体,实体集B中有n个实体(n>=0)与之相对应,实体集B中的每一个实体,实体集A中至多有1个实体与之相对应, 称实体集A和B有一对多联系。
如:学校里一个班级有若干个学生,每个学生只在一个班级学习,则班级和学生之间具有一对多联系
多对多联系(M:N)
如果实体集A中的每一个实体,实体集B中有n个实体(n>=0)与之相对应,实体集B中的每一个实体,实体集A中有m个实体(m>=0)与之相对应, 称实体集A和B有多对多联系。
例:一个班级有多个老师,一个老师带多个班级的课,教师和班级之间
多个实体间也存在联系,同一实体集内的各实体之间也可以在各种联系
如:三个实体供应商、项目、零件三实体间;职工实体集内领导被领导的联系。
表示的方法都是使用E-R图
2.概念模型的表示方法(E-R图)——掌握
(1)E-R图中描述方法
实 体 型:用矩形□表示,矩形框内写明实体名
属 性:用椭圆形○表示,并用无向边将其与相应的实体连接起
联系本身:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,
同时在无向边旁标上联系的类型(1:1、1:n或m:n) 联系本身也是一种实体型,也可以有
属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来
E-R图步骤:画出各实体、联系,添加各自属性;
用无向边将实体、联系连接; 标注联系类型
将该图中比较复杂的一种拿出来逐步讲解其实现过程,然后要学生当堂练习,画出一个具体的例子,并给出正确答案。
四、数据模型
数据模型要满足三方面要求:
1)能比较真实的模拟现实世界;2)容易为人所理解;3)便于计算机上实现
1.数据模型的组成
数据模型是严格定义的一组概念的集合,他们精确的描述了系统的静态特性、动态特性和完整性约束条件。由数据结构、数据操作和完整性约束三部分组成
(1)数据结构:是研究的对象类型的集合
对象主要包括两类:
*与数据类型、内容、性质有关的对象,如网状模型中的数据项、记录;
*与数据之间联系有关的对象,如网状模型中的系型。
数据结构是数据模型性质的最重要的方面,数据库中按数据结构名来命名数据模型,它是对系统静态特性的描述
(2)数据操作:对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。对系统动态特性的描述。
包括:检索和更新(插入、删除、修改)两大类
(3)数据的约束条件:是一组完整性规则的集合。
完整性规则定义:是给定的数据模型中数据及其联系所具有的制约和依存的规则,用以限定符合数据模型的数据库状态极状态的变化,用以保证数据的正确、有效、相容。
2、常用的数据模型
层次模型、网状模型、关系模型、面向对象模型(面向对象技术方法中)
(1)非关系模型:包括层次模型和网状模型 ,实体用记录表示,属性对应记录的数据项,实体间联系转换成记录之间的两两关系。
基本层次联系:是非关系模型中数据结构的单位,指两个记录以及他们之间的一对多(包括一对一)的联系
(2)层次模型(树形结构)
数据库中定义的基本层次的联系的集合必须满足下面两个条件:
有且只有一个节点没有双亲结点,该结点为根结点;
根以外的其它结点有且只有一个双亲节点。
层次数据模型的存储实现方法(两种)
A)邻接法
B)链接法
层次模型的优缺点
优点:本身比较简单;对于实体间联系是固定的,性能优于关系模型,不低于网状模型;
提供了良好的完整性支持。
缺点:
现实世界联系非层次性的,只能通过引入冗余数据或创建非自然的数据组织来解决;
对插入和删除操作的限制比较多;
查询子女结点必须通过双亲节点;
由于结构严密,层次命令趋于程序化。
(3)网状模型
网状模型的基本次联系集合满足条件:
A)允许一个以上的结点无双亲;B)一个结点可以有多于一个的双亲
网状模型优点
能直接描述现实世界; 有良好的性能,存取效率高
缺点
结构复杂,随环境的扩大,数据库结构会越来越复杂,不利于最终用户掌握;
其DDL,DML语言复杂用户不容易使用
第二节 关系数据模型
序:先看一个“图书借阅管理系统“,让学生有个整体的认识,从而调动学生学习数据库知识的积极性。让学生明确学习的目的和方向。
课前要把两个系统调试好,并在数据表中填入相应的数据,以便于课堂使用
一、关系数据模型的构成
1.关系数据模型的数据结构
在关系模型中:现实世界的实体以及实体间的各种联系均用关系来表示。
用户看来:关系模型中数据的逻辑结构是一张二维表,由行和列组成。
例:
关系:一个关系常对应一个表
元组:表中的一行就为一个元组
属性:表中的一列就为一个属性,给每个属性起的名字就为属性名,如上表有5个属性。
域:属性值的范围。
分量:元组的一个属性值。
关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,…,属性N)
关系满足条件:关系的每一个分量是一个不可分的数据项,既不允许表中还有表
例:课本图1.28
练习:打开图书管理系统中的表让学生分析上面的各项概念具体内容
2.关系模型的操作和完整性约束
1)操作主要包括:查询(Query)、插入(Insert)、删除(Delete)、和修改(Update)数据
演示“图书管理系统“中的各项操作。
查询(Query)主要包括:选择(select)、投影(Projiect)、连接(Join)、除(Divide)、并(Intesection)、差(Difference)
关系操作的特点:操作的对象和结果都是集合
2)关系语言
可分三类:关系代数语言、关系演算语言(元组、域)、具有双重特点的语言如SQL。
关系数据语言共同特点:语言具有完备的表达能力,是非过程或的集合操作语言,功能强,能嵌入高级语言中。
3)关系的三类完整性约束 (见第三部分内容)
实体完整性、参照完整性、用户定义的完整性
4)存储结构
实体间的联系用表来表示,数据库的物理组织中,表以文件形式存储,对应一个系统文件
3.关系数据模型的优缺点
优点:
建立在严格数学概念基础上的;
概念单一、数据结构简单、清晰,用户易懂易用;
存取路径对用户透明,具有更高的数据独立性、更好的安全保密性,简化了程序员的工作和数据库开发建立的工作。
缺点:由于存取路径对用户透明,查询效率往往不如非关系数据模型,为提高性能,必须对查询请求进行优化,增加了数据库管理系统的开发难度。
二、关系数据结构及形式化定义
1.关系的基本概念
1)域:一组具有相同数据类型的值的集合。如{2,3},同数学中的域
2)笛卡尔积(Cartesian Product):
给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:
D1xD2x…xDn={(d1,d2,…,dn)|diεDi,i=1,2,…n}
其中每一个元素(d1,d2,…,dn)叫做一个n元组或简称元组,元素中的每一个值di叫做一个分量。
若Di(I=1,2,…,n)为有限集,基数为mi(I=1,2,…,n),则D1Xd2x…xDn的基数为
M=
如:三个域 D1=导师集合 SUPERVISOR=张庆、刘易
D2=专业集合 SPECIALITY=计算机,信息
D3=研究生集合 POSTGRADUATE=李勇,刘晨,王敏
则D1 x D2 xD3 为
SUPERVISOR
SPECIALITY
POSTGRADUATE
张庆
计算机
李勇
张庆
计算机
刘晨
张庆
计算机
王敏
张庆
信息
李勇
张庆
信息
刘晨
张庆
信息
王敏
刘易
计算机
李勇
刘易
计算机
刘晨
刘易
计算机
王敏
刘易
信息
李勇
刘易
信息
刘晨
刘易
信息
王敏
基数为:2*2*3=12
3)关系
a)概念:
D1 x D2 x … x Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为R(D1,D2,…,Dn)这里R表示关系的名字,n是关系的目或度。
关系中的每个元素是关系中的元组,通常用t表示
当n=1时,称该关系为单元关系。当n=2时,称该关系为二元关系。
关系是笛卡尔积有限子集,关系也是一个二维表,表的每行都为一个元组,每列对应一个域。
由于列的域可以相同,为区分各列,必须对每列起一个名字,称为属性。n目关系有n个属性。
候选码:关系中的某一个属性组的值能唯一的标识一个元组,称该属性组为候选码。
若一个关系有多个候选码,则选定其中一个为主码。主码的诸属性为主属性。
不包含在任何候选码中的属性为非码属性。
最简单情况下,候选码只包含一个属性;极端情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码。
由于一个研究生只师从于一个导师,学习某一个专业,所以笛卡尔积中的许多元组是无意义的。可以包含三个元组(若假设学生姓名唯一,可作为该关系的主码)
张庆
信息
李勇
张庆
信息
刘晨
刘易
信息
王敏
b)关系三种类型:
基本关系(又称基本表或基表):实际存在的表,实实际存储数据的逻辑表示
查询表:查询结果对应的表。
视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。(临时表)
c)关系模型数据结构的限定和扩充
关系可是一个无限集合,笛卡尔积不满足交换率,即(d1,d2,…,dn)<>(d2,d1,…,dn),当关系作为关系数据模型的数据结构时,需给与如下限定和扩充:
无限关系在数据库系统中是无意义的,因此限定关系数据模型中的关系必须是有限集合;
通过关系的每一列附加一个属性名的方法取消关系的有序性即:
(d1,d2,…,di,dj,…,dn)(d1,d2,…,dj,di,…,dn)
d)关系的六条性质:(以前面已经制作的具体的数据表为例,如学生信息表等进行讲解)
列是同质的,即每一列中的分量是同一类型的数据,来自同一个域;
不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名;
列的顺序不影响关系,即列的次序可以任意的交换;
任意两个元组不能完全相同;
行的顺序无所谓,即行的次序可以任意交换;
分量必须取原子值,即每一个分量都必须是不可分的数据项。
关系模型要求关系必须是规范化的,关系模型模型必须满足一定的规范条件,最基本的一条就是关系的每一个分量必须是一个不可分的数据项。
练习:将已经完成的access表中的列进行设置,看是否满足上面的性质
2.关系模式:关系的描述
1)关系模式是型,关系是值
关系模式中应包含元组关系的结构(属性构成、属性来自的域、属性与域之间的映像关系)、元组语义及完整性约束条件、数据间的数据依赖关系集合
关系模式形式化表示为:R(U,D,dom,F)
其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性来自的域,dom为属性向域的映像集合,F为属性间数据的依赖关系集合。
例:dom(导师-人)=人
关系模式常可简记为:R(U)或R(A1,A2,…,An) R为关系名,Ai为属性名。
域名及属性向域的映像常直接说明为属性的类型、长度。
2)关系模式与关系—统称为关系
关系模式:对关系的描述,静态的、稳定的
关 系:关系模式在某一个时刻的状态或内容;动态的、随时间不断变化的
3.关系数据库
在一个给定的应用领域中,所有实体及实体间的联系的关系的集合构成一个关系数据库关系数据库也有型和值之分。关系数据库的型称为关系数据库模式。
对关系数据库的描述,包括若干域的定义以及在这些域上定义的若干关系模式。
关系数据库的值是这些关系模式在某一时刻对应的关系的集合,常称为关系数据库
三、关系模型的完整性
关系模型的三种完整性约束:实体完整性;参照完整性;用户定义的完整性。
实体完整性和参照完整性是关系模型必须满足的完整性约束,被称为关系的两个不变性,由关系系统自动支持。
1.实体完整性
1)规则:若属性A是基本关系R的主属性,则属性A不能取空值
不仅是主码整体不能取空值,所有主属性都不能取空值。(演示学生信息表中学生学号项不能为空的设置)
说明:A.实体完整性规则是针对基本关系而言的。一个基本表对应现实世界一个实体集。
B.现实世界中的实体是可区分的,既有某种唯一性标识符
C.相应的关系模型中以主码作为唯一性标识符
D.主码中的属性即主属性不能取空值。
2.参照完整性
关系模型中实体及实体间的联系都是用关系来描述的。因此存在关系之间的引用
例:学生实体与专业实体可用下面关系表示
学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)
学生关系中的“专业号”值必须是确实存在的专业的专业号,即专业关系中有该专业的记录。即学生关系中的某个属性的取值要参照专业关系的属性的取值。
学生,课程,学生与课程之间的多对多的联系表示如下
学生(学号,姓名,性别,专业号,年龄)
课程(课程号,课程名,学分)
选修(学号,课程号,成绩)
同一关系内部属性间也可能存在引用关系,如关系“学生”
学生(学号,姓名,性别,专业号,年龄,班长)中,“班长”属性表示该学生的学号,因此,“班长“必须是确实存在的学生的学号。
定义:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,称F是基本关系R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。R和S可是同一关系
上面例子的关系参照图如下:
专业号
学生关系
专业关系
学生关系
“班长”属性与本身的主码“学号”属性相对应,“班长”是外码,不一定要与相应的主码同名。
规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。
3.用户定义的完整性
由用户定义,如规定某个属性的取值范围为1-100等。
作业:第80页 课后习题1,2,3,4
10
展开阅读全文