第一章 绪论
数据库的四个基本概念
数据:数据库中存储的基本对象 Data
数据库:长期存储在计算机内、有组织、可共享的大量数据的集合 DataBase DB
数据库管理系统:位于用户和操作系统之间的一层数据库管理软件 DBMS
数据库系统:由数据库、数据库管理系统、应用程序和==数据库管理员(DBA)==组成的存储、管理、处理和维护数据的系统 DBS
数据库管理技术的产生
三个阶段:
数据的共享程度:
- 人工管理 无共享,冗余度极大
- 文件系统 共享性差,冗余度大
- 数据库系统 共享性高,冗余度小
数据库系统的特点
- 数据结构化
- 数据的共享性高、冗余度低且易扩充
- 数据独立性高
- 数据由数据库管理系统统一管理和控制
两类数据模型
- 概念模型
- 逻辑模型和物理模型
实体-联系方法
实体-联系方法 = E-R方法 = E-R图
数据模型的组成要素
- 数据结构
- 数据操作
- 数据的完整性约束条件
常用的数据模型
- 层次模型 即 树
- 网状模型 即 图
- 关系模型 即 表
关系模型的数据结构
关系:一个关系对应通常说的一张表(二维表)
关系名:表名
元组:表中的一行
属性:表中的一列
属性名:给一个属性起的一个名称
属性值:表中一列的值
码:可以唯一的确定一个元组,非空且唯一
域:一组具有相同数据类型的值的集合
分量:元组中的一个属性值
标明主键
学生(学号,姓名,年龄,性别,系别,年级)
关系模型的数据操纵和完整性约束
关系模型的数据操纵:
- 查询数据
- 插入数据
- 删除数据
- 更新数据
关系的完整性约束条件:
- 实体完整性
- 参照完整性
- 用户定义的完整性
数据库系统的三级模式结构和二级映像
三级模式:
- 内模式 -存储文件
- 模式 -基本表
- 外模式 -视图
二级映像:外模式 / 模式映像 、 模式 / 内模式映像
数据库系统的组成
- 硬件平台及数据库
- 软件
- 人员
第二章 关系数据库
候选码:能唯一标识一个元组,可以有多个或者一个
主码:多个候选码中的一个
主属性:候选码的诸属性
非主属性:候选码诸属性之外的
基本关系操作
- 查询操作
- 插入操作
- 删除操作
- 修改操作
传统的集合运算
- 并
- 交
- 差
- 笛卡尔积
专门的关系运算
-
选择 σ
- 表中的一行
-
投影 π
- 表中的一列,取消重复的元组
-
连接 ∞
- 自然连接
- 等值连接
- 非等值连接
第三章 关系数据库标准语言SQL
学生表:Student(Sno,Sname,Ssex,Sage,Sdept)
课程表:Course(Cno,Cname,Cpno,Ccredit)
学生选课表:SC(Sno,Cno,Grade)
第四章 数据库的安全性
数据库的安全性
保护数据库以防止不合法的使用所造成的数据泄露、更改和破坏
数据库的不安全因素
- 非授权用户对数据库的恶意存取和破坏
- 数据库中重要或敏感的数据被泄露
- 安全环境的脆弱性
数据库安全性控制
- 用户身份鉴别
- 静态口令鉴别
- 动态口令鉴别
- 生物特征鉴别
- 智能卡鉴别
- 多层存取控制------ 定义用户权限、合法权限检查
- 自主存取控制 DAC
- 强制存取控制 MAC
- 审计
- 视图
- 数据加密
敏感度标记等级
绝密 、机密、 可信、 公开 ------ TS 、 S 、 C 、 P
数据库的完整性
数据的正确性和相容性
实体完整性
主键非空且唯一
create table student(
Sno CHAR(9) PRIMARY KEY, -- 列级定义主键
Sname CHAR(20) NOT NULL
);
-- 或者
create table student(
Sno CHAR(9) , -- 列级定义
Sname CHAR(20) NOT NULL,
PRIMARY KEY(Sno) -- 表级定义主键
);
create table sc(
Sno CHAR(9) NOT NULL, -- 列级定义主键
Cno CHAR(4) NOT NULL,
PRIMARY KEY (Sno,Cno) -- 只能定义表级主键,Sno和Cno同时作为主键
)
参照完整性
外键:关系模式R中属性X并非R的码,但X是另一个关系模式的码,则X是R的外码
create table sc(
Sno CHAR(9) NOT NULL,
Cno CHAR(4) NOT NULL,
PRIMARY KEY (Sno,Cno) , -- Sno和Cno同时作为主键
FOREIGN KEY (Sno) REFERENCES student(Sno), -- 表级定义参照完整性
FOREIGN KEY (Cno) REFERENCES course(Cno) -- 表级定义参照完整性
)
用户定义的完整的完整性
NOT NULL / UNIQUE / CHECK -- 非空 唯一 检查
第六章 关系数据理论
关系模式:
R <U,F>
- U 是属性的集合
- F 是属性组U上的数据依赖的集合
关系模式存在的问题
- 数据冗余
- 更新异常
- 插入异常
- 删除异常
函数依赖
- 平凡的函数依赖
- 非平凡的函数依赖(一般都是)
- 部分依赖
- 完全依赖
范式
范式之间的关系:
5NF < 4NF < BCNF < 3NF < 2NF < 1NF
1NF
每一个分量必须是不可分的数据项,不能表中有表
2NF
消除非主属性对码的部分依赖
3NF
消除非主属性对码的传递依赖
BCNF
消除主属性对码的部分依赖和传递依赖
第七章 数据库设计
数据库设计的基本步骤
- 需求分析
- 概念结构设计
- 逻辑结构设计
- 物理结构设计
- 数据库实施
- 数据库运行和维护
数据字典
- 数据项
- 数据结构
- 数据流
- 数据存储
- 处理过程
概念结构设计
画 E - R图
- 实体型----矩形
- 属性-----椭圆
- 联系-----菱形
数据库编程
主语言 :非SQL
第九章 关系查询处理和查询优化
查询处理步骤
- 查询分析
- 查询检查
- 查询优化
- 查询执行
第十章 数据库恢复技术
事务的基本概念
用户定义的一个数据库操作的序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位
- COMMIT (提交)
- ROLLBACK(回滚)
事务的ACID特性
- 原子性
- 一致性
- 隔离性
- 持续性
故障的种类
- 事务内部的故障
- 系统故障
- 介质故障
- 计算机病毒
恢复的实现技术
建立冗余数据最常见的技术是:数据转储、登记日志文件
先写日志文件,在写数据库
第十一章 并发控制
- 丢失修改
- 不可重复的读
- 读“脏”数据
封锁
排他锁:又称写锁
共享锁:又称读锁
活锁和死锁
活锁:
死锁:
两段锁协议
- 第一阶段是获得封锁,也称为扩展阶段
用户定义的一个数据库操作的序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位
- COMMIT (提交)
- ROLLBACK(回滚)
事务的ACID特性
- 原子性
- 一致性
- 隔离性
- 持续性
故障的种类
- 事务内部的故障
- 系统故障
- 介质故障
- 计算机病毒
恢复的实现技术
建立冗余数据最常见的技术是:数据转储、登记日志文件
先写日志文件,在写数据库
第十一章 并发控制
- 丢失修改
- 不可重复的读
- 读“脏”数据
封锁
排他锁:又称写锁
共享锁:又称读锁
活锁和死锁
两段锁协议
- 第一阶段是获得封锁,也称为扩展阶段
- 第二阶段是释放封锁,也称为收缩阶段