杨 洁 E-mail: yangjie0514@hdu.edu.cn 数据库原理与技术 杨 洁 E-mail: yangjie0514@hdu.edu.cn 2017/3/21
第1章 数据库系统概论 2017/3/21
主要内容 什么是数据库应用系统? 数据库系统的应用领域 四个基本概念——数据、数据库、DBMS、DBS 回溯——数据管理技术的发展 数据库系统特点 数据库系统的组成 核心——数据库管理系统 数据库系统结构 三级模式两级映像与数据独立性 2017/3/21
1.2 数据管理技术的发展 四个基本概念 数据库管理技术的产生和发展 数据库系统的特点 数据 Data 数据库 DB 1.2 数据管理技术的发展 四个基本概念 数据 Data 数据库 DB 数据库管理系统 DBMS 数据库系统 DBS 数据库管理技术的产生和发展 数据库系统的特点 2017/3/21
四个基本概念 数据Data 数据库DataBase,DB 数据库管理系统 DataBase Management System,DBMS 数据库系统 DataBase System,DBS (数据库应用系统) 2017/3/21
数据 Data 数据(Data)是数据库中存储的基本对象 数据的定义 数据的种类 数据的特点 描述事物的符号记录 数字文字、图形、图像、声音 数据与其语义是不可分的 2017/3/21
数据举例 学生档案中的学生记录 数据的形式不能完全表达其内容 数据的解释(数据字典) 请给出另一个解释和语义 (李明,男,1972,江苏,计算机系,1990) 数据的形式不能完全表达其内容 数据的解释(数据字典) 语义:学生姓名、性别、出生年月、籍贯、所在系别、入学时间 解释:李明是个大学生,1972年出生,江苏人,1990年考入计算机系 请给出另一个解释和语义 2017/3/21
数据库(举例) 2017/3/21
数据库 DB (Database) 定义 特征 数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合 数据按一定的数据模型组织、描述和储存 可为各种用户共享 冗余度较小 数据独立性较高 易扩展 2017/3/21
数据库管理系统 DBMS 数据库管理系统(Database Management System,简称DBMS)是位于用户与操作系统之间的一层数据管理软件。 DBMS的用途 科学地组织和存储数据、高效地获取和维护数据 2017/3/21
数据库系统 DBS 什么是数据库系统 数据库系统的构成 数据库系统(Database System,简称DBS)是指在计算机系统中引入数据库后的系统构成。 在不引起混淆的情况下常常把数据库系统简称为数据库。 数据库系统的构成 由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员DBA(和用户)构成。 2017/3/21
数据库管理员(DBA, DataBase Administrator) 协调用户和开发人员的工作 参与数据库设计 创建用户和授权 保证数据库的正常运行 维护工作 2017/3/21
DBS 构成 2017/3/21
主要内容 什么是数据库应用系统? 数据库系统的应用领域 四个基本概念——数据、数据库、DBMS、DBS 回溯——数据管理技术的发展 数据库系统特点 数据库系统的组成 核心——数据库管理系统 数据库系统结构 三级模式两级映像与数据独立性 2017/3/21
数据管理技术的发展 什么是数据管理 数据管理技术的发展阶段 与计算机的软、硬件发展密切相关 数据库系统的特点 对数据进行分类、组织、编码、存储、检索和维护 数据管理技术的发展阶段 人工管理阶段(20世纪50年代中期以前) 文件系统阶段(20世纪50年代后期--20世纪60年代中期) 数据库系统阶段(20世纪60年代后期开始) 与计算机的软、硬件发展密切相关 数据库系统的特点 2017/3/21
数据管理技术的发展(续) 各阶段的技术及应用背景 各个阶段的差别体现 计算机应用范围 外存储设备 数据管理软件 谁管理数据 数据面向谁 数据与应用的独立性 2017/3/21
人工管理阶段 时期 背景 20世纪50年代中期前 应用需求:主要用于科学计算,数据量小、结构简单,如高阶方程、曲线拟和等 硬件水平:为顺序存取设有磁带、卡片、纸带,没有磁盘等直接存取设备 软件水平:没有操作系统,没有数据管理软件,dos系统 处理方式:批处理,用户用机器指令(直接给CPU输入执行指令,与C++、Java等高级语言不同)编码,通过纸带机输入程序和数据,程序运行完毕后,用户取走纸带和运算结果,再让下一个上机操作 2017/3/21
图书馆 文学 索引卡片柜 有序排列的书库 文学 2017/3/21 18
2017/3/21
银行 2017/3/21
2017/3/21
人工管理阶段(续) 特点 数据的管理者:用户(程序员),数据不保存 数据面向的对象:某一应用程序 数据的共享程度:无共享、冗余度极大 数据的独立性:不独立,完全依赖于程序 数据的结构化:无结构 数据控制能力:应用程序自己控制 2017/3/21
人工管理阶段应用程序与数据之间的对应关系 人工管理阶段(续) 访问 数据1 数据2 数据n 程序1 程序2 程序n 数据1,2,……,n之间重复的数据很多,造成空间浪费,数据1服务于程序1,…… 人工管理阶段应用程序与数据之间的对应关系 2017/3/21
文件系统阶段 时期 背景 20世纪50年代末--60年代中期 应用需求:科学计算、管理(数据多样),大量的数据存储、检索和维护成为紧迫的需求。 硬件水平:磁盘、磁鼓、硬盘等外部存取设备。 软件水平:高级语言和操作系统,操作系统中有了专门管理数据的软件(文件系统)。 处理方式:联机实时处理、批处理 2017/3/21
文件系统阶段(续) 特点 数据的管理者:文件系统,数据可长期保存 数据面向的对象:某一应用程序 数据的共享程度:共享性差、冗余度大 数据的结构化:记录内有结构,整体无结构 数据的独立性:独立性差,数据的逻辑结构改变必须修改应用程序 数据控制能力:应用程序自己控制 2017/3/21
文件系统阶段应用程序与数据之间的对应关系 文件系统阶段(续) 数据1 程序1 存取方式 数据2 程序2 数据n 程序n 文件系统阶段应用程序与数据之间的对应关系 2017/3/21
文件系统中数据的结构 记录内有结构。 数据的结构是靠程序定义和解释的。 数据只能是定长的。 可以间接实现数据变长要求,但访问相应数据的应用程序复杂了。 文件间是独立的,因此数据整体无结构。 可以间接实现数据整体的有结构,但必须在应用程序中对描述数据间的联系。 数据的最小存取单位是记录。 2017/3/21
文件系统阶段缺点 数据共享性差,冗余度大 数据不一致 文件都是为特定的用途设计的,当不同应用程序具有相同的数据时,也必须建立各自的文件。 同样数据在多个文件中重复存储 数据不一致 由数据共享性差,冗余度大造成,更新时会造成同一数据在不同文件中的不一致,给数据的修改和维护带来了困难。 2017/3/21
文件系统阶段缺点(续) 补贴 系别 姓名 工号 劳资科 住址 性别 房产科 学位 职称 教务处 工龄 年龄 人事处 2017/3/21
文件系统阶段缺点(续) 例:人事处有一个职工文件: 职工基本情况 有关人事管理的数据 教务处也有一个职工文件: 职工基本情况 有关教育培训的数据 其中,“职工基本情况”重复存储,浪费空间。可共享存储类似这样的共同数据,以降低数据的冗余度。 2017/3/21
文件系统阶段缺点(续) 数据独立性差 数据的语义信息只能由程序来解释,即数据收集以后怎么组织,以及数据取出来之后按什么含义应用,只有全权管理它的程序知道。 数据的逻辑结构改变则必须修改应用程序,文件系统仍是一个不具有弹性的无结构的数据集。 2017/3/21
用C语言读取数据文件的例子: # include <stdio.h> # include <stdlib.h> Void main() { char name[20]; int rollno,age; FILE *fp; fp=fopen(“c:\student.dat”,”r”); while (! feof(fp)) { fscanf ( fp,”%d%s%d”,&rollno,&name,&age); printf ( “\nRoll No.:%d”,rollno); printf ( “\nName:%s”,name); printf ( “\nAge:%d”,age); } fclose(fp) 2017/3/21
文件系统阶段缺点(续) 数据查询困难 记录之间无联系 应用自己编程实现 对每个查询都重新编码 数据完整性难于保证 2017/3/21
示例 供应商 项目 零件 供应 S(SNO, SNAME, STATUS, CITY) P(PNO, PNAME, COLOR, WEIGHT, CITY) J(JNO, JNAME,CITY) SPJ(SNO, PNO, JNO, QTY) S表示供应商,它的各属性依次为供应商号,供应商名,供应商状态值,供应商所在城市; P表示零件,它的各属性依次为零件号,零件名,零件颜色,零件重量,零件存放的城市; J表示工程,它的各属性依次为工程号,工程名,工程所在城市; SPJ表示供货关系,它的各属性依次为供应商号,零件号,工程号,供货数量。 2017/3/21
示例(续) 查询 “北京的所有工程” “供应红色零件给北京的工程的供应商” 维护 “不允许供应不存在的零件” 2017/3/21
示例——基于文件系统 文件系统如何来组织? 分别组织几个文件,存储各类对象的记录 系统不支持文件间的联系,由应用程序负责查询表达及数据的维护 2017/3/21
数据库系统阶段 时期 背景 20世纪60年代末以来 应用背景:计算机管理的数据量大,关系复杂,共享性要求强(多种应用、不同语言共享数据) 硬件背景:大容量磁盘、磁盘阵列 软件背景:软件价格上升,硬件价格下降,编制和维护软件及应用程序成本相对增加,出现了专门的数据库管理系统 处理方式:联机实时处理,分布处理,批处理 2017/3/21
数据模型与数据库系统的发展 第一代数据库系统 网状、层次数据库系统 第二代数据库系统 关系数据库系统 第三代数据库系统 2017/3/21
主要讨论点(一) 数据结构 逻辑结构 物理结构 课程号 课程名 学分 先修课 1001 数据结构 4 1003 1002 数据库 3 数据之间存在的逻辑关系 表、树、图、数组… 物理结构 数据在计算机内的存储方式 顺序方式、链接方式… 课程号 课程名 学分 先修课 1001 数据结构 4 1003 1002 数据库 3 PASCAL 2017/3/21
主要讨论点(二) 数据独立性 数据的物理独立性 数据的逻辑独立性 当数据的结构发生变化时,通过系统提供的映象(转换)功能,使应用程序不必改变 当数据的存储结构改变时,应用程序不必改变 数据的逻辑独立性 当数据的逻辑结构改变时,应用程序不必改变 2017/3/21
1973年图灵奖获得者Charles.W.Bachman—“网状数据库之父” 1981年图灵奖获得者: E.F.Codd—“关系数据库之父” 1998年图灵奖获得者: J.Gray在数据库技术的实用化和事务管理方面发挥关键作用 20世纪70年代 网状系统和层次系统占据了整个数据库商用场, 而关系系统仅处于实验阶段 20世纪80年代 关系数据库代替网状系统和层次系统占领市场 2017/3/21
数据库系统阶段 特点 有了数据库管理系统 面向全组织,面向现实世界 独立性较强 由DBMS统一存取,维护数据语义及结构 2017/3/21
数据库系统阶段应用程序与数据之间的对应关系 数据库观点 数据不是依赖于处理过程的附属品,而是现实世界中独立存在的对象 数据1 统一存取 数据2 数据n 程序2 程序1 程序n 数据库系统阶段应用程序与数据之间的对应关系 2017/3/21
学号 姓名 性别 系别 年龄 住址 工龄 学位 职称 补贴 教务处 房产科 人事处 劳资科 2017/3/21
示例 供应商 项目 零件 供应 S(SNO, SNAME, STATUS, CITY) P(PNO, PNAME, COLOR, WEIGHT, CITY) J(JNO, JNAME, CITY) SPJ(SNO, PNO, JNO, QTY) S表示供应商,它的各属性依次为供应商号,供应商名,供应商状态值,供应商所在城市; P表示零件,它的各属性依次为零件号,零件名,零件颜色,零件重量,零件存放的城市; J表示工程,它的各属性依次为工程号,工程名,工程所在城市; SPJ表示供货关系,它的各属性依次为供应商号,零件号,工程号,供货数量。 2017/3/21
示例(续) 查询 “北京的所有工程” “供应红色零件给北京的工程的供应商” 维护 “不允许供应不存在的零件” 2017/3/21
示例——基于关系数据库系统 数据库系统(关系) 数据统一按表结构存放,设为S,P,J,SPJ 查询:只需提查询要求,由系统完成查询过程 SELECT SNO FROM P, J, SPJ WHERE SPJ.JNO = J.JNO AND SPJ.PNO = P.PNO AND J.CITY = ‘BEIJING’ AND P.COLOR = ‘RED’ 维护:应用提出完整性约束,系统自动检查 CREATE TABLE SPJ(……, FOREIGN KEY (PNO) REFERENCES P(PNO), ……) 2017/3/21
数据库系统 vs 文件系统 文件系统的弱点 数据库系统的用武之地 效率两面观 记录之间无联系 难于维护数据的完整性 有查询 整体数据结构化 运行效率 开发效率 文件系统 应用 数据管理 文件系统 数据管理 应用 2017/3/21
数据库系统的特点 DBMS统一管理和控制数据 数据的安全性控制(Security) 数据的完整性控制(Integrity) 保护数据以防止不合法的使用所造成的数据泄露和破坏 措施:用户标识与鉴定,存取控制 数据的完整性控制(Integrity) 数据的正确性、有效性、相容性 措施:完整性约束条件定义和检查 并发控制(Concurrency) 对多用户的并发操作加以控制、协调,防止其互相干扰而得到错误的结果并使数据库完整性遭到破坏 措施:封锁 数据库恢复(Recovery) 将数据库从错误状态恢复到某一已知的正确状态。 2017/3/21
数据库系统的特点 面向全组织的复杂的数据结构 数据整体结构化 支持全企业的应用而不是某一个应用 这是数据库系统的主要特征之一,与文件系统的根本差别。文件系统只是记录的内部有结构,一个文件的记录之间是个线性序列,记录之间无联系 数据的结构用数据模型描述,无需程序定义和解释。 数据可以变长。 数据的最小存取单位是数据项。 2017/3/21
数据库系统的特点(续) 数据的共享性高,冗余度小,易扩充 数据共享的好处 数据库系统从整体角度看待和描述数据,数据面向整个系统,而不是面向某一应用,可以被多个用户、多个应用共享使用 数据集中管理,数据共享,因此冗余度小 数据共享的好处 减少数据冗余,节约存储空间 避免数据之间的不相容性与不一致性 使系统易于扩充 每个应用选用数据库的一个子集,只要重新选取不同子集或者加上一小部分数据,就可以满足新的应用要求,这就是易扩充性 2017/3/21
数据库系统的特点(续) 具有较高的数据和程序的独立性 数据独立性是由DBMS的二级映像功能来保证的 高度的物理独立性和一定的逻辑独立性 把数据库的定义和描述从应用程序中分离出去 数据描述是分级的(全局逻辑、局部逻辑、存储) 数据的存取由系统管理,用户不必考虑存取路径等细节,从而简化了应用程序 数据独立性是由DBMS的二级映像功能来保证的 2017/3/21
数据管理技术发展的三个阶段 手工阶段 文件系统 数据库 特点:以文件形式存放、 有了文件系统、程序与数 据有一定的独立性、记录 为单位、数据冗余大、面 向特定程序服务 特点:数据是公用的、 共享度高、独立性高、 专用管理系统功能更强 特点:数据不保存、 没有管理软件、没 有文件概念、数据 面向具体应用 2017/3/21
主要内容 什么是数据库应用系统? 数据库系统的应用领域 四个基本概念——数据、数据库、DBMS、DBS 回溯——数据管理的发展阶段 数据库系统特点 数据库系统的组成 核心——数据库管理系统 数据库系统结构 三级模式两级映像与数据独立性 2017/3/21
1.3 数据库系统的构成 数据库系统的软硬件层次 数据库系统的主要成分 数据库系统结构 2017/3/21
数据库系统的软硬件层次 应用系统 应用开发工具软件 DBMS,编译系统 操作系统 硬件 PB,VB,VC DELPHY Oracle,Db2, Sybase, SQL Server, MySQL 2017/3/21
数据库系统的主要成分 硬件 软件 数据 大内存,放得下OS,DBMS核心,系统缓冲区,用户工作区等 大容量、直接存取的外存设备 作数据备份的磁带 软件 OS,DBMS,高级语言编译系统及其与数据库的接口,应用开发工具,应用系统 数据 目标数据:数据本身 描述数据:元数据(meta-data),数据字典 描述数据的数据 描述数据的含义和性质,以便更好地理解、管理和使用数据的数据 示例 数据:图书馆中的书籍 元数据:标题、作者、关键词、ISBN号 2017/3/21
数据库系统的主要成分(续) 用户 最终用户 应用程序员 系统分析员 数据库管理员DBA(含数据库设计者) 通过应用系统的用户接口(菜单等)使用数据库 应用程序员 基于外模式来编写应用程序 系统分析员 负责应用系统的需求分析和规范定义,确定系统的软硬件配置,参与数据库模式设计 数据库管理员DBA(含数据库设计者) 负责数据库的全面管理和控制 2017/3/21
数据库管理员(DBA) DBA的重要性 DBA职责 重要资源 共享资源 建库方面(数据库设计者) 用库方面 改进方面 维护整个组织的信息资源 多用户共享,需要统一管理、协调、监控 DBA职责 建库方面(数据库设计者) 确定模式、外模式、存储结构、存取策略 负责数据的整理和装入 用库方面 定义完整性约束条件 规定数据的保密级别、用户权限 监督和控制数据库的运行情况 制定后援和恢复策略,负责故障恢复 改进方面 监督分析系统的性能(空间利用率,处理效率) 数据库重组织,物理上重组织,以提高性能 数据库重构造,设计上较大改动,模式和内模式修 2017/3/21
数据库管理系统(DBMS) DBMS概念 DBMS主要功能 DBMS构成 DBMS语言系统 DBMS工作过程 2017/3/21
ftt@hdu.edu.cn 用户 数据库管理系统 数据库 系统结构 磁盘存储器 索引 数据文件 统计数据 数据字典 事务管理器 应用程序 目标代码 嵌入式DML 预编译器 DML 编译器 DDL 解释器 查询计算引擎 应用界面 查询 数据库模式 初级用户 程序设计人员 熟练用户 数据库管理员 数据库管理系统 查询处理器 存储管理器 用户 缓冲区管理器 文件管理器 磁盘存储器 数据库 系统结构 2017/3/21 ftt@hdu.edu.cn
DBMS概念 负责数据库的定义、建立、操作、管理和维护的软件系统。 目的: 工作机理: 保证数据安全可靠的、提高数据库应用的简明性和方便性。 把用户对数据的操作转化为对系统存储文件的操作,有效地实现数据库三级之间的转化。 2017/3/21
DBMS的主要功能 源模式 模式翻译程序 数据库定义功能 数据字典 目标模式 DDL语言(Data Description Language) 描述外模式、模式、内模式(源模式) 模式翻译程序 把源模式翻译成目标模式,存入数据字典中 源模式 模式翻译程序 数据字典 目标模式 2017/3/21
数据存取功能 DML语言(Data Manipulation Language) DML类型 DML语句执行方式 对数据库进行检索、插入、修改、删除 DML类型 宿主型 DML不独立使用,嵌入到高级语言(主语言)程序中使用 自含型 独立使用,交互式命令方式 DML语句执行方式 预编译和增强编译 解释执行 2017/3/21
数据库运行管理 数据组织、存储和管理 数据库的建立和维护功能 并发控制、存取控制、完整性约束条件检查和执行,日志组织和管理,事务管理和自动恢复 数据组织、存储和管理 用户数据、索引、数据字典的组织、存储和管理,包括文件结构、存取方式、数据之间联系的实现等 数据库的建立和维护功能 数据的装入、转换、卸出,数据库的转储、恢复、性能监视和分析等 2017/3/21
DBMS构成 DBMS是程序的集合。 组成DBMS的每一个程序都有自己的功能,一个或几个程序一起完成DBMS的一件工作,或一个程序完成基建工作。 2017/3/21
DBMS的层次结构 DDL,DML,查询计算引擎,提供关系、视图接口 应用层 事务,日志,封锁,存取路径,提供单元组接口 语言翻译处理层 操作系统 数据存储层 数据存取层 语言翻译处理层 数据库 应用层 数据文件,数据字典, 索引,统计数据 缓冲区,提供数据页操作 DDL,DML,查询计算引擎,提供关系、视图接口 事务,日志,封锁,存取路径,提供单元组接口 执行物理文件的读写操作 2017/3/21
DBMS的运行过程 应用程序 系统缓冲区 用户工作区 数据库管理系统 数据库 数据字典 操作 系统 11 10 5 1 12 9 8 7 10 5 8 2,3,6 2017/3/21
2. DBMS对命令进行语法检查、语义检查、存取权限检查,决定是否执行该命令 4. 执行存取操作序列(反复执行以下各步,直至结束) 5. DBMS首先在缓冲区内查找记录,若找到转10,否则转6 6. DBMS查看存储模式,决定从哪个文件存取哪个物理记录 7. DBMS根据6的结果,向操作系统发出读取记录的命令 8. 操作系统执行读取数据的命令 9. 操作系统将数据从数据库存储区送到系统缓冲区 10. DBMS根据用户命令和数据字典的内容导出用户所要读取的数据格式 11. DBMS将数据记录从系统缓冲区传送到用户工作区 12. DBMS将执行状态信息返回给用户 2017/3/21
数据管理、开发应用程序界面的功能兼而有之 RDBMS分类: PC型:Dbase foxbase foxpro VFP、Access等 大型(服务器型):MS SQL Server、Oracle、Sybase、DB2、MySQL等等。 数据管理、开发应用程序界面的功能兼而有之 非常专业于数据管理, 不涉及用户界面 2017/3/21
主要内容 什么是数据库应用系统? 数据库系统的应用领域 四个基本概念——数据、数据库、DBMS、DBS 回溯——数据管理技术的发展 数据库系统特点 数据库系统的组成 核心——数据库管理系统 数据库系统结构 三级模式两级映像与数据独立性 2017/3/21
1.4 数据库系统的结构 数据库系统模式的概念 数据库系统设计目标 数据库系统的三级结构两级独立性 2017/3/21
数据库系统模式的概念 “型” 和“值” 的概念 型(Type) 值(Value) 对某一类数据的结构和属性的说明 是型的一个具体赋值 例如 学生记录型: (学号,姓名,性别,系别,年龄,籍贯) 一个记录值: (900201,李明,男,计算机,22,江苏) 2017/3/21
数据库系统模式的概念(续) 模式(Schema) 实例(Instance) 数据库逻辑结构和特征的描述 是型的描述 反映的是数据的结构及其联系 模式是相对稳定的 实例(Instance) 模式的一个具体值 反映数据库某一时刻的状态 同一个模式可以有很多实例 实例随数据库中的数据的更新而变动 2017/3/21
数据库系统模式的概念 (续) 例如:在学生选课数据库模式中,包含学生记录、课程记录和学生选课记录 2003年学校中所有学生的记录 2003年的一个学生数据库实例,包含: 2003年学校中所有学生的记录 学校开设的所有课程的记录 所有学生选课的记录 2002年度学生数据库模式对应的实例与 2003年度学生数据库模式对应的实例是不同的 2017/3/21
数据库系统的设计目标 数据库系统的设计目标 实现方法—模式的分级 数据库系统三级模式结构 允许用户逻辑的处理数据、而不必涉及这些数据在计算机中是怎样存放,在数据组织和用户应用之间提供某种程度的独立性。 实现方法—模式的分级 为了提高数据的物理独立性和逻辑独立性,使数据库的用户观点(即用户看到的数据库)与数据库的物理方面(即实际存储的数据库)区分开来,数据库系统的模式是分级的。 数据库系统三级模式结构 CODASYL(Conference On Data System Language,美国数据系统语言协商会)提出模式、外模式、存储模式三级模式的概念。三级模式之间有两级映象。 2017/3/21
… 数据库系统的三级结构两级独立性 数据库 内模式 模 式 外模式2 外模式n 外模式1 应用A 应用B 应用C 应用D 应用E 外模式/模式映象 模式/内模式映象 … 数据库系统的三级模式结构 2017/3/21
数据库系统的三级模式 数据库系统划分为三抽象级: 用户级、概念级、物理级 用户级数据库 概念级数据库 物理级数据库 对应于外模式、子模式 对应于概念模式、逻辑模式,也称模式 物理级数据库 对应于内模式 2017/3/21
模式(Schema) 模式(也称逻辑模式) 一个数据库只有一个模式,把数据库作为一个整体的抽象表示 模式的地位:是数据库系统模式结构的中间层 数据库中全体数据的逻辑结构和特征的描述 介于用户级和物理级之间,所有用户的公共数据视图,综合了所有用户的需求,是数据库管理员看到和使用的数据库,又称DBA视图。 一个数据库只有一个模式,把数据库作为一个整体的抽象表示 模式的地位:是数据库系统模式结构的中间层 与数据的物理存储细节和硬件环境无关 与具体的应用程序、开发工具及高级程序设计语言无关 2017/3/21
模式(续) 模式的定义 数据的逻辑结构(数据项的名字、类型、取值范围等) 数据之间的联系 数据有关的安全性、完整性要求 2017/3/21
外模式(External Schema) 外模式(也称子模式或用户模式) 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示 最接近于用户的一级数据库,是数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述,又称用户视图。 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示 不同的用户视图可以互相重叠,用户的所有操作都是针对用户视图进行。 2017/3/21
外模式(续) 外模式的地位:介于模式与应用之间 外模式的用途 模式与外模式的关系:一对多 外模式与应用的关系:一对多 外模式通常是模式的子集 一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求 对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同 外模式与应用的关系:一对多 同一外模式也可以为某一用户的多个应用系统所使用 但一个应用程序只能使用一个外模式 外模式的用途 保证数据库安全性的一个有力措施 每个用户只能看见和访问所对应的外模式中的数据 2017/3/21
内模式(Internal Schema) 内模式(也称存储模式) 一个数据库只有一个内模式 是数据物理结构和存储方式的描述 是数据在数据库内部的表示方式 记录的存储方式(顺序存储,按照B树结构存储,按hash方法存储) 索引的组织方式 数据是否压缩存储 数据是否加密 数据存储记录结构的规定 一个数据库只有一个内模式 2017/3/21
内模式(续) 例如学生记录,如果按堆存储,则插入一条新记录总是放在学生记录存储的最后,如图(a)所示 2017/3/21
内模式(续) 如果按学号升序存储,则插入一条记录就要找到它应在的位置插入,如图(b)所示 如果按照学生年龄聚簇存放,假如新插入的S3是16岁,则应插入的位置如图(c)所示 记录不同的存储方式示意图 2017/3/21
数据库系统的两级独立性 数据库系统两级独立性:逻辑独立性、物理独立性 三个抽象级间通过两级映射(根据一定的对立规则)进行相互转换,使得数据库的三级形成一个统一整体。 三级模式是对数据的三个抽象级别 二级映象在DBMS内部实现这三个抽象层次的联系和转换 外模式/模式映像 模式/内模式映像 映射隔离了各层之间的相互影响,实现数据独立性。各层间的映射能力决定数据独立性程度 2017/3/21
外模式/模式映象 模式:描述的是数据的全局逻辑结构 外模式:描述的是数据的局部逻辑结构 同一个模式可以有任意多个外模式 每一个外模式,数据库系统都有一个外模式/模式映象,定义外模式与模式之间的对应关系 映象定义通常包含在各自外模式的描述中 2017/3/21
外模式/模式映象(续) 保证数据的逻辑独立性 当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变 应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。 示例: 在模式中增加新的记录类型,只要不破坏原有记录类型之间的联系 在原有记录类型之间增加新的联系 在某些记录类型中增加新的数据项 2017/3/21
模式/内模式映象 模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系。 数据库中模式/内模式映象是唯一的 例如,说明逻辑记录和字段在内部是如何表示的 数据库中模式/内模式映象是唯一的 该映象定义通常包含在模式描述中 2017/3/21
模式/内模式映象(续) 保证数据的物理独立性 当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变 应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性。 示例: 改变存储设备或引进新的存储设备 改变数据的存储位置 改变存储记录的体积 改变数据组织方式 2017/3/21
物理独立性 存在于概念模式和内模式之间的映射转换实现物理独立性 说明物理组织发生变化时应用程序的独立程度 示例: 改变存储设备或引进新的存储设备 改变数据的存储位置 改变存储记录的体积 改变数据组织方式 2017/3/21
数据库系统的三级模式(总结) 外模式,子模式 模式,概念模式,逻辑模式 内模式,存储模式 外模式/模式映象 模式/内模式映象 2017/3/21
外模式(Sub-Schema) 模式(Schema) 内模式(Storage Schema) 用户的数据视图 是数据的局部逻辑结构,模式的子集 模式(Schema) 所有用户的公共数据视图 是数据库中全体数据的全局逻辑结构和特性的描述 内模式(Storage Schema) 又称存储模式 是数据的物理结构及存储方式 2017/3/21
一个数据库系统,只有一个模式,一个内模式,但可以有多个外模式,所以一个数据库系统的模式/内模式映像唯一,外模式/模式映像不唯一。 外模式/模式映象 定义某一个外模式和模式之间的对应关系,映象定义通常包含在各外模式中 当模式改变时,修改外模式/模式映象,使外模式保持不变,从而应用程序可以保持不变,称为数据的逻辑独立性 模式/内模式映象 定义数据逻辑结构与存储结构之间的对应关系 存储结构改变时,修改模式/内模式映象,使模式保持不变,从而应用程序可以保持不变,称为数据的物理独立性 一个数据库系统,只有一个模式,一个内模式,但可以有多个外模式,所以一个数据库系统的模式/内模式映像唯一,外模式/模式映像不唯一。 2017/3/21
数据库系统的三级结构两级独立性 数据库模式 即全局逻辑结构是数据库的中心与关键 独立于数据库的其他层次 设计数据库模式结构时应首先确定数据库的逻辑模式 2017/3/21
数据库系统的三级结构两级独立性(续) 数据库的内模式 依赖于它的全局逻辑结构 独立于数据库的用户视图,即外模式 独立于具体的存储设备 将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率 2017/3/21
数据库系统的三级结构两级独立性(续) 数据库的外模式 面向具体的应用程序 定义在逻辑模式之上 独立于存储模式和存储设备 当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式就得做相应改动 设计外模式时应充分考虑到应用的扩充性 2017/3/21
数据库系统的三级结构两级独立性(续) 特定的应用程序 数据库的二级映像 在外模式描述的数据结构上编制的 依赖于特定的外模式 与数据库的模式和存储结构独立 不同的应用程序有时可以共用同一个外模式 数据库的二级映像 保证了数据库外模式的稳定性 从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改 2017/3/21
数据库系统的三级结构两级独立性(续) 数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去 数据的存取由DBMS管理 用户不必考虑存取路径等细节 简化了应用程序的编制 大大减少了应用程序的维护和修改 2017/3/21
S(S#,SNAME,SEX,AGE,ADDRESS,CREDIT,DEGREE) 数据库模式 S(S#,SNAME,SEX,AGE,ADDRESS,CREDIT,DEGREE) S(S#,SNAME,ADDRESS) 学籍科 S(S#,SNAME,CREDIT) 房产科 视图 模式 2017/3/21
S(S#,SNAME,SEX,AGE,ADDRESS,CREDIT,DEGREE) S(S#,SNAME,ADDRESS) 学籍科 S(S#,SNAME,CREDIT) 房产科 B(S#,SNAME,SEX,AGE,ADDRESS,CREDIT) M(S#,SNAME,SEX,AGE,ADDRESS,CREDIT,DISSERTATION) 视图 模式 2017/3/21
调查报告 当前数据库应用领域的调查 目前市场流行使用的DBMS调查 2017/3/21
下课了。。。 追求 休息一会儿。。。 2017/3/21
第1章 回顾 几个概念 数据技术发展的三个阶段 DBMS的主要功能 DBS的组成 数据库系统的三级模式结构 2017/3/21
几个概念 Data DB DBMS DBS DBA 数据库管理系统(Database Management System) 数据库系统(Database System) DBA 数据库管理员(Database Administrator) 2017/3/21
数据技术发展的三个阶段 人工管理阶段 文件系统阶段 数据库阶段 第一代数据库系统 第二代数据库系统 第三代数据库系统 网状、层次数据库系统 关系数据库系统 第三代数据库系统 2017/3/21
2017/3/21
DBS的组成 DBS是采用了数据库技术的计算机系统。DBS是一个实际可运行的, 按照数据库方法存储、维护和向应用系统提供数据支持的计算机系统。 DBS由四部分组成 数据库(DB)、硬件、软件、数据库管理员(DBA) 主要理解DBMS和DBA 2017/3/21
DBMS的主要功能 数据定义(DDL) 数据操纵(DML) 完整性约束检查 访问控制(DCL) 并发控制 数据库恢复 2017/3/21
… 数据库系统的三级模式结构 数据库 内模式 模 式 外模式2 外模式n 外模式1 应用A 应用B 应用C 应用D 应用E 外模式/模式映象 模式/内模式映象 … 2017/3/21
数据库系统的三级模式 外模式 模式 内模式 用户的数据视图 是数据的局部逻辑结构,模式的子集 所有用户的公共数据视图 是数据库中全体数据的全局逻辑结构和特性的描述 内模式 又称存储模式 是数据的物理结构及存储方式 2017/3/21
一个数据库系统,只有一个模式,一个内模式,但可以有多个外模式,所以一个数据库系统的模式/内模式映像唯一,外模式/模式映像不唯一。 外模式/模式映象 定义某一个外模式和模式之间的对应关系,映象定义通常包含在各外模式中 当模式改变时,修改外模式/模式映象,使外模式保持不变,从而应用程序可以保持不变,称为数据的逻辑独立性 模式/内模式映象 定义数据逻辑结构与存储结构之间的对应关系 存储结构改变时,修改模式/内模式映象,使模式保持不变,从而应用程序可以保持不变,称为数据的物理独立性 一个数据库系统,只有一个模式,一个内模式,但可以有多个外模式,所以一个数据库系统的模式/内模式映像唯一,外模式/模式映像不唯一。 2017/3/21
数据库系统的研究 数据库设计 数据库程序设计 数据库管理系统实现 研究如何设计开发一个与应用相关的数据库? 如何实现对数据的操作? 如何在应用中使用事务或约束等DBMS的其他功能? 应用程序如何实现对数据库的访问? 数据库管理系统实现 研究如何实现一个DBMS,包括查询处理,事务处理和高效访问的存储组织? 2017/3/21