数据库原理第五章
数据库原理与应用第五章课件

5.2 需求分析
5.2.2 需求分析的方法
需求分析常用的调查方法有以下几种: (1)亲自参与业务活动,了解业务处理的基本情况。 (2)请专人介绍。 (3)在对用户的需求了解过程中一定会存在许多疑问,可以通
过与用户座谈、询问等方式来解决这些疑问。 (4)设计调查表请用户填写。如果调查表设计得合理接受。 (5)查问记录。即查问原系统有关的数据记录。 (6)学习文件。及时了解掌握与用户业务相关的政策和业务规
5.6 数据库实施
所谓数据库的实施,就是根据数据库的逻辑结构 设计和物理结构设计的结果,在具体RDBMS支持的计算 机系统上建立实际的数据库模式、装人数据、并进行 测试和试运行的过程。 (1)散数据库的建立与调整 (2)数据库的调整 (3)应用程序编制与调试 (4)数据库系统的试逻辑结构设计阶段 物理结构设计阶段 数据库实施阶段 数据库运行和维护阶段
5.2 需 求 分 析
5.2.1 需求分析的任务
需求分析的任务是通过详细调查所要处理的对象(组织、 部门、企业等),充分了解原有系统的工作概况,明确用户的 各种数据需求、完整性约束条件、事务处理和安全性条件等, 然后在此基础上确定新系统的功能。新系统必须充分考虑今后 可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。
(1)一个实体型转换为一个关系模式; (2)实体的属性就是关系的属性,实体的码就是关系的码。
5.5 物 理 设 计
数据库物理设计阶段主要包括以下4个过程: (1)分析影响物理数据库设计的因素。 (2)为关系模式选择存取方法。 (3)设计关系、索引等数据库文件的物理存储结构。 (4)评价物理结构。
(1)数据库的转储和恢复。 (2)维持数据库的完整性与安全性。 (3)监测并改善数据库性能。 (4)数据库的重组和重构。
数据库原理及应用课件:第5章 ACCESS 数据库—面向对象的程序设计语言(VBA)

13
2022/10/3
– 用户自定义型 所占字节数与元素个数有关,用 户可以使用Type语句定义任何数据类型。语法 如下:
– [Private/Public] Type 类型名
– 元素名 As 数据类型
–…
– End Type
例如:自定义一个教师的基本信息数据类型,其 中包括姓名、性别、年龄的信息。
4
2022/10/3
– 对象(Object)—是类的一个实例,是组成一个 系统的基本逻辑单元,是具有某些特征的具体的 事物的抽象。每个对象都具有属性和行为。
– 数据抽象(Data Abstraction)—指仅表现核心 的特性而不描述背景细节的行为。
– 继承(Inheritance)—是可以让某个类型的对象 获得另一个类型的对象的属性的方法。
24
2022/10/3
例:已知两个数x和y,比较它们的大小,使 得x大于y。
– 方法一:if x<y then
t=x
x=y
y=t
end if
– 方法二: if x<y then t=x:x=y:y=t
25
2022/10/3
– If …Then…Else语句(双分支结构)。此语句 也有两种形式:块结构和行结构。
– I说f…明T:hen语句(单分支结构)。有两种形
式1):表块达结式构一和般行为结关构系表达式、逻辑表达 块式0结为,构F也a形l可s式e以。:为If<算表术达表式达>式Th,e非n 0为True,
2)语句块可以语是句一块句或多句,若用行结 构来表示,则En只d 能If是一句语句,若多句, 行语结句构间形需式用:冒If号<表隔达开式,>而T且he必n须<语在句一>行上 书写。
数据库系统工程师:数据库原理选择题

数据库系统工程师:数据库原理选择题(五)第五章1. 在数据库设计中,将ER图转换成关系数据模型的过程属于()(2001年10月全国卷)A. 需求分析阶段B. 逻辑设计阶段C. 概念设计阶段D. 物理设计阶段2.在数据库设计中,表示用户业务流程的常用方法是( )(2003年1月全国卷)A.DFDB.ER图C.程序流程图D.数据结构图3.把ER模型转换成关系模型的过程,属于数据库的( )(2002年10月全国卷)A.需求分析B.概念设计C.逻辑设计D.物理设计4.在ER模型中,如果有6个不同实体集,有9个不同的二元联系,其中3个1∶N 联系,3个1∶1联系,3个M∶N联系,根据ER模型转换成关系模型的规则,转换成关系的数目是( )(2002年10月全国卷)A.6B.9C.12D.155.数据库设计属于()。
A、程序设计范畴B、管理科学范畴C、系统工程范畴D、软件工程范畴6.设计数据流程图(DFD)属于数据库设计的()A、可行性分析阶段的任务B、需求分析阶段的任务C、概念设计阶段的任务D、逻辑设计阶段的任务7.在数据库的概念设计中,最常用的模型是()A、实体联系模型B、数学模型C、逻辑模型D、物理模型8.数据库设计中,概念模型是()A、依赖于DBMS和硬件B、依赖于DBMS独立于硬件C、独立于DBMS依赖于硬件D、独立于DBMS和硬件9.ER图是数据库设计的工具之一,它适用于建立数据库的()。
A、需求模型B、概念模型C、逻辑模型D、物理模型10.ER方法中用属性描述事物的特征,属性在ER图中表示为()A、椭圆形B、矩形C、菱形D、有向边11.在关系数据库设计中,设计关系模式的任务属于()A、需求设计B、概念设计C、逻辑设计D、物理设计12.设计子模式属于数据库设计的()A、需求设计B、概念设计C、逻辑设计D、物理设计13.设计DB的存储结构属于数据库设计的()A、需求设计B、概念设计C、逻辑设计D、物理设计14.数据库设计中,外模型是指()A、用户使用的数据模型B、DB以外的数据模型C、系统外面的模型D、磁盘上数据的组织15.概念结构设计的目标是产生数据库的概念结构,这结构主要反映()A、组织机构的信息需求B、应用程序员的编程需求C、DBA的管理信息需求D、DBS的维护需求16.在DB的概念设计和逻辑设计之间起桥梁作用的是()A、数据结构图B、功能模块图C、ER图D、DFD17.在DB的需求分析和概念设计之间起桥梁作用的是()A、DFDB、ER图C、数据结构图D、功能模块图18.ER模型转换成关系模型时,一个M:N联系转换为一个关系模式,该关系模型的关键字是()A、M端实体的关键字B、N端实体的关键字C、M端实体的关键字和N端实体的关键字的组合D、重新选取的其他属性19.在一个ER图中,如果共有20个不同实体类型,在这些实体类型之间存在着9个不同的二元联系(二元联系是指两个实体之间的联系)其中3个是1:N联系,6个是M:N联系,还存在1个M:N的三元联系,那么根据ER模型转换成关系模型的规则,这个ER结构转换成的关系模型个数为()A、24B、27C、29D、3020.在数据库设计中,弱实体是指()A、属性只有一个的实体B、不存在关键码的实体C、只能短时期存在的实体D、以其他实体存在为先决条件的实体21.关于ER图,下列说法中错误的是()A、现实世界的事物表示为实体,事物的性质表示为属性B、事物之间的自然联系表示为实体之间的联系C、在ER图中,实体和属性的划分是绝对的、一成不变的D、在ER图中,实体之间可以有联系,属性和实体之间不能有联系22.在ER模型转换成关系模型的过程中,下列叙述不正确的是()A、每个实体类型转换成一个关系模型B、每个联系类型转换成一个关系模式C、每个M:N联系转换成一个关系模式D、在1:N联系中,“1”端实体的主键作为外键放在“N”端实体类型转换成的关系模式中23.在数据库设计中,超类实体与子类实体的关系是()A、前者继承后者的所有属性B、后者继承前者的所有属性C、前者只继承后者的主键D、后者只继承前者的主键24.综合局部ER图生成总体ER图过程中,下列说法错误的是()A、不同局部ER图中出现的相同实体,在总体ER图中只能出现一次。
《数据库原理及应用》第五章SQL查询

SQL语言
SQL功能 命令动词
数据查询
数据定义 数据操纵
SELECT
CREATE、DROP、ALTER INSERT、UPDATE、DELETE
数据控制
GRANT、REVOKE
SQL语言
SQL语言的优点在于SQL不是面向过程的 语言,使用SQL语言只需描述做什么,而 不需要描述如何做,为使用者带来极大的 方便。本章将以讨论SQL的数据查询语言 为主,同时介绍数据定义语言和数据操纵 语言。本章中大部分例题使用“学生管理” 数据库,并假定数据库在Access的当前目录 下。
简单查询----选择记录
WHERE子句通过指定查询条件,可以在表中找出满足条件 的记录。查询条件可以是任意复杂的逻辑表达式。 当WHERE子句需要指定一个以上的查询条件时,要使用逻 辑运算符AND、OR和NOT将其连接成复合的逻辑表达式。 其优先级由高到低为:NOT、AND、OR,可以使用括号改 变优先级。 条件查询还可以使用LIKE或NOT LIKE进行部分匹配查询。* 表示任意长度的字符串;?表示任意单个字符。 在查询中还可以使用查询谓词,查询谓词IN 和NOT IN用于 检索属于(IN)或不属于(NOT IN)指定集合的记录。 例10 查询成绩在60分以下(不包括60分)、90分以上(含 90分)学生的学号。
连接查询(多表查询)
例13 查询会计系学生选修课程及成绩,要求查询结果中含 属性学号、姓名、课程名称和成绩。 SELECT student.学号,姓名,课程名称,成绩 FROM student,course,grade WHERE 所属院系='会计学院' and student.学号=grade. 学号 and grade.课程编号=course.课程编号 这个查询涉及到两个表,查询所要求的结果来自两个表,查 询的条件也涉及到两个表,所以有“FROM student,grade”; 这两个表之间是有联系的,这种联系是通过父表的主关键字 (student中的学号)和子表的外部关键字(grade表的学号) 建立的,所以有命令子句WHERE中的筛选条件“student. 学号=grade.学号”。 由于student表和grade表都有学号属性,因此在SELECT子 句中要用前缀的形式“student.学号”指明取自哪个表中的 学号;此例中用“grade.学号”的形式,查询结果是一样的。
数据库系统原理课后答案 第五章

5.1 名词解释(1)SQL模式:SQL模式是表和授权的静态定义。
一个SQL模式定义为基本表的集合。
一个由模式名和模式拥有者的用户名或账号来确定,并包含模式中每一个元素(基本表、视图、索引等)的定义。
(2)SQL数据库:SQL(Structured Query Language),即‘结构式查询语言’,采用英语单词表示和结构式的语法规则。
一个SQL数据库是表的汇集,它用一个或多个SQL模式定义。
(3)基本表:在SQL中,把传统的关系模型中的关系模式称为基本表(Base Table)。
基本表是实际存储在数据库中的表,对应一个关系。
(4)存储文件:在SQL中,把传统的关系模型中的存储模式称为存储文件(Stored File)。
每个存储文件与外部存储器上一个物理文件对应。
(5)视图:在SQL中,把传统的关系模型中的子模式称为视图(View),视图是从若干基本表和(或)其他视图构造出来的表。
(6)行:在SQL中,把传统的关系模型中的元组称为行(row)。
(7)列:在SQL中,把传统的关系模型中的属性称为列(coloumn)。
(8)实表:基本表被称为“实表”,它是实际存放在数据库中的表。
(9)虚表:视图被称为“虚表”,创建一个视图时,只把视图的定义存储在数据词典中,而不存储视图所对应的数据。
(10)相关子查询:在嵌套查询中出现的符合以下特征的子查询:子查询中查询条件依赖于外层查询中的某个值,所以子查询的处理不只一次,要反复求值,以供外层查询使用。
(11)联接查询:查询时先对表进行笛卡尔积操作,然后再做等值联接、选择、投影等操作。
联接查询的效率比嵌套查询低。
(12)交互式SQL:在终端交互方式下使用的SQL语言称为交互式SQL。
(13)嵌入式SQL:嵌入在高级语言的程序中使用的SQL语言称为嵌入式SQL。
(14)共享变量:SQL和宿主语言的接口。
共享变量有宿主语言程序定义,再用SQL 的DECLARE语句说明, SQL语句就可引用这些变量传递数据库信息。
精品课件-数据库原理及应用-第5章

第5章 关系数据库设计理论
(4) 示例模式4。 Teach(Cname,Tname,Rbook); 该关系模式用来存放课程、教师及课程参考书信息。其中, Teach为关系模式名,Cname为课程名,Tname为教师名, Rbook为某课程的参考书名。
第5章 关系数据库设计理论
现实系统的数据及语义可以通过高级语义数据模型(如实 体关系数据模型、对象模型)抽象后得到相应的数据模型。为 了通过关系数据库管理系统实现该数据模型,需要使其向关系 模型转换,变成相应的关系模式。然而,这样得到的关系模式, 还只是初步的关系模式,可能存在这样或那样的问题。因此, 需要对这类初步的关系模式,利用关系数据库设计理论进行规 范化,以逐步消除其存在的异常,得到一定规范程度的关系模 式,这就是本章所要讲述的内容。
第5章 关系数据库设计理论
实际上,设计任何一种数据库应用系统,不论是层次的、 网状的还是关系的,都会遇到如何构造合适的数据模式即逻辑 结构的问题。由于关系模型有严格的数学理论基础,并且可以 向别的数据模型转换,因此,人们就以关系模型为背景来讨论 这个问题,形成了数据库逻辑设计的一个有力工具——关系数 据库的规范化理论。规范化理论虽然是以关系模型为背景,但 是对于一般的数据库逻辑设计同样具有理论上的意义。
第5章 关系数据库设计理论
关系系统当中,数据冗余产生的重要原因就在于对数据依 赖的处理,从而影响到关系模式本身的结构设计。解决数据间 的依赖关系常常采用对关系的分解来消除不合理的部分,以减 少数据冗余。在例5.1中,我们将Teaching关系分解为三个关 系模式来表达:Student (Sno,Sname,Ssex,Sdept), Course(Cno,Cname,Tname)及Score(Sno,Cno,Grade),其 中Cno为学生选修的课程编号;分解后的部分数据如表5.2、 表5.3和表5.4所示。
《MySQL数据库原理、设计与应用》第5章课后习题答案

第五章一、填空题1.逗号或,2. 33.FLOOR(3+RAND()*(11-3+1))或FLOOR(3+RAND()*9)4.NULL5.ON DUPLICATE KEY二、判断题1.错2.对3.错4.对5.对三、选择题1. D2. B3. D4. A5. C四、简答题1.请简述DELETE与TRUNCA TE的区别。
答:①实现方式不同:TRUNCATE本质上先执行删除(DROP)数据表的操作,然后再根据有效的表结构文件(.frm)重新创建数据表的方式来实现数据清空操作。
而DELETE语句则是逐条的删除数据表中保存的记录。
②执行效率不同:在针对大型数据表(如千万级的数据记录)时,TRUNCATE清空数据的实现方式,决定了它比DELETE语句删除数据的方式执行效率更高。
③对AUTO_INCREMENT的字段影响不同,TRUNCATE清空数据后,再次向表中添加数据,自动增长字段会从默认的初始值重新开始,而使用DELETE语句删除表中的记录时,则不影响自动增长值。
④删除数据的范围不同:TRUNCATE语句只能用于清空表中的所有记录,而DELETE语句可通过WHERE指定删除满足条件的部分记录。
⑤返回值含义不同:TRUNCATE操作的返回值一般是无意义的,而DELETE语句则会返回符合条件被删除的记录数。
⑥所属SQL语言的不同组成部分:DELETE语句属于DML数据操作语句,而TRUNCA TE通常被认为是DDL数据定义语句。
2.请简述WHERE与HA VING之间的区别。
1答:①WHERE操作是从数据表中获取数据,用于将数据从磁盘存储到内存中,而HA VING是对已存放到内存中的数据进行操作。
②HA VING位于GROUP BY子句后,而WHERE位于GROUP BY 子句之前。
③HA VING关键字后可以跟聚合函数,而WHERE则不可以。
通常情况下,HA VING关键字与GROUPBY一起使用,对分组后的结果进行过滤。
数据库原理第五章关系数据库的规范化设计

12
模式分解是关系规范化的 主要方法(二)
与TDC相比,分解为三个关系模式后,数据的冗余度明显 降低。 当新插入一个系时,只要在关系D中添加一条记录。 当某个教师尚未讲课,只要在关系T中添加一条教师记录, 而与TC授课关系无关,这就避免了插入异常。 当某个系的教师不再讲课时,只需在TC中删除该教师的 全部授课记录,而关系D中有关该系的信息仍然保留,从 而不会引起删除异常。 同时,由于数据冗余度的降低,数据没有重复存储,也不 会引起更新异常。
24
2.2 完全函数依赖和部分函数依赖
例如:学生成绩表中
姓名 王一 王二 王三 王一
学号 1 2 3 4
年龄 16 15 16 16
籍贯 河北 山东 北京 天津
姓名不能推出年龄,学号也不能推出年龄,但是 姓名 + 学号能推出年龄,故完全依赖;
学号能直接推出籍贯,故是部分依赖
25
2.3 传递函数依赖
当关系中的元组增加、删除或更新后都不能被破 坏这种函数依赖。因此,必须根据语义来确定属 性之间的函数依赖,而不能单凭某一时刻关系中 的实际数据值来判断。
20
函数依赖的定义和性质(六)
函数依赖可以保证关系分解的无损连接性
设R(X,Y,Z),X,Y,Z为不相交的属性集合,如果X Y或X Z,则有R(X,Y,Z)=R[X,Y]*R[X,Z],其中,R[X,Y]表示关 系R在属性(X,Y)上的投影,即 R等于其投影在X上的自然连 接,这样便保证了关系R分解后不会丢失原有的信息,称为 关系分解的无损连接性
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
记录8 记录7 记录6 记录5 记录4 记录3 记录2 记录1
记录8 记录7
作删除 标记
记录6 记录5 记录4 记录3 记录2 记录1
集中删除 记录,并 进行记录 重排
记录8 记录7 记录5 记录3 记录1
2.直接文件
直接文件中,将记录的某一属性用散列函数直 接映射成记录的地址,被散列的属性称为散列键。
…
计算机系
900417 900418
陈燕
…
计算机系
…
存储空间
学生表的索引文件
索引与散列的区别——索引文件有记录才占用 存储空间,使用散列空文件也占用全部文件空间。 索引本省占用空间,但索引一般较记录小得多
针对非散列键和非索引属性的访问,都不能有效发挥直 接文件或索引文件的优势。散列或索引失效时,两者谁的访 问代价更大?
Shanghai
问题:索引法对串型的长度有什么要求?
5.3 文件结构和存取路径
5.3.1 访问文件的方式
传统的数据模型都以记录为基础,记录的集合构成 文件。文件须按一定的结构组织和存储记录,按一定 的存取路径访问有关记录。 对数据库的操作最终要落实到对文件的操作。 文件结构及其所提供的存储路径直接影响数据访问 的速度,通常针对不同的数据访问采用不同的文件结 构。
19 24 28 31
289 311 419 430
单元存 储区
5 203 6 211 211 7 223 8 9 10 231 11 237 12 241 229
最单 高元 键存 值储 区
值单 相元 对存 地储 址最 高 键
最 指溢 高 针出 键 链 值 头
13 14 15 16 …
255
259
267 271 …
变长记录(跨块)
记录1 记录2 记录3
块i
块i+1
记录3(剩 余部分)
记录4
记录5
5.2.3 物理块在磁盘上的分配
早期的DBMS中,通常由操作系统分配数 据库所需的物理块,逻辑上相邻的数据可能 被分散到磁盘的不同区域。使得访问数据时, 性能下降。 现代DBMS中,都改由DBMS初始化时向操 作系统一次性的申请所需的存储空间。
相对地址
稠密索引(dense index)
每个键值对应一个索引项——稠密索引。 稠密索引的预查找功能(用记录的地址代替记录参与 集合运算,减少I/O次数)。 索引溢出的问题
稠密索引中,每增加一个键值,就要增加一个索引项。 索引也会有溢出的可能。 解决方法:1.在每个索引块中预留发展的空间 2.建立索引溢出区
为了便于检索,索引项总是按索引键排序。
文件中的记录按索引键排序吗?
注意:索引项记录,并不是文件中的记录 按索引键排序 受按门牌号找住户的启示(住户在“物理” 上按门牌号码排序),提出非稠密索引。
非稠密索引与稠密索引
1.不为每个键值设立索引项的索引——非稠密索引 2.可以节省索引的存储空间,代价是文件要按索引 键排序 3.对一个文件,只能为一个索引键(一般为主键) 建立非稠密索引(为什么?)
1、连续分配法(contiguous allocation)
将一个文件的块分配在磁盘的连续空间上, 块的次序就是其存储的次序,有利于顺序存取 多块文件,不利于文件的扩充。 2、链接分配法(linked allocation)
物理块未必分配在磁盘的连续存储空间上, 各物理块用指针链接,有利于文件的扩展,但 效率较差。
溢出区
271
16
271
1 2 3 4 5 6 7 8 9 10 11 12
121 134 167 182 203 211 223 229 231 237 241 13 14 15 16 … 255
索引键
单元存 储区
259
267 271 …
最单 高元 键存 值储 区
值单 相元 对存 地储 址最 高 键
4.非稠密索引中,若干个记录组成一个单元存储区,单 元存储区中的记录按索引键排序。 5.单元存储区装满后,可向溢出区溢出(用指针指向溢 出区),但溢出太多时,指针链接次数增加,将导致数 据库性能下降。 6.可以建立多级非稠密索引(通常最高一级索引应尽量 保证可以常驻内存)。
示例
191
182 223 241 271 430 601 289 311 419 430 19 24 28 31 289 311 419 430 4 7 12 201 223 251 249 201 251
3、簇集分配法(clustered allocation) 上述两种方法的结合。 4、索引分配法(indexed allocation) 每个文件有一个逻辑块号与其物理块地址对 照的索引。
数据压缩技术
1.消零或空格符法(null suppression) 例如,bbbbb可以用#5表示; 000000可以用@6表示等。 2.串型代替法(pattern substitution)
5.2.2 记录在物理块上的分配
磁盘上,记录必须分配到物理块中。
记录跨快存储(spanned) 记录不垮块存储(unspanned)
设B为物理块的有效空间大小,R为固定长记 录的大小,若B>R,则每个物理块可容纳的记录 数为: p=[B/R] p称为块因子(Blocking Factor)。
传统文件系统不能提供实现DBMS功能所需的附 加信息。DBMS为了实现其功能,须在文件目录、 文件描述块、物理块等部分附加一些信息。 传统文件系统主要面向批处理,数据库系统要 求即时访问、动态修改。这就要求文件的结构能 适应数据的动态变化,提供快速访问路径。
传统文件系统服务对象特殊,用途单一,共享 度低;数据库中的文件供所有用户共享,有些用 途甚至是不可知的。
5 12 18
2.相对法——每个字段没有固定的长度,而是用特 殊的字符分隔开
LI? MING? MALE? 1967#
问题:字段中也需要用到这些分隔符时,如何进行 表示?
3.计数法——每个字段的开始加上表示该字段长度 的字段
02LI04MING04MALE041967
问题:计数法对字段的实际长度有什么要求?
1.主索引——以主键为索引键(primary index)。 2.次索引——以非主键为索引键(secendary index),建立次索引可以提高查询的效率,但增 加了索引维护的开销。 3.倒排文件——主索引+次索引的极端情况(文件 的所有属性上都建立索引),有利于多属性值的 查找,但数据更新时开销很大。
文件访问方式按设计文件结构的观点分5类
1.查询文件的全部或相当多的记录(≥15%) 2.查询某一特定记录 3.查询某些记录 4.范围查询 5.记录的更新
5.3.2 数据库对文件的要求
一些DBMS就以OS的的文件管理系统作为 其物理层的基础,更多的DBMS不用OS的文件 管理系统,而是独立设计其存储结构。原因 如下:
Student(SNO,SNAME,SEX,BIRTHDATE,DEPT)
散列函数 H(SNO)=Address
900412 李林 … 计算机系
@addr
H(900412)=@addr
900412
李林
…
计算机系
存储空间
直接文件存在的问题:
键所映射的地址范围固定(地址范围设的太大或 太小都不好,为什么?)。 地址重叠问题(处理地址重叠增加了开销)。 直接文件只对散列键的访问有效。 不便于处理变长记录。 对于通用的DBMS很难找到通用的散列函数。 上述原因导致直接文件目前在数据库系统中使用不多。
最 指溢 高 针出 键 链 值 头
相对地址
查找索引键为211的记录的存储地址
191
182 223 4 7 7 12 201 223 251 249 201 251
211
271 430 601
241
溢出区
271
16
271
1 2 3 4
121 134 167 182
索引键
289 311 419 430
减少DBMS对OS的依赖,提高DBMS的可移植性。
传统文件系统一旦建立以后,数据量比较稳定; 数据库中文件的数据量变化较大。
5.3.3 文件的基本类型
不同类型的访问各有其使用的文件结构和 存取路径。DBMS通常提供多种文件结构,供数 据库设计者选用。
1.堆文件(heap file) 2.直接文件(direct file) 3.索引文件(indexed file)
OS与DBMS都有各自的缓冲区。 不少DBMS采用延迟写与提前读技术,减少 I/O,改善性能。
5.2 记录的存储结构
记录是目前商用数据库的基本数据单元,有定 长和变长之分。 记录的存储结构
1.定位法——每个字段按其最大可能长度分配定长的 位臵
LIbbb MINGbbb MALEbb 1967
以物理块为交换单位的优点: 1).减少I/O的次数,从而减少寻道和等待的时间。 2).减少间隙的数目,提高磁盘空间利用率。 物理快的大小由OS决定。
一般,在磁盘和内存之间设立缓冲区以解决 二者的速度不匹配问题。
由于有多个缓冲块可供申请使用,磁盘的读写 操作和读写数据的处理可以重叠进行。
i块缓冲块A 读出: 处理: i+1块缓冲块B i+2块缓冲块A 处理A中i块 处理B中i+1块
第五章 数据库的存储结构
5.1 数据库存储介质的特点
数据库是大量、持久数据的集合,在现阶段 用内存作为数据库的存储介质是不合适的。
采用多级存储器,用的最多的辅存是磁盘。 光盘由于速度和价格上的原因,近期无法取 代硬盘。 磁带是顺序存取存储器,通常用作后备存储 器。