数据库是数据库管理的有效技术,越来越多的应用领域采用数据库技术来存储和处理信息资源。
数据是数据库中存储的基本对象。
描述事物的符号记录被称为数据。
数据的含义称为数据的语义,数据与语义是不可分的。
数据库
(Database,简称DB)是长期储存在计算机内、有组织的、
可共享的大量数据的集合。
数据库的基本特征:
数据按一定的数据模型组织、描述和储存
可为各种用户共享
冗余度较小
数据独立性较高
易扩展
数据的种类:
文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等
数据库管理系统(DBMS)
数据库管理系统和操作系统一样是计算机的基础软件。
六大功能:
1:数据定义功能
提供数据定义语言(DDL)
定义数据库中的数据对象
:2:数据组织、存储和管理
分类组织、存储和管理各种数据
确定组织数据的文件结构和存取方式
实现数据之间的联系
提供多种存取方法提高存取效率
3:数据操纵功能
提供数据操纵语言(DML)
实现对数据库的基本操作 (查询、插入、删除和修改)
:4:数据库的事务管理和运行管理
数据库在建立、运行和维护时由DBMS统一管理和控制
保证数据的安全性、完整性、多用户对数据的并发使用
发生故障后的系统恢复
:5:数据库的建立和维护功能(实用程序)
数据库初始数据装载转换
数据库转储
介质故障恢复
数据库的重组织
性能监视分析等
6:其它功能
DBMS与网络中其它软件系统的通信
两个DBMS系统的数据转换
异构数据库之间的互访和互操作
(4)数据库系统–Database System
① 什么是数据库系统(Database System,简称DBS)
在计算机系统中引入数据库后的系统构成
② 数据库系统的构成
数据库 Database DB)
数据库管理系统(及其开发工具)Database Management System
应用系统
数据库管理员 Database Administrator
1、应用程序管理数据:数据需要应用程序自己设计,定义和管理,没有相应的软件系统负责数据管理工作。应用程序中不仅要规定数据逻辑结构,还要设计物理结构,包括存储结构,存取方法,输入方式等,程序员负担非常重。非程序员无法使用计算机系统。
2、数据不共享:数据面向应用程序的,一组数据对应一个程序。多个应用程序处理相同数据时必须各自定义,无法互相利用。所以程序之间有大量的冗余数据。
3、数据不具独立性:数据逻辑结构或物理结构发生变化后,必须对应用程序做对应的修改,数据完全依赖于应用程序,称为数据缺乏独立性。
文件系统阶段
1、文件系统管理数据:数据组织成独立的数据文件,“按文件名访问,按记录进行存取”管理技术。文件系统提供文件打开,关闭,读写存取方式。
2、共享性差,冗余度大:文件仍然是面向应用的。不同的应用程序即便使用相同数据,也必须各自建立文件,所以相同数据重复存储,数据冗余度大,各自管理,容易产生数据不一致。
3、独立性差:文件为特定应用服务,文件的逻辑结构是针对具体的应用来设计的,数据逻辑结构改变时,应用程序中文件结构的定义就必须修改。数据依赖于应用程序,缺乏独立性。
4、文件之间是孤立的,不能反映现实世界事物之间的内在联系。
数据独立性包括:逻辑独立性和物理独立性。
模型是对现实世界中的某个对象特征的模拟和抽象。
在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟
2.两大类数据模型
数据模型分为两类(分属两个不同的层次)
(1) 概念模型 也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。
(2) 逻辑模型和物理模型
逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。
物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
概念模型::
信息世界中的基本概念
(1) 实体(Entity)
客观存在并可相互区别的事物称为实体。
可以是具体的人、事、物或抽象的概念。
(2) 属性(Attribute)
实体所具有的某一特性称为属性。
一个实体可以由若干个属性来刻画。
(3) 码(Key)键
唯一标识实体的属性集称为码。
(4) 域(Domain)
属性的取值范围称为该属性的域。
(5) 实体型(Entity Type)
用实体名及其属性名集合来抽象和刻画同类实体称为实体型
(6) 实体集(Entity Set)
同一类型实体的集合称为实体集
(7) 联系(Relationship)
现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。
实体内部的联系通常是指组成实体的各属性之间的联系
实体之间的联系通常是指不同实体集之间的联系
2:概念模型的一种表示方法:实体-联想方法
E-R模型
5.非关系模型
(1)层次模型(Hierarchical Model)
层次模型是数据库系统中最早出现的数据模型
层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统
层次模型用树形结构来表示各类实体以及实体间的联系
① 数据结构
满足下面两个条件的基本层次联系的集合为层次模型
有且只有一个结点没有双亲结点,这个结点称为根结点
根以外的其它结点有且只有一个双亲结点
层次模型中的几个术语
根结点,双亲结点,兄弟结点,叶结点
② 特点
结点的双亲是唯一的
只能直接处理一对多的实体联系
每个记录类型可以定义一个排序字段,也称为·码字段
任何记录值只有按其路径查看时,才能显出它的全部意义
没有一个子女记录值能够脱离双亲记录值而独立存在
模式:模式是数据库结构的描述、关系模式是表的结构的描述;
“型” 和“值” 的概念
型(Type)
对某一类数据的结构和属性的说明
值(Value)
是型的一个具体赋值
模式(Schema)
数据库逻辑结构和特征的描述
是型的描述
反映的是数据的结构及其联系
模式是相对稳定的
实例(Instance)
模式的一个具体值
反映数据库某一时刻的状态
同一个模式可以有很多实例
实例随数据库中的数据的更新而变动
一个数据库只有一个模式,可以把模式看成唯一的数据库,实例就是数据库里面的多个表
例如:在学生选课数据库模式中,包含学生记录、课程记录和学生选课记录
2003年的一个学生数据库实例,包含:
2003年学校中所有学生的记录
学校开设的所有课程的记录
所有学生选课的记录
2002年度学生数据库模式对应的实例与2003年度学生数据库模式对应的实例是不同的
(3)数据库系统的三级模式结构
① 模式(Schema)
模式(也称逻辑模式)
数据库中全体数据的逻辑结构和特征的描述
所有用户的公共数据视图,综合了所有用户的需求
一个数据库只有一个模式,可以把模式看成唯一的数据库,实例就是数据库里面的多个表
模式的地位:是数据库系统模式结构的中间层
与数据的物理存储细节和硬件环境无关
与具体的应用程序、开发工具及高级程序设计语言无关
模式的定义:
数据的逻辑结构(数据项的名字、类型、取值范围等)
数据之间的联系
数据有关的安全性、完整性要求
② 外模式(External Schema)
外模式(也称子模式或用户模式)
数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
数据库用户的数据视图,是与某一应用有关的数据的逻辑表示,可以看成把数据库的部分数据,运用在不同的应用程序上,在UI界面上显示
一个数据库只有一个模式,可以把模式看成唯一的数据库,实例就是数据库里面的多个表
外模式的地位:介于模式与应用之间
模式与外模式的关系:一对多
外模式通常是模式的子集;
一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求;
对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同;
外模式与应用的关系:一对多
同一外模式也可以为某一用户的多个应用系统所使用;
但一个应用程序只能使用一个外模式;可以看成把数据库的部分数据,运用在不同的应用程序上,在UI界面上显示
外模式的用途
保证数据库安全性的一个有力措施;
每个用户只能看见和访问所对应的外模式中的数据;
③ 内模式(Internal Schema)
内模式(也称存储模式)
是数据物理结构和存储方式的描述
是数据在数据库内部的表示方式:
记录的存储方式(顺序存储,按照B树结构存储,
按hash方法存储)
索引的组织方式
数据是否压缩存储
数据是否加密
数据存储记录结构的规定
一个数据库只有一个内模式
·例如学生记录,如果按堆存储,则插入一条新记录总是放在学生记录存储的最后.
如果按·学号升序存储,则插入一条记录就要找到它应在的位置插入,如图1.29(b)所示
如果按照学生年龄聚簇存放,假如新插入的S3是16岁,则应插入的位置如图1.29(c)所示
即全局逻辑结构是数据库的中心与关键
独立于数据库的其他层次
设计数据库模式结构时应首先确定数据库的逻辑模式
数据库的外模式
面向具体的应用程序
定义在逻辑模式之上
独立于存储模式和存储设备
当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式就得做相应改动
设计外模式时应充分考虑到应用的扩充性
数据库的内模式
依赖于它的全局逻辑结构
独立于具体的存储设备
将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率
(4)数据库的二级映像功能与数据独立性
·三级模式是对数据的三个抽象级别
二级映象在DBMS内部实现这三个抽象层次的联系和转换
① 外模式/模式映象
模式:描述的是数据的全局逻辑结构
外模式:描述的是数据的局部逻辑结构
同一个模式可以有任意多个外模式
每一个外模式,数据库系统都有一个外模式/模式映象,定义外模式与模式之间的对应关系,看成数据库的数据与API调用的部分数据之间的关系(I think)
映象定义通常包含在各自外模式的描述中
保证数据的逻辑独立性
当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变
应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
② 模式/内模式映象
模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。
例如,说明逻辑记录和字段在内部是如何表示的
1
数据库中模式/内模式映象是唯一的
该映象定义通常包含在模式描述中
保证数据的物理独立性
当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变.
应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。
特定的应用程序
在外模式描述的数据结构上编制的
依赖于特定的外模式
与数据库的模式和存储结构独立
不同的应用程序有时可以共用同一个外模式
数据库的二级映像
保证了数据库外模式的稳定性
从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改
数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去
数据的存取由DBMS管理
用户不必考虑存取路径等细节
简化了应用程序的编制
大大减少了应用程序的维护和修改
(1)硬件平台及数据库
数据库系统对硬件资源的要求
(1) 足够大的内存
操作系统
DBMS的核心模块
数据缓冲区
应用程序
(2) 足够大的外存
磁盘或磁盘阵列
数据库
光盘、磁带
数据备份
(3) 较高的通道能力,提高数据传送率
(2) 软件
DBMS
支持DBMS运行的操作系统
与数据库接口的高级语言及其编译系统
以DBMS为核心的应用开发工具
为特定应用环境开发的数据库应用系统
(3)人 员
数据库管理员
系统分析员和数据库设计人员
应用程序员
用户
不同的人员涉及不同的数据抽象级别,具有不同的数据视图,如下图所示
① 数据库管理员(DBA)
具体职责:
1.决定数据库中的信息内容和结构
2.决定数据库的存储结构和存取策略
3.定义数据的安全性要求和完整性约束条件
4.监控数据库的使用和运行
周期性转储数据库
数据文件
日志文件
系统故障恢复
介质故障恢复
监视审计文件
5.数据库的改进和重组
性能监控和调优
定期对数据库进行重组织,以提高系统的性能
需求增加和改变时,数据库须需要重构造
② 系统分析员
具体职责:
负责应用系统的需求分析和规范说明
与用户及DBA协商,确定系统的硬软件配置
参与数据库系统的概要设计
③ 数据库设计人员
具体职责:
参加用户需求调查和系统分析
确定数据库中的数据
设计数据库各级模式
④ 应用程序员
具体职责:
设计和编写应用系统的程序模块
进行调试和安装
⑤ 用户
用户是指最终用户(End User)。
最终用户通过应用系统的用户接口使用数据库。
1.偶然用户
不经常访问数据库,但每次访问数据库时往往需要不同的数据库信息
企业或组织机构的高中级管理人员
2.简单用户
主要工作是查询和更新数据库
银行的职员、机票预定人员、旅馆总台服务员
3.复杂用户
工程师、科学家、经济学家、科技工作者等
直接使用数据库语言访问数据库,甚至能够基于数据库管理系统的API编制自己的应用程序
单一的数据结构----关系
现实世界的实体以及实体间的各种联系均用关系来表示
逻辑结构----二维表
从用户角度,关系模型中数据的逻辑结构是一张二维表
建立在集合代数的基础上
(1)域(Domain)
域是一组具有相同数据类型的值的集合。例:
整数
实数
介于某个取值范围的整数
长度指定长度的字符串集合
{‘男’,‘女’}
………………
(2)笛卡尔积(Cartesian Product)
笛卡尔积
给定一组域D1,D2,…,Dn,这些域中可以有相同的。
D1,D2,…,Dn的笛卡尔积为:
所有域的所有取值的一个组合;
不能重复;
元组(Tuple)
笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组(Tuple);
(张清玫,计算机专业,李勇)、(张清玫,计算机专业,刘晨)等都是元组 ;
分量(Component)
笛卡尔积元素(d1,d2,…,dn)中的每一个值di叫作一个分量;
张清玫、计算机专业、李勇、刘晨等都是分量 ;
基数(Cardinal number)
可以把基数看做笛卡尔积元素的个数,及元组的个数;
若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:
笛卡尔积的表示方法:
笛卡尔积可表示为一个二维表;
表中的每行对应一个元组,表中的每列对应一个域;
(3)关系(Relation)
关系
·笛卡尔积·D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为:
R:关系名
n:关系的目或度(Degree)
元组
·关系·中的每个元素是关系中的元组,通常用t表示。
单元关系与二元关系
当n=1时,称该关系为单元关系(Unary relation)或一元关系 ;
当n=2时,称该关系为二元关系(Binary relation);
·关系的表示·
关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域
属性
关系中不同列可以对应相同的域;
为了加以区分,必须对每列起一个名字,称为属性(Attribute);
n目关系必有n个属性;
码
候选码(Candidate key)
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码;
简单的情况:候选码只包含一个属性;
全码(All-key)
最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key);
主码
若一个关系有多个候选码,则选定其中一个为主码(Primary key);
主属性
候选码的诸属性称为主属性(Prime attribute);
不包含在任何侯选码中的属性称为非主属性( Non-Prime attribute)或非码属性(Non-key attribute) ;
D1,D2,…,Dn的笛卡尔积的某个子集才有实际含义
·例:·表2.1 的笛卡尔积没有实际意义
取出有实际意义的元组来构造关系
关系:SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)
假设:导师与专业:1:1, 导师与研究生:1:n
主码:POSTGRADUATE(假设研究生不会重名)
SAP关系可以包含三个元组:{ (张清玫,计算机专业,李勇), (张清玫,计算机专业,刘晨),(刘逸,信息专业,王敏) }
(4)三类关系
基本关系(基本表或基表)
实际存在的表,是实际存储数据的逻辑表示
查询表
查询结果对应的表
视图表
由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据
在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。
视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。
我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。
注释:数据库的设计和结构不会受到视图中的函数、where 或 join 语句的影响。
基本关系(二维表)的性质
① 列是同质的(Homogeneous);
② 不同的列可出自同一个域,其中的每一列称为一个属性,不同的属性要给予不同的属性名;
③ 列的顺序无所谓,列的次序可以任意交换;
④ 任意两个元组的候选码不能相同;
⑤ 行的顺序无所谓,行的次序可以任意交换;
⑥ 分量必须取原子值,这是规范条件中最基本的一条;
2.关系模式
(1)什么是关系模式
关系模式(Relation Schema)是型
关系是值
关系模式是对关系的描述:
元组集合的结构
属性构成
属性来自的域
属性与域之间的映象关系
元组语义以及完整性约束条件
属性间的数据依赖关系集合
(2)定义关系模式
关系模式可以形式化地表示为:
R(U,D,DOM,F)
R 关系名
U 组成该关系的属性名集合
D 属性组U中属性所来自的域
DOM 属性向域的映象集合
F 属性间的数据依赖关系集合
·例:·
导师和研究生出自同一个域——人,取不同的属性名,并在模式中定义属性向域的映象,即说明它们分别出自哪个域;
DOM(SUPERVISOR-PERSON)= DOM(POSTGRADUATE-PERSON)=PERSON
关系模式通常可以简记为
R (U) 或 R (A1,A2,…,An)
R: 关系名
A1,A2,…,An : 属性名
注:域名及属性向域的映象常常直接说明为属性的类型、长度
3.关系模式和关系的对比
关系模式
对关系的描述
静态的、稳定的
关系
关系模式在某一时刻的状态或内容
动态的、随时间不断变化的
关系模式和关系往往统称为关系
在数据库学科中可以把关系模式理解为表的结构、属性之间的关系、约束条件,把关系理解为二维表
4.关系数据库
关系数据库·
在一个给定的应用领域中,所有·关系的集合·构成一个关系数据库
·关系数据库模式包括
若干域的定义;
在这些域上定义的若干关系模式;
关系数据库的·型·与值
关系数据库的型: 关系数据库模式, 对关系数据库的描述。
关系数据库的值: 关系模式在某一时刻对应的关系的集合,简称为关系数据库
1.关系操作
(1)基本关系操作
常用的关系操作
查询:选择、投影、连接、除、并、交、差
数据更新:插入、删除、修改
查询的表达能力是其中最主要的部分
选择、投影、并、差、笛卡尔基是5种基本操作
关系操作的特点
集合操作方式:操作的对象和结果都是集合,一次一集合的方式
(2)关系数据库语言的分类
三大类:
1:关系代数语言
用对关系的运算来表达查询要求;
代表:ISBL;
关系演算语言:用谓词来表达查询要求;
2:元组关系演算语言
谓词变元的基本对象是元组变量;
代表:APLHA, QUEL;
3:域关系演算语言
谓词变元的基本对象是域变量;
代表:QBE;
具有关系代数和关系演算双重特点的语言;
代表:SQL(Structured Query Language) ;
1)关系的三类完整性约束
实体完整性和参照完整性:
关系模型必须满足的完整性约束条件;
称为关系的两个不变性,应该由关系系统自动支持;
用户定义的完整性:
应用领域需要遵循的约束条件,体现了具体领域中的语义约束 ;
(2) 实体完整性(Entity Integrity)
若属性A是基本关系R的主属性,则属性A不能取空值
例:
SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)
POSTGRADUATE:
主码(假设研究生不会重名)
不能取空值
实体完整性规则的说明
(1) 实体完整性规则是针对基本关系而言的。一个基本表通常对应现 实世界的一个实体集。
(2) 现实世界中的实体是可区分的,即它们具有某种唯一性标识。
(3) 关系模型中以主码作为唯一性标识。
(4) 主码中的属性即主属性不能取空值。主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性
❷ 外码(Foreign Key)
设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码,即该码是另一个表的主码。
基本关系R称为参照关系(Referencing Relation),即本表。
基本关系S称为被参照关系(Referenced Relation) 或目标关系(Target Relation),即外码对应的主码所在的表。
关系R和S不一定是不同的关系
目标关系S的主码Ks 和参照关系的外码F必须定义在同一个(或一组)域上
外码并不一定要与相应的主码同名,当外码与相应的主码属于不同关系时,往往取相同的名 字,以便于识别
❸ 参照完整性规则
若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性值均为空值)
或者等于S中某个元组的主码值
外码的值要么为空,要么为S中某个元组的主码值
(4)用户定义的完整性
针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求
关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能
(2)传统的集合运算
① 并(Union)
② 差(Difference)
(3)专门的关系运算
① 几个记号
② 选择(Selection)
③ 投影(Projection)
④ 连接(Join)
左连接、右连接、外连接
⑤ 除(Division)