1 基本概念
1.1 数据库与数据库管理系统
数据库系统(DataBase System, DBS)是一个采用了数据库技术,有组织地、动态地存储大量相关联数据,方便多用户访问的计算机系统。
广义上讲,DBS是由数据库、硬件、软件(操作系统、数据库管理系统DBMS、应用程序)、人员(系统分析员和数据库设计人员、应用程序员、最终用户、数据库管理员)组成。
用户操作应用程序,应用程序依赖DBMS,DBMS依赖操作系统,操作系统操作具体的硬件;
1.2 DBMS的功能
(1)数据定义(Data Definition Lanaguage, DDL):所有创建语句;
(2)数据操作(Data Manipulation Language, DML):所有操作语句;
(3)数据库运行管理:并发管理、安全性管理、存取控制、完整性检查、日志管理、事务管理、自动恢复等;
(4)数据组织、存储和管理:分类组织、存储、管理;
(5)数据库的建立和维护
(6)其他功能
1.3 DBMS的特征与分类
特征
(1)数据结构化且统一管理;
(2)有效高的数据独立性;
(3)数据控制功能;
(4)故障恢复;
分类
通常分以下三类:
(1)关系数据库系统(Relation DataBase System, RDBS)
(2)面向对象数据库系统(Object-Oriented DataBase System, OODBS)
(3)对象关系数据库系统(Object-Oriented Relation DataBase System, OORDBS)
1.4 数据库系统的体系结构
从数据库管理系统角度看,数据库系统通常采用三级模式结构;
从最终用户角度看,数据库系统结构分为集中式结构、C/S结构、并行结构、分布式结构;
1.5 数据库的三级模式结构
数据库领域公认的标准结构是三级模式结构,它包括外模式、模式和内模式,有效地组织、管理数据,提高了数据库的逻辑独立性和物理独立性。用户级对应外模式,概念级对应模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。所谓视图,就是指观察、认识和理解数据的范围、角度和方法,是数据库在用户“眼中"的反映,很显然,不同层次(级别)用户所“看到”的数据库是不相同的。
三级模式
模式(逻辑模式):又称概念模式或者逻辑模式,对应于概念级,它是数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图。它是由数据库管理系统提供的数据模式描述语言(Data Description Language,DDL)来描述、定义的,体现、反应了数据库系统的整体观。一个数据库只有一个模式。
外模式(用户模式):又称子模式或用户模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,包括模式中允许特定用户使用的那部分数据。用户可以通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言(Data Manipulation Language,DML)。一个数据库可以有多个外模式,同一个外模式可以被多个应用程序使用,但是一个应用程序只能对应一个外模式。
内模式(物理结构):又称存储模式,对应于物理级,它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。内模式由内模式描述语言来描述、定义。一个数据库只有一个内模式。
在一个数据系统中,只有唯一的数据库,因而作为定义、描述数据库存储结构的内模式和定义、描述数据库逻辑结构的模式,也是唯一的,但是建立在该数据库系统之上的应用则是非常广泛、多样的,所以对应的外模式不是唯一的,也不可能是唯一的。
二级映像
外模式/模式:用户界面映射到逻辑模式;
模式/内模式:逻辑模式转化为物理结构;
外模式与内模式是逻辑上独立的,所以外模式发生改变不会影响内模式,内模式发生改变不会影响外模式;
2 数据模型
2.1 数据模型的基本概念
模型就是对现实世界特征的模拟和抽象,数据模型是对现实世界数据特征的抽象。最常用的数据模型分为概念数据模型、基本数据模型;
(1)概念数据模型。也称信息模型,是按用户的观点对数据和信息建模,是现实世界到信息世界的第一层抽象,强调其语义表达功能,易于用户理解,是用户和数据库设计人员交流的语言,
主要用于数据库设计。这类模型中最著名的是实体联系模型,简称E-R模型。
(2)基本数据模型。它是按计算机系统的观点对数据建模,是现实世界数据特征的抽象,用于DBMS的实现。基本的数据模型有层次模型、网状模型、关系模型、面向对象模型。
2.2 数据模型的三要素
数据模型三要素:
数据结构:是所研究的对象类型的集合,是对系统静态特征的描述;
数据操作:对数据库中各种对象的实例允许执行的操作的集合;
数据的约束条件:是一组完整性规则的集合;
最常用的数据模型有:层次模型、网状模型、关系模型、面向对象模型;
2.3 E-R模型
概念模型是对现实世界建模,所以概念模型能够方便、准确地表示信息世界中的常用概念。概念模型有很多种表示方法,其中最常用的是P.P.S.Chen于1976年提出的实体-联系方法(Entity Relationship Approach)。该方法用E-R图来描述现实世界的概念模型,称为实体-联系模型(Entity-Relationship Model, E-R模型)。
E-R模型组成:
(1)实体,用矩形表示;
(2)属性,用椭圆表示,并用无向边与实体联系;
(3)联系,用棱形表示,并用无向边分别与有关实体连接起来,同时在无向边旁标注上联系的类型(1:1、1:n、m:n);
2.4 层次模型
采用树型结构表示数据与数据间的联系。
2.5 网状模型
采用网络结构表示数据与数据间的联系。
2.6 关系模型
由若干个关系模式组成的集合,是最常用的数据库模型之一。
2.7 面向对象模型
用面向对象程序设计的思想设计数据库,将实体抽象为类。
3 关系代数
3.1 关系数据库的基本概念
属性和域
属性:用属性来表示实体的特征;
关系数据库模型中,对域(属性的取值范围)有一个限制,所有的域都是原子数据(确定的数据);
笛卡尔积
实体间最全的关联结果集合;
元数:属性的个数;
元组:记录的条数;
基数:元组的个数;
相关名词
(1)目或度:关系R包含的集合个数;
(2)候选码:能唯一标识一个元组的属性或属性组;
(3)主码:从候选码里面选择一个作为主码;
(4)主属性:包含在候选码中的属性;
(5)非码属性:不包含在候选码中的属性;
(6)外码:外键;
(7)全码:关系模型的主码是所有属性组,称为全码;
完整性约束
实体完整性:主属性不能为空;
参照完整性:外码要么正确要么为空;不允许出现找不到关系的外码;
用户定义完整性:用户自己定义的完整性约束条件;
关系运算
关系数据语言分:关系代数语言、关系演算语言(元组关系演算语言、域关系演算语言)、具有关系代数和关系演算双重特点的语言(SQL);
关系代数运算符有4类:
集合运算符:并、交、差、广义笛卡尔积;
专门的关系远算符:选择、投影、连接、除法;
算术比较符:>、>=、<、<=、=、<>;
逻辑运算符:not、and、or;
3.2 五种基本的关系代数运算
并:集合相加(对应union语句);
差:集合相减(可以用exists语句实现);
广义笛卡尔积:集合相乘(对应只写from不加where语句);
投影:对实体的属性做选择(对应select语句);
选择:对实体的元组做选择(对应where语句);
3.3 扩展的关系代数运算
扩展到关系代数运算可以从基本的关系运算中导出,主要包括选择、投影、连接、除法、广义笛卡尔积、外连接;
交:集合相交;可用集合相减实现;
连接:分条件连接、等值连接(特殊的条件连接)、自然连接(特殊的等值连接,去掉了重复的属性列);
除:会从水平方向和垂直方向进行运算;
广义投影:允许在投影列表中加入表达式;
外连接:左外连接、右外连接、全连接;
4 SQL语言
4.1 SQL数据库体系结构
SQL主要有三个标准:ANSI(美国国家标准机构)SQL;对ANSI SQL进行修改后在1992年采用的标准SQL-92或SQL2;最近的SQL-99标准,也称为SQL3标准;SQL-99从SQL2扩充而来,并增加了对象关系特征和许多其他新的功能。
SQL特点
(1)综合统一。
(2)高度非过程化。
(3)面向集合的操作方式。
(4)两种使用方式。自含式,直接使用SQL语句查询数据库;嵌入式,将SQL语言嵌入到高级语言程序中;
(5)语言简洁、易学易用。SQL语言功能极强,完成核心功能只用了9个动词,包括如下:
数据查询:SELECT;
数据定义:CREATE、DROP、ALTER;
数据操纵:INSERT、UPDATE、DELETE;
数据控制:GRANT、REVORK;
SQL支持三级模式结构:视图对应外模式、基本表对应模式、存储文件对应内模式;
4.2 SQL的基本组成
(1)数据定义语言;SQL DDL提供定义关系模式和视图、删除关系和视图、修改关系模式的命令;
(2)交互式数据操纵语言;SQL DML提供查询、插入、删除、修改的命令;
(3)事务控制;SQL提供定义事务开始和结束的命令;
(4)嵌入式SQL和动态SQL;用于嵌入到某种通用的高级语言(C、C++、Java、PL/I、COBOL、VB等)中混合编程;
(5)完整性;SQL DDL包括定义数据库中的数据必须满足的完整性约束条件的命令,对于破坏完整性约束条件的更新将被禁止;
(6)权限管理;SQL DDL中包括说明对关系和视图的访问权限;
4.3 SQL数据定义
create table ...
alter table ...
drop table ...
create [unique][cluster] index ...
drop index ...
create view ...
drop view ...
6 数据库的控制功能
6.1 事务管理
SQL语言中,事务定义语句有如下三条:
BEGIN TRANSACTION:开启事务;
COMMIT:提交事务;
ROLLBACK:回滚事务;
四大特性
ACID:原子性(atormicity)、一致性(consistency)、隔离性(isolation)、持久性(durability);
6.2 数据库的备份与恢复
故障类型:事务内部故障、系统故障、介质故障、计算机病毒;
备份
静态转储和动态转储、海量转储和增量转储、日志文件;
恢复
事务恢复步骤:
(1)反向扫描文件日志,查找该事务的更新操作;
(2)对事务的更新操作执行逆操作;
(3)继续反向扫描日志文件,查找该事务的其他更新操作,并做同样的处理,直到事务的开始标志;
镜像
实际应用中往往对关键的数据和日志文件做镜像;