数据库绪论
数据库是数据管理的最新技术,是计算机科学的重要分支。
感性认识一下数据库:
数据:学生数据
数据管理:数据的存储,更新,查询统计排序等
本节要点:
- n 数据库系统概述
- n 数据、数据库、数据库管理系统、数据库系统
- u 数据库管理技术的产生和发展
- n 数据模型
- n 数据模型概念
- u 数据模型的组成要素
- u 概念模型及E-R图
- u 概念模型的表示方法:实体-联系图(E-R图)
- u 逻辑数据模型
- n 数据库系统结构
- n 数据库系统的组成
1 数据库系统概述
在系统介绍数据库的基本概念之前,首先了解一些数据库最常用的术语和基本概念。
1.1 数据、数据库、数据库管理系统、数据库系统
a) 数据(data)(数据是数据库中存储的基本对象)
例如:李明,男,21,1972,江苏,计算机,1999
- 描述事物的符号记录称为数据。
- 数据!=数字 (数字只是其中的一种形式)
- 形式:数值、文字、图形、图像、声音 等。(符号)
- 信息(information):数据所表示的含义称为信息。
- 数据与信息的关系:数据是信息的载体,数据的内涵是信息,数据语义表达了信息,同时数据和语义是不可分的。
b) 数据库Database(DB)
数据库:长期存储在计算机内的、有组织的、可共享的数据集合。
特点:数据库中的数据具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
- 冗余度,通俗的讲就是数据的重复度。在一个数据集合中重复的数据称为数据冗余
- 数据独立性是指应用程序和数据结构之间相互独立, 互不影响
- 易扩展性指当有新的业务逻辑,数据库结构变动无须太大
c) 数据库管理系统Database Management System(DBMS)
DBMS是对数据库建立、操纵、维护的系统软件。它主要功能包括以下几个方面:
l 数据定义功能
提供数据定义语言DDL(Data Definition Language),定义数据库对象(如数据库,数据表,视图等)
l 数据组织、存储和管理
提高存储空间利用率和方便存取,提供多种存取方法(如索引查找)来提高存取效率。
l 数据操纵功能
提供数据操纵语言DML(Data Manipulation Language),实现数据插入,修改,删除,查询等
l 数据库的事务管理和运行管理
实现数据库的安全性、完整性(有效性),多用户并发控制
l 数据库的建立和维护功能
数据库初始数据的装入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。
l 其他功能
DBMS与网络中其他软件系统的通信功能;一个DBMS与另一个DBMS或文件系统的数据转换功能;异构数据库之间的互访和互操作功能等。
d) 数据库系统Database System(DBS)
数据库系统是指在计算机系统中引入数据库后的系统,通常由下面部分组成:
i. 数据库 DB
ii. 操作系统( Operating System ,简称OS)
iii. 数据库管理系统 DBMS
iv. 开发工具SDK开发的应用系统APP
v. 管理员DBA
vi. 用户USER
1.2 数据库管理技术的产生和发展
在应用需求的推动下,在计算机硬件、软件发展的基础上,数据库管理技术经历了人工管理阶段、文件系统阶段、数据库系统阶段。
1.2.1 人工管理阶段
在50年代中期以前;
基础技术:没有直接存储设备(卡片);没有基本操作系统;
应用领域:科学计算
- 数据管理没有纳入计算机统一管理的范畴。
- 应用程序中所使用数据均由应用程序自身管理。
特点:
- 数据不保存
- 应用程序管理数据
- 数据不共享
- 数据不具有独立性(针对特定的应用,数据或其结构变,程序也须变 )
1.2.2 文件系统管理阶段
在50年代后期——60年代中期;
基础技术:出现直接存储设备:磁盘、磁鼓;基本操作系统概念的建立,实现了抽象的文件系统
应用领域:扩展到信息管理
特点(优/缺):
- 数据可以长期保存(磁介质)
- 由文件系统管理数据(OS负责管理文件)
- 数据共享性差、冗余度大(文件——应用)
- 数据独立性较差(数据结构变,程序也须变)
1.2.3 数据库系统管理阶段
在60年代后期;
基础技术: 容量直接存储设备,硬件价格下降,应用开发(软件)价格上升
应用领域: 管理大量数据,联机实时处理为特点的大型数据管理
数据库系统管理的特点:
1.数据结构化(数据库的文件系统的根本区别)
2.数据独立性高(数据结构变,程序不须变)
3.数据共享性高,冗余度低,易扩充
4.数据由DBMS统一管理和控制,并使数据管理具有:
- 数据的安全性(security)保护(数据不被非法访问)
- 数据完整性(Integrity)检查(数据的正确性有效性相容性)
- 并发(Concurrency)控制
- 数据恢复(Recovery)
2 数据模型
模型,人们并不陌生。一张地图、一组建筑设计沙盘、一架精致的航模飞机都是具体的模型。模型是对现实世界中某个对象特征的模拟和抽象。例如,航模飞机是对生活中飞机的一种模拟和抽象。
数据模型(Data Model)也是一种模型,它是对现实世界数据特征的抽象。也就是说,数据模型是用来描述数据、组织数据和对数据进行操作的。
现有的数据库系统均是基于某种数据模型的。数据模型是数据库系统的核心和基础。因此,了解数据模型的基本概念是学习数据库的基础。
2.1 数据模型概念
数据模型应满足三方面要求:一是较真实模拟现实世界;二是易于人所理解;三是易于在计算机上实现。因此,在数据库系统中针对不同的使用对象和应用目的,采用不同的数据模型。在开发实施数据库应用系统中也需要使用三种不同的数据模型,包括概念模型、逻辑模型和物理模型,介绍如下:
概念模型:也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计;
逻辑模型:它是按计算机系统的观点对数据建模,主要用于DBMS的实现。主要包括层次模型、网状模型、关系模型、面向对象模型和对象关系模型等;
物理模型:是对数据最低层的抽象,它描述数据在系统内部的表示方式和存取方法,是面向计算机系统的。
2.2 数据模型的组成要素
数据模型精确地描述了系统的静态特性、动态特性和完整性约束条件。因此数据模型通常由数据结构、数据操作和完整性约束三个部分组成:
数据结构:描述数据库的组成对象以及对象之间的练习。
数据操作:允许执行的操作。主要:检索和更新
数据约束条件:数据完整性规则的集合。数据的完整性主要指数据的正确性、有效性和相容性。
2.3 概念模型及E-R图
概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,反应人对客观事物的认识。
a) 信息世界中的基本概念
- 实体(Entity):客观存在的可区别的事物。例:某学生,某公司,某国家etc.
- 属性(Attribute):实体所具有某一特征,描述、表达、界定实体。 例:(姓名,性别,年龄…)
- 实体型(Entity Type):用实体名及属性名集合来抽象和刻划的同类实体。例:学生(学号,姓名,性别,专业,入学时间);公司(ID,name,type,memo)
- 实体集(Entity Set):同型实体的集合。如一个班的学生集合
- 码(Key):唯一标识实体的属性集。例:学生编号
- 域(Domain):属性的取值范围。学生编号---6位,性别:男/女
- 联系(Relationship):实体型之间或实体型内部实体的联系。
b) 两实体型实体间联系的分类
1:1(一对一联系):A中任意实体至多对应B中的一个实体,反之B中的任意实体至多对应A中的一个实体。例如:观众与座位、乘客与车票、病人与病床、学校与校长等;
1:n(一对多联系):A中一个实体对应B中的多个实体,反之B中的任意实体至多对应A中的一个实体。例:城市与街道、宿舍与学生、父亲与子女、班级与学生等;
m:n(多对多联系):A中一个实体对应B中的多个实体,反之B中一个实体对应A中的多个实体。例:学生与课程、工厂与产品、商店与顾客。
c) 两个以上的实体型之间的联系
1对1例:一个教室属于一个班级,一个班级只有一个班长,一个教室里只有一个班长。
1对多示例:如果一门课程可以有若干个教师讲授,使用若干本参考书,每一个教师只讲授一门课程,每一本参考书只供一门课程使用,课程与教师、参考书之间的联系是一对多的;
多对多示例:1个供应商供应多个项目;1个供应商供应多种零件;1个项目有多个供应商;1个项目使用多种零件;1种零件应用于多个项目,1种零件由多个供应商供应。
d) 单个实体型内的联系
同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。例如,职工实体型内部具有领导与被领导的联系,即某一职工(干部)“领导”若干名职工,而一个职工仅被另外一个职工直接领导,因此这是一对多的联系。
2.4 概念模型的表示方法:实体-联系图(E-R图)
概念模型的表示方法很多,最著名的是实体—联系方法(E-R,Entity-Relationship Approach),该方法用E-R图来描述现实世界的概念模型,E-R方法也称E-R模型。
E-R图提供了表示实体型、属性和联系的方法:
- 用矩形表示实体、用椭圆表示属性、用菱形表示联系。
- 属性和实体间、实体和联系间用线段连接
- 联系线标注联系类型(1,n), 如果联系有属性,也要标注
示例:假设一个学生可选多门课程,而一门课程又有多个学生选修, 一个教师可讲多门课程,一门课程至多只有一个教师讲授。E-R图如下:
2.5 逻辑数据模型
最常见的逻辑数据模型有四种(按发展时间为序):
- 层次模型 适于描述层次结构的数据
- 网状模型 速度快、不易掌握
- 关系模型 易于理解和使用、有严格的数学理论基础
- 面向对象模型 适于模拟实体的行为
·层次模型和网状模型统称为格式化模型,格式化模型的数据库系统在20世纪70年代至80年代初非常流行,现在已逐渐被关系模型的数据库系统取代。
层次模型定义:
- 有且只有一个结点没有双亲结点,这个结点称为根结点;
- 根以外的其他结点有且只有一个双亲结点。
网状模型定义:
- 允许一个以上的结点无双亲;
- 一个节点可以有多于一个的双亲。
层次模型和网状模型详细介绍待补充。
下面详细介绍关系模型。
关系模型是目前最重要的一种数据模型,关系数据库系统采用关系模型作为数据的组织方式。由1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型。
a) 关系数据模型的数据结构
用表格(称为关系) 表示实体以及实体间联系的数据模型叫关系模型。每个关系的数据结构是一张规范化的二维表(在网状和层次模型中用指针的链接表示实体之间的联系)。介绍关系模型中的一些术语:
- 关系(Relation):一个二维表格;
- 元组(Tuple) :表中的一行即为一个元组;
- 属性(Attribute):表中的一列即为一个属性;
- 码(key):表中某属性组,可唯一确定任一元组;
- 域(Domain):属性的取值范围;
- 分量:元组中的一个属性值;
- 关系模式:对关系的描述,表述为:关系名(属性1,属性2,….,属性n)。如:学生(学号,姓名,性别,专业,入学时间)
b) 关系数据模型的操纵与完整性约束
操作主要包括:查询、插入、删除和更新数据。而这些操作必须满足关系的完整性约束条件。关系的完整性约束条件包括三大类:实体完整性、参照完整性和用户定义的完整性。
c) 关系数据模型的存储结构
在关系数据模型中,实体及实体间的联系都是用表来表示。在关系数据库的物理组织中,有的DBMS一个表对应一个操作系统文件,有的DBMS从操作系统获得若干个大的文件,自己设计表、索引等存储结构。例:表头;记录1,记录2,…,记录n, 结束标志。
d) 关系模型优缺点
优:
1)建立在严格的数学概念的基础上的;
2)概念单一,无论实体还是实体之间的联系都用关系来表示,所以其数据结构简单、清晰,用户易懂易用;
3)存取路径对用户透明,具有较高数据独立性和安全保密性;
注:这里透明其实是隐藏的意思,就是数据处理过程隐藏了存取路径,由数据关系系统自己选择存储路径,普通用户可能在不知情的情况下选择了效率较低的方法,所以关系数据库经常讲要优化。
缺:
查询效率不如非关系型
现实世界信息世界、机器世界术语的对应关系如下:
3 数据库系统结构
考察数据库系统的结构可以有多种不同的层次或不同的角度。
从数据库管理系统角度看,数据库系统通常采用三级模式结构;这是数据库关系系统内部的系统结构。
从数据库最终用户角度看,数据库系统的结构分为单用户结构、主从式结构、分布式结构、客户/服务器、浏览器/应用服务器/数据库服务器多层结构等。
现在从数据库管理系统的角度,讲解数据库系统的三级模式结构。
a) 数据库系统的三级模式
数据库模式(Schema):数据库中全体数据的结构和特征的描述称为数据库模式。
数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。如图:
- 外模式(Sub-Schema)(用户模式)
-
- 用户的数据视图
- 是数据的局部逻辑结构,模式的子集
- 模式(Schema)(概念模式)
- 所有用户的公共数据视图
-
- 是数据库中全体数据的全局逻辑结构和特性的描述
- 内模式(Storage Schema)(存贮模式)
-
- 又称存储模式
- 是数据的物理结构及存储方式
b) 数据库的二级映像功能与数据独立
数据库系统的三级模式是对数据的3个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。为了能够在系统内部实现这3个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映像:
- 外模式/模式映象
定义某一个外模式和模式之间的对应关系,映象定义通常包含在各外模式中。当模式改变时,修改外模式/模式映象,使外模式保持不变,从而应用程序可以保持不变,称为数据的逻辑独立性
例如:增加新的数据表;将一个数据表分解为两个表;增加新属性,改变属性的类型、名称。
- 模式/内模式映像
定义数据逻辑结构与存储结构之间的对应关系。存储结构改变时,修改模式/内模式映象,使模式保持不变,从而应用程序可以保持不变,称为数据的物理独立性
例如:
1)改变存储设备或引进新的存储设备;
2)改变数据的存储位置;
3)改变存储记录的体积;
4)改变数据组织方式;
4 数据库系统的组成
数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理人员构成。
a) 硬件平台及数据库
数据库系统对硬件资源的要求:足够大的内存;足够大的外存;较高的通道能力,提高数据传送率。
b) 软件
DBMS、操作系统、与数据库接口的高级语言及其编译系统、以DBMS为核心的应用开发工具、为特定应用环境开发的数据库应用系统
c) 人员
数据库管理员
- 决定数据库中的信息内容和结构
- 决定数据库的存储结构和存取策略
- 定义数据的安全性要求和完整性约束条件
- 监控数据库的使用和运行,周期性转储数据库,故障恢复
- 数据库的改进和重组
系统分析员
- 负责应用系统的需求分析和规范说明
- 与用户及DBA协商,确定系统的硬软件配置
- 参与数据库系统的概要设计
数据库设计人员
- 参加用户需求调查和系统分析
- 确定数据库中的数据
- 设计数据库各级模式
应用程序员
- 设计和编写应用系统的程序模块
- 进行调试和安装
最终用户
- 偶然用户
企业或组织机构的高中级管理人员
- 简单用户
银行的职员、机票预定人员、旅馆总台服务员
- 复杂用户
工程师、科学家、经济学家、科技工作者等
直接使用数据库语言访问数据库,甚至能够基于数据库管理系统的API编制自己的应用程序