数据库设计的三个阶段
数据库的设计一共分多少个阶段呢,严来说,不止三个阶段,今天我们仅讨论其中的三个阶段。概念设计、逻辑设计和物理设计阶段。 首先要搞清楚几个问题,数据库为什么要分阶段设计?三个阶段有什么联系?要说清楚这几个问题,只有理论是说不清的,我们还是来举
数据库的设计一共分多少个阶段呢,严格来说,不止三个阶段,今天我们仅讨论其中的三个阶段。概念设计、逻辑设计和物理设计阶段。
首先要搞清楚几个问题,数据库为什么要分阶段设计?三个阶段有什么联系?要说清楚这几个问题,只有理论是说不清的,我们还是来举个例子吧。
现在有一个图书馆,需要为读者信息、图书信息、借阅信息建立一个数据库,读者信息包括姓名、学号、性别、办卡日期、家庭住址、联系电话、类别等,图书信息包括编号、作者、出版信息、页数、登记日期等,借阅信息包括借书证号、图书编号、书名、借还日期等,这么多的信息,如果在没有进行分析之前就开始设计数据库是不现实的。所以,首先要把这些数据进行分类、整理(概念模型),然后画出图表或者表格,最后画出这些数据信息的关系结构(逻辑模型),甚至制定数据库的存储记录格式、存储记录安排、和存取方法(物理模型)使用户能简单、方便、容易的存取数据。所以,数据库设计必须经过这三个设计阶段,下面我们来详细讨论这三个设计阶段。
一 从上面的例子,我们可以得出以总结出三个阶段(模型)各自的特点:
1 概念模型:首先,概念模型是一个工具,是数据库设计人员和客户进行交流的平台;它独立于硬件和软件;概念模型表达了数据的整体逻辑结构,它是系统用户对整个应用项目设计的数据的全面描述;概念模型是从用户的观点出发,对数据建模。
2 逻辑模型:逻辑模型首先也是一个工具,它是数据库设计人员和应用程序员进行交流的平台;逻辑模型独立于硬件,但是却依赖于软件(数据库系统);逻辑模型表达了数据库的整体逻辑结构,但它是设计人员对整个项目数据库的全面描述;逻辑模型是从数据库实现的观点出发,对数据建模。
3 物理模型:物理模型(内部模型)是数据库最底层的抽象,它描述数据在磁盘或磁带上的存储方式(文件的结构)、存取设备(外存的空间分配)和存取方法(主索引和辅助索引)。
概念模型和逻辑模型各有不同,用一个表格对比一下。
特点 |
功能 |
出发点 |
独立性 |
用户 |
概念模型 |
表达了数据的整体逻辑结构 |
用户需求 |
独立于硬件和软件 |
设计人员和用户 |
逻辑模型 |
表达了数据库的整体逻辑结构 |
数据库实现 |
独立于硬件但是依赖于软件(数据库系统) |
设计人员和应用程序员 |
二 咱们再从数据描述来探讨他们的区别于联系。
1 数据库的概念设计是根据用户的需求设计数据库的概念结构,他以规范的形式,表达了用户需求所涉及事物的理解。这一阶段用到四个术语:
实体:客观存在,可以相互区别的事物就是实体,它可以是具体的对象,一个人,一个房子等等,也可以是一个抽象的对象,马克思主义,*思想等等;
实体集:简单来说就是同类实体的集合,我们都学过集合,这个概念就不深究了;属性:实体的特性就是属性,这个概念可以对比vb控件来学习,每一个属性都有一个值域,它的类型也是各种各样。
实体标识符:能唯一标识实体的属性或属性集,也称关键码(key)。
2 数据库的逻辑设计是根据概念设计的结果设计数据库的逻辑结构,及表达方式和实现方法。逻辑设计有许多方法,每个方法都有一套术语,下面列举最常用的一套术语:
字段:标记实体属性的命名单位,它是可以命名的最小实体单位,又称为数据元素或初等项,它的命名旺旺和属性名相同。
记录:字段的有序集合成为记录,一般用一个记录来描述一个实体。
文件:同一类记录的集合。
关键码:能唯一标识文件中每个记录的字段或字段集。
用一个表格来对比概念和逻辑设计中数据的联系:
概念设计 |
实体 |
属性 |
实体集 |
实体标识符 |
|
…… |
…… |
…… |
…… |
逻辑设计 |
记录 |
字段 |
文件 |
关键码 |
3 数据库物理设计,它涉及到了硬件知识,咱们这里只做介绍,不做讨论了。高速缓冲存储器(Cache):访问速度最快,最贵的存储器;主存储器:也就是内存;快擦科协存储器:介于内存和硬盘之间的一种存储器;磁盘存储器:俗称硬盘;光存储器:光盘;磁带等。下面用一张图来描述他们的存储层次关系:
三 理论性的东西没有直观性,我们还以上面图书馆的例子为基础,继续讨论三个设计阶段的特点和联系。
首先应该分析数据信息,画出他们的联系,下面是读者和图书之间的简单关系图(ER图)
这个简单的ER图直观的表达除了读者和图书之间的关系,根据这个图,我们可以列出五个相互联系的表格,联系如下:喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICAgICA8aW1nIHNyYz0="" alt="\">
这五个表格就是数据库逻辑设计的表格的内容了。具体数据库表格就不画了。