第一章 绪论
1 数据库技术发展
- 层次数据库技术:Rockwell公司与IBM公司合作研制了基于层次模型的数据管理系统IMS
- 网状数据库技术:通用电气公司的Charles Bachman主持设计与实现了网状模型的数据库管理系统IDS;CODASYL下属的数据库任务组DBTG提出的网状数据库模型以及数据定义和数据操纵语言即DDL和DML的规范说明,推出了DBTG报告;
- 关系数据库技术:IBM公司San Jose实验室的研究员Edgar F.Codd提出了关系数据模型
- 新一代数据库技术
- 面向对象数据库
- XML数据库
- 网络数据库、嵌入式移动数据库、多媒体数据库、知识数据库、模糊数据库……
2 数据库系统概述
2.1 四个基本概念
数据(Data)
数据库中存储的基本对象,描述事物的符号记录
数据的种类
侠义:数字
广义:文字、图形、图象、声音
数据与其语义不可分
例如:93是一个数据,语义可以是学生某门课的成绩
记录是计算机中表示和存储数据的一种格式,是有结构的数据
数据库(DB)
长期储存在计算机内,有组织的、可共享的大量数据的集合
数据库管理系统(DBMS)
位于用户和操作系统之间的一层数据管理软件,是基础软件,一个大型复杂的软件系统。科学的组织和存储数据、高效的获取和维护数据。
主要功能
- 数据定义功能
提供数据定义语言(DDL),及其翻译处理程序
定义数据库中的数据对象数据操纵功能
提供数据操纵语言(DML),及其编译程序
操纵数据实现对数据库的基本操作(查询、插入、删除和修改)数据组织、存储和管理
分类组织、存储和管理各种数据; 确定组织数据的文件结构和存取;实现数据之间的联系;提供多种存取方法提高存取效率数据库的运行管理
保证数据的安全性、完整性; 多用户对数据的并发使用; 发生故障后的系统恢复
数据库的建立和维护功能(实用程序)
数据库数据批量装载; 数据库转储;介质故障恢复; 数据库的重组织;性能监视等
数据库系统(DBS)
在计算机系统中引入数据库后的系统构成,包括数据库、数据库管理系统、应用系统、数据库管理员
2.2 数据管理技术的产生和发展
数据管理:对数据进行分类、组织、编码、存储、检索和维护
发展
人工管理阶段:数据不保存;应用程序管理数据;数据不共享,冗余度极大;数据不具有独立性
文件系统阶段:
优点: 数据可长期保存;应用程序管理数据 ;文件系统管理数据
缺点:数据共享性差、冗余度大;数据独立性差数据库系统阶段
2.3 数据库系统的特点
数据结构化
文件系统:每个文件内部是有结构的,但是记录之间没有联系
关系数据库:不仅数据内部结构化,整体也是结构化的,数据之间具有联系
数据的共享性高,冗余度低,易扩充
数据独立性高
物理独立性
指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变。
逻辑独立性
指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。数据独立性是由DBMS的二级映像功能来保证的
数据由DBMS统一管理和控制
数据的安全性(Security)保护
保护数据,以防止不合法的使用造成的数据的泄密和破坏。数据的完整性(Integrity)检查
将数据控制在有效的范围内,或保证数据之间满足一定的关系。并发(Concurrency)控制
对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。数据库恢复(Recovery)
将数据库从错误状态恢复到某一已知的正确状态。
3 数据模型
3.1 两大数据模型
- 在数据库中用数据模型这个工具来来抽象、表示和处理现实世界中的事物。通俗地讲数据模型就是现实世界的模拟。
- 数据模型应满足三方面要求:能比较真实地模拟现实世界,容易为人所理解,便于在计算机上实现
- 分类
- 概念模型(信息模型):它是按用户的观点来对数据和信息建模,用于数据库设计。
- 逻辑模型和物理模型:按计算机系统的观点对数据建模,用于DBMS的实现。
- 逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。
- 物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
3.2 数据模型的组成要素
- 数据结构
- 数据操作
- 完整性约束条件
3.3 概念模型
- 信息世界的基本概念
- 实体(Entity):客观存在并可相互区别的事物称为实体,可以是具体的人、事、物或抽象的概念。
- 属性(Attribute):实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。
- 码(Key):唯一标识实体的属性集称为码。
- 域(Domain):属性的取值范围称为该属性的域。
- 实体型(Entity Type):用实体名及其属性名集合来抽象和刻画同类实体称为实体型。例如:学生(学号、姓名、性别)
- 实体集(Entity Set):同一类型实体的集合称为实体集
- 联系(Relationship):现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。
- 实体内部的联系通常是指组成实体的各属性之间的联系
- 实体之间的联系通常是指不同实体集之间的联系
- 一对一联系(1:1)、一对多联系(1:n)、多对多联系(m:n)
- 实体 — 联系方法(E-R方法、E-R模型)
- 实体型:用矩形表示,矩形框内写实体名
- 属性:用椭圆表示,并用无向边将其与相应的实体连接起来
- 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)
- 联系的属性:联系本身也是一种实体型,也 可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来
3.4 最常用的数据模型
层次模型:用树形结构来表示各类实体以及实体间的联系
网状模型:采用网状模型作为数据的组织方式
关系模型:采用关系模型作为数据的组织方式
在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。
学号 姓名 年龄 性别 0001 张三 16 男 0002 李四 18 男 数据结构
- 关系:一个关系对应通常说的一张表
- 元组(Tuple):表中的一行即为一个元组
- 属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性
- 主码(Key):表中的某个属性组,它可以唯一确定一个元组。
域(Domain):属性的取值范围。
- 分量:元组中的一个属性值。
- 关系模式:对关系的描述,关系名(属性1,属性2,…,属性n)
关系的完整性约束条件
- 实体完整性
- 参照完整性
- 用户定义的完整性
4 数据库系统结构
4.1 分类
从最终用户角度:
单用户结构
整个数据库系统(应用程序、DBMS、数据)装在一台计算机上,为一个用户独占,不同机器之间不能共享数据。
主从式结构
- 一个主机带多个终端的多用户结构
- 数据库系统,包括应用程序、DBMS、数据,都集中存放在主机上,所有处理任务都由主机来完成。各个用户通过主机的终端并发地存取数据库,共享数据资源。
- 优点
易于管理、控制与维护。 - 缺点
当终端用户数目增加到一定程度后,主机的任务会过分繁重,成为瓶颈,从而使系统性能下降。
系统的可靠性依赖主机,当主机出现故障时,整个系统都不能使用。
分布式结构
- 数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同结点上。
- 网络中的每个结点都可以独立处理本地数据库中的数据,执行局部应用
- 同时也可以同时存取和处理多个异地数据库中的数据,执行全局应用
- 优点
适应了地理上分散的公司、团体和组织对于数据库应用的需求。 - 缺点
数据的分布存放给数据的处理、管理与维护带来困难。
当用户需要经常访问远程数据时,系统效率会明显地受到网络传输的制约。
客户/服务器
- 把DBMS功能和应用分开
网络中某个(些)结点上的计算机专门用于执行DBMS功能,称为数据库服务器,简称服务器,其他结点上的计算机安装DBMS的外围应用开发工具,用户的应用系统,称为客户机 - 集中的服务器结构
一台数据库服务器,多台客户机 - 分布的服务器结构
在网络中有多台数据库服务器
分布的服务器结构是客户/服务器与分布式数据库的结合
- 把DBMS功能和应用分开
浏览器/应用服务器/数据库服务器多层结构
客户端:
浏览器软件、用户界面浏览器的界面统一,广大用户容易掌握
大大减少了培训时间与费用。
服务器端分为两部分:
Web服务器、应用服务器
数据库服务器等
从数据库管理系统角度,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构
4.2 数据库系统的三级模式结构
- 结构图
- 模式
- 模式(逻辑模式)
数据库中全体数据的逻辑结构和特征的描述
所有用户的公共数据视图,综合了所有用户的需求
一个数据库只有一个模式 - 模式的地位:是数据库系统模式结构的中间层
与数据的物理存储细节和硬件环境无关
与具体的应用程序、开发工具及高级程序设计语言无关 - 模式的定义
数据的逻辑结构(数据项的名字、类型、取值范围等)
数据之间的联系
数据有关的安全性、完整性要求
- 模式(逻辑模式)
- 外模式(子模式、用户模式)
- 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述,数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
- 外模式的地位:介于模式与应用之间
- 模式与外模式的关系:一对多
外模式通常是模式的子集。
一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求。
对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同。 - 外模式与应用的关系:一对多
同一外模式也可以为某一用户的多个应用系统所使用
但一个应用程序只能使用一个外模式
- 模式与外模式的关系:一对多
- 外模式的用途
- 保证数据库安全性的一个有力措施
- 每个用户只能看见和访问所对应的外模式中的数据
- 内模式(存储模式)
- 是数据物理结构和存储方式的描述
- 是数据在数据库内部的表示方式
4.3 数据库二级映像功能与数据独立性
二级映象在DBMS内部实现这三个抽象层次的联系和转换
外模式/模式映像
- 每一个外模式,数据库系统都有一个外模式/模式映象,定义外模式与模式之间的对应关系
- 当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变
- 应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
模式/内模式映像
模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在内部是如何表示的
数据库中模式/内模式映象是唯一的,该映象定义通常包含在模式描述中
当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变
应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。