推荐教材

1
2
3
4
5
数据库系统概论 第5版
王珊 / 萨师煊 高等教育出版社

数据库系统概念 原书第6版
Abraham Silberschatz / Henry F. Korth / S. Sudarshan 机械工业出版社

数据库概论

绪论

数据

概念

Data
数据是描述事物的符号记录,是数据库中存储的基本对象。数据与其语义是密不可分的。

表现形式

其表现形式可以是数字(number)、文字(text)、图表(graph)、图像(image)、音频(audio)、视频(video)等。[文图声像]

数据模型

概念

数据模型是对现实世界数据特征的模拟和抽象表达,是模型化数据和信息的工具,是数据库系统的核心和基础。

组成三要素

数据结构

是对系统静态特性的描述,描述数据库的组成对象以及对象之间的联系。

数据操作

是对系统动态特性的描述,描述在相应的数据结构上的操作类型和操作方式。
数据操作主要包括对数据库的检索和更新两大类操作,其中更新操作又包括插入、删除和修改等。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。

数据约束

既刻画数据静态特征,也表示数据动态行为规则,描述数据结构内数据间的语法和语义关联、它们之间的制约和依存关系,以及数据动态变化规则,以保证数据的正确、有效和相容。数据约束包括数据完整性约束、数据安全性约束以及并发控制性约束。

二分类

概念层数据模型
概念

也称信息模型,数据抽象的最高层,是以用户视角对数据建模,用于数据库设计。

主要表示方法

实体-联系图,也称E-R图,用于描述现实世界中实体及其属性,以及实体之间联系。
实体用矩形表示,矩形框内写明实体的名称。
属性用椭圆形表示,描述实体的具体特征。
联系用菱形表示,描述了实体之间的关系。
这些关系可以是一对一、一对多或多对多等。

组织层数据模型

是以计算机视角对数据建模,用于数据库管理系统的实现。

逻辑层数据模型

数据抽象的中间层,是设计数据库系统的核心。
包括层次模型、网状模型、关系模型、面向对象模型、对象关系数据模型、半结构化数据模型等。
面向对象型数据库OODBS中的基本结构是对象而不是记录。

物理层数据模型

数据抽象的最底层,描述数据在存储介质上的组织结构,确定数据的物理存储结构,数据存取路径。

数据库

概念

DataBase,简称DB
数据库顾名思义是存储数据的仓库。
严格地说,数据库是长期存储在计算机中的、有组织的、可共享的大量数据的集合。

分类

1
2
3
4
5
关系型数据库
RD (Relational Database)
非关系型数据库
NRD (Non-Relational Database)
NoSQL (Not Only SQL) 译为"不仅仅是SQL"

数据库管理系统

概念

DataBase Management System,简称DBMS
数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。

分类

关系型数据库管理系统
RDBMS		(Relational Database Management System)
非关系型数据库管理系统
NRDBMS		(Non-Relational Database Management System)
NoSQL DBMS	(Not Only SQL Database Management System)

常见的关系型数据库管理系统有
MySQL、Oracle、SQL Server、PostgreSQL等
常见的非关系型数据库管理系统有
MongoDB(文档型)、Redis(键值型)、Cassandra(列存储型)、Neo4j(图型)等

排行榜

DB-Engines Ranking

结构化查询语言

概念

Structured Query Language,简称SQL
结构化查询语言是用于管理关系型数据库的高级的非过程化编程语言,允许用户与数据库进行交互,执行各种数据操作。几乎所有的关系型数据库管理系统都支持SQL。

功能

数据查询(Data Query)
数据定义(Data Definition)
数据操纵(Data Manipulation)
数据控制(Data Control)
事务控制(Transaction Control)
······

分类

数据查询语言

Data Query Language,简称DQL
数据查询语言用于从数据库中检索数据。

1
2
SELECT
*用于从数据库的一个或多个表中检索数据
数据定义语言

Data Definition Language,简称DDL
数据定义语言用于创建、修改和删除数据库对象的结构,并不操作数据库对象中的实际数据。
数据库对象

1
2
3
4
5
6
表Table
视图View
索引Index
存储过程Stored Procedure
触发器Trigger
······
1
2
3
4
5
6
7
8
9
CREATE
*用于创建数据库对象
ALTER
*用于修改已有数据库对象
DROP
*用于删除数据库对象
TRUNCATE
只用于删除表中的所有数据,但保留表结构
相比于DELETE操作,TRUNCATE执行速度更快,且不能通过回滚操作来恢复删除的数据
数据操纵语言

Data Manipulation Language,简称DML
数据操纵语言用于插入、更新和删除数据库中的数据。

1
2
3
4
5
6
INSERT
*用于向表中插入新数据
UPDATE
*用于修改表中的已有数据
DELETE
*用于从表中删除数据
数据控制语言

Data Control Language,简称DCL
数据控制语言用于管理用户或角色对数据库对象的访问权限。

1
2
3
4
GRANT
*用于授予用户或角色对数据库对象的访问权限
REVOKE
*用于撤销用户或角色对数据库对象的访问权限
事务控制语言

Transaction Control Language,简称TCL
事务控制语言用于管理数据库中事务的提交和回滚。

1
2
3
4
5
6
7
8
9
10
BEGIN TRANSACTION
用于明确地标记事务的开始
COMMIT
*用于将事务中的所有操作永久性地应用到数据库,并结束当前的事务
ROLLBACK
*用于撤销事务中的所有已执行的操作,并将数据库恢复到事务开始之前的状态
SAVEPOINT
用于设置一个临时的标记点,以便在后续可以回滚到该点,而不是回滚整个事务
RELEASE SAVEPOINT
用于释放(删除)先前在当前事务中定义的保存点

数据库系统

概念

Database System,简称DBS
数据库系统是由硬件、软件、数据库、使用人员组成的。

四特点

数据结构化
数据共享性高、冗余度低且易扩充
数据独立性高
数据由数据库管理系统统一管理和控制

数据管理技术发展经历三阶段

人工管理阶段
文件系统阶段
数据库系统阶段

二体系结构

内部体系结构
三级模式结构
1
2
3
4
5
6
7
8
外模式(也称为子模式或用户模式) 用户级   三级模式结构的最外层
是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是数据库概念模式的子集。一个数据库可以有多个外模式。

概念模式(也称为逻辑模式) 概念级 三级模式结构的中间层
描述数据库中全体数据的逻辑结构和特征,是所有用户的公共数据视图。

内模式(也称为存储模式) 物理级 三级模式结构的物理层,并不是最底层的物理层
描述了数据的物理结构和存储方式,是数据在数据库内部的表示形式或底层描述。一个数据库只有一个内模式。
二级映像
1
2
外模式/模式的映像:实现外模式到模式的相互转换。保证了数据的逻辑独立性
模式/内模式的映像:实现模式到内模式的相互转换。保证了数据的物理独立性
外部体系结构
单用户结构

整个数据库系统都安装在一台计算机上,并由一个用户独占使用,不同机器之间不能共享数据。

主从式结构(也称为集中式结构)

一个主机带多个终端用户。

分布式结构

数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同结点上。

客户机/服务器(C/S)结构
浏览器/服务器(B/S)结构

关系数据库

关系数据模型

概念

在关系结构的数据库中用二维表格的形式表示实体以及实体之间的联系的模型

关系数据结构

实体

实体是客观存在且具有公共性质的可相互区别的现实世界对象的集合。

属性

属性是实体所具有的某一特征或性质。

域是一组具有相同数据类型的值的集合,是属性的取值范围。

元组

元组用于表示关系中的单行记录或实体。

笛卡尔积

笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。

关系

关系是由多个域组成的笛卡尔积的有限子集。
笛卡尔积不满足交换律,
(d1,d2,···,dn)!=(d2,d1,···,dn)
但关系满足交换律。
(d1,d2,···,dn)=(d2,d1,···,dn)

候选码

关系中的某个属性组的值能够唯一地标识一个元组,而其子集不能,该属性组被称为候选码。一个关系可以有多个候选码。

主码(也称为主键)

主码由候选码中选定,每个关系有且仅有一个主码。

主属性

候选码中的属性被称为主属性。

非主属性(也称为非码属性)

不包含在任何候选码中的属性被称为非主属性。

关系模式

形象化地表示为R(U,D,dom,F)
R:关系名
U:组成该关系的属性名集合
D:属性组U中属性所来自的域
DOM:属性向域的映象集合
F:属性间数据的依赖关系集合

关系模型完整性

实体完整性

是指关系的主关键字不能重复也不能取空值。

参照完整性

是指定义建立关系之间联系的主关键字与外部关键字引用的约束条件。

用户定义完整性

是指根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。

关系操作

包括查询(Query)操作和插入(Insert)、删除(Delete)、修改(Update)操作两大部分。

关系代数

是一种形式化的查询语言

传统的集合运算

包括并、差、交和广义笛卡尔积四种运算。

专门的关系运算

包含选择、投影、连接和除等。