数据库系统
- 数据:是数据库中存储的基本对象,是描述事物的符号记录
- 数据的种类:文本,图形,图像,音频,视频,等
数据库:是长期存储在计算机内,有组织的,可共享的大量数据的集合
数据库的基本特征
- 数据按照一定的数据模型组织,描述和存储
- 可谓各种用户共享
- 冗余度较小
- 数据独立性较高
- 易扩展
数据库系统是一个采用了数据库技术,有组织的,动态的存储大量相关数据,方柏霓多用户访问的计算机系统, 组成:
- 数据库
- 硬件
- 软件
- 人员
数据库管理系统DBMS :
- 实现对共享数据有效的组织、管理和存取
- 包括数据定义、数据库操作、数据库运行管理、数据的存储管理、数据库的建立和维护等。
三级模式两级映像
- 内模式:管理如何存储物理数据,对应具体物理存储文件
- 模式:又称为概念模式,就是我们通常使用的基本表,根据应用,需求将物理数据划分为一张张表
- 外模式:对应数据库中的视图级别,将表进行一定的处理后再提供给用户使用。
两级映像
外模式-模式映像
模式-内模式映像
数据库设计
- 需求分析:信息要求、处理要求、系统要求
概念结构设计:E-R 图
- 属性冲突:同一个属性可能会存在于不同的ER图中
- 命名冲突:相同意义的属性 ,在不同的分ER图中有不同的命名
- 结构冲突:同一个实体在不同的er图中有不同的属性
- 逻辑结构设计:E-R图,转关系模式(表(针对关系型))
- 物理设计:表如何存储到硬件
- 数据库实施:建表,录数据巴拉巴拉
- 数据库运行和维护:运维
数据模型
四种基本模型
- 关系模型:是二维表的的形式表示的实体联系图
- 概念模型
- 网状模型
- 面向对象
数据模型的三要素
- 数据结构
- 数据操作
- 数据的约束条件
ER图来描述概念数据模型,
在ER模型中,使用椭圆来表示属性,长方形表示实体,菱形表示联系,联系的两端要填写联系类型
eg:
实体:客观存在并且可以相互区别的事物
弱实体:依赖于强实体存在
强实体:真实体
实体集
属性:
属性分类:简单属性,复合属性
域:属性的取值范围成为该属性的域
码(键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锁,直到事务结束才释放。
读锁可重复加,写锁全锁死
数据库安全
措施
- 用户标识和鉴定
- 存取控制
- 密码存储和传输
- 试图保护
- 审计:类似log的操作
故障关系
- 事务本身可预期的故障
- 事务本身不可预期的故障
- 系统故障
- 介质故障
数据库备份
- 静态转储:冷备份
- 动态转储:热备份
- 完全备份
- 差量备份
- 增量备份
分布式数据库
- 局部数据库位于不同的物理位置,使用一个全局的数据库管理系统统一管理
- 分片模式
- 水平分片:将表中的水平记录分别存放不同的地方
- 垂直分片:将表中的垂直列值,分别存放在不同的地方
- 分布透明性:
- 分片透明性
- 位置透明性
- 逻辑透明性
- 复制透明性
仓库技术
数据仓库是一个面向主题的、集成的、非易失的、且随时间变化额数据集合,用于支持管理决策
面向主题:按照一定的主题域进行组织
集成的:数据仓库中的数据在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的
相对稳定的: 一般不会删除和修改
反应历史变化
包含四种层次
- 数据源: 是数据仓库的基础,是整个数据的系统数据源泉
- 数据的存储与管理: 整个数据仓库的核心
- OLAP(练级分析处理)服务器: 数据分析
- 前端工具: 各种报表之类的东西。
商业智能
- 数据预处理
- 建立数据仓库
- 数据分析
- 数据展现
- 数据预处理:抽取、转换、加载
- 建仓
- 分析
- 展现
反规范化技术
规范化设计后,数据库设计者希望牺牲部分规范化来提高性能
- 采用反规范技术的益处:
- 降低链接操作的需求
- 降低外码和索引的数据
- 减少表的数目
- 提高查询效率
具体方法
- 增加冗余列
- 增加派生列
- 重新组表
- 水平分割表
- 垂直分割表
大数据
特点:
- 大量化
- 多样化
- 价值密度低
- 快速化
大数据和传统数据比较
比较难度 | 传统数据 | 大数据 |
---|---|---|
数据量 | GB TB | PB or more |
数据分析需求 | 现有数据分析检测 | 深度分析(关联分析,回归分析) |
硬件平台 | 高端服务器 | 集群平台 |
要处理大数据
高度可扩展
高性能
高容错
sql 语句
略
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。