此笔记所记录的课程为东南大学徐立臻老师所授
注意:此笔记内容不一定全面,我记录的只是针对我个人觉得比较重要的地方。
这门课的主要内容包括:
- 数据模型,SQL语言和用户接口
- DBMS的主要原理(主要架构、查询优化、并发控制、恢复)
- 数据库系统的安全及完整性约束
- 分布式数据库系统的基本概念
- 数据库技术中新的研究和领域
章节
- Introduction
- Data Model(重点)
- User Interfaces and SQL Language(重点)
- Database Management Systems(次重点)
- The Security and Integrity Constrain
- Database Design(重点)
- Distributed Database System
- New Research and Application Fields
第一章 简介(Introduction)
What is Database?
- 定义:A very large, integrated collection of data.(或者说面向一个企业或单位的相关数据的集合就叫数据库,数据库是支撑各种应用开发的库)
- 作用:Models real-world enterprise.
1.Entities(eg. students , course)
2.Relationships(实体之间的联系,或叫对象之间的联系)
总之,数据库就是将这些实体以及这些实体之间的联系,以某种形式存储起来,形成的数据集就叫做数据库。
What is DBMS?
定义:A Database Management System(DBMS)is a software package designed to store and manage database.
Files and Database (文件和数据库)
文件和数据库都可以用来存储数据,但是文件是操作系统提供的一个最简单最基本的一个机制。在操作系统里面,文件是没有结构的,就是一个字符流。并不具备很强的数据管理功能。
Data,Data Model(数据模型) and Data Schema(数据模式)
- 数据是一种符号,是用来描述现实世界中事物的一种符号系统。比如人的姓名、桌子等。
- 数据模型可以理解成一种数据结构,它是用来描述现实世界中事物的一种方法。不同的数据模型其实是用了不同的方法来描述现实世界。
-
数据模式是一种结果,是用给定的数据模型对特定的企业进行描述,产生的结果就叫数据模式。如果用程序设计语言来说,我们可以把data Model看做一门程序设计语言,那Data Schema就是编写出来的程序。同样的语言可以编写出很多不同的程序。那每一个不同的程序就是一个schema。
注意:数据模型和数据模式的区别和联系。
数据库系统的抽象级别(三级模式)
数据库系统分为了如下图所示的几个抽象级别。
Physical Schema
Physical Schema描述了数据在磁盘上是如何存储的。以关系型数据库为例, 比如说有学生信息表和课程信息表,那么这些表是用一个堆文件来存储还是用哈希文件来存储 ,用什么样的格式来存储,这就是Physical Schema。Conceptual Schema(也叫逻辑模式)
我有多少张表,每张表的结构是什么,每张表里面每个属性类型的长度是什么这些都属于逻辑模式。View模式(视图)
View模式是最终给用户看到的数据的样子。
他们之间的关系:逻辑模式和物理模式是一一对应的,逻辑模式里有一张表,那么在物理模式里面肯定对应一个存储结构。逻辑模式里面的关系都是通过物理模式存储的。而视图是由逻辑模式映射出来的,可能不同权限的人看到的数据是不一样的。-
关于数据库系统的三级模式的举例
我们拿学校来举个例子,如下图所示,图片里面的逻辑结构、物理结构和视图写的很清晰了。这里面有个地方要说明一下,就是最后的External Schema中的视图是怎么计算的,里面的enrollment是怎么计算的。其实视图我们上面说了是种映射,映射是可以进行计算的。我们可以通过映射计算,只把每门课有多少人选择的计算结果返回给特定权限的人就可以了,不用把所有详细的信息都告诉他。
数据独立性
-
逻辑数据独立性
逻辑数据独立性怎么理解,我们还拿上面的例子说,假如逻辑结构中的Enrolled表的某个属性发生了变化(增加了某个属性或者改变了某个属性的类型等)那么只要能找到一种映射,使得该映射对应的视图和之前的视图是一样的,我们就称这种行为为逻辑数据独立。也就是说,在一个数据库系统之上开发的应用程序(应用程序都是基于View开发的), 它可以不受这个数据库系统中逻辑结构变化的影响。 -
物理独立性
物理独立性是指当物理存储结构发生变化的时候,基于这个数据库系统开发的应用程序应该不会受到影响。
总结:用DBMS就可以实现数据库的三级模式和两级映射,从而可以实现数据的两级独立性这是使用DBMS管理数据库的最大的好处之一。如果用文件来管理数据是没有这些特点的。
数据库技术的历史和分类(非重点)
按照数据库管理系统体系结构的发展来分类
-
Centralized database systems
早期的DBMS是一个集中式结构(一个大型主机,多个远程终端),所有数据都放在这个大型主机里面进行管理。 -
Parallel database systems
并行数据库系统:由于并行计算机的出现(也就是多个CPU),使得DBMS系统可以把查询优化等处理机制结合并行机制进行优化,从而形成并行的处理方式,但该方法还是集中式的结构。 -
Distributed database systems
随着分布式计算技术的发展,出现了分布式系统(利用多台计算能较弱的微型机,通过分布式系统整合成一个类似中型机处理能力的一个系统)。利用这个系统进行数据库管理就叫做分布式数据库系统。往往这种系统针对企业级的数据库管理,因为存储和查询计算很大,单台计算机无法完成任务 。 -
Mobile database systems
随着无线通讯技术的发展,出现了移动数据库系统。主要研究在移动环境下对数据库的管理方式。
根据数据库的应用系统的体系结构分类
图片还是参考上面的图片,这里主要说下Client/Server structure结构(CS结构)和Multi-tier structure(BS结构)。
- CS的基本结构如下图所示:
一般把处理能力比较强机器作为服务器(Server),在上面安装上数据库管理系统,用来管理数据查询访问等功能。C1...Cn等都是客户端机,上面安装的都是应用程序,他们和服务器联网用来进行各种数据查询等功能。
- BS的基本结构如下图所示:
BS结构不多讲了
数据库系统
什么叫数据库系统呢?如下图所示,Applications + DBMS + Database + DBA就构成了一个数据库系统。
在数据库系统中,DBMS是一个核心,而DBA是一个相当关键的角色。它对整个数据库系统的正常运行和维护起到一个非常重要的作用。DBMS是核心,是由于它有如下几个重要特性:
- 提供了高级用户接口
- 支持有效的查询处理和优化
- 支持有效的目录管理
- 提供有效的并发控制和恢复功能
- 支持完整性约束/检查机制
- 保证了完善的访问控制。
数据库系统的生命周期(重要)
下图是数据库系统的生命周期,生命周期可以理解成数据库设计的过程。那该图下半部分的内容说的是在数据库设计过程中所需要考虑的一些因素。其中包括:
- Information requirement(用户需要管理哪些数据)
- Process requirement(对数据的处理需求)
- DBMS feature(需要考虑DBMS特点,到底要用Oracle还是MySQL或者其它)
- 需要考虑硬件和操作系统特点
综合以上得到的就是数据模式和典型的应用程序。