- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六组数据管理设计构件部署设计.doc
第七章 数据管理部分的设计
7.1 什么是数据管理部分
需要长期存储的对象,在概念上称为永久对象。数据管理部分是负责存储和检索永久对象。此外,还要封装这些对象的查找和存储机制,以隔离数据管理方案对其他部分的影响。
可以选择文件系统、关系数据库系统或面向对象数据库系统来存储系统中的永久对象。无论用什么系统进行存储,对需要存储的对象,都只需存储对象的属性值部分。
7.2数据库和数据库管理系统
数据库是长期存在计算机内、有组织、可共享的数据的集合。数据库管理系统是用于建立、使用和维护数据库的软件,它对数据库进行统一管理和控制,以保证数据库的完整性和安全性。下图描述了数据库和数据库管理系统的组成及对外的接口。
图1数据库和数据库管理系统的组成及对外的接口
7.2.1关系数据库
关系数据库是采用关系模型的数据库。关系模型用二维表结构来表示各类实体及其间的联系。 二维表由行和列组成。一个关系数据库由多张表组成 。图2是两个二维表示例。
每一行为一个元组,每一列为一个属性。
对于与每一个表,都需要一个或一组其值能唯一的标识表的每个元素的属性,这个这样的属性或属性组,叫做该表的一个候选关键字。对于一个表,要指定一个候选关键字,叫做该表的主键。
在访问表时可能需要把表连接起来,用于连接表的属性成为外键。
人员ID 人员姓名 地址 身份证号 9001
9005
9071 张进
李钱
王五 海定路11号
清华路12号
天津路32号 2131440
5462100
5796040 a)
人员ID 籍贯 9001
9005
9071 山东
云南
浙江 b)
图2.二维表示例
图2中的人员ID、人员姓名、地址和身份证号为表的属性,属性栏下面的每一行为该表的一个元组。对于每一个表,都需要一个或一组其值能唯一标识表的每一个元组的属性。每一个这样的属性或属性组叫做该表的候选关键字。对于一个表,要指定一个候选关键字,作为该表的主关键字也称为主键。在访问表时可能需要把表连接起来,用于连接表的属性称为外键。外键是一个表中的一个和几个属性,同时也是另一个表的主关键字或候选关键字。如图2所示的两个表中的属性“人员ID”都可以作为连接表的外键。
数据库中的表要满足一些范式,如下为三个范式的定义。
第一范式: 关系(表)的每个属性都应该是原子的。
第二范式:如果一个关系在第一范式中,都只依赖整个关键字,则该关系在第二范式中。
例子:
假定选课关系表为SelectCourse(学号, 姓名, 年龄, 课程名称, 成绩, 学分),关键字为组合关键字(学号, 课程名称),因为存在如下决定关系:? (学号, 课程名称) → (姓名, 年龄, 成绩, 学分)???? 这个数据库表不满足第二范式,因为存在如下决定关系:???? (课程名称) → (学分)???? (学号) → (姓名, 年龄)即存在组合关键字中的字段决定非关键字的情况。把选课关系表SelectCourse改为如下三个表:???? 学生:Student(学号, 姓名, 年龄);???? 课程:Course(课程名称, 学分);???? 选课关系:SelectCourse(学号, 课程名称, 成绩)。??满足第三范式的数据库表应该不存在如下依赖关系:???? 关键字段 → 非关键字段x → 非关键字段y?假定学生关系表为Student(学号, 姓名, 年龄, 所在学院, 学院地点, 学院电话),关键字为单一关键字学号,因为存在如下决定关系:???? (学号) → (姓名, 年龄, 所在学院, 学院地点, 学院电话)???? 这个数据库是符合2NF的,但是不符合3NF,因为存在如下决定关系:???? (学号) → (所在学院) → (学院地点, 学院电话)???? 即存在非关键字段学院地点、学院电话对关键字段学号的传递函数依赖。???? 把学生关系表分为如下两个表:???? 学生:(学号, 姓名, 年龄, 所在学院);???? 学院:(学院, 地点, 电话)。?
这样的数据库表是符合第三范式的
(1)是面向对象的,应支持对象、类、操作、属性、继承、聚合、关联等面向对象的概念;(2)另一方面它具有数据库系统所应具有的特定和功能。
其产品大概分三类。
(1)在面向对象编程语言的基础上,增加数据库管理系统的功能,即长久地存储、管理和存取对象的功能。
(2)对关系数据库管理系统进行扩充,使之支持面向对象数据模型,在关系数据库模型基础上提供对象管理功能,并向用户提供面向对象的应用程序接口。
(3)第三种是按“全新的”面向对象数据模型进行的设计。
7.3如何设计数据管理部分
首先要根据条件选择数据管理系统:文件系统,关系数据库,面向对象数据库。
7.3.1针对关系
文档评论(0)