1.1. DBMS系统结构组成
数据库、DBMS、数据库系统等基本概念
数据
- 数据(Data)是数据库中存储的基本对象
- 数据的定义
- 人们用来反映客观世界而记录下来的可以鉴别的符号
- 数据的种类
- 数值数据:0-9
- 非数值数据:字符、文字、声音、图形、图像等
- 数据的特点
- 数据与其语义是不可分的
- 例子1:93是一个数据
- 语义1:学生某门课的成绩
- 语义2:某人的体重
- 语义3:计算机学院2016级学生人数
- 例子2:学生档案记录(李明,197205,中国科大,1990)
- 语义1:学生,出生年月,所在学校,毕业年份
- 语义2: 学生,出生年月,录取大学,入学时间
数据库
- 数据库的定义 数据库(Database,简称DB)是长期储存在计算机内、有 组织的、可共享的大量数据的集合
- 数据库的基本特征
- 数据按一定的数据模型组织、描述和储存
- 可为各种用户共享
- 数据间联系密切,具有最小的冗余度和较高的独立性
- 服务于某个特定的应用
- 例:图书馆的图书数据库、机场的航班数据库、银行数据库……
数据库模式 (Schema)
数据库模式是数据库中全体数据的逻辑结构和特征的描述 ![[Pasted image 20240108110812.png]]
数据库管理系统
DBMS(Database Management System),是计算机程序的集 合,用于创建和维护数据库 ![[Pasted image 20240108110347.png]]
- 位于操作系统和用户应用之间
- 总是基于某种数据模型
- 数据库厂商的产品通常指DBMS,如Oracle11g、Microsoft SQL Server 2008、DB2、MySQL等
DBMS一般架构
![[Pasted image 20240108210938.png]]
数据库系统
- DBS(DataBase System),指在计算机系统中引入了数据库后的系统,即采用了数据库技术的计算机系统
数据库设计问题
- 如何设计和实现一个DBMS来高效的组织和管理数据库?——DBMS实现问题 研究生课程内容
- 如何针对特定应用的需求设计一个合理的数据库结构?——数据库设计问题 本科课程内容
- 应用程序如何有效地存取数据库中的数据?——数据库存取问题 本科课程内容
DBMS实现问题
1、一个虚拟的DBMS:Megatron2000
- UNIX下的关系型DBMS,支持SQL
- 实现细节
- 关系通过文件(ASCII)存储,e.g. R存储在/usr/db/R中
Smith # 123 # CS Jones # 522 # EE
- 数据库模式存储在特定的文件(ASCII)中
R1 # A # INT # B # STR …
R2 # C # STR # A # INT …
Megatron 2000如何执行查询? 执行 “select * from R where condition”:
- 读数据字典获取R的属性
- 读R对应的文件,对于每一行数据:
- 检查条件
- 如果条件满足,则输出
执行”select A,B from R,S where condition”:
- 读数据字典获取R和S的属性
- 读R文件,对于每一行数据:
- 读S文件,对于每一行数据:
- 生成连接元组
- 检查条件
- 若条件满足,则输出
- 读S文件,对于每一行数据:
Megatron 2000功能总结
- 可以定义表
- 可以进行数据操作
- 数据更新
- 数据查询
Megatron 2000 存在什么问题?
元组平铺在磁盘上
- 将 ’EE’改为 ’ECON’,需要重写整个文件
- ASCII存储过于昂贵
- 删除操作同样代价很高
低级的查询处理
- 例,
select *from Student S,SC where S.sno = SC.sno and SC.credit > 3
- 先做连接比先做选择效率要低
- 未考虑更高效的连接算法
- 例,
没有缓冲区管理
- 数据直接从磁盘存取,磁盘I/O的代价昂贵
- 需要Buffer来加速数据存取效率
没有并发控制
- 多用户同时存取数据时数据一致性得不到保证
没有索引;数据查询效率低
- 不能快速地根据给定键值查询元组
- 总是要读入整个关系
没有可靠性
- 发生数据库系统故障时没有恢复机制
- 易出现数据不一致的情形
没有应用程序编程接口(API)
- 应用如何存取数据库?
糟糕的数据字典组织