您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
   
 
     
   
 订阅
  捐助
数据库系统设计与开发
 
作者:费费QAQ
197 次浏览     评价:  
2020-9-27
 
编辑推荐:
本文介绍了关系数据库系统约束(四类),以及RDBMS 的并发控制,数据库恢复,E-R数据模型与E-R图,逻辑设计,函数依赖和关系模式的规范化。
本文来自博客园,由火龙果软件Alice编辑、推荐。

一、关系数据库系统概述

数据:是对事物描述的符号记录,它描述事物中人们所感兴趣的特征,它能被计算机识别、存储和处理

数据管理:是对数据的分类、组织、编码、存储、查询和维护等活动,是数据处理的中心环节

数据管理的目标:

  • 减少数据的冗余度(数据的重复存储)
  • 提高数据的共享性(用户/语言/现在未来)
  • 提高数据的独立性(应用程序独立于数据结构变化
  • 数据管理的三个阶段:人工 -> 文件 -> 数据库(60年代末)

    数据库技术:数据管理的最新技术,研究数据库的结构、存储、管理和使用

    DBS的组成:

    1.数据库:以一定的组织形式(数据模型)存放在计算机存储设备上的相关数据的集合

    2.数据库管理系统:管理数据库的软件

  • 提供多种高级用户接口
  • 查询处理和优化
  • 数据的安全性控制
  • 数据的完整性控制
  • 并发控制
  • 数据库恢复
  • 数据目录(数据字典)管理
  • 3.用户或应用程序

  • 基于数据库的应用程序及用户
  • 使用简单的终端命令会查询语言对数据库进行存取操作,即以查询性应用为主的用户
  • 4.数据库管理员(DBA):进行数据库的规划、设计、协调、维护和管理的人员或集体

    数据库系统的生存周期

    1.数据库系统的规划

    2.数据库设计

    3.数据库的建立

    4.数据库的运行、管理和维护

    5.数据库的扩充和重构

    开发数据库系统的有关人员

    1.数据库管理员:进行数据库的规划、设计、协调、维护和管理

    2.系统分析员:负责应用系统的需求分析和规范说明,与DBA和用户一起确定DBS的硬件平台和软件设置,参与DBS设计

    3.程序设计员:负责设计和编制应用系统程序模块,并进行调试和安装

    4.用户:参与可行性研究与需求分析

    关系数据模型与关系模式

    数据模型 -> 用来描述数据的一组概念和定义

    三级数据模型

    1.概念数据模型:面向客观世界,与DBMS无关(E-R)

    2.逻辑数据模型:关系数据模型(面向用户和DBMS)

    3.物理数据模型:与DBMS、OS和硬件有关

    逻辑数据模型的三要素:

    1.数据结构 -> 规定如何把基本的数据项组织成较大的数据单位

    2.数据操作 -> 查询、更新(增、删、改);定义操作的含义、操作规则和实现操作的语言

    3.数据约束 -> 是一组完整性规则的集合,定义了给定数据模型中数据及其联系所具有的制约和依赖规则

    数据模式 -> 用数据模型对具体数据的描述

    关系数据模型

    1.关系数据库由关系组成(用二维表表示)

    2.关系由元组组成(二维表的行),元组无序

    3.元组由属性组成(二维表的列),属性无序

    4.属性的取值范围 -- >属性域(原子数据的有限集)

    5.数据间的关系用键(候选/主/主属性/外)隐含表示

    关系中属性的个数 --> 关系的目

    关系中元组的个数 --> 关系的基数

    关系名+属性名 --> 关系模式

    候选键:其属性或属性组的值能唯一决定其它所有属性的值,而它的任何真子集无此性质

    1.主属性 ------- 包含在任何一个候选键中的属性

    2.非主属性 ----- 不包含在任何一个候选集中的属性

    主键(Primary Key(PK)):当一个关系能有多个候选键时,可选定一个来标识元组

    外键(Foreign Key(FK)):(不是本关系的键)却引用了其它关系或本关系的键的属性或属性组

    关系数据模型中表内不同元组间的联系用外键隐含地表示

    关系数据模型中表间(实体间)的联系是用外键隐含地表示的

    二、约束(四类)

    1.域完整性 --> 属性域中的值/由语义决定可否为NULL

    2.实体完整性 --> 每个关系都有一个主键、值唯一、≠NULL

    3.引用完整性约束 --> 外键引用已有的主键值,或为NULL(非主属性作为主键)

    4.一般化完整性约束 --> 由用户定义的、和数据的具体内容有关的约束

    前三个称为隐含约束

    后一个为显示约束(可用触发器、断言、过程)

    属性为原子的 --> 固有约束

    数据库中完整性约束检查,由DBMS实现或由用户负责

    操作

    查询是更新的基础

    操作的对象及运算结果都是关系

    关系代数完备集(σ,Π,∪, —, × )

    σ:在关系中选出符号条件的元组(行)----> 水平分割(where)

    Π:选取关系中感兴趣的列,可重排列顺序 -----> 对关系垂直分割(select)

    ×: 如:R x S :目为 r+s,基数为 基数R x 基数S

    ?:只保留一个关系中的公共属性

    关系代数运算与SQL的QL的对应关系:

    QL 的完整句法:

    QL 的执行过程:

    三、RDBMS 概述

    1、层次结构:

    应用层:应用程序与DBMS之间的接口,包括各种DB应用程序

    语言翻译处理层:对数据库语言的各类语句进行语法分析、视图转换、授权检查、完整性检查、查询优化等

    数据存取层:将上层的集合操作转换化为单元组操作,完成数据记录的存取、存取路径维护、并发控制、事务管理和数据库恢复等任务,涉及到数据字典的读与写、日志文件的读与写、加/解锁

    数据存储层:负责文件的逻辑打开、关闭、读写页、读写缓冲等操作,并完成缓冲区管理、内外存交换和外存管理等任务

    操作系统

    DB

    2、DBMS的进程结构

    一个应用进程对应一个DBMS核心进程

    单进程多线程结构

    系统只创建一个DBMS进程

    在该进程中:有常驻的公共服务线程、用户线程

    各个线程能在逻辑上并行执行,共享DBMS的资源

    3、DBMS与DBS的结构

    分时系统环境下的集中式数据库系统结构

    网络环境下的客户/服务器结构(C/S)

    物理上分布、逻辑上集中的分布式数据库结构

    三层结构(B/S结构): Browser ---> web 服务器 ---> 数据库服务器

    4、RDBMS功能的实现技术

    一、必备的用户接口 --> SQL/非过程化数据库语言

    交互式SQL:不能编程,访问为主(DDL、QL、DML、DCL)

    嵌入式SQL:将SQL嵌入其它程序设计语言中,可处理数据

    二、数据目录(数据字典或系统目录)

    有关数据库中数据的定义和描述信息是 ---> 元数据

    元数据组成的若干表 --> 数据目录

    数据目录的内容:

    1.基表、视图的定义

    2.存取路径(索引、散列)

    3.用于查询优化的统计数据

    4.数据目录的定义和描述等

    数据目录作用、定义方法、使用范围:

    1.数据目录对DBMS的运行必不可少,DBMS频繁访问

    2.数据目录本身不能用SQL语句定义,由系统在初始化生成,由DBMS维护

    3.DBMS一般不允许用户对之更新,只允许受控查询

    4.数据目录中的基表的定义被删除,表中数据不能用

    5.数据目录未定义,任何SQL语句都无法执行

    三、查询处理与优化

    1.数据库的存储结构

    数据库的存储介质:多级

    记录的存储结构

    文件结构与存取路径:堆、散列、索引:动态(B+树)、静态(主索引,次索引)

    2.查询优化的途径(可综合运用)

    代数优化:改变基本操作的次序

    依赖于存取路径的优化:结合存取路径(顺序扫描、索引、簇集)的分析考虑各操作的执行策略及选择原则

    规则优化:仅根据启发式规则,选择执行的策略(先做选择、投影,后做连接操作等)

    代价估算优化

    四、并发控制

    1)事务的概念

    DBMS的最小执行单位,含有若干有序的操作

    遵守ACID准则:原子性、一致性、隔离性、持久性

    结束的方式:提交成功/失败 或 人为的故障

    事务的定义和划分:(a)没有显式定义,则由DBMS按缺省规定自动划分事务

    (b)用SQL语句显式控制一个事务的开始和终止

    并发的概念

    2)并发是不同用户(事务)同时访问同一数据的事件,是不同事务在时间上的交叉执行

    3)事务并发执行可能带来的问题

    不加控制 --> 三种冲突 -- > 三个问题 -- > 数据不一致

    4)事务管理的任务 --> 保证事务的正常执行

    满足ACID准则

    在系统故障时应满足 --> 数据库恢复

    在单事务执行时满足

    在多事务并发执行时满足 -- > 并发控制

    5)并发控制的正确性准则

    调度的冲突可串行化(目前DBMS普遍采用)

    采用锁机制:事务在操作前先对数据对象加锁

    加锁时必须遵守的规则 -- > 加锁协议(相容矩阵)

    几种有代表性的加锁协议:S锁(共享锁)、X锁(排它锁)、U锁(更新锁)

    S锁:多个事务可封锁一个共享页;任何事务都不能修改该页; 通常是该页被读取完毕,S锁立即被释放

    X锁:仅允许一个事务封锁此页;其他任何事务必须等到X锁被释放才能对该页进行访问;X锁一直到事务结束才能被释放

    U锁:用来预定要对此页施加X锁,它允许其他事务读,但不允许再施加U锁或X锁;当被读取的页将要被更新时,则升级为X锁;U锁一直到事务结束时才能被释放

    五、数据库恢复

    1.故障的概念

    起因:DBS 硬件、软件故障

    现象:出现差错

    后果:导致系统失效、数据丢失

    DBS 的措施:增强系统可靠性

    检查差错,将数据库恢复到某个一致状态

    2.3种恢复技术

    仅使用后备副本(脱机、增量转储、恢复用最近后备副本)

    使用后备副本和日志文件(运行记录)

    利用多个副本

    六、E-R数据模型与E-R图(概念设计)

    用E-R数据模型对现实世界抽象的结果用E-R图表示

    三个抽象概念:实体、属性、联系

    实体(矩形框):客观存在的且可以相互区分的事物

    实体集:具有相同性质的实体的集合

    联系(菱形框):实体集之间的相互关系(抽象表示)

    联系的元数:与一个联系有关的实体集的个数

    联系的类型:1:1、1:n、m:n

    属性(椭圆):实体或联系所具有的特征

    实体键(下画线):能够唯一标识实体集中某一实体的属性或属性组

    七、逻辑设计

    任务:

    1.将概念结构转换为某个具体的DBMS所支持的逻辑结构

    2.形成合理的全局逻辑结构(基表),并设计出外模式(视图)

    3.对逻辑结构进行适当的调整和优化,使之在功能、完整性约束、可扩充性上满足用户需求

    主要步骤:

    概念设计结果 -- > 初始关系模式(E-R图转换成关系模式)

    1.实体集

    实体集 -- > 关系模式

    实体属性 -- > 关系模式的属性 -- > 修改RDBMS不支持的类型

    实体键 -- > 关系模式的键

    2.联系

    m : n 的联系集 -- > 用联系集的属性和两个实体集的键单独构成一个关系、新关系的键由两个实体集的键组合 而成、每个实体键是一个外键

    1 :n 的联系集 -- > 联系集的属性归入 n 方关系模式中,并引用 1 方关系中的键,形成外键

    1 : 1 的联系集 -- > 联系集的属性归入两个关系模式的任一个之中,并引入另一个关系的键,形成外键

    多元联系集 -- > 联系集的属性与各关系模式的键构成新关系

    3.将具有相同实体键的关系模式合并为一个关系模式

    实例:

    基于 E-R 图做逻辑设计,写出关系模式(单下划线表示主键,波浪线表示外键(此处用斜体表示 ,别问,问就是不知道咋表示波浪线))

    两个实体对应两个模式,M : N联系对应一个模式

    读者(借书证号,姓名,单位,职称)

    图书(图书编号,分类号,书名,作者,出版单位,单价)

    借阅(借书证号,图书编号,借阅日期)

    八、函数依赖和关系模式的规范化

    函数依赖

    1.属性之间的约束关系 --> 数据依赖 --> 函数依赖

    --> 多值依赖

    -- > 连接依赖

    2.函数依赖 -- > 一个或一组属性的值可以决定其它属性的值,是最基本的数据依赖

    3.函数依赖的形式化定义 (X -> Y,表示 Y 函数依赖于 X)

    4.函数依赖成立的条件

    关系的任一可能指都满足(不仅是当前值)

    5.平凡函数依赖与非平凡函数依赖

    一个函数依赖 X -> Y 如果满足 Y ? X,则为非平凡函数依赖,否则称之为平凡函数依赖

    6.完全函数依赖与部分函数依赖

    若 Y 函数依赖于 X,但不依赖于 X 的任何子句 X',则称 Y 完全函数依赖于 X,否则称 Y 部分函数依赖于 X

    7.传递函数依赖

    若关系的三个属性子集 X、Y、Z 之间有:

    X>Y,YX,Y>Z

    则称 Z 传递函数依赖于 X

    8.逻辑蕴涵

    对一个关系模式存在的多个函数依赖,可以通过推理,从一组已知的函数依赖导出另一组函数依赖,两个函数依赖集之间的这种关系称为逻辑蕴涵

    9.闭包

    所有被一个已知函数依赖集 F 逻辑蕴涵的那些函数依赖的集合为 F 的闭包

    10.Armstrong 公理

    自反律

    扩展律

    传递律

    候选键

    求属性集闭包算法可用于推导候选键

    定义:

    在关系模式R(U,F)中,若 X ? U,Y ? X, 且满足 X -> U, Y?U

    则称 X 为 R 的候选键

    方法:

    1.若属性 A 仅出现在所有函数依赖的 右 部

    则它一定不包含在任何候选键中

    2.若属性 A 仅出现在所有函数依赖的 左 部

    则它一定包含在某个候选键中

    3.若属性 A 既出现在函数依赖的 右 部,又出现在 左 部,则它可能包含在候选键中

    4.在上述基础上求属性集闭包

    未出现函数依赖集中的属性一定是主属性

    关系模式的规范化

    1.规范化 -- 使关系模式满足某种条件

    2.范式NF(Normal Form) -- 关系模式满足的条件

    3.有多级范式,级别越高,条件越严格(共5级,1NF、2NF、3NF(BCNF) -- 模式设计、4NF、5NF -- 理论研究)

    第一范式(1NF)

    属性都是原子的关系模式满足第一范式

    可记为 R ∈ 1NF(通常自动满足)

    第二范式(2NF)

    如果关系模式 R ∈ 1NF,且它的任一非主属性都完全函数依赖于任一候选键,则称 R 满足第二范式

    记为 R ∈ 2NF

    第三范式(3NF)

    如果关系模式 R ∈ 2NF,且每一个非主属性不传递依赖于任一键

    -> 各非主属性既不部分依赖也不传递依赖于键,记为 R ∈ 3NF

    BCNF(Boyce-Codd范式)-- 改进的3NF

    如果关系模式的所有非平凡函数依赖的决定子都含有键,记为 R ∈ BCNF

    满足 BCNF 的关系可避免更新异常和数据冗余

    若 R ∈ BCNF,则 R ∈ 3NF

    4.关系模式的分解

    模式分解

    分解目的:使关系达到某级范式

    分解准则:无损、保持依赖

     

       
    197 次浏览     评价: 订阅 捐助
    相关文章

    我们该如何设计数据库
    数据库设计经验谈
    数据库设计过程
    数据库编程总结
     
    相关文档

    数据库性能调优技巧
    数据库性能调整
    数据库性能优化讲座
    数据库系统性能调优系列
    相关课程

    高性能数据库设计与优化
    高级数据库架构师
    数据仓库和数据挖掘技术
    Hadoop原理、部署与性能调优
    最新课程计划
     讲座 QT跨平台应用开发
     讲师:丁林松
     时间:2020年11月21日
     
     
    最新文章
    InfluxDB概念和基本操作
    InfluxDB TSM存储引擎之数据写入
    深度漫谈数据系统架构——Lambda architecture
    Lambda架构实践
    InfluxDB TSM存储引擎之数据读取
    最新课程
    Oracle数据库性能优化、架构设计和运行维护
    并发、大容量、高性能数据库设计与优化
    NoSQL数据库(原理、应用、最佳实践)
    企业级Hadoop大数据处理最佳实践
    Oracle数据库性能优化最佳实践
    更多...   
    成功案例
    某金融公司 Mysql集群与性能优化
    北京 并发、大容量、高性能数据库设计与优化
    知名某信息通信公司 NoSQL缓存数据库技术
    北京 oracle数据库SQL优化
    中国移动 IaaS云平台-主流数据库及存储技术
    更多...