第一章
- The Megatron 2000 Database
- 第一版本
例子:
开始操作:
SQL 查询:
-
-
- 执行操作
-
------------------------------------------------------------------
for(each tuple s in Students)
for(each tuple d in Depts)
if(s and d satisfy the WHERE-condition)
display the office value from Depts;
实现过程中的问题:
-
-
- 元组在磁盘排列的方式不便于数据的修改和删除
- 搜索代缴比较高,每次查找都需要查找整个表
- 采用的算法性能过于低下
- 没有存储在主存的索引,所有数据都存于磁盘
- 不能进行高并发操作
- 没有可靠机制当数据在发生意外时
- 不安全,可能存在潜在操作或者
- 没有控制访问权限机制
-
矩形框:系统组件
双重矩形框:内存数据结构
实线:控制和数据流
虚线:数据流
1、数据库管理人员通过DDL指令调整文件模式
2、使用者/应用软件
- 查询语句,通过编译器优化后通过索引查找数据存储页面将将其传递给缓存管理器,磁盘将数据传入缓存(部分数据库需要借助操作系统指令,大部分直接通过数据库指令到磁盘控制器)
- 事务处理:查询和其他行为被划分为事务,事务具有原子性,持久性。
3、主存缓冲区和缓冲区管理
数据库数据常存储与二级存储器(磁盘),索引等数据存储于主存,缓冲区管理器将DBMS负责的可用主存划分为磁盘块可用传输的页面大小的缓冲区。
4、事务处理
将一个或多个操作合并为一个事务,事务是工作的基本单位,是的执行必须具有原子性和隔离性,数据库操作系统保证其持久性。
事务处理器的工作:
- 日志:保证数据安全和持久性,通过日志恢复损坏信息,通常日志信息写入缓冲区,然后写入磁盘
- 并行控制:处理执行顺序保证事务执行独立性。调度程序通过锁机制来保证事务的完整处理,这些锁一般被存储于主存的锁表之中。
事务特性(ACID):
- A:原子性
- C:一致性
- I:隔离性
- D:持久性
- 死锁处理:通过撤销某些事务释放资源来解决死锁问题。
关系数据库回顾
Movie关系
由一组元组组成,一行代表一个元组,每列代表一个属性,属性值为同一种类型。
关系模式
数据库模式是关系模式的集合
数据库操作语言SQL
- 查询语句
实例:
查找三部以上剧的演员
嵌套子查询
- 视图
非关系数据库:
面向对象数据库:数据项为对象,对象归属于类,类有一系列特性,部分特性是属性,部分特性代表关系,部分特性是可以应用于其对象的方法。
- 文件是最大的数据集,文件由更小的数据单元组成
- 早期数据库,文件由字段组成的记录组成,每条记录类似个C的结构
- 在关系数据库,一个文件代表一个关系,由元组组成
- 面向对象数据库中,文件是类的范围,其组成由类的对象,对象的字段或实例变量,值根据某种关系表示对象的属性或者相关对象