《数据模型关系数据库系统幻灯片.ppt》由会员分享,可在线阅读,更多相关《数据模型关系数据库系统幻灯片.ppt(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据模型关系数据库系统第1页,共41页,编辑于2022年,星期六一、数据库系统的特点一、数据库系统的特点 数据结构化:数据结构化:在描述数据时,不但要描述数据本身,在描述数据时,不但要描述数据本身,还要描述数据之间的关系。还要描述数据之间的关系。数据独立性高:数据独立性高:数据与程序独立,数据的存取由数据与程序独立,数据的存取由DBMS负责。负责。数据由数据由DBMS统一管理和控制:统一管理和控制:DBMS提供安全控制,提供安全控制,完整性检查,并发控制,数据库恢复等。完整性检查,并发控制,数据库恢复等。第2页,共41页,编辑于2022年,星期六二、数据模型二、数据模型模型的作用:模型的作用:
2、反映现实世界数据特征、反映现实世界数据特征、DBMS实现的依实现的依据。据。现实世界现实世界 认识抽象认识抽象 概念模型概念模型 数据模型数据模型(机器世界机器世界)数据模型的要求:可以比较真实地模拟现实;易于被人理解;数据模型的要求:可以比较真实地模拟现实;易于被人理解;便于实现。便于实现。数据模型的组成:数据结构数据模型的组成:数据结构+数据操作数据操作+约束约束常用的数据模型:层次模型,网状模型,关系模型。常用的数据模型:层次模型,网状模型,关系模型。面向对象模型是目前发展的方向之一面向对象模型是目前发展的方向之一第3页,共41页,编辑于2022年,星期六数据库设计过程数据库设计过程需求
3、分析需求分析概念数据库设计概念数据库设计逻辑数据库设计逻辑数据库设计确定存储哪些数据,确定存储哪些数据,建立哪些应用,常建立哪些应用,常用的操作及对象有用的操作及对象有哪些等哪些等。对需求分析所得到对需求分析所得到数据的更高层的抽数据的更高层的抽象描述。象描述。将概念模型所描述的将概念模型所描述的数据映射为某个特定数据映射为某个特定的的DBMS模式数据。模式数据。E-R模型模型ODL第4页,共41页,编辑于2022年,星期六1、概念模型的表示、概念模型的表示l1976年,年,P.P.S.Chen提出提出-模型(模型(Entity-Relationship Model),用),用-图来描述概念模
4、型。图来描述概念模型。l观点:世界是由一组称作观点:世界是由一组称作实体实体实体实体的基本对象和这些对象之间的基本对象和这些对象之间的的联系联系联系联系构成的。构成的。第5页,共41页,编辑于2022年,星期六实体实体(Entity)(Entity):客观存在并可相互区分的事物叫实体。客观存在并可相互区分的事物叫实体。如学生张三、工人李四、计算机系、数据库概论。如学生张三、工人李四、计算机系、数据库概论。属性属性(Attribute)(Attribute):实体所具有的某一特性。一个实体可以由若干个属实体所具有的某一特性。一个实体可以由若干个属性来刻画。性来刻画。例如,学生可由学号、姓名、年龄
5、、系、年级等组成。例如,学生可由学号、姓名、年龄、系、年级等组成。域域(Domain)(Domain):属性的取值范围。属性的取值范围。例如,性别的域为(男、女),月份的域为到例如,性别的域为(男、女),月份的域为到的整数。的整数。第6页,共41页,编辑于2022年,星期六实体型实体型(Entity Type)(Entity Type):实体名与其属性名集合共同构成实体型。实体名与其属性名集合共同构成实体型。例,学生(学号、姓名、年龄、性别、系、年级)。例,学生(学号、姓名、年龄、性别、系、年级)。注意实体型与实体(值)之间的区别,后者是前者的注意实体型与实体(值)之间的区别,后者是前者的一个
6、特例。一个特例。如如(9808100(9808100,王平,王平,2121,男,计算机系,男,计算机系,2)2)是一个实体。是一个实体。实体集实体集(Entity Set)(Entity Set):同型实体的集合称为实体集。同型实体的集合称为实体集。如全体学生。如全体学生。第7页,共41页,编辑于2022年,星期六联系联系(Relationship)(Relationship):实体之间的相互关联。实体之间的相互关联。如学生与老师间的授课关系,学生与学生间有班长关如学生与老师间的授课关系,学生与学生间有班长关系。系。联系也可以有属性,如学生与课程之间有选课联系,每联系也可以有属性,如学生与课程
7、之间有选课联系,每个选课联系都有一个成绩作为其属性。个选课联系都有一个成绩作为其属性。同类联系的集合称为联系集。同类联系的集合称为联系集。元或度(元或度(Degree):):参与联系的实体集的个数称为联系的元。参与联系的实体集的个数称为联系的元。如学生选修课程是二元联系,供应商向工程供应零件则如学生选修课程是二元联系,供应商向工程供应零件则是三元联系。是三元联系。第8页,共41页,编辑于2022年,星期六学生学生课程课程选修选修学号学号姓名姓名系别系别课程名课程名先修课先修课主讲老师主讲老师用矩形表示实体集,用矩形表示实体集,在框内写上实体名在框内写上实体名用椭圆表示实用椭圆表示实体的属性体的
8、属性用无向边用无向边把实体与把实体与其属性连其属性连接起来接起来用菱形表示实用菱形表示实体间的联系体间的联系将参与联系的实将参与联系的实体用线段连接体用线段连接例例:学学 生生 选选 修修 课课 程程成绩成绩第9页,共41页,编辑于2022年,星期六码码(Key)(Key):能唯一标识实体的属性或属性组称作能唯一标识实体的属性或属性组称作超码超码超码超码。其任意真子集都不能成为超码的最小超码称为其任意真子集都不能成为超码的最小超码称为候选码候选码候选码候选码。从所有候选码中选定一个用来区别同一实体集中的从所有候选码中选定一个用来区别同一实体集中的不同实体,称作不同实体,称作主主码码码码。一个实
9、体集中任意两个实体在主码上的取值不能相同。一个实体集中任意两个实体在主码上的取值不能相同。如学号是学生实体的码。如学号是学生实体的码。通讯录(姓名,邮编,地址,电话,通讯录(姓名,邮编,地址,电话,EmailEmail,BPBP)第10页,共41页,编辑于2022年,星期六表示要点:表示要点:实体集属性中作为主码的一部分的属性用实体集属性中作为主码的一部分的属性用下划线下划线来标来标明。明。学生学生课程课程选修选修学号学号姓名姓名系别系别课程名课程名先修课先修课主讲老师主讲老师第11页,共41页,编辑于2022年,星期六lE-R模型设计举例模型设计举例职工职工电话电话姓名姓名职工职工电话电话联
10、系联系电话电话姓名姓名号码号码地址地址适于一个员工适于一个员工只有一部电话只有一部电话的情况的情况适于多个员工共有一适于多个员工共有一部电话,一个员工多部电话,一个员工多个电话,电话本身具个电话,电话本身具有多个属性的情况。有多个属性的情况。第12页,共41页,编辑于2022年,星期六2、数据模型、数据模型 层次模型用树形结构层次模型用树形结构(Tree)来表示各类实体及实来表示各类实体及实体之间的关系。体之间的关系。网状模型用图结构网状模型用图结构(Graph)来表示各类实体及实体之来表示各类实体及实体之间的关系。间的关系。举例:有一购销关系由三个实体组成,客户举例:有一购销关系由三个实体组
11、成,客户(张、王、李张、王、李),付款方式,付款方式(现金、支票、信用卡现金、支票、信用卡),购买商品,购买商品(c1,c2,c3,c4,c5)第13页,共41页,编辑于2022年,星期六c1 c2 c1 c2 c1 c3 c4 c3 c5 c4 c5李李张张王王李李王王张张现金现金支票支票信用卡信用卡第14页,共41页,编辑于2022年,星期六c1 c2 c3 c4 c5李李 张张 王王现金现金 支票支票 信用卡信用卡第15页,共41页,编辑于2022年,星期六姓名姓名C1C2C3C4C5李李11220张张11033王王10202代码代码付款方式付款方式0未购未购1现金现金2支票支票3信用卡
12、信用卡第16页,共41页,编辑于2022年,星期六层次模型层次模型数据操作:查询、插入、删除和修改。数据操作:查询、插入、删除和修改。特点:没有父结点时不能插入子结点;删除父结点时则相应特点:没有父结点时不能插入子结点;删除父结点时则相应删除子结点;修改时要考虑一致性问题。删除子结点;修改时要考虑一致性问题。存储结构:邻接法,链接法。存储结构:邻接法,链接法。网状模型网状模型与层次模型基本相似。与层次模型基本相似。第17页,共41页,编辑于2022年,星期六三、关系模型三、关系模型 关系数据库理论建立在严格的数学理论基础之上。其关系数据库理论建立在严格的数学理论基础之上。其理论奠基人为理论奠基
13、人为IBM的高级研究员的高级研究员E.F.Codd。现在流行的数据库产品大都是关系数据库产品。主要产现在流行的数据库产品大都是关系数据库产品。主要产品有品有Oracle、DB2、Sybase、Informix、SQL Server等。等。第18页,共41页,编辑于2022年,星期六关系理论是建立在集合代数理论基础上的,有着坚实的数关系理论是建立在集合代数理论基础上的,有着坚实的数学基础。学基础。E.F.Codd于于70年代初提出关系数据理论,他因此获得年代初提出关系数据理论,他因此获得1981年的年的ACM图灵奖。图灵奖。早期代表系统早期代表系统System:由:由IBM研制。研制。INGRE
14、S:由加州:由加州Berkeley分校研制。分校研制。第19页,共41页,编辑于2022年,星期六 关系模型的组成:数据结构关系模型的组成:数据结构+关系操作关系操作+完整性约束完整性约束表结构表结构 8个运算个运算 三类完整性三类完整性关系代数语言关系代数语言关系演算语言关系演算语言SQL语言语言实体完整性实体完整性参照完整性参照完整性自定义完整性自定义完整性第20页,共41页,编辑于2022年,星期六概念:关系概念:关系(Relation),元组,元组(Tuple),属性,属性(Attribute),主码主码(Key 同义词:唯一标识符同义词:唯一标识符),域域(Domain 属性的取值范
15、围属性的取值范围)关系的数据结构关系的数据结构(数学定义数学定义):表:表(笛卡尔乘积的子集笛卡尔乘积的子集)。关系操作:选择关系操作:选择Select、投影、投影Project、连接、连接Join、除、除Divide、并并Union、交、交Intersection、差、差Difference表示方法:关系代数、关系演算、表示方法:关系代数、关系演算、SQL第21页,共41页,编辑于2022年,星期六关系关系笛卡尔积笛卡尔积D1D2Dn的子集叫做在域的子集叫做在域D1,D2,Dn上的上的关系,用关系,用R(D1,D2,Dn)表示。表示。R是关系的名字,是关系的名字,n是关系的度或目。是关系的度
16、或目。关系是笛卡尔积中有意义的子集。关系是笛卡尔积中有意义的子集。关系也可以表示为二维表。关系也可以表示为二维表。关系关系TEACH(T,S,C)TSCt1s1c1t1s1c2t1s2c1t2s3c2元组元组属性属性第22页,共41页,编辑于2022年,星期六关系的性质关系的性质列是同质的。列是同质的。即每一列中的分量来自同一域,是同一类型的数据。即每一列中的分量来自同一域,是同一类型的数据。如如TEACH(T,S,C)=(t1,s1,c1),(t1,t2,c1)是错误的。是错误的。不同的列可来自同一域,每列必须有不同的属性名不同的列可来自同一域,每列必须有不同的属性名。如如P=t1,t2,s
17、1,s2,s3,C=c1,c2,则,则TEACH不能写成不能写成TEACH(P,P,C),还应写成,还应写成TEACH(T,S,C)。行列的顺序无关紧要。行列的顺序无关紧要。第23页,共41页,编辑于2022年,星期六任意两个元组不能完全相同。任意两个元组不能完全相同。集合内不能有相同的两个元素。集合内不能有相同的两个元素。每一分量必须是不可再分的数据。每一分量必须是不可再分的数据。满足这一条件的关系称作满足第一范式(满足这一条件的关系称作满足第一范式(1NF)的。)的。第24页,共41页,编辑于2022年,星期六数据结构数据结构单一的数据结构单一的数据结构关系关系 实体集、联系都表示成关系。
18、实体集、联系都表示成关系。学生学生课程课程选修选修属于属于系系教师教师讲授讲授工作工作DEPT(系编号系编号,名称名称,主任主任)S(学号学号,姓名姓名,性别性别,系编号系编号)C(课程编号课程编号,名称名称,学分学分)SC(学号学号,课程编号课程编号,成绩成绩)PROF(教师编号教师编号,姓名姓名,系编号系编号,职称职称)TEACH(教师编号教师编号,课程编号课程编号)第25页,共41页,编辑于2022年,星期六候选码(候选码(Candidate Key)关系中的一个属性组,其值能唯一标识一个元组。若从关系中的一个属性组,其值能唯一标识一个元组。若从该属性组中去掉任何一个属性,它就不具有这一
19、性质了,该属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码。这样的属性组称作候选码。任何一个候选码中的属性称作主属性。任何一个候选码中的属性称作主属性。如如SC中的中的S#,C#。主码(主码(Primary Key)进行数据库设计时,从一个关系的多个候选码中选进行数据库设计时,从一个关系的多个候选码中选定一个作为主码。定一个作为主码。第26页,共41页,编辑于2022年,星期六外部码(外部码(Foreign Key)关系关系R中的一个属性组,它不是中的一个属性组,它不是R的码,但它与另一的码,但它与另一个关系个关系S的码相对应,则称这个属性组为的码相对应,则称这个属性组为
20、R的外部码。的外部码。第27页,共41页,编辑于2022年,星期六编号编号姓名姓名年龄年龄职称职称医生记录医生记录病员记录病员记录编号编号姓名姓名主治医生姓名主治医生姓名外键外键唯一性约束唯一性约束第28页,共41页,编辑于2022年,星期六关系操作关系操作关系操作是集合操作,操作的对象及结果都是集合,是一关系操作是集合操作,操作的对象及结果都是集合,是一次一集合(次一集合(Set-at-a-time)的方式。)的方式。而非关系型的数据操作方式是一次一记录(而非关系型的数据操作方式是一次一记录(Record-at-a-time)。)。关系操作可以用关系代数和关系演算两种方式来表示,它关系操作可
21、以用关系代数和关系演算两种方式来表示,它们是相互等价的。们是相互等价的。如用关系代数来表示关系的操作,可以有选择、投影、如用关系代数来表示关系的操作,可以有选择、投影、连接、除、交、差、并等。连接、除、交、差、并等。第29页,共41页,编辑于2022年,星期六关系模式的完整性关系模式的完整性实体完整性实体完整性关系的主码中的属性值不能为空值。关系的主码中的属性值不能为空值。参照完整性参照完整性用户定义的完整性用户定义的完整性用户针对具体的应用环境定义的完整性约束条件。用户针对具体的应用环境定义的完整性约束条件。系统支持系统支持实体完整性和参照完整性由系统自动支持。实体完整性和参照完整性由系统自
22、动支持。系统应提供定义和检验用户定义的完整性的机制。系统应提供定义和检验用户定义的完整性的机制。第30页,共41页,编辑于2022年,星期六抽象的查询语言抽象的查询语言关系代数:用对关系的运算来表达查询,需要指明所用关系代数:用对关系的运算来表达查询,需要指明所用操作。操作。关系演算:用谓词来表达查询,只需描述所需信息的关系演算:用谓词来表达查询,只需描述所需信息的特性。特性。元组关系演算:谓词变元的基本对象是元组变量。元组关系演算:谓词变元的基本对象是元组变量。域关系演算:谓词变元的基本对象是域变量。域关系演算:谓词变元的基本对象是域变量。第31页,共41页,编辑于2022年,星期六具体系统
23、中的实际语言具体系统中的实际语言SQL:介于关系代数和关系演算之间,由:介于关系代数和关系演算之间,由IBM公司在研公司在研制制System R时提出的。时提出的。QUEL:基于:基于Codd提出的元组关系演算语言提出的元组关系演算语言ALPHA,在在INGRES上实现。上实现。QBE:基于域关系演算,由:基于域关系演算,由IBM公司研制。公司研制。第32页,共41页,编辑于2022年,星期六关系数据语言的特点关系数据语言的特点一体化一体化 一般关系系统的数据语言都同时具有数据定义、数据操一般关系系统的数据语言都同时具有数据定义、数据操纵和数据控制语言,而不是分为几个语言。纵和数据控制语言,而
24、不是分为几个语言。非过程化非过程化 用户只需提出用户只需提出“做什么做什么”,无须说明,无须说明“怎么做怎么做”,存取路径的选择和操作过程由系统自动完成。存取路径的选择和操作过程由系统自动完成。面向集合的存取方式面向集合的存取方式 操作对象是一个或多个关系,结果是一个新的关系(一操作对象是一个或多个关系,结果是一个新的关系(一次一关系)。非关系系统是一次一记录的方式。次一关系)。非关系系统是一次一记录的方式。第33页,共41页,编辑于2022年,星期六四、数据库系统的模式结构四、数据库系统的模式结构模式:数据库中全体数据的逻辑结构和特征的描述。模式:数据库中全体数据的逻辑结构和特征的描述。数据
25、库系统的三级模式数据库系统的三级模式数据数据内模式内模式模式模式外模式外模式第34页,共41页,编辑于2022年,星期六五、数据库系统组成五、数据库系统组成硬件:网络平台硬件:网络平台+服务器服务器软件:操作系统软件:操作系统+DBMSDBA(数据库管理员)(数据库管理员)100M Switch工作站工作站Win 98/me/2000/XP数据库服务器数据库服务器Win 2000 ServerOracle/SQL Server 2000第35页,共41页,编辑于2022年,星期六完全关系系统的完全关系系统的12条准则:条准则:DBMS应该遵循应该遵循Codd提出的十二条法则,才能被分提出的十二
26、条法则,才能被分类到完全关系系统。类到完全关系系统。1)信息法则。关系型信息法则。关系型DBMS的所有信息都应在逻辑一的所有信息都应在逻辑一级上用一种方法即表中的值显式地表示。级上用一种方法即表中的值显式地表示。2)授权存取法则。每一个数据项必须通过一个授权存取法则。每一个数据项必须通过一个“表名表名+主主键键+列名列名”的组合形式访问。的组合形式访问。例如,如果你能用数组或指针访问一个列,就违反例如,如果你能用数组或指针访问一个列,就违反这条规则。这条规则。第36页,共41页,编辑于2022年,星期六 3)必须以一致的方式使用空值。如果由于缺少数字必须以一致的方式使用空值。如果由于缺少数字值
27、,空值值,空值(Nul1)被当作被当作0来处理,或者由于缺少字符值而被来处理,或者由于缺少字符值而被当作一个空格处理,那么它就违反了这条规则。空值仅仅是当作一个空格处理,那么它就违反了这条规则。空值仅仅是指缺少数据而且没有任何数值。如果缺少的数据需要值,软指缺少数据而且没有任何数值。如果缺少的数据需要值,软件提供商通常提供使用缺省值的能力满足这一目的。件提供商通常提供使用缺省值的能力满足这一目的。4)一个活跃的、在线数据字典应作为关系型表被存一个活跃的、在线数据字典应作为关系型表被存储,并且该字典应该可以通过常规的数据存取语言访问。储,并且该字典应该可以通过常规的数据存取语言访问。如果数据字典
28、的任何部分贮存在操作系统文件里,就违如果数据字典的任何部分贮存在操作系统文件里,就违反了这条规则。反了这条规则。第37页,共41页,编辑于2022年,星期六 5)除了可能的低级存取例程外,数据存取语言必须除了可能的低级存取例程外,数据存取语言必须提供所有的存取方式,并且是存取的仅有方式。如果你提供所有的存取方式,并且是存取的仅有方式。如果你能通过一个实用程序而不是一个能通过一个实用程序而不是一个SQL接口来存取支持一个表接口来存取支持一个表的文件,就有可能违反了本规则。参见规则的文件,就有可能违反了本规则。参见规则12。6)所有能被更新的视图应当是可更新的。例如,如果你所有能被更新的视图应当是
29、可更新的。例如,如果你能将三个表连结起来,作为一个视图的基础,但却不能更新能将三个表连结起来,作为一个视图的基础,但却不能更新这个视图,则违反本规则。这个视图,则违反本规则。第38页,共41页,编辑于2022年,星期六 7)必须有集合级的插入、更新和删除。目前,大多数必须有集合级的插入、更新和删除。目前,大多数RDBMS提供商都在某种程度上提供了这种能力。提供商都在某种程度上提供了这种能力。8)物理数据的独立性。应用不能依赖于物理结构,如物理数据的独立性。应用不能依赖于物理结构,如果一个支持某表的文件从一张盘移动到其他盘上或重新命果一个支持某表的文件从一张盘移动到其他盘上或重新命名,不应该对应
30、用产生影响。名,不应该对应用产生影响。9)逻辑数据的独立性。应用不应依赖于逻辑结构。逻辑数据的独立性。应用不应依赖于逻辑结构。如果一个表必须被分成两个部分,那么应该提供一个视如果一个表必须被分成两个部分,那么应该提供一个视图,以把两段连接在一起,以便不会对应用产生影响。图,以把两段连接在一起,以便不会对应用产生影响。第39页,共41页,编辑于2022年,星期六 10)完整性的独立性。完整性规则应该贮存在数据字典完整性的独立性。完整性规则应该贮存在数据字典中。主键约束、外键约束、检查约束、触发器等等都应该中。主键约束、外键约束、检查约束、触发器等等都应该贮存在数据字典中。贮存在数据字典中。11)
31、分布独立性。一个数据库即使被分布,也应该能分布独立性。一个数据库即使被分布,也应该能继续工作。这是规则继续工作。这是规则8的一个扩展,一个数据库不仅能在一个的一个扩展,一个数据库不仅能在一个系统系统(本地地本地地)分布,也能在通过系统的网络分布,也能在通过系统的网络(远程地远程地)分布。分布。第40页,共41页,编辑于2022年,星期六 12)非破坏性法则。如果允许低级存取,一定不能绕过非破坏性法则。如果允许低级存取,一定不能绕过安全性或完整性规则,这些规则是常规的数据存取语言所安全性或完整性规则,这些规则是常规的数据存取语言所遵守的,例如,一个备份或载入工具不能绕过验证、约束遵守的,例如,一个备份或载入工具不能绕过验证、约束和锁来备份或载入数据。然而,软件供应商出于速度的原和锁来备份或载入数据。然而,软件供应商出于速度的原因,通常提供这些功能。那么,数据库系统管理员就有责因,通常提供这些功能。那么,数据库系统管理员就有责任确保数据的安全性和完整性,如果瞬间出现问题,应该任确保数据的安全性和完整性,如果瞬间出现问题,应该立即恢复。立即恢复。第41页,共41页,编辑于2022年,星期六