什么是数据管理
?数据管理部分是负责在特定的数据管理系统中存储和检索对象的组成部分。
–其目的是,存储问题域的持久对象、封装这
些对象的查找和存储机制,以及为了隔离数据管理方案的影响。
数据管理部分设计的目标(2)
?不同的数据管理系统
–文件系统、R-DBMS、OODBMS
?问题范围
–只存储对象的属性部分
–可能只有一部分对象需要长久存储
关系数据库系统
?关系数据库是采用关系模型的数据库。?关系模型用二维表结构来表示各类实体及其间的联系。
?二维表由行和列组成。一个关系数据库由多张表组成。
数据库提供的功能
?插入新的行
?删除一个或多个行
?修改一个或多个行
?查找满足特定条件的行(列)–多表的连接
数据库中的范式
?数据库中的表要满足一些范式,如下为三个范式的定义。
–第一范式:
关系(表)的每个属性都应该式原子的。
–第二范式:
如果一个关系的所有非关键字属性,都只依赖整个关键字,则该关系满足第二范式。
–第三范式:
如果一个关系满足第二范式,且没有传递依赖,则
该关系满足第三范式。
单个类的数据库设计
?1)列出每个类的所有属性(可能要包括继承来的属性)
?2)规范化——一般按第三范式(至少要满足第二范式),按时间与空间权衡
?3)定义数据库的表
规范化
?若一个类的属性列表不满足第二范式或更高范式,有两种可选的策略:
–(1)拆分类,这样要修改问题域模型;
–(2)不修改类,而是让一个类对应两个或多个表,让每个表满足范式要求,这样在存储和
检索类时要进行一定的转换运算。
关系的数据库设计(1)
?在关系数据库中按下述方法对关联进行数据存放:
–每个一对一的关联映射到一张独立的表,或在各类对应
的表中用外键隐含;也可把两个对象和关联放在同一
表中。
–每个一对多的关联映射到一张独立的表,或在“多”的类对应的表中用外键隐含。
–每个多对多的关联映射到一张独立的表,该表的主关
键字是两个进行关联的表的主关键字的拼接。或者,
把它转化为一对多的关联,然后再按一对多的方式进
行处理。