数据库三级

Posted 364.99°

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库三级相关的知识,希望对你有一定的参考价值。

3.数据库结构设计

选择题与设计题

3.1.数据库概念设计

3.1.1.概念设计的任务

主要解决数据需求:如何准确地理解数据需求,真实地吧应用领域重要处理的数据组织、定义描述清除,以支持数据库设计后续阶段的工作

数据库概念设计阶段目标

  1. 定义和描述应用领域涉及的数据范围
  2. 获取应用领域或问题域的信息模型
  3. 描述清除数据的属性特征
  4. 描述清楚数据之间的关系
  5. 定义和描述数据的约束
  6. 说明数据的安全性需求
  7. 支持用户的各种数据处理需求
  8. 保证信息模型方便地转换成数据库的逻辑结构(数据库模式),同时也便于用户理解

3.1.2.概念设计的依据和过程

依据:需求分析阶段的文档

包括:需求说明书、功能模型(数据流程图或IDEF0图),在需求分析阶段收集到的应用领域或问题域中的各类报表等

过程

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

3.1.3.数据建模方法

ER模型:面向数据存储需求建模,仅从存储秀描述数据的属性特征及数据之间的关系

实体或实例:指客观存在并可相互区分的事物(也称实体集实例或实例),如某个具体的人
实体集:表示一个现实的和抽象事物的集合,这些事物必须具有相同的属性或特征,如无产阶级
属性:描述一个实体集的性质和特征,如阶级的财产,社会地位
:实体集中能唯一标识每一个实例的属性或属性组,如人的身份证号
联系:现实世界中实物之间的关系,如人A是人B的爹,有三大类:一对一(1:1)一对多(1:n)多对多(m:n)

ER建模方法

基本元素:


IDEF1x建模方法:侧重分析、抽象和概括应用领域中的数据需求,被称为数据建模方法
IDEF1x建模元素:实体集、联系

实体集:

  1. 独立标识符实体集或独立实体集:一个实体机的每个实例都能被唯一的标识而不决定于它与其他实体集的联系
  2. 从属标识符实体集或从属实体集:实体集的一个实例的唯一依赖于该实体集与其他实体集的联系

IDEF1x中,每一个实体集定义有唯一的名字和编码,名字与编码之间用 / 写在矩形框的上方,编码为正整数

联系:实体集之间的一种连接或关系

分类:

  1. 标定型联系:子女实体集必须确认双亲实体集
  2. 非标定型联系:子女实体集都能唯一被确认,而不需要知道双亲实体集
  3. 分类联系:在不同的情况下,分为不同的类别
  4. 非确定联系:无法相互确定

3.2.数据库逻辑设计

3.2.1.概述

  1. 依据:信息模型和数据库概念设计说明书(用户确认数据需求的依据)
    1.1. 概念模型
    1.2. 数据处理要求
    1.3. 数据的约束及安全性要求
    1.4. DBMS的相关信息
  2. 任务:将数据库概念设计的结果(ER),转换为具体的数据库管理系统支持的数据模型
  3. 阶段目标:DBMS可处理的模式、数据库物理设计指南
  4. 面向机器世界的

3.2.2.逻辑设计步骤

  1. 将ER图转换成关系模式
    1.1. 表示ER模型中的联系
    1.2. 依次转换每个联系相关联的实体集及联系
  2. 命名确认:根据项目选定的数据库管理系统支持的命名规则,检查确认关系名与属性名是否符合同一命名规则
  3. 优化关系模式:应用规范化理论逐一检查每一个关系模式,是指满足3NF

3.2.3.关系模式转换

  1. 转换准则:

二元关系模式:

1.1:1 两个实体任选一个添加另一个实体的主键即可
2. 1:N 在关系N端添加另一端的主键
3. M:N 在联系实体上添加M端N端的主键,然后加上联系实体自身的属性

三元关系模式:

  1. 1:1:N:当转换为关系模型时,将N端添加另外两端的主键即可
  2. M:N:P:再联系实体上添加M端N端P端的主键,然后加上联系实体自身的属性
  1. 转换案例:

将学生实体和课程实体关系的E-R图转换为数据库关系模式

学生和课程之间是多对多的关系,需要转化,引入联系实体:成绩表
课程(课程代号,课程名称),主键:课程代号
学生(学号,姓名,年龄),主键:学号
成绩表(学号,课程代号,成绩),复合主键(学号,课程代号)

3.2.4.范式

范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式。

  1. 第一范式(1NF)

在任何一个关系数据库中,第一范式(1NF) 是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库

  1. 概念:指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性
  2. 如下图,研究生有两个值,不属于第一范式
  1. 第二范式(2NF)

在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)

  1. 概念:每个表必须有且仅有一个数据元素为主关键字,其他数据元素与主关键字一一对应(函数依赖关系),即表中其他数据元素都依赖于主关键字
  2. 规则:要求实体的属性完全依赖于主关键字,如果一个数据表的主键只有单一一个字段,它就符合2NF
  3. 2NF案例:其他属性都依赖于订单编号这一主键
  1. 第三范式(3NF)
  1. 概念:满足第三范式(3NF) 必须先满足第二范式(2NF)。简而言之,第三范式(3NF)表中所有数据元素不但要能唯一地被主键标识,且要求一个数据库表中不包含已在其它表中已包含的非主关键字信息,即相互独立

实体的转换:从ER图转换为关系模式时,一个实体就能转换成一个关系模式,实体的属性就是关系模式的属性,实体的键就是关系的主键
实体间联系的转换:实体间存在三中联系(1:1 1:N M:N),M:N可以转换为单独的模式1:N需要合并到实体中

3.3.数据库物理设计

3.3.1.概念

  1. 通过数据库概念设计和逻辑设计已得到规范化的关系模式(3NF),数据库物理设计的目的是将数据的逻辑描述转换为实现技术规范,其目标是设计数据存储方案,以便提供足够好的性能并确保数据库的完整性、安全性和可恢复性。
  2. 此阶段,将根据数据库中存储的数据量、用户对数据库的使用要求和使用方式,选择数据存储方案以加快数据检索速度
  3. 需要了解不同文件组织方式、索引技术及其使用方法

3.3.2.数据库的物理结构

  1. 数据库中的应用数据是以文件形式存储在外设存储介质(如磁盘)上,文件在逻辑上被组成记录的序列——每个DB文件可以看做是逻辑记录的集合
  2. 物理文件可以看做是由存放文件记录的一系列磁盘块组成,文件的逻辑记录与磁盘块间的映射关系是由操作系统或DBMS来管理的
  3. 从数据库物理结构角度需要解决的问题
    3.1. 文件的组织
    3.2. 文件的结构
    3.3. 文件的存取
    3.4. 索引技术

3.3.3.索引

  1. 索引技术

索引技术(Indexing)是一种快速数据访问技术,将一个文件的每个记录在某个或某些域上的取值与该记录的物理地址直接联系起来,提供一种根据记录域的取值快速访问文件记录的机制
索引技术的关键是建立记录域取值到记录的物理地址间的映射关系

  1. 索引技术分类

两大类:有序索引(Ordered Index)、散列索引(Hash)


  1. 散列索引:只适合点查询
    1.1. 散列技术,也称哈希(Hash)索引机制
    1.2. 利用一个散列函数(HashFunction)实现记录域取值到记录物理地址间的直接映射关系
    1.3. 记录域就是查找码,也称为散列函数的散列域或排序域

  1. 有序索引:数据文件和索引文件是有序索引技术中的两个个体,数据文件也被称为索引文件或主文件

    2.1. 有序索引作为基于索引文件的索引技术,需要考虑两个问题:
    ①如何组织索引文件中的索引技术
    ②如何从索引文件出发,访问数据文件中的数据记录

    2.2. 索引文件的建立方法:
    选定数据文件中的某个或某些记录作为查找码
    建立数据记录在查找码上的取值与该记录的物理地址间的映射关系,组成索引项
    ③索引文件根据某特定的查找码值的升/降序存储索引记录,并且组织为顺序文件

    一个数据文件可以有多个查找码和多个索引文件

    数据文件中存储了关系模式为R(A,B,S,…D)的关系表的元组数据

    2.3. 类别和特点

    ①聚集索引(Clustering Index)和非聚焦索引(Non-clustering Index)
          聚焦索引:数据文件中数据记录的排列顺序与索引文件中索引项的排列顺序相一致,一个表只能有一个聚集索引
          非聚焦索引:…不一致,一个表可以有多个非聚集索引

    ②稠密索引与稀疏索引
          稠密索引:数据文件中每个查找码值在索引文件中都对应一个索引记录
          稀疏索引:只是一部分查找码的值有对应的索引记录

    ③主索引与辅索引
          主索引:主码属性集上建立的索引
          辅索引:非主属性上建立的索引

    聚集、稠密、辅索引如图:


    非聚集、稠密、主索引如图:

    ④唯一索引
          确保索引列不包含重复的值

    ⑤单层索引和多层索引
          单层索引(线性索引):索引项根据键值在索引文件中顺序排列,每个索引项直接指向数据文件中的数据记录
          多层索引:可以建立多层树型索引结构来快速定位大数据量文件中的数据记录,如B树和B+树索引

    当数据文件很大时,可以对索引文件中的索引项本身再建立一级稀疏索引,组成二层索引结构,用于快速查找索引项

建立索引会加快查找效率,但会降低增、删、改效率

3.3.4.物理设计内容

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

数据库物理设计环节

  1. 数据库逻辑模式描述
  2. 文件组织与存取设计
  3. 数据分布设计
  4. 确定系统配置
  5. 物理模式评估
  1. 数据库逻辑模式描述

    1.1. 数据库逻辑设计产生了数据库的逻辑结构,其中有数据库的关系模式、关系模式上的完整性约束和面向具体应用的业务规则。这些内容都是独立于DBAS所采用的具体目标DBMS平台的。
    1.2. 数据库物理设计需要根据数据库逻辑结构信息设计目标DBMS平台可支持的关系表(这里称为基本表)的模式信息,这些模式信息代表了所要开发的具体目标数据库的结构。

设计内容:

  1. 面向目标数据库描述基本表和视图
  2. 采用目标DBMS所支持的建表语法,描述基本表及满足应用要求的完整性约束。设计基本表业务规则
  3. 利用目标DBMS提供的完整性控制机制设计基本表应遵守的面向应用的完整性约束
  1. 文件组织与存取设计

    2.1. 为了进行有效地数据库文件组织和存取路径设计,必须分析和理解数据库事务的数据访问特性

分析步骤:

  1. 使用事务-基本表交叉引用矩阵
  2. 估计各事务的执行频率
  3. 对每张基本表,汇总所有作用于该表上的各事务的操作频率信息

    事务-基本表交叉引用矩阵:

根据是无数据访问特性分析结果,可以将基本表设计成更为有效的文件组织和索引方式

数据库文件结构

  1. 堆文件:使用表中数据很少,且插入、删除、更改等操作非常频繁
  2. 顺序文件:支持基于查找码的顺序访问,也支持快速的二分查找,适合用户的查询条件定义在查找码上
  3. 聚集文件:适合某些频繁执行且需要进行多表连接操作的查询
  4. 索引文件:适合用户查询是基于散列域值的等值匹配,特别是访问顺序是随机,不适合基于散列域值的非精确查询与基于非散列域进行的查询
  5. 散列文件:适合定义在数据量基本表上,基于查找码的等值查询、范围查询、横糊查询和部分查询
  1. 涉及存储路径时索引的设计原则
    3.1. 设计索引时,必须权衡考虑索引的优点与索引的维护代价

基本表建立索引的原则

  1. 对于经常需要进行查询、连接、统计操作,且数据量大的基本表可考虑建立索引
  2. 而对于经常执行插人、删除、更新操作或小数据量的基本表应尽量避免建立索引
  3. 一 个基本表上除了可以建立一 个聚集索引外。还可以建立各个非聚索引
  4. 索引可以由用户根据需要随时创建或删除,以提高数据查询性能

基本表可以在一些属性上建立索引

1.表的主码    2.在WHERE查询子句中引用率较高的属性    3.参与连接操作的属性
4.在Ordere By子句、Group By子句中出现的属性    5.在某一范围内频繁搜索的属性
6.如果在WHERE子句中同时包含一个表中的多个属性    7.当一个属性有相对较多的不同值时可以使用索引
8.包含大量空值的属性建立索引是要仔细考虑

  1. 数据分布设计

    4.1. 不同类型数据的物理分布
        数据库系统中不仅有组织为基本表的应用数据,还有索引、8志数据库备份数据等其他类型数据。各种数据在系统中的作用不同,使用频率也不一样,根据实际使用情况存放在合适的物理介质上,以优化系统I/O性能。

    4.2. 应用数据的划分与分布
        为改善大数据量基本表的访问性能,将基本表划分为若干分区,各分区数据分别存储在不同位置的磁盘上,并采用不同物理组织方式。

    4.3. 派生属性数据分布
        基本表中的派生属性是指该属性的取值可根据表中其他属性的取值唯一确定。 对带有派生属性的基本表可以采用如下两种实现方式。

    4.4.关系模式去规范化
        在数据库物理设计阶段,可以根据实际需要对数据库中某些3NF、BCNF模式考虑是否可以降低其规范化程度,提高查询效率

不同类型数据的物理分布

  1. 数据库备份文件、日志文件备份数据用于故障恢复,使用频率低,而且数据量很大,可以存储在磁带
  2. 应用数据、索引和日志则应用数据、索引和日志则使用频繁,要求的响应时间短,必须放在支持存取的磁盘存储介质上

基本表划分的原则

  1. 根据数据库中的使用特征划分:可以根据数据使用的频家将基本表分为频繁使用分区和非频繁使用分区.分别存储在不同的磁盘上。对于频来使用分区中的数据可以考虑建立B+树等多层索引,而对非频繁使用分区中的数据可以不建或只建立单层素引
  2. 根据时间、地点划分:对于同一时间点生产的商品或者同一地点的商品归为同一个分区中
  3. 分布式数据库系统中数据划分:DDBS采用水平划分或垂直划分两种方法。水平划分将一张基本表划分为多张具有相同属性,结构完全相同的子表,子表包含的元组是基本表中元组的子集;重直划分是将一张基本表划分为多张子表,每张子表包含的属性是原基本表的子集

派生属性数据分布

  1. 将派生属性作为基本表中单独的一列(称为派生列):Age
  2. 派生属性不出现在基本表中→用year9current_time)-year(Birthdate)=age计算Age

关系模式去规范化

  1. 在设计基本表时,需要在模式规范化与查询效率之间折中权衡。

其他物理设计环节

  1. 确定系统配置:DBS和操作系统的存储分配参数(一般):数据库配置参数、磁盘块使用参数、内存缓冲区参数、时间片大小、装填印制、锁的数目等。
  2. 物理模式评估:完全依赖于所选用的DBMS

以上是关于数据库三级的主要内容,如果未能解决你的问题,请参考以下文章

https://计算机三级

javaweb--json--ajax--mysql实现省市区三级联动(附三级联动数据库)

三级数据库技术:习题笔记

浙江省三级数据库考试

Excel透视技巧-三级分类统计名单分类统计数据

三级联动怎么回显 javaweb