【高级数据库】第一章 DBMS系统概述
博主学院最近有关于高级数据库的课程,为了很好的记录高级数据库的相关知识点,开辟了以《数据库系统实现(第二版)》为基础,结合学院课程具体的内容,编写本栏目。
高级数据库是建立在已学习《数据库导论》的基础上,要求学习者已经具备基本的数据库理论基础以及数据库操作的知识。
第01讲 数据库概述
数据库是数据库管理系统主要操作的对象之一。数据库本质上是信息的集合,是指由数据库管理系统管理的数据的集合。数据库的能力来源于一个知识和技术的结合体,并已经嵌入在专门的软件中,这个软件即为“数据库管理系统(DBMS)”,或简称为“数据库系统”。
DBMS是一个复杂的强有力的系统,可以有效的创建和管理大量数据。DBMS和操作系统(OS)一样是支撑用户与计算机底层交互的重要部件。其满足:
1. 允许用户使用专门的数据定义语言(DDL)创建数据库并指定其逻辑结构;
2. 允许用户可以使用适当的语言完成查询和修改操作。这种语言被称为查询语言,或数据操作语言(DML);
3. 允许长期储存大批量数据(TB甚至是PB级),并且要求高效准确的进行数据的查询与修改操作;
4. 使得数据具有持久性,亦即具有很强的恢复性;
5. 孤立性:控制多个用户同时对数据库操作,且不允许用户间有不恰当的影响;
6. 原子性:保证执行的操作必须完整执行或不执行,不能出现执行部分或不完整的操作。
数据库管理系统首先出现于上世纪60年代,最初的应用主要由银行系统、航空公司订票系统、企业管理记录等。这些早期的DBMS通常采用层次型的、基于树或网络结构的模型,只能支持简单的查询语句。
1970年,Ted Codd发表论文《A relation model for large shared data banks》表示数据库系统应该呈现给用户组织成“关系”的表的数据。关系数据库可以让程序员不需要关心存储结构,且支持高级查询语句。现如今数据库仍大量采用基于关系模型的数据库。
现如今随着PC机的普及,数据库已经可以保存在个人电脑中,可供个人保存和使用;同时海量数据的出现,数据库的规模也随之变大,已经可以完成对PB级的数据进行高效查询和修改。
另外,信息集成问题是对数据维护的重要问题,我们知道很多数据库是相对分散的,甚至由于逻辑结构和模型的不同使得不同数据库之间无法进行集成。一种常用的方法是构建数据仓库,将众多的遗留数据库中的信息进行适当的翻译,周期性的拷贝到中心数据库中。另一种方法是实现一个中间件,它可以将不同数据库中的数据集成到一起,通过与不同类型的数据库进行翻译。
相关知识
(1) 什么是数据库管理系统?
数据库管理系统又称数据库系统,英文为DBMS。DBMS是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。大部分DBMS提供数据定义语言DDL(Data Definition Language)和数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。
数据库管理系统是数据库系统的核心,是管理数据库的软件。数据库管理系统就是实现把用户意义下抽象的逻辑数据处理,转换成为计算机中具体的物理数据处理的软件。
(2)数据定义语言(DDL)和数据操作语言(DML)分别指什么?
DBMS方便用户在不需要考虑数据存储结构的基础上,通过自定义编写数据定义语言来完成数据库的创建。通过编写数据操作语言来完成数据的增删改查。以Mysql为例,数据定义语言即为CREATE、ALTER 、TRUNCATE 和DROP;数据操作语言则为INSERT、SELECT、UPDATE、DELETE。
(3)数据仓库是什么?其与数据库有什么联系?
数据仓库(DW)是一个面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合,用于对管理决策过程的支持。数据仓库通常为了储存超大量数据而设计,一般可以为不同数据源的集成。数据仓库一旦保存数据后是不支持增删改操作的。
数据库(DB)是一种逻辑概念,用于储存一定的结构化数据。数据库包含若干张二维表,每张表中的一个记录即为一个数据,而每个字段则保存相应的属性。一般数据库是需要满足增删改查的,需要数据库管理系统对其进行优化。
数据仓库本质与数据库一样均是一种逻辑概念,也同样由数据库管理系统进行管理,但数据仓库的数据量是明显大于普通数据库的,同时数据仓库一般用于数据挖掘与海量数据分析,具有决策功能。数据仓库是数据库的一种升级版。
【参考:数据仓库介绍】
下一讲:DBMS概述
博客记录着学习的脚步,分享着最新的技术,非常感谢您的阅读,本博客将不断进行更新,希望能够给您在技术上带来帮助。