ch3数据库建模与实体联系模型_第1页
ch3数据库建模与实体联系模型_第2页
ch3数据库建模与实体联系模型_第3页
ch3数据库建模与实体联系模型_第4页
ch3数据库建模与实体联系模型_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

1、n数据库设计的基本步骤数据库设计的基本步骤n实体联系模型实体联系模型 E-R ModelE-R ModelnE-R ModelE-R Model向关系模型的转化向关系模型的转化3.1 3.1 数据库设计的基本步骤数据库设计的基本步骤1.数据库设计的内容:数据库设计的内容:为应用系统中的数据及其为应用系统中的数据及其联系联系构造较优的数据模式。构造较优的数据模式。2.数据库设计的步骤:数据库设计的步骤:需需求求分分析析设设计计概概念念模模型型设设计计逻逻辑辑模模型型设设计计物物理理结结构构系系统统实实现现试试运运行行及及维维护护3.概念模型及其表达工具:概念模型及其表达工具:从应用语义视角来抽取

2、模型,按用户的观点来对从应用语义视角来抽取模型,按用户的观点来对数据和及其联系进行建模。数据和及其联系进行建模。特点:特点:是面向用户、面向现实世界的数据模型,是面向用户、面向现实世界的数据模型,它与具体的它与具体的DBMSDBMS无关。无关。常用的表示概念模型的工具:常用的表示概念模型的工具:l实体实体- -联系模型联系模型(Entity-RelationshipEntity-Relationship简称简称E-RE-R)l语义对象模型。语义对象模型。3.2 3.2 实体实体- -联系模型联系模型由实体实体(Entity)(Entity)和联系和联系(Relationship)(Relati

3、onship)构成的模构成的模型。型。1.1.什么是实体什么是实体(Entity)(Entity)?现实世界中现实世界中客观存在的客观存在的一个具体或抽象的事物一个具体或抽象的事物叫做实体,一个实体与其它实体是能够叫做实体,一个实体与其它实体是能够相互区相互区分的分的。3.2.1 3.2.1 基本概念基本概念客观存在的抽象事件订货、演出、足球赛等也是实体可以触及的客观对象仓库、器件、职工等是实体n实体是属性来描述的。实体是属性来描述的。n属性就是描述实体特征的数据项属性就是描述实体特征的数据项。n实体标识符:能够唯一标识一个实体的属性或属性实体标识符:能够唯一标识一个实体的属性或属性组,且该属

4、性或属性组的子集不能标识该实体。组,且该属性或属性组的子集不能标识该实体。身高年龄性别体重CID比赛时间、地点、参赛队2.2.实体集实体集:具有共同属性的一类实体的集合。:具有共同属性的一类实体的集合。 An An entity setentity set is a set of entities of is a set of entities of the same type that share the same the same type that share the same perties.HE.g.: E.g.: 学生学生, ,教室,树木。教室,树木。C

5、ustomer-id customer- customer- loan- name street city amountcity amount numbern属性类型属性类型: :H简单属性简单属性 和和 组合属性组合属性. .H单值属性和多值属性单值属性和多值属性4E.g. E.g. 电话号码电话号码H派生属性派生属性Derived attributesDerived attributes4由其它属性计算而来的属性由其它属性计算而来的属性4E.g. E.g. 年龄年龄, , 出生年月出生年月n联系:联系:实体之间的相互关系实体之间的相互关系E.g.E.g.学生集中的张三和课程集中学生集中的张

6、三和课程集中DBDB之间会通过之间会通过选课产生联系;选课产生联系; E.g.E.g.客户集中的客户集中的hayehaye与帐户集中的与帐户集中的A-102A-102之间之间通过存款产生联系;通过存款产生联系;n联系集联系集:两个或多个实体集间,实体间联系的:两个或多个实体集间,实体间联系的总集合总集合. .HE.g.E.g.客户集与贷款集中所有实体间联系的总客户集与贷款集中所有实体间联系的总集合。集合。n在关系模型中,联系集可以用关系来表达:在关系模型中,联系集可以用关系来表达:(e e1 1, , e e2 2, , e en n) | ) | e e1 1 E E1 1, , e e2

7、2 E E2 2, , , , e en n E En n E Ei i表示实体集表示实体集 ( (e e1 1, , e e2 2, , , , e en n) ) 是一个元组是一个元组HExample: Example: depositordepositor表示的是客户与帐户间表示的是客户与帐户间的联系集,的联系集, (Hayes, A-102) (Hayes, A-102) depositordepositorn联系可以有属性描述联系的特征联系可以有属性描述联系的特征n一个联系集的所有联系有相同的属性一个联系集的所有联系有相同的属性n指一个联系集所涉及的实体集的个数指一个联系集所涉及的实

8、体集的个数n涉及两个实体集的联系,叫二元联系涉及两个实体集的联系,叫二元联系binarybinary (or degree two). (or degree two). n 涉及三个以上实体集的联系,叫多元联系涉及三个以上实体集的联系,叫多元联系, ,书书上称为多路联系(见上称为多路联系(见P76)P76)HE.g. E.g. 银行的员工,分支机构和工作职位银行的员工,分支机构和工作职位三个实体集,每个员工都在某个分支机构担三个实体集,每个员工都在某个分支机构担任某项工作,它们之间的联系是三元联系任某项工作,它们之间的联系是三元联系 (ternary relationship set)(ter

9、nary relationship set)n用一个实体集中的一个实体与另一个实体集中用一个实体集中的一个实体与另一个实体集中多少个实体产生联系这一角度定义二元联系的多少个实体产生联系这一角度定义二元联系的类型类型n共有三种类型的联系共有三种类型的联系( (见见P75)P75)HOne to oneOne to one(一对一)(一对一)HOne to many One to many (一对多)(一对多)HMany to many Many to many (多对多)(多对多)One to oneOne to many注意:A或B中的实体在B或A中可以没有实体与他们联系a5b5a4b6Man

10、y to oneMany to manyNote: Some elements in A and B may not be mapped to any elements in the other seta5b6nRectangles矩形矩形 代表实体代表实体.nEllipses 椭圆代表属性椭圆代表属性。nDiamonds 棱形棱形 代表联系集代表联系集.nLines直线直线 用于连接属性与实体集,属性与用于连接属性与实体集,属性与联系集,实体集与联系集联系集,实体集与联系集.nUnderline下划线下划线 说明键码说明键码 属性属性primary key attributesn ( (),

11、 ), 代表代表 “ “一一,” (,” (), ), 代表代表 “ “多多”nE.g. One-to-one relationship:E.g. One-to-one relationship:一对一一对一nE.g.E.g.一对多:一对多:one-to-many relationship :one-to-many relationship :nE.g.E.g.多对多多对多Many-To-Many RelationshipMany-To-Many Relationshipn如果联系涉及的实体集是一个,需要区分它在如果联系涉及的实体集是一个,需要区分它在联系中的不同作用联系中的不同作用n标签标签

12、 “ “manager” and “worker” manager” and “worker” 叫作叫作 rolesroles; ;表明实体间的相互作用表明实体间的相互作用n通过构造通过构造连接实体集连接实体集E E. .H将将R R用实体集用实体集E E来代替,然后生成以来代替,然后生成以E E与其它与其它实体集间的二元联系实体集间的二元联系: R: RA A,.R,.RB B, R, RC CH原联系原联系R R的属性成为的属性成为 E E的属性的属性H如如R R中的联系是中的联系是( (a ai i,b,bi i,c,ci i),e),ej j是是E E的实体,则的实体,则H1.(1.(

13、e ei i ,a ,ai i )R RA A; 2.(2.(e ei,i,b,bi i )to )to R RB B;H3.(3.(e ei i ,c ,ci i ) to ) to R RC Cvvvvn忠实性忠实性:设计必须以:设计必须以现实世界现实世界为唯一依据。为唯一依据。 n避免冗余避免冗余:即,:即,“一事一地一事一地”原则。现实世界原则。现实世界中的一个事物,在一个数据库中只表达一次。中的一个事物,在一个数据库中只表达一次。n尽量简单尽量简单:属性、实体集和联系能不用就不用:属性、实体集和联系能不用就不用,能合并就合并。,能合并就合并。n选择合适的事物类型选择合适的事物类型:n

14、是用实体集还是用属性是用实体集还是用属性n是用实体集还是用联系集是用实体集还是用联系集H根据它要表达的是一个动作吗?根据它要表达的是一个动作吗?n用二元联系还是多元联系用二元联系还是多元联系H根据一个语义里包含几个实体集?根据一个语义里包含几个实体集?n联系属性的位置是在实体上还是联系上?联系属性的位置是在实体上还是联系上?H根据它是否是描述一个动作的特征或结果?根据它是否是描述一个动作的特征或结果?nE-RE-R模型的设计步骤:模型的设计步骤:n1.1.先找实体集,一般来说实体集都是名词先找实体集,一般来说实体集都是名词n2.2.找实体集的属性找实体集的属性n3.3.找联系,一般来说,联系是

15、动词找联系,一般来说,联系是动词nE.g.E-RE.g.E-R模型的设计实例模型的设计实例: :用用E-RE-R图表示学生图表示学生运动会信息系统的概念模型运动会信息系统的概念模型。 需求描述:系统要求保存如下信息:需求描述:系统要求保存如下信息:学院学院: :学院代号学院代号, ,学院名称学院名称, ,办公地点办公地点; ;班级班级: :班号班号, ,班长姓名班长姓名; ;学生学生: :学号学号, ,姓名姓名, ,性别性别, ,出生年月出生年月; ;运动运动会会: :举办年份举办年份, ,举办季节举办季节, ,总裁判长总裁判长; ;项目项目: :项目代项目代号号, ,项目名称项目名称, ,项

16、目性质项目性质, ,本校记录。其中:本校记录。其中:一个学院有多个班级一个学院有多个班级, ,一个班级只属于一个学院一个班级只属于一个学院. .一个班级有多名学生一个班级有多名学生, ,一名学生只属于一个班级一名学生只属于一个班级一名学生可以参加多届运动会、多个项目。系统一名学生可以参加多届运动会、多个项目。系统应能够正确记录一名学生在某届运动会、某一项应能够正确记录一名学生在某届运动会、某一项目上所取得的成绩。同时目上所取得的成绩。同时, ,一个项目可以有不止一个项目可以有不止一名学生报名参加。一名学生报名参加。每年可以举办两届运动会,分别称为春季运动会每年可以举办两届运动会,分别称为春季运

17、动会和秋季运动会。和秋季运动会。班班 级级学学 生生组成组成 学学 院院运动会运动会项目项目竞赛竞赛成绩成绩隶属隶属注:注:略去其它属性。略去其它属性。举办年份举办年份举办季节举办季节总裁判长总裁判长n能够标识实体的最小的属性集合,称为实体能够标识实体的最小的属性集合,称为实体集的键码,或实体标识符集的键码,或实体标识符. .n当实体集有若干个键码是时,要指定一个做当实体集有若干个键码是时,要指定一个做为主码为主码 primary keyprimary key. .1.E-R1.E-R模型中的键模型中的键KeysKeys运动会运动会举办年份举办年份举办季节举办季节总裁判长总裁判长2.2.参照完

18、整性约束参照完整性约束对于从对于从E E到到F F的的多对一多对一联系的参照完整性约束联系的参照完整性约束, ,指:指:对于对于E E中当前中当前存在的一个实体存在的一个实体e e, , 在在F F中中必须存在一必须存在一个相对应的实体个相对应的实体f f。Customeraccountown(E)(F)参照完整性的表示:参照完整性的表示:3.3.域约束:属性类型及取值范围的约束。在域约束:属性类型及取值范围的约束。在E-RE-R模模型中没有特殊的规定,可以放在属性的旁边型中没有特殊的规定,可以放在属性的旁边3.2.5 3.2.5 子类实体子类实体n子类实体的概念是来自于面向对象的程序设子类实

19、体的概念是来自于面向对象的程序设计技术。计技术。n当我们对一个实体集进行细分当我们对一个实体集进行细分(Specialization)(Specialization)或概括时,就形成高一层或概括时,就形成高一层和低一层的实体集,它们就分别被称为超类和低一层的实体集,它们就分别被称为超类和子类。和子类。学生本科生研究生n子类实体继承超类的所有属性和联系子类实体继承超类的所有属性和联系. .n子类实体还可以有自己的属性和联系。子类实体还可以有自己的属性和联系。n在在E-RE-R图中,子类实体用标有图中,子类实体用标有” ISA“ ( “is ISA“ ( “is a”a” ) )的三角形与超类联系

20、。的三角形与超类联系。Note:Note:当子类实体没有自己的属性和联系时当子类实体没有自己的属性和联系时,则其不出现在,则其不出现在E-RE-R图中图中!Cartoonsisaisa MoviestitleyearlengthfilmtypeMurderMysteriesweaponvoicesstars多重继承问题多重继承问题 MoviesCartoonsisaMurderMysteriesisaisaisa Cartoons-MurderMystery卡通武打动作设计卡通武打动作设计(联系)(联系)(其它实体)(其它实体) Movies面向对象程序设计面向对象程序设计中,有以下中,有以下

21、C+C+类结构类结构: : Cartoons MurderMysteriesCartoons-MurderMysterynAn entity set that does not have a primary key is referred to as a weak entity set.一个实体集没有主码就是弱实体集一个实体集没有主码就是弱实体集n来源:来源:H当两个实体集有当两个实体集有”属于属于“这种层次结构时这种层次结构时:HE.g.E.g.每个班级都有基于课外小组,课外小每个班级都有基于课外小组,课外小组由小组号描述,可为组由小组号描述,可为1,21,2。 班级班级班号班号小组号小组号

22、课外小组课外小组课课 程程教员教员教科书教科书教学教学开课时间开课时间H由多元联系转化的由多元联系转化的连接实体集连接实体集往往往往是弱实是弱实体集体集. .课课 程程教员教员人员人员教科书教科书教材教材开课开课开课时间开课时间教学教学 转化成二元联系如下:转化成二元联系如下:n弱实体集的键码组成:弱实体集的键码组成:H自己的属性自己的属性H通过多对一的联系从其它强实体集获取通过多对一的联系从其它强实体集获取HE.g.E.g.课外小组的键码:课外小组的键码:( (班号,小组号班号,小组号) )班级班级 班号班号小组号小组号组成组成课外小组课外小组课课 程程人员人员教材教材开课开课开课时间开课时

23、间教学教学 教员教员教员编号教员编号 教科书教科书教材编号教材编号 键码:键码:( (开课时间,教员编号,教材编号开课时间,教员编号,教材编号) )n弱实体集的表示:弱实体集的表示:HWe depict a weak entity set by double We depict a weak entity set by double rectangles.rectangles.双线矩形框双线矩形框H弱实体集与为它提供键码的实体集间的联系弱实体集与为它提供键码的实体集间的联系用双线棱形用双线棱形E-RE-R模型设计练习:为一个网上书店系统设计概模型设计练习:为一个网上书店系统设计概念模型,系统中

24、的数据包括:念模型,系统中的数据包括: 图书信息,记录书名,价格,出版日期,作者图书信息,记录书名,价格,出版日期,作者,ISBNISBN,内容简介等。,内容简介等。 客户信息客户信息, ,记录客户编号记录客户编号, ,客户名称,手机号码客户名称,手机号码(只需要一个),(只需要一个),E-mailE-mail(一个),地址信息(一个),地址信息(地址信息包括省,市,区,街道,邮编等)(地址信息包括省,市,区,街道,邮编等)客户可以有多个地址。客户有会员和普通客户客户可以有多个地址。客户有会员和普通客户,会员有会员,会员有会员IDID号,及相应的折扣信息。号,及相应的折扣信息。 仓库信息:记录

25、仓库编号,电话。每个仓库可仓库信息:记录仓库编号,电话。每个仓库可以存贮多种图书,每种图书可以在多个仓库存以存贮多种图书,每种图书可以在多个仓库存贮。贮。 客户每次买书时,系统自动为其生成一个购物车客户每次买书时,系统自动为其生成一个购物车,并用唯一的编号标识,一个购物车只属于一个,并用唯一的编号标识,一个购物车只属于一个客户,一个客户却可以拥有多个购物车,系统要客户,一个客户却可以拥有多个购物车,系统要记录用户获得购物车的时间。一个购物车中可以记录用户获得购物车的时间。一个购物车中可以包含多种图书,每种图书可以放在多个购物车中包含多种图书,每种图书可以放在多个购物车中,系统要能够记录每个购物

26、车中每种图书的数量,系统要能够记录每个购物车中每种图书的数量。 图书图书包包含含地址地址 仓库仓库客客 户户会员会员购物车购物车属属于于isa拥有拥有存贮存贮仓库编号仓库编号 时间时间数量数量ID ID IDIDISBNISBNIDID3.3 3.3 3.3.1 3.3.1 强实体集的转化强实体集的转化n一个强实体集转化成一个关系模式,实体集的一个强实体集转化成一个关系模式,实体集的主码和属性成为关系模式的主码和属性。主码和属性成为关系模式的主码和属性。E.g. E.g. 把把 “ “COURSE”COURSE”实体集,转换为实体集,转换为“COURSE”COURSE”关系模式关系模式COUR

27、SECnoCnameCreditClassroom COURSE(Cno, Cname, Credit, Classroom) Customer(Customerid, Customername, Customerstreet, Customercity)n弱实体集弱实体集A A转化成一个关系模式,该关系模式的转化成一个关系模式,该关系模式的属性包括包括:属性包括包括:A A自已的属性,以及为自已的属性,以及为A A提供主提供主码属性的强实体集的主码。码属性的强实体集的主码。班级班级 班号班号小组号小组号组成组成课外小组课外小组课外小组课外小组( (班号班号,小组号小组号, . . . ).

28、. . )Payment ( loannumber,paymentnumber, paymentdate, paymentamount ) 一般原则一般原则:为:为联系联系建立一个关系模式。建立一个关系模式。 E1 E2Rk1k2RA R( k1, k2, RA )1.1.若按以上原则变换后,若按以上原则变换后,R R中出现相同属性名,应中出现相同属性名,应进行进行“改名改名”。2.2.关系的键码由联系的类型来定关系的键码由联系的类型来定n多对多联系:转化成一个关系模式,属性由联多对多联系:转化成一个关系模式,属性由联系本身的属性及参与联系的实体集的键码构成系本身的属性及参与联系的实体集的键码

29、构成. .关系模式的键码由参与联系的实体集的键码关系模式的键码由参与联系的实体集的键码共同构成共同构成 nE.g.: for relationship setE.g.: for relationship setborrowerborrowerBorrower(customerid,loannumber)Borrowern一对多联系:一对多联系:Accountbranch( accountnumber, branchname)Account( accountnumber, balance)branch( branchname,branchcity,assets)Account( accountn

30、umber, balance, branchname)branch( branchname,branchcity,assets)n弱实体集与它所依赖的强实体集间的联系就更弱实体集与它所依赖的强实体集间的联系就更没有必要转化没有必要转化!Why?n一对一联系:一对一联系: Student DodumentS_DinDateSnoDocumentno Student(Sno, sname) Document(Documentno, ) S_D(Sno, Documentno, inDate)Student(Sno, Documentno, inDate,sname.)n“ISA”ISA”不用转化,

31、只涉及到高一层实体与低不用转化,只涉及到高一层实体与低一层实体如何转化一层实体如何转化nMethod 1:Method 1: H为父类实体集建立一个关系模式为父类实体集建立一个关系模式 H为每个子类实体集分别建立一个关系模式,为每个子类实体集分别建立一个关系模式,属性由父类实体集的主码和子类实体集自己属性由父类实体集的主码和子类实体集自己的属性构成的属性构成HDrawback:Drawback: 检索信息时经常涉及到多个关检索信息时经常涉及到多个关系。如查询某一个凶杀片的制作年份及播放系。如查询某一个凶杀片的制作年份及播放长度。长度。isa MoviestitleyearlengthfilmtypeMurderMysteriesweaponMovies(Title, Year, length, . . .)Murder-Mysteries(Title, Year, Weapon)nMethod 2:Method 2: H如果子类实体集是不相交且全部的。如果子类实体集是不相交且全部的。H为每个子类实体建立一

温馨提示

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

评论

0/150

提交评论