文章目录
Chapter 1 数据库基本概念
1.1 基本概念
数据库的4个基本概念
- 数据(data):描述事物的符号记录称为数据
- 数据库(database):数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。
- 数据库管理系统(DBMS):DBMS是计算机的基础软件,主要功能为数据定义、数据操纵、数据库的事物管理和运行管理、数据库的建立和维护。
- 数据库系统(DBS):数据库系统是由数据库、数据管理系统(及其应用开发工具)、应用程序和数据库管理员(DBA)组成的存储、管理、处理和维护数据的系统。
数据管理技术发展和特点
数据管理三个阶段:人工管理->文件系统->数据库系统
文件系统特点——面向某一应用;共享性差、冗余度大;独立性差;记录内有结构、整体无结构;由应用程序自己控制;
数据库系统的特点——数据结构化;数据共享性高、冗余度低且易扩充;数据独立性高; 数据由数据库管理系统统一管理和控制;
DBS的层次结构
1.2 数据模型
数据模型分类
- 概念模型:也称信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计
- 逻辑模型:它是按计算机系统的观点对数据建模,主要用于DBMS的实现
- 物理模型:是对数据的最底层抽象,它描述在系统内部的表示方法和存取方法,是面向计算机系统的
1.2.1 概念数据模型
信息世界的基本属性
- 实体(entity)
- 属性(attribute)
- 码(key)
- 实体型(entity type)
- 实体集(entity set)
- 联系(relationship)
概念模型的一种表示方法:实体-联系方法(E-R方法 or E-R模型)
E-R图的组成——实体型、属性、联系
1.2.2 逻辑数据模型
逻辑数据模型三要素
- 数据结构:描述数据库的组成对象以及对象之间的联系
- 数据操作:对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则
- 数据的完整性约束:一组完整性规则
常用的逻辑数据模型
- 层次模型、网状模型
- 关系模型
- 面向对象数据模型、对象关系数据模型、半结构化数据模型
关系模型的基本概念
- 关系(relation):一张表
- 元组(tuple):表中的一行
- 属性(attribute):表中的一列
- 码(key):表中的某个属性组,可以唯一确定一个元组
- 域(domain):一组具有相同数据类型的值的集合
- 分量:元组中的一个属性值,关系的每一个分量必须是一个不可分的数据项
- 关系模式:对关系的描述,一般表示为关系名(属性1,属性2,属性3,…,属性n)
1.3 数据库系统的结构
数据库系统的体系结构采用三级模式结构并提供两级映像功能
1.3.1 三级模式结构
外模式(external schema)
外模式也称子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
一个数据库可以有多个外模式,而一个应用只能有一个外模式。
模式(schema)
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
一个数据库只有一个模式。
内模式(internal schema)
内模式也称存储模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
一个数据库只有一个内模式。
1.3.2 两级映像功能
为了实现三个抽象层次的联系和转换,DBS在三级模式之间提供了两层映像
外模式/模式映像
外模式和模式之间的对应关系(可多)。
当模式改变时,由DBA对各个外模式/模式映像作相应改变,可以使外模式保持不变。应用程序是依据外模式编写的,从而应用程序不必改变,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
模式/内模式映像
唯一
当数据库的存储结构改变时,由DBA对模式/内模式映像作出相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。
Chapter 2 关系数据库
按照逻辑数据模型的三要素,关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
2.1 关系数据结构
2.1.1 关系
详细定义书P39(如何从域和笛卡儿积推导到关系)
在用户看来,关系模型中数据的逻辑结构是一张二维表。表的每一行对应一个元组,每一列对应一个域。
看懂定义2.1 2.2 2.3 理解基本概念
超码
可以唯一标识一个元组的属性或属性组
如果k是超码,那么所有包含k的属性组都是超码
候选码(candidate key)
可以唯一标识一个元组的最小属性或最小属性组,称为候选码,也是最小超码。
候选码的诸属性称为主属性,不包含在任何候选码中的属性称为非主属性或非码属性。
如果关系模式的所有属性是这个关系的候选码,称为全码。
主码(primary key)
若一个关系中有多个候选码,则选定一个作为主码
总结,超码包括候选码,候选码包括主码
关系的三种类型
- 基本关系(基本表或基表)
- 查询表
- 视图表
基本关系的6条性质
- 列是同质的,同列的分量是同一类型数据,来自同一域
- 不同列可以出自同一域
- 列的顺序无所谓
- 行的顺序无所谓,但不允许相同的元组出现在同一关系里
- 任意两个元组的候选码不能取相同值
- 每一个分量都必须是不可分的数据项
2.1.2 关系模式
关系模式是对关系的描述,是关系的抽象。关系是关系模式在某一时间的状态和内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的。关系和关系模式是“值”和“型”的关系。
形式化表示—— R ( U , D , D O M , F ) R(U, D, DOM, F) R(U,D,DOM,F),R:关系名;U:属性名集合;D:域;DOM:属性向域的映像集合;F:属性间数据的依赖集合。
关系数据库
所有关系的集合构成一个关系数据库,关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。
2.2 关系操作
操作的对象和结果都是集合
两大部分
- 查询(选择、投影、连接、除、并、交、差)
- 更新(增加、修改、删除)
2.3 关系完整性约束
关系模型中的三类完整性约束
- 实体完整性(entity integrity)
- 参照完整性(referential integrity)
- 用户定义完整性(user-defined integrity)
实体完整性
主码取值唯一
主码中的属性即主属性不能取空值
参照完整性
F是关系R的一个或一组属性,但不是R的码,Ks是关系S的主码。如果F与Ks相对应,则称F是R的外码,称R为参照关系,S为被参照关系,R和S不一定是同一关系。
则对与R中每个元组在F上的取值必须:(要么为空,要么在Ks的值中选一个)
- 或者取空值(F的每个属性值均为空值)
- 或者等于S中某个元组的主码值
用户定义完整性
反映某一具体应用的关系数据库所指定约束条件
反映某一具体应用所涉及的数据必须满足的语义要求
违反完整性约束的处理
实体完整性、用户自定义完整性——拒绝执行
参照完整性——拒绝执行;接受此操作,同时执行一些附加操作,以保证数据库状态正确(外键删除,级联更新、删除);
2.4 关系代数
传统的集合运算
- 并
- 差
- 交
- 笛卡儿积
参与运算的关系具有相同的n个属性,相应属性取自同一域。
举例见书P49
专门的关系运算
- 选择
- 投影(取出列形成新关系,再去重)
- 连接(非等值连接、等值连接、自然连接、外连接)
- 除
- 等等
举例见书P53-P55
Chapter 3 关系数据库标准语言SQL
结构化查询语言SQL集数据查询、数据操纵、数据定义和数据控制功能于一体,集数据库定义语言(DDL)、数据库操纵语言(DML)、数据库控制语言(DCL)于一体。
DDL(create)
DML(select insert delete update)
DCL(授权、回收)
SQL功能 | 动词 |
---|---|
数据查询 | SELECT |
数据定义 | CREATE、DROP、ALTER |
数据操纵 | INSERT、UPDATE、DELETE |
数据控制 | GRANT、REVOKE |
SQL支持的三级模式结构
3.1 数据类型
数据类型 | 含义 |
---|---|
CHAR(n) CHARACTER(n) |
长度为n的定长字符串 |
VARCHAR(N) CHARACTERVARYING(n) |
最大长度为n的变长字符串 |
CLOB | 字符串大对象 |
BLOB | 二进制大对象 |
INTINTEGER | 长整数(4字节) |
SMALLINT | 短整数(2字节) |
BIGINT | 大整数(8字节) |
NUMERIC(p,d) | 定点数,由p位数字(不包括符号、小数点)组成,小数点后面有d位数字 |
DECIMAL(p,d) DEC(p,d) |
同NUMERIC |
REAL | 取决于机器精度的单精度浮点数 |
DOUBLE PRECISION |
取决于机器精度的双精度浮点数 |
FLOAT(n) | 可选精度的浮点数,精度至少为n位数字 |
BOOLEAN | 逻辑布尔量 |
DATE | 日期,格式为YYYY-MM-DD |
TIME | 时间,格式为HH:MM:SS |
TIMESTAMP | 时间戳类型 |
INTERVAL | 时间间隔类型 |
3.2 数据定义
定义模式
create scheme <模式名> authorization <用户名>
删除模式
drop scheme <模式名> <cascade|restrict>
定义基本表