轮廓
一、数据库的需求
二、数据模型
三、关系模型数据库
四、数据库设计
五、存储管理器
六、查询过程
七、事务管理程序
数据管理系统:DBMS
1.DBMS包含关于特定企业的信息
- 收集相关数据
- 访问数据的一组程序
- 既方便又有效的使用环境
2.数据库应用
- 银行
- 航空公司
- 大学系统
- 商店系统
3.数据库可以非常大
4.数据库涉及我们生活的方方面面
1.用文件存储数据的缺点:
- 数据的冗余和不一致性:多种文件格式,不同文件信息重复
- 访问数据困难:需要编写一个新的程序来执行每一个新的任务
- 数据孤立:多个文件和格式
- 完整性问题:完整性约束(例如,帐户余额> 0)成为“隐藏”在程序代码中,而不是显式地声明;很难添加新的约束或改变现有的约束。
- 更新的原子性:失败可能会使数据库处于不一致的状态,并执行部分更新;例子:从一个账户到另一个账户的资金转移要么完成,要么根本不发生。
- 多个用户的并发访问:性能所需的并发访问;不受控制的并发访问可能会导致不一致。例子:两个人同时读取一个余额(比如100),并通过提款(比如每人50)来更新它。
- 安全问题:很难让用户访问一些数据,而不是所有数据。很难做到部分访问。
2.数据库抽象级别:
物理层:描述一个记录(如:教师)是如何存储的。
逻辑层:描述存储在数据库中的数据,以及数据之间的关系。
视图层:应用程序隐藏了数据类型的细节,视图也可以出于安全考虑隐藏信息。
3.数据视图:
4.实例和模式:
- 与程序语言中的类型和变量相似。
-
模式-数据库的逻辑结构:
例如:数据库包含以下信息关于客户和账户以及二者之间的关联。
类似于一个程序当中的变量的类型信息
物理模式:数据库的物理层设计
逻辑模式:数据库的逻辑层设计 - 实例:特定时刻存储在数据库中的信息的集合。
- 物理数据独立性:更新物理模式而不必重写应用程序的能力。
5.数据模型:
用于描述的工具的集合:数据,数据联系,数据语义,数据约束。- 关系模型
其他不重要
6.关系模型:
- 重点在第二章介绍
- 范例:用关系模型表示的表格数据:
7.关系数据库示例:
8.数据操纵语言(DML):
- 用于访问和操纵由适当的数据模式组织起来的数据:DML也被称为查询语言。
- 两种语言类别:①过程化-用户指定需要什么数据以及如何获得这些数据。②声明化-用户指定需要什么数据但是不必指明如何获得这些数据。
- SQL是最广泛使用的查询语言(非过程化)
9.数据定义语言(DDL):
- 用于定义数据库模式的规范化符号:
范例: - DDL编译生成一系列列表存储在数据字典中
- 数据字典包含元数据(即关于数据的数据):
数据库模式
完整性约束:主关码字(每个ID独一无二的对应一个教师),参照完整性(SQL的引用约束) - 授权:我们可以访问哪些数据
10.SQL:
- SQL:广泛使用的非过程化语言。
- 应用程序通常通过以下途径之一来访问数据库:
- 语言扩展允许嵌入式SQL
- 允许向数据库发送SQL查询的应用程序接口
11.数据库设计:
设计一般结构的数据库的过程:
- 逻辑设计-取决于数据库模式。数据库设计需要找到关系模式的一个”良好“集合。
- 商业决策-数据库应该记录什么属性?
- 计算科学决策-应该采用何种关系模式?在多种关系模式中如何分配属性?
- 物理设计-取决于数据库的物理布局。
12.设计方法:
- 规范化理论(第八章):
- 实体联系模型(第七章):
1.将企业模型化为实体和联系的集合:
实体:在企业当中可区别于其他对象的事情或者物体。
联系:几个实体之间的关联。
2.通过实例-练习图解法来表示
13.对象-关系的数据模型:
- 关系模型:平面的,原子类的值。
- 对象关系的数据模型:
1.扩展关系数据模型,通过包含面向对象和结构,来处理添加的数据类型。
2.允许元组类型有复杂的类型,包括非原子值,例如嵌套关系。
3.保持关系基础,尤其是声明性的数据访问,同时扩展建模能力。
4.提供对现有关系语言的向上兼容。
14.数据库引擎:
1.存储管理:
- 存储管理器是在数据库中存储的低层数据与应用程序及向系统提交的查询之间提供接口的程序模块
- 存储管理器负责以下任务:
1.与文件管理器的交互
2.高效地存储、检索和更新数据 - 问题:
1.存储访问
2.文件组织
3.索引和散列
2.查询过程:
- 分析和翻译
- 优化
- 评估
1.评估给定查询的可选方式:
等价表达式
每个操作的不同算法
2.评估查询的方式好坏,所造成的成本差距可能是巨大的
3.需要估计运行的成本
3.事物管理:
- 系统故障了怎么办?
- 超过一名用户同时更新同一个数据会怎样?
- 事务是数据库应用中完成单一逻辑功能的操作集合
- 事务管理器确保数据库处于持久状态,无论是发生系统故障,或者事务失败。
- 并发控制管理器控制并发事务间的相互影响,保证数据库的一致性.
15.数据库体系结构:
数据库系统的体系结构受到运行数据库的底层计算机系统极大影响。
- 集中化
- 客户端-服务器
- 并行(多处理器)
- 分布