# 第九章 数据库技术基础
数据库技术是研究数据库的结构、存储、设计、管理和应用的一门软件学科。数据库系统本质上是一个用计算机存储信息的系统。数据库管理系统是位于用户与操作系统之间的一层数据管理软件,其基本目标是提供一个可以方便、有效地存储数据库信息的环境。
# 9.1 基本概念
# 9.1.1 数据库与数据库系统
数据是描述事物的符号记录,它具有多种表现形式,可以是文字、图形、图像、声音和语言等。
信息是现实世界事物的存在方式或状态的反映。
数据库系统是一个采用了数据库技术,有组织地、动态地存储大量相关数据,方便多用户访问的计算机系统。
# 9.1.2 数据库管理系统的功能
数据库管理系统主要实现对共享数据有效地组织、管理和存取,故 DBMS 应具有一下六个方面的功能。
数据定义
DBMS 提供数据定义语言 DDL,用户可以对数据库的结构进行描述,包括外模式、模式和内模式的定义;数据库的完整性定义;安全保密定义,如口令级别和存取权限等。数据库操作 DMBS 向用户提供数据操纵语言 DML,实现对数据库中数据的基本操作,例如检索、插入、修改和删除。
数据库运行管理 数据库在运行期间多用户环境下的并发控制、安全性检查和存取控制、完整性检查和执行日志的组织管理。
数据的组织、存储和管理 DBMS 分类组织、存取和管理,包括数据字典、用户数据和存取路径等。因此确定以何种文件结构和存取方式在存储器器上组织这些数据,以提高存取效率。
数据库的建立和维护 数据的建立和维护包括数据库的初始建立、数据的转换、数据库的转储和恢复、数据库的重组和重构、性能检测和分析等。
其他功能 其他功能包括:DBMS 的网络通信能力,一个 DBMS 和另一个 DBMS 或文件系统的数据转换功能,异构数据库之间的互访和互操作能力等。
# 9.1.3 数据库管理系统的特征及分类
通过 DBMS 来管理数据具有以下特点:
- 数据结构化且统一管理
- 有较高的数据独立性
- 数据控制功能
DBMS 通常可分为以下三类:
- 关系型数据库系统 RDBS
- 面向对象的数据库系统 OODBS
- 对象关系数据库系统 ORDBS
# 9.1.4 数据库系统的体系结构
数据库系统是数据密集型应用的核心,其体系结构受数据库运行所在的计算机系统的影响很大,尤其是受计算机体系结构中的连网、并行和分布的影响。从用户角度来看,数据库系统体系结构分为集中式、分布式、C/S 结构和并行结构。
- 集中式数据库系统
- 客户端服务器结构
- 并行数据库系统
- 分布式数据库系统
# 9.1.5 数据库的三级模式结构
数据库的体系结构基本上都具有相同的特征,采用“三级模式和两级映像”。
- 概念模式 概念模式也称逻辑模式,数据库中全部数据的逻辑结构和特征的描述,由若干个概念记录类型组成。概念模式不涉及存储结构和访问技术等细节
- 外模式 外模式也称用户模式或子模式,是用户与数据库系统的接口。用户使用数据操纵语言对数据库进行操作。程序员不必关心概念模式,只与外模式发生联系,按外模式的结构存储和操作数据。比如 表 和 SQL。
- 内模式 内模式也称存储模式,是数据的物理结构和存储方式的描述,是数据在数据库内部的表示方式,定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。例如存储方式是顺序存储还是散列存储还是按 B 树结构存储;索引按什么方式组织,数据是否压缩存储,是否加密等。
- 两级映像
数据的独立性包括物理独立性和逻辑独立性
- 数据的物理独立性。当数据库的内模式发生概念时,数据的逻辑结构不变。(比如调整表的索引,表结构不变)
- 数据的逻辑独立性。用户的应用程序与数据库的逻辑结构时相互独立的。(暂时不太理解)
# 9.1.6 大数据
大数据产生的背景 大数据产生的背景主要由一下 4 个方面:
- 数据来源和承载方式的变革。联网设备增加
- 全球数据量出现爆炸式增长。
- 大数据已经成为一种自然资源
- 大数据日益重要,不被利用就是成本。
大数据的特征 业界通常用“4V”来概括大数据的特征
- 大量化(Volume)
- 多样化(Varety)
- 价值密度低(Value)
- 快速化(Velocity)
理解大数据 大数据不仅仅是指海量的信息
- 高并发数据存取的性能要求及数据存储的横向扩展问题。目前,多从架构和并行等方面考虑解决。
- 实现大数据资源化、知识化、普适化的问题。
- 非结构化海量信息的智能化处理问题,主要解决自然语言理解、多媒体内容理解、机器学习等问题。
大数据产生的安全风险 数据已成为一种新的经济资产
- 大数据成为网络攻击的显著目标。增加了黑客攻击的收益率。
- 大数据加大了隐私泄漏风险。数据集中存储增加了泄漏风险。
- 大数据威胁现有的存储和安防措施。管理的复杂度提高。
- 大数据技术成为黑客的攻击手段。黑客会最大限度的手机更多的有用信息,大数据使得黑客的攻击更加精准。
- 大数据成为高级可持续攻击的载体。黑客可以将攻击隐藏在大数据中,给安全服务提供商的分析造成很大困难。
- 大数据技术为信息安全提供新支撑。事物的两面性。对于海量数据的分析有助于信息安全服务提供商更好的分析网络异常行为。
# 9.2 数据模型
# 9.2.1 基本概念
模型是对现实世界特征的模拟和抽象,数据模型是对现实世界数据特征的抽象。最常用的数据模型分为概念模型和基本数据模型。
- 概念数据模型。按用户的观点对数据建模。比如著名的实体-联系模型,简称 E-R 模型。
- 基本数据模型。按计算机系统的观点对数据建模。层次模型、网状模型、关系模型和面向对象模型
# 9.2.2 数据模型的三要素
数据模型的三要素是
- 数据结构
- 数据操作
- 数据的约束条件
# 9.2.3 E-R 模型
- 实体
- 联系
- 属性
- 实体-联系方法
- 扩充的 E-R 模型
# 9.2.4 数据模型
- 层次模型 Hierarchical Model
- 网状模型 Network Model
- 关系模型 Relational Model
- 面向对象模型 Object Oriented Model
# 9.2.5 关系模型
关系模型是目前最常用的数据模型。关系数据库系统使用关系模型作为数据的组织方式。
# 9.3 关系代数
# 9.3.1 关系数据库的基本概念
- 属性和域
- 笛卡尔积与关系
- 关系的相关名词
- 关系的 3 种类型
- 关系数据库模式
- 完整性约束
- 关系运算
# 9.3.2 5 种基本的关系代数运算
- 并 Union
- 差 Difference
- 广义笛卡尔积 Extended Cartesian Product
- 投影 Projection
- 选择 Selection
# 9.3.3 扩展的关系代数运算
- 交 Intersection
- 连接 Join
- 除 Division
- 广义投影 Generalized Projection
- 外连接 Outer Join
# 9.4 关系数据库 SQL 语言简介
SQL 早已确立起自己作为关系数据库标准语言的地位,已被众多商用 DBMS 产品所采用,使得它已成为关系数据库领域中的一个主流语言。
# 9.4.1 SQL 数据库体系结构
- SQL 的特点
- SQL 支持三级模式结构
# 9.4.2 SQL 的基本组成
- 数据定义语言 SQL DDL
- 交互式数据操作语言 SQL DML
- 事务控制
- 嵌入式 SQL 和动态 SQL
- 完整性
# 9.4.3 SQL 数据定义
- 创建表
- 修改和删除表
- 索引的建立和删除
- 视图创建与删除
# 9.4.4 SQL 数据查询
- SELECT 基本结构
- 简单查询
- 连接查询
- 子查询与聚合函数
- 分组查询
- 更名运算
- 字符串操作
- 视图的查询