目录
一、The Need for Databases 为什么需要数据库?
前言
本文主要介绍数据库的引入和一些概念。
一、The Need for Databases 为什么需要数据库?
Database: An integrated collection of related data constitutes a Database(DB).
相关数据的集成集合,构成数据库(DB)。
数据有很多种类型,包括结构化数据、半结构化数据和非结构化数据等,结构化数据可以用二维表结构来逻辑表达实现,非结构化数据则不能,如:视频、音频等,数据库关注的是结构化数据。早期使用文件管理数据,但使用文件存储数据存在缺陷。
文件存储数据的缺点(drawbacks)
(1)数据存在冗余和不一致问题,比如有些数据会在不同的文件中重复出现,而且还可能不一致
(2)获取数据困难,需要提前了解到文件格式,而且需要通过编写程序或者手工提取才能得到想要的数据
(3)数据隔离,数据分散在不同文件,而且有可能存在不同的格式
(4)完整性问题,数据的一致性约束需要代码设定,要想改变约束只能修改程序。
(5)修改时的原子性问题,有时为了完成一项任务,需要对多个数据进行操作,这多个操作要么都不发生,要么都完成才能保证数据库的一致性,所以这多个操作应该是原子的,不可拆分的,但文件处理系统很难保证原子性。
(6)多用户并发获取异常,读取和修改的冲突
(7)安全问题,文件的权限控制只能以文件为单位,不能以数据为单位,也不能细化到每个用户。
二、Data models 数据模型
1.抽象层次
(1)物理层(Physical level)描述数据如何存储,也就是介绍复杂的底层数据结构
(2)逻辑层(logical level)描述数据库中存储了什么数据及这些数据间存在什么关系
(3)视图层(veiw level)应用程序隐藏(封装)数据类型的细节,也可以为了保证安全隐藏一部分信息
2.实例和模式
实例(instance):特定时刻存储在数据库中的信息的集合称作数据库的一个实例
模式(schema):数据库的总体设计
模式可分为三类:
外模式(External Schema,也称子模式或者用户模式):数据库用户使用的局部数据的逻辑结构和特征的描述
模式(Logical Schema,也称逻辑模式):数据库中全体数据的逻辑结构和特征(型)的描述(不涉及具体数据)
内模式(Physical Schema,也称存储模式或者物理模式):数据物理结构和存储方式的描述,数据库管理员(DBA)所关注的
3.数据模型
数据模型是一个描述数据、数据联系(relationships)、数据语义(semantics)以及数据约束(constraints)的概念工具的集合,主要有关系模型(relational model)、实体—-联系模型(entity-relationship model)、基于对象的数据类型(object-based data model)、半结构化数据类型(semistructured data model),曾经还依次出现过层次数据模型(hierarchical data model)、网状数据模型(network data model),而后演变出关系模型。
关系模型:所有的数据都存储在多种多样的表中,最顶上一行为columns,也叫作属性,再下面的信息称为rows,也叫作元组记录,整个表便是relation。
4.数据库语言
数据库系统中有数据定义语言(Data Definition Language,DDL)和数据操纵语言(Data Manipulation Language,DML),DDL用于定义数据库模式,DML用于访问或操纵按照某种适当的数据模型组织起来的数据。
Structured Query Language(SQL)结构化查询语言,是一种商业广泛应用的语言,其中包含DDL和DML,通常使用于人机交互,一般与高级语言相结合,还会配合应用程序接口(e.g. ODBC/JDBC)使用。
三、数据库设计
1.设计过程及设计成果
(1)概念设计(Concept Design)—— 实体关系图(ER diagram)
(2)逻辑设计(Logical Design)—— 确定数据库模式(schema)
(3)物理设计(Physical Design)—— 指定数据库的物理特性
2.设计方法
(1)实体关系模型(Entity Relation Model)
(2)泛式理论(Normalization Theory)
四、数据库引擎(DB Engine)
1.存储管理器
存储管理器是数据库系统中负责在数据库中存储的低层数据与应用程序以及向系统提交的查询之间提供接口的部件。存储管理器负责与文件管理器进行交互。原始数据通过操作系统提供的文件系统存储在磴盘上。存储管理器将各种DML语句翻译为底层文件系统命令。因此,存储管理器负责数据库中数据的存储、检索和更新。
其中包含事务管理器(Transaction manager),确保原子性操作,即系统在出现故障或事物失败的情况下,数据库都能保持一致。每一个事务(transaction)是一个既具原子性又具一致性的单元。
2.查询处理器
查询处理器组件包括:DDL 解释器(DDL interpreter)、DML 编译器(DML compiler)和查询执行引擎(query evaluation engine)。
查询执行流程:
五、数据库的体系结构(architecture)
1.两层体系结构
![](https://img-blog.csdnimg.cn/4cd7bf700c564cdf8e57f13c1e12dc50.jpeg)
2.三层体系结构
总结
通过本篇文章可以比较宏观的了解到数据库的概念,对后面的学习搭好框架。
未完待续……