第6章数据存储_第1页
第6章数据存储_第2页
第6章数据存储_第3页
第6章数据存储_第4页
第6章数据存储_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、2022-3-161使用关系数据库实现存储 大多数系统都有数据存储的需求大多数系统都有数据存储的需求 在实现上,将在实现上,将运行时对象映射为可运行时对象映射为可存储的数据存储的数据,并存储在关系型数据,并存储在关系型数据库中库中 关系型数据库是目前业界最流行的关系型数据库是目前业界最流行的数据存储技术数据存储技术面向对象面向对象实体实体-联系模型联系模型 关系数据库关系数据库类类实体类型实体类型表表对象对象实体实例实体实例行(记录)行(记录)属性属性属性属性列(字段)列(字段)关系关系关系关系表表字段字段数据类型数据类型长度长度登录名称varchar20登录密码varchar6姓名varch

2、ar30学号varchar8班级varchar162022-3-1641. 表 关系模型基于数据表(也称为关系),表包含列和行关系模型基于数据表(也称为关系),表包含列和行登录名称登录名称登录密码登录密码姓名姓名学号学号班级班级Lili*李素丽李素丽20080202财务财务081Jiebao*田洁田洁20091011计科计科092wangwang*张旺张旺20100806艺术艺术101示例:学生表示例:学生表2022-3-1652. 把对象模型映射为关系模型 把对象模型映射为表时,先从把对象模型映射为表时,先从分析类图或设计类图开始分析类图或设计类图开始2022-3-1663 映射实体类 为把

3、面向对象的模型中的实体为把面向对象的模型中的实体(业务对象)映射到关系模型(业务对象)映射到关系模型中,需要引入一个与实体类同中,需要引入一个与实体类同名的表名的表 实体表中的每一行都表示业务实体表中的每一行都表示业务域中的一个独特对象域中的一个独特对象2022-3-167映射实体类 对于每个简单的字段(原型或字符对于每个简单的字段(原型或字符串),可以在表中添加一个与字段串),可以在表中添加一个与字段同名的列和一个对应的同名的列和一个对应的SQL数据类数据类型型 指向(非字符串)对象的实体必须指向(非字符串)对象的实体必须另外处理另外处理 为便于面向对象编程,也可以引入为便于面向对象编程,也

4、可以引入一个整数属性(如一个整数属性(如ID)作为表的主)作为表的主键键 将一对一关联映射到表将一对一关联映射到表 将一对多关联映射到表将一对多关联映射到表 将多对多关联映射到表将多对多关联映射到表 将继承关系映射到表将继承关系映射到表2022-3-1682022-3-1694 映射关联 在将分析类模型映射为设计类模型时,在将分析类模型映射为设计类模型时,必须把双向分析关联转换为单向指针必须把双向分析关联转换为单向指针 关系数据库直接存储双向关联,无须关系数据库直接存储双向关联,无须做转换做转换2022-3-16101. 一对一关联 对于一对一关联,可以给一个对于一对一关联,可以给一个实体表添

5、加外键实体表添加外键 外键外键:是一个表中指向另一个是一个表中指向另一个表中主键的一项,即一个表的表中主键的一项,即一个表的一行对另一个表的一行的引用一行对另一个表的一行的引用2022-3-1611把一对一关联映射为外键ID名称名称日租金日租金CarModalDetailID141001别克别克GL850037132012标致标致20725019142010凯美瑞凯美瑞35018IDENGINESIZE细节描述细节描述流媒体广告流媒体广告海报图片海报图片193.0Pure luxuryArf.ramArf.jpg181.6Power and Amd9.ramAmd9.jpg372.0Smoot

6、h but Rcgs.ramRcgs.jpgCarModal表表CarModalDetail表表2022-3-16122. 一对多关联 对于一对多关联,可以在对于一对多关联,可以在“多多”表中添加外键表中添加外键2022-3-1613把一对多关联映射为外键IDNUMBER教师编号教师编号是否审核通过是否审核通过4M10514TRUE11M937145FALSE2M20314TURE教师编号教师编号姓名姓名登录密码登录密码注册时间注册时间14Visor#2006-10-0945Annex*2006-12-14课件表课件表教师表教师表2022-3-1614一对多关联映射CarModal表表Car表

7、表ID名称名称日租金日租金141001别克别克GL8500132012标致标致207250142010凯美瑞凯美瑞350ID已行驶里程已行驶里程末次保养日期末次保养日期CarModalID001200002014-1-10132012002100002013-12-20132012003120002013-10-261410012022-3-16153. 多对多关联 对于多对多关联,一个外键不对于多对多关联,一个外键不足以标识关联两端的多个实体足以标识关联两端的多个实体 在纯关系模型中,表中的每个在纯关系模型中,表中的每个值都必须是原子化的,即不是值都必须是原子化的,即不是值的集合值的集合20

8、22-3-1616多对多关联 由于不能有多值属性,因此需由于不能有多值属性,因此需要使用链表要使用链表 链表中的每一行都表示一个表链表中的每一行都表示一个表中的实体与另一个表中的实体中的实体与另一个表中的实体之间链接之间链接 链表有一个链表有一个组合主键组合主键,它包含,它包含两个外键两个外键2022-3-1617把多对多关联映射为链表会员编号会员编号CARMODELID1001141001100113201210021320121003132012CARMODEL表表MAKECARMODEL表表MAKE表表编号编号登录名称登录名称登录密码登录密码会员状态会员状态1001Lili*金牌金牌10

9、02Jiebao*银牌银牌1003wangwang*钻石钻石2022-3-16184. 关联类 关联类由于有自己的数据,无关联类由于有自己的数据,无论关联两端的多重性如何,都论关联两端的多重性如何,都必须映射为链表必须映射为链表 与普通链表不同,表示关联类与普通链表不同,表示关联类的列表有属性列的列表有属性列它们甚至它们甚至有有ID列(如果关联类本身是一列(如果关联类本身是一个实体)个实体)2022-3-1619把关联类映射为链表IDCARMODELIDCUSTMERIDNUMBERTIMESTAMP7334R187a2004-12-06 14:23:16.5431222R7b2004-12-

10、03 00:03:21.87299724R459b2004-12-05 09:45:07.210RESERVATION表表2022-3-16205 映射对象状态 对于状态机中的对象,需要记录每个对象所处的对于状态机中的对象,需要记录每个对象所处的状态状态 在业务层,业务对象通过简单字段表示状态,如在业务层,业务对象通过简单字段表示状态,如String或或intIDCARMODELIDCUSTMERIDNUMBERTIMESTAMPSTATE7334R187a2004-12-06 14:23:16.54301222R7b2004-12-03 00:03:21.872299724R459b2004

11、-12-05 09:45:07.2100RESERVATION表表租车系统预约状态图2022-3-16212022-3-16226. 映射继承 为把继承层次映射到表上,可为把继承层次映射到表上,可以为每个类引入一个表,其中以为每个类引入一个表,其中的列对应于类添加的属性的列对应于类添加的属性 为找出对象的所有属性,表必为找出对象的所有属性,表必须共享相同的主键须共享相同的主键2022-3-1623IDNUMBERINGOODSTANDINGCARDIDADDRESID4M105TRUE14911M9371FALSE4522M203TURE149MEMBER表表IDNAMEAMOUNTDUEPHONE4Helen Meeder0(0452)9498311Alice Tara0(0161)8983492Georage Milo3980(07968)145

温馨提示

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

评论

0/150

提交评论