第二章 数据模型_第1页
第二章 数据模型_第2页
第二章 数据模型_第3页
第二章 数据模型_第4页
第二章 数据模型_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库系统及应用

--基于SQLServer2000屠菁tujing@126.comAnIntroductiontoDatabaseSystems数据库系统及应用——基于SQLServer2000第二章数据模型AnIntroductiontoDatabaseSystems信息结构与E-R方法概念数据模型传统的三大数据模型数据独立性与三层结构数据库管理系统的结构第二章数据模型AnIntroductiontoDatabaseSystems2-1信息结构与E-R方法数据的三种范畴之现实信息电脑AnIntroductiontoDatabaseSystems实体客观存在并可以相互区分的客观事物或抽象事件称为实体。客观存在的抽象事件订货、演出、足球赛……等也是实体可以触及的客观对象仓库、器件、职工……等是实体AnIntroductiontoDatabaseSystems特征身高年龄性别体重……比赛时间、地点、参赛队……AnIntroductiontoDatabaseSystems具有相同特征的一类实体的集合称之为实体集。实体集学生实体集课程实体集教师实体集教室实体集AnIntroductiontoDatabaseSystems标识特征用于区分实体的实体特征称为标识特征。AnIntroductiontoDatabaseSystems特征实体实体集标识特征现实世界的术语AnIntroductiontoDatabaseSystems我们更熟悉的术语是:文件记录字段关键字AnIntroductiontoDatabaseSystems三种范畴使用的术语AnIntroductiontoDatabaseSystems2-1信息结构与E-R方法实体联系方法之Entity-RelationshipAnIntroductiontoDatabaseSystems实体的表示方式在E-R图中用矩形框表示实体,把实体名写在框内,比如仓库实体可以表示为:仓库AnIntroductiontoDatabaseSystems联系的表示方式

实体之间的联系用菱形框表示,框内写上联系名,并用连线与有关的实体相连。联系名实体1实体2AnIntroductiontoDatabaseSystems联系的类型一对一联系(1:1)一对多联系(1:n)多对多联系(m:n)AnIntroductiontoDatabaseSystems一对一的联系如果实体集A与实体集B之间存在联系,并且对于实体集A中的任意一个实体,实体集B中至多只有一个实体与之对应;而对实体集B中的任意一个实体,在实体集A中也至多只有一个实体与之对应,则称实体集A到实体集B的联系是一对一的,记为1:1。AnIntroductiontoDatabaseSystems

有车间和车间主任两个实体,并且有语义:一个车间只能有一名车间主任,一个职工也只能在一个车间当主任。那么车间和车间主任之间的联系是一对一的,我们把这种联系命名为任职。一对一联系的例子任职车间车间主任11AnIntroductiontoDatabaseSystems一对多的联系如果实体集A与实体集B之间存在联系,并且对于实体集A中的一个实体,实体集B中可以有多个实体与之对应;而对实体集B中的任意一个实体,在实体集A中至多只有一个实体与之对应,则称实体集A到实体集B的联系是一对多的,记为1:n。AnIntroductiontoDatabaseSystems

有仓库和职工两个实体,并且有语义:一个仓库可以有多名职工,但是一个职工只能在一个仓库工作。那么仓库和职工之间的联系是一对多的,我们把这种联系命名为工作。一对多联系的例子工作仓库职工1nAnIntroductiontoDatabaseSystems多对多的联系

如果实体集A与实体集B之间存在联系,并且对于实体集A中的一个实体,实体集B中可以有多个实体与之对应;而对实体集B中的一个实体,在实体集A中也可以有多个实体与之对应,则称实体集A到实体集B的联系是多对多的,记为m:n。AnIntroductiontoDatabaseSystems多对多联系的例子有仓库和器件两个实体,并且有语义:一个仓库可以存放多种器件,一种器件可以存放在多个仓库。那么仓库和器件之间的联系就是多对多的,我们把这种联系命名为库存。仓库器件库存mnAnIntroductiontoDatabaseSystems多个实体之间的联系有仓库、器件、供应商三个实体,并且有语义:每个仓库可以向多个供应商发出订购,可购买多种器件;每个供应商可向多个仓库供货,可供应多种器件;每种器件可由多个供应商供应,可由多个仓库购买。仓库器件供应商订购mnpAnIntroductiontoDatabaseSystems多个实体之间的另外一种联系仓库器件供应商库存业务供应AnIntroductiontoDatabaseSystems两种联系方式的区别仓库器件供应商库存业务供应仓库器件供应商订购AnIntroductiontoDatabaseSystems单个实体型内的联系一对多联系实例

职工实体型内部具有领导与被领导的联系某一职工(干部)“领导”若干名职工一个职工仅被另外一个职工直接领导这是一对多的联系一对一联系

请举例职工领导1n单个实体型内部1:n联系AnIntroductiontoDatabaseSystems单个实体型内的联系实体型1联系名mn单个实体型内的m:n联系多对多联系请举例AnIntroductiontoDatabaseSystems属性的表示方式实体的属性用椭圆框表示,框内写上属性名,并用连线连到相应实体。也可以直接将属性名写在实体旁边。仓库仓库号城市面积仓库仓库号城市面积AnIntroductiontoDatabaseSystems联系本身也有属性,联系是通过相关联的实体的有关属性体现出来的。联系的属性仓库职工工作仓库号城市面积职工号工资仓库号职工号1nAnIntroductiontoDatabaseSystems一个实例用E-R图表示某个工厂物资管理的概念模型实体仓库:仓库号、面积、电话号码零件:零件号、名称、规格、单价、描述供应商:供应商号、姓名、地址、电话号码、帐号项目:项目号、预算、开工日期职工:职工号、姓名、年龄、职称AnIntroductiontoDatabaseSystems一个实例实体之间的联系如下:(1)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。(2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,仓库和职工之间是一对多的联系。职工实体型中具有一对多的联系(3)职工之间具有领导-被领导关系。即仓库主任领导若干保管员。(4)供应商、项目和零件三者之间具有多对多的联系AnIntroductiontoDatabaseSystems一个实例AnIntroductiontoDatabaseSystems概念数据模型概念数据模型中的基本联系理解和转换多对多联系连接陷阱概念数据模型——实例研究扩展Bachman图AnIntroductiontoDatabaseSystems概念数据模型中的基本联系实体之间的联系类型并不取决于实体本身,而是取决于现实世界的管理方法,或者说取决于语义,即同样两个实体,如果有不同的语义则可以得到不同的联系类型。AnIntroductiontoDatabaseSystems以仓库和器件两个实体之间的关联为例:如果规定一个仓库只能存放一种器件,并且一种器件只能存放在一个仓库,这时仓库和器件之间的联系是一对一的;如果规定一个仓库可以存放多种器件,但是一种器件只能存放在一个仓库,这时仓库和器件之间的联系是一对多的;如果规定一个仓库可以存放多种器件,同时一种器件可以存放在多个仓库,这时仓库和器件之间的联系是多对多的。AnIntroductiontoDatabaseSystems为什么要讨论实体之间的联系??仓库器件AnIntroductiontoDatabaseSystems如果仓库和器件之间的联系是一对一的:只需设计一个物理文件AnIntroductiontoDatabaseSystems如果仓库和器件之间的联系是一对多的:需要设计两个物理文件AnIntroductiontoDatabaseSystems如果仓库和器件之间的联系是多对多的:需要设计三个物理文件AnIntroductiontoDatabaseSystems同样两个实体,如果赋予不同的语义则有不同的设计结果。也就是说我们在概念模型中讨论实体之间的联系类型直接影响着目标数据库的设计结果和设计质量。结论返回AnIntroductiontoDatabaseSystems理解和转换多对多联系多对多联系是一类比较复杂的联系,一般数据库管理系统并不直接支持这类联系,或者由于技术上的原因我们也不直接使用这类联系,我们总是把多对多联系转换为一对多联系。AnIntroductiontoDatabaseSystems面积500450200300城市北京上海广州重庆仓库号WH1WH2WH3WH4120200180100140150180200100———————器件号器件名称显示卡声卡解压卡散热风扇P4P3P2P1多对多联系AnIntroductiontoDatabaseSystems一个多对多的联系实际蕴涵了两个一对多的联系,仓库和器件之间的联系是多对多的,但是它们和“联系”库存之间的联系都是一对多的。多对多联系蕴涵一对多联系AnIntroductiontoDatabaseSystems多对多联系转换为一对多联系仓库号城市面积仓库器件库存W-IP-I

器件号器件名称仓库号器件号数量11mn仓库号城市面积仓库号器件号数量器件仓库库存mn器件号器件名称返回AnIntroductiontoDatabaseSystems连接陷阱所谓连接陷阱就是误认为不存在联系的两个实体间存在联系,从而通过这种“联系”获取错误的信息。AnIntroductiontoDatabaseSystems器件号订单号数量供应商号器件号器件名称供应商号地点供应商名供应商器件订货1:n1:m查询P4器件都是有哪些供应商供应的。器件和供应商之间存在联系吗?AnIntroductiontoDatabaseSystems器件号器件名称仓库号器件号数量器件号数量订单号供应商号订货器件库存1:m1:n查询WH1仓库P4器件的订货数量是多少?库存和订货之间存在联系吗?返回AnIntroductiontoDatabaseSystems概念数据模型——实例研究建立库存—订购数据库AnIntroductiontoDatabaseSystems与库存业务有关的实体仓库器件职工库存业务?AnIntroductiontoDatabaseSystems库存业务的管理模式语义:在一个仓库可以存放多种器件,一种器件也可以存放在多个仓库中;一个仓库有多个职工,而一个职工只能在一个仓库工作;一个职工可以保管一个仓库中的多种器件,由于一种器件可以存放在多个仓库中,当然可以由多名职工保管。AnIntroductiontoDatabaseSystems以上语义说明了:在仓库和器件之间存在一个多对多的联系——库存;在仓库和职工之间存在一个一对多的联系——工作;在职工和器件之间存在一个多对多的联系——保管。AnIntroductiontoDatabaseSystems为此有库存业务的局部E-R图AnIntroductiontoDatabaseSystems与订购业务有关的实体职工器件供应商订购单订购业务?AnIntroductiontoDatabaseSystems订购业务管理模式语义:一名职工可以经手多张订购单,但一张订购单只能由一名职工经手;一个供应商可以接受多张订购单,但一张订购单只能发给一个供应商;一个供应商可以供应多种器件,每种器件也可以由多个供应商供应;一张订购单可以订购多种器件,对每种器件的订购也可以出现在多张订购单上。AnIntroductiontoDatabaseSystems以上语义说明了:在职工和订购单之间存在一个一对多的联系——发出订购单;在供应商和订购单之间存在一个一对多的联系——接收订购单;在供应商和器件之间存在一个多对多的联系——供应;在订购单和器件之间存在一个多对多的联系——订购。AnIntroductiontoDatabaseSystems为此有订购业务的局部E-R图AnIntroductiontoDatabaseSystems库存—订购业务整体E-R图AnIntroductiontoDatabaseSystems其中有5个实体和7个联系,如下表:AnIntroductiontoDatabaseSystems

完成“WH1仓库P1器件的订货数量是多少”的查询步骤:确定在WH1仓库工作的职工的职工号(职工文件),设为Eno;根据Eno查询该职工所经手的订购单号(订购单文件),设为Ono;根据Ono查询所订购的器件号及数量(订购项目文件);查询完一张订购单后再接着查询同一职工经手的另一张订购单;一名职工经手的订购单查询完后,再查询同一仓库另一职工所经手的订购单。AnIntroductiontoDatabaseSystems完成相应查询的语句SELECTSUM(数量)FROM订购WHERE器件号=”P1”AND订购单号IN(SELECT订购单号FROM订购单WHERE职工号IN(SELECT职工号FROM职工WHERE仓库号=”WH1”))AnIntroductiontoDatabaseSystems扩展Bachman图扩展Bachman图是与E-R图类似的信息结构和概念模型描述工具,它的要点是:用矩形框表示实体或文件,实体名写在矩形框的右下方;字段名写在矩形框内,关键字标以下划线,辅助关键字标以虚下划线;用箭头线表示联系并连接相关实体,箭头线始于父文件的连接字段(关键字),终于子文件的连接字段(外部关键字),联系类型标在箭头线旁。AnIntroductiontoDatabaseSystems库存和订货业务的完整扩展Bachman图AnIntroductiontoDatabaseSystems传统的三大数据模型层次模型网络模型关系模型AnIntroductiontoDatabaseSystems层次模型层次模型是数据库系统中最早出现的数据模型层次数据库系统的典型代表是IBM公司的IMS(InformationManagementSystem)数据库管理系统层次模型用树形结构来表示各类实体以及实体间的联系

AnIntroductiontoDatabaseSystems一、层次数据模型的数据结构层次模型

满足下面两个条件的基本层次联系的集合为层次模型1.有且只有一个结点没有双亲结点,这个结点称为根结点2.根以外的其它结点有且只有一个双亲结点层次模型中的几个术语根结点,双亲结点,兄弟结点,叶结点AnIntroductiontoDatabaseSystems层次数据模型的数据结构(续)

R1

根结点

R2

兄弟结点

R3

叶结点

R4

兄弟结点

R5

叶结点

叶结点图1.16一个层次模型的示例AnIntroductiontoDatabaseSystems层次数据模型的数据结构(续)层次模型的特点:结点的双亲是唯一的只能直接处理一对多的实体联系每个记录类型可以定义一个排序字段,也称为码字段任何记录值只有按其路径查看时,才能显出它的全部意义没有一个子女记录值能够脱离双亲记录值而独立存在AnIntroductiontoDatabaseSystems层次数据模型的数据结构(续)图1.17教员学生层次数据库模型根结点记录型系的子女结点记录型教员的双亲结点叶结点叶结点字段AnIntroductiontoDatabaseSystems层次数据模型的数据结构(续)图1.18教员学生层次数据库的一个值

AnIntroductiontoDatabaseSystems二、多对多联系在层次模型中的表示多对多联系在层次模型中的表示用层次模型间接表示多对多联系方法将多对多联系分解成一对多联系分解方法冗余结点法虚拟结点法AnIntroductiontoDatabaseSystems层次型不能表示多对多的联系把有两个父结点的非层次结构转换成两个层次型AnIntroductiontoDatabaseSystems网络数据模型网状数据库系统采用网络数据模型作为数据的组织方式典型代表是DBTG系统:亦称CODASYL系统70年代由DBTG提出的一个系统方案奠定了数据库系统的基本概念、方法和技术实际系统CullinetSoftwareInc.公司的IDMSUnivac公司的DMS1100Honeywell公司的IDS/2HP公司的IMAGEAnIntroductiontoDatabaseSystems1.网状数据模型的数据结构网状模型满足下面两个条件的基本层次联系的集合:1.允许一个以上的结点无双亲;2.一个结点可以有多于一个的双亲。AnIntroductiontoDatabaseSystems网状数据模型的数据结构(续)表示方法(与层次数据模型相同)实体型:用记录类型描述每个结点表示一个记录类型(实体)属性:用字段描述每个记录类型可包含若干个字段联系:用结点之间的连线表示记录类型(实体)之间的一对多的父子联系AnIntroductiontoDatabaseSystems网状数据模型的数据结构(续)网状模型中子女结点与双亲结点的联系可以不唯一要为每个联系命名,并指出与该联系有关的双亲记录和子女记录

R1与R3之间的联系L1R2与R3之间的联系L2

AnIntroductiontoDatabaseSystems网状数据模型的数据结构(续)网状模型的例子

AnIntroductiontoDatabaseSystems网状数据模型的数据结构(续)多对多联系在网状模型中的表示用网状模型间接表示多对多联系方法:将多对多联系直接分解成一对多联系AnIntroductiontoDatabaseSystems网状数据模型的数据结构(续)例如:一个学生可以选修若干门课程,某一课程可以被多个学生选修,学生与课程之间是多对多联系引进一个学生选课的联结记录,由3个数据项组成学号课程号成绩表示某个学生选修某一门课程及其成绩AnIntroductiontoDatabaseSystems网状数据模型的数据结构(续)图1.24学生/选课/课程的网状数据模型AnIntroductiontoDatabaseSystemsCODASYL用系描述联系系:命名了的联系,描述一对多联系的工具。系由一个父记录型和一个或多个子记录型构成。系是一个二级树。AnIntroductiontoDatabaseSystems关系数据模型用关系(表格数据)表示实体和实体之间联系的模型称为关系数据模型。AnIntroductiontoDatabaseSystems关系数据模型关系数据库系统采用关系数据模型作为数据的组织方式1970年美国IBM公司SanJose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型计算机厂商新推出的数据库管理系统几乎都支持关系模型

AnIntroductiontoDatabaseSystems一、关系数据模型的数据结构

在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。学生登记表属性元组AnIntroductiontoDatabaseSystems关系数据模型的数据结构(续)关系(Relation)一个关系对应通常说的一张表元组(Tuple)表中的一行即为一个元组属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名AnIntroductiontoDatabaseSystems关系数据模型的数据结构(续)例1学生、系、系与学生之间的一对多联系:学生(学号,姓名,年龄,性别,系号,年级)系(系号,系名,办公地点)例2系、系主任、系与系主任间的一对一联系AnIntroductiontoDatabaseSystems关系数据模型的数据结构(续)例3学生、课程、学生与课程之间的多对多联系:

学生(学号,姓名,年龄,性别,系号,年级)课程(课程号,课程名,学分)选修(学号,课程号,成绩)AnIntroductiontoDatabaseSystems关系实例AnIntroductiontoDatabaseSystems关系数据库管理系统SybaseOracleDB2MSSQLServerFoxProAccess…AnIntroductiontoDatabaseSystems数据库管理系统的结构数据库的三层模式结构模式说明实例数据库管理系统的总体结构AnIntroductiontoDatabaseSystems数据库的三层模式结构AnIntroductiontoDatabaseSystems存储、概念和外部模式定义

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论