第三章数据库结构设计

掌握数据库概念设计
掌握数据库逻辑设计
掌握数据库物理设计

一、数据库概念设计

一个设计良好的数据库,在很大程度上决定了系统的成功与否。
一般分为:数据库概念设计、数据库逻辑设计、数据库物理设计
概念设计是数据库设计的核心环节。通过对用户需求进行综合、归纳与抽象,形成一个独立具体DBMS的概念模型

1,数据库概念设计的目标

定义和描述应用领域设计的数据范围
获取信息模型
描述数据的属性特征
描述数据之间的关系
定义和描述数据的约束
说明数据的安全性要求
支持用户的各种数据处理需求
保证信息模型能转化成数据库的逻辑结构
(即数据库模式)。

2,概念设计的依据及过程

  • 依据:
    • 数据库概念设计以需求分析的结果为依据,即需求说明书、DFD图以及在需求阶段收集到的应用领域中的各类报表等。
  • 结果:
    • 概念设计的结果是概念模型(ER)与概念设计说明书
  • 过程:
    • (1)明确建模目标(模型覆盖范围)
    • (2)定义实体集(自底向上标识和定义实体集)
    • (3)定义联系(实体间关联关系)
    • (4)建立信息模型(构造ER模型)
    • (5)确定实体集属性(属性描述一个实体集的特征或性质)
    • (6)对信息模型进行集成与优化(检查和消除命名不一致、结构不一致等)
        概念设计是DB设计的核心环节。概念数据模型是对现实世界的抽象和模拟。

3,概念模型设计(数据库建模)

  • 概念设计目前采用最广泛的的ER建模方法。将现实世界抽象为具有属性的实体及联系。
  • 1976年,Peter.Chen提出E-R模型(Entity- Relationship Model),即实体联系模型,用E-R图来描述数据库的概念模型。
  • 观点:世界是由一组称作实体的基本对象和
    这些对象之间的联系构成的。

与E-R模型有关的概念

  • 实体(Entity)或实例(Instance):

    • 客观存在并可相互区分的事物叫实体
    • 如学生张三、工人李四、计算机系、数据库概论
  • 实体集(Entity Set):

    • 同型实体的集合称为实体集
    • 如全体学生
  • 属性:描述一个实体的性质的。一个实体可以由若干个属性来刻画,每个属性的取值范围称为域

  • 码(Key)(键):

    • 实体集中唯一标识每一个实体的属性或属性组合。
    • 用来区别同一实体集中的不同实体的称作主码。
    • 一个实体集中任意两个实体在主码上的取值不能相同。
  • 联系(Relationship):

    • 描述实体和实体之间的联系。 如学生与老师间的授课关系,学生与学生间有班长关系。
    • 联系也可以有属性。 如学生与课程之间有选课联系,每个选课联系都有一个成绩作为其属性。
    • 同类联系的集合称为联系集。
  • 实体间的联系有三类:一对一(1:1),一对多(1:n),多对多(n:n)

E-R模型的表示

在这里插入图片描述

在这里插入图片描述

4,IDEF1X建模方法

IDEF1X与第2章中介绍的IDEF0是一个系列的建模工具。
 IDEF0是功能建模方法。
 IDEF1X是数据建模方法。
 详见教程P39 。

5,概念设计实例 (商场经营管理系统)

建模目标:支持顾客管理、采购与库存管理、销售管理、
 人力资源管理、财务管理等多项业务活动。
定义实体集:顾客、会员卡、员工、收银台、销售单据、   
 供应商、商品、采购入库单据(对应教程P43页7个矩形框)
定义联系(难点):依据语义约束定义。
建立信息模型(详见教程P43-44图3.8,3.9)
确认实体属性
对信息模型进行集成与优化

二、数据库逻辑设计

1,逻辑设计的任务:

将概念模型(如ER图)转化为DBMS支持的数据模型(如关系模型),并对其进行优化。

2,逻辑设计的依据和阶段目标:

在这里插入图片描述

3,补充相关概念

关系模型
数据依赖
候选码、主码、外码
数据规范化
范式

关系模型

- 三种主要数据模型:层次模型、网状模型、关系模型。
其中**关系模型**简单灵活,拥有着坚实的理论基础,当前最流行的数据模型
- 关系模型就是用**二维表格结构**来表示实体及实体之间联系的模型
- 关系的描述称为关系模式(Relation Schema)。关系模式由五部分组成,即它是一个五元组:R(U, D, DOM, F)
R:关系名    U:组成该关系的属性名集合     D:属性组U中属性所来自的域    DOM:属性到域的映射    F:属性组U上的一组数据依赖
由于D、DOM对模式设计的关系不大,这里把关系模式简化为一个三元组:

R<U, F>,当且仅当U上的一个关系R满足F时,R称为关系模式R<U,F>的一个关系在这里插入图片描述
E-R图是概念模型

  • 关系数据库设计的核心:关系模式设计
  • 关系模型的设计目标:按照一定的原则从数量众多而又相互关联的数据中,构造出一组既能较好地反映现实世界,而又有良好的操作性能的关系模式。
  • 新奥尔良法,数据库设计步骤:
    需求分析—〉概念结构设计—〉逻辑结构设计—〉物理结构设计
    E-R图 关系模式设计

数据依赖

  • 定义:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y

  • 关系内部属性与属性之间的一种约束关系

    • 是现实世界属性间相互联系的抽象
    • 数据的内在性质
    • 语义的体现
  • 完整性约束的表现形式

    • 限定属性的取值范围,如年龄<60
    • 定义属性间值的相互关联(主要体现于值的相等与否),这就是数据依赖
  • 数据依赖的类型:函数依赖、多值依赖。

  • 函数依赖:(Functional Dependency,FD)
    普遍存在于生活中,这种依赖关系类似于数学中的函数y=f(x),自变量x确定之后,相应的函数值y也就唯一地确定了。
      如关系:公民(身份证号,姓名,地址,工作单位)
      身份证号一确定,则其地址就唯一确定,因此地址函数依赖身份证号。
      而姓名一确定,不一定能确定地址。

  • 多值依赖:(Multivalued Dependency,MD)
      教师号可能多值依赖课程号,因为给定一个(课程号,参考书号)的组合,可能有对应多个教师号。这是因为多个老师可以使用相同或不同的参考书上同一门课。
      简单点讲,函数就是唯一确定的关系;多值依赖却不能唯一确定。

  • 函数依赖的几种特例

    • 1,平凡函数依赖与非平凡函数依赖
      如果X→Y,且Y X,则X→Y 称为非平凡函数依赖。
        若Y X ,则称X→Y为平凡函数依赖。
        由于Y X 时,一定有X→Y,平凡函数依赖必然成立,没有意义,所以一般所说的函数依赖总是指非平凡函数依赖。
    • 2,完全函数依赖与部分函数依赖
      如果X→Y ,且对于任何X’ X,都有X’      
        Y,则称y完全依赖于x,记作X Y。
        如果X→Y,但Y不完全依赖于X,则称Y部分函数依赖于X,记作X Y。
      • 3,传递函数依赖
        如果X→Y , Y→Z,且Y  X, Y  X,则称Z传递函数依赖于X。记作X 传递→Z 。
        例:学生(学号,姓名,系名,系主任)
        显然系主任传递函数依赖于学号,
        因为学号→系名,系名→系主任

候选码、主码、外码

  • 某属性组的值能唯一确定整个元组的值,则称该属性组为候选码或侯选关键字。
    候选码如果有多个,可以选其中的一个作为主码(Primary Key) 。
  • 属性或属性组X不是关系模式R的码(既不是主码也不是候选码),但X是另一个关系模式的码,则称X是R的外部码,也称外码( Foreign key ) 。

数据规范化

  • 关系数据库的设计主要是关系模式设计。关系模式设计的好坏直接影响到数据库设计的成败。将关系模式规范化,是设计较好的关系模式的惟一途径。
  • 关系模式的规范化主要是由关系范式来完成的。
  • 关系模式的规范化:把一个低一级的关系模式分解为高一级关系模式的过程。
  • 关系数据库的规范化理论是数据库逻辑设计的工具。
  • 目的:尽量消除插入、删除异常,修改复杂,数据冗余的问题。

范式

范式:关系模式满足的约束条件称为范式。根据满足规范化的程度不同,范式由低到高分为1NF,2NF,3NF,BCNF,4NF,5NF。

  • 1NF:如果关系模式R,其所有属性都是不可再分的基本数据项,则称R属于第一范式,R∈1NF。
  • 2NF:如关系模式R∈1NF,且每个非主属性完全函数依赖于主码,则称R属于第二范式,R∈2NF。
  • 3NF:如关系模式R∈2NF,且R中的每个非主属性不传递依赖于R的主码,则称关系R是属于第3范式的,R∈3NF
    在这里插入图片描述

例子:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4,数据库逻辑设计方法

  • 设计逻辑结构分为三步:
    • 1,将概念结构转化为一般的关系模型
    • 2,将转化来的关系模型向特定的DBMS支持下的数据模型转换
    • 3, 对数据模型进行优化
      如果是关系型数据库管理系统,就应该将概念模型转换为关系模型,即将E-R图中的实体和联系转换为关系模式。
  • 数据库逻辑模型的产生:
    概念模型按一定的规则可以转换成数据模型。转换规则如下:
    • 一个实体转换成一个关系模式
      在这里插入图片描述
    • 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
      在这里插入图片描述
    • 一个1:n联系可以转换成一个独立的关系模式,也可以与n端对应的关系模式合并。
      在这里插入图片描述
    • 一个m:n联系转换为一个关系模式
      在这里插入图片描述
    • 三个或者三个以上实体间的一个多元联系转换为一个关系模式
      在这里插入图片描述
    • 同一实体集的实体间的联系,也可以按1:1、1:n、m:n三种情况分别处理
      在这里插入图片描述

三、数据库物理设计

1,物理设计概述

物理数据库设计是设计数据库的存储结构和物理实现方法

  • 目的:将数据的逻辑描述转换为实现技术规范,设计数据存储方案,以便提供足够好的性能并保存数据库数据的完整性、安全性、可靠性

2,数据库的物理结构

数据库逻辑结构设计与数据库具体物理实现无关。
物理设备上的存储结构与存取方式成为数据库的物理结构

  • 数据库中的数据以文件形式存储在外设存储介质上。
  • 一个文件在物理上可看作是存放记录的一系列磁盘块组成的,成为物理文件。
  • 数据库的物理结构需要解决如下问题:
    • 文件组织、文件结构、文件存取、索引技术

3,索引(Index)

是数据库中独立的存储结构,作用是提供一种无需扫描每个页面(存储表格数据的物理块)而快速访问数据页的方案。
索引技术(Indexing)是一种快速数据访问的技术

  • 索引技术的关键

    • 建立记录域或取值(如图书术语)到记录的物理地址(如页码)间的映射关系,即索引。
    • 索能提高性能,但是有代价的。
    • 设计和创建索引时,应确保对性能的提高程度大于在存储空间和处理资源方面的代价
  • 索引技术的分类有序索引(利用索引文件)、散列索引(利用哈希函数)

    • 有序索引
      • 索引文件机制,利用索引文件(索引记录组成)实现记录域(查找码,排序域)取值到记录物理地址间的映射关系。
      • 数据文件(主文件)和索引文件(索引记录或索引项的集合)时有序索引技术的两个主体,数据文件常采用顺序文件结构。
    • 散列索引:哈希索引机制,利用散列函数实现记录域取值到记录物理地址间的直接映射关系
  • 几种主要的有序索引:

    • 1)有序索引中,是否按照其查找码指定顺序与数据文件中的记录顺序相一致,分为聚集索引非聚集索引。一个数据文件只可建立一个聚集索引,但可建立多个非聚集索引。
    • 2)稠密索引与稀疏索引:
      如果数据文件中每个查找码值在索引文件中都对应一个索引记录,则该索引称为
      稠密索引
      ,查找速度快。
      如果索引文件只包含了数据文件中的部分查找码,则该索引称为稀疏索引。
    • **3)**主索引(主码属性集上建立索引)与辅索引(非主属性上建立的索引)
    • **4)**唯一索引(索引列不包含重复值)
    • 5)单层索引(线性索引,每个索引项顺序排列直接指向数据文件中的数据记录)和多层索引(大量数据文件中的采用多层树型(B,B+树)索引快速定位)。

3,数据库的物理设计

  • 目标:目标是得到存储空间占用少,数据访问效率高和维护代价低的数据库物理模式。数据库物理存储与存取,与DBS所依赖的硬件环境、操作系统和DBMS密切相关。目前绝大部分DBS都是关系数据库系统。
  • 环节:数据库设计主要包括5个环节。
    • 1)数据库逻辑模式描述
      根据数据库逻辑结构信息设计目标DBMS可支持的关系表(这里称为进本表)的模式信息,这个过程成为数据库逻辑模式描述。
      关系模式机器视图转换成基本表和视图,利用完整性机制(如触发器)设计面向应用的业务规则。
      SQL Server采用T-SQL语言。
      基本表选择合适文件结构的原则
      堆文件:当数据文件数据量少,频繁插入,删除或者更新操作。
      顺序文件:当用户查询条件定义在查找码上面。
      散列文件:当用户查询是基于散列阈值的等值匹配,尤其是访问顺序是随机的。
      聚集文件、索引文件

    • 2)文件的组织与存取设计
      基本原则
      1,根据应用情况将易变部分与稳定部分、存取频率较高部分分开存放以提高系统性能。
      2,分析理解数据库事务访问特性:使用事务-基本表交叉引用矩阵;估计各事务执行频率;汇总每张基本表各事务操作频率信息;根据结构设计文件结构。
      可以考虑将表和索引分别放在不同磁盘上。在查询时,由于两个磁盘驱动器分别在工作,因而可以保证物理读写速度比较快。

      • 影响数据文件存储结构的因素:存取时间、存储空间利用率、维护代价
        这三个方面常常是相互矛盾的
      • 解决办法:适当冗余、增加聚簇功能
    • 什么是存取路径:

      • 在关系数据库中,选择存取路径主要指确定如何建立索引
      • 对同一个关系要建立多条存取路径才能满足多用户的多种应用要求。
      • 物理设计的第一个任务就是要确定选择哪些存取方法。
    • DBMS常用存取方法:

      • 索引方法,目前主要是B+树索引方法
      • 聚簇(Cluster)方法
      • HASH方法
    • 基本表是否建立索引的原则:(选择、简答)
      ※ 经常需要查询,连接统计操作,且数据量大的表,可建立索引。
      ※ 通常在表的主码,where查询中使用率较高的属性,参与连接操作的属性,group by,order by 的属性 ,这些属性上面建立索引,可以加快查询效率。

      • 一个(组)属性经常在操作条件中出现
      • 一个(组)属性经常在链接操作的链接条件中出现
      • 一个(组)属性经常作为聚集函数的参数
    • 建立聚集索引原则:

      • 检索数据时,常以某个(组)属性作为排序、分组条件。
      • 检索数据时,常以某个(组)属性作为检索限制条件,并返回大量数据。
      • 表中某个(组)的值重复性较大
    • 3)数据分布设计

    • 不同类型数据的物理分布
      将应用数据(基本表)、索引、日志、数据库备份数据等合理安排在不同介质中。

    • 应用数据的划分与分布

      • 水平划分与垂直划分(分布式数据库系统比较常用)、根据时间地点划分、根据数据使用特征划分
        在这里插入图片描述
        -水平划分是将基本表划分为多张具有相同属性、结构完全相同的子表,子表包含元组时基本表中元组的子集
      • 垂直划分是将一张基本表划分为多张子表,每张子表必须包含基本表的主键。每张子表包含的属性时原基本表的子集。
    • 4)确定系统配置

    • 5)物理模式评估:对数据库设计结果从存取时间、存储空间、维护代价等方面进行评估,重点是时间空间效率。

本章内容常考题型主要是选择和填空,其中常考的内容有一个关系的范式判别以及函数依赖的判别,ER图的画法(必考),索引的分类区分,例如:
例1:设有关系模式R(A,B,C,D),存在函数依赖集:{A->B,C->D},则R最高可属于(A)
A:1NF B:2NF C: 3NF D:BCNF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值