3.4 数据资源的管理,文件管理方式 数据库管理方式 关系数据库,1. 文件管理方式,计算机操作系统中的文件概念文件名,辅助存储器管理,外设管理(2) 有关文件的术语和概念 字段:有明确含义的最小信息单元 记录:描述某一事物的一组相关字段 文件:一组相同类型的记录构成文件,,(3) 文件中的记录存取方式 A. 直接存取方式 通过转换算法计算记录存放的物理地址,直接读取记录适用于需要对单个记录的快速查找和处理的应用 B. 索引顺序存取方式 对关键字段进行索引 适用于需对大量记录进行处理,偶尔也要存取单个记录的应用,,(4)文件管理方式带来的问题 随着时间的推移,一个组织中的文件会越来越多,且被不同的部门所操作和拥有,会造成一系列问题A.数据冗余和混乱B. 程序-数据相互依赖,,C. 缺乏灵活性traditional file system can deliver routine scheduled reports after extensive programming efforts, but it cannot deliver ad hoc reports or respond to unanticipated information requirement in a timely fashion. D. 缺乏安全机制 E. 数据不易共享,2. 数据库管理方式,针对文件系统的上述缺点,人们逐步发展了以统一管理和共享数据为主要特征的数据库系统(database system)。
在数据库系统中,数据不再仅仅服务于某个程序或用户,而是看成一个单位的共享资源,由一个叫做数据库管理系统(database management system,简称DBMS)的软件统一管理1)数据库系统的组成,(2) 数据库系统的特点,数据库系统不仅克服了文件管理系统存在的主要问题,其提供了强有力的数据管理功能,主要特点如下:,A. 实现数据的集中化控制,数据库的数据是集成式的 设有数据库管理员DBA,B. 数据的冗余度小,数据集中化控制产生的另一效果,是使相同的数据在数据库中一般只存储一次,并为不同的应用共享 从理论上讲,数据库中的数据应是无冗余的然而,在实际运行的数据库系统中,为了改善对数据库的查询效率或为了采用简单的寻址方式,通常在数据库中仍存在某种程度的数据冗余但这些数据的冗余将受到控制.系统负责对冗余数据的检查、维护工作C. 采用一定的数据模型实现数据结构化,数据模型能够表示现实世界中各种数据组织和数据间的联系,这是数据库与文件系统之间的本质区别之一,也是实现数据的集成化控制和减少数据冗余的前提和保证. 由于数据库是从整体考虑数据结构,所以数据不再是面向应用而是面向系统对于不同的应用,可以选取整体模型的各种合理子集加以实现。
常用的数据模型有:层次模型、网状模型和关系模型等D. 避免了数据的不一致性,数据的不一致性是指数据的不相容性或矛盾性,即数据违反了数据完整性约束条件,使同—数据在数据库内重复出现且具有不同的值例如, 数据的不一致性主要是由于存在数据冗余造成的. 同时,数据席系统提供了对数据进行控制和检查的功能, 使得数据在更新时能向时更新数据的所有副本,以保证数据的一致性E. 实现数据共享,数据共享是指数据库中的一组数据集合为多种语言和多个用户共同使用 数据共享表现在如下几方面:(1)当前所有用户(批处理用户、终端用户)可同时使用数据库2)数据库既能满足当前应用的需求,又能适应新的应用的需求 (3)具有多种用户接口F. 提供数据库保护,数据库系统提供一系列数据控制功能,以保护数据库中数据是安全可靠的主要技术措施有:安全性控制、完整性控制、并发控制、故障的发现和恢复等G. 数据独立性,数据独立仕是指数据库中数据独立于应用程序,即数据的逻辑结构、存储结构与存取方式的改变不影响应用程序数据独立性一般分为数据的逻辑独立性和数据的物理独立性 数据逻辑独立性:指数据库总体逻辑结构的改变,如修改数据定义改变等不需要修改应用程序。
数据物理独立性:指数据的物理结构(存储结构、存取方式等)的改变,如存储设备的更换、物理存储格式和存取方式的改变等不影响数据库的逻辑结构,因而不会引起应用程序的变化H. 数据由DBMS统一管理和控制,数据的安全性(Security)保护 数据的完整性(Integrity)保护并发控制(Concurrency Control) 数据库恢复(Recovery),3. 关系数据库,(1)数据库的逻辑模型 逻辑模型是用户通过DBMS所看到的数据模型,反映的是数据库中数据的相互关联方式 l 层次模型 l 网状模型 l 关系模型,(2) 关系数据模型,关系模型是目前最重要的一种数据模型1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型,开创了数据库关系方法和关系数据理论的研究,为数据库技术奠定了理论基础 20世纪80年代以来,计算机厂商新推出的数据库管理系统几乎都支持关系模型,非关系系统的产品也加上了关系接口3) 关系数据模型的数据结构及其基本术语,用二维表格数据来表示实体和实体间联系的模型叫做关系数据模型二维表由行和列组成。
表1 学生情况表(p23),关系(Relation):通俗地讲,一个关系对应一张二维表,描述一个实体集中各类数据的集合; 元组(Tuple):表中的一行即为一个元组; 属性(Attribute):表中的一列即为一个属性,每列的标识称为属性名; 主码(Key):表中某个属性或属性组可以唯一标识一个元组,就成为本关系的主码;(主关键字,键) 域(Domain):属性的取值范围; 分量:元组中的一个属性值; 关系模式:对关系的描述,一般表示为:关系名(属性1,属性2,…,属性n)上表表示的关系可描述为:学生(学号,姓名,性别,年龄,院系编号,年级)4)关系数据库 关系与关系之间存在着联系,这种联系通常通过关键字的方式体现例: “部门情况表”以部门名称作为关键字,通过“人事档案简表”可查得某人的办公地点和等信息 用关系模型来描述数据之间的联系,所建立的数据库就是关系数据库换句话说,关系数据库又若干个关系构成5)三种关系操作 关系数据模型还提供了一系列操作的定义,即定义在关系之上的操作关系操作的结果仍为关系 l 选择: l 投影: l 连接:,(6) 关系数据模型的优缺点,优点: (1) 有严格的数学基础。
(2)数据的表示方法统一、简单无论实体还是实体之间的联系都用关系表示对数据的检索结果也是关系 (3)数据独立性高关系模型个去掉了用户接门中有关存储结构和存取方法的描述,即关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作 (4)表达能力强二维表不仅能表示实体集,而民能方便地表示实体集问的联系,还可表达m:n的关系 缺点:由于存取路径对用户透明,查询效率往往不如非关系型数据模型为了提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度为实现数据库数据的独立性,便于数据库的设计和实现,根据美国国家标准局(ANSI)计算机机和信息处理委员会(代号x3)以及标准规划和要求委员会(SPARC)联合成立的DBMS研究组在1975年发表的中期报告,一个数据库结构从逻辑上可以划分为三个层次:外模式(External Schema),模式(Schema)和内模式(Internal Schema),称为数据库系统的三级模式结构4. 数据库系统的三级模式结构,(1) 模式(Schema),模式(或称概念模式、逻辑模式)是对数据库全局逻辑结构的描述、是数据库所有用户的公共数据视图。
概念模式以某一种数据模型为基础,综合考虑了所有用户的需求,并将这些需求有机地集成为一个逻辑整体—个数据库只有一个概念模式,它是数抿库系统三级模式结构的中间层.既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序及程序设计语无关概念模式由DBMS提供的模式描述语言(模式DDL)来定义和描述定义概念模式时不仅要定义数据的逻辑结构,例如数据记录由哪些字段构成,字段的名称、类型、取值范园等,而且要定义数据之间的联系,以及定义与数据有关的安全性、完整性要求等内容2) 外模式(External Schema),外模式是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述 它是模式的逻辑子集,所以外模式也称为子模式或用户模式 根据用户需求,外模式可以有很多个,具有相同数据视图的用户可以共享一个外模式 外模式的设立有利于数据的安全和保密用户程序只能操作其子模式范围内的数据,从而把其与数据库中的其余数据隔离开来,缩小了程序错误传播的范围,保证了其他数据的安全 DBMS提供的外部模式由外部模式描述语言(外部模式DDL)来定义和描述3) 内模式(Internal Schema),内模式(也称存储模式)是对数据库中数据物理结构和存储方式的描述,是数据在数据库内部的表示形式。
一个数据库只有一个内模式 在内模式中规定了数据项、记录、键、数据集、指针、索引和存取路径在内的所有数据的物理组织,以及优化性能、响应时间和存储空间需求等信息它还规定了记录的位置、块的大小和溢出区等此外,数据是否加密,是否压缩存储等内容也可以在内模式中加以说明 内模式由DBMS提供的内模式描述语言(内模式DDL)来定义和描述4) 数据库模式间的映像与数据独立性,数据库系统的三级模式结构表明可以把数据的具体组织留给具体的DBMS管理,使用户能逻辑地抽象地处理数据 为了联系三级模式并实现它们之间的转化,数据库管理系统在这三层模式之间提供了两层映像:外模式/模式映像和模式/内模式映像 所谓映像是一种对应规则,它指出了映像双方是如何进行转换的数据库的三级结构是依靠映像来联系和互相转换的 正是这两层映像,保证了数据库系统中数据的逻辑独立性和物理独立性外模式/模式映象,对于每一个外模式,数据库系统都有一个外模式/模式映象,它定义了外模式和模式的对应规则,指出外模式和模式之间如何进行转换 当需要改变概念模式时(例如增加新的关系、属性,改变属性的数据类型,改变数据间的联系等),由数据库管理员对各个外部模式/概念模式映像做相应改变而保持外部模式不变,从而不必修改或重写应用程序,保证了数据与程序的逻辑独立性。
这种用户数据独立于全局逻辑数据的特性称为数据逻辑独立性模式/内模式映象,数据库系统只有一个模式和一个内模式,所以模式/内模式映象是唯一的,它定义了数据库所有逻辑结构与数据存储结构之间的对应规则当数据库的存储结构发生了改变,由数据库管理员对模式/内模式映象作相应改变,可以使模式保持不变,从而不需改变应用程序,保证了数据的物理独立性5. DBMS的层次结构,第1层是应用层,位于DBMS核心之外它处理的对象是各种各样的数据库应用,如用开发工具开发的或用宿主语言(其语句不能独立使用,必须嵌入某种高级语言)编写的应用程序,数据库最终用户通过应用接口发出事务请求或各种查询要求该层是DBMS与终端用户和应用程序的界面层第2层是语言翻译处理层它处理的对象是数据库语言,如SQL向上提供的数据接口是关系、视图,即一个或多个元组的组合其功能是对数据库语言的各类语句进行语法分析、视图转换、授权检查、完整性检查、查询优化等通过对下层基本模块的调用,生成可执行代码这些代码的运行即可完成数据库语句的功能要求第3层是数据存取层该层处理的对象是单个元组它把上层的集合操作转换为单记录操作执行扫描(如表扫描)、排序、元组的查找、插入、修改、删除、封锁等基本操作。
完成数据记录的存取、存取路径维护、并发控制、事务管理等工作第4层是数据存储层该层处理的对象是数据页和系统缓冲区执行文件的逻辑打开、关闭、读页、写页、缓冲区读和写、页面淘汰等操作,完成缓冲区管理、内外存交换、外存的数据管理等功能。