资源描述:
《第六组-数据管理设计、构件部署设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第七章数据管理部分的设计7.1什么是数据管理部分需要长期存储的对象,在概念上称为永久对象。数据管理部分是负责存储和检索永久对象。此外,还要封装这些对象的查找和存储机制,以隔离数据管理方案对其他部分的影响。可以选择文件系统、关系数据库系统或面向对象数据库系统来存储系统中的永久对象。无论用什么系统进行存储,对需要存储的对象,都只需存储对象的属性值部分。7.2数据库和数据库管理系统数据库是长期存在计算机内、有组织、可共享的数据的集合。数据库管理系统是用于建立、使用和维护数据库的软件,它对数据库进行统一管理和控制,以保证数据库的完整性和安全性。下图描述了数据库和数据库管理系统的组成及
2、对外的接口。图1数据库和数据库管理系统的组成及对外的接口7.2.1关系数据库关系数据库是采用关系模型的数据库。关系模型用二维表结构来表示各类实体及其间的联系。二维表由行和列组成。一个关系数据库由多张表组成。图2是两个二维表示例。每一行为一个元组,每一列为一个属性。对于与每一个表,都需要一个或一组其值能唯一的标识表的每个元素的属性,这个这样的属性或属性组,叫做该表的一个候选关键字。对于一个表,要指定一个候选关键字,叫做该表的主键。在访问表时可能需要把表连接起来,用于连接表的属性成为外键。人员ID人员姓名地址身份证号900190059071张进李钱王五海定路11号清华路12号天津
3、路32号213144054621005796040a)人员ID籍贯18900190059071山东云南浙江b)图2.二维表示例图2中的人员ID、人员姓名、地址和身份证号为表的属性,属性栏下面的每一行为该表的一个元组。对于每一个表,都需要一个或一组其值能唯一标识表的每一个元组的属性。每一个这样的属性或属性组叫做该表的候选关键字。对于一个表,要指定一个候选关键字,作为该表的主关键字也称为主键。在访问表时可能需要把表连接起来,用于连接表的属性称为外键。外键是一个表中的一个和几个属性,同时也是另一个表的主关键字或候选关键字。如图2所示的两个表中的属性“人员ID”都可以作为连接表的外键
4、。数据库中的表要满足一些范式,如下为三个范式的定义。第一范式:关系(表)的每个属性都应该是原子的。第二范式:如果一个关系在第一范式中,都只依赖整个关键字,则该关系在第二范式中。例子:假定选课关系表为SelectCourse(学号,姓名,年龄,课程名称,成绩,学分),关键字为组合关键字(学号,课程名称),因为存在如下决定关系: (学号,课程名称)→(姓名,年龄,成绩,学分) 这个数据库表不满足第二范式,因为存在如下决定关系: (课程名称)→(学分) (学号)→(姓名,年龄)即存在组合关键字中的字段决定非关键字的情况。改为:把选课关系表SelectCourse改
5、为如下三个表: 学生:Student(学号,姓名,年龄); 课程:Course(课程名称,学分); 选课关系:SelectCourse(学号,课程名称,成绩)。 第三范式:如果一个关系在第二范式中,且没有传递依赖,则该关系在第三范式中。即满足第三范式的数据库表应该不存在如下依赖关系: 关键字段→非关键字段x→非关键字段y 例子:假定学生关系表为Student(学号,姓名,年龄,所在学院,学院地点,学院电话),关键字为单一关键字"学号",因为存在如下决定关系: (学号)→(姓名,年龄,所在学院,学院地点,学院电话) 这个数据库是符合2NF的
6、,但是不符合3NF,因为存在如下决定关系: (学号)→(所在学院)→(学院地点,学院电话) 即存在非关键字段"学院地点"、"学院电话"对关键字段"学号"的传递函数依赖。 把学生关系表分为如下两个表: 学生:(学号,姓名,年龄,所在学院); 学院:(学院,地点,电话)。 这样的数据库表是符合第三范式的其次还有Boyce-Codd范式(BCNF)等。7.2.2面向对象数据库18面向对象数据库是采用面向对象模型的数据库。有两方面的特征:(1)是面向对象的,应支持对象、类、操作、属性、继承、聚合、关联等面向对象的概念;(2)另一方面它具有数据库系统所应具
7、有的特定和功能。其产品大概分三类。(1)在面向对象编程语言的基础上,增加数据库管理系统的功能,即长久地存储、管理和存取对象的功能。(2)对关系数据库管理系统进行扩充,使之支持面向对象数据模型,在关系数据库模型基础上提供对象管理功能,并向用户提供面向对象的应用程序接口。(3)第三种是按“全新的”面向对象数据模型进行的设计。7.3如何设计数据管理部分首先要根据条件选择数据管理系统:文件系统,关系数据库,面向对象数据库。7.3.1针对关系数据库的数据存取设计利用关系数据库对永久对象进行存取,是目前最为广泛的方