引言
数据库结构的基础是 数据模型,数据模型描述了数据、数据之间的联系以及数据的操作。
数据模型可以分为四类:
- 关系模型:用表的关系描述数据与数据的关系
- 实体 - 联系模型
- 半结构化数据模型(JSON,XML)
- 基于对象的数据模型
数据抽象层次:
- 物理层,描述数据实际上是怎样存储的
- 逻辑层,描述数据库存储什么数据及数据之间的关系
- 视图层,最高层的抽象,只描述数据库的某个部分
特定时间存储在数据库中的信息的集合被称为数据库的一个实例,数据库的总体设计称为数据库模式(schema)
按照不同的抽象层次划分,物理模式在物理层描述数据库设计,逻辑模式在逻辑层描述数据库设计,数据库在视图层也有几种模式,有时候称为子模式。
数据库系统提供数据定义语言(DDL)来定义数据库模式,数据操纵语言(DML)来定义数据库实例。
DDL定义了数据库模式的实现细节,对用户通常不可见,比如域约束,引用完整性,授权,创建表
DML对数据进行操作,比如查询,插入,删除,更新
过程化的DML要求用户指定需要什么数据以及如何获得这些数据,非过程化的(声明式的)DML只要求用户指定需要什么数据
三层体系结构:客户端 - 应用服务器 - 数据库系统
DBMS的定义:数据库管理系统由相互关联的数据集合 和 一组用于操作这些数据的应用程序组成。
物理数据独立性是指应用程序与数据库的物理存储结构(如磁盘上的数据文件存储方式)之间的解耦。在不影响上层应用程序和用户查询的前提下,数据库管理员可以自由修改物理存储方式。
DBMS的五个主要职责:
- 数据冗余与一致性
- 数据安全与权限控制
- 数据完整性维护
- 并发控制和事务管理
- 备份与恢复
数据库引入空值的原因:
- 未知或不适用,某些信息可能无法现在就获取,或者某些信息对于特定的记录可能不适用
- 数据不一定是完好的,可能缺失一部分
关系模型介绍
关系数据库由表的集合组成
关系指代表,元组指代行,关系实例指 一组 特定的行。
域:一个表元素的取值域domain。
数据库模式和数据库实例的区别:
- 模式:描述数据库的结构,是静态的,不变的(表头)
- 实例:特定时间存储在数据库中的信息(表体)
超码:一个或多个属性,组合在一起可以在一个关系中,唯一标识出一个元组。
候选码:最小超码(这里的最小的定义是,去掉里面的任何一个元素后,闭包不再是整个集合,而不是元素个数最少!!!)
主码:数据库设计者选择的一个候选码,作为表的唯一标识
外码:一个引用。\(r_1\) 关系的A属性 到 \(r_2\) 关系的B属性,则B是A的外码。即 \(r_1\) 中的属性 A 的取值必须是B中的某个取值。\(r_1\) 是引用关系,\(r_2\) 是被引用关系。
注意,外码约束要求被引用属性是那个表的主码。
重点
DBMS核心功能:数据定义,数据操纵、数据控制、事务管理、恢复与安全
数据库:有组织的数据集合。
DBMS:数据库管理系统由相互关联的数据集合 和 一组用于操作这些数据的应用程序组成。
数据独立性:逻辑独立性和物理独立性(逻辑、物理视图不改变应用程序)
三级结构:外部概念物理模式,对应用户视图-逻辑视图-物理视图。
关系,属性,元组分别是什么
关系模式,域,主键,候选键,外键是什么
选择,投影,连接,并/交/差,笛卡尔积,除运算对应的记号