目录
1 数据库系统的基本概念
2 数据库管理技术的发展
3 数据模型
4 数据库系统的结构
5 数据库系统的组成
一、数据库系统基础
1 数据库系统的基本概念
数据:是数据库中存储的基本对象,是信息的载体,是描述事物的符号记录
数据库DB:是长期存储在计算机内、有组织、可共享的大量数据的集合
( 具有较小的冗余度、较高的数据独立性、易扩展性 )
数据库管理系统DBMS:操纵和管理数据库的大型软件,用于建立、使用和维护数据库,是位于用户和操作系统之间的一层数据管理软件,和操作系统一样是计算机的基础软件。
- 数据定义功能
- 数据组织、存储和管理
- 数据操纵功能
- 数据库的事务管理和运行管理
- 数据库的建立和维护功能
- 其他功能:与网络中其他软件系统的通信功能、与另一个数据库管理系统或文件系统的数据转换功能、异构数据库之间的互访和互操作功能等。
数据库系统DBS:由数据库、数据库管理系统、应用程序、数据库管理员组成的存储、管理、处理和维护数据的系统。
数据库系统是计算机系统的重要组成部分。
2 数据管理技术的发展:人工管理阶段、文件系统阶段、数据库系统阶段
(1)人工管理阶段
- 数据不保存(由于计算机主要应用于科学计算,不需要长期保存)
- 应用程序管理数据(数据的逻辑结构和物理结构)
- 数据不共享(数据面向应用程序,数据自定义,无法相互利用,相互参照)
- 数据不具有独立性
(2)文件管理阶段
- 数据可以长期保存(计算机大量应用于数据处理)
- 由文件系统管理数据(缺点:数据共享性差,冗余度大,数据独立性差)
(3)数据库管理系统
软硬件成本、联机实时处理与分布处理、多用户多应用程序(标志数据管理技术的飞跃)
- 数据结构化
- 数据共享性高、冗余度低且易扩充
- 数据独立性高(物理独立性、逻辑独立性)
- 数据由数据库管理系统统一管理和控制
- 数据的安全性保护(防止不合法使用造成的数据泄露和破坏)
- 数据的完整性检查(正确性、有效性、相容性)
- 并发控制(对多用户的并发控制进行控制和协调)
- 数据库恢复(从错误状态恢复到某一已知正确状态/完整状态/一致状态的功能)
3 数据模型
数据模型是数据库系统的核心和基础
3.1数据模型的分类
根据应用目的分类:(现实世界-概念模型-逻辑模型-物理模型)
- 概念模型:根据 用户观点 对数据建模,用于数据库设计
- 逻辑模型:根据 计算机观点 对数据建模,用于数据库管理系统的实现
( 层次模型、网状模型 <格式化模型 数据单位:基本层次的联系 > 、
关系模型、
面向对象数据模型、对象关系数据模型、半结构化数据模型 )
- 物理模型:面向 计算机系统 对数据最底层的抽象,描述数据在系统内部,或在磁盘、磁带上的表示方式和存取方法
逻辑模型
信息世界
实体:客观存在并可以相互区别的事物。可以是具体的人事物,也可以是抽象的概念或联系。
属性:实体所具有的某一特性。
码:唯一标识实体的属性集。
实体型:用实体名及其属性名集合刻画同类实体。
实体集:同一类型实体的集合。
联系:实体之间的联系通常是指实体集之间的联系
实体联系模型:ER图(entity-relationship)
3.2数据模型的组成要素
数据结构、数据操作、数据完整性约束条件
(描述系统的静态特性、动态特性、完整性约束条件)
数据结构:描述数据库的组成对象和对象之间的联系,是刻画模型性质最基本的方面
(分类:层次模型、网状模型、关系模型)
数据操作:主要有查询和更新两大类操作
数据完整性约束:实体完整性和参照完整性两类条件
3.3主要的数据模型
(1)层次模型 树形结构
有且仅有一个结点没有双亲结点;除根节点外其他结点仅有一个双亲结点
<优点>:对具有一对多的层次联系的部门描述非常自然、直观、容易理解。
- 数据结构简单
- 查询效率高
- 提供了良好的完整性支持
<缺点>
- 缺乏普适性
- 由于结构严密,层次命令趋于程序化
(2)网状模型 网状结构
允许一个以上的结点无双亲结点;一个结点可以有多于一个的双亲结点
<优点>
- 能够更为直观地描述现实世界
- 性能良好,存取效率高
<缺点>
- 结构复杂,不易用户掌握
- 用户必须了解结构细节,加重编程负担
(3)关系模型 二维表※(行&列)(‘型’type、‘值’value)
- 关系:一个关系对应一张二维表,二维表名就是关系名
- 元组:表中的一行就是一个元组,也称为记录
- 属性:表中的一列就是一个属性,也成为字段;列值就是属性值,取值范围称为域
- 分量:每一行对应的列的属性值,即元组中的一个属性
- 关系模式:对关系的描述:关系名(属性1,属性2,…,属性n)
- 候选键/候选码:能唯一标识该关系的元组的多个属性或属性集
- 主键/主码:在若干候选键中指定一个用来唯一标识该关系的元组
- 主属性/非主属性:包含在任何一个候选键中的属性称为主属性,反之为非主属性
<关系模型的数据操作>
关系模型的数据操作都是集合操作,操作过程和操作结果都是关系
主要有查询、插入、删除、修改,这些操作必须满足
<关系模型的完整性约束条件>
- 实体完整性(主键唯一且不为空)
- 参照完整性(外键,使数据表间数据保持一致)
- 用户完整性(具体的数据库和相关的应用环境)
<优点>
- 数据结构单一
- 关系规范化
- 概念简单
<缺点>
由于存储路径透明,查询效率不如格式化数据模型
(4)面向对象模型
<概念>类、对象、封装、继承、多态
<优点>开发效率高;适合处理丰富的数据类型;提高了数据访问的性能
<缺点>不具有普适性;没有明确的定义;不便于数据维护
4 数据库系统的结构
数据库内部的系统结构:
从数据库应用开发人员的角度看:三级模式结构
数据库外部的系统结构:
从最终用户的角度看:单用户结构、主从式结构、分布式结构、客户-服务器、浏览器-应用服务器/数据库服务器多层次结构、etc.
数据库系统体系结构特点:采用三级模式结构并提供二级映像功能
4.1数据库系统模式的概念
模式schema:数据库中全体数据的逻辑结构和特征的描述
4.2数据库系统的三级模式结构:外模式、模式、内模式
(1)模式(逻辑模式),是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
一个数据库只有一个模式。定义模式要定义数据的逻辑结构;定义数据之间的联系,定义与数据有关的安全性、完整性要求。
(2)外模式
外模式(子模式或用户模式),是数据库用户能够看到和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
一个数据库可以有多个外模式。由于它是用户的数据视图,用户需求不同,其外模式描述不同。同一个外模式可以被多个应用系统使用,但是一个应用程序只能使用一个外模式。
外模式是保护数据库安全性的有力措施,每个用户只能看见和访问对应的外模式中的数据,数据库中的其他数据是不可见的。
(3)内模式
内模式也称存储模式,一个数据库只有一个内模式,它是数据物理结构和存储结构的描述,是数据在数据库内部的组织方式。
数据库三级模式结构中,数据库模式即全局逻辑模式是数据库的中心与关键,它独立于数据库其它层次,所以设计数据库结构时首先要设计数据库逻辑模式;数据库内模式依赖于它的全局逻辑结构,但独立于数据库的用户视图,即外模式,也独立于具体的存储设备。它是将全局逻辑结构中定义的及其联系按照一定的物理存储策略进行组织,以达到较好的时间和空间效率;数据库外模式面向具体的应用程序,定于于逻辑模式之上,独立于存储设备和存储模式。当应用需求发生较大变化,相应的外模式不能满足其视图需求,该外模式就要做相应变动,所以设计外模式要充分考虑到应用的扩充性。
特定的应用程序是在外模式描述的数据结构上编制的,它依赖于特定的外模式,与数据库的模式和存储结构独立。不同的应用程序可以共用一个外模式。数据库的二级映像保证了外模式的稳定性,从而从底层保证了应用程序的稳定性。
数据库的三级模式结构是数据的三个抽象级别,它把数据的具体组织留给数据库管理系统管理,使用户能逻辑地、抽象地处理数据,而不用关心数据在计算机中的具体表示方式和存储方式。为了在系统内部实现这三个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映像,保证了数据库中的数据能够具有较高的逻辑独立性和物理独立性。
4.3数据库的二级映像功能和数据独立性
(1)对于每一个外模式,数据库系统都有一个外模式-模式映像,它定义了外模式和模式的对应关系。这些映像定义通常包含在各自外模式的描述中。
当模式改变时,对各个外模式-模式的映像做相应改变,可以让外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不会修改,保证了数据和程序的逻辑独立性,简称数据的逻辑独立性。
(2)数据库中只有一个模式,也只有一个内模式,所以模式-内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。(例如:说明逻辑记录和字段在内部是如何表示的。)该映像定义通常包含在模式描述中。
当数据库的存储结构改变时,对模式-内模式映像做相应改变,可以使模式保持不变,从而应用程序保持不变,保证了数据和程序的物理独立性,称为数据的物理独立性。
数据和程序之间的独立性使得数据的定义和描述可以从应用程序中分离出去。由于数据的存取由数据库管理系统管理,从而简化了应用系统的编制,大大减少了应用程序的维护和修改。
5 数据库系统的组成
5.1 硬件平台及数据库
数据库系统数据量很大,数据库功能丰富导致自身规模大,因此数据库系统对硬件资源高要求:
(1)要有足够大的内存空间,存放操作系统、数据库管理系统的核心模块、数据缓冲区和应用程序。
(2)有足够大的磁盘或磁盘阵列等设备存放数据库,有足够大的磁盘(或光盘)作数据备份。
(3)要求系统有较高的通道能力,提高数据传送率。
5.2 软件
(1)数据库管理系统。数据库管理系统是为数据库的建立、使用和维护配置的系统软件。
(2)支持数据库管理系统运行的操作系统。
(3)具有与数据库接口的高级语言和编译系统,便于开发应用程序。
(4)以数据库管理系统为核心的应用开发工具,是系统为数据库开发人员和最终用户提供的高效率、多功能的应用生成器、第四代语言等各种软件工具。
(5)为特定应用环境开发的数据库应用系统。
5.3 人员
开发、管理和使用数据库的人员:数据库管理员、系统分析员、数据库设计人员、应用程序员和最终用户。