# DB 恶补笔记 Part1
# 绪论
# 概述
4 个基本概念:数据 Data、数据库 DB、数据库管理系统 DBSM、数据库系统 DBS
数据:数据库中存储的基本对象,描述事物的符号记录。
数据的含义称为数据的语义,数据与其语义是不可分的。
数据库:是长期储存在计算机内、有组织的、可共享的大量数据的集合
数据库管理系统:用户应用与操作系统之间的一层数据管理软件
- 数据定义功能,DDL
- 数据组织、存储和管理
- 数据操纵功能,DML
- 数据库的事务管理和运行管理
- 数据库的建立和维护功能
数据库系统:在计算机系统中引入数据库后的系统构成,简称为数据库
- 数据库
- 数据库管理系统(及其应用开发工具)
- 应用程序
- 数据库管理员(DataBase Administrator,DBA)
数据库系统的特点:
- 数据结构化。数据用数据模型描述,无需应用程序定义
- 数据的共享性高,冗余度低且易扩充
- 数据独立性高:物理独立性、逻辑独立性
- 数据由数据库管理系统统一管理和控制:安全性(Security)、完整性(Integrity)、并发控制(Concurrency Control)、数据库恢复(Recovery)
# 数据模型
两类数据模型:
- 概念模型(信息模型):按用户的观点来对数据和信息建模,用于数据库设计
- 逻辑模型和物理模型:
- 逻辑模型:按计算机系统的观点对数据建模,用于 DBMS 实现。
- 主要包括网状模型、层次模型、关系模型、面向对象数据模型、对
象关系数据模型、半结构化数据模型等。
- 主要包括网状模型、层次模型、关系模型、面向对象数据模型、对
- 物理模型:对数据最底层的抽象,描述数据在系统内(磁盘上)的表示方式和存取方法
- 逻辑模型:按计算机系统的观点对数据建模,用于 DBMS 实现。
现实世界 -> 概念模型:数据库设计人员完成
概念模型 -> 逻辑模型:数据库设计人员完成,数据库设计工具协助完成
逻辑模型 -> 物理模型:由 DBMS 完成
# 概念模型
概念模型用于信息世界的建模,是现实世界到机器世界的一个中间层次,是数据库设计的有力工具,数据库设计人员和用户之间进行交流的语言
基本概念:
- 实体(Entity):客观存在并可相互区别的事物称为实体
- 属性(Attribute)
- 码(Key)
- 实体型(Entity Type):用实体名及其属性名集合来抽象和刻画同类实体称为实体型
- 实体集(Entity Set):同一类型实体的集合称为实体集
- 联系(Relationship)
- 实体内部的联系:各属性之间的联系
- 实体之间的联系:一对一(1:1)、一对多(1:n)、多对多(m:n)
概念模型的一种表示方法:实体 - 联系方法(Entity-Relationship Approach),E-R 图,E-R 方法
# 数据模型(逻辑模型)要素
- 数据结构 -- 描述系统的静态特性(层次结构 - 层次模型、网状结构 -- 网状模型、关系结构 — 关系模型)
- 数据操作 -- 描述系统的动态特性(增删改查)
- 完整性约束
# 关系模型
关系数据库系统采用关系模型作为数据的组织方式。
在用户观点下,关系模型中数据的逻辑结构是一张二维表。
关系术语 | 概念 |
---|---|
关系(Relation) | 一个关系对应通常说的一张表 |
元组(Tuple) | 表中的一行即为一个元组 |
属性(Attribute) | 表中的一列即为一个属性,给每一个属性起一个名称即属性名 |
主码(Key) | 也称码键。表中的某个属性组,它可以唯一确定一个元组 |
域(Domain) | 是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。 |
分量 | 元组中的一个属性值。 |
关系模式 | 对关系的描述。关系名(属性 1,属性 2,…,属性 n) |
数据操作是集合操作,操作对象和操作结果都是关系
关系的完整性约束条件:
- 实体完整性
- 参照完整性(^ 关系的两个不变性)
- 用户定义的完整性
# 数据库系统的结构
模式与实例:
- 模式(Schema)是对数据库逻辑结构和特征的描述。是型的描述,不涉及具体值。相对稳定的
- 实例(Instance) 是数据库某一时刻的状态 —— 模式的一个具体值。同一个模式可以有很多实例。实例随数据库中的数据的更新而变动
# 三级模式结构
模式(也称逻辑模式):数据库中全体数据的逻辑结构和特征的描述。所有用户的公共数据视图
一般,某个应用的数据库有一个模式
模式是数据库系统模式结构的中心,与数据的物理存储细节和硬件环境无关,与具体的应用程序、开发工具及高级程序设计语言无关
定义模式:
- 定义数据的逻辑结构:DDL
- 定义数据之间的联系
- 定义与数据有关的安全性、完整性要求
外模式(也称子模式或用户模式):局部数据的逻辑结构和特征的描述
一个外模式可以为 多个应用系统所使用,一个应用程序只能使用一个外模式
内模式(也称存储模式):是数据物理结构和存储方式的描述
记录的存储方式(顺序存储,堆存储)、索引的组织方式(B + 树,Bitmap,Hash)、是否压缩存储、……
一个数据库只有一个内模式
# 二级映像
外模式/模式映像
定义外模式与模式之间的对应关系,映像定义通常包含在各外模式的描述中。
当模式改变时,数据库管理员对外模式/模式,映像作相应改变,使外模式保持不变。—— 数据的逻辑独立性
模式/内模式映象
定义了数据全局逻辑结构与存储结构之间的对应关系,通常包含在模式描述中。
数据库中模式/内模式映象是唯一的。
当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变。—— 数据的物理独立性
# 数据库系统的组成
- 硬件平台及数据库
- 软件
- 数据库管理系统 DBMS
- 操作系统
- 高级语言及其编译系统
- 以数据库管理系统为核心的应用开发工具
- 为特定应用环境开发的数据库应用系统
- 人员
- 数据库管理员
- 系统分析员和数据库设计人员
- 应用程序员
- 最终用户
# 关系数据库
# 关系模型
# 关系数据结构
关系: 的子集叫作在域 上的关系,表示为
元组:关系中的每个元素(d1,d2,…,dn)叫作一个 n 元组
属性:关系中不同列称为属性(Attribute),每个属性有一个名字
码:
- 候选码(Candidate key):关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码
- 全码(All-key):关系模式的所有属性组是这个关系模式的候选码
- 主码(Primary key):若一个关系有多个候选码,则选定其中一个为主码
- 主属性(Prime attribute):候选码的诸属性称为主属性
- 不包含在任何侯选码中的属性称为非主属性(Non-Prime attribute)或非码属性(Non-key attribute)
基本关系的性质:
- 列是同质的(Homogeneous),即来自同一个属性
- 不同的列可出自同一个域
- 行列的顺序无所谓,行列的次序可以任意交换
- 任意两个元组的候选码不能相同
- 分量必须取原子值(不能有小表)
关系模式(Relation Schema)是型,关系是值。
关系模式:描述关系中元组的属性、域及其映像关系,完整性约束
R(U,D,DOM,F)
- R 关系名
- U 组成该关系的属性名集合
- D U 中属性所来自的域
- DOM 属性向域的映象集合
- F 属性间数据的依赖关系的集合
# 关系完整性约束
实体完整性(主属性非空)
参照完整性(外码的域)
用户定义的完整性