2018-08-29 数据库设计

数据库设计的过程:需求分析阶段;概念结构设计阶段;逻辑结构设计阶段;数据库物理设计阶段;数据库实施阶段;数据库运行和维护阶段。设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。

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

需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。信息要求,用户需要从数据库获得信息的内容与性质;由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据。

确定用户最终需求的难点:用户缺少计算机知识,需求往往不断变化;设计人员缺少用户的专业知识,不易理解用户的真正需求;新的硬件、软件技术的出现会使用户需求发生变化。

需求分析:调查组织机构总体情况,熟悉业务活动,明确用户需求,确定系统边界。

数据字典是各类数据描述的集合;是进行详细的数据收集和数据分析所获得的主要结果;在数据库设计中占有很重要的地位。数据字典的内容:数据项;数据结构;数据流;数据存储;处理过程。

数据项是不可再分的数据单位。数据结构反映了数据之间的组合关系,一个数据结构可由若干个数据项组成,也可由若干个数据结构组成,或混合组成。数据流是数据结构在系统内传输的路径。数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。处理过程的具体处理逻辑一般用判定表或判定数来描述,数据字典中只需要描述处理过程的说明性信息。


概念结构设计,将需求分析得到的用户应用需求抽象为信息结构即概念模型的过程就是概念结构设计。概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。概念结构设计是整个数据库设计的关键。描述概念模型的工具:E-R图。

设计概念结构的四类方法:自顶向下,首先定义全局概念结构的框架,然后逐步细化;自底向上,首先定义各局部应用的概念结构,然后集成起来,得到全局概念结构;逐步扩张,首先定义最重要的核心概念机构,然后向外扩充,以滚雪球方式逐步生成其他概念结构,直至总体概念结构;混合策略,将自顶向下和自底向上组合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。

自底向上设计概念结构的步骤:第一步,抽象数据并设计局部视图;第二步,集成局部视图,得到全局概念结构。

数据抽象。三种常用抽象:分类,抽象了对象值和型之间的“is member of”的语义;聚集,抽象了对象内部类型和成分之间“is part of”的语义;概括,抽象了类型之间的“is subset of”的语义。

设计分E-R图的步骤:选择局部应用;逐一设计分E-R图。设计分E-R图时,首先需要根据系统的具体情况,在多层的数据流图中选择一个适当层次的数据流图,让这组图中每一部分对应一个局部应用,然后以这一层次的数据流图为出发点,设计分E-R图。

逐一设计分E-R图。标定局部应用中的实体、属性、码,实体间的联系。实体:现实世界中一组具有某些共同特性和行为的对象就可以抽象为一个实体。属性:对象类型的组成成分可以抽象为实体的属性。实体与属性是相对而言的。一般原则:属性不能再具有需要描述的性质,即属性必须是不可分的数据项,不能再由另一些属性组成;属性不能与其他实体具有联系,联系只发生在实体之间。

视图集成的两种方式:一次集成,一次集成多个分E-R图,通常用于局部视图比较简单时;逐步积累式,首先集成两个局部视图,以后每次讲一个新的局部视图集成进来。

集成E-R图的步骤。合并,消除冲突;修改与重构,消除不必要的冗余。冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难。消除不必要的冗余后的初步E-R图称为基本E-R图。

消除冗余的方法。分析方法,以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。如果是为了提高效率,人为的保留了一些冗余数据,则应把数据字典中数据关联的说明作为完整性约束条件。函数依赖的概念提供了消除冗余联系的形式化工具。


为了能够用某一DBMS实现用户需求,还必须将概念结构进一步转化为相应的数据模型,这正是数据库逻辑结构设计所要完成的任务。步骤:将概念结构转化为一般的关系、网状、层次模型;将转化来的的关系、网状、层次模型向特定DBMS支持下的数据模型转换;对数据模型进行优化。

E-R图向关系模型转换。将实体、实体的属性和实体之间的联系转化为关系模式。一个实体型转换为一个关系模式,关系的属性:实体型的属性;关系的码:实体型的码。

一个m:n联系转换为一个关系模式,关系的属性:与该联系相连的各实体的码以及联系本身的属性;关系的码:各实体码的组合。

一个1:n的联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。转换为一个独立的关系模式:关系的属性,与该联系相连的各实体的码以及联系本身的属性;关系的码,n端实体的码。与n端对应的关系模式合并:关系的属性,在n端关系中加入1端关系的码和联系本身的属性;关系的码:不变。第二种方法可以减少系统中的关系个数,一般情况下更倾向于采用这种方法。

一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。转换为一个独立的关系模式:关系的属性,与该联系相连的各实体的码以及联系本身的属性;关系的候选码,每个实体的码均是该关系的候选码。与某一端对应的关系模式合并:合并后关系的属性,加入对应关系的码和联系本身的属性;合并后关系的码,不变。

三个或三个以上实体间的一个多元联系转换为一个关系模式。关系的属性,与该多元联系相连的各实体的码以及联系本身的属性;关系的码,各实体码的组合。

同一实体集的实体间的联系,即自联系,也可按上述1:1,1:n,m:n三种情况分别处理。

具有相同码的关系模式可合并。目的,减少系统中的关系个数。合并方法,将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性,并适当调整属性的次序。

优化数据模型的方法:确定数据依赖;对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系;按照数据依赖的理论对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式;按照需求分析得到的各种应用对数据处理的要去,分析对于这样的应用环境这些模式是否合适,确定是否要对它们进行合并或分解;按照需求分析阶段得到的各种应用对数据处理的要求,对关系模式进行必要的分解或合并,以提高数据操作的效率和存储空间的利用率。

设计用户子模式时更应该注重考虑用户的习惯与方便。包括三个方面:使用更符合用户习惯的别名;针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求;简化用户对系统的使用。


为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,就是数据库的物理设计。

数据库物理设计的步骤:确定数据库的物理结构;对物理结构进行评价,评价的重点是时间和空间效率;如果评价结果满足设计要求则可进入到物理实施阶段,否则,重新设计或修改物理结构。

选择物理数据库设计所需参数。数据库查询事物:查询的关系;查询条件所涉及的属性;连接条件所涉及的属性;查询的投影属性。数据更新事务:被更新的关系;每个关系上的更新操作条件所涉及的属性;修改操作要改变的属性值。每个事务在各关系上运行的频率和性能要求。

关系模式存取方法选择。数据库系统是多用户共享的系统,对同一个关系建立多条存取路径才能满足多用户的多种应用要求。DBMS常用存取方法:索引方法,主要是针对B+数索引方法;聚簇方法;HASH方法。

确定数据库的存储结构。确定数据库物理结构的内容:确定数据的存放位置和存储结构;确定系统配置。

确定数据的存放位置。影响数据存放位置和存储结构的因素:硬件环境;应许需求。基本原则:根据应用情况将 易变部分与稳定部分;存取频率较高部分与存取频率较低部分 分开存放,以提高系统性能。

确定系统配置。DBMS产品一般都提供了一些存储分配参数:同时使用数据库的用户数;同时打卡的数据库对象数;使用的缓冲区长度、个数;时间片大小;数据库大小;装填因子;锁的数目;等等。系统为这些变量赋予了合理的缺省值,但不一定适合每一种应用环境,需要根据应用环境确定参数值。物理设计时对系统配置变量的调整只是初步的,在系统运行时还要根据系统实际运行情况做进一步调整。

评价物理结构。评价内容,对数据库物理设计过程产生的多种方案进行细致评价,从中选择较优的方案作为数据库的物理结构。评价方法:定量估算各种方案,存储空间,存取时间,维护代价;对估算结果进行权衡、比较,选择出一个较优的合理的物理结构;如果结构不符合用户需求,需要修改涉及。


定义数据库结构。确定了数据库的逻辑结构与物理结构之后,可以用所选用的DBMS提供的数据定义语言DDL,来严格描述数据库结构。

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

人工方法,适用于小型系统。步骤:筛选数据;转换数据格式;输入数据;校验数据。计算机辅助数据入库,适用于中大型系统。步骤:筛选数据;输入数据;校验数据;转换数据;综合数据。

编制与调试应用程序。数据库应用程序的设计应该与数据设计并行进行。

数据库试运行。数据库试运行称为联合调试,主要工作包括:功能测试,实际运行应用程序,执行对数据库的各种操作,测试各种功能;性能测试,测量系统的性能指标,分析是否符合设计目标。

数据库性能指标的测量。实际测量系统的各种性能指标,如果结果不符合设计目标,需要返回物理设计阶段,调整物理结构,修改参数;有时甚至需要返回逻辑设计阶段,调整逻辑结构。

数据库的转储和恢复。在数据库试运行阶段,系统还不稳定,硬、软件故障随时可能发生;操作人员对新系统不熟悉,误操作不可避免;必须做好数据库的转储和恢复工作,尽量减少对数据库的破坏。


数据库运行与维护。数据库试运行结果符合设计目标后,就可以真正投入运行了。对数据库设计进行评价、调整、修改等维护工作是一个长期任务,也是设计工作的继续和提高:应用环境在不断变化;数据库运行过程中物理存储会不断变化。

数据库运行阶段,对数据库经常性的维护工作主要由DBA完成,包括:数据的转储和恢复;数据库的完整性、安全性控制;数据库性能的监督、分析和改进;数据库的重组织和重构造。数据库运行一段时间后,由于记录的不断增、删、改,会使数据库物理存储变化,降低存储空间利用率和存取效率,需要重组织;数据库应用环境发生变化,会导致实体及实体间的联系发生变化,使原有的数据库设计不能很好地满足新的需求,通过 增加新的应用或新的实体,取消某些已有应用,改变某些已有应用 来进行数据库的重构造。

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

推荐阅读更多精彩内容

  • 第三章 数据库系统 3.1 数据库管理系统的类型 通常有多个分类标准。如按数据模型分类、按用户数分类、按数据库分布...
    步积阅读 2,694评论 0 7
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,914评论 2 89
  • 文字的排版与组合 可以带来无限的想象空间 这是进入2014年后 可以说 个人而言 最大的一个发现 不 是 么 ?
    拧发条的鸟阅读 117评论 0 1
  • 主要成因在于习惯并迷执于孤立隐秘且错乱的性发泄方式。 造成这个成因的缘由在于: 1、与异性交往不自信,羞怯被动,身...
    strongbb阅读 146评论 0 0
  • 笔记:充实文档内容、CSS-DOM、动画 充实文档内容 一般不会用JS添加重要内容到网页上,主要因为网络爬虫(各大...
    787518d9b65a阅读 132评论 0 0