数据库的基本概念
数据库体系结构
集中式数据库系统
- 数据是集中的
- 数据管理是集中的
C/S结构(c客户端,s服务器)(B/S,B:浏览器)
- 客户端负责数据表示服务
- 服务器主要负责数据库服务
- 数据库系统主要分为前端和后端
- ODBC,JDBC
分布式数据库
- 物理上分布、逻辑上集中
- 物理上分布、逻辑上分布
- 特点
- 透明性
并行数据库(没考到,了解有以下两种即可)
- 共享内存式
- 无共享式
分布式数据库特点:
- 数据独立性。除了数据的逻辑独立性与物理独立性外,还有数据分布独立性(分布透明性)
- 集中与自治共享结合的控制结构。各局部的DBMS可以独立地管理局部数据库,具有自治的功能。同时,系统有设有集中控制机制,协调各局部DBMS的工作,执行全局应用。
- 适当增加数据冗余度。在不同的场地存储同意数据的多个副本,可以提高系统的可靠性与可用性,同时也能提高系统性能。
(提高系统的可用性,即当系统中某个节点发生故障时,因为数据又其他副本在非故障场地上,对其他所有场地来说,数据仍然是可用的,从而保证数据的完备性。)
- 全局的一致性、可串行性和可恢复性。
分布式数据库透明性:
三级模式结构
外模式--视图,模式--基本表,内模式--存储文件
逻辑独立性:逻外概
物理独立性:物理内概
数据仓库
数据仓库特点:
- 面向主题:数据按主题组织
- 集成的:消除了源数据的不一致性,提供整个企业的一致性全局信息。
- 相对稳定的(非易失的):主要进行查询操作,只有少量的修改和删除操作(或是不删除)
- 反映历史变化(随着时间变化):记录了企业从过去某一时刻到当前各个阶段的信息,可对发展历程和未来趋势做定量分析和预测。
阶段1:数据预处理(ETL):抽取,清理,装载,刷新
阶段2:数据仓库存储:数据仓库-->数据集市
阶段3:数据分析:查询-->报表-->分析-->数据挖掘
阶段4:数据展现
OLAP:联机分析
OLTP:联机事务
数据库设计过程
需求分析 -->概念结构设计 -->逻辑结构设计 --> 物理设计
ER模型:实体联系图
物理设计:聚簇索引
概念设计阶段:
概念设计过程
E-R模型:
需求分析--抽象数据--设计局部ER模型--合并局部模型消除冲突--重构优化消除冗余--逻辑设计
E-R图
实体:实体是现实世界可以区别于其他对象的事件或事物(实体集--实体的集合)
属性:属性是实体某方面的特性
联系:实体的联系分为实体内部的联系和实体与实体间的联系。
属性:
- 简单属性:原子的,不可再分的。
- 复合属性:可以细分为更小的部分(即划分为别的属性)
单值属性和多值属性:
定义的属性对于一个特定的实体都只有单独的一个值,称为单值属性;
在某些特定情况下,一个属性可能对应一组值,称为多值属性。
NULL属性:表示无意义或不知道。
派生属性:可以从其他属性得来(例:年龄可以由身份证得来)
联系:
两个不同实体集之间联系。
一对一、一对多、多对多
补充的E-R模型:
逻辑结构设计
关系模式相关概念
数据模型:层次模型、网状模型、关系模型(二维表的模式)、面向对象模型
数据模型三要素: 数据结构、数据操作、数据的约束条件
关系模型相关概念(考的少):
目或度:关系模型中属性的个数。
候选码(候选键):(候选键可以有多个)
候选键--->唯一标识元组,且无冗余(属性的集合,可以有一个,可以有多个,可以是单属性,也可以是多属性)
最后会从候选键任选一个作为主键
主属性与非主属性: 组成候选码的属性为主属性,其他的为非主属性
外码(外键)
全码(ALL-key):关系模型的所有属性组是这个关系的候选码。
关系的3种类型:
基本关系、查询表、视图表
完整性约束:
- 实体完整性约束(主键:唯一,非空)
- 参照完整性约束(外键:要么是其他属性的主键,要么就是空)
- 用户自定义完整性约束
- 触发器:(可以完成一些复杂的完整性约束的设定,可以监听元组或者属性的变化,随之变化)
E-R图转关系模式
逻辑结构设计E-R模型转关系模式
- 一个实体型必须转换为一个关系模式
- 联系转关系模型:一对一、一对多、多对多
- 一对一联系的转换有两种方式
- 独立的关系模式:并入两端主键及联系自身属性。(主键:任意一端主键)
- 归并(任意一端):并入另一端主键及联系自身属性(主键:保持不变)
- 一对多联系的转换有两种方式
- 独立的关系模式:并入两端主键及联系自身属性(主键:多端主键)
- 归并(多端):并入另一端主键及联系自身属性(主键:保持不变)(归并到多的一端)
- 多对多联系的转换有一种方式
- 独立的关系模式:并入两端主键及联系自身属性(主键:两端主键的组合键)
一对一:左为独立,右为两种不同的归并模式
一对多:
![](https://i-blog.csdnimg.cn/blog_migrate/9ba928a49a1a6ead54cd9c114c1b0ffb.png)
关系代数(考的比较频繁):
垂直:属性列(目或度)
水平:元组行(记录/实例)
交、并、差:
笛卡尔积:
属性列数:二者之和
元组行数:二者乘积
投影:垂直方向
选择:水平方向
选择一般不改变表格结构,笛卡尔积和投影会改变表格结构
自然连接(优先选择):
规范化理论(基本每次必考2-4分,必须掌握):
规范化理论基本概念:
函数依赖:部分函数依赖、传递函数依赖
规范化理论---Amstrong公理体系
a-->b:a可以决定b
候选键(重要!!!)
入度:箭尾 出度:箭头
候选关键字:入度为0
主属性与非主属性:
定义:组成候选码的属性就是主属性,其他的就是非主属性
冗余函数判断最直接的方式就是 传递函数依赖
范式判断:
规范化理论:数据冗余、修改异常、插入异常、删除异常
第一范式(1NF):在关系模式R中,当且仅当所有域只包含原子值,即每个属性都是不可再分的数据项,则称关系模式R是第一范式。
第二范式(2NF):当且仅当关系模式R是第一方式(1NF),且每一个非主属性完全依赖候选键(没有不完全依赖)时,则称关系模式R是第二范式。
做第二范式判断的第一步:找候选键 (入度为0)
第二步:找非主属性(除了候选键的属性)
第三步:看非主属性是否依赖于候选键;即候选键能否决定(推出)非主属性
若能推出,不满足第二范式。
第三范式(3NF): 当且仅当关系模式R是第二范式(2NF),且R中没有非主属性传递依赖于候选键时,则称关系模式R是第三范式。
BC范式(BCNF):设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当F中的每个依赖的决定因素(箭头左边)必定包含R的某个候选码。
快速判断:没有非主属性,至少满足3NF。
总结:
模式分解:
保持函数依赖分解
无损分解:
有损:不能还原,
无损:可以还原。
无损连接分解:指将一个关系模式分解成若干个关系模式后,通过自然连接(将所有字段名全部加在一起,随之的值也连接到一起)等运算仍能还原到原来的关系模式。
SQL语言:
普通查询
数据查询:SELECT
数据定义:CREATE、DROP(删除)、ALTER(修改表)
数据操纵:INSERT、UPDATE、DELETE(删除)
数据控制:Grant(授权)、revork(收回)
select from
自然连接用 AND
分组查询
group by ----having
权限控制
cascade:级联收回
grant to
revoke from
并发控制
事务的特性:
事务(ACID):
- 原子性(atomicity):事物是原子性,要么做,要么不做。包含:(begin(开始)、end(结束)、commit(成功提交)、rollback(回滚(事物全部回滚,表示事物没有开始过一样))
- 一致性(Consistency):事务执行的结构必须保证数据库从一个一致性状态变到另一个一致性状态(老板发工资:老板少100,我多100)。
- 隔离性(Isolation):事务相互隔离。当多个事务并发执行时,任一事务的更新操作直到成功提交的整个过程,对其他事物都是不可见的(老板也给b发100块这个过程,我不可见,我不知道)。
- 持久性(Durability):一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也永久有效
commit:先写日志再写数据。
并发问题:
并发产生的问题 -->丢失更新、不可重复读问题、读“脏”数据
丢失更新:两个或以上的事务对同一个数据进行修改,前面的修改会被后面的修改覆盖掉
不可重复读:验算前:其他事务对数据进行修改。导致验算错误
读“脏”数据:读到了无效的中间数据,无效:(后面进行了回滚)
封锁协议: