程序员人生 网站导航

软考下午题详解--数据库设计

栏目:数据库应用时间:2015-05-21 07:55:29

        在前面的两篇博客中,小编分别对软考下午试题中的数据流图设计和uml图的相干知识点进行了详细的论述,今天我们继续来看软考下午题中的大题部份---数据库设计,数据库的设计我们也已早早的接触过,在第1次机房收费系统的时候我们直接用的是他人的脚本,也没有想过当时的数据库存在甚么样的问题,等到个人重构机房的时候,我们需要重新设计数据库,这个时候,就不再是傻傻的导入数据库脚本文件这么简单了,我们需要从需求分析开始,自己设计数据库,甚么3范式,主外键关联这都是我们需要注意的地方,可以这么说数据库设计贯穿我们学习的始终,那末今天,数据库出现在我们的软考当中,她又会以1种甚么样的方式出现nie,是白裙摇摆,还是1席落地长裙,小编今天就简单介绍1下数据库设计的相干知识点,首先我们来看下面的1张图:

        

        接下来,小编就随着上面思惟导图的脉络,逐一讲授数据库设计中的相干知识点,首先我们来看第1个知识点:

        数据库设计阶段

        数据库设计阶段分为4个阶段,我们来看下面的1张图片:

         

         接下来,小编对4个阶段究竟是甚么,干甚么的等进行逐一的介绍。首先我们来看第1个阶段,需求分析。所谓的需求分析就是搜集和分析用户对系统的信息需求和处理需求,得到设计系统所必须的需求分析,建立系统说明文档,需求分析的目标是通过调查研究了解用户的数据要求和处理要求,并且依照1定的格式整理构成需求说明书,也就是说,需求说明书是需求分析阶段的成果,也是以后设计的1个基础和根据,她包括数据库所触及的数据,数据的特点,使用频率和数据量的估计,例如数据名。属性。类型,还包括数据的保密要求, 数据库的完全性束缚,使用的频率,数据量的大小等1系列问题,设计大型数据库的时候,这些数据信息通常是使用数字字典进行管理,这是需求分析的内容。

        我们再来看概念结构设计:概念结构设计是对需求说明书所提供的所有数据和处理要求进行抽象和综合处理,依照1定的方法,构造反利用户环境的数据和数据之间相互联系的概念模型。也就是我们通常所讲的ER模型,所以这类概念模型是与具体的DBMS是没有关系的,她是面向现实世界的,用户很容易理解的1种数据模型,为了保证所触及的概念数据模型能够正确的完全的反利用户的数据和相互关系,便于进行所要求的各种处理,  在概念结构设计阶段就能够吸收用户来参与,在进行概念结构设计的时候,可以先设计各个利用的视图,也就是各个利用所看到的数据和他的结构,局部视图,然后再把局部视图进行集成,也就是后面所说的分ER图到全部ER图合并的进程,所以,终究结果,构成概念设计模型,构成了概念设计模型以后,就要开始逻辑结构设计。

        接着是我们的逻辑结构设计:根据相关的规则 ,把ER模型转换为关系模式,再根据相关规范化的理论,肯定关系模式的主键、外键、束缚等这些特性,所以这类转换就是要能为某个特定的DBMS所接受的逻辑模型所表示的1种情势,逻辑结构设计阶段的结果就是用DBMS所提供的数据定义语言所写成的数据模式,逻辑设计的具体方法与dbms的逻辑数据模型是有关系的,所以另为1个输入是DBMS的特性。逻辑模型应当要满足数据库的存储,1致性,和运行各方面的用户需求。

       最后是我们的的物理设计:把逻辑设计阶段所得到的满足用户需求的已肯定的逻辑模型在物理上加以实现,他的主要内容是根据DBMS所提供的各种手段设计数据的存储情势和存储路径,包括文件结构,索引这样1些设计进程,也就是说要设计数据库的内模式或存储模式,由于数据库的内模式对数据库的性能影响比较大,所以应当要根据处理的要求 和操作系统硬件的性能来进行设计,所以她的输入是依照硬件和操作系统的特性。看完了数据库的设计阶段,我们再来看1下ER模型。

        ER模型

        ER模型,实体-联系模型(简称E-R模型)它提供不受任何DBMS束缚的面向用户的表达方法,在数据库设计中被广泛用作数据建模的工具。E-R数据模型问世后,经历了许多修改和扩充。我们来看1张简单的ER图,以下所示:

        

        在我们的ER图中,各个图形表示的是甚么意思nie,小编来简单的介绍1下, 椭圆表示属性。长方形表示实体、菱形表示联系,数字表示联系的类型,比如仓库和零件的关系是库存,仓库里面可以存多个零件,零件可以放在多个仓库里面进行寄存,所以他们之间的关系是多对多的关系。总的来说,在数据库的概念结构设计当中,先要设计各个 子系统的局部ER图,左侧是1个采购管理的ER图,中间是库存管理的ER图,右侧是人事管理的ER图,先设计好局部的ER图,然后再进行合并。
        那末要设计各个子系统的局部ER图,可以分为以下步骤:
        首先,肯定局部视图的范围,然后再辨认该部份的每个实体,和实体之间的联系,最后分配实体,和实体联系之间的属性。当各个子系统的局部ER图设计好以后,我们需要做的就是合并子系统的ER图使之成为1个总的ER图,,称为视图的集成,这类集成有两种方式,1种方式,多个局部ER图1次集成,第1步逐渐集成,先集成前两个,然后再集成。不管用那种方式,由于各个子系统在利用的时候面临的问题不同,而且在1个大型的系统中,通常不只有1个设计人,所以不同的子系统由不同的设计人员设计,致使各个局部的ER图之间一定会存在许多不1致的问题,我们把这类不1致的问题称为冲突,因此合并分ER图的时候,其实不能简单的将各个局部的ER图分到1起。而是必须消除各个子系统之间的不1致,这样才能构成1个 能为全系统当中所有用户都能理解和接受的统1的概念模型。关于数据库设计的理论知识,小编就暂时介绍到这里,接下来,我们来看看历年的软考真题,看看我们如何利用理论知识在实际中应用的nie?

        典型例题分析

        首先,我们来看1道2004年11月份的1道真题,题目以下所示:

         

         ER图以下所示:

         

         题目我们看完了,接着我们来看第1个小问,以下所示:

         

         据我们刚才介绍的把ER图转化为关系模式,在我们上面的图中,1共有两个联系,3个实体,每一个实体都要转换为关系模式,就有3个关系模式,两个联系转换为1个关系模式,题目要求转4个,把第1个进行合并。所以这个时候肯定这些实体之间的联系,看她们之间的关系,我们看题目中是这样来描写的:“1个顾客可以在同1天填写多张购书单,每张购书单上可填写多种图书,每种图书可以订购多本,bid相同的图书在同1张足数单上不能出现屡次,注意,为了简化起见,不斟酌信誉卡号码泄漏所带来的安全性等问题”通过试题中的描写我,我们可以很容易的看出,顾客和购书单之间的联系是1对多的联系,我们再看图书和定单,1个定单当中中含有多本图书,根据尝试,1本图书可以出现在多个定单中,所以图书和定单的联系是多对多,前面我们提到过量对多的联系应当要转换成1个独立的关系模式,所以PlaceOrder与Orders进行合并,所以4个关系模式是书籍Books(属性6个,竹马bid图书编号),第2个顾客,属性有4个,主键顾客编号cid,第3个是定单,所以她的属性有定单的编号,顾客的编号,还有填写的日期bRderDate,这是根据我们刚才所讲的,1个n比n的关系与另外1段合并的时候,就应当包括1段的码要加进来,所以这个定单的属性有3个,定单编号,顾客编号,填写日期,1个第4个OrderList,单独组成1个关系模式,那末就要把与她相联系的各个实体的码都需要加进来,所以1共有4个属性bid(图书的编号),定单的编号,发货的日期,数量,主键是图书编号和定单编号的1个组合。
        外码:对books来说,没有外码,由于这些属性都是自己的,顾客也是的,定单有3个属性,cid就是Orders的外码,由于她是顾客的主键,不是定单的主键,所以她是1个外码,在看OrderList,我们知道在OrderList当中他的主键是bid和ordernum的1个组合,但是其中的任何1个都不是她的主键,所以每个都是她的外键。接着我们来看第2个问题,以下所示:

        
        从题目的描写我们知道顾客属性有4个,所以这两个空填写的肯定不是属性,那会是甚么nie,就是束缚,那末在这个题目当中有甚么束缚nie,看题目,首先要求cardnum这个值是唯1的,在这里没有体现出,题中只是给出了不为空,我们采取束缚unique,所以第1个空填写的是unique  cardnun,使cardnum的值是唯1的,还有1个束缚是甚么ne,我们知道在创建1个表的时候,我们需要指定这个表的主键,这里面没有指出来,这个表的主键是cid,这里仅仅指出了非空,但是非空不是主键,所以第2个空填写的是primary key(cid),所以有关填写sql语句的题目的时候,建立表和视图的情况,我们首先看他的属性是不是完全,如果完全,剩下的就是束缚。接着我们来看第3题:

        
        我们首先不要急于看sql语句,这样是看不出花样来的,我们必须首先弄清楚,这个查询怎样去做,如题意,需要查询的是所有订购了bid为123 456图书的用户订购其他图书的情况,我们可以分为两个步骤来进行,我们首先查出那些用户订购了bid为123 345的图书,第2步再查这些用户订购了其他图书的情况,所以这里面使用的就是查询的嵌套,在嵌套里面现查第1个,然后查询第2个,所以第4个空应当是c.bid,第5个空c.ordernum,在orderList这个关系模式当中,她是1个n比n的关系转换过来的,所以她有图书的编号和定单的编号,所以图书的编号等于123-⑷56,定单的编号等于就等于定单这个关系模式的定单编号,所以4和5就填写终了了,第4个空是c,第5个空是c.ordernum。所以3填写的是not in。

         小编寄语:该博文,小编主要讲授了软考下午题目当中的数据设计的相干知识点,分别从数据库设计的阶段,ER模型已典型例题分析3个方面对数据库设计进行了简单的讲授,在软考当中,通常会考察我们,ER图当中各个实体之间的联系联系,写出关系模式,找出主外键;在软考中考察的问题包括在给定的er图当中,指出实体之间的联系类型,在关系模式当中补充属性,找出关系模式的主外键和sql语句。同时在肯定主外键的时候,我们可以根据常识来得出结论,和试题描写,解答此类问题需要认真读题。

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐