1.1 数据库系统概述
1.1.1 数据库系统的4个基本概念
数据:
描述事物的符号记录称为数据。数据的含义称为数据的语义,数据与其语义是不可分的。
数据库(DB):
数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。
数据库管理系统(DBMS):
DBMS是位于用户和操作系统之间的一层数据管理软件,跟操作系统一样是计算机的基础软件。
主要功能包括:①数据定义功能:由数据定义语言(DDL)实现 ② 数据组织、存储和管理 ③ 数据操纵功能:由数据操纵语言(DML)实现 ④数据库的事物管理和运行管理 ⑤ 数据库的建立和维护功能 ⑥ 其他功能
数据库系统:
数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理人员(DBA)组成的存储、管理、处理和维护数据的系统。一般在不引起混淆的情况下简称数据库。
1.1.2 数据管理技术的产生和发展
1. 人工管理阶段
特点:(1)数据不保存 (2) 应用程序管理数据 (3) 数据不共享 (4) 数据不具有独立性
2.文件系统阶段
特点:
优点:(1)数据可长期保存 (2)由文件系统管理数据
缺点:(1)数据共享性差,冗余度大 (2)数据独立性差
3.数据库系统阶段
从文件系统到数据库系统标志着数据管理技术的飞跃
1.1.3 数据库系统的特点
1.数据结构化
2.数据的共享性高、冗余度低且易扩充
3.数据独立性高
4.数据有数据库管理系统统一管理和控制
1.2 数据模型数据模型是对显示世界的数据特征的抽象。
数据模型是数据库系统的核心和基础。
1.2.1 两类数据模型
第一类是概念模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计
第二类是逻辑模型和物理模型:
逻辑模型:它是按计算机系统的观点对数据建模,主要用于数据库管理系统的实现。
物理模型:是对数据最底层的抽象,是面向计算机系统的。
1.2.2 概念模型
1.信息世界中的基本概念
(1)实体:客观存在并可互相区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系,例如, 一个职工、一个学生、一个部门、一门课、学生的一次选课、部门的一次订货、教师与院系的工作关系(即某位教师在某院系工作)等都是实体。
(2)属性:实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。例如,学生实体可以由学号、姓名、性别、出生年月、所在院系、入学时间等属性组成,属性组合(15121, 张山,男, 199505, 计算机系, ) 即表征了一个学生。
(3)码:唯一标识实体的属性集称为码。例如学号是学生实体的码。
(4)实体型:用实体及其属性名集合来抽象和刻画同类实体,称为实体型。例如,全体学生就是一个实体集。
(5)联系:在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系。实体之间的联系有一对一、一对多和多对多等多种类型。
2.概念模型的一种表示方法:实体-联系方法
概念模型的表示方法很多,其中最为常用的是P.P.S .Chen 于1976 年提出的实体-联系方法CEntity-Relationship approach) 。该方法用E-R 图(E-R diagram ) 来描述现实世界的概念模型, E-R 方法也称为E-R 模型。
1.2.3 数据模型的组成要素
数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成。
1.数据结构
数据结构描述数据库的组成对象以及对象之间的联系。
2.数据操作
数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。
3.数据的完整性约束
数据的完整性约束条件是一组完整性规则。
1.2.4 常用的数据模型
数据库领域中主要的逻辑数据模型有:
· 层次模型( hi erarchi cal model)
. 网状模型( network model )
· 关系模型( relational model)
· 面向对象数据模型( object oriented data model)
· 对象关系数据模型(object relational data model)
· 半结构化数据模型(semistructure data model)
其中层次模型和网状模型统称为格式化模型。注意:这里讲的数据模型都是逻辑上的,也就是说是用户眼中看到的数据范围。
同时它们又都是能用某种语言描述,使计算机系统能够理解,被数据库管理系统支持
的数据视图。这些数据模型将以一定的方式存储于数据库系统中, 这是数据库管理系
统的功能,是数据库管理系统中的物理存储模型。
在格式化模型中实体用记录表示,实体的属性对应记录的数据项(或字段)。实体之间的联系在格式化模型中转换成记录之间的两两联系。
在格式化模型中数据结构的单位是基本层次联系。所谓基本层次联系是指两个记录以及它们之间的一对多(包括一对一)的联系。
1.2.5 层次模型
层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织方式。
1. 层次模型的数据结构
在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型:
(1) 有且只有一个结点没有双亲结点,这个结点称为根结点;
(2) 根以外的其他结点有且只有一个双亲结点。
在层次模型中,每个结点表示一个记录类型,记录类型之间的联系用结点之间的连线(有向边)表示,这种联系是父子之间的一对多的联系。这就使得层次数据库系统只能处理一对多的实体联系。
2. 层次模型的数据操纵与完整性约束
层次模型的数据操纵主要有查询、插入、删除和更新。进行插入、删除、更新操作时要满足层次模型的完整性约束条件。
进行插入操作时,如果没有相应的双亲结点值就不能插入它的子女结点值。进行插入操作时,如果没有相应的双亲结点值就不能插入它的子女结点值。
3 . 层次模型的优缺点
层次模型的优点主要有:
(1) 层次模型的数据结构比较简单清晰。
(2) 层次数据库的查询效率高。
(3) 层次数据模型提供了良好的完整性支持。
层次模型的缺点主要有:
(1) 现实世界中很多联系是非层次性的,如结点之间具有多对多联系,不适合用层次模型表示。
(2) 如果一个结点具有多个双亲结点等,用层次模型表示这类联系就很笨拙,只能通过引入冗余数据(易产生不一致性)或创建非自然的数据结构(引入虚拟结点)来解决。对插入和删除操作的限制比较多,因此应用程序的编写比较复杂。
(3) 查询子女结点必须通过双亲结点。
(4) 由于结构严密,层次命令趋于程序化。
1.2.6 网状模型
网状数据库系统采用网状模型作为数据的组织方式。网状数据模型的典型代表是DBTG 系统,亦称CODASYL 系统。
1. 网状模型的数据结构
在数据库中,把满足以下两个条件的基本层次联系集合称为网状模型:
( I1) 允许一个以上的结点无双亲。
(2) 一个结点可以有多于一个的双亲。
2. 网状模型的数据操纵与完整性约束
网状模型一般来说没有层次模型那样严格的完整性约束条件,但具体的网状数据库系统对数据操纵都加了一些限制,提供了一定的完整性约束。
例如, DBTG 在模式数据定义语言中提供了定义DBTG 数据库完整性的若干概念和语句,主要有:
(1) 支持记录码的概念,码即唯一标识记录的数据项的集合。例如,学生记录(如图1.13) 中学号是码,因此数据库中不允许学生记录中学号出现重复值。
( 2) 保证一个联系中双亲记录和子女记录之间是一对多的联系。
(3) 可以支持双亲记录和子女记录之间的某些约束条件。例如,有些子女记录要求双亲记录存在才能插入,双亲记录删除时也连同删除。例如图1.13 中选课记录就应该满足这种约束条件,学生选课记录值必须是数据库中存在的某一学生选修存在的某一门课的记录。DBTG 提供了“ 属籍类别”的概念来描述这类约束条件。
3. 网状模型的优缺点
网状模型的优点主要有:
( 1) 能够更为直接地描述现实世界,如一个结点可以有多个双亲,结点之间可以有多种联系。
( 2) 具有良好的性能, 存取效率较高。
网状模型的缺点主要有:
(1) 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。
(2) 网状模型的DDL 、DML 复杂,并且要嵌入某一种高级语言( 如COBOL 、C) 中。用户不容易掌握,不容易使用。
(3) 由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,因此用户必须了解系统结构的细节,加重了编写应用程序的负担。
1.2.7 关系模型
关系模型是最重要的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。
1. 关系模型的数据结构
2 .关系模型的数据操纵与完整性约束
3. 关系模型的优缺点
1.3 数据库系统的结构
1.3.1 数据库系统模式的概念
1.3.2 数据库系统的三级模式结构
1.3.3 数据库的二级映像功能和数据独立性
1.4 数据库系统的组成
1.5 小结