《数据库系统原理》_第1页
《数据库系统原理》_第2页
《数据库系统原理》_第3页
《数据库系统原理》_第4页
《数据库系统原理》_第5页
已阅读5页,还剩26页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

自考《数据库系统原理》串讲笔记

第一章数据库基础知识

学习目的与要求:

本章属于基础知识,主要是对一些概念的理解和记忆。没有难点,相对的重点是数据模型的四

个层次,数据库管理系统的功能,数据库系统的全局结构。

考核知识点与考核要求

几个数据库的基本术语:

数据:描述事物的符号记录

数据处理:是指从某些己知的数据出发,推导加工出一些新的数据,这些新的数据又表示了新的

信息。

数据管理:是指数据的收集、整理、组织、存储、维护、检索、传送等操作,这部分操作是数据

处理业务的基本环节,而且是任何数据处理业务中必不可少的共有部分。

数据管理技术:对数据的收集、整理、组织、存储、维护、检索、传送等操作,基本目的就是

从大量的,杂乱无章的,难以理解的数据中筛选出有意义的数据。

数据处理是与数据管理相联系的,数据管理技术的优劣,将直接影响数据处理的效率。

1.人工管理阶段(20世纪50年代中期以前)

1)数据不保存在机器中;

2)没有专用软件对数据进行管理;

3)只有程序的概念,没有文件的概念;

4)数据面向程序。

2.文件系统阶段特点与缺陷(20世纪50年代后期至60年代中期)

1)数据可长期保存在磁盘上;

2)数据的逻辑结构与物理结构有了区别;

3)文件组织呈现多样化;

4)数据不再属于某个特定程序,可以重复使用;

5)对数据的操作以记录为单位。

文件系统三个缺陷:

1)数据冗余性

2)数据不一致性

3)数据联系弱

3.数据库阶段(20世纪60年代后~至今)

数据管理技术进入数据库阶段的标志是20世纪60年代末三件大事:

1)1968年美国IBM公司推出层次模型的IMS系统;

2)1969年美国CODASYL组织发布了DBTG报告。总结了当时各式各样的数据库,提出网状模

型,尔后于1971年4月正式通过。

数据库管理阶段特点:

1)采用数据模型表示复杂的数据结构:

2)有较高的数据独立性;

3)数据库系统为用户提供了方便的用户接口。

4)数据库系统提供以下四个方面的数据控制功能:

①数据库的恢复;

②数据库的并发控制;

③数据库的完整性;

©数据库的安全性;

5)增加了系统的灵活性。

增加了系统的灵活性对数据的操作不一定以记录为单位,可以以数据项为单位。

数据库技术中的四个名词:DB、DBMS、DBS、数据库技术。其概念是不同的,要分清。

DB:数据库(Database)长期存储在计算机内、有组织的、统一管理的相关数据的集合。

DBMS:数据库管理系统(DatabaseManagementSystem),DBMS是位于用户与操作系统之间的一层

数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控

制。DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型、面向对象型DBMS。

DBS:数据库系统(DatabaseSystem),DBS是实现有组织地、动态地存储大量关联数据,方便多用

户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。

数据库技术:是一门研究数据库结构、存储、管理和使用的一门软件学科。

4.高级数据库阶段:

1)面向对象的概念建模

2)开放数据库互连技术

在数据处理中,数据描述将涉及不同的范畴。从事物的特性到计算机中的具体表示,数据描述经历

了三个阶段-----概念设计、逻辑设计和物理设计。

1.概念设计中的的数据描述

1)实体

2)实体集

3)属性

4)实体标识符

2.逻辑设计中的数据描述

1)字段

2)记录

3)文件

4)关键码

3.物理设计中的数据描述

物理存储介质层次

1)高速缓冲存储器

2)主存储器

3)快擦写存储器

4)磁盘存储器

5)光盘存储器

6)磁带

物理存储中的数据描述

位、字节、字、块、桶和卷

4.数据联系的描述

联系及元数定义:

二元联系有以下三种类型:

1:1联系:如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系,反之亦

然,好么实体集E1对E2的联系称为“一对一联系”,记为“1:1”。

1:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,而

E2中每个实体至多和E1中的一个实体有联系,那么E1对E2的联系是“一对多联系”,记为“1:

N”。

M:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,反

之亦然,那么E1对E2的联系是“多对多联系”,记为“M:N”。

1.数据抽象的过程

根据抽象的级别定义了四种模型:

1)概念数据模型

2)逻辑数据模型

3)外部数据模型

4)内部数据模型

2.概念模型

1)四种模型中,概念模型的抽象级别最高。

2)概念模型的特点:(P12)

3.逻辑模型

逻辑模型的特点:(P13)

⑴~(4)

逻辑模型的分类:

1)层次模型

2)网状模型

3)关系模型

三种逻辑数据模型的比较?如P17图

4.外部模型

外部模型的特点:(P17)

从整个系统考察,外部模型的优点。

5.内部模型

是数据库最底的抽象,它描述数据在磁盘或磁带上的存储方式、存取设备和存取方法。

6.三层模式和两级映象

三层模式体系结构

1)外模式:是用户与数据库系统的接口,是用户用到的那部分数据的描述。

2)逻辑模式:是数据库中全部数据的整体逻辑结构的描述。

3)内模式:是数据库在物理存储方面的描述,定义所有内部记录类型、索引和文件的组织方

式,以及数据控制方面的细节.

两级映象

外模式/逻辑模式映象:用于定义概念模式和内模式之间的对应性。一般在内模式中描述。

逻辑模式/内模式映象:用于定义外模式和概念模式间的对应性。一般在外模式中描述。

7.高度的数据独立性

什么叫数据独立性?

是指应用程序和数据库的数据结构之间相互独立,不受影响。在修改数据结构时,尽可能不修

改应用程序,则称系统达到了数据独立性目标。

数据独立性分为物理数据独立性和逻辑数据独立性:

物理数据独立性:修改内模式时尽量不影响概念模式及外模式,则达到物理数据独立性。

逻辑数据独立性:修改概念模式时尽量不影响外模式和应用程序。

数据库管理系统的主要任务是完成用户对数据库的存取请求,即检索、插入、更新或删除等操

作。

DBMS的目标:用户界面友好、功能完善、结构清晰、高效率、开放性

1)数据库的定义功能

2)数据库的操纵功能

3)数据库的保护功能(数据库恢复、数据库并发控制、数据库完整性和数据库安全性)

4)数据库的维护功能

5)数据字典

2.数据库管理员定义及职责。(素质+职责)

第二章数据库设计和ER模型

学习目的与要求:

本章总的目的要求是了解和掌握数据库应用系统设计的全过程。首先掌握ER模型和关系模型的

基本概念,然后掌握概念设计中ER模型的设计方法,逻辑设计中ER模型向关系模型转换方法。

考核知识点与考核要求

从软件生存期谈起

软件生存期:是指从软件的规划、研制、实现、投入运行后的维护、直到它被新的软件所取代

而停止使用的整个期间。它包括六个阶段:(规需设编试运维)

(1)规划阶段

(2)需求分析阶段

(3)设计阶段

(4)程序编制阶段

(5)调试阶段

(6)运行维护阶段

1.什么叫数据库系统生存期?

我们把数据库应用系统从开始规划、设计、实现、维护到最后被新的系统取代而停止使用的整

个期间,称为数据库系统生存期。

2.这个生存期一般可划分成以下七个阶段:

规划、需求分析、概念设计、逻辑设计、物理设计、实现、运行维护.

2.2ER模型的基本概念

实体、联系和属性

2.属性的分类(简单属性和复合属性、单值属性和多值属性、存储属性和派生属性)

3.联系的设计

(分裂、合并和增删)

5.采用ER模型的数据库概念设计步骤

采用ER方法进行数据库概念设计分成三步进行:

首先设计局部ER模式

然后把各局部ER模式综合成全局ER模式

最后对全局ER模式进行优化

1.关系模型定义:用二维表格结构表示实体集、外键表示实体间联系的数据模型称为关系模型。

2.基本术语有:字段(属性)、字段值(属性值)、记录(元组)、二维表格(元组集合、关系或实例)。

在这里,括号中的表述为关系模型中的术语。它与表格中术语可以一一对应。还有,关系中属性个

数称为元数,元组个数为基数。

3.键:由一个或几个属性组成。(注意键不一定是唯一的一个属性)。

1)超键:在关系中能唯一标识元组的属性集称为关系模式的超键。(注意,超键也是一个属性集,

不一定只是一个属性)

2)候选键:不含有多余属性的超键称为候选键。

3)主键:用户选作元组标识的一个候选键为主键。

4)外键:某个关系的主键相应的属性在另一关系中出现,此时该主键在就是另一关系的外键,

如有两个关系S和SC,其中S#是关系S的主键,相应的属性S#在关系SC中也出现,此时S#就是关

系SC的外键。

4.关系的定义和性质

1)关系定义:关系是一个属性数目相同的元组的集合。

2)关系性质(p53)

5.三类完整性规则

1)实体完整性规则:要求关系中组成主键的属性上不能有空值。

2)参照完整性规则:要求不引用不存在的实体。

3)用户定义完整性规则;由具体应用环境决定,系统提供定义和检验这类完整性的机制。

E-R模型可以向现有的各种数据库模型转换,对不同的数据库模型有不同的转换规则。这里只讨论

E-R模型向关系模型的转换方法。

(1)实体类型的转换

将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实体标识符即为关系的键。

(2)联系类型的转换

1)实体间的联系是1:1

可以在两个实体类型转换成两个关系模式中的任意一个关系模式的属性中加入另一个关系模式

的键和联系类型的属性。

2)如实体间的联系是1:N

则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的

属性。

3)如实体间的联系是M:N

则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两

端实体键的组合。

以上各转换规则,给出了一般情况下E-R模型向关系模型的转换方法。但在实际应用中往往还需要

根具实际情况进行具体处理。

下面以图书借阅系统的E-R模型转换为关系模型为例。

该例中,由于允许同一本书在不同的时间借给多个读者,特别是一个读者在不同的时间可以借同一

本书。因而,在多对多联系“借阅”转换为关系模式时,仅有读者的编号和图书的编号是不能构成

码的。

例如:

(0406010,,2006-10-10:10:10,2007-02-20:3:00)(0406010,,2007-5-26:4:00,NULL)

说明,按照上述介绍的转换方法得到的关系模型不一定是最好的。实际应用中,往往还要对得到的

关系模型进行规范化。

实例分析,同学们多看书!

1.库存管理系统的ER模型及转换

2.人事管理信息系统的ER模型

3.住院管理信息系统的ER模型

4.公司车队信息系统的ER模型

更多优质自考资料尽在百度贴吧自考乐园俱乐部

()欢迎”加入…欢迎”交流…止不住的惊喜等着你....

第三章关系模式设计理论

学习目的与要求:

本章特点是理论性较强,学习者应从概念着手,搞清概念间的联系和作用。

本章总的要求是:r解关系数据库规范化理论及其在数据库设计中的作用。

本章的重点是函数依赖、无损分解、保持依赖和范式。掌握这些概念并能运用它们分析模式分

解的特点。

考核知识点与考核要求

关系模式的设计准则(简单应用)

函数依赖(FD)(简单应用)

关系模式的分解特性(简单应用)

范式

INF、2NF、3NF(简单应用)BCNF(领会)

分解成BCNF模式集的“分解算法”(识记)

分解成3NF模式集的“合成算法”(综合应用)

模式设计方法小结(领会)

多值依赖和第四范式(识记)

1.关系模式的冗余和异常问题

1)数据冗余

2)操作异常(修改异常、插入异常和删除异常)

2.关系模式的非形式化设计准则

1)关系模式的设计应尽可能只包含有直接联系的属性,不包括有间接联系的属性

2)关系模式的设计应尽可能使得相应关系中不出现插入、删除和修改异常。

3)关系模式的设计应尽可能使得相应关系中避免放置经常为空值的属性。

4)关系模式的设计应尽可能使得关系的等值连接在主键和外键的属性上进行,并且保证连接

以后不会生成额外的元组。

1.函数依赖的定义

设有关系模式R(A1,A2,...An)或简记为R(U),X,Y是U的子集,r是R的任一具体关系,如

果对r的任意两个元组tl,t2,由tl[X]=t2[X]导致tl[Y]=t2[Y],则称X函数决定Y,或Y函数依赖

于X,记为XfY。X-Y为模式R的一个函数依赖。

这个定义可以这样理解:有一张设计好的二维表,X,Y是表的某些列(可以是一列,也可以是

多列),若在表中的第tl行,和第t2行上的X值相等,那么必有tl行和t2行上的Y值也相等,这

就是说Y函数依赖于X。

2.函数依赖的逻辑蕴涵

设F是关系模式R的一个函数依赖集,X,Y是R的属性子集,如果从F中的函数依赖能够推出X

-Y,则称F逻辑蕴涵X-Y,记为F|=XfY。

而函数依赖的闭包F+是指被F逻辑蕴涵的函数依赖的全体构成的集合。

3.键和FD的关系

键是唯一标识实体的属性集。对于键和函数依赖的关系:有两个条件:设关系模式

R(Al,A2...An),F是R上的函数依赖集,X是R的一个子集:

laX-AlA2...AnGF+(它的意思是X能够决定唯一的一个元组)

2a不存在X的真子集Y,使得Y也能决定唯一的一个元组,则X就是R的一个候选键。(它的意

思是X能决定唯一的一个元组但又没有多余的属性集)

包含在任何一个候选键中的属性称为主属性,不包含在任何键中的属性为非主属性(非键属性),

(注意)主属性应当包含在候选键中。

4.函数依赖(FD)的推理规则

前面我们举的例子中是以实际经验来确定一个函数依赖的逻辑蕴涵,但是我们需要一个推理规

则才能完全确定F或F+的所有函数依赖。

设有关系模式R(U),X,Y,Z,W均是U的子集,F是R上只涉及到U中属性的函数依赖集,推

理规则如下:

Ala自反性:如果YXU,则X-Y在R上成立。

A2a增广性:如果X-Y为F所蕴涵,ZU,则XZ-YZ在R上成立•(XZ表示XUZ,下同)

A3a传递性:如果X-Y和Y-Z在R上成立,则XfZ在R上成立。

A4a合并性:如果X-Y和X-Z成立,那么X-YZ成立。

A6a分解性:如果X-Y和ZY成立,那么X-Z成立。

A5a伪传性:如果X-Y和WY-Z成立,那么WX-Z成立。

A7a复合性:{XfY,WfZ}=XW-YZ。

A8a通用一致性定理:{X-Y,WfZ}|=xU(X-Y)-YZ。

5.函数依赖推理规则的完备性

函数依赖推理规则系统(自反性、增广性和传递性)是完备的。由推理规则的完备性可得到两个

重要结论:

la属性集X+中的每个属性A,都有X-A被F逻辑蕴涵,即X+是所有由F逻辑蕴含X-A的

属性A的集合。

2aF+是所有利用Amstrong推理规则从F导出的函数依赖的集合。

6.函数依赖集的等价和覆盖

在关系模式R(U)上的两个函数依赖集F和G,如果满足F+=G+,则称F和G是等价的,

称F和G等价也称F覆盖G或G覆盖F。

每个函数依赖集F都可以被一个右部只有单属性的函数依赖集G所覆盖。

如果函数依赖集合F满足:

(DF中每一个函数依赖的右部都是单属性;

(2)F中的任一函数依赖X-A,其F-{X—A}是不等价的;

(3)F中的任一函数依赖X-A,Z为X的子集。(F-{XfA})U{ZfA}与F不等价。

则称F为最小函数依赖集合。

如果函数依赖集F和G等价,并且G是最小集,那么称G是F的一个最小覆盖。

这一段并不要求掌握最小集的求法,但是应当通过其求法理解最小集的概念。

L模式分解中存在的问题

模式分解

就是将一个泛关系模式R分解成数据库模式P,以P代替R的过程。它不仅仅是属性集合的

分解,它是对关系模式上的函数依赖集、以及关系模式的当前值分解的具体表现。

分解一个模式有很多方法,但是有的分解会出现失去函数依赖、或出现插入、删除异常等情况,

而有的分解则不出现相关问题。

衡量一个分解的标准有三种:分解具有无损联接;分解要保持函数依赖;分解既要保持依赖,

又要具有无损联接。

那么什么是无损联接呢?什么又是保持依赖?

2.无损联接的定义和性质

设R是一关系模式,分解成P={R1,R2,...,Rk},F是R上的一个函数依赖集。无损联接就是

指R中每一个满足F的关系r(也就是一个关系实例)都有r=nRI(r)IX|nR2(r)...|X|nR3(r),

即r为它在Ri上的投影的自然联接。

最简单的理解,也就是说,分解后的关系自然连接后完全等于分解前的关系,则这个分解相

对于F是无损联接分解。

设R的分解为P={R1,R2},F为R所满足的函数依赖集,则分解P具有无损联接性的充分必要条件是:

RinR2-(R1-R2)

RinR2f(R2-R1)

也就是说,分解后的两个模式的交能决定这两个模式的差集,即RI、R2的公共属性能够函数决

定R1或R2中的其他属性,这样的分解就必定是无损联接分解。

3.保持函数依赖的分解

在分解过程中,要求模式分解的无损联接是必要的,只有无损联接分解才能保证任何一个关系

能由它的那些投影进行自然联接得到恢复。

同时,分解关系模式时还应保证关系模式的函数依赖集在分解后仍在数据库模式中保持不变,

这就是保持函数依赖的问题。也就是所有分解出的模式所满足的函数依赖的全体应当等价于原模式

的函数依赖集。只有这样才能确保整个数据库中数据的语义完整性不受破坏。

1NF:第一范式

即关系模式中的属性的值域中每一个值都是不可再分解的值。如果某个数据库模式都是第一范

式的,则称该数据库模式是属于第一范式的数据库模式。

2NF;第二范式

如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键,则称

为第二范式模式。

非主属性、完全函数依赖、候选键

三个名词的含义。

候选键就是指可以唯一决定关系模式R中某元组值且不含有多余属性的属性集。

非主属性也就是非键属性,指关系模式R中不包含在任何建中的属性。

设有函数依赖W-A,若存在XUW,有X-A成立,那么称W-A是局部依赖,否则就称W-A是完

全函数依赖。

在分析是否为第2范式时,应首先确定候选键,然后把关系模式中的非主属性与键的依赖关系进行

考察,是否都为完全函数依赖,如是,则此关系模式为2NF。如果数据库模式中每个关系模式都是

2NF的,则此数据库模式属于2NF的数据库模式。

3NF:第三范式

如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选键,则称R为第三范式

的模式。

这里首先要了解传递依赖的含义:在关系模式中,如果Y-X,X-A,且X不决定Y和A不属于

X,那么Y-A是传递依赖。

注意的是,这里要求非主属性都不传递依赖于候选键。

BCNF:

这个范式和第三范式有联系,它是3NF的改进形式。若关系模式R是第一范式,且每个属性都

不传递依赖于R的候选键。这种关系模式就是BCNF模式。

纵观四种范式,可以发现它们之间存在如下关系:

5.分解成BCNF模式集的算法

对于任一关系模式,可找到一个分解达到3NF,且具有无损联接和保持函数依赖性。而对于BCNF

分解,则可以保证无损联接但不一定能保证保持函数依赖集。

无损联接分解成BCNF模式集的算法:

⑴置初值P={R};

(2)如果P中所有关系模式都是BCNF,则转(4);

(3)如果P中有一个关系模式S不是BCNF,则S中必能找到一个函数依赖集X-A有X不是S的

键,且A不属于X,设SI=XA,S2=S-A,用分解SI,S2代替S,转⑵;

(4)分解结束。输出P。

在这个过程中,重点在于(3)步,判断哪个关系不是BCNF,并找到X和A。这里,S的判断用BCNF

的定义,而X不是S的键则依靠分析。

6.分解成3NF模式集

算法:

(1)如果R中的某些属性在F的所有依赖的左边和右边都不出现,那么这些属性可以从R中分出

去,单独构成一个关系模式。

(2)如果F中有一个依赖X-A有XA-R,则P={R},转(4)

(3)对于F中每一个X-A,构成一个关系模式XA,如果F有有X-A1,X-A2...X-An,

则可以用模式XA1A2...An代替n个模式XA1,XA2...XAn;

(4)w分解结束,输入P。

这个过程的重点是这一句“对于F中每一个X-A,构成一个关系模式XA”,这使我们的分解十

分容易,然后依据合并律(合并律:如果X-Y和X-Z成立,那么X-YZ成立)将有关模式合并即得

到所需3NF模式。

7.模式设计方法的原则

关系模式R相对于函数依赖集F分解成数据库模式P={R1,R2...Rk},一般具有下面四项

特性:

P中每个关系模式Ri上应具有某种范式性质(3NF或BCNF)

无损联接性。

保持函数依赖集。

最小性,即P中模式个数应最少且模式中属性总数应最少。

一个好的模式设计方法应符合下列三条原则:

表达性

分离性

最小冗余性

8.多值依赖与第四范式(4NF)

例:

学校中某一门课程由多个教师讲授,他们使用相同的一套参考书。

关系模式Teaching(C,T,B)

课程C、教师T和参考书B

多值依赖与第四范式

TeachingSBCNF:

Teach具有唯一候选码(C,T,B),即全码

Teaching模式中存在的问题

(1)数据冗余度大:有多少名任课教师,参考书就要存储多少次。

(2)插入操作复杂:当某一课程增加一名任课教师时,该课程有多少本参照书,就必须插入多少个元

组。

例如物理课增加一名教师刘关,需要插入两个元组:

(物理,刘关,普通物理学)

(物理,刘关,光学原理)

(3)删除操作复杂:某一门课要去掉一本参考书,该课程有多少名教师,就必须删除多少个元组。

(4)修改操作复杂:某一门课要修改一本参考书,该课程有多少名教师,就必须修改多少个元

组。

产生原因

存在多值依赖。

1)多值依赖

设R(U)是一个属性集U上的一个关系模式,X、Y和Z是U的子集,并且Z=U—X—Y,多值

依赖X--Y成立当且仅当对R的任一关系r,r在(X,Z)上的每个值对应一组Y的值,这组值仅

仅决定于X值而与Z值无关。

例Teaching(C,T,B)

对于C的每一个值,T有一组值与之对应,而不论B取何值。

2)第四范式(4NF)

关系模式R<U,F>G1NF,如果对于R的每个非平凡多值依赖Xf—Y(Y土X),X都含有候选码,

则RG4NF。

如果Re4NF,则ReBCNF

不允许有非平凡且非函数依赖的多值依赖

允许的是函数依赖(是非平凡多值依赖)

第四章关系运算

学习目的与要求:

本章总的要求是:深刻理解关系模型的运算理论,了解查询优化的意义和启发式优化算法。

本章的重点是关系代数运算,应熟练掌握。关系演算是本章的难点。

考核知识点和考核要求

关系模型有三个重要组成部分:

1)数据结构

2)数据操纵

3)数据完整性规则

关系查询语言根据其理论基础的不同分成两类:

1)关系代数语言

2)关系演算语言

L关系代数的五个基本操作:并、差、笛卡尔积、投影和选择。

并(U):两个关系需有相同的关系模式,并的对象是元组,由两个关系所有元组构成。

差(-):同样,两个关系有相同的模式,R和S的差是由属于R但不属于S的元组构成的集合。

笛卡儿积(X):对于两个关系作运算,歹I」:(n+m)列的元组的集合,元组的前n列是关系R

的一个元组后m列是关系S的一个元组,

行:klXk2个元组。

投影(。):对关系进行垂直分割,消去某些列,并重新安排列的顺序。

选择(口):根据某些条件关系作水平分割,即选择符合条件的元组。

2.关系代数的四个组合操作:交、联接、自然联接和除法

交(Cl):R和S的交是由既属于R又属于S的元组构成的集合。

联接包括0联接和F联接,是选择RXS中满足i0(r+j)或F条件的元组构成的集合,特别注

意等值联接(9为等号“=”)。

自然联接(R|X|S):在RXS中,选择R和S公共属性值均相等的元组,并去掉RXS中重复的公

共属性列。如果两个关系没有公共属性,则自然联接就转化为笛卡尔积。

除法(土):首先除法的结果中元数为两个元数的差,可以直接用观察法来得到结果,把S看作

一个块,拿到R中去和相同属性集中的元组作比较,如果有相同的块,且除去此块后留下的相应元

组均相同,那么可以得到一条元组,所有这些元组的集合就是除法的结果。

对于上述的五个基本操作和组合操作,应当从实际运算方面进行理解和运用,对其形式定义可不必

深究。注意课本上的例子。

关系代数运算的三个要素:

运算对象:关系

运算结果:关系

运算符:四类

集合运算符

将关系看成元组的集合

运算是从关系的“水平”方向即行的角度来进行

专门的关系运算符

不仅涉及行而且涉及列

算术比较符

辅助专门的关系运算符进行操作

逻辑运算符

辅助专门的关系运算符进行操作

广义笛卡尔积(ExtendedCartesianProduct)

R

n目关系,kl个元组

S

m目关系,k2个元组

RXS

列:(n+m)列的元组的集合

元组的前n列是关系R的一个元组

后m列是关系S的一个元组

行:klXk2个元组

RXS={trts|treRAtseS}

选择(Selection)

1)选择又称为限制(Restriction)

2)选择运算符的含义

在关系R中选择满足给定条件的诸元组

oF(R)={t|teRAF(t)='真'}

F:选择条件,是一个逻辑表达式,基本形式为:

J(]XI0Yl[)][63(]X20Y2[)]]•••

0:比较运算符(>,<»W,=或〈>)

XI,Y1等:属性名、常量、简单函数;属性名也可以用它的序号来代替;

0:逻辑运算符(八或V)

[]:表示任选项

-:表示上述格式可以重复下去

3)选择运算是从行的角度进行的运算

4)举例

设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC。

[例1]查询信息系(IS系)全体学生

oSdept='IS'(Student)

或。5='IS'(Student)

结果:

[例2]查询年龄小于20岁的学生

oSage<20(Student)

或。4<20(Student)

结果:

投影(Projection)

1)投影运算符的含义

从R中选择出若干属性列组成新的关系

JtA(R)={t[A]|teR}

A:R中的属性列

2)投影操作主要是从列的角度进行运算

但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)

3)举例

[例3]查询学生的姓名和所在系

即求Student关系上学生姓名和所在系两个属性上的投影

JtSname,Sdept(Student)

或“2,5(Student)

结果:

[例4]查询学生关系Student中都有哪些系

JtSdept(Student)

结果:

连接(Join)

1)连接也称为0连接

2)连接运算的含义

从两个关系的笛卡尔积中选取属性间满足一定条件的元组

RS={|treRAtseSAtr[A]0ts[B]}

A和B:分别为R和S上度数相等且可比的属性组

0:比较运算符

连接运算从R和S的广义笛卡尔积RXS中选取(R关系)在A属性组上的值与(S关系)在B

属性组上值满足比较关系的元组。

3)两类常用连接运算

等值连接(equijoin)

什么是等值连接

0为“=”的连接运算称为等值连接

等值连接的含义

从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:

RS={|treRAtseSAtr[A]=ts[B]}

自然连接(Naturaljoin)

什么是自然连接

自然连接是一种特殊的等值连接

两个关系中进行比较的分量必须是相同的属性组

在结果中把重复的属性列去掉

自然连接的含义

更多优质自考资料尽在百度贴吧自考乐园俱乐部

”加入…欢迎・交流…止不住的惊喜等着你....

R和S具有相同的属性组B

RS={|treRAtseSAtr[B]=ts[B]}

4)一般的连接操作是从行的角度进行运算。

自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。

5)举例

[例5]

外连接

例:列出老师的有关信息,包括姓名、工资、所教授的课程

LIP#,PN,SAL,Ctt,CN((PR0F)PCC)

外连接

为避免自然连接时因失配而发生的信息丢失,可以假定往参与连接的一方表中附加一个取值全

为空值的行,它和参与连接的另一方表中的任何一个未匹配上的元组都能匹配,称之为外连接

外连接=自然连接+失配的元组

外连接的形式:左外连接、右外连接、全外连接

重要内容分析

1.(1)一般规则

对于只涉及到选择、投影、联接的查询可用下列表达式表示:

Ji…(0...(RXS))或者”…(。…IRK))

对于否定的操作,一般要用差操作表示,例如“检索不学C2课的学生姓名”。

对于检索具有“全部”特征的操作,一般要用除法操作表示,例如“检索学习全部课程的学生

姓名”。

(2)“检索不学C2课的学生姓名”,决不能用下式表示:

nSNAME,AGE(oC#W'C2'(S«SC))

一定要用“差”的形式:

orSNAME,AGE(S)-nSNAME,AGE(。C#='C2'(SKC))

(3)“检索学习全部课程的学生学号”,要用nS#,C#(SC)+nC#(C)表示,

而不能写成灭S#(SC-?nC#(O)形式。这是因为一个学生学的课程的成绩可能是不一样的。

2.非过程性语言与过程性语言的区别

编程时必须指出“干什么”及“怎么干”的语言,称为过程性语言;编程时只须指出“干什

么",不必指出“怎么干”的语言,称为非过程性语言。

把数理逻辑的谓词演算引入关系运算中,就可得到以关系演算为基础的运算。关系演算分为元组关

系演算或域关系演算,前者以元组为变量,后者以域为变量。

元组关系演算

形式化定义

{tIp(t)}

表示所有使谓词P为真的元组集合

t为元组变量

如果元组变量前有“全称”(V)或“存在"T)量词,则称其为约束变量,否则称为自由变量。

P是公式

由原子公式和运算符组成

原子公式

sGR

s是关系R中的一个元组

s[x]0u[y]

s[x]与u[y]为元组分量,他们之间满足比较关系。

s[x]0C

分量s[x]与常量C之间满足比较关系。

公式的递归定义

原子公式是公式

如果P是公式,那么rP也是公式

如果Pl,P2是公式,则PlAP2,PlVP2,PlnP2也是公式

如果P(果是公式,R是关系,则玉eR(P(t))和VteR(P(t))也是公式。

公式的等价性

PlAP2<=>-I(-1Plv-IP2)

VteR(P(t))o-i3teR(-1P(t))

Pl=P2=-iPlvP2

表达式的安全性

元组关系演算有可能会产生无限关系,这样的表达式是不安全的。

如{t1(twR)},求所有不在R中的元组

引入公式P的域概念,用dom(P)表示

dom(P)=显式出现在P中的值+在P中出现的关系的元组中出现的值(不必是最小集)

如dom(t-|(teR))是区中出现的所有值的集合

如果出现在表达式{t|P(t)}结果中的所有值均来自dom(P),则称{t|P(t)}是安全的。

示例:

找出工资在800元以上的老师

{t|tePROFAt[SAL]>800}

找出工资在800元以上的老师的姓名

{t3sGPROF(t[PNAME]=s[PNAME]AS[SAL]>800)}

给出计算机系老师的姓名

{t|3UGDEPT(u[DNAME]=“计算机系”A3sePR0F(s[DNO]=u[DN0]At[PNAME]=

s[PNAME]))}

求选修了全部课程的学生号

{t|VueC(BseSC(s[CNO]=u[CN0]At[SNO]=s[SN0]))}

求选修了张军同学所选修的全部课程的学生姓名

V课程,张军选之=>所求同学选之

{t|VUGC(3seSCASWGS(s[CN0]=u[CNO]AW[SN0]=s[SN0]AW[SNAME]="张军”))

元组关系演算与关系代数的等价性

投影

TIA(R)={t|3seR(s[A]=t[A])}

选择

oF(A)(R)={t|teRAF(t[A])}

广义笛卡儿积

R(A)xS(B)={t|3ueR3seS(t[A]=u[A]A

t[B]=s[B])}

RuS={t|teRvteS}

R-S={t|teRA-]teS}

域关系演算

形式化定义

{<xl,x2,•,,,xn>|P(xl,x2,xn)}

xi代表域变量,P为由原子构成的公式

原子公式

<xl,x2,,,,,xn>GR

xi是域变量或域常量

xey

域变量x与y之间满足比较关系0

x0c

域变量X与常量C之间满足比较关系0

示例:

找出工资在800元以上的老师

{<a,b,c,d,e>|<a,b,c,d,e>ePROFAe>800}

找出工资在800元以上的老师的姓名

{<b>|3a,c,d,e(<a,b,c,d,e>ePROFAe>800)}

目的

在关系代数中找一种好的操作步骤,既省空间,查询效率又比较高。

在关系代数中,笛卡儿积和联结运算是最费时间和空间的,在关系很大的时候,必须要考虑怎

样做才能合理的安排,做到省时省力。

一个例子

设关系R和S都是二元关系,属性名分别是A、B和C、D。那么如下查询:

E1=JIA(oB=CAD='99'(RXS))

也可以是

E2=nA(oB=C(RX。D='99'(S))

或E3=nA(RoD='99'(S))

这三个代数表达式的等价的,但是执行的效率不一样。

第一种:先做笛卡儿积。假设每个物理块可以存储R的B1个元组,或者S的B2个元组,R关

系中有nl个元组,S关系中有n2个元组,内存每次只能装载m块数据。

在做联接的时候先把R的第一个m-1块数据装入内存,然后逐个调入S中的数据块;

R中的每个数据块只要进入内存一次,总共需要装入的块数示nl/Bl;

S中的每个数据块需要进入内存(nl/Bl)/(m-1)次,总共需要装入的块数是:

(nl/Bl)(1/(m-1))(n2/B2)

这三个代数表达式的等价的,但是执行的效率不一样。

执行RXS的总装入块数是(nl/Bl)(l+n2/(m-1)/B2)

若nl=n2=10000,B1=B2=5,m=100,那么总的装入块数是42400,若每秒装入20块,需要35分

钟。

耗费时间长,在实际使用中不采用。

这三个代数表达式的等价的,但是执行的效率不一样。

第二种和第三种:先做了选择,装入的块数为nl/Bl+n2/B2,大约需要装入4000块,耗费时间

3分多钟。

对于S来说,元组并不是全部进入内存,而且只是进入一次,所以速度快。

1.优化的一般策略

我们所说的优化和存储没有关系,主要是如何来安排操作的顺序,节省时间和空间的消费优化

的一般技术:

在关系代数表达式中尽可能早地执行选择操作。

把笛卡儿积和其后的选择操作合并成F联接运算。

同时计算一连串的选择和投影操作,避免分开运算造成多次扫描文件。

2.关系代数表达式的优化算法

对一个关系代数表达式进行语法分析可以得

到一棵语法树,叶子式关系,非叶子结点式关

系代数操作。

输入:一个关系代数表达式的语法树。

输出:计算表达式的一个优化程序。

方法:依次执行下面的每一步。

(1)使用等价变换规则4将每个形为。FIA…AFn(E)的子表达式转换成串接形式:

oF1(••,(oFn(E))…)

(2)对每个选择操作,尽可能把选择操作移近树的叶端(尽可能早的实行选择操作)。

(3)对每个投影操作,尽可能把投影操作移近树的叶端。

(4)把选择和投影合并成单个选择、单个投影或一个选择后跟一个投影。

(5)将上述步骤得到的语法树的内结点分组。

(6)生成一个序列,每一组结点的计算是序列中的一步。

见课本例子。

第五章SQL语言

学习目的与要求:

SQL语言是关系数据库的标准语言,是本课程的一个重点。本章总的要求是:全面掌握,深刻

理解。熟练应用。

要求掌握的技能是:SQL定义语句、嵌入式SQL语句的应用。

要求熟练掌握的技能是:SQL查询语句、视图、SQL更新语句的应用。

方法:多做题,多上机实践。

考核知识点与考试要求

更多优质自考资料尽在百度贴吧自考乐园俱乐部

()欢迎”加入…欢迎”交流…止不住的惊喜等着你....

SQL数据库的体系结构也是三级结构,但术语与传统关系模型术语不同,在SQL中,关系模式

称为“基本表”,存储模式称为“存储文件",子模式称为"视图",元组称"行",属性称"列"。

SQL数据库体系的结构要点如下:更多优质自考资料尽在百度贴吧自考乐园俱乐部

()欢迎”加入…欢迎”交流…止不住的惊喜等着你....

(D一个SQL数据库是表的汇集。

(2)一个SQL表由行集构成,行是列的序列,每列对应一个数据项。

(3)表或者是基本表,或者是视图。基本表是实际存储在数据库中的表,视图由是由若干基本表

或其他视图构成的表的定义。

(4)一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。存储文

件与物理文件对应。

(5)用户可以用SQL语句对表进行操作,包括视图和基本表。

(6)SQL的用户可以是应用程序,也可以是终端用户。

SQL由四部分组成:

(D数据定义:SQLDDLo定义SQL模式,基本表、视图和索引。

(2)数据操纵:SQLDMLo包括数据查询和数据更新(增、删、改)。

(3)数据控制:包括对基本表和视图的授权、完整性规则的描述,事务控制等。

(4)嵌入式SQL的使用规定。

(1)SQL具有十分灵活和强大的查询功能。

(2)SQL不是一个应用开发语言,它只提供对数据库的操作功能,不能完成屏幕控制、菜单管

理、报表生成等功能。

(3)SQL是国际性标准语言,有利于各种数据库之间交换数据,有利于程序的移植,有利于实

现高度的数据独立性,有利于实现标准化。

(4)SQL的词汇不多,完成核心功能只用了9个英语动词,它的语法结构接近英语,因此容易

学习和使用。

SQL模式的创建可简单理解为建立一个数据库,定义一个存储空间,其句法是:

CREATESCHEMA〈模式名>AUTHORIZATION〈用户名〉

撤消SQL模式的句法为:

DROPSCHEMA〈模式名>[CASCADE|RESTRICT]

方括号中的选项参数CASCADE表示连锁方式,执行时将模式下所有基本表、视图、索引等元素

全部撤消。RESTRICT表示约束式,执行时必须在SQL模式中没有任何下属元素时方可撤消模式。

数值型:包括integer^smallint>real、doubleprecision、float(n),numeric(p,d)

字符串型:char(n)、varchar(n),前者是定长,后者为变长串

位串型:bit(n),bitvarying(n),同上。

时间型:date、time。

3.基本表的创建、修改和撤消

基本表的创建:(可理解为建立表结构)

GREATTABLESQL模式名.基本表名

(列名,类型,

完整性约束.•・)

完整性约束包括主键子句(PRIMARYKEY)、检查子句(CHECK)和外键子句(FOREIGNKEY)«

基本表结构的修改

ALTERTABLE基本表名ADD/DROP(增加/删除)列名类型名(增加时写出)

删除时有子句[CASCADE〔RESTRICT],前者为连锁删除,后者为约束删除,即没有对本列的任何

引用时才能删除。

基本表的撤消

DROPTABLE基本表名[CASCADE|RESTRICT]

4.索引的创建和撤消

创建:CREATE[UNIQUE]INDEX索引名ON基本表名(列名表[ASC|DESfi])

撤消:DROPINDEX索引名

总结:凡创建都用CREATE,删除都用DROP,改变用ALTER,再跟类型和名字,附加子句很容

易了。

SELECT列名表(逗号隔开)FROM基本表或视图序列WHERE条件表达式

在这里,重点要掌握条件表达式中各种运算符的应用,如=,>,<,◊等算术比较运算符、逻辑运

算符AND、OR,NOT、集合成员资格运算符:IN,NOTIN,以及嵌套的SELECT语句的用法要特

别注意理解。针对课本的例题和课后习题进行掌握。

在查询时,SELECT语句可以有多种写法,如联接查询、嵌套查询和使用存在量词的嵌套查询

等。最好都掌握,但是起码应能写出一种正确的查询语句。

SELECT列名表(逗号隔开)

FROM基本表或视图序列

[WHERE条件表达式](此为和条件子句)

[GROUPBY列名序列](分组子句)

[HAVING组条件表达式](组条件子句)

[ORDERBY列名[ASC|DESC]..](排序子句)

这段关于完整句法的内容能够理解也就问题不大了。

这一段内容主要是对SELECT语句进一步使用进行的深入学习,领会下列各种限定的使用目的

和方法。

要求输出表格中不出现重复元组,则在SELECT后加一DISTINCT

SELECT子句中允许出现加减乘除及列名,常数的算术表达式

WHERE子句中可以用BETWEEN...AND...来限定一个值的范围

同一个基本表在SELECT语句中多次引用时可用AS来增加别名

WHERE子句中字符串匹配用LIKE和两个通配符,%和下划线.

查询结果的结构完全一致时可将两个查询进行并(UNION)交(INTERSECT)差(EXCPT)操作

查询空值操作不是用='null',而是用ISNULL来测试.

集合成员资格比较用IN/NOTIN,集合成员算术比较用元组0SOME/ALL

可以用子查询结果取名(表名(列名序列))来作为导出表使用

基本表的自然联接操作是用NATURALINNERJOIN来实现的。

1.数据插入:

INSERTINTO基本表名(列名表)

VALUES(元组值)

INSERTINTO基本表名(列名表)

SELECT查询语句

其中元组值可以连续插入•用查询语句可以按要求插入所需数据。

2.数据删除:

DELETEFROM基本表名[WHERE条件表达式]

3.数据修改:

UPDATE基本表名

SET列名=值表达式,[列名=值表达式...]

[WHERE条件表达式]

1.视图的创建和撤消

创建:CREATEVIEW视图名(列名表)ASSELECT查询语句

撤消:DROPVIEW视图名

2.视图的操作

查询与关系中一致

更新与关系不同

如果视图是从多个使用联接操作导出的,不允许对此视图更新

如果在导出视图的过程中,使用了分组和聚合函数,不允许对此视图更新。

如果视图是从单个关系使用选择、投影操作导出的,并且包含了关系的主健或某个候选健,称

此视图为“行列子集视图”,允许对此视图更新。

CREATEVIEWSMAIL

ASSELECTStt,SNAME,AGE

FROMS

WHERESEX='M'

INSERTINTOS_MALE

VALUES('S28','WU',18)

INSERTINTOS

VALUES('S28','WU',18,'M')

相同

3.视图的优点

使用视图的优点:

视图提供了逻辑数据的独立性

简化了用户观点

用户只需关心视图的内容,而不必关心构成视图的若干关系的联结、投影操作。

能够将对数据库的访问限制在一定范围内,有利于数据安全保护功能。

可针对不同的用户定义不同的视图,在视图种只出现用户需要的数据,系统提供视图让用户使

用。

交互式

嵌入式

为什么要引入嵌入式SQL

SQL语言是非过程性语言

事务处理应用需要高级语言

这两种方式细节上有差别,在程序设计的环境下,SQL语句要做某些必要的扩充。

2.嵌入式SQL的一般形式

为了区分SQL语句与主语言语句,需要:

前缀:EXECSQL

结束标志:随主语言的不同而不同

以C为主语言的嵌入式SQL语句的一般形式

EXECSQL<SQL语句》;

例:EXECSQLDROPTABLEStudent;

以COBOL作为主语言的嵌入式SQL语句的一般形式

EXECSQL<SQL语句>END-EXEC

例:EXECSQLDROPTABLEStudentEND-EXEC

预编译

修改和扩充主语言使之能处理SQL语句。

4.嵌入式SQL语句与主语言之间的通信

将SQL嵌入到高级语言中混合编程,程序中会含

有两种不同计算模型的语句

SQL语句

描述性的面向集合的语句

负责操纵数据库

高级语言语句

过程性的面向记录的语句

负责控制程序流程

5.工作单元之间的通信方式

1)SQL通信区

向主语言传递SQL语句的执行状态信息

主语言能够据此控制程序流程

2)共享变量

主语言向SQL语句提供参数

将SQL语句查询数据库的结果交主语言进一步处理

3)游标

解决集合性操作语言与过程性操作语言的不匹配

6.共享变量

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论