第2章 数据库设计
- 格式:doc
- 大小:539.50 KB
- 文档页数:17
《数据库程序设计》第02章在线测试剩余时间:59:06答题须知:1、本卷满分20分。
2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)1、在查询中要统计记录的个数,应使用的函数是()A、SUMB、COUNT ( 列名 )C、COUNT ( * )D、AVG2、在SQL查询时,使用WHERE子句指出的是。
A、查询目标B、查询结果C、查询条件D、查询视图3、下面有关索引的描述正确的是。
A、建立索引以后,原来的数据库表文件中记录的物B、索引与数据库表的数据存储在一个文件中理顺序将被改变C、创建索引是创建一个指向数据库表文件记录的指D、使用索引并不能加快对表的查询操作针构成的文件4、要为当前表所有职工增加100元工资应该使用命令。
A、CHANGE 工资 WITH 工资+100B、REPLACE 工资 WITH 工资+100C、CHANGE ALL 工资 WITH 工资+100D、REPLACE ALL 工资 WITH 工资+1005、查询院系学生人数超过400人的院系,应使用子句A、where sum >=100B、having count(* ) >=100C、where count() >=100D、having sumt(* ) >=100第二题、多项选择题(每题2分,5道题共10分)1、(本题空白。
您可以直接获得本题的2分)2、(本题空白。
您可以直接获得本题的2分)3、(本题空白。
您可以直接获得本题的2分)4、(本题空白。
您可以直接获得本题的2分)5、(本题空白。
您可以直接获得本题的2分)第三题、判断题(每题1分,5道题共5分)1、查询人数超过300人的院系,需要用到group 子句,并在其后跟随 where 子句作为查询条件。
正确错误2、在查询中要统计记录的个数,应使用的函数是COUNT ( * )正确错误3、不允许记录中出现重复索引值的索引只有主索引正确错误4、要控制两个表中数据的完整性和一致性可以设置“参照完整性”,这两个表可以是不同数据库中的两个。
第二章数据库的概念结构设计将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计。
它是整个数据库设计的关键步骤。
本章主要介绍以下内容:•数据模型。
•概念模型。
•概念结构设计的方法与步骤。
第一节数据模型一、数据数据是数据库中存储的基本对象,也是数据模型的基本元素。
1.数据在数据库中描述事物的符号记录称为数据,是存储的基本对象。
计算机是人们解决问题的辅助工具,而解决问题的前提是对问题存在条件及环境参数的正确描述,在现实世界中人们可以直接用自然语言来描述世界,为了把这些描述传达给计算机,就要将其抽象为机器世界所能识别的形式。
例如,我们在现实世界中用以下语言来描述一块主板:编号为0001的产品为“技嘉主板”,其型号为GA-8IPE1000-G,前端总线800MHz。
如果将其转换为机器世界中数据的一种形式则为:0001,技嘉主板,GA-8IPE1000-G,800MHz。
因此从现实世界中的数据到机器世界中的符号记录形式的数据,还需要一定的转换工作。
2.数据描述在数据库设计的不同阶段都需要对数据进行不同程度的描述。
在从现实世界到计算机世界的转换过程中,经历了概念层描述、逻辑层描述及存储介质层描述三个阶段。
在数据库的概念设计中,数据描述体现为“实体”、“实体集”、“属性”等形式,用来描述数据库的概念层次;在数据库的逻辑设计中,数据描述体现为“字段”、“记录”、“文件”、“关键码”等形式,用来描述数据库的逻辑层次;在数据库的具体物理实现中,数据描述体现为“位”、“字节”、“字”、“块”、“桶”、“卷”等形式,用来描述数据库的物理存储介质层次。
二、数据模型模型是对现实世界中的事物、对象、过程等客观系统中感兴趣的内容的模拟和抽象表达。
如一座大楼模型、一架飞机模型就是对实际大楼、飞机的模拟和抽象表达,人们从模型可以联想到现实生活中的事物。
数据模型也是一种模型,它是对现实世界数据特征的抽象。
数据模型一般应满足三个要求:一是能比较真实地模拟现实世界;二是容易被人们理解;三是便于在计算机上实现。
第2章数据库设计一、单项选择题1.关系数据库中的数据表【 C 】。
A)完全独立,相互没有关系 B)相互联系,不能单独存在C)既相对独立,又相互联系 D)以数据表名来表现其相互间的联系2.关系数据库设计理论中,起核心作用的是【 C 】。
A)范式 B)模式设计 C)数据依赖 D)数据完整性3.关系模式的候选码可以有【 C 】,主码有【 B 】。
A)0个 B)1个 C)1个或多个 D)多个4.设有一关系模式为:运货路径(顾客姓名,顾客地址,商品名,供应商姓名,供应商地址),则该关系模式的主码是【 C 】。
A)(顾客姓名,供应商姓名) B)(顾客姓名,商品名)C)(顾客姓名,商品名,供应商姓名) D)(顾客姓名,顾客地址,商品名)5. 有一名为“销售”实体,含有:商品名、客户名、数量等属性,该实体主键是【 C 】。
A)商品名 B)客户名 C)商品名+客户名 D)商品名+数量6. 已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主关键字是【 A 】,系关系的外关键字是【】,学生关系的主关键字是【】,外关键字是【】。
A)系编号;无;学号;系编号 B)系编号;学号;学号;系编号C) 系编号;无;学号;无 D) 系编号;学号;学号;无7.关系数据库规范化是为解决关系数据库中【 A 】问题而引入的。
A)插入、删除和数据冗余 B)提高查询速度C)减少数据操作的复杂性 D)保证数据的安全性和完整性8.关系模式中各级模式之间的关系为【 A 】。
A)3NF⊂2NF⊂1NF B)3NF⊂1NF⊂2NF C) 1NF⊂2NF⊂3NF D) 2NF⊂1NF⊂3NF9.关系模型中的关系模式至少是【 A 】。
A)1NF B)2NF C)3NF D)BCNF10.根据关系数据库规范化理论,关系数据库中的关系要满足第一范式。
下面“部门”关系中,因【 B 】属性而使它不满足1NF。
第2章 数据库设计内容提要:本章简要介绍信息系统中数据库设计的有关内容。
数据库系统已成为目前大多数被审计信息系统的核心与基础。
了解和掌握这些知识,对于进一步了解和掌握被审计信息系统的结构和电子数据的特点,进而决定采取哪些数据采集和分析方法,具有十分重要的指导意义。
第1章中提到,一个会计信息系统中有很多数据文件,其中每一个子系统中都会有各自的数据文件。
那么,为什么一个信息系统中要存在这样多的文件,并且以这样的结构和方式存在呢?这要从信息系统的数据库设计谈起。
信息系统的作用是提供信息,辅助人们对环境进行控制和决策。
数据库是信息系统的核心和基础。
它把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。
这个信息系统设计得成败与否,关键在数据库。
因此,数据库设计是信息系统开发和建设的重要组成部分。
数据库设计的步骤与信息系统开发的过程是密切相关的,如图2-1所示。
数据库设计步骤系统开发步骤图2-1 数据库设计的步骤与信息系统开发过程的关系怎样才能设计出一个“好”的数据库呢?这并不是几句话所能回答的问题。
因为数据库设计是一项涉及多学科的综合性技术。
它不仅需要设计者具有计算机信息系统和数据库原理等方面的知识,还需要具体领域内的业务知识。
数据库设计还是一个复杂的过程,它通常是一个分阶段反复进行的过程。
早期的数据库设计是一门艺术,它完全依靠设计者的经验。
规范化的设计方法提出后,数据库设计的状况有了一定的改善,但它仍然是一种手工化的设计方法。
直到可视化的辅助设计工具的出现,人们才得以逐步摆脱以往数据库设计那种冗长乏味的局面。
2.1 数据库设计的目标与特点数据库设计的任务是在DBMS的支持下,根据应用的需求,构造一个结构合理、性能良好的数据库及其应用系统,使之能够方便、高效地存储和处理数据,满足用户的各种应用需求。
与其他工程设计一样,数据库设计也具有以下三个特点。
●反复性数据库设计一般不可能一次完成,往往需要反复斟酌和修改才能最终完成。
每一阶段的设计工作都是后续阶段设计的基础和起点,后阶段也可向前阶段反馈要求。
如此反复修改,才能逐步完善。
●试验性数据库设计不同于一个数学问题的求解,一般来说设计结果不是唯一的。
设计的过程往往是个试探的过程。
在设计过程中,有各式各样的要求和制约因素,它们之间往往是矛盾的。
数据库的设计很难说是最佳的,常常是考虑了一个方面而忽略了另一个方面,很难兼顾。
究竟取何种方案,往往取决于数据库设计者的权衡和用户的决策。
用户决策也是设计过程中的一个组成部分,而决策不一定完全是客观的,往往与用户的偏好和观点有关。
●分阶段进行数据库设计是一个分阶段进行的工作,在不同的阶段由不同的人员参与。
这一方面是由于各个阶段所要进行的工作和完成的任务不同,另一方面是为了分段把关,逐级审查,保证设计的质量和进度。
尽管后阶段会向前阶段提出反馈要求,但在正常情况下,这种反馈所带来的修改量一般不大。
2.2 数据库设计方法和步骤数据库设计一般有两种方法,一种是以信息需求为主,兼顾处理需求,这种设计方法称为面向数据的方法(Data Oriented Approach),另一种方法是以处理需求为主,兼顾信息需求,这种设计方法称为面向过程的方法(Process Oriented Approach)。
这两种方法在实际中都有应用。
面向过程的方法适用于处理要求比较明确、固定的应用系统,面向数据的设计方法则适合于基础数据稳定、处理复杂多变的应用系统。
信息工程的观点认为,数据位于现代企业信息处理的中心,企业的主题数据库是稳定的,而处理是复杂多变的。
因此,面向数据的方法能够适应目前大多数企业信息系统建设的要求。
同时,由于这种方法较好地考虑和反映了数据的内在联系,可以满足潜在应用的需要。
在强调数据稳定性的同时也不应该忽略数据库的动态行为设计(应用程序和事务处理的设计等)。
数据库的设计应该与应用系统设计相结合,即结构特性与行为特性相结合。
静态的结构特性是为了支持动态的行为特性。
如果两者的设计相分离,就会导致数据与程序不易结合,增加数据库设计的复杂性。
人们经过长期的探索与实践,已经总结出了一些对数据库设计进行过程控制和质量评价的理论体系,其中比较著名的有1978年新奥尔良会议提出的关于数据库设计的步骤划分,被公认为是较完整的—个设计框架,它将设计阶段分为:N1机构需求分析N2信息分析和定义N2.1视图建模N2.2视图分析与汇总N3实现设计N3.1模式初步设计N3.2子模式设计N3.3程序设计N3.4模式评价N3.5模式细化N4物理设计和新奥尔良方法同时存在的还有其他一些设计方法。
目前常用的各种设计方法都属于规范设计方法,即都是运用软件工程的思想与方法,根据数据库设计的特点提出了各种设计准则和设计规程。
除此之外,还有一些为数据库设计不同阶段提供的具体实现技术与方法,如概念设计阶段的E-R设计方法等。
在规范化设计方法中,逻辑数据库设计与物理数据库设计是关键与核心。
逻辑数据库设计是根据用户要求和特定DBMS的具体特点,以数据库设计理论为依据,设计数据库的全局逻辑结构和每个用户的局部逻辑结构。
物理数据库设计是在逻辑结构确定之后,设计数据库的存储结构及其他实现细节。
规范化设计方法对设计质量的控制是以大量的书面文档和数据字典为基础的。
一个大型工程的设计往往需要生成许许多多的需求分析文档、E-R图、数据流程图等,并且所有这些工作都要靠手工来完成,这就在设计效率、系统可重用性、易修改性等方面带来明显的问题。
随着计算机技术的发展,目前出现了许多可视化的规范化辅助设计软件,如ERWin、Oracle Designer 2000等,它们能够与数据库管理系统的某些功能紧密结合,既可以完成数据库结构的设计,生成逻辑模型与物理模型;也可以完成行为设计,生成高质量、易用的应用程序。
这些辅助工具的出现,大大改善了由人工进行数据库设计时那种冗长乏味的局面,也为数据库的修改、转换提供了方便,使数据库设计的质量和效率都有了很大的提高。
但是目前的辅助设计工具还只能完成数据库设计中某些过程的工作,还没有支持数据库设计全过程的辅助工具。
数据库设计目前一般采用生命周期法,它将整个设计过程分解为若干个阶段,每个阶段目标独立,前一阶段是后一阶段工作的基础,后一阶段又可以对前一阶段提出补充和完善。
根据有关资料,可以将数据库设计的过程分为六个阶段,如图2-2所示。
图2-2 数据设计的阶段及各阶段的结果其中,需求分析和概念结构设计可以独立于任何DBMS进行,逻辑结构设计和物理结构设计与具体的DBMS密切相关。
下面将简要介绍这六个阶段。
2.3 需求分析需求分析是数据库设计的第一步工作。
它是整个设计过程的基础,是最困难、最耗时的一步。
需求分析的目标是给出应用领域中的数据项、数据项之间的关系和数据处理的详细定义,为概念结构设计、逻辑结构设计和物理数据库设计奠定基础,为优化数据库的逻辑结构和物理结构提供依据。
需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计工作,需求分析做得不好,甚至会导致整个数据库设计返工。
因此,需求分析必须反复细化,逐步求精,直到形成一个较为明确的需求说明书和数据说明书为止。
确定用户的最终需求是一件非常困难和繁琐的事情。
一方面,用户对计算机和信息系统的知识了解不多,不知道究竟哪些业务适合用计算机来处理,哪些业务不适合用计算机处理,不知道怎样提出他们的要求,往往由于缺乏必要的知识和术语而表达不清。
另一方面,系统设计人员又缺乏相关的业务知识,并不能真正理解用户的需求。
“你所理解的并不是我真正想要的”就是对这个问题的最好描述。
这就需要两方面的人员互相学习、互相沟通,通过不断地深入交流,才可能逐步明确用户的实际需求。
需求分析的重点是获得两方面的需求:(1)信息需求信息需求定义未来信息系统使用的全部信息。
了解信息需求就是要弄清用户需要向数据库输入哪些数据,希望得到哪些处理结果,各项数据间有哪些本质联系。
通过了解信息需求,可以决定在数据库中存储哪些数据,描述数据的内容和结构以及它们之间的联系等。
(2)处理需求处理需求定义未来信息系统数据处理的功能。
它主要是弄清用户要完成什么样的处理功能、功能与数据之间的联系。
除此之外,还要考虑处理的优先次序、处理的执行频率和场合、处理的方式(实时处理、批处理等)、用户要求的响应时间等。
同时也要弄清安全性和完整性约束。
在需求分析中,用于分析和表达用户的需求的方法主要有自顶向下和自底向上两大类。
其中自顶向下的结构化分析方法(Structured Analysis,SA)是一种常用的方法。
它的核心思想是按照系统内部的数据传递、变换关系,自顶向下逐层分解,直到每一项功能都可以被容易地实现为止。
SA方法中要用到数据流程图(Data Flow Diagram,DFD)来描述数据的处理过程。
数据流图是从“数据”和“处理”两方面来表达数据处理过程的一种图形化的表示方法。
在进行需求分析的时候,首先得到的是一个顶层数据流程图,随着不断地分解和细化(数据和功能都得到细化),可以得到若干层次的数据流程图,直到底层数据流程图中每一项加工和存储都可以被容易地实现为止。
需求分析的阶段成果是系统需求说明书,此说明书主要包括数据流程图、数据字典、各类数据的统计表格、系统功能结构图和必要的说明。
系统需求说明书将作为数据库设计全过程的重要依据文件。
2.4数据字典数据字典(Data Dictionary,DD)是在系统设计过程中对各类基本要素进行描述的集合。
它是描述系统逻辑模型的重要工具。
对数据库设计来说,数据字典是进行详细的数据收集和数据分析所获得的主要结果。
因此在数据库设计中占有很重要的地位。
在新系统的开发过程的不同阶段,软件开发人员需要查阅它;在系统运行后维护人员需要查阅它;在计算机信息系统审计过程中,当进行数据转换和系统审计时,审计人员也需要查阅它。
因此,数据字典确实是一种非常重要的文档资料。
数据字典通常由数据项、数据结构、数据流、数据存储和处理过程5个部分组成。
其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流和数据存储的内容。
1.数据项数据项是不可再分的数据单位。
对数据项的描述通常包括以下内容:●数据项编号●数据项名称●数据项含义说明●别名●数据类型●数据长度●取值范围●取值含义●与其他数据项的逻辑关系其中取值范围、与其他数据项的逻辑关系定义了数据的完整性约束条件,是设计数据检验功能的基础。
2.数据结构一个数据结构由若干个数据项或数据结构组合而成,它反映了数据之间的组合关系。