数据库设计

时间:2024-03-17 11:50:46

数据库设计简介

按照规范设计,将数据库的设计过程分为六个阶段: 
A、系统需求分析阶段
B、概念结构设计阶段
C、逻辑结构设计阶段
D、物理结构设计阶段
E、数据库实施阶段(编码和测试)
F、数据库运行与维护阶段
需求分析和概念结构设计独立于任何数据库管理系统。

       数据库设计目前一般采用生命周期法,即将整个数据库应用系统分解成目标独立的若干阶段,及以上六个阶段,数据设计覆盖前面四个阶段,重点在数据结构和模型设计。

系统需求分析阶段

1、需求分析的任务

需求分析的任务:对现实世界要处理的对象进行详细的调查,通过对原系统的了解,收集支持新系统的基础数据并对其进行处理,在此基础上确定新系统的功能。
A、调查分析用户活动
B、收集和分析需求数据,确定系统边界信息需求,处理需求,安全性和完整性需求
C、编写系统分析报告

2、需求分析的方法

       进行数据库设计首先必须准确了解和分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础,也是最困难,最耗时的一步。需求分析是否做得充分和准确,决定了在其上构建数据库大厦的速度与质量。需求分析做的不好,会导致整个数据库设计返工重做。

        需求分析的任务,是通过详细调查现实世界要处理的对象,充分了解原系统工作概况,明确用户的各种需求,然后在此基础上确定新的系统功能,新系统还得充分考虑今后可能的扩充与改变,不仅仅能够按当前应用需求来设计。

       调查的重点是,数据与处理;达到信息要求,处理要求,安全性和完整性要求。

       分析方法常用SA(Structured  Analysis) 结构化分析方法,SA方法从最上层的系统组织结构入手,采用自顶向下,逐层分解的方式分析系统。

       数据流图表达了数据和处理过程的关系,在SA方法中,处理过程的处理逻辑常常借助判定表或判定树来描述。在处理功能逐步分解的同事,系统中的数据也逐级分解,形成若干层次的数据流图。系统中的数据则借助数据字典(data dictionary,DD)来描述。数据字典是系统中各类数据描述的集合,数据字典通常包括数据项,数据结构,数据流,数据存储,和处理过程5个阶段。

需求分析有两种方法:自顶向下、自底向上
A、自顶向下
自顶向下方法从最上层的系统组织机构入手,采用逐层分解的方式分析系统。
用数据流图和数据字典描述系统
数据流图:描述输入数据到输出数据的变换过程
数据流:由一组固定成分的数据组成,代表数据的流动方向
处理:描述了输入数据到输出数据的变换
文件:用于存储数据
源或宿:存在于系统之外的人员或组织,表示系统输入数据的来源和输出数据的去向
B、自底向上

概念结构设计阶段(一般采用自底向上)

       概念结构设计的目标是设计数据库的E-R模型图,确认需求信息的正确和完整。具体来说就是从需求分析中找到实体,确认实体的属性、确认实体的关系,画出ER图。

 设计概念结构通常有四类方法:

  1. 自顶向下。即首先定义全局概念结构的框架,再逐步细化。
  2. 自底向上。即首先定义各局部应用的概念结构,然后再将他们集成起来,得到全局概念结构。
  3. 逐步扩张。首先定义最重要的核心概念结构,然后向外扩张,以滚雪球的方式逐步生成其他的概念结构,直至总体概念结构。
  4. 混合策略。即自顶向下和自底向上相结合。

    概念结构设计的步骤

       数据库设计

第一步,数据抽象与局部E-R模型设计
A、数据抽象
在多层数据流中选择一个适当层次作为设计E-R图的出发点。
确定每个局部应用包含哪些实体,实体包含哪些属性,实体之间的联系
划分实体和属性的方法
分类:将一组具有某些共同特性和行为的对象抽象为一个实体。
聚合:将对象类型的组成成分抽象为属性。
B、局部E-R模型设计
局部E-R模型设计的原则是属性必须是不可分的数据项,不能再由放弃其他属性组成;属性不能与其他实体具有联系,联系只能发生在实体之间。
为简化E-R图,凡是能作为属性对待的,尽量作为属性。
第二步,全局E-R模型设计
集成各局部E-R模型,形成全局模型。视图集成的方法有两种:
A、多元集成法:一次性将多个局部E-R图合并为一个全局E-R图。
B、二元集成法:首先集成两个重要的局部E-R图,然后用累加的方法逐步将一个新的E-R图集成进来。
合并:
合并局部E-R图,消除冲突,初步生成E-R图。合并的关键是合理消除各局部E-R图的冲突。
冲突分类如下:

       数据库设计

优化:
消除初步E-R图中不必要的冗余,生成基本的E-R图。
冗余数据:可由基本的数据导出的数据。
冗余联系:可由基本的联系导出的联系。

       数据库设计

逻辑结构设计阶段

       逻辑结构设计的任务是将概念结构设计阶段完成的实体模型转换成特定的DBMS所支持的数据模型的过程。逻辑结构设计的目的是将E-R图中的实体、属性和联系转换成为关系模式。

        数据库设计

初始关系模型设计

(1)实体间关系转换遵循的原则:
一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的键就是关系的键。
一个联系转换为一个关系模式,与该联系相连的各实体的键以及联系的属性均转换为该关系的属性。
联系关系的键有三种情况:
如果联系为1:1,则每个实体的键都是关系的候选键
如果联系为1:n,zen端实体的见识关系的键
如果联系为n:m,则各实体的键的组合是关系的键
特殊情况:多元联系
多元联系在转换为关系模式时,与该多元联系相连的各实体的主键及联系本身的属性均转换为关系的属性,转换后所得到的的关系的主键为各实体键的组合
(2)实体间关系的转换规则:
A、一个1:1关系可以转换为一个独立的关系模式,也可以与任意一端所对应的关系模式合并。

     数据库设计

原实体对应关系模式分别为:
班级(班号,专业,人数)
班长(学号,姓名,专长)
将关系“管理”合并到实体“班级”对应的模式后为:
班级(班号,专业,人数,班长学号)
班长(学号,姓名,专长)
关系“管理”也可以合并到实体“班长”对应的模式,将关系“管理”合并到实体“班级”对应的模式后为:
班级(班号,专业,人数)
班长(学号,姓名,专长,班号)
B、一个1:n关系可以转换为一个独立的关系模式,也可以与n端所对应的关系模式合并。

     数据库设计

实体对应的关系模式
系(系号,系名,系主任,电话)
教师(教师号,姓名,专业,职称,性别,年龄)
关系对应的关系模式
管理(教师号,系号)
合并到实体“教师”后(只能合并到“多”的一端的关系模型):
教师(教师号,姓名,专业,职称,性别,年龄,系号)
C、一个m:n关系转换为一个关系模式。转换的方法为:与该关系相连的各实体的码以及关系本身的属性均转换为关系的属性,新关系的码为两个相连实体码的组合。
       关系只能转换为独立模式,模式的属性由关系本身的属性及两个实体的键构成;主键由两端实体的键组合而成。

     数据库设计

课程(课程号,课程名,学时,类别) 实体表
学生(学号,姓名,性别,专业,出生日期,照片) 实体表
选修(学号,课程号,分数) 关系表
D、三个或三个以上实体间的多元关系转换为一个关系模式。
关系的属性:与该多元关系相连的各实体的码以及关系本身的属性
关系的码:各实体码的组合
“讲授”关系是一个三元关系,可以转换为如下关系模式,其中课程号、职工号和书号为关系的组合码:
  讲授(课程号,职工号,书号)

关系模式规范化

应用数据库设计的范式理论对初始关系模型进行优化。数据库设计的三大范式如下:
第一范式(Normal Form,1NF) 每一个分类必须是一个不可分的数据项。属性不可再分,确保每列的原子性。
第二范式 (2NF)要求每个表只描述一件事情,每条记录有唯一标识列;即在第一范式的基础上更进一层,其目标是确保表中的每列都和主键相关。
第三范式 (3NF)数据库表中不包含已在其它表中已包含的非主关键字信息;即在第二范式的基础上进一步,确保每列都和主键列直接相关,而不是简介相关。

关系模式的规范化过程如下:
A、确定范式级别
考察关系模式的函数依赖关系,确定范式等级。
B、实施规范化处理
利用规范化方法和理论将关系模式规范化。
C、模式改进
合并:
将用于关联查询的具有相同主键的各表合并可提高查询效率
分解:
水平分解,将关系的元组分为若干子集,提高查询效率;垂直分解,把关系中经常一起使用的属性分解出来,形成一个子关系,提高执行效率。分解时要保持无损连接和函数依赖。

物理结构设计阶段

1、物理结构设计简介

        物理结构设计:对于给定的逻辑数据模型,选取一个最适合应用环境的物理结构。数据库的物理结构设计分为两步:
A、确定物理结构:存取方法和存储结构
B、评价物理结构:评价重点是时间和空间效率
       根据具体的数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(数据类型 索引 主键)。

2、确定物理结构

(1)存储结构的设计
        物理结构中,数据的基本存取单位是存储记录。
       某一类型的所有存储记录的集合称为文件。
       确定数据库存储结构时要综合考虑存取时间、存储空间利用率和维护代价三方面的因素。例如消除一切冗余数据虽然能够节约存储空间,但往往会导致检索代价的增加,因此必须进行权衡,选择一个折中方案。
(2)数据存取路径的设计
       在关系数据库中,选择存取路径主要是指确定如何建立索引。例如,应把哪些域作为次码建立次索引,建立单码索引还是组合索引,建立多少个为合适,是否建立聚集索引等。
(3)数据存放位置的设计
      为了提高性能,可将数据的易变部分、稳定部分、经常存取部分和存储频率较低部分分开存放。
(4)系统配置的设计
       DBMS产品一般都提供了一些存储分配参数,供设计人员和DBA对数据库进行物理优化。初始情况下,系统都为这些变量赋予了合理的缺省值,但是这些值不一定适合每一种应用环境,在进行物理设计时,需要重新对这些变量赋值以改善系统的性能。

3、评价物理结构

       物理结构设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,其结果可以产生多种方案,数据库设计人员必须对方案进行细致的评价,从中选择一个较优的方案作为数据库的物理结构。
       评价物理数据库的方法完全依赖于所选用的DBMS,主要是从定量估算各种方案的存储空间、存取时间和维护代价入手,对估算结果进行权衡、比较,选择出一个较优的合理的物理结构。

数据库实施阶段

1、数据库实施的过程

数据库实施:指根据逻辑设计和物理设计的结果,在计算机上建立起实际的数据库结构、装入数据、进行测试和试运行的过程。

        数据库设计

数据库运行与维护

数据库运行与维护的主要任务包括:
A、维护数据库的安全性与完整性
B、监测并改善数据库性能
C、重新组织和构造数据库
只有数据库系统在运行,就需要不断地进行修改、调整和维护。

参考原文:https://blog.51cto.com/9291927/2087925