第1章 绪论
数据、数据库、数据库管理系统、数据库系统的概念:
数据(data):数据库中存储的基本对象
数据库(DataBase,DB):计算机上按一定格式存放数据的“仓库”,是长期存储在计算机内、有组织、可共享的大量数据的集合
数据库管理系统(DataBase Management System,DBMS):位于用户与操作系统之间的一层数据管理软件
主要功能:
- 提供数据定义语言(Data Definition Language,DDL)
- 数据的组织、存储和管理
- 提供数据操纵语言(Data Manipulation Language,DML)
- 数据库的事务管理和运行管理
- 数据库的建立和维护
- 其他功能
数据库系统(DataBase System,DBS):由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DataBase Administrator,DBA)组成的存储、管理、处理和维护数据的系统
文件系统与数据库系统的区别:
数据库系统的特点:
- 数据结构化
- 数据的共享性高、冗余度低且易扩充
- 数据独立性高
- 数据由DBMS统一管理和控制
数据库管理系统的主要功能:
- 数据的安全性(security)保护
- 数据的完整性(integrity)检查
- 并发(concurrency)控制
- 数据库恢复(recovery)
数据模型的概念及三个要素:
数据模型(data model)是对现实世界数据特征的抽象
根据应用的不同目的,分为
- 概念模型,主要用于数据库设计
- 逻辑模型和物理模型,逻辑模型主要包括:层次模型、网状模型、关系模型……
按计算机系统的观点对数据建模,主要用于DBMS的实现
三要素(记住):
- 数据结构
- 数据操作
- 数据的完整性约束条件
关系模型的概念及表达(画图):
- 关系(relation):一个关系对应通常说的一张表
- 元组(tuple):表中的一行
- 属性(attribute):表中的一列
- 码(key):表中的某个属性组,它可以唯一确定一个元组
- 域(domain):属性的取值范围
- 分量:元组中的一个属性值
- 关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,…,属性n)
数据库系统三级模式结构(记住):
- 模式(schema):也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
- 外模式(external schema):也称子模式或用户模式,是数据库用户的数据视图,保证了数据库的安全性。一个数据库可以有多个外模式,同一个外模式可以为多个应用系统所使用,但一个应用系统只能使用一个外模式。
- 内模式(internal schema):也称存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
数据与程序的物理独立性,数据与程序的逻辑独立性:
数据库系统的三级模式是数据的三个抽象级别,它把数据的具体组织留给DBMS管理。为了能够在系统内部实现这三个抽象层次的联系和转换,DBMS在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。
这两层映像保证了DBS中的数据能够具有较高的逻辑独立性和物理独立性。
○外模式/模式映像:当模式改变时,由DBA对各个外模式/模式的映像作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性。
○模式/内模式映像:数据库中模式,内模式都只有一个,所以模式/内模式映像是唯一的。当数据库的存储结构发生改变时,由DBA对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性。
数据库系统的组成:
- 硬件平台及数据库
- 软件
- 人员(DBA,系统分析员和数据库设计人员,应用程序员,用户)
第2章 关系数据库
关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成:
关系数据结构
关系操作集合:查询(query)操作和插入(insert)、删除(delete)、修改(update)操作
选择(select)、投影(project)、连接(join)、除(divide)、并(union)、差(except)、交(intersection)、笛卡尔积
关系完整性约束:实体完整性(主属性的值非空且不重复)、参照完整性(只能引用已存在的值)和用户定义的完整性
关系代数的表达式,理解书上例题(不包括关系演算):
P52-57
备注:本文页码均参考王珊《数据库系统概论 》(第5版)
第3章 关系数据库标准语言SQL
SQL 语言的特点:
- 综合统一:集数据查询(DQ)、数据操纵(DM)、数据定义(DD)和数据控制(DC)功能于一体。
- 高度非过程化:减轻了用户负担,且有利于提高数据独立性。
- 面向集合的操作方式:不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
- 以同一种语法结构提供多种使用方式:SQL既是独立的语言,又是嵌入式语言。这种以统一的语法结构提供多种不同使用方式的做法,提供了极大的灵活性与方便性。
- 语言简洁,易学易用
SQL功能 | 动词 |
数据查询 | SELECT |
数据定义 | CREATE,DROP,ALTER |
数据操纵 | INSERT,UPDATE,DELETE |
数据控制 | GRANT,REVOKE |
SQL 语句的使用:
定义P82 索引P88 查询P90 更新P115 视图P121
第4章 数据库安全性
数据库的安全性:是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏
SQL的GRANT 和REVOKE语句,理解书上例题:
GRANT:授权,P141 REVOKE:回收,P143
第5章 数据库完整性
数据库的完整性:是指数据的正确性和相容性。
SQL中实体完整性,参照完整性及用户定义,触发器定义
实体完整性:PRIMARY KEY,分列级约束和表级约束两类。P158
参照完整性:FOREIGN KEY att REFERENCES table(att),只能在表级定义。P160
用户定义的完整性:NOT NULL,UNIQUE,CHECK。P163
触发器:建立 CREATE TRIGGER<trigger name>
{BEFORE|AFTER}<event>ON<table name>
FOR EACH {ROW|STATEMENT}
[WHEN<condition>]<action>
删除 DROP TRIGGER<trigger name> ON<table name> P168
第6章 关系数据库理论
下列术语的定义:
函数依赖:设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X→Y。(一个X只能确定一个Y)
完全函数依赖:在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’→Y,则称Y对X的完全函数依赖,记作X—F→Y。
部分函数依赖:若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X—P→Y。
传递依赖:在R(U)中,如果X→Y,(Y⊈X),Y→X,Y→Z,Z∉Y,则称Z对X传递函数依赖,记作X-传递→Z。
候选码:设K为R<U,F>中的属性或属性组合,若K-F→U则K为R的候选码。
主码:候选码多于一个时,选定其中一个为主码。
外码:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外码,或外部码。
全码(All-key ):整个属性组都是码,则成为全码。
1NF:关系数据库中的关系是要满足一定要求的,满足不同程度的要求的为不同范式。满足最低要求的称为第一范式,简称1NF。
2NF:若R∈1NF,且每一个非主属性完全函数依赖于码,则称R∈2NF。
3NF:关系模式R<U,F>中若不存在这样的码X,属性组Y及非属性组Z(Z⊈Y)使得X→Y,Y→Z成立,Y→X,则称R<U,F>∈3NF。
理解书上例题各级模式的化解。
根据描述建立一个关于某组织的关系数据库。
关系模式的函数依赖集,关系模式的主码并化解为3NF。
第7章 数据库设计
数据库设计的6个阶段,每个阶段的主要工作逻辑结构的设计,即根据关系模式写出对应的关系模式
- 需求分析:准确了解和分析用户需求(包括数据和处理)。
- 概念结构设计:对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
- 逻辑结构设计:将概念结构转化为某个DBMS所支持的数据模型,并对其进行优化。
- 物理结构设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方式)。
- 数据库实施:运用DBMS提供的数据库语言(如SQL)及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制和调试应用程序,组织数据入库,并进行试运行。
- 数据库运行和维护:在数据库系统运行过程中不断地对其进行评估、调整和修改。
第9章 关系查询处理及查询优化
SQL转换为优化的关系代数,书上例题
第10章 数据库恢复技术
事务概念
事务:是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。在SQL定义事务的3条语句:BEGIN TRANSACTION,COMMIT提交,ROLLBACK回滚。事务通常是以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。
事务特性:原子性(Atomicity),一致性(Consistency),隔离性(Isolation)和持续性(Durability),简称ACID特性。
日志的作用:
- 事务故障恢复和系统故障恢复必须用日志文件
- 在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库
- 在静态转储方式中也可以建立日志文件,当数据库毁坏后可重新装入后援副本把数据库恢复到转储结束时刻的正确状态。
故障种类及恢复技术:
- 事务内部的故障
- 系统故障
- 介质故障
- 计算机病毒
第11章 并发控制
并发操作带来的数据不一致有:
- 丢失修改
- 不可重复读
- 读“脏”数据
什么是封锁?基本的封锁类型有几种?
所谓封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁。
基本的封锁类型有两种:排它锁(X锁/写锁)和共享锁(S锁/读锁)
什么是活锁?什么是死锁?
P315
什么样的并发调度是正确的调度?
可串行化的