1, 对于一个国家来说,数据库的建设规模,数据库信息量的大小和使用频度已成为衡量这个国家信息化程度的一个重要标志。

2, 数据系统的几个重要概念

(1) 数据:数据是数据库中储存的基本对象。描述事物的符号记录称为数据,它可以是数字,也可以是文字,图形,图像,声音,语言等多种表现形式,它们都可以经过数字化后存入计算机。数据的表现形式还不能完全表达其内容,需要经过解释,数据和关于数据的解释是不可分离的。数据的解释是指对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分离的。记录是计算机中表示和存储数据的一种格式或者一种方法。

(2) 数据库:数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按照一定的模型组织、描述、和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并可为多个用户共享。

概括的讲:数据库数据具有永久储存、有组织、可共享三个基本特点

(3) 数据库管理系统 (DBMS):数据库管理系统是位于用户和操作系统之间的一层数据管理软件。数据库管理系统和操作系统一样,是计算机的基础软件,也是一个大型复杂的软件系统。

功能包括:

l 数据定义功能:通过 DDL 可以方便的对数据库中的数据对象进行定义

l 数据组织、存储和管理:

l 数据操纵功能:

l 数据库的事务管理和运行管理

l 数据库的建立和维护功能

l 其他功能

3, 数据库管理系统:数据库管理系统是指在计算机系统中引入数据后的系统,一般由数据库,数据库管理系统 (及其开发工具),应用系统,数据库管理员构成。数据库的建立,管理和维护的工作紧紧依靠 DBMS 是不行的,还要有专门的人员来完成,这些人就是数据库管理员。

4, 数据管理技术的发展:

数据管理:指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。

数据处理:对各种数据进行收集、存储、加工和传播的一系列活动的总和。

(1) 人工管理阶段:20 世纪 50 年代中期以前

特点:

l 数据不保存

l 应用程序管理数据

l 数据不共享

l 数据不具有独立性

(2) 文件系统阶段:20 世纪 50 年代后期到 60 年代中期

特点

数据可以长期保存

由文件系统管理数据

缺点:

数据共享性差,冗余度大

数据独立性差

(3) 数据库系统阶段:20 世纪 60 年代后期

特点:

l 数据结构化:数据库系统实现整体数据结构化,这是数据库系统的主要特征之一,也是数据库系统与文件系统的本质区别。所谓的 “整体结构化” 是指:在数据库系统中的数据不再仅仅针对某一应用,而是面向全组织,不仅数据内部是结构化的,而且整体是结构化的,数据之间是有联系的。

l 数据的共享性高,冗余度低,易扩充:数据的不一致性是指同一数据不同拷贝的值不一样。

l 数据独立性高:物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说数据的逻辑结构改变了,用户程序也可以不变。数据独立性是由 DBMS 的二级映像功能来保证的。

l 数据由 DBMS 统一管理和控制

n 数据安全性保护

n 数据完整性检查

n 并发控制

n 数据库恢复

     数据库是长期存储在计算机内有组织的大量的共享的数据集合。

5, 数据模型

数据模型是数据库系统的核心和基础。

6, 两类数据模型

数据模型应该满足三方面的要求:一是能比较真实的反映现实世界,二是容易为人所理解,三是便于在计算机上实现。

在开发数据库系统的过程中,要使用不同的数据模型:概念模型,逻辑模型,物理模型。

概念模型 (信息模型):按照用户的观点对数据和信息建模,主要用于数据库设计。

逻辑模型:包括层次模型、网状模型、关系模型、面向对象模型、对象关系模型。

物理模型:对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或者磁带上的存储方式和存取方法,是面向计算机系统的。

数据模型是数据库系统的核心和基础。

从现实世界到概念模型的转换是由数据库设计人员完成的,从概念模型到逻辑模型的转换可由数据库设计人员完成,也可由数据库设计工具协助设计人员完成,从逻辑模型到物理模型的转换一般由 DBMS 完成。

7, 数据模型的组成要素

数据模型通常由数据结构、数据操作和完整性约束三部分组成。

(1) 数据结构:描述数据库的组成对象以及对象间的联系。分两类:

与对象的类型、内容、性质有关的。如网状模型中的数据项、记录、关系模型中的域、属性、关系等。

与数据之间联系有关的对象。如网状关系模型中的类型。

数据结构是刻画一个数据模型性质最重要的方面。

(2) 数据操作:对数据库中各种对象 (型) 的实例 (值) 允许执行的操作的集合,包括操作及有关的操作规则。

主要有查询和更新 (插入、删除、修改) 操作.

(3) 数据的完整性约束条件:完整性规则是给定的数据模型中数据以及其联系所具有的制约和依存规则,用于限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。

8, 概念模型

(1) 几个基本概念

实体:客观存在并可相互区分的事物,可以是具体的人或者物,也可以使抽象的概念和联系。

属性:实体所具有的某一特征。

码:唯一标识实体的属性。

域:属性的取值范围称为该属性的域。

实体型:用实体名以及其属性集合来抽象和刻画同类实体,称为实体型。

实体集:同一类型实体的集合称为实体集。

联系:实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系。

(2) 两个实体型之间的联系

一对一的联系 (1:1) 一对多的联系 (1:n) 多对多的联系 (n:m)

(3) 两个以上的实体型之间的联系

(4) 单个实体型之间的联系

(5) 概念模型的一种表示方法:实体 — 联系方法

E—R 图的图例说明:

实体型:用矩形表示,矩形框内写明实体名。

属性:用椭圆形表示,并用无向边将其与对应的实体型连接起来。

联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型 (1:1,1:n,m:n)。

9, 最常用的数据模型:

(1) 层次模型

(2) 网状模型

(3) 关系模型

(4) 面向对象模型

(5) 对象关系模型

数据结构,数据操作,完整性约束条件 3 个方面的内容,完整的描述了一个数据模型。

10, 层次模型的数据结构

(1) 数据结构

有且只有一个结点没有双亲结点,这个结点称为根节点

根结点以外的其他结点有且只有一个双亲结点。

(2) 基本特点

任何一个给定的记录值只有按其路径查看时,才能显示出它的全部意义,没有一个子女记录值能够脱离双亲记录值而存在。

(3) 多对多关系在层次模型中的表示

l 冗余结点法:增加一个结点,然后在其中一个中指向另一个。优点是结构清晰,允许改变结点的存储位置缺点是占用额外的存储空间,存在潜在不一致性。(存对象)

l 虚拟结点法:不用增加结点,直接指向原来的与之相关的关系。减少对存储空间的浪费,避免产生潜在的不一致性,缺点是:结点改变存储位置可能引起虚拟结点中指针的修改。(存引用)

(4) 层次模型的数据操纵和完整性约束

l 进行插入操作时,如果没有相应的双亲结点,就不能插入它的子女结点值。

l 进行删除操作时,如果删除双亲结点值,则相应的子女结点值也同时被删除。

(5) 存储结构

l 邻接法:按照层次树前序穿越的顺序把所有记录一次邻接存放,即通过物理空间的相邻,来体现 (或隐含) 层次顺序。

l 链接法:用指针反映数据之间的层次联系。

(6) 优缺点

优点:

l 层次模型的数据结构比较简单清晰。

l 层次数据库的查询效率高。(层次数据库的性能优于关系数据库,不低于网状数据库)

l 层次数据库模型提供了良好的完整性支持。

缺点:

l 现实世界中的很多联系是非层次性的,如结点之间具有多对多的联系。

l 一个结点具有多个双亲等,层次模型表示这类联系的方法很笨拙,只能引入冗余数据,或创建非自然的数据结构 (引入虚拟结点) 来解决。对插入和删除操作比较多,因此应用程序的编写很复杂。

l 查询子女结点必须通过双亲结点。

l 由于结构严密,层次命令趋于程序化。

11, 网状模型

(1) 数据结构

允许一个以上的结点无双亲

一个结点可以有多于一个的双亲结点。

(2) 完整性约束

支持记录码的概念,码即唯一标识记录的数据项的集合。

保证一个记录中的双亲记录和子女记录之间是一对多的关系。

可以支持双亲记录和子女记录之间的某些约束条件。

(3) 存储结构

常用的方法是:链接法 (单向链接,双向链接,环状链接,向首链接),指引元阵列法,二进制阵列法,索引法等,由具体的 DBMS 来实现

(4) 优缺点:

优点:

能够更为直接的描述现实世界,如一个结点可以有多个双亲,结点之间可以有多种联系。

具有良好的性能,存取效率高。

  缺点:结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。

 网状模型的 DDL 和 DML 比较复杂,并且要嵌入某一高级语言中,用户不易掌握,不容易使用。

12,关系模型

(1) 数据结构

关系 (Relation): 一个关系对应通常所说的一张表,

元组 (Tuple):表中的一行即为一个元组。

属性 (Attribute):表中的一列即为一个属性,给每一个属性起个名字即为属性名。

码 (Key):也称码键,表中的某个属性组,可以唯一确定一个元组。

域 (Domain): 属性的取值范围。

分量:元组中的一个属性值。

关系模式:对关系的描述,一般表示为:关系名 (属性 1,属性 2,……,属性 n)

关系的每一个分量必须是一个不可分的数据项,也就是说,不允许表中有表。

(2) 操纵和完整性约束

实体完整性,参照完整性和用户自定义的完整性。

操作面向集合。

操作只用指明干什么,不用指明怎么干。

(3) 存储结构

由具体的 DBMS 实现,有的是一个表对应一个系统文件,有的是获得一个大文件,自己设计表和索引等。

(4) 优缺点

优点:

关系模型与非关系模型不同,它是建立在严格的数学概念的基础上。

关系模型的概念单一。无论实体还是实体间的联系都用关系表示。

关系模型的存取路径对于用户是透明的,从而具有更高的数据独立性,更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。

缺点:由于存储路径对用户透明,查询效率远不如非关系数据模型。

13,数据库的体系结构

(1) 从数据库管理系统角度看,数据库系统通常采用三级模式结构,这是数据库系统内部的系统结构。

从数据库的最终用户看,数据系统的结构分为单用户结构,主从式结构,分布式结构,客户机 / 服务器结构,浏览器 / 应用服务器 / 数据库服务器多层数据结构等。这是数据库系统外部的体系结构。

(2) 数据系统的模式的概念

在数据模型中,有 “型”(Type) 和“值”(Value)的概念,型是指对某一类数据的结构和属性的说明,而值是型的一个具体赋值。

模式 (Schema) 是数据库中全体数据的逻辑和特征的描述,它仅仅涉及到型的描述不涉及到具体的值,

模式是相对稳定的,而实例是相对变动的,因为数据库中的数据是不断更新的。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。

(3) 三级模式结构

数据系统的三级模式结构是指数据库系统由外模式,模式,内模式三级构成。

模式:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。

模式实际上是数据库数据在逻辑级上的视图,一个数据只有一个模式。

外模式:也称子模式 (Subschema) 或用户模式,它是数据库用户 (包括应用程序员和最终用户) 能够看见和使用的局部数据的逻辑结构,和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

外模式通常是模式的子集,一个数据库可以有多个外模式。

内模式:也称存储模式 (Storage Schema), 一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。

14,二级映像功能和数据独立性

数据库系统的三级模式是对数据的 3 个抽象级别,它把数据的具体组织留给 DBMS 管理,是用户能逻辑的抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。

两级映像:外模式 / 模式映像 模式 / 模式映像

正是这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。

(1) 外模式 / 模式映像

模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。

应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

(2) 模式 / 内模式映像

数据库中只有一个模式,也只有一个内模式,所以模式 / 内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。当数据的存储结构改变了 (例如选用了另一种存储结构),由数据库管理员对模式 / 内模式映像作相应的修改,可以使模式保持不变,从而应用程序也不变。保证了数据与程序的物理独立性,简称数据的物理独立性。

设计数据库模式结构时应首先确定数据库的逻辑模式。

数据库的外模式面向具体的应用程序,它定义在逻辑模式之上,但独立于存储模式和存储设备。

数据库的二级映像确保了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性,除非应用本身发生变化,否则应用程序一般不需要修改。

15,数据库的组成

(1) 硬件平台及数据库

l 有足够大的内存,存放操作系统,DBMS 核心模块,数据缓冲区和应用程序

l 有足够大的磁盘或者磁盘阵列等设备存放数据库,有足够的磁带 (或光盘) 作数据备份。

l 要求系统有较高的通道能力,以提高数据传输率

(2) 软件

l DBMS

l 支持 DBMS 运行的操作系统

l 具有与数据库接口的高级语言及其编译系统,便于开发应用程序

l 以 DBMS 为核心的应用 开发工具

l 为特定应用环境开发的数据库应用系统

(3) 人员

数据库管理员:

l 决定数据库中的信息内容和结构

l 决定数据库的存储结构和存取策略

l 定义数据的安全性要求和完整性约束条件

l 监控数据库的使用和运行

l 数据的改进和重组重构。

系统分析员和数据库设计员

应用程序员

用户:

l 偶然用户

l 简单用户

l 复杂用户