第1章 数据库系统概述
(数据处理技术的发展 + 数据库的基本概念和特点)
一:数据、信息、知识、决策
对应:Data、Information、Knowledge、Decision
二:数据库技术的产生与发展
产生原因:数据管理任务的需要
数据管理技术的发展过程:人工管理阶段(20世纪50年代中前)、文件系统阶段(20世纪50年代末——60年代中)、数据库系统阶段(20世纪60年代末——现在)
数据管理技术的发展动力:应用需求推动;计算机硬件发展;计算机软件发展
应用程序与数据的对应关系:(人工管理阶段)应用程序和数据集一对一;(文件系统阶段)应用程序和数据根据存取方法多对多;(数据库系统阶段)应用程序和数据库根据DBMS多对一
三、数据库系统基本概念
基本概念:数据Data、数据库Database、数据库管理系统DBMS、数据库系统DBS
数据:数据库中存储的基本对象;描述事物的符号记录;特点为其与语义不可分
数据库:长期储存在计算机内的、有组织的、可共享的大量数据的集合
数据库管理系统:位于用户与操作系统间的一层数据管理软件;基础软件 / 大型复杂的软件系统;用途为科学地组织和存储数据、高效地获取和维护数据
DBMS的主要功能:数据定义功能;数据组织、存储和管理;数据操作功能;数据库的事务管理和运行管理;数据库的建立和维护功能;其他(通信、数据转换、互操作等)
数据库系统:由数据库、数据库管理系统、应用程序、数据库管理员构成;
四、数据库系统的特点
1:数据结构化(整体结构化)
2:数据的共享性高,冗余度低且易扩充(数据库系统从整体角度看待和描述数据;数据共享的好处)
3:数据独立性高(物理独立性;逻辑独立性;二级映像功能保证数据独立性)
4:数据由DBMS统一管理和控制(数据的安全性保护;数据的完整性检查;并发控制;数据库恢复)
五、小结
第2章 数据模型
一、两类模型
客观对象的抽象过程:概念模型 + 数据模型(2步抽象)
数据模型:抽象、表示和处理现实世界的信息;是现实世界的模拟;满足要求【真实、易懂、实现】
分类:概念模型 + 逻辑/数据模型和物理模型
二、概念模型
(信息世界中的基本概念;两个实体型之间的联系;两个以上实体型之间的联系;单个实体型内的联系;概念模型的一种表示方法;实例)
信息世界的基本概念:实体Entity(客观存在的事物)、属性Attribute(实体的特性)、码Key(唯一标识实体的属性集)、域Domain(属性的取值范围)、实体型Entity Type(用实体名及其属性名集合来抽象和刻画同类实体)、实体集Entity Set(同类实体的集合)、联系Relationship(事物内部及事物间的联系,实体内部 + 实体之间)
两个实体型之间的联系:1:1一对一、1:n一对多、m:n多对多
单个实体型内的联系:1:n、m:n
实体-联系方法(E-R方法):E-R图描述现实世界的概念模型
——实体型(矩形,框内写实体名);属性(椭圆形,无向边与对应实体连接);联系(菱形,框内写联系名,无向边与对应实体连接,标注联系类型);联系的属性(椭圆形,无向边与对应联系相联)
三、数据模型的组成要素
(数据结构、数据操作、完整性约束条件)
数据结构:描述数据库的组成对象和对象间的联系;对系统静态特性的描述
数据操作:对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则;对系统动态特性的描述
数据操作的类型:查询;更新(增删改)
完整性约束条件:数据模型必须遵守的基本通用完整性约束条件(实体完整性&参照完整性);具体应用
四、最常用的数据模型
(层次模型、网状模型、关系模型、面向对象模型、对象关系模型、半结构化数据模型、NoSQL)
层次模型:树形结构;根结点、双亲结点、兄弟结点、叶结点
特点:结点双亲唯一;只能直接处理一对多的实体联系;码字段(每个记录类型定义一个排序字段);任何记录值只有按其路径查看时,才显出其全部意义;没有一个子女记录值能够脱离双亲记录值而独立存在
存储结构(物理模型):邻接法;链接法(子女-兄弟链接法、层次序列链接法)
优点:数据结构简单清晰;查询效率高,性能优于关系模型,不低于网状模型;完整性支持良好
缺点:多对多联系表示不自然;对增删的限制多,应用程序编写复杂;查询子女结点须通过双亲结点;结构严密,层次命令趋于程序化,即操作需要采用程序编程
网状模型:代表为DBTG系统
特点:允许多个结点无双亲;结点可有多个双亲;两结点间可有多种联系(复合联系);层次模型是网状模型的特例
存储结构:单向链接;双向链接;环状链接;向首链接
优点:可更直接描述现实世界;性能良好,存取效率较高
缺点:结构较复杂,数据库结构的复杂度随应用环境的扩大而增加,不利于用户掌握;DDL、DML语言复杂,用户难使用
关系模型:数据的逻辑结构是二维表,由行和列组成
数据结构:关系(表)、元组(表中的一行)、属性(表中的一列)、主码(唯一确定元组的属性组)、域(属性的取值范围)、分量(元组的一个属性值)、关系模式(对关系的描述,关系名(属性1,…,属性n))
关系必须规范化:每个分量必须是一个不可分的数据项,不允许大表套小表
操纵:数据操作是集合操作,操作对象和操作结果是关系
关系的完整性约束条件:实体完整性;参照完整性;用户定义的完整性
存储结构:表用于表示实体及实体间的联系,以文件形式存储
优点:建立在严格的数学概念基础上;概念单一;关系模型的存取路径对用户透明
缺点:存取路径透明导致查询效率不如非关系数据模型;为提高性能须对用户的查询请求进行优化,增加了开发DBMS的难度
第3章 关系数据库操作
一、关系数据库和关系模型
关系数据结构的形式化定义:域Domain、笛卡尔积、关系Relation
(1)域:一组具有相同数据类型的值的集合
(2)笛卡尔积:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}
元组:笛卡尔积中的每一个元素(d1,d2,…,dn)
分量:元素(d1,d2,…,dn)中的每个值di
(3)关系:D1×D2×…×Dn 的子集,R(D1,D2,…,Dn)
元组:关系中的每个元素t 单元关系(n=1) 与 二元关系(n=2)
关系的表示:二维表,表中每行对应一个元组,每列对应一个域 / 属性
码:候选码(唯一表示元组)、全码(所以属性组是候选码,即极端情况)、主码(多个候选码中选定一个)、主属性(候选码的诸属性,对应非主属性)
三类关系:基本关系(实际存在的表)、查询表(查询结果对应的表)、视图表(虚表)
关系模式:关系模式是型;关系是值;关系模式是对关系的描述
关系模型的形式化表示:R(U,D,DOM,F)
R——关系名,U——组成该关系的属性名集合,D——U中属性的域,DOM——属性向域的映像集合,F——属性间的数据依赖关系集合
关系数据库:在给定应用领域中所有关系的集合
二、关系操作
常用的关系操作:
关系操作的特点:集合操作方式,一次一集合
关系的三类完整性约束:实体完整性;参照完整性;用户定义完整性
实体完整性:若属性A是基本关系R的主属性,则A不可为空
参照完整性:关系间的引用;外码(参照关系 & 被参照关系);关系R和S,若属性F是R的外码,且与S的主码对应,则R中每个元组在F上的值必须为空值或等于S中某个元组的主码值
三、关系代数
概述:
运算符 |
含义 |
计算公式 |
|
集合运算符 |
∪ |
并 |
|
- |
差 |
||
∩ |
交 |
||
× |
笛卡尔积 |
||
比较运算符 |
> |
大于 |
|
≥ |
大于等于 |
||
< |
小于 |
||
≤ |
小于等于 |
||
= |
等于 |
||
<> |
不等于 |
||
关系运算符 |
σ |
选择 |
|
π |
投影 |
||
连接 |
|||
÷ |
除 |
||
逻辑运算符 |
¬ |
非 |
|
∧ |
与 |
||
∨ |
或 |
专门的运算关系:
(1)R,t,t[Ai](元组t中相应于属性Ai的一个分量)
(2)A(属性组A),t[A],A({A1,…,An}中去掉{Ai1,…Aik}后剩余的属性组)
(3)trts(tr是R的一个元组,ts是S的一个元组,trts称为元组的连接,n + m列)
(4)象集Zx(X和Z为R的属性组,当t[X]=x时,x在R中的象集为Zx = {t[Z]|t∈R,t[X]=x})
常用的连接运算:
(1)等值连接:从关系R与S的广义笛卡尔积中选取A、B属性值相等的元组,且B属性重复显示
(2)自然连接:R和S具有相同的属性组B,且B属性不再重复显示
(3)外连接:把舍弃的元组也保存在结果关系中,而在其他属性上填空值
左外连接:只保留左边关系R中舍弃的元组
右外连接:只保留右边关系S中舍弃的元组
除:元组在X上分量值x的象集Yx包含S在Y上投影的集合
例题:
四、关系演算
关系演算:以数理逻辑中的谓词演算为基础
分类(按谓词变元不同):元组关系演算;域关系演算
元组关系演算语言ALPHA:
检索语句:GET
更新语句:PUT,HOLD,UPDATE,DELETE,DROP
常用检索语句:
(1)简单检索:GET 工作空间名 (表达式1)
(2)限定检索:GET 工作空间名 (表达式1):操作条件
(3)带排序的检索:GET 工作空间名(表达式1):操作条件 DOWN/UP 表达式2
(4)带定额的检索:GET 工作空间名(定额)(表达式1):操作条件 DOWN/UP 表达式2
(5)用元组变量的检索:RANGE 关系名 变量名
元组变量的用法:
(6)用存在量词∃的检索:RANGE 关系名 变量名 GET 工作空间名 (表达式1):∃变量名 (表达式2)
(7)带有多个关系的表达式的检索
(8)用全称量词∀的检索(扫描表中所有记录)
全称量词和存在量词的互换:全称量词表示全部满足某条件,等于“不存在不满足某条件的”
(9)用两种量词的检索
(10)用蕴含的检索
(11)聚集函数 / 内部函数
COUNT TOTAL MAX MIN AVG等
全称量词单独使用和全称量词与存在/蕴含/不存在量词联合使用的区别:
常用更新操作语句:
(1)修改操作:
(2)插入操作
(3)删除操作
域关系演算语言QBE:
构造查询的要素:示例元素;打印操作符P.;查询条件
检索操作:
(1)简单查询
(2)条件查询(与、或、多表连接、非)
(3)聚集函数
CNT SUM AVG MAX MIN等
(4)对查询结果排序
升序——AO. 降序——DO.
更新操作:
(1)修改操作
U.表明所在的行是修改后的新值,放在值或者关系上
(2)插入操作
I.,放在关系上
(3)删除操作
D.,放在关系上
五、关系代数表达式的优化
目的:节省时间,提高效率
基本策略:先做选择,运用投影去除多余属性,再做连接
优化算法:语法树
第4章 SQL语言
一、SQL语言概述
(1)产生与发展
Structured Query Language,通用且功能极强的关系数据库语言
(2)特点
(3)基本概念
SQL支持数据库三级模式结构(外模式——模式——内模式)
基本表:一个关系对应一个基本表,一个或多个基本表对应一个存储文件,一个表带若干索引
视图:从一个或多个基本表导出,只存放视图的定义不存放视图的数据,虚表,用户可以在视图上继续定义视图
二、SQL的数据定义
主码:加下划线的属性
数据定义功能:
(1)模式的定义与删除
定义模式使用CREATE SCHEMA,模式名可不指定且隐含为用户名
删除模式使用DROP SCHEMA。CASCADE——级联,RESTRICT——限制
(2)基本表的定义、删除与修改
定义基本表时的常用完整性约束:
数据类型:
模式与表:一个模式包含多个基本表
修改基本表:
(3)索引的建立与删除
建立索引的目的:加快查询速度
B+树索引:动态平衡 HASH索引:查找速度快
建立索引的语句:CREATE [UNIQUE] [CLUSTER] INDEX <索引名>
UNIQUE:每个索引值对应唯一的数据记录
CLUSTER:聚簇索引
修改索引的语句:ALTER INDEX <旧索引名> RENAME TO <新索引名>
删除索引的语句:DROP INDEX <索引名>
数据字典:关系数据库管理系统内部的一组系统表,记录了【关系模式定义、视图定义、索引定义、完整性约束定义、用户操作权限、统计信息】等
三、SQL的数据更新
(1)插入数据
插入方法:
(2)修改数据
UPDATE … SET … WHERE …
(3)删除数据
DELETE FROM … WHERE …
四、SQL的数据查询
常用查询条件:
(1)单表查询
(2)连接查询
(3)嵌套查询
(4)集合查询
(5)基于派生表的查询
(6)select语句的一般形式
五、视图
视图:从一个或多个基本表或视图导出的表
特点:虚表;只存放定义不存放数据;基本表数据变化,视图查询数据随之改变
(1)定义视图
(2)查询视图
与查询基本表相同,实现视图查询的方法为【视图消解法】
(3)更新视图
(4)视图的作用
六、嵌入式SQL
SQL语言的使用方式:交互式、嵌入式
引入嵌入式SQL的原因:SQL语言是非过程性语言;事务处理应用需要高级语言
(1)嵌入式SQL的处理过程
处理过程:预编译方法
区分SQL语句和主语言语句:EXEC SQL
(2)嵌入式SQL语句与主语言之间的通信
SQL语句:面向集合,描述性
高级语言语句:面向记录,过程性
数据库工作单元与源程序工作单元间的通信:
(3)不使用游标的SQL语句
种类:
(4)使用游标的SQL语句
必须使用游标的SQL语句:
使用游标的步骤:说明游标(DECLARE)——打开游标(OPEN)——推进游标指针并取当前记录(FETCH)——关闭游标(CLOSE)
(5)动态SQL
允许在程序运行过程中临时“组装”SQL语句;支持动态组装SQL语句和动态参数两种形式
使用SQL语句主变量;动态参数;
使用动态参数的步骤:声明SQL语句主变量——准备SQL语句(PREPARE)——执行准备好的语句(EXECUTE)
七、小结
第5章 数据库系统体系结构
一、数据库的体系结构
1:三级模式结构(用户局部逻辑结构——数据库整体逻辑结构——数据库的物理结构)
(1)概念模式
定义:对数据库全局逻辑结构的描述
描述对象:所有实体、实体的属性和实体间的联系;数据的约束;数据的语义信息;安全性和完整性信息
(2)外模式
定义:用户观念下局部数据结构的逻辑描述
优点:方便用户使用,简化用户接口;保证数据独立性;有利于数据共享;有利于数据安全和保密
(3)内模式
定义:对数据库中数据物理结构和存储方式的描述
关联的工作:数据和索引的存储空间分配;存储的记录描述;记录放置;数据压缩和数据加密技术
2:两级映像和两级数据独立性
三级模式间提供的2层映像:外模式/概念模式映像(逻辑数据独立性);概念模式/内模式映像(物理数据独立性)
数据独立性:应用程序和数据库的数据结构间相互独立,不受影响;包含逻辑数据独立性和物理数据独立性
3:数据库的抽象层次
(1)物理数据库——数据库最内层,内模式为框架
(2)概念数据库——数据库中间层,概念模式为框架
(3)逻辑数据库——数据库最外层,外模式为框架
4:数据模式与数据模型
二、数据库系统DBS
1:DBS的组成
数据库、数据库管理系统、应用开发工具软件和应用程序、数据库的软/硬件支持环境、数据库管理员等
2:DBS的全局结构
3:DBS结构的分类
(1)集中式DBS
运行在一台计算机上,不与其他计算机系统交互
(2)客户机/服务器式DBS
客户/服务器结构:前端客户机系统 + 后端服务器系统
N层客户/服务器结构:数据层、商业逻辑层、视觉层
(3)分布式DBS
特点:分布性、逻辑整体性
优点:数据共享、自治性、可用性
(4)并行式DBS
三、数据库管理系统DBMS
1:DBMS的工作模式
2:DBMS的主要功能
(1)数据库定义:外部模式、概念模式、内部模式、模式间映像的定义、数据库完整性定义
(2)数据库操作:增删改查 INSERT DELETE UPDATE SELECT
(3)数据库控制:数据库完整性检查、安全性控制、并发控制、数据库恢复
(4)数据组织、存储和管理
(5)数据通信
四、DBMS的系统结构
五、几种典型结构的DBMS
1:基于Client/Server结构的数据库系统
数据存取的工作过程:
2:基于Web的数据库系统
六、小结