当前位置:编程学习 > C/C++ >>

面向对象的关系数据库设计

 

  

  一、概念的区分

 

  有些人把面向对象的数据库设计(即数据库模式)思想与面向对象数据库管

理系统(OODBMS)理论混为一谈。其实前者是数据库用户定义数据库模式的思路

,后者是数据库管理程序的思路。用户使用面向对象方法学可以定义任何一种

DBMS数据库,即网络型、层次型、关系型、面向对象型均可,甚至文件系统设计

也照样可以遵循面向对象的思路。 面向对象的思路或称规范可以用于系统分析

、系统设计、程序设计,也可以用于数据 结构设计、数据库设计。OOSE自上至

下、自始至终地贯彻面向对象思路,是一个一气呵成 的统一体。面向对象的数

据库设计只是 OOSE 的一个环节。

 

  二、数据库设计的重要性

 

  一般数据库设计方法有两种,即属性主导型和实体主导型。属性主导型

从归纳数据库应用的属性出发,在归并属性集合(实体)时维持属性间的函数依

赖关系。实体主导型则先 从寻找对数据库应用有意义的实体入手,然后通过定

义属性来定义实体。一般现实世界的 实体数在属性数 1/10 以下时,宜使用实

体主导型设计方法。面向对象的数据库设计是从对象模型出发的,属于实体主导

型设计。 一般数据库应用系统都遵循以下相关开发步骤:

 

1设计应用系统结构;

 

2 选择便于将应

   用程序与DBMS结合的DBMS体系结构,如RDBMS;

 

3 根据应用程序使用的环境平台,选择适宜的DBMS(如Oracle)和开发工具(如PB);

 

4 设计数据库,编写定义数据库模式的SQL程序;

 

5 编写确保数据正确录入数据库的用户接口应用程序;

 

6 录入数据库数据;

 

7 运行各种与 数据库相关的应用程序,以确认和修正数据库的内容。

 

  对以上各步骤,有几点需要说明:

 

(1) 这不是瀑布模型,每一步都可以有反馈。

  在公路局系统中,以上各步不仅有反馈、有反复,还有并行处理。比如一些

库表在数 据录入时,另一些库表设计还在修改。这与我们的递增式开发方法有

关,也与面向对象的 特征有关。

 

(2) 上述顺序不是绝对的,大多数场合是从第三步开始的。

 

(3) 对大多数数据库应用系统来说,上述各步中最重要、最困难的不是应用系统

设计而是数据库设计。

 

  三、DBMS的支持和数据库设计

 

  多数据库应用系统开发者不重视数据库设计的原因是:他们太迷信DBMS,认

为购入一个功能强大的DBMS后数据库设计就不困难、不重要了。一些国内外的

数据库教材常常 是在为DBMS的开发厂商做宣传,而很少站在数据库用户角度,从

数据库应用系统出发介绍数据库设计方法。结果往往使读者搞不清书中介绍的

是数据库管理程序的设计思想,还是 应用这种 DBMS 进行数据库设计的思想。

其实,DBMS只是给用户为已采用的数据库提供一个舞台,而是否使用这个舞台上

的道具以及唱什么戏,则完全取决于用户的戏剧脚本和导演(开发者)的安排。例

如,公路局系统所使用的数据库管理系统,是以二维表为基本管理单元、支持所有

关系代数操作、支持 实体完整性与实体间参照完整性的全关系型RDBMS,而我们

要在这个舞台上利用上述"道具"设计一个面向对象的关系数据库。

 

  四、应用对象模型与RDBMS模型的映射

 

  数据库设计(模式)是否支持应用系统的对象模型,这是判断是否是面向对象

数据库系统的基本出发点。由于应用系统设计在前,数据库设计随后,所以应用

系统对象模型向 数据库模式的映射是面向对象数据库设计的关键。

 

  1. 三层数据库模式面向对象模型的扩展

 

  一般数据库设计多参照ANSL/SPARC关于数据库模式的3层标准结构提案。

最接近物理数据库的内部模式由DBMS提供的SQL来描述。概念模式可以由若干

个内部模式聚集而成 ,它是由数据库用户规范的一些表的集合。例如,公路局计

划处数据库模式、机务处数据 库模式等,它们是逻辑数据库,常常通过库表ID来

界定库边界。一般的概念模式是数据库 物理模式作用域的边界,它能实现数据

库的物理意义、特定DBMS 的特殊操作对外部应用 程序的信息隐蔽。外部模式

是从特定用户应用角度看待的数据库模式,从不同的应用出发对同一概念模式可

以给出多种不同的外部模式。例如

补充:软件开发 , C语言 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,