DBMS
数据库管理系统DBMS的结构主要由两方面构成,相互关联的数据的集合Collection of interrelated data + 用户管理处理这些数据的软件Set of programs to access the data
Application
DBMS的应用列举:
- 企业信息存储客户,产品,购买信息等
- 银行存储客户账户,存款,交易信息等
- 学校存储学生,课程,成绩信息等
Purpose
使用DBMS管理这些数据的目的
在DBMS之前
在DBMS出现之前,信息被存储到计算机的文件系统中,计算机中有响应的应用程序去对这些文件进行操作,增加新的信息,删除不需要的信息,对存储的数据进行计算等等。每当需要记录一类新的信息,那么就需要建立一个新的永久性文件,并编写新的应用程序去处理这一新类信息,随着时间的推移越来越多的文件和程序会被加入。使用文件系统来管理数据的弊端也开始显现:
- 数据的冗余和不一致 data redundancy and inconsistentcy,数据文件与程序可能是由不同程序员在不同时刻编写记录的,相同的数据可能会被存储多次,程序也有可能是由不同的语言编写而成,这些冗余redundancy不仅会造成数据存储与访问的开销大,还会造成数据的不一致data inconsistency,即同一数据的不同副本不一致
- 数据访问困难 difficulty in accessing data,原始系统处理编写应用程序的功能有限,无法预知所有可能的需求,若某时需要一些具体相关联的信息却没有去获取它的应用程序,则只有两个解决办法,一是获取所有信息然后手工提取,二时让程序员重新编写一个应用程序去获取这些信息。但是需求是永远在变化的因此需要一种通用快速的数据检索办法
- 数据孤立 data isolation,数据分散在不同的文件中,格式也可能不相同
- 完整性 integrity,使用文件系统无法体现良好动态的约束,一组数据有可能出现完整性问题
- 原子性 atomicity,原子性操作即一个操作的多个步骤,要么全部正确执行要么都不执行,文件系统难以体现
- 并发访问异常 concurrent-access anomaly,多个用户同时操作文件更新数据曹成问题
- 安全性 security,用户访问数据的权限在文件系统中难以控制
Levels of Abstraction 层级抽象
- Physical Level 物理层最底层,描述数据实际上是如何储存的
- Logical Level 逻辑层高于物理层,描述数据库存储了哪些数据,以及这些数据之间有怎样的关系
- View Level 视图层最高层级,描述数据库的某个部分
Schema & Instance 模式与实例
数据库的总体设计称为模式 Schema,特定时刻储存在数据库中信息的集合为数据库的一个实例 Instance
Data Model 数据模型
数据模型描述数据库的结构,描述数据,数据联系,数据语义,数据约束的概念工具Conceptual Tools集合
Relational Model
Entity-Relationship Model
Semi-Structured Data Model
Object-based Data Models
数据库语言
DDL来定义数据库模式,DML来表达数据的查询与更新,一起构成SQL
DML(Data Manipulation Language) 数据操作语言
用于访问和操作以正确的数据模型所组织的数据
- 过程化 Procedural,用户指定需要什么样的数据以及以何种方式获得
- 陈述化 Declarative,只指定需要何种数据而不用指定如何获得
DDL(Data Definition Language) 数据定义语言
用于定义具体的数据库模式,DDL编译器用来生成一组table存储在数据字典中
Database Design 数据库设计
以数据模型来建立数据库
设计过程
- 概念设计:ER模型
- 逻辑设计:决定数据库模式,需要数据的什么属性?我们有数据库的什么属性以及这些属性如何在关系模型中分发
- 物理设计:决定数据库的物理层级
Data Independence 数据独立
- 物理数据独立
- 逻辑数据独立
Database System Structure 数据库系统结构
Query Processing 查询过程
- 解析和翻译
- 优化
- 评估
Storage Management 存储管理
存储管理器:提供保存在数据库中的低层级数据与应用程序以及提交给系统的查询之间的一个接口Interfae
- 存储管理器用于响应这些任务:对文件管理的响应;有效得存储,接受,更新数据
- 问题:存储权限;文件组织;索引与hash
Transaction Management 事务管理
Transaction事务:在数据库系统中用于表达一个逻辑函数的一系列操作
Database Users 数据库用户
- Application Programmers 使用DML与数据库系统交互
- Sophisticated Users 使用表单请求数据库查询语句
- Specialized Users 编写不同于传统数据处理的特殊数据库应用程序
- Naive Users 调用先前已经编写好的程序
DBA 数据库管理员
在数据库系统中协调各种工作,数据库对企业信息资源以及其所需要有良好的理解,其职责包括:
- 模式定义
- 存储结构以及获取方法定义
- 模式与物理组织的定义
- 给指定用于授予特定权限
- 确定完整约束
- 与用户之间的联络员liaison
- 在需求的变化中监控性能