数据库原理(5)

合集下载

数据库原理及应用课件:第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须<语在句一>行上 书写。

数据库原理_实验五指导书

数据库原理_实验五指导书

数据库原理
实验指导书
实验五SQL Server 2000中数据库安全性设置
1. 实验的目的
1)熟悉通过SQL对数据进行安全性控制。

2)完成作业的上机练习。

2. 实验内容
要求:在SQLSERVER2000中利用SQL语句完成以下操作。

1)通过SQL对登入账号,用户的创建修改与删除。

2)通过SQL对角色管理,以及角色中添加用户。

3)对角色和用户数据的授权和权力回收
3. 实验步骤
1)复制生成xscj数据库的代码并运行。

2)创建登入账号和用户名s1,s2,t1,t2,l1,l2密码与账号相同默认登入访问xscj数据库。

3)创建角色student,teacher,leader。

4)为角色student授权student表、course表和SC表的select 权力,拒绝修改和删除这三个表的权力
5)为角色teacher授权student表、course表和SC表的select 权力,以及对SC表的修改,插入更新的权力, 拒绝修改student表和course表的权力
6)为角色leader授权student表、course表和SC表的select 权力,以及对student表、course 表修改,插入更新的权力,拒绝修改和删除表SC的权力
7)将s1,s2加入student角色
8)将t1,t2加入teacher角色
9)将l1,l2加入leader角色
10)分别以s1,t1,l1登入服务器验证对student表、course表和SC表相应权限的验证。

《数据库原理及应用》第五章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.学号”的形式,查询结果是一样的。

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

数据库原理模拟试卷五(答案)

数据库原理模拟试卷五(答案)
10. 对关系R进行投影运算后,得到关系S,则 ( C ) A.关系R的元组数等于关系S的元组数
B.关系R的元组数小于关系S的元组数
C.关系R的元组数大于或等于关系S的元组数 D.关系R的元组数大于关系S的元组 数
11.记载数据库系统运行过程中所有更新操作的文件称为 ( C ) A.更新文件 B. 后备文件 C.日志文件 D.数据文件
9.在关系模式R中,F是最小函数依赖集,属性T只在F中诸函数依赖“→”的左端出现,则属性T具有以下性质 ( C ) A.属性T仅是R的主属性,但不包含于侯选键中 B.属性T必是R的非主属性
C.属性T必是组成R候选键的主属性
D.属性T可能是R的主属性,也可能是R的非主属性
解释:函数依赖是语义范畴的概念,本题可以直接从语义上理解: 如果t不包含在任一侯选键中,它至少依赖于候选键,所以它肯定会在F中“→”的右端出现; 包含在任何一个候选键中的属性称为主属性。
B.关系R的元组数小于关系S的元组数
C.关系R的元组数大于或等于关系S的元组数 D.关系R的元组数大于关系S的元组 数
11.记载数据库系统运行过程中所有更新操作的文件称为 ( C ) A.更新文件 B. 后备文件 C.日志文件 D.数据文件
12.在面向对象的模型中,表示实体中的每个属性时,使用 ( C ) A.两个变量,一个消息 B.两个变量,两个消息 C.一个变量,两个消息 D.一个变量,一个消息
一、单项选择题1. 在数据库系统中,数据独立性是指( C )
A.用户与计算机系统的独立性 B.数据库与计算机的独立性 C.数据与应用程序的独立性 D.用户与数据库的独立性
2. 文件系统与数据库系统相比较,其缺陷主要表现在数据联系弱、数据冗余和 ( C )

《数据库系统原理》PPT电子课件教案-第五章 数据库保护

《数据库系统原理》PPT电子课件教案-第五章 数据库保护

四、用户定义的安全性措施 除了系统级的安全性措施外,Oracle还允许用户用数 据库触发器定义特殊的更复杂的用户级安全性措施。例 如,规定只能在工作时间内更新Student表,可以定义如 下触发器,其中sysdate为系统当前时间: CREATE OR REPLACE TRIGGER secure student BEFORE INSERT OR UPDATE OR DELETE ON Student BEGIN IF(TO_CHAR(sysdate,’DY’) IN(‘SAT’,’SUN’)) OR(TO_NUMBER(sysdate HH24') NOT BETWEEN 8 AND l7) THEN


常用的方法:
1)用一个用户名或者用户标识号来标明用户身份, 系统鉴别此用户是否是合法用户。 2)口令(Password)。为进一步核实用户,系统要求 用户输入口令 3)系统提供一个随机数,用户根据预先约定好的某 一过程或函数进行计算,系统根据计算结果是否正 确进一步鉴定用户身份。


2. 存取控制
(2)行级安全性 Oracle行级安全性由视图实现。用视图定义表的水 平子集,限定用户在视图上的操作,就为表的行级提供 了保护。视图上的授权与回收与表级完全相同。 例如,只允许用户U2查看Student表中信息系学生的 数据,则首先创建信息系学生视图S_ IS,然后将该视图 的SELECT权限授予U2用户。 (3)列级安全性 Oracle列级安全性可以由视图实现,也可以直接在基 本表上定义。 用视图定义表的垂直子集就可以实现列级安全性,方 法与上面类似。
Oracle对数据库对象的权限采用分散控制方式, 允许具有WITH GRANTOPTION的用户把相应权限或 其子集传递授予其他用户,但不允许循环授权,即被 授权者不能把权限再授回给授权者或其祖先, U1 U2 U3 U4 × 循环授权 Oracle把所有权限信息记录在数据字典中。当用 户进行数据库操作时,Oracle首先根据数据字典中的 权限信息,检查操作的合法性。在Oracle中,安全性 检查是任何数据库操作的第一步。

数据库原理选择题总结(5-8章)

数据库原理选择题总结(5-8章)

数据库原理选择题总结(5-8章)第五章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图中只能出现一次。

数据库原理及应用复习思考题五及答案

数据库原理及应用复习思考题五及答案

数据库原理及应用复习思考题五及答案一、单选题(每题2分,共20分)1、数据库中,数据的物理独立性是指()。

A. 数据库与数据库管理系统的相互独立B、用户程序与DBMS的相互独立C、用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的D、应用程序与数据库中数据的逻辑结构相互独立2、假如采用关系数据库系统来实现应用,在数据库设计的()阶段,需要将E-R模型转换为关系数据模型。

A、概念设计B、物理设计C、逻辑设计D、运行阶段3、五种基本关系代数运算是()。

A、∪,-,×,π和σB、∪,-,∞,π和σC、∪,∩,×,π和σD、∪,∩,∞,π和σ4、关系数据库中的关键字是指( )。

A、能唯一决定关系的字段B、不可改动的专用保留字C、关键的很重要的字段D、能唯一标识元组的属性或属性集合5、数据库管理系统能实现对数据库中数据的查询、插入、修改和删除,这类功能称为()。

A、数据定义功能B、数据管理功能C、数据操纵功能D、数据控制功能6、自然连接是构成新关系的有效方法。

一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的()。

A、行B、属性C、记录D、元组7、下面有关各种范式之间的包含关系的描述中,正确的是()。

A、BCNF⊂4NF⊂3NF⊂2NF⊂1NFB、1NF⊂2NF⊂3NF⊂4NF⊂BCNFC、4NF⊂BCNF⊂3NF⊂2NF⊂1NFD、1NF⊂2NF⊂3NF⊂BCNF⊂4NF8、己知关系R和S,R∩S等价于()。

A、(R-S)-SB、S-(S-R)C、(S-R)-RD、S-(R-S)9、一个关系中取出满足某个条件的所有元组形成一个新的关系的操作是()操作。

A、投影B、连接C、选择D、复制10、子模式DDL用来描述()。

A、数据库的总体逻辑结构B、数据库的局部逻辑结构C、数据库的物理存储结构D、数据库的概念结构二、填空题(每空2分,共20分)1、如果一个关系R中的所有非主属性都不传递依赖于任何候选关键字,则称关系R属于,记作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

OS与DBMS都有各自的缓冲区。 不少DBMS采用延迟写与提前读技术,减少 I/O,改善性能。

5.2 记录的存储结构


记录是目前商用数据库的基本数据单元,有定 长和变长之分。 记录的存储结构
1.定位法——每个字段按其最大可能长度分配定长的 位臵
LIbbb MINGbbb MALEbb 1967
最 指溢 高 针出 键 链 值 头
相对地址
查找索引键为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
3.索引文件
索引相当于一个映射机构,把关系中相应记录 的某个(些)属性的键值转换为该记录的存储地 址(或地址集)。
@addr3 900418 @addr2 900412 @addr1 900417


周力

计算机系
SNO 900412
Address @addr2 @addr1 @addr3 …
李林
文件访问方式按设计文件结构的观点分5类
1.查询文件的全部或相当多的记录(≥15%) 2.查询某一特定记录 3.查询某些记录 4.范围查询 5.记录的更新
5.3.2 数据库对文件的要求
一些DBMS就以OS的的文件管理系统作为 其物理层的基础,更多的DBMS不用OS的文件 管理系统,而是独立设计其存储结构。原因 如下:
对反复出现的字符串,可以用一个 省略符代替。
例如,串型表如右:
IBM PC/XT
0000
@
#
原始数据 IBM PC/XT 00001 IBM PC/XT 00002
压缩数据
@#1 @#2
3.索引法(indexing) 串行代替法的变种,对重复出现的串行, 单独存储,在用到这些串行的地方,用指针 引用它。
传统文件系统不能提供实现DBMS功能所需的附 加信息。DBMS为了实现其功能,须在文件目录、 文件描述块、物理块等部分附加一些信息。 传统文件系统主要面向批处理,数据库系统要 求即时访问、动态修改。这就要求文件的结构能 适应数据的动态变化,提供快速访问路径。
传统文件系统服务对象特殊,用途单一,共享 度低;数据库中的文件供所有用户共享,有些用 途甚至是不可知的。
为了便于检索,索引项总是按索引键排序。
文件中的记录按索引键排序吗?
注意:索引项记录,并不是文件中的记录 按索引键排序 受按门牌号找住户的启示(住户在“物理” 上按门牌号码排序),提出非稠密索引。

非稠密索引与稠密索引
1.不为每个键值设立索引项的索引——非稠密索引 2.可以节省索引的存储空间,代价是文件要按索引 键排序 3.对一个文件,只能为一个索引键(一般为主键) 建立非稠密索引(为什么?)
记录一般不会刚好填满物理块,会留下不用的零头 空间: B―p×R<R
记录1 记录2 记录3 记录4
为了利用这部分空间,可以利用记录的跨块存储组 织(spanned organization)。

定长记录(跨块)
记录1 记录2 记录3 记录4
块i
块i+1
记录4( 剩余部 分)
记录5
记录6
记录7

5.2.2 记录在物理块上的分配

磁盘上,记录必须分配到物理块中。
记录跨快存储(spanned) 记录不垮块存储(unspanned)
设B为物理块的有效空间大小,R为固定长记 录的大小,若B>R,则每个物理块可容纳的记录 数为: p=[B/R] p称为块因子(Blocking Factor)。
变长记录(跨块)
记录1 记录2 记录3
块i
块i+1
记录3(剩 余部分)
记录4
记录5
5.2.3 物理块在磁盘上的分配
早期的DBMS中,通常由操作系统分配数 据库所需的物理块,逻辑上相邻的数据可能 被分散到磁盘的不同区域。使得访问数据时, 性能下降。 现代DBMS中,都改由DBMS初始化时向操 作系统一次性的申请所需的存储空间。
相对地址
稠密索引(dense index)


每个键值对应一个索引项——稠密索引。 稠密索引的预查找功能(用记录的地址代替记录参与 集合运算,减少I/O次数)。 索引溢出的问题
稠密索引中,每增加一个键值,就要增加一个索引项。 索引也会有溢出的可能。 解决方法:1.在每个索引块中预留发展的空间 2.建立索引溢出区
以物理块为交换单位的优点: 1).减少I/O的次数,从而减少寻道和等待的时间。 2).减少间隙的数目,提高磁盘空间利用率。 物理快的大小由OS决定。

一般,在磁盘和内存之间设立缓冲区以解决 二者的速度不匹配问题。
由于有多个缓冲块可供申请使用,磁盘的读写 操作和读写数据的处理可以重叠进行。
i块缓冲块A 读出: 处理: i+1块缓冲块B i+2块缓冲块A 处理A中i块 处理B中i+1块
溢出区
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 …
最单 高元 键存 值储 区
值单 相元 对存 地储 址最 高 键
删除记录较麻烦 假设,要删除右图堆文件中 的第2,4,6条数据记录。 直接删除这三条记录的情况 如右图所示。 带来什么问题? 空间回收问题,后续记录 需搬移,影响对文件的操作效 率。

堆 文 件
记录8 记录7 记录6 记录5 记录4 记录3 记录2 记录1
解决方法
堆 文 件 堆 文 件 堆 文 件
1、连续分配法(contiguous allocation)
将一个文件的块分配在磁盘的连续空间上, 块的次序就是其存储的次序,有利于顺序存取 多块文件,不利于文件的扩充。 2、链接分配法(linked allocation)
物理块未必分配在磁盘的连续存储空间上, 各物理块用指针链接,有利于文件的扩展,但 效率较差。
3、簇集分配法(clustered allocation) 上述两种方法的结合。 4、索引分配法(indexed allocation) 每个文件有一个逻辑块号与其物理块地址对 照的索引。

数据压缩技术
1.消零或空格符法(null suppression) 例如,bbbbb可以用#5表示; 000000可以用@6表示等。 2.串型代替法(pattern substitution)
1.稠密索引中,若键值不唯一,则在最低级索引中, 每个键值对应的可能是一个地址集(对应多个记 录)。如果这些记录分散在不同的物理块内,稠密 索引的优点并不能体现出来(并不一定能减少 I/O)。 例如:某个键值对应100个记录,且这100个记录 分散在100个物理块中,虽然通过稠密索引可以一 次获得这100个地址,但仍然要访问100个物理块。

计算机系
900417 900418
陈燕

计算机系

存储空间
学生表的索引文件


索引与散列的区别——索引文件有记录才占用 存储空间,使用散列空文件也占用全部文件空间。 索引本省占用空间,但索引一般较记录小得多
针对非散列键和非索引属性的访问,都不能有效发挥直 接文件或索引文件的优势。散列或索引失效时,两者谁的访 问代价更大?
5 12 18
2.相对法——每个字段没有固定的长度,而是用特 殊的字符分隔开
LI? MING? MALE? 1967#
问题:字段中也需要用到这些分隔符时,如何进行 表示?
3.计数法——每个字段的开始加上表示该字段长度 的字段
02LI04MING04MALE041967
问题:计数法对字段的实际长度有什么要求?
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
索引法示例:
原始数据 SHOP# 0001 0002 0003 0004 0005 CITY Nanjing Nanjing Nanjing Shanghai Shanghai 压缩数据 SHOP# 0001 0002 0003 0004 0005 CITY CITY表 Beijing Nanjing
1.堆文件
堆 文 件 记录6 记录5 记录4 记录3 记录2 记录1 记录6

记录1 记录2 …

最简单、最早使用的文 件结构。记录按其插入 的先后次序存放(所有 记录在物理上不一定相 邻接) 堆文件插入容易、查找 不方便(所提供的唯一 存取路径就是顺序搜索)


适于访问全部或相当多的记录,对于其它类访问效率 较低。(设文件记录数为N,查找某一记录的平均访问 次数为N+1/2) 若堆文件的记录按检索属性排序,可用二分查找法。 (但要以排序为代价)
减少传统文件系统一旦建立以后,数据量比较稳定; 数据库中文件的数据量变化较大。
相关文档
最新文档