数据库原理第五章

合集下载

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

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

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)

数据库原理及应用课件:第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语言
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章

第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章课后习题答案

《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一起使用,对分组后的结果进行过滤。

数据库原理第五章关系数据库的规范化设计

数据库原理第五章关系数据库的规范化设计
在以上三个关系模式中,实现了信息的某种程度的 分离: T中存储教师基本信息,与所选课程及系主任无关; D中存储系的有关信息,与教师无关; TC中存储教师讲授课程的信息,而与教师及系的信 息无关。
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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 数据库存储介质的特点
数据库是大量、持久数据的集合,在现阶段 用内存作为数据库的存储介质是不合适的。


采用多级存储器,用的最多的辅存是磁盘。 光盘由于速度和价格上的原因,近期无法取 代硬盘。 磁带是顺序存取存储器,通常用作后备存储 器。
相关文档
最新文档