ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

计算机三级数据库技术 第3章 数据库结构设计

2021-07-03 12:02:19  阅读:223  来源: 互联网

标签:文件 数据库 实体 索引 结构设计 数据 三级 属性


3.1 数据库概念设计

3.1.1 概念设计的任务

        数据库概念设计是面向现实世界的,其主要任务是理解和获取应用领域中的数据需求,分析、抽取、描述和表示清楚目标系统需要存储和管理什么数据,这些数据具有什么样的属性特征及组成格式,数据之间存在什么样的依赖关系。数据库概念设计阶段的目标是:

        (1)定义和描述应用领域涉及的数据范围。

        (2)获取应用领域或问题域的信息模型。

        (3)描述清楚数据的属性特征。

        (4)描述清楚数据之间的关系。

        (5)定义和描述数据的约束。

        (6)说明数据的安全性要求。

        (7)支持用户的各种数据处理需求。

        (8)保证信息模型方便地转换成数据库的逻辑结构(数据库模式),同时也便于为用户理解。

3.1.2 概念设计的依据及过程

1.概念设计的依据

        数据库概念设计的依据是需求分析阶段的文档。通过对这些文档的分析和理解,构造信息模型,编写数据库概念设计说明书。

2.概念设计的过程

        数据库概念设计一般包括下列过程与步骤:

        (1)明确建模目标。

        (2)定义实体集。

        定义实体集简单的方法是分类标识、概括命名。首先将应用域收集到的原始数据进行分类,即按照具有相同属性特征原则归类,在此基础上对分类进行概括命名,然后依次列出每个实体集的名称。

        (3)定义联系。联系用于描述实体集之间的关联关系,而联系的实例表示一个联系中的两个实例之间有意义的关联或连接。

        标识实体集之间关系的简单方法是建立联系矩阵,联系矩阵由一个二维数组表示。吧前阶段定义的实体集沿水平轴和垂直轴两个方向列出,依次分析两个实体集之间可能的联系。

        需要注意的是联系只标注两个实体集之间的直接联系,不标注间接联系。

        在标识联系的基础上就可以定义联系了。定义联系的工作主要包括:表示依赖、命名联系及关于联系的说明。

        (4)建立信息模型。通常从局部或子系统人手,先建立局部信息模型,然后再综合成为总体信息模型。

        (5)确定实体集属性。属性被用来描述一个实体集的特征或性质。如果模型中实体集很多,且大部分实体集的属性也较多,可通过实体集一属性列表的形式逐一列出模型中每个实体集的名字以及这个实体集所包含的属性名、类型与长度,并将它们附在模型后面。实体集中属性的数据类型与存储位数(长度)也可以在数据库的逻辑设计阶段给出。

        (6)对信息模型进行集成与优化。在局部数据建模的基础上,进行模型的集成、汇总与优化,包括检查和消除命名不一致、结构不一致等,保证构造的概念数据模型是正确的、一致的和满足数据需求的。

3.1.3 数据建模方法

        这些数据建模方法的共同特点是:

        (1)能够真实客观地描述现实世界中的数据及数据之间的关系。

        (2)组成模型的概念少,语义清楚,容易理解。

        (3)不同概念的语义不重叠,概念无多义性。

        (4)用图形方式描述数据,数据直观易懂,有利于数据库设计者和用户交流。

        (5)这种数据模型容易转换成数据库逻辑设计阶段需要的数据结构。

1.ER建模方法

        实体联系(Entity Relationship,ER)方法面向数据存储需求建模,将现实世界中需要处理的数据抽象组织成某种信息结构。这种结构不依赖于具体的计算机系统,仅从存储需求描述数据的属性特征及数据之间的关系。

        下面先介绍几个有关概念:

        (1)实体或实例。实体指客观存在并可相互区分的事务(也称为实体集实例或实例)。

        (2)实体集。实体集表示一个现实的和抽象事物的合集,这些事物必须具有相同的属性或特征。

        (3)属性。属性用于描述一个实体集的性质和特征。每个属性的取值范围称为域。

        (4)码。实体集中能唯一标识每一个实例的属性或属性组称为该实体集的码。

        (5)联系。联系描述现实世界中实物之间的关系。

        现实世界事务之间的联系可归纳为三类:

        ①一对一联系(1:1)。

        ②一对多联系(1:n)。

        ③多对多联系(m:n)。

        ER 方法中用矩形框表示实体集,如图3.1所示。

ER 模型用菱形框表示联系,如图3.2所示。

ER 模型中,实体集的属性用椭圆或圆角矩形框表示,如图3.3所示。

2.IDEF1X 建模方法

        IDEF1X 与第2章中介绍的 IDEF0 是一个系列的建模工具。IDEF0 侧重描述系统功能需求,被称为功能建模方法。IDEF1X 侧重分析、抽象和概括应用领域中的数据需求,被称为数据建模方法。IDEF1X 模型有如下建模元素:

        (1)实体集。如果一个实体集的每个实例都能被唯一地标识而不决定于它与其他实体集的联系,那么该实体集就是独立标识符实体集或简称为独立实体集;如果实体集的一个实例的唯一标识依赖于该实体集与其他实体集的联系,那么它就是从属标识符实体集或简称为从属实体集。

        IDEF1X 用矩阵来表示独立实体集,用加了圆角的矩形框来表示从属实体集。独立实体集与从属实体集语法如图3.4所示。

(2)联系。

3.2 数据库逻辑设计

3.2.1 概述

        数据库逻辑设计的任务是把数据库概念设计的结果(ER模型),转换为具体的数据库管理系统支持的数据模型。其目标是得到实际的数据库管理系统可处理的数据库模式。数据库逻辑设计的依据和阶段目标如图3.10所示。

3.3 数据库物理设计

3.3.1 物理设计概述

        数据库物理设计的目的是将数据的逻辑描述转化为实现技术规范,其目标是设计数据存储方案。

        数据库物理设计并不包括文件和数据库的具体现实细节。在物理设计时需要了解不同文件组织方式,索引技术及其使用方式。

        在数据库物理设计阶段,需要进一步考虑应用数据在实际数据库管理系统和操作平台下的具体存储结构和存取方式,即数据库的物理结构。

3.3.2 数据库的物理结构

        从数据物理结构角度需要解决如下问题:

        (1)文件的组织。

        (2)文件的结构。也称为文件记录的组织。

        (3)文件的存取。

        (4)索引技术。

3.3.3 索引

1.索引技术

        索引技术的关键是建立记录域取值到记录的物理地址间的映射关系,这种映射关系称为索引。如图3.11所示。

2.索引技术的分类

        (1)有序索引技术,也称为索引文件机制。有序索引技术利用索引文件实现记录域取值到记录物理地址间的映射关系。这里的记录域就是查找码。查找码也称为排序域。

        (2)散列技术,也称哈希索引机制。散列技术利用一个三列函数实现记录域取值到物理地址间的直接映射关系。这里的记录域就是查找码,也称为散列函数的散列域或排序域。

        用于在数据文件中查找记录的属性或属性集合就是文件查找码。

3.有序索引

        数据文件和索引文件是有序索引技术中的两个主体,数据文件也称为被索引文件( Indexed File)或主文件。

        当需要采用有序索引机制快速访问一个数据文件时,首先要为该数据文件建立一个索引文件,索引文件是索引记录或索引项的集合。

        索引文件建立方法如下:首先选定数据文件中的某个或某些记录域作为查找码,然后建立起数据记录在查找码上的取值与该记录的物理地址间的映射关系,组成索引项。所有索引项作为索引记录存储在索引文件中。索引文件根据某个特定的查找码值的升序或降序存储索引记录,并且也组织为顺序文件。

        索引建立在查找码上。一个数据文件可以有多个查找码和多个索引文件。

①聚集索引和非聚集索引

        一个数据文件上可以建立多个索引文件,数据文件和每个索引文件都根据各自的查找码有序地组织为顺序文件。

        对数据文件和它的一个特定的索引文件,如果数据文件中数据记录的排列顺序与索引文件中索引项的排列顺序相一致,或者说索引文件按照其查找码指定的顺序与数据文件中数据记录的排列顺序相一致,则称该索引文件为聚集索引(Clustering Index);否则,称该索引文件为非聚集索引( Non-clustering Index)。

        在一个数据文件上除了可以建立一个聚集索引外,还可以建立多个非聚集索引。

②稠密索引和稀疏索引

        如果数据文件中的每个查找码值在索引文件中都对应一个索引记录,则该索引称为稠密索引(Dense Index)。如果只是一部分查找码的值有对应的索引记录,则该索引称为稀疏索引(Sparse Index)。

        索引文件也是稠密索引。在带稠密索引的数据文件中,查找速度较快。

        如果索引文件只包含了数据文件中的部分查找码,则该索引称为稀疏索引。

③主索引和辅索引

        在数据文件的主码属性集上的索引称为主索引(Primary Index)。在数据文件的非主属性上建立的索引称为辅索引(Secondary Index)。

        在实际的关系数据库系统中,数据库管理系统通常按照主码值的顺序将元组有序存储在数据文件中,并且以主码作为查找码建立索引文件。

④唯一索引

        唯一索引可以确保索引列不包含重复值。

⑤单层索引和多层索引

        单层索引也称为线性索引,其特点是索引项根据键值在索引文件中顺序排列,组织成一维线性结构,每个索引项直接指向数据文件的数据记录。

        为解决数据文件很大的问题,可以对索引文件中的索引项本身建立一级稀疏索引,组成二层索引结构,用于快速查找索引。

3.3.4 数据库物理设计

1.物理设计内容

        数据库物理结构设计是在具体的硬件环境、操作系统和DBMS约束下,根据数据库逻辑设计结果设计合适的数据库物理结构。其目标是得到存储空间占用少数据访问效率高和维护代价低的数据库物理模式。

主要包括以下环节:

        (1)数据库逻辑模式描述。

        (2)文件组织与存取设计。

        (3)数据分布设计。

        (4)确定系统配置。

        (5)物理模式评估。

2.数据库逻辑模式描述

主要包括以下设计内容:

        (1)面向目标数据库描述基本表和视图。

        (2)设计基本表业务规则。

3.DB文件组织与存取设计

事务分析按照如下步骤进行:

        (1)使用事务-基本表交叉引用矩阵,分析系统内(部分重要的)数据库事务对各个基本表的访问情况,确定事务访问了那些基本表,对这些基本表执行了何种操作,并进一步分析各操作涉及的基本表属性。

        (2)估计各事务的执行频率,即单位时间内事务的执行次数。在此基础上分析事务中的每个数据访问操作对各个基本表中的相关属性的操作频率。

        (3)对每张基本表,汇总所有作用于该表上的各事务的操作频率信息,得到如下数据访问估计信息:该表是否被频繁访问,该表中哪些属性列的访问频率较高和作用于这些属性上的操作类型和查询条件类型(等值查询、范围查询)。

基本表选择合适的文件结构的原则:

        (1)如果数据库中的一个基本表中的数据量很少,并且插入、删除、更新等操作非常频繁,该基本表可以采用堆文件组织方式。堆文件无须建立索引,维护代价非常低。虽然堆文件的数据访问效率较低,但在数据量很少时,定位文件记录的时间非常短。

        (2)顺序文件支持基于查找码的顺序访问,也支持快速的二分查找。如果用户的查询条件定义在查找码上,则顺序文件是比较合适的文件结构。

        (3)如果用户查询是基于散列域值的等值匹配,特别是如果访问顺序是随机的,则散列文件比较合适。

但散列文件组织不适合下述情况:

        ①基于散列域值的非精确查询(如模糊查询范围查询)。

        (4)B-树和B+树文件是实际数据库系统中使用非常广泛的索引文件结构,适合于定义在大数据量基本表上、基于查找码的等值查询、范围查询模糊查询和部分查询。B-树和B+树属于动态索引,可以随着数据文件的内容变化不断调整,保证数据查询的性能不会恶化。

        (5)如某些频繁执行且需要进行多表连接操作的查询,可以考虑将这些基本表组织为聚集文件,以改善查询效率。

        对数据库中的基本表等数据库对象选择了合适的文件结构后还需要为其设计存取路径,设计内容包括:为数据库文件设计合理的物理存储位置和为基本表设计索引。

可根据下述原则决定是否为一个基本表建立索引:

        (1)对于经常需要进行查询、连接、统计操作,且数据量大的基本表可考虑建立索引;而对于经常执行插入、删除、更新操作或小数据量的基本表应尽量避免建立索引。

        (2)一个基本表上除了可以建立一个聚集索引外,还可以建立多个非聚集索引。多个索引为用户提供了根据多个查找码快速访问文件的手段。但是索引越多,对表内数据更新时为维护索引所需的开销就越大。因此,对于一个更新频繁的表应少建或不建索引。

        (3)索引可以由用户根据需要随时创建或删除,以提高数据查询性能。先删除索引,数据插入或更新完成后再重建索引,以加快查询和统计等操作的系统响应时间。

对于基本表,可考虑在下面一些属性上建立索引:

        (1)表的主码。(大部分关系数据库管理系统会自动为主码建立唯一索引)

        (2)在WHERE查询子句中引用率较高的属性。

        (3)参与连接操作的属性。

        (4)在Order By子句、Group By子句中出现的属性。

        (5)在某一范围内频繁搜索的属性,但只有当使用索引的查询其结果不超过记录总数的20%时索引才会有明显的效果。

        (6)如果在WHERE子句中同时包含一个表中的多个属性,则可以考虑在这些属性上建立多属性索引。

        如果数据库文件需要频繁执行精确匹配查询(如等值查询),则可考虑建立散列索引。而B+树等有序索引更适合于范围查询。

        (7)当一个属性有相对较多的不同值时,使用索引有明显的作用;当一个属性的不同值很少时,使用索引没有好处。

        (8)对包含大量空值的属性建立索引时要仔细考虑,因为很多数据库管理系统中的索引不引用具有空值的行,对空值的查找需要使用全表扫描来实现。

4.数据分布设计

(1)不同类型数据的物理分布

        数据库系统中不仅有组织为基本表的应用数据,还有索引、日志、数据库备份数据等其他类型数据。

        使用频率低,而且数据量大的可以存储在磁带中。

(2)应用数据的划分与分布

  • 根据数据的使用特征划分。
  • 根据时间、地点划分。
  • 分布式数据库系统中的数据划分。DDBS采用水平划分或垂直划分两种方法。

        水平划分将张基本表划分 为多张具有相同属性、结构完全相同的子表,子表包含的元组是基本表中元组的子集。各子表可以有公共元组,也可以分别包含完全不同的元组。

        垂直划分则是将一张基本表划分为多张子表,每张子表包含的属性是原基本表的子集。

(3)派生属性数据分布

        基本表中的派生属性(Derived Attribute)是指该属性的取值可根据表中其他属性的取值唯一确定。对带有派生属性的基本表可采用如下两种实现方式:

        第一种方式将派生属性作为基本表中单独的一列,称为派生列。这种方式允许用户用select语句直接查询顾客的Age属性。

        第二种方式是派生属性不出现在基本表中,节省了存储空间。但当用户查询某个顾客的Age属性是必须用如下的查询语句:

select year(current_time)-year(Birthdate) as Age 
from Table_Custimer 
where...

        (4)关系模式的去规范化

        关系模式规范化过程实质上是将一个关系模式分解为一系列子模式,使得子模式可以满足更高一级的范式要求。一般情况下可以减少部分数据冗余,但不恰当的分解,也可能增加冗余。

3.3.5 其他物理设计环节

1.确定系统配置

2.物理模式评估

章末测试

一、选择题

1.下列不属于概念设计目标的是__________

A.定义和描述应用领域涉及的数据范围

B.描述清楚数据的属性特征

C.定义和描述数据的约束

D.确定数据的结构

2.下列关于数据库概念设计的说法中,错误的是________

A.抽象实体集时需将具有相同属性特征的事物归为一.类,并对分类进行概括和命名

B.确定描述每个实体集特征的属性,并为属性命名

C.确定各实体之间的联系,但不需要确定联系具有的属性

D.确定联系的种类

3. 如果关系模式设计不当, 则有可能引起数据删除异常。这种删除异常是指________

A.两个事务同时对同一个关系进行删除而造成数据库不一致

B.由于删除关系中的元组而造成有用信息无法作为一个元组在数据库中存在

C.未经授权的用户对关系进行了删除

D.如果删除操作违反了完整性约束条件则会被拒绝

4.下列不属于数据库物理设计内容的是__________

A.确定数据库文件在磁盘上的物理存储位置

B.确定数据库文件的结构和具体实现细节

C.确定索引字段和索引类型

D.在进行数据库物理设计时要考虑空间利用率、数据访问效率

5.下列关于索引的说法中,错误的是__________

A.索引是典型的空间换取时间的方法,因此在设计索引时要在空间与时间两者之间进行权衡

B.建立聚集索引时,数据库管理系统会按照聚集索引键值对数据进行排序

C.聚集索引的键值不能重复

D.当经常进行范围查询时,在范围列上建立索引可以提高该类查询的效率

二、填空题

1.数据库概念设计的过程主要包括_______、_______、_______、_______、_______和_______。

2.在数据分布设计中,垂直划分是将一张基本表划分为多张子表,每张子表必须包含基本表的_______。

3.根据索引的实现方式,索引技术被分成_______和_______两大类。

4.索引技术的关键是建立记录域取值到记录的_______间的映射关系。

5.第三范式的关系模式一定不包含_______函数依赖和_______函数依赖。

答案:

一、

1. D 2. C 3. B 4. B 5. C

二、

1.明确建模目标 定义实体集 定义联系 建立信息模型 确定实体集属性 对信息模型进行集成与优化

2.主键

3.有序索引 散列索引

4.物理地址

5.部分 传递

内容补充

1、内模式也称存储模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,一个数据库只有一个内模式。外模式可以有多个,其是应用程序或用户与数据库通信的接口,不同的用户访问同一一个数据库对应多个外模式。数据与程序之间的独立性,使数据定义与描述分离,所有数据的存取由DBMS管理,用户不必考虑存取细节,所以减少了应用程序的维护。

标签:文件,数据库,实体,索引,结构设计,数据,三级,属性
来源: https://blog.csdn.net/qq_25662827/article/details/118437588

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有