数据库系统是一些互相关联的数据以及一组使得用户可以访问和修改这些数据的程序的集合。
主要目的:给用户提供数据的抽象试图
数据抽象:物理层(描述数据实际怎样存储)、逻辑层(描述存储什么数据以及数据间关系)、视图层(描述数据库的某个部分)
数据模型:描述数据、数据联系、数据语义以及一致性约束的概念工具的集合。提供一种描述物理层、逻辑层、视图层数据库设计的方式。
四种模型:关系模型、实体-联系模型、基于对象的数据模型、半结构化数据模型
数据库语言:
数据操纵语言(DML):增删改查
数据定义语言(DDL):说明存储结构和定义方式等,定义数据库模式的实现细节
约束工具:每当数据更新时,都会检查这些约束。
以最小代价测试的完整性约束:
域约束:通过声明属性
参照完整性:一个关系中给定属性集上的取值也在另一个关系某一属性集的取值中出现
断言:数据库需要时刻满足的某一条件
授权:权限
关系数据库:使用一系列表来表达数据及数据间的联系。
数据操纵语言:
SQL查询语言时非过程化的。以一个或几个表作为输入,总是仅返回一个表。
数据定义语言:
SQL提供了一个丰富的DDL语言,可以定义表、完整性约束、断言等。
需要通过宿主语言,再其中潜入SQL查询来访问数据库。
* 一种是通过提供应用程序接口(过程集),它可以用来将DML和DD了的语句发送给数据库再取回结果 ; 与C语言一起使用的开放数据库来凝结(ODBC)标准,时一种常用的应用程序接口标准。Java数据库练级(JDBC)标准为Java语言提供了相应的特性。
* 另一种通过扩展宿主语言的语法。在宿主语言中嵌入DML调用。
数据库设计:主要是数据库模式的设计。
初始阶段:全面刻画预期的数据库用户的数据需求
下一步:选择一个数据模型,并运用该选定的数据模型的概念,将哪些需求转化为一个数据库的概念模式。涉及决定数据库中应该包括哪些属性,以及如何将这些属性组织到多个表中。前者基本上是商业决策,后者两种方法:一是使用实体--联系模型,另一种是引入一套算法(统称规范化)
最后:将抽象数据模型转换到数据库实现进入最后两个设计阶段。(逻辑设计阶段、物理设计阶段)
数据存储与查询:数据库系统划分为不同模块,每个模块完成系统的一个功能。数据库系统的功能部件大致分为存储管理器和查询处理部件。
存储管理器:将各种DML语句翻译为底层文件系统命令。负责数据库中数据的存储、检索和更新。
部件包括:权限及完整性管理器、事务管理器、文件管理器、缓冲区管理器
实现的几种数据结构,作为系统物理实现的一部分:数据文件(存储数据库自身)、数据字典(存储数据结构的元数据,尤其数据库模式)、索引(提供对数据项的快速访问)
查询处理器:
DDL解释器:解释DDL语句并记录在数据字典中
DML解释器:将查询语言中的DML语句翻译为一个执行方案。还可进行查询优化
查询执行引擎:执行由DML编译器产生的低级指令
事务管理:
原子性:一系列操作要么都完成,要么都不完成
一致性:双方操作最终保证正确一致
持久性:最终结果不会尹系统问题而变化
事务:数据库应用中完成 单一逻辑功能 的操作集合。
事务管理器包括并发控制管理器和恢复管理器