配色: 字号:
ch2_1_概念模型和关系模型
2015-10-03 | 阅:  转:  |  分享 
  
AnIntroductiontoDatabaseSystems第二章数据模型2.1数据模型概述2.2关系模型基
础2.3在SQL中定义关系模式2.4代数查询语言2.5关系上的约束2.1数据模型概述2.1.1两
类数据模型2.1.2数据模型的组成要素2.1.3概念模型2.1.4最常用的数据模型数据模型在数据库中用数据模
型这个工具来抽象、表示和处理现实世界中的数据和信息,通俗地讲数据模型就是现实世界的模拟。数据模型应满足三方面要求:能比较真实地
模拟现实世界容易为人所理解便于在计算机上实现2.1.1两类数据模型数据模型分成两个不同的层次(1)概念模型:也
称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。(2)DBMS支持的数据模型:逻辑模型和物理模型逻辑
模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。物理模型是对数据最底层
的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。客观对象的抽象过程---两步抽象第一层抽象
:现实世界中的客观对象抽象为概念模型;第二层抽象:把概念模型转换为某一DBMS支持的数据模型。2.1.2数据模型的组成要
素数据模型的三要素数据结构数据操作完整性约束条件一、数据结构什么是数据结构描述数据库的组成对象,以及对象之间
的联系描述的内容包括:与数据类型、内容、性质有关的对象与数据之间联系有关的对象数据结构是对系统静态特性的描述二、数据
操作数据操作对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则。数据操作的类型:查询更新(包括插入、
删除、修改)数据模型对操作的定义:操作的确切含义操作符号操作规则(如优先级)实现操作的语言数据操作是对系统动态特性的描
述。三、数据的完整性约束条件数据的完整性约束条件一组完整性规则的集合;完整性规则是给定的数据模型中数据及其联系所具有的制
约和储存规则;用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。完整性约束反映本数据模型必须遵守的
基本且通用的规定和条件。例如:在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。提供定义完整性约
束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。2.1.3概念模型信息世界中的基本概念两个实体型
之间的联系两个以上实体型之间的联系单个实体型内的联系概念模型的一种表示方法一个实例概念模型概念模型的用途概念模型用于
信息世界的建模是现实世界到机器世界的一个中间层次是数据库设计的有力工具数据库设计人员和用户之间进行交流的语言对概念模型的基
本要求较强的语义表达能力能够方便、直接地表达应用中的各种语义知识简单、清晰、易于用户理解一、信息世界中的基本概念(1)
实体(Entity)客观存在并可相互区别的事物称为实体,可以是具体的人、事物或抽象的概念。(2)实体型(Entit
yType)用实体名及其属性名集合来抽象和刻画同类实体称为实体型。(6)实体集(EntitySet)同
一类型实体的集合称为实体集。信息世界中的基本概念(续)(4)属性(Attribute)实体所具有的某一特性称为属性
,一个实体可以由若干个属性来刻画。(5)键(Key)唯一标识实体的属性集称为键。(6)域(Domain)
属性的取值范围称为该属性的域。信息世界中的基本概念(续)(7)联系(Relationship)现实世界中事物
内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系;实体内部的联系通常是指组成实体的各属性之间的联系;实体
之间的联系通常是指不同实体集之间的联系。二、两个实体型之间的联系二、两个实体型之间的联系(续)一对一联系(1:1)
定义:如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具
有一对一联系,记为1:1实例一个班级只有一个正班长一个班长只在一个班中任职两个实体型之间的联系(续)
一对多联系(1:n)定义:如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的
每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n实例一个班级中有
若干名学生,每个学生只在一个班级中学习两个实体型之间的联系(续)多对多联系(m:n)定义:如果对于实体集A
中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与
之联系,则称实体集A与实体B具有多对多联系,记为m:n实例课程与学生之间的联系:一门课程同时有若干个学生选修一个学生可以
同时选修多门课程三、两个以上实体型之间的联系两个以上实体型之间一对多联系若实体集E1,E2,...,En存在联系,对于实体集
Ej(j=1,2,...,i-1,i+1,...,n)中的给定实体,最多只和Ei中的一个实体相联系,则我们说Ei与E1,E2,..
.,Ei-1,Ei+1,...,En之间的联系是一对多的两个以上实体型之间的联系(续)实例课程、教师与参考书三个
实体型一门课程可以有若干个教师讲授,使用若干本参考书,每一个教师只讲授一门课程,每一本参考书只供一门课程使用两个以上实体型
之间的联系(续)多个实体型间的一对一联系两个以上实体型间的多对多联系例如,供应商、项目、零件三个实体型:一个供应商可以供给多
个项目多种零件;每个项目可以使用多个供应商供应的零件;每种零件可由不同供应商供给四、单个实体型内的联系一对多联系例如,职工
实体型内部具有领导与被领导的联系:某一职工(干部)“领导”若干名职工;一个职工仅被另外一个职工直接领导单个实体型内的联系
五、概念模型的一种表示方法实体-联系方法(E-R方法)用E-R图来描述现实世界的概念模型E-R方法也称为E-R模型E-
R图实体型用矩形表示,矩形框内写明实体名。属性用椭圆形表示,并用无向边将其与相应的实体连接起来E-R图(续)联
系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)
联系的表示方法联系的表示方法示例联系的属性六、一个实例用E-R图表示某个工厂物资管理的概念模型实
体仓库:仓库号、面积、电话号码零件:零件号、名称、规格、单价、描述供应商:供应商号、姓名、地址、电话号码、帐号项目:项
目号、预算、开工日期职工:职工号、姓名、年龄、职称实体之间的联系:(1)一个仓库可以存放多种零件,一种零件可以存放在多个仓
库中。仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。(2)一个仓库有多个职工当仓库保管员,一个职工只能在
一个仓库工作,仓库和职工之间是一对多的联系。(3)职工实体型中具有一对多的联系,职工之间具有领导-被领导关系,即仓库主任领导若干
保管员。(4)供应商、项目和零件三者之间具有多对多的联系。2.1.4最常用的数据模型层次模型(Hierarchical
Model)网状模型(NetworkModel)关系模型(RelationalModel)半结构化数据模型(Semi
structured-DataModel)对象关系模型(Object-RelationalModel)和面向对象模型(Ob
ject-OrientedModel)一、层次模型层次模型是数据库系统中最早出现的数据模型;层次模型用树形结构来表示各
类实体以及实体间的联系;层次数据库系统的典型代表是IBM公司的IMS(InformationManagementSys
tem)数据库管理系统,1968年成功研制了IMS-1。1.层次数据模型的数据结构层次模型的定义满足以下两个条件的基
本层次联系的集合为层次模型:1.有且只有一个结点没有双亲结点,这个结点称为根结点2.根以外的其它结点有且只有一个双亲结点
层次模型中的几个术语根结点,双亲结点,兄弟结点,叶结点表示方法实体型:用记录类型描述
每个结点表示一个记录类型(实体)属性:用字段描述每个记录类型可包含若干个字段联系:用结点之间
的连线表示记录类型(实体)之间的父子联系图1.17教员学生层次数据库模型图1.18教员学生层次数据库的一个值层次
模型的特点:只能直接处理一对多的实体联系每个记录类型可以定义一个排序字段,也称为码字段任何记录值只有按其路径查看时,才能显出
它的全部意义没有一个子女记录值能够脱离双亲记录值而独立存在二、多对多联系在层次模型中的表示多对多联系在层次模型中的表示用层
次模型间接表示多对多联系,将多对多联系分解成一对多联系。分解方法冗余结点法虚拟结点法三、层次模型的数据操纵与完整性约束
层次模型的数据操作查询、插入、删除、更新层次模型的完整性约束条件无相应的双亲结点值就不能插入子女结点值如果删除双亲结点值
,则相应的子女结点值也被同时删除更新操作时,应更新所有相应记录,以保证数据的一致性四、层次数据模型的存储结构邻接法
按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序。链接法:用指针来反映数据之间的层次
联系子女-兄弟链接法层次序列链接法层次序列链接法按树的前序遍历顺序链接各记录值五、层次模型的优缺点优点层次模型简单清
晰、一目了然层次数据模型提供了良好的完整性支持应用系统性能好,对于实体间联系固定且预先定义好的应用,其查询性能优于关系模型
缺点多对多联系表示复杂(冗余、虚拟结点),应用于非树形结构时,使用不便对插入和删除操作的限制多,应用程序的编写较复杂存取必
须按照定义好的存取路径进行,查询子女结点必须通过双亲结点二、网状模型网状数据库系统采用网状模型作为数据的组织方式1961
年CharlesBachmann成功开发第一个网状数据库管理系统—IDS(集成数据存储);典型代表是DBTG系统70年代由美
国数据库系统协会提出的一个系统方案,奠定了数据库系统的基本概念、方法和技术实际系统CullinetSoftwareIn
c.公司的IDMSUnivac公司的DMS1100Honeywell公司的IDS/2HP公司的IMAGE1.网状数
据模型的数据结构网状模型的定义满足下面两个条件的基本层次联系的集合:1.允许一个以上的结点无双亲;2.一个结点可以有多
于一个的双亲。表示方法(与层次数据模型相同)实体型:用记录类型描述每个结点表示一个记录类型(
实体)属性:用字段描述每个记录类型可包含若干个字段联系:用结点之间的连线表示记录类型(实体)之间的父子
联系网状模型与层次模型的区别:网状模型允许多个结点没有双亲结点网状模型允许结点有多个双亲结点网状模型允许两个结点之间有多种
联系(复合联系)多对多联系在网状模型中的表示用网状模型间接表示多对多联系方法:将多对多联系分解成一对多联系图1.24学
生/选课/课程的网状数据模型2.网状数据模型的操纵与完整性约束(续)网状数据库系统对数据操作加了一些限制,提供了一定的完整
性约束码:唯一标识记录的数据项的集合一个联系中双亲记录与子女记录之间是一对多联系支持双亲记录和子女记录之间某些约束条件
3.网状数据模型的存储结构关键实现记录之间的联系常用方法单向链接双向链接环状链接向首链接图1.25学生/选课
/课程的网状数据库实例4.网状数据模型的优缺点优点能够更直观的描述现实世界,如一个结点可以有多个双亲;便于描述多对多联
系(多个一对多)具有良好的性能,存取效率较高缺点结构比较复杂,而且随着应用环境的扩大数据库的结构就变得越来越复杂,不利于最
终用户掌握;DDL、DML语言复杂,用户不容易使用。三、关系模型一种基于表的模型数据结构:二维表数据操作:关系代数、关系
演算、SQL关系模型的约束:键约束、引用完整性约束将在第二节详细介绍四、半结构化数据模型XML-baseddatamo
del数据结构:类似树、与HTML的联系与区别数据操作:XPath路径表达式、XQuery查询语言数据约束:与标签相关联的数
据值的类型五、其他数据模型对象关系模型(Object-RelationalModel)将面向对象的特征加入到关系模型中;
数据可以具有结构,而不仅仅是基本数据元素:提供元组、数组、集合等新的数据类型及其操作能力,并具有继承性和对象标识等特点;面向对
象模型(Object-OrientedModel)对象:将客观世界中的实体抽象成为对象,对象可以定义为对一组信息及其操作的描述
;类:相似对象的集合,一个类中的所有对象共享一个公共的定义;对象标识:提供一种“对象标识符”(OID)的概念来标识对象;继
承性:允许不同类的对象共享它们公共部分的结构和特性;“isa”对象包含:不同类的对象之间可能存在着包含关系,
“ispartof”。第二章数据模型2.1数据模型概述2.2关系模型基础2.
3在SQL中定义关系模式2.4代数查询语言2.5关系上的约束关系数据模型简介系统而严格地提出关系模型的是I
BM的E.F.Codd1970年提出关系数据模型E.F.Codd,“ARelationalModelofDataf
orLargeSharedDataBanks”,《CommunicationoftheACM》,1970之后,提
出了关系代数和关系演算的概念1972年提出了关系的第一、第二、第三范式1974年提出了关系的BC范式EdgarFrank
Codd(1923-2003)是OxfordUniversity数学学士、UniversityofMichigan硕士和博
士学位,IBM公司研究员,被誉为“关系数据库之父”,并因为在数据库管理系统的理论和实践方面的杰出贡献于1981年获图灵奖。197
0年,Codd发表题为“大型共享数据库的关系模型”的论文,文中首次提出了数据库的关系模型。由于关系模型简单明了、具有坚实的数学理论
基础,所以一经推出就受到了学术界和产业界的高度重视和广泛响应,并很快成为数据库市场的主流。20世纪80年代以来,计算机厂商推出的数
据库管理系统几乎都支持关系模型,数据库领域当前的研究工作大都以关系模型为基础。今天,国际上主流数据库产品(Oracle,Sy
base,DB2,Informix,Ingres,SQLServer)都采用了关系数据库技术关系数据库简介典型实验
系统SystemRINGRES典型商用系统ORACLEhttp://www.oracle.comSYBA
SEhttp://www.sybase.comMSSQLServerhttp://www.micro
soft.com/sql/default.mspxDB2http://www.ibm.comInformix等关系
模型概述关系数据库系统是支持关系模型的数据库系统关系模型的组成关系数据结构关系数据操作关系完整性约束1.关系模型的
数据结构单一的数据结构----关系(Relation)现实世界的实体以及实体间的各种联系均用关系来表示。数据的逻辑结构---
-二维表(Table)从用户角度,关系模型中数据的逻辑结构是一张二维表。在用户观点下,关系模型中数据的逻辑结构是一张二维表
,它由行和列组成。属性(Attribute)关系的列命名为属性,给每一个属性起一个名称即属性名。属性用来描述所在列的项目的语
义,例如,title、year、length和genre。关系模式(RelationSchema)关系名和其属性集合的组合
称为这个关系的模式。描述一个关系模式时,先给出一个关系名,其后是用圆括号括起的所有属性。例如,Movies(title,
year,length,genre)关系模式通常简记为:R(U)或R(A1,
A2,…,An)R:关系名A1,A2,…,An:属性名元组(Tuple)关系中除含有属性名所在
行以外的其他行称作元组。每个元组均有一个分量对应于关系的每个属性。例如,(Gonewiththewind,193
9,231,drama)分量元组中的一个属性值。域(Domain)属性的数据类型,决定了其取值范围。例如,关系Mo
vies中四个分量对应的域分别是:string,integer,integer,string。关系的键(Keys)
由关系的一组属性集组成,通过定义键可以保证关系实例上任何两个元组的值在定义键的属性集上取值不同。例如:关系Mov
ies(title,year,length,genre)注意:1)形成键的属性集的值对于关系的所有实例都具有唯一性。
2)一个关系可以有多个键,例如学生的身份证号和学生号都是键。关系的实例(instance)一个给定关系中元组的
集合叫做关系的实例;关系的实例是随时间而发生变化的,这些变化通过对关系中元组的增、删、改来获得;注
意:关系的模式是相对静态的、稳定的,因为对关系模式的修改可能会造成巨大的代价。而关系的实例是随时间不断
变化的,是动态的。关系必须是规范化的,即满足一定的规范条件最基本的规范条件:关系的每一个分量必须是一个不可分的数据项,不允
许表中还有表。关系的等价描述关系中元组和属性的顺序可以调换。数据库模式实例作业:机械工业出
版社(第三版)P15习题2.2.1习题2.2.320关系数据库由来(1)?C
odd的心愿:为数据库建立一个优美的数学模型?关系数据库应用数学方法来处理数据库中的数据 –关系代数–关系数据库
理论1969:EdgarF."Ted"Coddinventstherelationaldatab
ase.关系数据库由来(2)?E.F.Codd,“ARelationalModelofDataforLarg
eSharedDataBanks”,《CommunicationoftheACM》,1970,6 –
Thispaperisnowgenerallyacceptedasalandmarkin database
systems,althoughaset-orientedmodelhadbeen proposedprevio
usly(Childs,1968) –1974,IBM“SystemR”=>SQL –UCBerkely
,“Ingres”=>QUEL –两系统双双获得ACM的1988年“软件系统奖” 2125关系数据库由来
(4)?1970年以后,E.F.Codd继续完善和发展关系理论–1972,提出关系代数和关系演算,定义了关系的并、
交、差、投影、选择、连接的各种基本运算–创办了一个研究所:TheRelationalInstitute和一个公司Codd
&Associations–1990年,出版了专著《TheRelationalModelforDatabaseM
anagement:Version2》–1981年11月9日在洛杉矶在召开的ACM年会上,获图灵奖,演讲题目为“Rela
tionalDatabase:APracticalFoundationforProductivity”comedy
951992Wayne’sWorldsciFi1241977StarWarsdrama2311939Gon
eWiththeWindgenrelengthyeartitle关系movies属性元组22831121
605012001305讲师陈平86051水电房租职务津贴基本实发扣除工资职称
姓名职工号图1.27一个工资表(表中有表)实例工资和扣除是可分的数据项,不符合关系模型要求班级班级-班长班
长111:1联系课程选修学生mnm:n联系班级组成学生1n1:n联系课程选修学生mn成绩
联系的属性联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来
R1根结点R2
兄弟结点R3叶结点R4
兄弟结点R5叶结点叶结点图1.16一个层次模型的示例根结点
记录型“系”的子女结点记录型“教员”的双亲结点叶结点叶结点字段例:学生S与课程Cm
:n方法1:冗余结点法SSNOSNAMESEX
CCNOCNAMECCNOCNAME
SSNOSNAMESEX
方法2:虚拟结点法(用指引元指向被替代的结点)SSNO
SNAMESEXCCNOCNAME
CV.C
SV.S图1.20层次数据库及其实例……A2C8C6C4B6C9
C2B4C14C7C5C3B1A1图1.21邻接法按邻接法存放图1.20(b)中以根记录A1为首的层次记录
实例集子女-兄弟链接法每个记录设两类指针,分别指向最左边的子女(每个记录型对应一个)和最近的兄弟网状模型可以更直接地描述现实世界网状模型中子女结点与双亲结点的联系可以不唯一要为每个联系命名,并指出与该联系有关的双亲记录和子女记录R1与R3之间的联系L1R2与R3之间的联系L2网状模型的例子例如:一个学生可以选修若干门课程,某一课程可以被多个学生选修,学生与课程之间是多对多联系;引入一个学生选课的联结记录,由3个数据项组成:学号、课程号、成绩学生记录课程记录选课记录DBMS支持的数据模型概念模型认识抽象信息世界机器世界现实世界中客观对象的抽象过程现实世界现实世界概念模型数据库设计人员完成逻辑模型物理模型由DBMS完成概念模型逻辑模型由数据库设计人员完成实体型A联系名实体型B111:1联系实体型A联系名1n1:n联系实体型A实体型B联系名mnm:n联系实体型B用图形来表示两个实体型之间的这三类联系班级班级-班长班长111:1联系班级组成学生1n1:n联系课程选修学生mnm:n联系课程讲授教师1m两个以上实体型间1:n联系参考书n供应商供应项目mp两个以上实体型间m:n联系零件n职工领导1n单个实体型内部1:n联系实体型1联系名mn单个实体型内的m:n联系多对多联系学生教师学生学号年龄性别姓名实体型A联系名实体型B111:1联系实体型A联系名1n1:n联系实体型A实体型B联系名mnm:n联系实体型B
献花(0)
+1
(本文系fylhd2013首藏)