汪卫 weiwang1@fudan.edu.cn 55664657 老逸夫楼602-3 数据库系统引论 汪卫 weiwang1@fudan.edu.cn 55664657 老逸夫楼602-3
外部世界的信息 数据库系统 用户
课程的主要内容 大规模数据的管理技术(怎么用数据库系统?) 数据库管理系统的实现方法(怎么实现数据库系统? ) 数据的表示 数据库模式设计 数据库访问技术 数据库管理系统的实现方法(怎么实现数据库系统? ) 存储管理 查询处理 事务、安全、… 新的数据库技术
学习方法 认真听讲,及时复习 注重实际操作 围绕一条主线 思路开阔 认真完成作业和上机作业 大规模信息的管理与访问中的需要和技术 把握核心问题和解决思想 思路开阔 不要局限在某个数据库产品 不要局限在关系数据库系统
参考文献 Raghu Ramakrishnan, Jhannes Gehrke, DataBase Management Systems, McGraw-Hill Abraham Silberschatz,Henry E Korth, S.Sudarshan, Database System Concepts, Fourth Edition, McGraw-Hill Hector Garcia-Molina,Jeffrey D.Ullman,Jennifer Widom, Database Systems:The Complete Book, Prentice Hall/Pearson …
第1章 数据库概论
本章的重要概念(一) (1)DB、DBMS和DBS的定义 (2)数据管理技术的发展阶段: 人工管理阶段、文件系统阶段、数据库系统阶段和高级数据库技术阶段等各阶段的特点。 (3)数据描述: 概念设计、逻辑设计和物理设计等各阶段中数据描述的术语,概念设计中实体间二元联系的描述(1:1,1:N,M:N)。
本章的重要概念(二) (4)数据模型: 数据模型的定义,两类数据模型, 逻辑模型的形式定义,ER模型,层次模型、 网状模型、关系模型和面向对象模型的数据结 构以及联系的实现方式。 (5)DB的体系结构:三级结构,两级映像,两级 数据独立性,体系结构各个层次中记录的联系。 (6)DBMS: DBMS的工作模式、主要功能和模块组成。 (7)DBS:DBS的组成,DBA,DBS的全局结构, DBS结构的分类。
前 言 从20世纪50年代中期开始,计算机的应用由科学研究部门逐渐扩展到企业、行政部门。 前 言 从20世纪50年代中期开始,计算机的应用由科学研究部门逐渐扩展到企业、行政部门。 至60年代,数据处理已成为计算机的主要应用。在60年代末,数据库技术作为数据处理中的一门新技术发展起来的 经过30多年的发展,数据库技术已是计算机软件领域的一个重要分支,形成了较为完整的理论体系和实用技术 随着计算机应用的发展,数据库技术已经扩展成为面向新型应用的大规模各种复杂结构数据管理和访问的基本支撑技术
1.1 引言 1963年,美国Honeywell公司的IDS(Integrated Data Store)系统投入运行,揭开了数据库技术的序幕 20世纪70年代是数据库蓬勃发展的年代,网状系统和层次系统占据了整个数据库商用市场,而关系系统仅处于实验阶段。 20世纪80年代,关系系统由于使用简便以及硬件性能的改善,逐步代替网状系统和层次系统占领了市场 20世纪90年代,关系数据库已成为数据库技术的主流 进入21世纪以后,对象数据库技术、网络数据库技术的推广和普及已成定局
数据和信息 数据,是数据库系统研究和处理的对象。数据与信息是分不开的,它们既有联系又有区别 所谓数据,通常指用符号记录下来的、可以识别的信息 信息与数据之间存在着固有的联系:数据是信息的符号表示或称为载体;信息则是数据的内涵,是对数据语义的解释
数据处理与数据管理 数据处理是指从某些已知的数据出发,推导加工出一些新的数据,这些新的数据又表示了新的信息。 数据管理是指数据的收集、整理、组织、存储、维护、检索、传送等操作,这部分操作是数据处理业务的基本环节,而且是任何数据处理业务中必不可少的共有部分。 数据处理是与数据管理相联系的,数据管理技术的优劣,将直接影响数据处理的效率。
数据库技术的基本术语(一) 数据库(Database,简记为DB): DB是长期存储在计算机内、有组织的、统一管理的相关数据的集合。DB能为各种用户共享,具有较小冗余度、数据间联系紧密而又有较高的数据独立性等特点。
数据库技术的基本术语(二) 数据库管理系统(DBMS): DBMS是位于用户与OS之间的一层数据管理软件,它为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型和面向对象型等。 用户 DBMS OS DB
数据库技术的基本术语(三) 数据库系统(Database System,简记为DBS) 数据库技术(DBT) 数据库技术是研究数据库的结构、存储、设计、管理和使用的一门软件学科。
1.2 数据库的由来和发展 磁盘容量的发展 数据管理技术的发展经历了人工管理、文件系统、数据库阶段和高级数据库阶段。 时间(年) 1956 1.2 数据库的由来和发展 磁盘容量的发展 数据管理技术的发展经历了人工管理、文件系统、数据库阶段和高级数据库阶段。 时间(年) 1956 1965 1971 1978 1981 1985 1995 2003 容量 (MB/轴) 5 30 100 600 1200 5000 10000 180000
人工管理阶段 在人工管理阶段(20世纪50年代中期以前),计算机主要用于科学计算,其他工作还没有展开。外部存储器只有磁带、卡片和纸带等,还没有磁盘等字节存取存储设备。软件只有汇编语言,尚无数据管理方面的软件。数据处理的方式基本上是批处理。 人工管理阶段的数据管理的特点: 数据不保存在计算机内 没有专用的软件对数据进行管理 只有程序(program)的概念,没有文件(file)的概念 数据面向程序。即一组数据对应一个程序。
文件系统阶段(一) 在这一阶段(20世纪50年代后期至60年代中期),计算机不仅用于科学计算,还用于信息管理。随着数据量的增加,数据的存储、检索和维护问题成为紧迫的需要,数据结构和数据管理技术迅速发展起来。此时,外部存储器已有磁盘、磁鼓等直接存取存储设备。软件领域出现了高级语言和操作系统。操作系统中的文件系统是专门管理外存的数据管理软件。数据处理的方式有批处理,也有联机实时处理。
文件系统阶段(二) 文件系统阶段的数据管理的特点 文件系统的缺陷 数据以“文件”形式可长期保存在外部存储器的磁盘上 数据的逻辑结构与物理结构有了区别,但比较简单 文件组织已多样化。有索引文件、链接文件和直接存取文件等 数据不再属于某个特定的程序,可以重复使用,即数据 面向应用 对数据的操作以记录为单位。 文件系统的缺陷 数据冗余(redundancy) 数据不一致(inconsistency) 数据联系弱(poor data relationship)
职工工资文件 职工档案文件 职工保健文件 文件库 数据库 o o o o
数据库阶段(一) 数据管理技术进入数据库阶段的标志是20世纪60年代末的三件大事 1968年美国IBM公司推出层次模型的IMS系统 1969年美国CODASYL组织发布了DBTG报告,总结了当时各式各样的数据库,提出网状模型 1970年美国IBM公司的E.F.Codd 连续发表论文,提出关系模型,奠定了关系数据库的理论基础。
数据库阶段(二) 数据库阶段的数据管理的特点 采用数据模型表示复杂的数据结构 有较高的数据独立性 数据库系统为用户提供了方便的用户接口 数据库系统提供四种的数据控制功能 并发控制,恢复,完整性和安全性 增加了系统的灵活性 。
数据库阶段(三) 数据库系统的结构
数据库阶段(四) 程序和数据间的联系: 文件系统阶段信息处理的传统方式: 应用程序 n 1 .. . 数据库管理 系统 DBMS 数据库
数据库阶段(五) 数据库阶段信息处理方式的演变
高级数据库技术阶段(一) 分布式数据库系统 数据库的数据物理上分布在各个场地,但逻辑上是一个整体 每个场地既可以执行局部应用(访问本地DB),也可以执行全局应用(访问异地DB) 各地的计算机由数据通信网络相联系。本地计算机单独不能胜任的处理任务,可以通过通信网络取得其它DB和计算机的支持。
高级数据库技术阶段(二) 分布式数据库系统
高级数据库技术阶段(三) 对象数据库系统 Web数据库系统 生物数据库 图数据管理 对象数据模型能完整地描述现实世界地数据结构,能表达数据间嵌套、递归的联系 具有面向对象技术的封装性(把数据与操作定义在一起)和继承性(继承数据结构和操作)的特点,提高了软件的可重用性 Web数据库系统 HTML数据管理 XML数据管理 生物数据库 图数据管理
高级数据库技术阶段(四) 流数据管理 安全数据管理 语义数据管理 基于新的硬件设备的数据管理技术 安全数据库 数据隐私保护 基于本体的数据管理技术 Linked data管理 基于新的硬件设备的数据管理技术
1.3 数据描述 在数据处理中,数据描述将涉及到不同的范畴。从事物的特性到计算机中的具体表示,实际上经历了三个阶段——概念设计中的数据描述、逻辑设计中的数据描述和物理设计中的数据描述。本节先介绍这三个阶段的数据描述,再介绍数据之间联系如何描述。
概念设计中的数据描述 实体(entity) 实体集(entity set) 属性(attribute) 实体标识符(identifier) 客观存在,可以相互区别的事物称为实体 实体集(entity set) 性质相同的同类实体的集合,称为实体集 属性(attribute) 实体有很多特性,每一个特性称为属性。每一个属性有一个值域,其类型可以是整数型、实数型、字符串型等 实体标识符(identifier) 能惟一标识实体的属性或属性集,称为实体标识符。有时也称为关键码(key),或简称为键
逻辑设计中的数据描述(一) 字段(field):标记实体属性的命名单位称为字段,或数据项。它是可以命名的最小信息单位,所以又称为数据元素或初等项。 记录(record):字段的有序集合称为记录。 文件(file):同一类记录的集合称为文件。 关键码(key):能惟一标识文件中每个记录的字段或字段集,称为记录的关键码(简称为键)。
逻辑设计中的数据描述(二) 术语的对应关系: 概念设计 逻辑设计 实体 ……… 记录 属性 ……… 字段(数据项) 实体集 ……… 文件 实体 ……… 记录 属性 ……… 字段(数据项) 实体集 ……… 文件 实体标识符 ……… 关键码
物理设计中的数据描述 位(bit,比特):一个二进制位称为“位”。一位只能取0或1两个状态。 字节(byte):8个比特称为一个字节,可以存放一个字符所对应的ASCII码。 字(word):若干个字节组成一个字。一个字所含的二进制位的位数称为字长。 块(block):又称为物理块或物理记录。块是内存和外存交换信息的最小单位,每块的大小,通常为210~214字节。 桶(bucket):外存的逻辑单位,一个桶可以包含一个物理块或多个在空间上不一定连续的物理块。 卷(volume):一个输入输出设备所能装载的全部有用信息,称为“卷”。
数据联系的描述(一) 定义1.5 联系(relationship)是实体之间的相互关系。与一个联系有关的实体集个数,称为联系的元数。 定义1.6 二元联系有以下三种类型 一对一联系:如果实体集E1中每个实体至多和实体集E2中的一个实体有联系,反之亦然,那么实体集E1和E2的联系称为“一对一联系”,记为“1:1”。 一对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体间有联系,而E2中每个实体至多和E1中一个实体有联系,那么称E1对E2的联系是“一对多联系”,记为“1:N”。 多对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么称E1和E2的联系是“多对多联系”,记为“M:N”。
数据联系的描述(一) E1 E2 座位 E1 乘客 E2 E1 E2 E1 E2 车间 工人 E1 E2 E1 E2 学生 课程
数据联系的描述(二) 例1.2 飞机 驾驶员 1 M P N 航行班次 图 1.11 三元联系 1.12 一元联系 零件 旅客
1.4 数据模型的定义 数据模型的简单定义: 逻辑数据模型应包含数据结构、数据操作和数据完整性约束三个部分: 能表示实体类型及实体间联系的模型称为“数据模型”。概念数据模型和逻辑数据模型。 逻辑数据模型应包含数据结构、数据操作和数据完整性约束三个部分: 数据结构是指对实体类型和实体间联系的表达和实现; 数据操作是指对数据库的检索和更新(包括插入、删除和修改)两类操作; 数据完整性约束给出数据及其联系应具有的制约和依赖规则。
主要的数据模型 实体联系模型 层次模型 网状模型 关系模型 对象模型
实体联系模型(一) ER图有三个基本成分: 矩形框,用于表示实体类型(考虑问题的对象) 菱形框,用于表示联系类型(实体间联系) 椭圆形框,用于表示实体类型和联系类型的属性。
实体联系模型(二) ① 首先确定实体类型。本问题有三个实体类型:零件PART,工程项目PROJECT,零件供应商SUPPLIER。 ② 确定联系类型。PROJECT和PART之间是M:N联系,PART和SUPPLIER之间也是M:N联系,分别命名为P_P和P_S. ③ 把实体类型和联系类型组合成ER图。 ④ 确定实体类型和联系类型的属性。 ⑤ 确定实体类型的键,在ER图中属于码的属性名下画一条横线。
实体联系模型(三)
实体联系模型(四)
层次模型 用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次模型(hierarchical model)。 层次模型的特点是记录之间的联系通过指针来实现,查询效率较高。与文件系统的数据管理方式相比,层次模型是一个飞跃,用户和设计者面对的是逻辑数据而不是物理数据,用户不必花费大量的精力考虑数据的物理细节。逻辑数据与物理数据之间的转换由DBMS完成。 层次模型有两个缺点:一是只能表示1:N联系,虽然系统有多种辅助手段实现M:N联系但较复杂,用户不易掌握;二是由于层次顺序的严格和复杂,引起数据的查询和更新操作很复杂,因此应用程序的编写也比较复杂。
网状模型 用有向图结构表示实体类型及实体间联系的数据模型称为网状模型(network model)。 网状模型的特点是记录之间联系通过指针实现,M:N联系也容易实现(一个M:N联系可拆成两个1:N联系),查询效率较高。 网状模型的缺点是数据结构复杂和编程复杂。
关系模型(一) 关系模型(relational model)的主要特征是用二维表格表达实体集。 与前两种模型相比,数据结构简单,容易为初学者理解。 关系模型是由若干个关系模式组成的集合。 关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。
关系模型(二) 例1.7 PART模式 (P#,PNAME,COLOR,WEIGHT) PROJECT模式 (J#,JNAME,DATE) SUPPLIER模式 (S#,SNAME,SADDR) P_P模式 (J#,P#,TOTAL) P_S模式 (P#,S#,QUANTITY)
关系模型(三)
对象模型(一) 对象(object)是现实世界中实体的模型化,与实体概念相仿,但远比实体复杂。 将属性集和方法集相同的所有对象组合在一起,构成了一个类(class)。
1969年CODASYL的DBTG报告(71年通过) 对象模型(二) 层次模型 网状模型 关系模型 面向对象模型 对象关系模型 创始 1968年IBM公司的IMS系统 1969年CODASYL的DBTG报告(71年通过) 1970年F.Codd提出关系模型 20世纪80年代 数据结构 复杂 (树结构) (有向图结构) 简单 (二维表) (嵌套递归) 数据联系 通过指针 通过表间的公共属性 通过对象标识 查询语言 过程性语言 非过程性语言 面向对象语言 典型产品 IMS IDS/Ⅱ IMAGE/3000 IDMS TOTAL Oracle Sybase DB2 SQL Server Informix ONTOS DB 盛行期 20世纪70年代 70年代至80年代中期 80年代至现在 90年代至现在
1.5 数据库的体系结构 数据库的三级体系结构 体系结构中的五个要素 两级数据独立性 用户与用户界面
数据库的三级体系结构(一) 图1.25 三级模式结构 用户的 外部级 局部逻辑结构 (用户的视图) 数据库的 概念级 整体逻辑结构 物理结构 外部级 (用户的视图) 概念级 (全局视图) 内部级 (存储视图) 图1.25 三级模式结构 ……
数据库的三级体系结构(二) 数据的三级抽象术语: 外部级 外模型 外模式 子模式 概念级 概念模型 概念模式 模式 内部级 内模型 内模式 数据模型 用数据定义语言 描述的称呼 DBTG报告 中的称呼 外部级 外模型 外模式 子模式 概念级 概念模型 概念模式 模式 内部级 内模型 内模式 物理模式
数据库的三级体系结构(三)
体系结构中的五个要素 概念模式(conceptual schema)是数据库中全部数据的整体逻辑结构的描述。 外模式(external schema)是用户与数据库系统的接口,是用户用到的那部分数据的描述。 内模式(internal schema)是数据库在物理存储方面的描述,定义所有内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。 模式/内模式映象存在于概念级和内部级之间,用于定义概念模式和内模式之间的对应性。 外模式/模式映象存在于外部级和概念级之间,用于定义外模式和概念模式之间的对应性。
两级数据独立性 定义1.15 数据独立性(data independence)是指应用程序和数据库的数据结构之间相互独立,不受影响。 数据独立性分成物理数据独立性和逻辑数据独立性两个级别。
用户与用户界面 用户是指使用数据库的应用程序或联机终端用户。 用户界面是用户和数据库系统之间的一条分界线,在界限下面,用户是不可知的。用户界面定在外部级上,用户对于外模式是可知的。
1.6 数据库管理系统 DBMS的工作模式 DBMS的主要功能 DBMS的模块组成
DBMS的工作模式(一) 图1.29 DBMS的工作模式 DBMS DB ① 接受应用程序的数据请求和处理请求 ② 将用户的数据请求(高级指令)转换成复杂的机器代码(低层指令) ③ 实现对数据库的操作 ④ 从对数据库的操作中接受查询结果 ⑤ 对查询结果进行处理(格式转换) ⑥ 将处理结果返回给用户 DB 应用程序 DBMS 数据请求 低层指令 数据 (处理结果) (查询结果) 图1.29 DBMS的工作模式
DBMS的工作模式(二) 图1.30 用户访问数据的过程 DB 应用程序 DB的系统缓冲区 外模式 模式 内模式 OS 数 据 字 典 图1.30 用户访问数据的过程
DBMS的主要功能 ① 数据库的定义功能 ② 数据库的操纵功能 ③ 数据库的保护功能 ④ 数据库的维护功能 ⑤ 数据字典
DBMS的结构 应用界面 应用程序 查询 数据库模式 嵌入型DML预编译器 查询处理器 应用程序 目标码 DML 编译器 DDL 编译器 数据库管理系统 查询运行核心程序 存储管理器 事务管理器 缓冲区管理器 权限和完整性管理器 文件管理器 磁盘存储器 日志 索引 统计数据 数据文件 数据字典
DBMS的结构 数据库用户 DBMS的查询处理器 DBMS的存储管理器 磁盘存储器中的数据结构
1.7 数据库系统 DBS的组成 DBS结构的分类 DBS的效益
DBS的组成(一) DBS是采用了数据库技术的计算机系统。DBS是一个实际可运行的,按照数据库方法存储、维护和向应用系统提供数据支持的系统,它是数据库、硬件、软件和数据库管理员的集合体。 DB是与一个企业组织各项应用有关的全部数据的集合。 DBA是控制数据整体结构的一组人员,负责DBS的正常运行,承担创建、监控和维护数据库结构的责任。
DBS的组成(二) DBA的主要职责 定义模式 定义内模式 与用户的联络。包括定义外模式、应用程序的设计、提供技术培训等专业服务 定义安全性规则,对用户访问数据库的授权 定义完整性规则,监督数据库的运行 数据库的转储与恢复工作
DBS结构的分类 集中式DBS(centralized DBS) 客户机/服务器式DBS,client/ server DBS, 记为C/S DBS) 并行式DBS(parallel DBS) 分布式DBS(distributed DBS)
DBS的效益 灵活性 简易性 面向用户 有效的数据控制 加快应用系统的开发速度 维护方便 标准化
小 结(一) 数据管理技术经历了人工管理、文件系统、数据库和高级数据库技术等四个阶段。数据库系统是在文件系统的基础上发展而成的,同时又克服了文件系统的三个缺陷:数据的冗余、不一致性和联系弱。 在数据库领域,应该准确使用术语,深刻了解实体间1:1、1:N和M:M三种联系的意义。
小 结(二) 数据模型是对现实世界进行抽象的工具。 小 结(二) 数据模型是对现实世界进行抽象的工具。 数据模型分成概念模型和结构模型两大类。前者的代表是实体联系模型,后者的代表是层次、网状、关系和面向对象模型。关系模型是当今的主流模型,面向对象模型是今后发展的方向。
小 结(三) DB是存储在一起集中管理的相关数据的集合。DB的体系结构是对数据的三个抽象级别。它把数据的具体组织留给DBMS去做,用户只需抽象地处理逻辑数据,而不必关心数据在计算机中的存储,减轻了用户使用系统的负担。由于三级结构之间往往差别很大,存在着两级映象,因此使DBS具有较高的数据独立性:物理数据独立性和逻辑数据独立性。
小 结(四) 数据独立性是指在某个层次上修改模式而不影响较高一层模式的能力。 小 结(四) 数据独立性是指在某个层次上修改模式而不影响较高一层模式的能力。 DBMS是位于用户与OS之间的一层数据管理软件。数据库语言分成DDL和DML两类。DBMS主要由查询处理器和存储管理器两大部分组成。 DBS是包含DB和DBMS的计算机系统。DBS的全局结构体现了DBS的模块功能结构。
本章的重点篇幅 (1)教材P23的图1.24。 (四种逻辑数据模型的比较) (2)教材P25的图1.27 。 (DB的体系结构) (3)教材P29的图1.29 。 (DBMS的工作 模式) (4)教材P34的图1.31 。 (DBS的全局结构)