数据库系统

  • 数据:是数据库中存储的基本对象,是描述事物的符号记录
  • 数据的种类:文本,图形,图像,音频,视频,等

数据库:是长期存储在计算机内,有组织的,可共享的大量数据的集合

数据库的基本特征

  • 数据按照一定的数据模型组织,描述和存储
  • 可谓各种用户共享
  • 冗余度较小
  • 数据独立性较高
  • 易扩展

数据库系统是一个采用了数据库技术,有组织的,动态的存储大量相关数据,方柏霓多用户访问的计算机系统, 组成:

  1. 数据库
  2. 硬件
  3. 软件
  4. 人员

数据库管理系统DBMS :

  1. 实现对共享数据有效的组织、管理和存取
  2. 包括数据定义、数据库操作、数据库运行管理、数据的存储管理、数据库的建立和维护等。

三级模式两级映像

  • 内模式:管理如何存储物理数据,对应具体物理存储文件
  • 模式:又称为概念模式,就是我们通常使用的基本表,根据应用,需求将物理数据划分为一张张表
  • 外模式:对应数据库中的视图级别,将表进行一定的处理后再提供给用户使用。

两级映像
外模式-模式映像
模式-内模式映像

数据库设计

  1. 需求分析:信息要求、处理要求、系统要求
  2. 概念结构设计:E-R 图

    1. 属性冲突:同一个属性可能会存在于不同的ER图中
    2. 命名冲突:相同意义的属性 ,在不同的分ER图中有不同的命名
    3. 结构冲突:同一个实体在不同的er图中有不同的属性
  3. 逻辑结构设计:E-R图,转关系模式(表(针对关系型))
  4. 物理设计:表如何存储到硬件
  5. 数据库实施:建表,录数据巴拉巴拉
  6. 数据库运行和维护:运维

image.png

数据模型

四种基本模型

  • 关系模型:是二维表的的形式表示的实体联系图
  • 概念模型
  • 网状模型
  • 面向对象

数据模型的三要素

  1. 数据结构
  2. 数据操作
  3. 数据的约束条件

ER图来描述概念数据模型,
在ER模型中,使用椭圆来表示属性,长方形表示实体,菱形表示联系,联系的两端要填写联系类型
eg:
image.png

实体:客观存在并且可以相互区别的事物
弱实体:依赖于强实体存在
强实体:真实体
实体集

属性:

属性分类:简单属性,复合属性

域:属性的取值范围成为该属性的域
码(键key):唯一标识实体的属性集

关系模型中数据的逻辑结构是一个二维表,由行列组成。

ER模型转换为关系模式:每个实体都对应一个关系模式;联系分为三种:

一对一:联系可以放到任意的两端实体中,作为一个属性,也可以转换为一个单独的关系模式
一对多:联系可以单独作为一个关系模式,也可以在N端中加入1端实体的主键
多对多:联系必须作为一个单独的关系模式,其主键只M和N端的联合主键

关系代数

并:结果是两张表中的所有记录数合并,相同记录只显示一次
交:结果是两张表中相同的记录
差:s1-s2 结果是两张表中 s1中有,而s2中没有的那些记录。

笛卡尔积
s1Xs2 产生的结果包括s1和s2 所有的属性列,并且s1中的每条记录依次和s2中所有记录组合成一条记录,最终属性列为s1+s2 属性列,记录数为s1Xs2记录数

投影:实际是按照条件选择某关系模式中的某列,列也可以用数字表示
选择:实际是按照条件选择某关系中的某条记录

自然链接

自然链接的结果显示全部属性列, 但是相同的属性列只显示一次, 显示两个关系模式中属性相同且值相同的记录。

函数依赖

给定一个x,能确定一个y,就成为x确定y,

函数依赖:

  • 部分函数依赖: a可以确定c,(a,b)也可以确定c,(a,b) 中的一部分可以确定c ,称为部分函数依赖
  • 传递函数依赖 : a,b不等价, a可以确定b, b可以确定c ,则a 可以确定c

函数依赖公理系统

  • 自反律
  • 增广律
  • 传递律
  • 合并规则
  • 伪传递律
  • 分解规则

键与约束

超键: 能唯一标识此表属性的组合
候选键: 超键中去掉荣誉的属性,剩下的就是候选键
主键:选一个候选键可以作为主键
外键:其他表中的主键
主属性:候选键内的属性为主属性,其他属性为非主属性

  • 实体完整性约束:即主键约束, 主键值不能为空,也不能重复
  • 参照完整性约束:即外键约束,外键必须是其他表中已经存在的主键的值,或者为空
  • 用户自定义的完整性约束:自定义表达式约束,如设定年龄属性必须在0-100 等。

范式

  • 第一范式
    关系中的每一个分量必须是一个不可分的数据项
  • 第二范式
    如果关系R属于1NF,且每一个非主属性完全函数依赖与任何一个候选码,则R属于2NF
    部分函数依赖只存在多属性,单属性必然是2NF
    第一范式不满足第二范式,可以通过分解表格实现2NF满足
  • 第三范式
    关系R属于2NF,且不存在传递依赖,则属于3NF
  • bc范式
    bc范式是指 在第三范式的基础上,进一步消除主属性对码的部分函数依赖和传递依赖
    在每一种情况下,每一个依赖的左边决定因素都必然包含候选键。

候选关键字求法:根据依赖集,找出从未在右边出现过的属性,必然是候选键之一,以该属性为基础,根据依赖集依次扩展,看能否便利所有属性,将无法遍历的加入到候选集中

模式分解

范式之间的转换一般是通过拆分属性,即模式分解,将具有部分函数依赖和传递依赖的属性分离出来,

保持函数依赖分解

对于关系模式R,有依赖集F,若对R进行分解,分解出来的多个关系模式,保持原来的函数依赖集不变,则保持函数依赖的分解。

  • 保持函数依赖的判断
  • 如果F上的每一个函数依赖都在其分解后的某一个关系上成立,则这个分解时保持依赖的
  • 如果上述判断失败,并不能断言分解不是保持依赖的,还要使用下面的通用方法来做进一步判断,该方法的表述如下:
    对F上的每一个a->b 使用下面的过程

算法挺复杂,可不用记,灵活理解即可

result:=a
while(result changed) 
do
     for each
         parsed Ri
         t = (result 交 Ri) + 交 Ri
         result= result 并 t 
    
done

无损分解

分解后的关系模式能够还原出原关系模式,就是无损分解,不能还原就是有损

  • 当分解为两个关系模式,可以通过一下定理判断是否为无损分解
    定理: 如果R的分解为p= {R1, R2} , F 为R所满足的函数依赖集合,分解p具有无损连接性的充分必要条件时 R1交R2 -> (R2 - R1)

并发控制

  • 事务:由一系列操作组成,这些操作要么全做,要么全不做,拥有四种特性
  • 原子性
  • 一致性
  • 隔离性
  • 持续性
  • 事务时并发控制的前提条件,并发控制就是控制不同的事物并发执行,提高系统效率。
  • 问题:说白了就是多线程并发导致的数据竞争问题。
  • 丢失更新
  • 不可重复读
  • 读脏数据

封锁协议

  • x锁,排他锁(写锁)
  • s锁,共享锁(读锁)
  • 二级封锁协议:在一级封锁协议的基础上加上事务T在读数据R之前必须先对其加s锁,读完之后释放S锁
  • 三级封锁协议: 一级封锁协议加上事务T在读数据之前先对其加S锁,直到事务结束才释放。
    读锁可重复加,写锁全锁死

数据库安全

措施

  1. 用户标识和鉴定
  2. 存取控制
  3. 密码存储和传输
  4. 试图保护
  5. 审计:类似log的操作

故障关系

  1. 事务本身可预期的故障
  2. 事务本身不可预期的故障
  3. 系统故障
  4. 介质故障

数据库备份

  • 静态转储:冷备份
  • 动态转储:热备份
  • 完全备份
  • 差量备份
  • 增量备份

分布式数据库

  • 局部数据库位于不同的物理位置,使用一个全局的数据库管理系统统一管理
  • 分片模式
  • 水平分片:将表中的水平记录分别存放不同的地方
  • 垂直分片:将表中的垂直列值,分别存放在不同的地方
  • 分布透明性:
  • 分片透明性
  • 位置透明性
  • 逻辑透明性
  • 复制透明性

仓库技术

数据仓库是一个面向主题的、集成的、非易失的、且随时间变化额数据集合,用于支持管理决策

面向主题:按照一定的主题域进行组织
集成的:数据仓库中的数据在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的
相对稳定的: 一般不会删除和修改
反应历史变化

包含四种层次

  1. 数据源: 是数据仓库的基础,是整个数据的系统数据源泉
  2. 数据的存储与管理: 整个数据仓库的核心
  3. OLAP(练级分析处理)服务器: 数据分析
  4. 前端工具: 各种报表之类的东西。

商业智能

  • 数据预处理
  • 建立数据仓库
  • 数据分析
  • 数据展现
  1. 数据预处理:抽取、转换、加载
  2. 建仓
  3. 分析
  4. 展现

反规范化技术

规范化设计后,数据库设计者希望牺牲部分规范化来提高性能

  • 采用反规范技术的益处:
  • 降低链接操作的需求
  • 降低外码和索引的数据
  • 减少表的数目
  • 提高查询效率

具体方法

  1. 增加冗余列
  2. 增加派生列
  3. 重新组表
  4. 水平分割表
  5. 垂直分割表

大数据

特点:

  • 大量化
  • 多样化
  • 价值密度低
  • 快速化
    大数据和传统数据比较
比较难度传统数据大数据
数据量GB TBPB or more
数据分析需求现有数据分析检测深度分析(关联分析,回归分析)
硬件平台高端服务器集群平台

要处理大数据
高度可扩展
高性能
高容错

sql 语句


bugs_maker
56 声望1 粉丝