1.引言
1-1.简述
数据库管理系统(DBMS)由一个互相关联的数据的集合和一组用于访问这些数据的程序组成。
这个数据集合通常称作数据库(Database)。DBMS的主要目标是要提供一种可以方便,高效的存储数据库信息的途径。
设计数据库系统的目的是为了管理大量信息。
1-2.文件处理系统
文件处理系统(File-processing System)是传统的操作系统所支持的。永久记录被存储在多个不同的文件中,人们编写不同的应用程序来将记录从有关文件中取出或加入到适当的文件中。
弊端:
- 数据冗余和不一致(data redundancy and inconsistency)
- 数据访问困难
- 数据孤立(data isolation)
- 完整性问题(integrity problem)
- 原子性问题(atomacity problem)
- 并发访问异常(concurrent-access anomaly)
- 安全性问题
2.数据视图
数据库系统的一个主要目的是给用户提供数据的抽象视图,也就是说,系统隐藏关于数据存储和维护的某些细节。
2-1.数据抽象
一个可用的系统必须能够高效的检索数据。
- 物理层。最低层次的抽象,描述数据实际上是怎样存储的。物理层详细描述复杂的底层数据结构。
- 逻辑层。比物理层稍高的抽象,描述数据库中存储什么数据,以及这些数据间存在什么关系。
- 视图层。最高层次的抽象,只描述整个数据库的某个部分。
这三层抽象的相互关系如下图:
2-2.实例和模式
实例:特定时刻存储在数据库中的信息的集合称作数据库的一个实例。
模式:数据库事务总体设计称作数据库模式。
根据前面讨论的不同的抽象层次,数据库系统可以分为几种不同的模式:
- 物理模式。隐藏在逻辑模式之下
- 逻辑模式。目前最重要的一种模式
- 子模式。
3.什么是数据库
数据库起源于规范化 “ 表(Table) “ 的处理。
表(Table):以按行按列形式组织及展现的数据。
表(Table)中描述了一批相互有关联关系的数据–>关系
常用术语:
数据库(Database):相互之间有关联关系的若干个Table的集合,如下图。
以下的图中,左边称为结构化数据库,右边称为非结构化数据库。
左边称为结构化数据库,右边称为非结构化数据库。非结构化数据库除了有关系数据库的特性之外,还有其他的特性。各种各样的数据都可聚集成库,它们的基础都是关系数据库。
4.什么是数据库系统
4-1.数据库系统(工作环境)
- 数据库(DB):Database
- 数据库管理系统(DBMS)
- 数据库应用(DBAP)
- 数据库管理员(DBA)
- 计算机基本系统
4-2.实例层次
数据库系统(工作环境):图书管理数据库系统
4-3.实例化与抽象化(概念化)
5.数据库管理系统(DBMS)
5-1.从用户角度
5-1-1.具有数据库定义的功能
定义数据库中Table的名称,标题(内含的属性名称及对该属性的值的要求)等。
- DBMS提供一套数据定义语言(DDL:Data Definition Language)给用户
- 用户使用DDL描述其所要建立表的格式
- DBMS依照用户的定义,创建数据库及其中的Table
5-1-2.具有数据库操作的功能
向数据库当中的Table中增加,删除,更新数据及对数据进行查询,检索,统计等。
- DBMS提供一套数据操纵语言(DML:Data Manipulation Language)给用户
- 用户使用DML描述其所要进行的增,删,改,查等操作
- DBMS依照用户的操作描述,实际执行这些操作
5-1-3.具有数据库控制的功能
控制数据库中的数据使用。
- DBMS提供一套数据控制语言(DCL:Data Control Language)给用户
- 用户使用DCL描述其对数据库所要实施的控制
- DBMS依照用户的操作描述,实际执行控制
5-1-4.具有数据库维护的功能
转储,恢复,重组,性能检测,分析
- DBMS提供一系列程序(实用程序,例行程序)给用户
- 在这些程序中提供了对数据库维护的各种功能
- 用户使用这些程序进行各种数据库维护操作
数据库维护的实用程序,一般都是有数据库管理员(DBA)来使用和掌握的。
5-2.数据库语言
- 数据定义语言(DDL:Data Definition Language)
- 数据操纵语言(DML:Data Manipulation Language)
- 数据控制语言(DCL:Data Control Language)
- 数据库各种操作的执行
5-3.从系统实现角度
强调了”形式->构造->自动化”
6.相关介绍
岗位介绍
- End Users,普通用户
- Application Programmers,应用程序员
- Database anylyzer and designer
- Database Administrators,DBA
- Database Management System designer and inplementor
- Techniques for Special and New Database Management Syatem
7.数据库的标准结构
7-1.分层抽象
DBMS管理数据的三个层次
- External Level,User Level:某一个用户能够看到的与处理的数据,全局数据中的某一部分
- Conceptual Level,Logic Level:从全局角度理解/管理的数据,含相应的关联约束
- Internal Level,Physical Level:存储在介质上的数据,含存储路径,存储方式,索引方式等
7-2.数据(视图)与模式
模式(Schema):
- 对数据库中数据所进行的一种结构性的描述
- 所观察到数据的结构信息
视图(View)/数据(Data):某一种表现形式下表现出来的数据库中的数据
三级模式(三级视图)
两层映像
8.数据模型
8-1.概念
数据库结构的基础是数据模型。数据模型是一个描述数据,数据联系,数据语义以及一致性约束的概念工具的集合。
8-2.分类
- 关系模型:使用表的集合来表示数据和数据间的联系。使用最广泛。
- 实体-联系(E-R)模型
- 基于对象的数据模型(object-based data model):面向对象的程序设计导致面向对象数据模型的发展。
- 半结构化数据结构
PS:历史上网状数据模型和层次数据模型已经很少被使用了。
9.关系模型简述
标准的数据库语言SQL语言是建立在关系模型基础上的。形象的说,一个关系(relation)模型就是一个表(Table)。
关系模型就是处理Table的,它由三个部分组成:
- 描述DB各种数据的基本结构形式(Table/Relation)
- 描述Table与Table之间所可能发生的各种操作(关系运算)
- 描述这些操作所应遵循的约束条件(完整性约束)
10.什么是关系
10-1.表的基本构成要素
10-2.相关概念
我们必须有一种能够区分给定关系中不同的元组的方法。这用它们的属性来表明。也就是说,一个元组的属性值必须是能够唯一区分的。换句话说,一个关系中没有两个元组在所有属性上的取值都相同。
超码:是一个或多个属性的集合,这些属性的集合可以我们在一个关系中能够唯一标识一个元组。超码中可能包含无关紧要的属性。
候选码/候选键:最小的超码称之为候选码。关系中的一个属性组,其值能够唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质,这样的属性组称作候选码。
主码/主键(Primary Key):当有多个候选码时,可以选定一个作为主码。DBMS以主码为主要线索管理关系中的各个元组。主码应该选择那些值从不或极少变化的属性。(no part of a primary key may be null)
主属性与非主属性:包含在任何一个候选码中的属性被称作主属性,而其他属性被称作非主属性。
外码/外键(Foreign Key):关系R中的一个属性组,它不是R的候选码,但它与另外一个关系S的候选码相对应。primary key of one table that has been placed into another table to create a common attribute
11.关系数据库
关系数据库是由表(Table)的集合构成,每个表有唯一的名字。
一般来说,表中一行代表了一组值之间的联系。
元组,只是一组值的序列(或列表)。在n个值之间的一种联系可以在数学上用关于这些值的一个n元组(n-tuple)来表示,换言之,n元组就是一个有n个值的元组,它对应表中的一行。
在关系模型的术语中,关系用来指代表,二元组用来指代行,类似的,属性指代表中的列。
对于关系的每个属性,都存在一个允许取值的集合,成为该属性的**域(domain)**。
12.实体关系图(ERD)
更多相关视频,请点击: