数据库设计

第六章 数据库设计

学习重点:

  • 数据库设计的基本步骤;
  • 数据库设计各阶段的具体设计内容;
  • 数据库设计各阶段的设计描述;
  • 数据库设计各阶段的设计方法;

学习难点:

  • E-R图的设计;
  • 数据模型的优化;
  • 设计理论与实际应用的结合;

6.1 数据库设计概述

数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效的存储数据,满足用户的应用需求。

6.1.1 数据库和信息系统

数据库是信息系统的核心和基础。

6.1.2 数据库设计的特点

数据库建设是硬件、软件和干件的结合(技术与管理的界面称之为“干件”)。

数据库设计应该与应用系统设计相结合

结构和行为分离设计。

6.1.3 数据库设计方法简述

手工试凑法和规范设计法

手工试凑法:设计质量与设计人员的经验和水平直接相关。难以保证工程质量。

规范设计法:手工设计方法,过程迭代和逐步求精。

6.1.4 数据库设计的基本步骤

6.1.4.1 需求分析阶段

准确了解与分析用户需求。

用户需求的收集和分析,结果得到数据字典描述的数据需求和数据流图描述的处理需求。

6.1.4.2 概念结构设计阶段

概念结构设计是整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。

6.1.4.3 逻辑结构设计阶段

将概念结构转换为某个DBMS所支持的数据模型,并进行优化。

6.1.4.4 数据库物理设计阶段

为逻辑数据模型选取一个最适合应用环境的物理结构。

6.1.4.5 数据库实施阶段

运用DBMS提供的数据语言(例如SQL)及其宿主语言(例如C),根据逻辑设计和物理设计的结果:

建立数据库,组织数据入库,编制、调试应用程序,进行试运行。

6.1.4.6 数据库运行和维护阶段

6.2 需求分析

需求分析就是分析用户的需要与要求,需求分析是设计数据库的起点,要做到准确地反映用户的实际要求。

6.2.1 需求分析的任务

通过调查,充分了解原系统工作概况,明确用户的各种需求。

6.2.2 需求分析的方法

调查清楚用户的实际需求并进行初步分析,与用户达成共识,进一步分析与表达用户需求。

进一步分析与表达用户需求

常使用自顶向下的结构化分析方法(Structured Analysis,简称SA方法),从最上层的系统机构入手,采用逐层分解的方法分析系统,并用数据流图(DFD)和数据字典(DD)描述系统。

6.2.3 数据字典

数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(Data Dictionary)来描述。

数据字典的内容包括有:数据项、数据结构、数据流、数据存储、处理过程。

数据项

数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系}。

数据结构

数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}。

数据流

数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}。

数据存储

数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,组成:{数据结构},数据量,存取方式}

处理过程

处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}。

6.3 概念结构设计

6.3.1 概念设计

需求分析阶段描述用户应用需求是现实世界的具体需求,将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。

6.3.2 概念结构设计的方法与步骤

设计概念结构的四类方法:

自顶向下

首先定义全局概念结构的框架,然后逐步细化

自底向上

首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构。

逐步扩张

首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构。

混合策略

将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成油自底向上策略中设计的各局部概念结构。

6.3.3 数据抽象与局部视图设计

概念结构式对现实世界的一种抽象,三种常用的抽象分别是:分类、聚集、概括。

分类

它抽象了对象值与型之间的“is member of ”的语义,在E-R模型中,实体型就是这种抽象。

聚集

它抽象了对象内部类型和成分之间的“is part of”的语义,在E-R模型中若干属性的聚集组成了实体型,就是这种抽象。

概括

它抽象了类型之间的“is subset of”的语义,概括有一个很重要的性质:继承性。子类继承超类上定义的所有抽象。

局部视图设计

选择局部应用

一般以中层数据流图作为设计分E-R图的依据。

逐一设计分E-R图

6.3.4 视图的集成

各个局部视图即分E-R图建立好后,还需要对它们进行合并,集成为一个整体的数据概念结构即总E-R图。

视图集成的两种方式:一次集成、逐步积累式。

在合并过程中需要解决各类冲突。

6.4 逻辑结构设计

逻辑结构设计的任务是:概念结构式各种数据模型的共同急促,为了能够用某一DBMS实现用户需求,还必须将概念结构进一步转化成相应的数据模型,这正是数据库逻辑结构设计所要完成的任务。

逻辑结构设计的步骤:

将概念结构转化为一般的关系、网状、层次模型;将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;最后对数据模型进行优化。

6.4.1 E-R图向关系模型的转换

E-R图由实体、实体的属性和实体之间的联系三个要素组成,关系模型的逻辑结构式一组关系模式的集合,将E-R图转换为关系模型:将实体、实体的属性和实体间的联系转换称关系模式。

转换原则:

  • 一个实体型转换为一个独立关系模式;
  • 一个1:1联系可以转换为一个独立关系模式,也可以与任意一端对应的关系模式合并;
  • 一个1:n联系可以转换为一个独立关系模式,也可以与n端对应的关系模式合并;
  • 一个m:n联系转换为一个独立关系模式;
  • 三个或三个以上实体间的一个多元联系可以转换为一个关系模式;
  • 具有相同码的关系模式可合并;

6.4.2 数据模型的优化

由于数据库逻辑设计的结果不是唯一的。得到初步数据模型后,还应该适当的进行修改、调整数据模型的结构,以进一步提高数据库应用系统的性能,这就是数据模型的优化,而关系数据模型的优化通常以规范化理论为指导。

6.4.3 设计用户子模式

使用更符合用户习惯的别名

针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求

简化用户对系统的使用

6.5 数据库的物理设计

数据库在物理设备上的存储结构与存取方式称为数据库的物理结构,它依赖于给定的计算机系统。为一个给定的逻辑数据模型选取一个最合适应用环境的物理结构的过程,就是数据库的物理设计。

6.5.1 数据库的物理设计的内容和方法

设计物理存储结构的准备工作:充分了解应用环境,详细分析要运行的事物,以获得选择物理数据库设计所需参数;充分了解所用RDBMS的内部特征,特别是系统提供的存取方法和存储结构。

6.5.2 关系模式存取方法选择

数据库系统是多用户东i昂的系统,对同一个关系要建立多条存取路径才能满足多用户的多种应用要求,物理设计的第一个任务就是确定要选择那些存取方式,即建立哪些存取路径。

常用的存取方式:索引方法(目前最主要的是B+书索引方法)、聚簇(Cluster)索引、HASH方法。

索引方法适用于:当一个(组)属性经常作为查询条件、聚集函数、连接条件时。

聚簇索引适用于:经常在一起进行连接操作的关系,一个关系的一组属性常用于想等条件的比较、一个关系的一组属性上的值重复率很高。

HASH方法适用于:连接条件或相等比较条件中,关系大小可预知且不变,DBMS支持动态HASH存取方式。

6.5.3 确定数据库的存储结构

确定数据存放的位置和存储结构:关系、索引、聚簇、日志、备份。

确定系统配置:同时使用数据库的用户数、同时打开的数据库对象书、使用的缓冲区长度和个数、时间片大小、数据库的大小、装填因子、锁的数目...

6.5.4 评价物理结构

对数据库物理设计过程中产生的多种方案进行细致的评价,从中选择一个较优的方案作为数据库的物理结构。

6.6 数据库的实施和维护

6.6.1 数据的载入和应用程序的调试

数据载入

在数据库结构建立好后,就可以向数据库中装在数据了,组织数据入库是数据库实施阶段最主要的工作。装载的方法主要有:人工方法和计算机辅助数据入库。

应用程序的调试

数据库应用陈鼓的设计应该与数据设计并行进行。

6.6.2 数据库的试运行

应用程序调试完毕后,并且有一部分数据入库后,就可以开始数据库的试运行。

6.6.3 数据库的运行和维护

在数据库试运行结果复合设计目标后,数据库就可以真正投入运行了,数据库投入运行标志着开发任务的基本完成和维护工作的开始。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352

推荐阅读更多精彩内容