Download presentation
Presentation is loading. Please wait.
1
第2讲 数据库系统概论(2) 数据模型和数据模式
2
复习 数据:描述现实世界中事物的符号 数据库管理系统(DBMS):用来存储和管理数据库的系统软件 数据模型是描述数据的一组概念和定义的集合
数据库:是长期存储在计算机内、有组织的、统一管理的相关数据的集合。 数据库管理系统(DBMS):用来存储和管理数据库的系统软件 数据模型是描述数据的一组概念和定义的集合 根据数据抽象的不同级别,将数据模型划分为3个层次: 概念模型:概念层次的数据模型,也称为信息模型 逻辑模型:用于描述数据库数据的整体逻辑结构 物理模型:用来描述数据的物理存储结构和存取方法
3
教学目标 1. 掌握数据模型的组成 2.了解层次、网状、关系和面向对象数据模型的特点及各自的优缺点掌握数据模型的概念、分类及组成
3. 了解数据库系统的发展特点 4. 掌握数据库体系的三级模式结构、两级映射 5. 了解主流数据库技术的发展趋势
4
目 录 1 数据模型 2 数据库三级模式和两级映射 3 数据库系统
5
数据模型的组成要素 数据模型 描述了数据、操作和约束的一组概念和工具的集合 这些概念精确地描述了系统的静态特性、动态特性和完整性约束条件
数据模型的组成要素有: 数据结构:描述数据库的组成对象(数据)以及对象之间的联系 ,数据在数据库中的存储结构,例如二维表 数据操作:指对数据库中各种对象(型)的实例(值)允许执行的操作集合,包括操作及有关的操作规则,例如查询、删除、更新、插入等 完整性约束:一组完整性规则,它给定数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据库中数据的正确、有效和相容
6
任何数据库软件(DBMS)都必须支持某种数据模型,数据模型是用来描述现实世界的方法。
关系模型为什么会成为主流,和曾经出现的层次和网状模型有什么关系,联系和区别是什么? 介绍层次和网状模型的目的是对比
7
图1-7 一个简单的教学管理系统的层次数据模型
层次模型 典型代表是1968年IBM公司推出的第一个大型商用数据库管理系统——IMS(information management system) 层次模型用树形结构来表示各类实体以及实体间的联系。实体用记录来表示,实体间的联系用链接(可看作指针)来表示 满足如下两个条件的基本层次联系的集合为层次模型: 有且只有一个结点没有双亲结点,这个结点称为根结点 根以外的其他结点有且只有一个双亲结点 在层次模型中,每个结点表示一个记录型,记录(型)之间的联系用结点之间的连线(有向边)表示,这种联系是父子之间的一对多的联系 每个记录型由若干个字段组成,记录型描述的是实体,字段描述的是实体的属性。每个记录型可以定义一个排序字段,也称为码字段,如果所定义的排序字段的值唯一,则它也可以用来唯一标识一个记录值 图1-7 一个简单的教学管理系统的层次数据模型 职工号 姓名 研究方向 Employee 班级号 年级 专业 Class 系编号 系名 办公地点 Department 学号 性别 Student 出生日期
8
层次模型 Employee Class Student 图1-8 一个简单的教学管理系统的实例值 E0501 万家乐 数据库 C01
图1-8 一个简单的教学管理系统的实例值 E0501 万家乐 数据库 Employee C01 2008 计算机 Class D05 计算机系 信息大楼 Department E0502 吴文君 信息检索 E0503 廖兴旺 操作系统 C02 2009 信息系统 Student S090204 王红敏 女 06/12/92 S090212 刘宏昊 男 09/25/91 S090228 李 立 02/18/92 S080125 李小勇 11/26/90 S080148 黄小红 05/21/91 E0803 王国方 数据结构 C03 2008 电子商务 D08 信息系 信息大楼 E0805 张长工 编译原理 E0809 李小红 运筹学 C04 2009 信息系统 S090404 刘月高 女 06/12/92 S090412 王永民 男 09/25/91 S090428 英达成 02/18/92 S080325 万元户 11/26/90 S080348 李 兴 05/21/91
9
层次模型 层次模型的主要优点: 层次模型的主要缺点: 数据结构比较简单清晰 查询效率高 提供了良好的完整性支持
现实世界中很多联系是非层次的(如多对多联系),层次模型在表示这类联系时,解决的办法:一是通过引入冗余数据(易产生不一致性),二是创建非自然的数据结构(引入虚拟结点) 。对插入和删除操作的限制比较多,因此应用程序的编写比较复杂 查询孩子结点必须通过双亲结点 由于结构严密,层次命令趋于程序化
10
网状模型 典型代表是DBTG系统,亦称为CODASYL系统,它是20世纪70年代由数据系统语言研究会(conference on data system language, CODASYL)下属的数据库任务组(data base task group, DBTG)提出的一个系统方案 满足如下两个条件的基本层次联系的集合称为网状模型 允许一个以上的结点无双亲 一个结点可以有多个双亲 网状模型是一种比层次模型更具普遍性的结构,它去掉了层次模型的两个限制,还允许两个结点之间有多种联系(称为复合联系)。因此,网状模型可以更直接地去描述现实世界
11
网状模型 网状模型的主要优点: 网状模型的主要缺点: 能够更为直接地描述现实世界 具有良好的性能,存取效率较高
结构比较复杂,而且随着应用规模的扩大,数据库的结构会变得越来越复杂,不利于最终用户掌握 操作语言比较复杂 在网状数据库中对数据做查询,查询的方法就是遍历链表。层次模型是遍历树。对层次和网状数据库中的数据查询,都要会编写程序,遍历树或链表,通过数据库提供的API接口编写程序,程序中需要设计到指针查询,进行查询。
12
关系模型 1970年美国IBM公司San Jose研究室的研究员E. F. Codd首次提出了数据库管理系统的关系模型,开创了数据库关系方法和关系数据理论的研究,为数据库技术奠定了理论基础。 由于E. F. Codd的杰出工作,他于1981年获得ACM图灵奖 20世纪80年代以来,计算机厂商新推出的数据库管理系统几乎都支持关系模型,数据库领域当前的研究工作也都是以关系方法为基础
13
关系模型 基于数学的集合论,拥有更高的抽象级别
最基本的数据结构是表(关系)。现实世界中的实体和实体间的联系都使用“表”来表示。什么都是表,形成封闭的空间,定义一个代数系统,可以引入严格的数学的方法研究数据库,使用数学的集合论方法研究关系数据库,将数据库技术上升到理论高度,原有的层次网状数据库其实是工程技术。 非过程化的查询语言—SQL。曾经出现了很多非过程化语言,但是SQL最后成为了标准。层次网状的查询方式,是过程化的需要编程,程序员需要说明过程。只要告诉系统查什么,至于怎么得到的过程用户不需要关心,这就是非过程的。
14
关系模型 关系数据模型的数据结构 关系模型中的常用术语: 关系模式的一般形式:
关系(relation):一个关系对应一张二维表,每一个关系有一个名称即关系名; 元组(tuple):表中的一行称为一个元组; 属性(attribute):表中的一列称为一个属性,每一个属性有一个名称即属性名; 码(key):也称为码键。表中的某个属性或属性组,它可以唯一地确定关系中的一个元组; 域(domain):属性的取值范围; 分量(component):元组中的一个属性值; 关系模式(relational schema):通过关系名和属性名列表对关系进行描述,相当于二维表的表头部分(即表格的描述部分) 关系模式的一般形式: 关系名(属性名1,属性名2,…,属性名n)
15
关系模型 关系Student、Course和Score可分别描述为: 关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件。
最基本的规范条件是: 关系的每一个分量必须是一个不可分的数据项,即不允许表中有表 图1-9 关系模型的数据结构 Student关系 学号 姓名 性别 出生日期 所学专业 李小勇 男 计算机 王 红 男 计算机 刘方晨 女 信息系统 王红敏 女 信息系统 王 红 男 会计学 李宏冰 女 会计学 … … … … … Course关系 课程号 课程名称 学时 学分 CS005 数据库系统概论 64 4 CS012 操作系统 CP001 基础会计 … … … … Score关系 学号 课程号 学期 成绩 CS CS CS CS CP CS CP CS CP CP CP … … … …
16
关系模型 关系数据模型的操作 关系数据模型的完整性约束条件 实体完整性、参照完整性和用户自定义完整性
关系数据模型的操作主要包括查询、插入、删除和修改(更新数据) 关系:元组的集合,关系模型的数据操作是集合操作,操作对象和操作结果都是关系(元组的集合)——不同于传统的非关系模型的数据操作:单记录操作 关系模型:存取路径是透明的,用户只要指出“干什么”或“找什么”,不必说明“怎么干”或“怎么找”,从而大大地提高了数据的独立性,提高了软件的开发和维护效率 关系数据模型的完整性约束条件 实体完整性、参照完整性和用户自定义完整性
17
关系模型 关系数据模型的优点: 关系数据模型的缺点: 严格的数学基础:有关系代数作为语言模型,有关系数据理论作为理论基础
概念单一:无论实体还是实体之间的联系都是用关系来表示,对数据(关系)的操作(检索和更新)结果还是关系。所以其数据结构简单、清晰,用户易懂易用 存取路径透明:具有更高的数据独立性、更好的安全保密性,简化了程序员的工作,提高了软件的开发和维护效率 关系数据模型的缺点: 由于存取路径对用户透明,查询效率往往不如非关系数据模型 为了提高性能,DBMS必须对用户的查询请求进行查询优化,这样就增加了DBMS的开发难度
18
层次模型:查询信息系C04班的女同学 Employee Class Student 图1-8 一个简单的教学管理系统的实例值 E0501
图1-8 一个简单的教学管理系统的实例值 E0501 万家乐 数据库 Employee C01 2008 计算机 Class D05 计算机系 信息大楼 Department E0502 吴文君 信息检索 E0503 廖兴旺 操作系统 C02 2009 信息系统 Student S090204 王红敏 女 06/12/92 S090212 刘宏昊 男 09/25/91 S090228 李 立 02/18/92 S080125 李小勇 11/26/90 S080148 黄小红 05/21/91 C03 2008 电子商务 D08 信息系 信息大楼 C04 2009 信息系统 S080325 万元户 男 11/26/90 S080348 李 兴 女 05/21/91 S090404 刘月高 女 06/12/92 S090412 王永民 男 09/25/91 S090428 英达成 02/18/92
19
☺ ☺ 关系模型:查询信息系C04班的女同学 Student S080125 李小勇 男 11/26/90 S080148 黄小红 女
05/21/91 计算机系 C01 S090204 王红敏 女 06/12/92 S090212 刘宏昊 男 09/25/91 S090228 李 立 02/18/92 计算机系 C02 S080325 万元户 男 11/26/90 S080348 李 兴 女 05/21/91 信息系 C03 ☺ S090404 刘月高 女 06/12/92 S090412 王永民 男 09/25/91 S090428 英达成 02/18/92 信息系 C04 ☺
20
面向对象模型 面向对象模型是一种新兴的数据模型,它采用面向对象的方法来设计数据库。面向对象的数据库存储对象是以对象为单位,每个对象包含对象的属性和方法,具有类和继承等特点 Computer Associates的Jasmine就是面向对象模型的数据库系统 面向对象数据库研究的另一个进展是在现有关系数据库中加入许多纯面向对象数据库的功能
21
面向对象模型 以面向对象数据模型为核心的面向对象数据库的主要特征:
对象。面向对象数据模型将客观世界模拟成由各个相互作用的称为对象的单元组成的复杂系统。对象的定义包括状态和行为两方面,状态由一组属性值组成,行为由一组方法组成 对象类。具有相同属性和方法的对象组成对象类,对象只属于某一个类并作为该类的实例 继承。定义子类时可以直接继承超类的属性和方法,在此基础上定义不同于超类的属性和方法,这称为子类对超类的继承(inheritance) 持久性和对象标识。在大多数程序设计语言中,对象是临时的;但在面向对象数据库中,对象在被删除前是永久存在的。一个对象的对象标识在系统中是唯一的,在整个生存期内是不变的 阻抗失配。数据库查询语言是由系统自选查询路径的非过程化语言。非过程化语言面向集合的操作方式与高级程序设计语言面向记录的操作方式之间会产生不协调现象,称为阻抗失配。阻抗失配的根本原因在于数据库的数据模型与程序设计语言的不一致,因而对所有嵌入式数据库查询语言来说,阻抗失配是不可避免的
22
面向对象模型 面向对象模型的基本概念: 数据建模的基本原语是对象(object)和文字(literal),每个对象有一个唯一的标识符,文字没有标识符 对象和文字都可以划分为类型(type),同一类型的对象或文字具有相同的行为和状态,对象可以称为类型的实例 通过一组性质(property)来定义对象的状态,性质可以分为两种:对象的属性和对象之间的联系 通过一组操作(operation)来定义对象的行为,操作都具有输入和输出参数,并且可以返回特定类型的结果 利用ODL(object definition language)定义对象数据库管理系统的模式。面向对象数据库中存储的对象都是模式中定义的类型的实例,即对象,这些对象可以供多个用户和应用共享
23
数据库技术的发展历程 第一代数据库系统 网状、层次 第二代数据库系统 关系 新一代数据库系统 面向对象,分布式,并行计算等
24
目 录 1 数据模型 2 数据库三级模式和两级映射 3 数据库系统
25
数据抽象与模式 物理层抽象 逻辑层抽象 视图层抽象
DBMS:隐藏关于数据存储和维护的某些细节,为用户提供数据在不同层次上的视图,即数据抽象,方便不同的使用者可以从不同的角度去观察和利用数据库中的数据 物理层抽象 最低层次的抽象,描述数据实际上是怎样存储的 逻辑层抽象 描述数据库中存储什么数据以及这些数据之间存在什么关系 提供给数据库管理员和数据库应用开发人员使用的,他们必须明确知道数据库中应该保存哪些信息 视图层抽象 最高层次的抽象,只描述整个数据库的某个部分 系统可以为同一数据库提供多个视图,每一个视图对应一个具体的应用
26
数据库三级模式和两级映射 根据数据抽象的3个不同级别,DBMS也应该提供观察数据库的3个不同角度,以方便不同的用户使用数据库的需要。这就是数据库的三级模式结构 模式分为三级:外模式、模式(逻辑模式)、内模式(物理模式)。 在三级模式之间存在两级映射:模式和外模式之间的映射,模式和内模式之间的映射,因而存在两级数据独立性。
27
数据库的三级模式 也称为逻辑模式,对应于逻辑层数据抽象,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
模式的一个具体值称为模式的一个实例(instance) 它是DBMS模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序、所使用的应用开发工具及高级程序设计语言无关 主要描述:在关系型数据库中有多少张表?每张表的结构是什么?每张表的属性的类型长度是什么?逻辑模式中有一张表,那么物理模式中对应这张表一定有存储结构。
28
数据库的三级模式 外模式 也称用户模式,对应于视图层数据抽象
是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一具体应用有关的数据的逻辑表示 外模式是给最终用户看到的数据的样子。例如在概念模式中有100张表,但在外模式中只想给看10张表,映射给用户看到的就只有10张表。 外模式是保证数据库安全性的一个有力措施,每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的 图 数据库的三级模式结构 应用A 外模式/模式映射 应用B 应用C 应用E 应用F 外模式1 外模式2 外模式3 应用D 应用G 模式 内模式 数据库 模式/内模式映射
29
内模式 也称存储模式,对应于物理层数据抽象,它是数据的物理结构和存储方式的描述,是数据在数据库内部的表示方式
描述数据在磁盘上到底是怎么存储的。以关系型数据库为例,关系数据库中只有表,例如学生基本信息表,选课信息表。这些表在磁盘上到底怎么存?是用堆文件存?harsh文件存?还是存储成簇文件?
30
数据库的两级映射 数据库的两层映射功能与数据独立性 外模式/模式映射 模式/内模式映射
对应于一个模式可以有多个外模式。对于每一个外模式,数据库管理系统都有一个模式/外模式映射,它定义了该外模式与模式之间的对应关系 在各自的外模式描述中定义外模式/模式映射 保证了数据与程序的逻辑独立性,简称为数据的逻辑独立性 模式/内模式映射 数据库中只有一个模式,也只有一个内模式,模式/内模式映射是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系 在模式描述中定义模式/内模式映射 保证了数据与程序的物理独立性,简称为数据的物理独立性 图 数据库的三级模式结构 应用A 外模式/模式映射 应用B 应用C 应用E 应用F 外模式1 外模式2 外模式3 应用D 应用G 模式 内模式 数据库 模式/内模式映射
31
两级数据独立性 逻辑独立性: 应用程序的逻辑数据独立性:在数据库系统之上开发的程序可以不受数据的逻辑结构变化的影响。应用程序都是基于外模式开发的。当数据库一张逻辑结构发生改变(增加属性或进行了一点修改),只要改变映射,保证View不变,那么在这个视图上开发的程序就不受影响。这种独立性,叫做逻辑独立性。 物理独立性: 当数据库的物理存储结构发生改变时,基于这个数据库开发的应用程序不受影响。表的逻辑结构不变则逻辑模式不变,增加了几个索引,改变了物理模式,但不影响外模式。应用程序不受逻辑结构和物理存储改变的影响。
32
总结 在数据库的三级模式结构中,模式即全局逻辑结构是数据库的核心和关键,它独立于数据库的其他层次。因此,设计数据库模式结构时,应首先确定数据库的逻辑模式 总结 一方面由于数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出来 另一方面由于数据的存取由DBMS管理,用户不必考虑存取路径等细节 从而大大简化了应用程序的编制,也大大提高了应用程序的维护和修改的效率
33
目 录 1 数据模型 2 数据库三级模式和两级映射 3 数据库系统
34
数据库系统组成 数据库系统(database system, DBS),是指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其应用开发工具)、应用系统、数据库管理员和最终用户构成 数据库管理员(database administrator, DBA),是指数据库的建立、使用和维护等的工作人员 在不引起混淆的情况下,常常把数据库系统简称为数据库,数据库管理系统简称为数据库系统 DBMS 设计工具子系统 表生成工具 窗体生成工具 查询生成工具 数据库 报表生成工具 过程语言编译器 引擎 运行子系统 窗体处理器 查询处理器 报表书写器 过程语言执行 图 数据库系统的组成 数据库 用户数据 元数据 索引 应用元数据 应用程序 开发人员 用户
35
数据库管理系统——DBMS 数据库管理系统(DBMS)是一组软件,负责数据库的存取、维护和管理 DBMS的功能
数据定义:DBMS提供数据定义语言(DDL) 数据组织、存储和管理:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、数据的存取路径等 数据操纵:DBMS还提供数据操纵语言(DML) 数据库的事务管理和运行管理:数据库在建立、运行和维护时由DBMS统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发操作以及发生故障后的系统恢复 数据库的建立和维护 其他功能
36
数据库管理系统——DBMS DBMS的组成
查询处理器:对用户请求的SQL操作进行查询优化,从而找到一个最优的执行策略,然后向存储管理器发出命令,使其执行 存储管理器:根据执行策略,从数据库中获取相应的数据,或更新数据库中相应的数据 事务管理器:负责保证系统的完整性,保证多个同时运行的事务不发生冲突操作,以及保证当系统发生故障时数据不会丢失 查询处理器 存储管理器 事务管理器 数据库 模式更新 查询 更新 图 DBMS的主要组成部分
37
数据库管理系统——DBMS 其他语句 查询语句 DML 语句 语法分析 语义检查 视图转换 数 据 库 数据字典 DBMS 内层基本 模块库
单元组接口 可执行的DBMS 内层基本存取模块的调用序列 多元组接口 查询优化 代码生成 图1-16 DML语句处理过程
38
数据库系统的相关人员 开发、管理和使用数据库系统的人员: 不同的人员涉及不同的数据抽象级别,具有不同的数据视图,如图1-19所示
数据库管理员 系统分析员 数据库设计人员 应用程序员 最终用户 不同的人员涉及不同的数据抽象级别,具有不同的数据视图,如图1-19所示 DB 应用系统 外模式 用 户 图 数据库系统中相关人员的数据视图 DBMS OS 客户端 模式 内模式 应用程序员 DBA 系统分析员 数据抽象级别 软件系统层次
39
数据库系统的相关人员 数据库管理员的主要职责 决定数据库中的信息内容和结构 决定数据库的存储结构和存取策略
定义数据的安全性要求和完整性约束条件 监控数据库的使用和运行 数据库的改进和重组重构
40
小结与作业 数据模型概念 、分类和组成 数据抽象、数据库三级模式 和两级映射 数据库系统 习题一 4、10~14题
Similar presentations