1.1 数据库系统概述
1.1.1 数据库的4个基本概念
1.信息和数据
简单地说,信息是经过加工的数据,或者说,信息是数据处理的结果。
信息(Information):是数据经过加工处理后得到的另一种形式的数据。
这种数据在某种程度上影响接收者的行为。具有客观真实性、传递性、时效性和有用性。
数据(Data):描述事物的符号记录称为数据。
描述事物的符号可以是 数字,也可以是 文字、 图形、 图像、 音频、 视频等,数据有多种表现形式,他们都可以经过数字化后存入计算机。
信息与数据之间的联系与区别
数据是用以表示信息的 符号或载体。
信息是经过加工之后并对客观世界和生产活动产生影响的数据,是数据的 内涵,是对数据语义的解释。
数据是 现象,而信息更反映 实质。
2. 数据库(DataBase,DB)
长期储存在计算机内、有组织的、可共享的大量的数据集合。
3. 数据库管理系统(DataBase Management System,DBMS)
是位于用户与操作系统之间的一层数据管理软件。和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。
4. 数据库系统(DataBase System,DBS)
由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DataBase Administrator,DBA)组成的存储、管理、处理和维护数据的系统。
1.1.2 数据管理技术的产生和发展
数据管理是指对数据进行存储、组织和维护的技术,它是数据处理核心问题。
(1)人工管理阶段( 20世纪40年代中—50年代中)
(2)文件系统管理阶段( 20世纪50年代末—60年代中)
(3)数据库系统阶段( 20世纪60年代后期至今)
三个阶段数据管理技术对比
阶段 | 管理者 | 共享性 | 冗余度 | 独立性 |
人工管理 | 程序员 | 不能共享 | 高 | 依赖程序 |
文件系统 | 文件系统 | 共享性差 | 中 | 独立性差 |
数据库系统 | DBMS | 共享性高 | 低 | 独立性高 |
1.1.3 数据库系统的特点
(1)数据结构化。
不光数据内部有结构,数据与数据之间也是有结构的,整体有结构。
(2)数据的共享性高、冗余度低且易扩充。
数据可以被多个用户、应用共享使用,大大减少冗余,避免数据的不一致性。
(3)数据独立性高。
数据与使用数据的应用程序之间有一定的独立性,当数据的结构发生改变,应用程序不必修改依然可以访问数据。
(4)数据由数据库管理系统统一管理和控制。
1.2 数据模型
数据模型(data model)也是一种模型,他是对现实世界数据特征的抽象。
由于计算机不可能直接处理现实世界中的具体事物,所以人们必须事先把具体事物转换成计算机能够处理的数据。
在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。
现有的数据库系统均是基于某种数据模型的。数据模型是数据库系统的核心和基础。
1.2.1 两类数据模型
第一类:概念模型
也称信息模型,按用户的观点来对数据和信息建模,完全不涉及信息在计算机中的表示,主要用于数据库设计。
第二类:逻辑模型和物理模型
逻辑模型
是按计算机系统的观点对数据建模,主要用于DBMS的实现。主要包括层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。
物理模型
是数据在计算机中的存储方式,是对数据最低层的抽象,它描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。
1.2.2概念模型
概念模型是从现实世界到机器世界的一个中间层次。
建立概念模型的目的:
是将用户关于企业的描述及业务的需求等信息准确的纪录下来,按用户的观点对数据和信息建模。
这类模型强调其语义表达能力,它要能较方便地、直观地表达应用中各种语义知识,如被描述对象的意义和相互关系等。
是用户和数据库设计人员之间进行交流与沟通的工具。
1.信息世界的基本概念
实体(Entity): 客观存在并可相互区分的事物。
实体集(Entity Set): 同类型实体的集合。每个实体集必须命名。
属性(Attribute): 实体所具有的特征和性质。
属性值(Attribute Value): 为实体的属性取值。
域(Domain): 属性值的取值范围。
码(Key): 唯一标识实体集中一个实体的属性或属性集。
实体型(Entity Type): 表示实体信息结构,由实体名及其属性名集合表示。如:实体名(属性1,属性2,…)
学生(学号,姓名,性别,年龄)
联系(Relationship): 在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体型内部的联系和实体型之间的联系。
两个实体集之间的联系:
(1)一对一联系(1:1)
对于实体集A中的每一实体,实体集B中至多有一个(也可以没有)实体与之联系。反之亦然。
(2)一对多联系(1:N)
对于实体集A中的每一实体,实体集B中有N个实体(N ≥ 0)与之联系。反之,对于实体集B中每一实体,实体集A中至多只有一个实体与之联系。
(3)多对多联系(M:N)
对于实体集A中的每一实体,实体集B中有N个实体(N ≥ 0)与之联系,对于实体集B中每一实体,实体集A中有M个实体(M ≥ 0)与之联系。
2. 概念模型的表示方法:实体-联系方法(Entity-Relationship)
E-R图画法:
实体型——用矩形框表示,实体集名子写在框中。
联系——用菱形框表示,联系名写在框中,用无向边与相关实体集连接,并注明联系类型。
属性——用椭圆表示,属性名写在椭圆中,如果为码属性,其名字带下划线。用无向边将实体集和它的全部属性连接起来。
若联系也有属性,把属性和菱形用无向边连起来
1.2.3 数据模型的组成要素
数据模型精确地描述了系统的静态特性、动态特性和完整性约束条件。因此数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成
(1)数据结构:描述数据库的组成对象以及对象之间的联系。
(2)数据操作:对数据库中各种对象的实例允许执行的操作的集合,包括操作及有关的操作规则。
(3)数据的完整性约束条件: 一组完整性规则 ,给定的数据模型中数据及其联系所具有的制约和依存规则。
1.2.4 常用的数据模型
在数据库应用系统中,逻辑数据模型由概念模型转化而来。目前数据库领域中主要的逻辑数据模型有:
层次模型(树)
网状模型(图)
关系模型(表)
面向对象数据模型
对象关系数据模型
半结构化数据模型
1.2.5 层次模型
层次模型是数据库系统中最早出现的数据模型。
层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统。
层次模型用树形结构来表示各类实体以及实体间的联系。
满足下面两个条件的基本层次联系的集合为层次模型:
有且只有一个结点没有双亲结点,这个结点称为根结点;
根以外的其它结点有且只有一个双亲结点。
层次模型的数据操纵
查询
插入
删除
更新
层次模型的完整性约束条件
无相应的双亲结点值就不能插入子女结点值;
如果删除双亲结点值,则相应的子女结点值也被同时删除。
优点
层次模型的数据结构比较简单清晰。
缺点
结点之间的多对多联系表示不自然;
对插入和删除操作的限制多,应用程序的编写比较复杂;
查询子女结点必须通过双亲结点。
1.2.6 网状模型
网状数据库系统采用网状模型作为数据的组织方式。
典型代表是DBTG系统:
亦称CODASYL系统
20世纪70年代由DBTG提出的一个系统方案
满足下面两个条件的基本层次联系的集合:
允许一个以上的结点无双亲;
一个结点可以有多于一个的双亲。
优点
能够更为直接地描述现实世界,如一个结点可以有多个双亲;
良好的性能,存取效率较高。
缺点
结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握;
DDL、DML语言复杂,用户不容易使用;
1.2.7 关系模型
最重要的一种数据模型,也是目前主要采用的数据模型。
从用户观点看,关系模型由一组关系组成。每个关系的数据结构是一张规范化的二维表。
1.关系模型的数据结构
关系必须是规范化的,满足一定的规范条件
最基本的规范条件:关系的每一个分量必须是一个不可分的数据项。
关系模型的术语
关系(Relation):一个关系对应通常说的一张表。
元组(Tuple):表中的一行即为一个元组。
属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。
码(Key):表中的某个属性组,它可以唯一确定一个元组。
域(Domain):一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
分量:元组中的一个属性值。
2.关系模型的数据操纵与完整性约束
查询、插入、删除、更新。
这些操作必须满足关系的完整性约束条件。三大类完整性约束:实体完整性、参照完整性和用户定义的完整性。
数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合。
优点
建立在严格的数学概念的基础上:集合代数。
关系模型的概念单一:关系。
关系模型的存取路径对用户隐藏:更好的安全保密性。
缺点
存取路径对用户隐藏,查询效率往往不如格式化数据模型。
1.3 数据库系统体系结构
从数据库应用开发人员角度看,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构。
从数据库最终用户角度看,数据库系统的结构分为:
客户/服务器结构(Client/Server)
浏览器/服务器结构(Browser/Server)
分布式结构
1.3.1 数据库系统模式的概念
“型” 和“值” 的概念:
型(Type)
对某一类数据的结构和属性的说明。
值(Value)
是型的一个具体赋值。
模式(Schema)
数据库逻辑结构和特征的描述;
是型的描述;
反映的是数据的结构及其联系;
模式是相对稳定的。
模式的一个实例(Instance)
模式的一个具体值;
反映数据库某一时刻的状态;
同一个模式可以有很多实例;
实例随数据库中的数据的更新而变动。
1.3.2 数据库系统的三级模式结构
1.模式(Schema)
也称逻辑模式,数据库中全体数据的逻辑结构和特征的描述,所有用户的公共数据视图。
一个数据库只有一个模式。
模式的地位:是数据库系统模式结构的中间层。
与数据的物理存储细节和硬件环境无关。
与具体的应用程序、开发工具及高级程序设计语言无关。
定义模式
定义数据的逻辑结构(数据项的名字、类型、取值范围等)。
定义数据之间的联系。
定义数据有关的安全性、完整性要求。
2.外模式(External Schema):
也称子模式或用户模式,数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
外模式的地位:介于模式与应用之间。
模式与外模式的关系:一对多
外模式通常是模式的子集。
一个数据库可以有多个外模式。
3.内模式(internal Schema)
也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
记录的存储方式(顺序存储,按照B树结构存储,按hash方法存储);
索引的组织方式;
数据是否压缩存储;
数据是否加密;
数据存储记录结构的规定。
一个数据库只有一个内模式。
1.3.3 数据库系统的两级映像
1.外模式/模式映象
定义外模式与模式之间的对应关系。
每一个外模式都对应一个外模式/模式映象。
映象定义通常包含在各自外模式的描述中。
保证数据的逻辑独立性
当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变;
应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
2.模式/内模式映象
模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。
数据库中模式/内模式映象是唯一的。
该映象定义通常包含在模式描述中。
保证数据的物理独立性
当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变;
应用程序不受影响,保证了数据与程序的物理独立性,简称数据的物理独立性。
1.4 数据库系统的组成
一、硬件平台及数据库
数据库系统对硬件资源的要求
足够大的内存
足够大的外存
较高的通道能力,提高数据传送率
二、软件
DBMS
操作系统
与数据库接口的高级语言及其编译系统
以DBMS为核心的应用开发工具
为特定应用环境开发的数据库应用系统
三、人员
数据库管理员
系统分析员
数据库设计人员
应用程序员
最终用户