《数据库系统概念(第6版)》第1章:“引言”的学习提纲
前言
《数据库系统概念(第6版)》第1章:“引言”的学习提纲。
数据库管理系统(DBMS)包括数据库(DB)
1.1 数据库系统的应用
- 直接或间接地应用
- 应用广泛
1.2 数据库系统的目标
文件处理系统的缺点:
- 数据的冗余和不一致
- 数据访问困难
- 数据孤立
- 完整性问题
- 原子性问题
- 并发访问异常
- 安全性问题
- …
数据库系统需要改进上述缺点
1.3 数据视图
1.3.1 数据抽象
从低到高层:
- 物理层
- 逻辑层
- 视图层
1.3.2 实例和模式
从低到高层:
- 物理模式(唯一)
- 逻辑模式(唯一)(体现物理数据独立性)(最重要)
- 子模式(不唯一)
1.3.3 数据模型
- 关系模型
- 实体-联系(E-R)模型
- 基于对象的数据模型
- 半结构化数据模型
- 网状数据模型(少用)
- 层次数据模型(少用)
1.4 数据库语言
1.4.1 数据操纵语言(DML)
访问类型:
- 查询
- 插入
- 删除
- 修改
类型:
- 过程化数据操纵语言
- 非过程化数据操纵语言/声明式数据操纵语言(相对更简单)
1.4.2 数据定义语言(DDL)
定义的约束类型:
- 域约束
- 参照完整性
- 断言
- 授权
1.5 关系数据库
“关系数据库基于关系模型,使用一系列表来表达数据以及这些数据之间的联系。关系数据库也包括DML和DDL。”
1.5.1 表
内容:
- 行/记录
- 列/字段/属性
1.5.2 数据操纵语言
“SQL查询语言是非过程化的。”
格式:
1 | select 字段名 |
示例:
1 | select instructor.ID, dapartment.dept_name |
1.5.3 数据定义语言
格式:
1 | create table 表名 |
示例:
1 | create table department |
“另外,DDL语句还更新了数据字典,它包含元数据(见1.4.2节)。表的模式就是元数据的一个例子。”
1.5.4 来自应用程序的数据库访问
“SQL不像一个通用的图灵机那么强大;即,有一些计算可以用通用的程序设计语言来表达,但无
法通过SQL来表达。SQL还不支持诸如从用户那儿输入、输出到显示器,或者通过网络通信这样的动作。这样的计算和动作必须用一种宿主语言来写,比如C、C++或Java,在其中使用嵌入式的SQL查询来访问数据库中的数据。应用程序(application program) 在这里是指以这种方式与数据库进行交互的程序。”
“为了访问数据库,DML语句需要由宿主语言来执行。有两种途径可以做到这一点:
●一种是通过提供应用程序接口(过程集),它可以用来将DML和DDL的语句发送给数据库,再取回结果。
与C语言一起使用的开放数据库连接(ODBC)标准,是一种常用的应用程序接口标准。Java数据库连接(JDBC)标准为Java语言提供了相应的特性。
●另一种是通过扩展宿主语言的语法,在宿主语言的程序中嵌入DML调用。通常用一个特殊字符作为DML调用的开始,并且通过预处理器,称为DML预编译器(DML precompiler),来将DML语句转变成宿主语言中的过程调用。”
1.6 数据库设计
“数据库设计的主要内容是数据库模式的设计。”
1.6.1 设计过程
- 需求分析
- 概念设计
- 逻辑设计
- 物理设计
1.6.2 大学机构的数据库设计——略
1.6.3 实体-联系模型
内容:
- 实体
- 联系
“数据库的总体逻辑结构(模式)可以用实体-联系图(entity-relationship diagram,E-R图) 进行图形化表示。有几种方法来画这样的图。最常用的方法之一是采用**统一建模语言(Unified Modeling Language,UML)**。
1.6.4 规范化
“设计关系数据库所用到的另外一种方法是通常被称为规范化的过程。它的目标是生成一个关系模式集合,使我们存储信息时没有不必要的冗余,同时又能很轻易地检索数据。”
“空值很难处理,所以最好不要用它。”
“规范化的详尽理论已经研究形成,它有助于形式化地定义什么样的数据库设计是不好的,以及如
何得到我们想要的设计。”
1.7 数据存储和查询
“数据库系统的功能部件大致可分为存储管理器和查询处理部件。”
1.7.1 存储管理器
包括:
- 权限及完整性管理器
- 事务管理器
- 文件管理器
- 缓冲区管理器
实现的数据结构:
- 数据文件
- 数据字典
- 索引
1.7.2 查询处理器
包括:
- 数据定义语言解释器
- 数据操纵语言编译器
- 查询执行引擎
1.8 事务管理
事务的4个特性(ACID):
- 原子性
- 一致性
- 隔离性
- 持久性
事务管理器包括:
- (故障)恢复管理器
- 并发控制管理器
1.9 数据库体系结构
类型:
- 集中式
- 客户/服务端式
- 并行式
- 分布式
2层:
- 客户端(包含应用程序)
- 服务端(包含数据库系统)
3层:
- 客户端
- 服务端(包含应用程序,不包含数据库系统)
- 数据库系统
1.10 数据挖掘与信息检索
“数据挖掘(data mining) 这个术语指半自动地分析大型数据库并从中找出有用的模式的过程。”
“查询非结构化的文本数据被称为信息检索(information retrieval)。”
1.11 特种数据库
1.11.1 基于对象的数据模型
“现在主要的数据库厂商都支持对象-关系数据模型(object-relational data model), 这是一个将面向对象数据模型和关系数据模型的特点结合在一起的数据模型。它扩展了传统的关系模型,增加了新的特征如结构和集合类型,以及面向对象特性。”
1.11.2 半结构化数据模型
“半结构化数据模型允许那些相同类型的数据项有不同的属性集的数据说明。这和早先提到的数据模型形成了对比:在那些数据模型中所有某种特定类型的数据项必须有相同的属性集。”
1.12 数据库用户和管理员
1.12.1 数据库用户和用户界面
用户类型:
- 无经验的用户
- 应用程序员
- 老练的用户
- 专门的用户
1.12.2 数据库管理员
作用:
- 模式定义
- 存储结构及存取方法定义
- 模式及物理组织的修改
- 数据访问授权
- 日常维护
1.13 数据库系统的历史——略
1.14 总结——略
总结
《数据库系统概念(第6版)》第1章:“引言”的学习提纲。
参考资料
- 《数据库系统概念(第6版)》作者:Abraham Silberschatz,Henry E.Korth,S.Sudarshan
作者的话
- 感谢参考资料的作者/博主
- 作者:夜悊
- 版权所有,转载请注明出处,谢谢~
- 如果文章对你有帮助,请点个赞或加个粉丝吧,你的支持就是作者的动力~
- 文章在描述时有疑惑的地方,请留言,定会一一耐心讨论、解答
- 文章在认识上有错误的地方, 敬请批评指正
- 望读者们都能有所收获