第1篇 基础篇
第1章 绪 论
复习笔记
PART01数据库系统概述
01数据库的4个基本概念
(1)数据(data)
数据是数据库中存储的基本对象,描述事物的符号记录称为数据。描述事物的符号可以是数字,也可以是文字、图形、图像、音频、视频等。
(2)数据库(DataBase,DB)
①定义
数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度(redundancy)、较高的数据独立性(dam independency)和易扩展性(scalability),并可为各种用户共享。
②特点
a.永久存储;
b.有组织;
c.可共享。
(3)数据库管理系统(DataBase Management system,DBMS)
数据库管理系统是位于用户与操作系统之间的一层数据管理软件。数据库管理系统和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。它的主要功能包括以下几个方面:
①数据定义功能
数据库管理系统提供数据定义语言(Data Definition Language,DDL),用户通过它可以方便地对数据库中的数据对象的组成与结构进行定义。
②数据组织、存储和管理
数据组织和存储的基本目标是提高存储空间利用率和方便存取,提供多种存取方法(如索引查找、hash查找、顺序查找等)来提高存取效率。
③数据操纵功能
数据库管理系统还提供数据操纵语言(DataManipulationLanguage,DML),实现对数据库的基本操作,如查询、插入、删除和修改等。
④数据库的事务管理和运行管理
数据库在建立、运用和维护时由数据库管理系统统一管理和控制,以保证事务的正确运行,保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。
⑤数据库的建立和维护功能
数据库的建立和维护功能包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。
⑥其他功能
其他功能包括通信功能;数据转换功能;互访和互操作功能等。
(4)数据库系统(DataBase System,DBS)
数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DataBase Administrator,DBA)组成的存储、管理、处理和维护数据的系统。
数据库系统如图1-1所示。引入数据库后计算机的层次结构如图1-2所示。
02数据管理技术的产生和发展
在计算机硬件、软件发展的基础上,数据管理技术经历了人工管理、文件系统、数据库系统3个阶段。这3个阶段的特点及其比较如表1-1所示。
表1-1 数据管理3个阶段的比较
人工管理阶段 |
文件系统阶段 |
数据库系统阶段 |
||
背景 |
应用背景 |
科学计算 |
科学计算、数据管理 |
大规模数据管理 |
硬件背景 |
无直接存取存储设备 |
磁盘、磁鼓 |
大容量磁盘、磁盘阵列 |
|
软件背景 |
无操作系统 |
有文件系统 |
有数据库管理系统 |
|
处理方式 |
批处理 |
联机实时处理、批处理 |
联机实时处理、分布处理、批处理 |
|
特点 |
数据的管理者 |
用户(程序员) |
文件系统 |
数据库管理系统 |
数据面向的对象 |
某一应用程序 |
某一应用 |
现实世界(一个部门、企业、跨国组织等) |
|
数据的共享程度 |
无共享,冗余度极大 |
共享性差、冗余度大 |
共享性高、冗余度小 |
|
数据的独立性 |
不独立,完全依赖于程序 |
独立性差 |
具有高度的物理独立性和一定逻辑独立性 |
|
数据的结构化 |
无结构 |
记录内有结构、整体无结构 |
整体结构化,用数据模型描述 |
|
数据控制能力 |
应用程序自己控制 |
应用程序自己控制 |
由DBMS提供数据安全性、完整性、并发控制和恢复能力 |
(1)人工管理阶段
人工管理数据具有如下特点:
①数据不保存。
②应用程序管理数据。
③数据不共享。
④数据不具有独立性。
(2)文件系统阶段
①特点
a.数据可以长期保存;
b.由文件系统管理数据。
②缺点
a.数据共享性差,冗余度大;
b.数据独立性差。
(3)数据库系统阶段
①特点
a.数据结构化;
b.数据的共享性高、冗余度低且易扩充;
c.数据独立性高;
d.数据由数据库管理系统统一管理和控制。
②DBMS的数据控制功能
a.数据的安全性(secufity)保护;
b.数据的完整性(integrity)检查;
c.并发(concurrency)控制;
d.数据库恢复(recovery)。
PART02数据模型
01定义
数据模型(data model)是对现实世界数据特征的抽象,是用来描述数据、组织数据和对数据进行操作的模型。
02分类
根据模型应用的不同目的,数据模型分为两类:一类是概念模型;一类是逻辑模型和物理模型。
(1)概念模型
概念模型(conceptual model)也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。
(2)逻辑模型和物理模型
逻辑模型主要包括层次模型(hierarchicalmodel)、网状模型(networkmodel)、关系模型(relational model)、面向对象数据模型(object oriented data model)和对象关系数据模型(object relational data model)、半结构化数据模型(semistructured data model)等。它是按计算机系统的观点对数据建模,主要用于DBMS的实现;物理模型是对数据最底层的抽象,它描述数据在系统内部的表示方式和存取方法,或在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。
03概念模型
(1)特点
①较强的语义表达能力。
②简单、清晰、易于用户理解。
(2)基本概念
①实体(entity)
客观存在并可相互区别的事物称为实体。
②属性(attribute)
实体所具有的某一特性称为属性。
③码(key)
唯一标识实体的属性集称为码。
④实体型(entity type)
具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
⑤实体集(entity set)
同一类型实体的集合称为实体集。
⑥联系(relationship)
在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。
(3)实体一联系方法
概念模型是对信息世界建模,能够方便、准确地表示出信息世界中的常用概念。概念模型的表示方法很多,最常用的方法用E-R图(E.R diagram)来描述现实世界的概念模型,E-R方法也称为E-R模型。
04组成要素
(1)数据结构
数据结构描述数据库的组成对象以及对象之间的联系。数据结构是所描述的对象类型的集合,是对系统静态特性的描述。
(2)数据操作
数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。数据库主要有查询和更新(包括插入、删除、修改)两大类操作。数据操作是对系统动态特性的描述。
(3)数据的完整性约束条件
数据的完整性约束条件是一组完整性规则。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。
05常用的数据模型
(1)层次模型
①概述
层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织方式。层次模型用树形结构来表示各类实体以及实体间的联系。
②数据结构
在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型。
a.有且只有一个结点没有双亲结点,这个结点称为根结点;
b.根以外的其他结点有且只有一个双亲结点。
③数据操纵与完整性约束
层次模型的数据操纵主要有查询、插入、删除和更新。进行插入、删除、更新操作时要满足层次模型的完整性约束条件。
④优缺点
a.优点
数据结构比较简单清晰;层次数据库的查询效率高;提供了良好的完整性支持。
b.缺点
多对多联系不适合用层次模型表示;对插入和删除的限制比较多,应用程序的编写较复杂;查询予女结点必须通过双亲结点;由于结构严密,层次命令趋于程序化。
(2)网状模型
①概述
网状数据库系统采用网状模型作为数据的组织方式。网状数据模型的典型代表是 DBTG 系统,亦称CODASYL系统。
②数据结构
网状模型满足以下两个条件:
a.允许一个以上的结点无双亲;
b.一个结点可以有多于一个的双亲。
③数据操纵与完整性约束
DBTG在模式数据定义语言中提供了定义 DBTG数据库完整性的若干概念和语句,主要有:
a.支持记录码的概念,码即唯一标识记录的数据项的集合;
b.保证一个联系中双亲记录和子女记录之间是一一对多的联系;
c.可以支持双亲记录和子女记录之间的某些约束条件。
④优缺点
a.优点
能够更为直接地描述现实世界;具有良好的性能,存取效率较高。
b.缺点
结构比较复杂;DDL、DML复杂,用户不容易掌握,不容易使用;加重了编写应用程序的负担。
(3)关系模型
①数据结构
关系模型建立在严格的数学概念的基础上。从用户观点看,关系模型由一组关系组成。
②术语
a.关系:一个关系对应通常说的一张表;
b.元组(tuple):表中的一行即为一个元组;
c.属性(attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名;
d.码(key):也称为码键。表中的某个属性组,它可以唯一确定一个元组;
e.域(domain):域是一组具有相同数据类型的值的集合;
f.分量:元组中的一个属性值;
g.关系模式:对关系的描述,一般表示为关系名(属性1,属性2,…,属性n)。
关系的每一个分量必须是一个不可分的数据项,不允许表中还有表。可以把关系和现实生活中的表格所使用的术语做一个粗略的对比,如表1-2所示。
表1-2 术语对比
关系术语 |
一般表格的术语 |
关系名 |
表名 |
关系模式 |
表头(表格的描述) |
关系 |
(一张)二维表 |
元组 |
记录或行 |
属性 |
列 |
属性名 |
列名 |
属性值 |
列值 |
分量 |
一条记录中的一个列值 |
非规范关系 |
表中有表(大表中嵌有小表) |
③数据操纵与完整性约束
关系模型的数据操纵主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。关系的完整性约束条件包括三大类:实体完整性、参照完整性和用户定义的完整性。
④优缺点
a.优点
建立在严格的数学基础上;关系模型的概念单一;具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
b.缺点
查询效率往往不如格式化数据模型;增加了开发数据库管理系统的难度。
PART03数据库系统的结构
01数据库系统模式的概念
模式(schema)是数据库中全体数据的逻辑结构和特征的描述,它仅仪涉及型的描述,不涉及具体的值。模式的一个具体值称为模式的一个实例(instance)。模式是相对稳定的,而实例是相对变动的,因为数据库中的数据是在不断更新的。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。
02数据库系统的三级模式结构
(1)模式(schema)
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式实际上是数据库数据在逻辑级上的视图。一个数据库只有一个模式。
(2)外模式(external schema)
外模式也称子模式(subschema)或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式通常是模式的子集。一个数据库可以有多个外模式。
(3)内模式(internal schema)
内模式也称存储模式(storage schema),一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。
03数据库的二级映像功能与数据独立性
(1)概述
为了能够在系统内部实现这三个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映像:外模式/模式映像和模式/内模式映像。这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
(2)二级映像
①外模式/模式映像
模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应于同一个模式可以有任意多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系。
②模式/内模式映像
数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。
(3)数据独立性
当数据库的存储结构改变时,由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。
PART04数据库系统的组成
01硬件平台及数据库
数据库系统对硬件资源的要求:
(1)要有足够大的内存,存放操作系统、数据库管理系统的核心模块、数据缓冲区和应用程序。
(2)有足够大的磁盘或磁盘阵列等设备存放数据库,有足够大的磁带(或光盘)作数据备份。
(3)要求系统有较高的通道能力,以提高数据传送率。
02软件
数据库系统的软件主要包括:
(1)数据库管理系统。
(2)支持数据库管理系统运行的操作系统。
(3)具有与数据库接口的高级语言及其编译系统。
(4)以数据库管理系统为核心的应用开发工具。
(5)为特定应用环境开发的数据库应用系统。
03人员
开发、管理和使用数据库系统的人员主要包括数据库管理员、系统分析员和数据库设计人员、应用程序员和最终用户。不同的人员涉及不同的数据抽象级别,具有不同的数据视图,如图1-3所示。
(1)数据库管理员(Data Base Administrator,DBA)
数据库管理员负责全面管理和控制数据库系统,具体职责包括:
①决定数据库中的信息内容和结构。
②决定数据库的存储结构和存取策略。
③定义数据的安全性要求和完整性约束条件。
④监控数据库的使用和运行。
⑤数据库的改进和重组、重构。
(2)系统分析员和数据库设计人员
系统分析员负责应用系统的需求分析和规范说明,要和用户及数据库管理员相结合,确定系统的硬件软件配置,并参与数据库系统的概要设计。数据库设计人员负责数据库中数据的确定及数据库各级模式的设计。数据库设计人员必须参加用户需求调查和系统分析,然后进行数据库设计。
(3)应用程序员
应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。
(4)用户
用户是指最终用户(enduser)。最终用户通过应用系统的用户接口使用数据库。最终用户三类:
①偶然用户。
②简单用户。
③复杂用户。