# DB 恶补笔记 Part1

# 绪论

# 概述

4 个基本概念:数据 Data、数据库 DB、数据库管理系统 DBSM、数据库系统 DBS

数据:数据库中存储的基本对象,描述事物的符号记录。
数据的含义称为数据的语义,数据与其语义是不可分的。

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

数据库管理系统:用户应用与操作系统之间的一层数据管理软件

  • 数据定义功能,DDL
  • 数据组织、存储和管理
  • 数据操纵功能,DML
  • 数据库的事务管理和运行管理
  • 数据库的建立和维护功能

数据库系统:在计算机系统中引入数据库后的系统构成,简称为数据库

  • 数据库
  • 数据库管理系统(及其应用开发工具)
  • 应用程序
  • 数据库管理员(DataBase Administrator,DBA)

数据库系统的特点:

  • 数据结构化。数据用数据模型描述,无需应用程序定义
  • 数据的共享性高,冗余度低且易扩充
  • 数据独立性高:物理独立性、逻辑独立性
  • 数据由数据库管理系统统一管理和控制:安全性(Security)、完整性(Integrity)、并发控制(Concurrency Control)、数据库恢复(Recovery)

# 数据模型

两类数据模型:

  • 概念模型(信息模型):按用户的观点来对数据和信息建模,用于数据库设计
  • 逻辑模型和物理模型:
    • 逻辑模型:按计算机系统的观点对数据建模,用于 DBMS 实现
      • 主要包括网状模型、层次模型、关系模型、面向对象数据模型、对
        象关系数据模型、半结构化数据模型等。
    • 物理模型:对数据最底层的抽象,描述数据在系统内(磁盘上)的表示方式和存取方法

现实世界 -> 概念模型:数据库设计人员完成
概念模型 -> 逻辑模型:数据库设计人员完成,数据库设计工具协助完成
逻辑模型 -> 物理模型:由 DBMS 完成

# 概念模型

概念模型用于信息世界的建模,是现实世界到机器世界的一个中间层次,是数据库设计的有力工具,数据库设计人员和用户之间进行交流的语言

基本概念:

  • 实体(Entity):客观存在并可相互区别的事物称为实体
  • 属性(Attribute)
  • 码(Key)
  • 实体型(Entity Type):用实体名及其属性名集合来抽象和刻画同类实体称为实体型
  • 实体集(Entity Set):同一类型实体的集合称为实体集
  • 联系(Relationship)
    • 实体内部的联系:各属性之间的联系
    • 实体之间的联系:一对一(1:1)、一对多(1:n)、多对多(m:n)

概念模型的一种表示方法:实体 - 联系方法(Entity-Relationship Approach),E-R 图,E-R 方法

# 数据模型(逻辑模型)要素

  1. 数据结构 -- 描述系统的静态特性(层次结构 - 层次模型、网状结构 -- 网状模型、关系结构 — 关系模型)
  2. 数据操作 -- 描述系统的动态特性(增删改查)
  3. 完整性约束

# 关系模型

关系数据库系统采用关系模型作为数据的组织方式。
在用户观点下,关系模型中数据的逻辑结构是一张二维表。

关系术语概念
关系(Relation)一个关系对应通常说的一张表
元组(Tuple)表中的一行即为一个元组
属性(Attribute)表中的一列即为一个属性,给每一个属性起一个名称即属性名
主码(Key)也称码键。表中的某个属性组,它可以唯一确定一个元组
域(Domain)是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
分量元组中的一个属性值。
关系模式对关系的描述。关系名(属性 1,属性 2,…,属性 n)

数据操作是集合操作,操作对象和操作结果都是关系

关系的完整性约束条件:

  • 实体完整性
  • 参照完整性(^ 关系的两个不变性)
  • 用户定义的完整性

# 数据库系统的结构

模式与实例:

  • 模式(Schema)是对数据库逻辑结构和特征的描述。是型的描述,不涉及具体值。相对稳定的
  • 实例(Instance) 是数据库某一时刻的状态 —— 模式的一个具体值。同一个模式可以有很多实例。实例随数据库中的数据的更新而变动

# 三级模式结构

模式(也称逻辑模式):数据库中全体数据的逻辑结构和特征的描述。所有用户的公共数据视图
一般,某个应用的数据库有一个模式
模式是数据库系统模式结构的中心,与数据的物理存储细节和硬件环境无关,与具体的应用程序、开发工具及高级程序设计语言无关
定义模式:

  • 定义数据的逻辑结构:DDL
  • 定义数据之间的联系
  • 定义与数据有关的安全性、完整性要求

外模式(也称子模式或用户模式):局部数据的逻辑结构和特征的描述
一个外模式可以为 多个应用系统所使用,一个应用程序只能使用一个外模式

内模式(也称存储模式):是数据物理结构和存储方式的描述
记录的存储方式(顺序存储,堆存储)、索引的组织方式(B + 树,Bitmap,Hash)、是否压缩存储、……
一个数据库只有一个内模式

# 二级映像

外模式/模式映像
定义外模式与模式之间的对应关系,映像定义通常包含在各外模式的描述中。
当模式改变时,数据库管理员对外模式/模式,映像作相应改变,使外模式保持不变。—— 数据的逻辑独立性

模式/内模式映象
定义了数据全局逻辑结构与存储结构之间的对应关系,通常包含在模式描述中。
数据库中模式/内模式映象是唯一的。
当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变。—— 数据的物理独立性

# 数据库系统的组成

  1. 硬件平台及数据库
  2. 软件
    • 数据库管理系统 DBMS
    • 操作系统
    • 高级语言及其编译系统
    • 以数据库管理系统为核心的应用开发工具
    • 为特定应用环境开发的数据库应用系统
  3. 人员
    • 数据库管理员
    • 系统分析员和数据库设计人员
    • 应用程序员
    • 最终用户

# 关系数据库

# 关系模型

# 关系数据结构

关系D1×D2××DnD_1×D_2×…×D_n 的子集叫作在域D1D2DnD_1,D_2,…,D_n 上的关系,表示为RD1D2DnR(D_1,D_2,…,D_n)

元组:关系中的每个元素(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 属性间数据的依赖关系的集合

# 关系完整性约束

实体完整性(主属性非空)

参照完整性(外码的域)

用户定义的完整性

更新于 阅读次数