数据库设计与管理的公共基础学习教程

(四)数据库设计管理

数据库设计与管理的公共基础学习教程

1.数据库设计概述

数据库设计的基本任务是根据用户对象的信息需求、处理需求和数据库的支持环境(包括硬件、操作系统与DBMS)设计出数据模式。

数据库设计的两种方法:

面向数据的方法:以信息需求为主,兼顾处理需求。

面向过程的方法:以处理需求为主,兼顾信息需求。

目前,面向数据的设计方法是数据库设计的主流方法。

数据库设计一般采用生命周期法,分为如下几个阶段:

需求分析阶段

概念设计阶段

逻辑设计阶段

物理设计阶段

编码阶段

测试阶段

运行阶段

进一步修改阶段

前四个阶段是数据库设计的主要阶段,重点以数据结构与模型的设计为主线。

2.数据库设计的需求分析

第一阶段:需求收集和分析,收集基本数据和数据流图。

主要的任务是:通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统的'工作概况,明确用户的各种需求,在此基础上确定新系统的功能。

对数据库的要求:

信息要求

处理要求

安全性和完整性的要求

数据字典是各类数据的集合,它包括五个部分:

数据项,即数据的最小单位

数据结构,是若干数据项有意义的集合

数据流,可以是数据项,也可以是数据结构,用来表示某一处理过程的输入或输出

数据存储,处理过程中存取的数据,通常是手工凭证、手工文档或计算机文件

处理过程

3.数据库概念设计

1)概念设计概述

(1)集中式模式设计法

根据需求由一个统一的机构或人员设计一个综合的全局模式。适合于小型或并不复杂的单位或部门。

(2)视图集成设计法

将系统分解成若干个部分,对每个部分进行局部模式设计,建立各个部分的视图,再以各视图为基础进行集成。比较适合于大型与复杂的单位,是现在使用较多的方法。

2)数据库概念设计的过程

(1)选择局部应用

根据系统情况,在多层的数据流图中选择一个适当层次的数据流图,将这组图中每一部分对应一个局部应用,以该层数据流图为出发点,设计各自的E-R图。

(2)视图设计

视图设计的三种次序:

自顶向下:先从抽象级别高且普遍性强的对象开始逐步细化、具体化和特殊化。

由底向上:先从具体的对象开始,逐步抽象,普遍化和一般化,最后形成一个完整的视图设计

由内向外:先从最基本与最明显的对象开始,逐步扩充至非基本、不明显的对象。

例:某大学由一名校长主管,学校下设多个学院,每个学院又的多个系;每个系有一名系主任,负责聘任教师;每个教师可以承担多门课,同一门课又可由多个教师承担;每个系有多个班级,每个班级有一定数量的学生;学生在校期间要学习多门课程,学习结束后,每门课程对应一个成绩。要求设计该大学的教学管理系统。

需求分析阶段,得到该学校的机构组织结构图如下图所示:

E-R图设计

首先,设计“院长”、“学院”和“系”之间的联系。一个学院有一个院长,一个院长主管一个学校;一个系属于一个学院,一个学院有多个系。院长与学院的关系是一对一的联系,学院和系之间是一对多的联系。

在系里在,一个系会聘用多个教师,而一个教师只属于一个系,所以,系和教师之间的关系是一对多的联系;一门课可由多个教师讲授,同时,一个教师可讲授多门课,课程和教师之间的关系是多对多的联系。

在系里,学生和课程之间的联系有,一个系有多个班,一个班只能属于一个系,它们之间的联系是一对多的联系;一个班有多个学生,同时,一个学生只属于一个班,所以,班级和学生之间的联系是一对多的联系;系和课程之间的联系,一个系可开设多门课,同时,一门课可被多个系开设,因此,课程和系之间的关系是多对多的联系;学生与课程之间,一个学生会选多门课,同时,一门课可被多个学生选取,因此,课程和学生之间的关系是多对多的联系。

逻辑设计

学院(学院编号,学院名,学院地址,院长编号)

院长(院长编号,院长姓名,联系电话,办公地址)

系(系编号,系名,联系电话,系地址,学院编号,系主任职工号)

教师(职工号,姓名,性别,学历,职称,工资,联系电话,系编号)

班级(班级编号,班级名称,学生人数,系名)

学生(学号,身份证号,姓名,性别,出生日期,民族,籍贯,班级名)

课程(课程编号,课程名称,学分)

开课(系编号,课程号)

授课(职工号,课程号)

选课(学号,课程号,成绩)

(3)视图集成

视图集成是将所有局部视图统一与合并成一个完整的数据模式。

视图集成的重点是解决局部设计中的冲突,常见的冲突主要有如下几种:

命名冲突:有同名异义或同义异名

概念冲突:同一概念在一处为实体而在另一处为属性或联系

域冲突:相同的属性在不同视图中有不同的域

约束冲突:不同的视图可能有不同的约束

视图经过合并生成E-R图时,其中还可能存在冗余的数据和冗余的实体间联系。