第7章 数据库设计
了解
- 数据库设计的特点
- 数据库物理设计的内容和评价
- 数据库的实施和维护
掌握
- 数据库设计基本步骤
- 数据库设计过程中数据字典的内容
- 数据库设计各个阶段的具体设计内容、设计描述、设计方法
- E-R图的设计
- E-R图向关系模型的转换
知识点
- 数据库设计过程
这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、数据库运行和维护。- 需求分析
准确了解与分析用户需求(包括数据与处理)。 - 概念结构设计
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。 - 逻辑结构设计
将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。 - 数据库物理设计
为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法) - 数据库实施
设计人员运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 - 数据库运行和维护
在数据库系统运行过程中对其进行评价、调整与修改。
- 在概念设计阶段形成独立于机器特点,独立于各个DBMS产品的概念模式,在本篇中就是E-R图
- 在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式;然后在基本表的基础上再建立必要的视图(View),形成数据的外模式
- 在物理设计阶段,根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。
- 数据库设计既是一项涉及多学科的综合性技术又是一项庞大的工程项目。其主要特点有:
- 数据库建设是硬件、软件和干件(技术与管理的界面)的结合。
- 从软件设计的技术角度看,数据库设计应该和应用系统设计相结合,也就是说,整个设计过程中要把结构(数据)设计和行为(处理)设计密切结合起来。
- 数据抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。
- 如分类这种抽象是:定义某一类概念作为现实世界中一组对象的类型。这些对象具有某些共同的特性和行为。它抽象了对象值和型之间的“is member of”的语义。在E-R模型中,实体型就是这种抽象。例如在学校环境中,李英是老师,表示李英是教师类型中的一员,则教师是实体型,李英是教师实体型中的一个实体值,具有教师共同的特性和行为:在某个系某个专业教学,讲授某些课程,从事某个方向的科研。
- 需求分析阶段的设计目标是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。调查的内容是“数据”和“处理”,即获得用户对数据库的如下要求:
-
- 信息要求。指用户需要从数据库中获得信息的内容与性质。由信息要求可以导出数据要求,即在数据库中需要存储哪些数据。
- 处理要求。指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理。
- 安全性与完整性要求。
- 数据字典的内容通常包括:数据项、数据结构、数据流、数据存储、处理过程5个部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。
- 数据字典的作用:数据字典是关于数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过程中不断修改、充实、完善。
- 概念结构是信息世界的结构,即概念模型,其主要特点是
- 能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求。是对现实世界的一个真实模型。
- 易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库的设计成功的关键。
- 易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。
- 易于向关系、网状、层次等各种数据模型转换。
- 自顶向下。即首先定义全局概念结构的框架,然后逐步细化;
- 自底向上。即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构;
- 逐步扩张。首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构;
- 混合策略。即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。
- 重要性:数据库概念设计是整个数据库设计的关键,将在需求分析阶段所得到的应用需求首先抽象为概念结构,以此作为各种数据模型的共同基础,从而能更好地、更准确地用某一DBMS实现这些需求。
- 设计步骤:概念结构的设计方法有多种,其中最经常采用的策略是自底向上方法,该方法的设计步骤通常分为两步:第1步是抽象数据并设计局部视图,第2步是集成局部视图,得到全局的概念结构
- 在对数据库系统进行概念结构设计时一般采用自底向上的设计方法,把繁杂的大系统分解子系统。首先设计各个子系统的局部视图,然后通过视图集成的方式将各子系统有机的融合起来,综合成一个系统的总视图。这样设计清晰,由简到繁。由于数据库系统是从整体角度看待和描述数据的,因此数据不再面向某个应用而是整个系统。因此必须进行视图集成,使得数据库能被全系统的多个用户、多个应用共享使用。一般说来,视图集成可以有两种方式:
-
- 多个分E-R图一次集成;
- 逐步集成,用累加的方式一次集成两个分E-R图。
- 合并。解决各分E-R图之间的冲突,将各分E-R图合并起来生成初步E-R图。
- 修改和重构。消除不必要的冗余,生成基本E-R图。
- E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。构成E-R图的基本要素是实体型、属性和联系,其表示方法为:
-
- 实体型:用矩形表示,矩形框内写明实体名;
- 属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;
- 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)
- 需求分析
- 画E-R图
- 画E-R图 数据库的逻辑结构设计,设计步骤。
-
- 数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。设计步骤为:
-
- 将概念结构转换为一般的关系、网状、层次模型;
- 将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;
- 对数据模型进行优化。
- E-R图向DBTG模型的转换规则:
- 1)每个实体型转换为记录型,实体的属性转换为记录的数据项;
- 2)实体型之间1:n(n≥1)的联系转换为一个系,没有任何联系的实体型转换为奇异系;
- 3)K(K≥2)个实体型之间多对多的联系,引入一个连结记录,形成K个实体型和连结记录之间的K个系。连结记录的属性由诸首记录的码及联系属性所组成;
- 4)同一实体型内的1:n,n:m联系,引入连结记录,转换为两个系。
- 一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:
-
- 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
- 一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
- 一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体码的组合组成该关系的码,或码的一部分。
- 三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
- 具有相同码的关系模式可合并。
- 1)每个实体型转换为记录型,实体的属性转换为记录的数据项;
- 2)实体型之间1:n(n≥1)的联系转换记录型之间的有向边;
- 3)实体型之间m:n(m>1,n>1)的联系则分解成一对多联系,再根据2)转换;
- 4)K(K≥2)个实体型之间多对多的联系,可先转换成多对两个实体型之间的联系,再根据3)转换。
- E-R转换关系模型
补充
-
- 数据流程图是用于描述结构化方法中【需求分析】阶段的工具。
- 数据库设计中,用E-R图赖描述信息结构但不涉及信息在计算机中的表示,这是数据库设计的【概念设计阶段】
- 在数据库设计中,将E-R图转换成关系数据模型的过程属于【逻辑设计阶段】
- 子模式DDL是用来描述【数据库的局部逻辑结构】
- 数据库设计的概念设计阶段,表示概念结构的常用方法和描述工具是【实体联系法和实体联系图】
- 在E-R模型向关系模型转换时,M:N的联系转换为关系模式时,其关键字是【M、N端实体的关键字组合】
- 某学校规定,每一个班级最多有50名学生,至少有10名学生;每一名学生必须属于一个班级。在班级与学生实体的联系中,学生实体的基数是【(1,1)】
- 在关系数据库设计中,设计关系模式是数据库设计中【逻辑设计阶段】阶段的任务
- 关系数据库的规范化理论主要解决的问题是【如何构造合适的数据逻辑结构】
- 数据库设计可划分为七个阶段,每个阶段都有自己的设计内容,“为哪些关系,在哪些属性上、键什么样的索引”这一设计内容应该属于【物理设计】设计阶段。
- 假设设计数据库性能用“开销”,即时间、空间及可能的费用来衡量,则在数据库应用系统生存期中存在很多开销。其中,对物理设计者来说,主要考虑的是【操作开销】
- 数据库物理设计完成后,进入数据库实施阶段,下述工作中,【扩充功能】一般不属于实施阶段的工作。
- 从ER图导出关系模型时,如果实体间的联系是M:N的,下列说法中正确的是【增加一个关系表示联系,其中纳入M方和N方的关键字】
- 在ER模型中,如果有3个不同的实体集,3个M:N联系,根据ER模型转换为关系模型的规则,转换为关系的数目是【6】
- 数据库外模式在【数据库逻辑结构设计】阶段设计
- 生成DBMS系统支持的数据模型在【数据库逻辑结构设计】阶段完成
- 根据应用需求建立索引在【数据库物理设计】阶段完成
- 员工性别取值“男”女”/“1”“0”属于【属性冲突】
- 数据库设计方法包括【新奥尔良方法】【基于E-R模型的方法】【3NF的设计方法】【面向对象的设计方法】【统一建模语言(UML)方法】
- 数据库设计的基本步骤包括【需求分析】【概念结构设计】【逻辑结构设计】【物理结构设计】【数据库实施】【数据库运行和维护】
- 集成E-R图要分两个步骤【合并、修改】和【重构】
- 数据库常见存取方法【索引】【聚簇】【Hash方法】
- 在进行概念结构设计时,将事物作为属性的基本准则是什么
- 作为属性,不能再具有需要描述的性质,属性必须是不可分的数据项,不能包含其他属性
- 属性不能与其他实体具有联系,即E-R图中所表示的联系是实体之间的联系
- 将E-R图转换为关系模式时,可以如何处理实体型间的联系
- 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
- 一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
- 一个m:n联系转换为一个关系模式。
- 三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
- 具有相同码的关系模式可合并。
- 综合题