登陆注册
8724600000018

第18章 数据分析、设计及实现(1)

5.1数据库分析与设计

5.1.1数据库分析与设计概述

数据库设计是指对于给定的一个应用环境(DBMS、系统软件、操作系统和硬件环境),构造最优的数据库模式,使之能够有效地存储和索取数据,满足各种用户的应用需求。数据库设计存在不同的方法,包括传统的设计方法、Barker方法、改进的设计方法等。

不同的设计方法有不同的侧重点,不过总体来说一定包括以下3个基本阶段。

1.需求信息的收集

此阶段主要是对企业现有业务的了解,搜集业务数据,构建现有业务模型。

2.数据建模

通过可视化方式分析业务数据,将业务模型转换为物理模型。

3.数据库设计和规范化

选择合理的范式,对数据库进行规范化处理。

5.1.2数据库设计的基本阶段

仿照软件生存期,把数据库应用系统从开始规划、设计、实现、维护到最后被新的系统所代替称为一个生命周期,包括以下几个阶段。

1)规划阶段

对于数据库系统,特别是大型数据库系统,规划阶段是十分必要的。规划的好坏将直接影响到整个系统的成功与否。规划阶段需要完成以下内容:

①定义任务描述:对于要设计的数据库整体目标的概括描述,包括数据库的目标、数据库的使用者、客户如何访问数据库等。

②制订工作计划:包括设计小组的建立、基本的标准和命名规范、所使用的开发环境等。

③制订工作进度和各阶段成果:定义不同的设计阶段完成的目标和时间期限。

2)需求描述和分析阶段

这个阶段是计算机人员和用户双方共同收集数据库所需要的信息内容和用户对处理的要求,并以相应的文档形式确定下来,作为以后开发和验证系统的依据。

3)概念设计阶段

概念设计的目标是产生反映企业组织信息需求的数据库概念结构,即概念模式。概念模式是从现实世界中抽象出来的实体类型及实体间联系,能够充分反映现实世界中实体之间的联系,又是各种基本数据类型的共同基础,易于向关系模式转换。

(1)ER图的概念和组成

实体关系图(Entity Relationship Model,ER)用来描述概念模式,是直观表示概念模式的有力工具。在ER图中有下面4个基本部分:

①矩形框,表示实体类型,实体指的是客观存在且可以互相区别的东西。它可以是具体的对象,如一辆汽车,也可以是抽象的事件,如一次购物等。

②菱形框,表示联系类型,即实体之间的联系。

③椭圆形框,表示实体类型和联系类型的属性。

④直线,联系类型与其涉及的实体类型之间以直线连接,用来表示它们之间的联系,并在直线端部标注联系的种类(1∶1、1∶N或M∶N)。

对于不同的设计工具,ER图的图形表示会有所不同,不过ER图的基本元素是相同的,即都包括实体、实体联系和属性。

(2)ER图设计和实现

设计ER图的步骤如下:

①确定实体类型。

②确定联系类型。

③把实体类型和联系类型组成ER图。

④确定实体类型和联系类型的属性,加入实体和联系的具体属性。

⑤把所有实体和联系类型连接在一起,组成一个完整的ER图。

4)逻辑设计阶段

逻辑设计的任务是把概念设计阶段得到的全局ER模式转换成关系模式。

(1)ER图到关系模式的转换

ER图到关系模式的转换包括两种情况,一种是实体的转换,一种是关系的转换,下面具体说明。

①每一个实体类型转换为一个关系表,实体的属性即为关系的属性。

例如,部门实体转换为关系表。

部门(部门名称,部门地址,电话)

②实体间是1∶1的关系,将一个表的主键和联系类型中的属性放在另一个表中。其中主键作为另一个表的外键。

例如,一个部门有一个经理,部门和经理是1对1的关系,即一个部门只有一个经理。

将经理编号和聘用时间放在部门表里面:

部门(部门编号,部门名称,部门地址,电话,经理编号,聘用时间)

经理(经理编号,姓名,性别,出生日期)

③实体间是1∶N的关系,将关系是1的表中的主键作为外键放在N端的表中。联系类型的属性也放在N端的表中。

例如部门和职工是1∶N关系:

部门(部门编号,部门名称,部门地址,电话)

职工(职工编号,姓名,性别,出生日期,部门编号,聘用时间)

④实体间是M∶N的关系,将联系类型也转换为关系表,其属性为两实体表的键加上联系类型的属性,键为两端实体键的组合。

例如,一个职工可以承担多个项目,一个项目需要多个职工,他们之间是多对多的关系。

项目(项目编号,项目名称)

施工(项目编号,职工编号,开始时间)

职工(职工编号,姓名,性别,出生日期)

(2)规范化

把ER图转换为关系模式(表)后,要对关系模式进行规范化。规范化的目的是减少乃至消除关系模式中存在的各种异常,改善完整性、一致性和存储效率。具体地讲,规范化设计的过程就是按不同的范式,将一个二维表不断分解成多个二维表并建立表之间的关联,最终达到一个表只描述一个实体或者实体间的一种联系的目标。目前遵循的主要范式包括1NF、2NF、3NF、BCNF、4NF和5NF等几种,一般以规范到3NF为准。

①第一范式(1NF)的应用

如果关系模式r的属性值都是不可分的原子值,那么称r是第一范式(first normal form,1NF)的模式。

1NF的具体要求是:

多值字段(multivalued field)必须被移动到另一个表里;

每个字段必须是原子型的(atomic),或者说要尽量小;

每个字段都必须有一个关键字(key);

重复的值必须被移动到另一个表里。

下面举例说明1NF的具体实施。现有一张存储书籍信息的表Books,包括以下字段:

{Title,Author,ISBN,Price,Publisher,Category}

应用1NF的第一步是确保表没有包含多值字段,所谓多值字段,是指字段能够保存一个以上可能的条目。最初的表有两个地方会违反这一规则:Author(作者)和Category(分类)。许多书都有多个作者,所以Author字段就会出现问题。类似的,一本书可以被归入多个类别。例如《金银岛(Treasure Island)》可以被归为儿童读物、冒险类、经典类及其他类等。

更正这个问题的方法是把出现多值的字段移到另一个表里,新创建两个新表:Authors和Categories,如下所示:

Books:{Title,ISBN,Price,Publisher}

Authors:{Author}

Categories:{Category}

应用1NF的第二步是要求每个字段都必须是原子型的,这就是表示每个字段必须保存可能会有的最小数据元素。这条规则有助于搜索和排序。Author字段就存在问题了,因为一个名字可以包含名和姓,所以将Author分解为FirstName和LastName两个字段。

Authors:{FirstName,LastName}

应用1NF的第三步是要求每个表都必须有一个关键字段(key)。关系模型不允许表包含有重复记录。所以,一个表中的关键字的值必须是唯一的。大多数关系数据库管理系统(RDBMS)都会提供一类计数或者自动编号的数据类型,它会为每条记录分配一个连续的数值,通常使用这样的字段作为表的关键字。当然了,也可以选择表中有意义的字段和字段组合作为关键字,这样便于用有意义的方式查询到记录。以下用自动编号的字段作为关键字:

Books:{BookID,Title,ISBN,Price,Publisher}

Authors:{AuthorID,FirstName,LastName}

Categories:{CategoryID,Category}

应用1NF的第四步是删除重复值。在没有录入真实数据之前,要确定是否满足这一要求是有难度的。在遇到重复输入字段值的时候,就要考虑把这个字段移动到一个新的表里。

例如,Books表中的Publisher(出版商)字段,会一次又一次地输入相同的出版商,为了满足1NF,必须把这个字段移动到另一个表中:

Books:{BookID,Title,ISBN,Price,Publisher}

Authors:{AuthorID,FirstName,LastName}

Categories:{CategoryID,Category}

Publishers:{PublisherID,Publisher}

②第二范式(2NF)的应用

如果关系模式R(U,F)中的所有非主属性都完全依赖于任意一个候选关键字,则称关系R是属于第二范式的。第二范式实际上是消除非主属性对于主关键字的部分依赖。

2NF有以下要求:

为重复应用到多条记录的字段建立独立的表;

通过一个foreignkey来关联这些表。

下面举例来说明2NF的实施。

例:选课关系SCI(SNO,CNO,GRADE,CREDIT),其中SNO为学号,CNO为课程号,GRADEGE为成绩,CREDIT为学分。关键字为组合关键字(SNO,CNO)。

在应用中使用以上关系模式有以下问题。

数据冗余。假设同一门课由40个学生选修,学分就重复40次。

更新异常。若调整了某课程的学分,相应的元组CREDIT值都要更新,有可能会出现同一门课学分不同。

插入异常。如计划开新课,由于没人选修,没有学号关键字,只能等有人选修才能把课程和学分存入。

删除异常。若学生已经结业,则从当前数据库删除选修记录;若某些门课程新生尚未选修,则此门课程及学分记录无法保存。

原因:非关键字属性CREDIT仅函数依赖于CNO,也就是CREDIT部分依赖组合关键字(SNO,CNO)而不是完全依赖。

解决方法:分成两个关系模式SC1(SNO,CNO,GRADE),C2(CNO,CREDIT)。

新关系包括两个关系模式,它们之间通过SC1中的外关键字CNO相联系,需要时再进行自然连接,恢复了原来的关系。

③第三范式(3NF)的应用

如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系R是属于第三范式的。

例:S1(SNO,SNAME,DNO,DNAME,LOCATION)各属性分别代表学号,姓名,所在系,系名称,系地址。

关键字SNO决定各个属性。由于是单个关键字,没有部分依赖的问题,肯定是2NF。但这关系肯定有大量的冗余,有关学生所在的几个属性DNO,DNAME,LOCATION将重复存储、插入、删除和修改时也将产生类似以上异常的情况。

原因:关系中存在传递依赖造成的。即SNO—>;DNO。而DNO—>;SNO却不存在,DNO—>;LOCATION,因此关键字SNO对LOCATION的函数决定是通过传递依赖SNO—>;LOCATION实现的。也就是说,SNO不直接决定非主属性LOCATION。

解决目的:每个关系模式中不能留有传递依赖。

解决方法:分为两个关系S(SNO,SNAME,DNO)和D(DNO,DNAME,LOCATION)。

(3)非规范化

非规范化(也称为反规范化)设计的基本思想是,现实世界并不总是依从于某一完美的数学化的关系模式。强制性地对事物进行规范化设计,形式上显得简单化,内容上趋于复杂化,更重要的是导致数据库运行效率减低。非规范化要求适当地降低甚至抛弃关系模式的范式,不再要求一个表只描述一个实体或者实体间的一种联系。其主要目的在于提高数据库的运行效率。非规范化处理的主要技术包括增加冗余或派生列,对表进行合并、分割或增加重复表。

一般认为,在下列情况下可以考虑进行非规范化处理。

①大量频繁的查询过程所涉及的表都需要进行连接。

②主要的应用程序在执行时要将表连接起来进行查询。

③对数据的计算需要临时表或进行复杂的查询。

非规范化是用适当的冗余信息来减少系统开销,用空间代价来换取时间代价。

例如:一个订单信息表Order Detail里面记录了投递员信息、收款员信息、物品信息、价格策略、客户信息……这些信息分别在投递员信息表、收款员信息表、物品信息表、价格策略表、客户信息表……中存放。如果按照规范化的要求,Order Detail查询时就必须要与这么多个表进行连接或者嵌套查询。如果Order Detail表中的数据量是在百万级的,那么一次查询所需要的时间可能会有好几个小时。事实上,只要在设计时保证数据的逻辑有效性,很多信息都可以直接冗余在OrderDetail表中,这些冗余的数据能够极大地提高了查询效率,从而减少了CPU和I/O操作。

同类推荐
  • 从平凡到神奇

    从平凡到神奇

    本书结合多年的开店经验,全面地讲解了在淘宝网开设店铺的相关知识,为准备在淘宝网创业的卖家及刚刚创建店铺的店主,提供全面的开店和经营方面的指导。本书按照淘宝开店的流程安排内容,侧重每个步骤中的实际技巧。本书分3个部分:如何在淘宝开店、如何开好店、如何做强做大店铺。前3章介绍了在淘宝网开设店铺的基础知识,指导读者在开设店铺前做好准备工作,以及建立起自己的店铺,并且完成店铺的第一笔交易;第4章至第7章主要介绍了网店装修和推广的方法,以及网店的物流经验和技巧;第8章着重介绍了将网店做大做强的方法,帮助卖家在开店和经营中树立品牌意识,做大做强自己的店铺。
  • 领导干部信息化基础

    领导干部信息化基础

    本书共分6章,分别介绍了计算机网络综述;信息化的三个主要领域,即电子政务(政府信息化)、企业信息化和电子商务;PowerPoint2000中文演示文稿等内容。
  • 图说电子计算机

    图说电子计算机

    今天人们谈到计算机常常会把它和网络联系起来。20世纪90年代兴起的因特网其影响之广、普及之快也是大家始料未及的,也从没有一种技术能像网络一样日新月异,并迅速地改变着我们的学习和生活方式。因特网大大缩小了时空界限,为我们提供了快捷方便的交流途径。在未来10年内,计算机又将会有怎样飞速的发展呢?在互联网上进行医疗诊断、远程教学、电子商务、视频会议等活动已经实现,未来的互联网的传输速率将会提高100倍,大家可以随时随地连接到因特网上,更方便地进行交流、沟通和开展商务活动。
  • 综合应用软件设计

    综合应用软件设计

    本书是为计算机、信息管理等相关专业高年级本科生在开设相关课程时所编写的一本教学参考书,它将全面指导学生学习、熟悉和运用当今被广泛采纳的一些主流技术去进行综合应用软件设计的有效实践。
  • 中国移动智能手机的秘密

    中国移动智能手机的秘密

    《中国移动智能手机的秘密》是一本关于移动终端和移动互联网的科普书。作者将这18年通信行业中的学习、思考、实践积累成《中国移动智能手机的秘密》与大家分享。书本系统总结了手机的发展历史、TD产业界“从2G向3G演进”的移动终端产业分化重组进程、智能手机的使用方法用方法和应用指南,以及对移动互联网发展独特思考。
热门推荐
  • 川流原野

    川流原野

    两个处在地狱中的人相遇了他们相约去往天堂可路上荆棘密布乌云满天只有彼此的微笑成为最坚定的信仰
  • 海贼之地佛临世

    海贼之地佛临世

    当一个海贼世界的小工匠接受到了来自异世界的知识,渴望复仇的他决心不再平凡。在异世界的记忆的帮助下,他在最强的道路上越走越远。不知何时,当他回头一看,发现自己已经是海军元帅,拥有着整个世界四分之一的财富。“伊姆,五老星,准备好为当初下的那个命令付出代价了吗?”克莱恩拿着血龙戟直指红土大陆。(新手上路)
  • 暖婚,我的腹黑老公

    暖婚,我的腹黑老公

    第一次相遇,苏白醉眼朦胧,盯着季霆深俊朗的侧脸,对他喊:“爸爸,你真是四海八荒第一绝色。”直到某天,她成了申城首富流落在外的外孙女。苏白认祖归宗,给季霆深点上烟,恭恭敬敬地叫他:“季叔。”殊不知,多年前枪林弹雨的战场,他早已是她的救赎。*婚后,苏小姐问季先生:“那时候,你怎么就看上我了呢?”阳台藤椅上,季先生搂着妻子:“当时觉得这姑娘傻,我再不领回家,她就该哭鼻子了。”【1V1,婚恋小甜饼。】
  • 宁晗的校园纪实

    宁晗的校园纪实

    期待着栀子花开不败~~等待着天使归来~~
  • 染指流年情未逝

    染指流年情未逝

    有人说,前世五百次的回眸换来今生一次的擦肩而过.或许,世间所有的相遇都是久别重逢,无数次的相遇,无数次的相逢,却又是无数次的错过.我相信这世界上,有些人有些事有些爱,在见到的第一次,就注定要羁绊一生,就注定像一棵树一样,生长在心里,生生世世。
  • 苍木之冥

    苍木之冥

    继盘古开天,女娲救世之后,九黎轩辕两族雄起,于涿鹿之野爆发大战!风伯、雨师、应龙、帝女、风后各显神通,神州浩土分崩离析,六界动乱。日久万物生,四大部洲上逐渐形成各种族群,天庭、西天界等势力开始出现,又有阐、截、人三教共签封神榜,仙界妖道、凡夫俗子,均被卷入了涛涛巨浪之中……妖猴混世、天庭分崩、圣僧西行……看似平静的神州大地下,实则潜藏着无数暗流。一位接一位的乱世鬼才应运而生,散落于六界。然而,神州大祸将起,人命贱如草芥,唯有走到最后之人,方能称霸六界。我们的这一故事,就是从四洲当中最为混乱的南瞻部洲,开始讲起的……
  • 邪气凌天

    邪气凌天

    自古正邪不两立,何谓正?何谓邪?一代天骄现身尘世间,亦正亦邪,一切随心。举世苍茫,万道争锋,何人敢称尊?吾之言即为法,吾之名镇世间,看吾以邪气傲视苍天。
  • 凌家小姐是魔尊

    凌家小姐是魔尊

    人前,她是镇国侯府的七小姐,放荡不羁;人后,她是魔界至尊,冷酷无情。他是帝国太子,冷傲如霜,当遇到命中的她,一切都化为绕指柔。“君暝夜,你给老娘说清楚,我什么时候说要当你的太子妃了”某女气呼呼的看着某太子,“怎么,亲都亲了,筠儿想始乱终弃”某太子笑眯眯的看着眼前的人,某女:“……”
  • 管人的艺术

    管人的艺术

    只有善于思考,掌握好管人方略,才能激励出每个员工的积极主动性,创造出卓越不凡的业绩,才能更好地激发出每个下属的工作热情,让他们更好地投入到工作中!本书融实用的管理方法、高效的管理技巧和通俗的语言于一体,生动地剖析了当前人力资源管理中存在的问题,并有针对性地提出了有效的解决之道,让你能活学活用,在这些方法的帮助下蛔鱼得水、纵横商海,将管人简单、轻松、有效地进行到底!
  • 纵横古岛大陆记

    纵横古岛大陆记

    本书将讲述暮烟的成长历程,看他如何纵横灵渊。