希望有一天可以开一家咖啡馆,躲在僻静的巷子里,店里摆满自己喜欢的书,老沙发上睡几只慵懒的猫,我煮咖啡,你做蛋糕,就这样平平淡淡的日子——有这样想法的人,基本可判断为穷货
1、 数据库系统(Database
System,DBS)的定义:数据库系统是采用了数据库技术的计算机系统,是一个实际可运行的,按照数据库方法存储、维护和向应用系统提供数据支持的系统,是数据库、硬件、软件和数据库管理员的集合体。
2、 数据库系统(Database
System,DBS)的组成
a) 数据库(Database,DB)
i. 定义:数据库是一个企业组织各项应用有关的全部数据的集合。
ii. 分类:
1. 物理数据库:是应用数据的集合,它是数据库的主体;
2. 描述数据库:是各级数据结构的描述,由DD系统管理。
b) 硬件
i. 定义:是包括中央处理器、内存、外存、输入输出设备等硬件。
ii. 关注指标:内存、外存、I/O存取速度、可支持终端数和性能稳定性。
c) 软件
i. 数据库管理系统(Database Management System,DBMS):是指数据库系统中对数据进行管理的软件系统,它是数据库系统的核心组成部分。
ii. 操作系统(OS):主要是管理所有硬件的一个系统软件
iii. 各种主语言:编写应用程序的语言可以是C,C++,Java一类高级程序设计语言,称为主语言或宿主语言(Host language)<第三代语言3GL范畴>
iv. 应用开发支撑软件:为应用开发人员提供的高效率、多功能的交互式程序设计系统,有Depphi6.0,PowerBuilder10.0等<第四代语言4GL范畴>
d) 数据库管理员(Database Administrator,DBA)
i. 定义:DBA是控制数据整体结构的一组人员,负责DBS的正常运行,承担创建、监控和维护数据库结构的责任。
ii. 工作职责
1. 定义模式;
2. 定义内模式;
3. 与用户的联络;
4. 定义安全性规则,对用户访问数据库的授权;
5. 定义完整性规则,监督数据库的运行;
6. 数据库的转存和恢复工作。
iii. 需要素质
1. 熟悉企业全部数据的性质和用途;
2. 对所有用户的需求有充分的了解;
3. 对熊的性能非常熟悉;
4. 兼有系统分析员和运筹学专家的品质和知识
iv. 常用工具
1. 一系列的实用程序:如DBMS的装配、重组、日志、恢复、统计分析等程序;
2. DD系统:管理着三级结构的定义,DBA可以通过数据字典(Data Dictionary,DD)掌握整个系统的工作情况。
3、 数据库系统的全局结构:DBS的全局结构从用户、界面、DBMS和磁盘等四个层次考虑个模块功能之间的联系,实际上还有OS提供了DBS最基本的服务(读写磁盘)
a) 数据库用户:按照与系统交互方式不同,分成四类用户
i. DBA:DBA负责三级结构的定义和修改,以及访问授权、日常维护等工作。DBA和DBMS之间的界面是“数据库模式”。
ii. 专业用户:指数据库设计中的上层人士(系统分析员),专业用户和DBMS之间的界面是“数据库查询工具”。
iii. 应用程序员:指使用主语言和DML语言编写应用程序的计算机工作者,应用程序员和DBMS之间的界面是“应用程序”。
iv. 终端用户:指使用应用程序的非计算机人员。终端用户与DBMS之间的界面是“应用程序的运行界面”
b) DBMS的查询处理器:分类如下四类
i. DDL解释器:解释DDL语句,并将这些定义登录在数据字典中。
ii. DML编译器:对DML语句进行优化,并转换成查询求值引擎能执行的底层指令。
iii. 嵌入式DML的预编译器:把潜入在主语言中的DML语句处理成规范的过程调用形式
iv. 查询求值引擎:执行由DML编译器产生的底层指令。
c) DBMS的存储管理器
i. 权限和完整性管理器:测试应用程序对数据库的修改是否满足完整性约束,检查用户访问数据的合法性。
ii. 事务管理器:DBS的逻辑工作单元称为事务(Transaction),事务是由对DB的操作序列组成。用于确保DB一致性状态,保证并发操作正确执行。
iii. 文件管理器:负责磁盘空间的合理分配,管理物理文件的存储结构和存取方式。
iv. 缓冲区管理器:为应用程序开辟DB的系统缓冲区,负责将磁盘中读出的数据送入内存缓冲区
d) 磁盘存储器中的数据结构
i. 数据文件:存储数据库管理的用户数据自身。
ii. 数据字典:存储三级结构的描述(一般称为元数据Metadata)
iii. 索引:为提高查询速度而设置的逻辑排序手段。
iv. 统计数据:存储DBS运行时统计分析的数据。
v. 日志:存储DBS运行时对DB的操作情况,以备以后查阅数据库的使用情况以及数据库恢复时使用
4、 数据库系统的效益
a) 灵活性
b) 简易性
c) 面向用户
d) 有效的数据控制
e) 加快应用系统的开发速度
f) 维护方便
g) 标准化
零测试