《关系数据库与 SQL 语言》复习资料

更新时间:2024-01-11 08:10:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《关系数据库与 SQL 语言》复习资料

第 1 章 数据库系统概述

1 掌握数据库系统中的几个基本概念:数据库、数据库管理系统、数据库系统、数据模型、关系数据库等。

(1) DB:即数据库(Database),是统一管理的相关数据的集合。 DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。

(2) DBMS:即数据库管理系统(Database Management System),是位于用户与操作系统之间的一层数据管理软件, 为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。 DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型、面向对象型DBMS。 (3) DBS:即数据库系统(Database System),是实现有组织地、动态地存储大量关联数据, 方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。 (4) 数据模型:模型是对现实世界的抽象。在数据库技术中,表示实体类型及实体类型间联系的模型称为“数据模型”。 它可分为两种类型:概念数据模型和结构数据模型。

(5) 关系数据库: 在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。

关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述。关系数据库模式包括:若干域的定义;在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。

2 了解数据管理的发展过程,重点掌握数据库系统的特点、发展阶段,掌握数据库管理系统的主要功能。

(1)数据库管理发展过程:人工管理阶段、文件系统阶段、数据库系统阶段。 (2)数据库系统的特点

数据结构化。采用复杂的数据模型表示数据结构。

数据的共享性高,冗余度低,易扩充。数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充,可以适应各种用户的要求。

1

数据独立性高。有较高的数据独立性(数据结构分成用户的逻辑结构、整体逻辑结构和物理结构三级)

物理独立性:指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。 逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。

数据由DBMS统一管理和控制。 系统提供了四个方面的数据控制功能:数据库的恢复、并发控制、数据完整性和数据安全性, 以保证数据库中数据是安全的、正确的和可靠的。 (3)DBMS的主要功能有: 数据库的定义功能 数据组织、存储和管理 数据库的操纵功能

数据库的事务管理和运行管理

数据库的建立与维护功能 其他功能

3 掌握数据库三级模式结构、优点、数据物理独立性、数据逻辑独立性。

(1)数据库系统的三级模式结构是指数据库系统是由:外模式、模式、内模式三级组成。

数据库系统的三级模式结构

2

模式:模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式。

外模式:是用户与数据库系统的接口,是用户用到的那部分数据的描述。一个数据库可以有多个外模式。

内模式:是数据库在物理存储方面的描述,定义所有的内部记录类型、索引和文件的组成方式, 以及数据控制方面的细节。一个数据库只有一个内模式。 两级映像:外模式/模式映像、模式/内模式映像

模式/内模式映象:这个映象存在于概念级和内部级之间,用于定义概念模式和内模式间的对应性, 即概念记录和内部记录间的对应性。此映象一般在内模式中描述。

外模式/模式映象:这人映象存在于外部级和概念级之间,用于定义外模式和概念模式间的对应性, 即外部记录和概念记录间的对应性。此映象都是在外模式中描述。

物理数据独立性:如果数据库的内模式要进行修改,即数据库的存储设备和存储方法有所变化, 那么模式/内模式映象也要进行相应的修改,使概念模式尽可能保持不变。也就是对内模式的修改尽量不影响概念模式。

逻辑数据独立性:如果数据库的概念模式要进行修改(如增加记录类型或增加数据项), 那么外模式/模式映象也要进行相应的修改,使外模式尽可能保持不变。 也就是对概念模式的修改尽量不影响外模式和应用程序。

4 掌握信息世界中的实体、属性、联系,以及关系数据模型中的关系、属性、元组和键码等基本概念。

实体(entity):是指客观存在可以相互区别的事物。实体可以是具体的对象,如:一个学生,一辆汽车等; 也可以是抽象的事件,如:一次借书、一场足球赛等。

属性(attribute):实体有很多特性,每一个特性称为属性。每个属性有一个值域, 其类型可以是整数型、实数型、字符串型。比如,学生(实体)有学号、姓名、年龄、性别等属性, 相应值域为字符、字符串、整数和字符串型。 联系:指实体集之间的联系。

1:1联系:如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系,反之亦然, 那么实体集E1对E2的联系称为“一对一联系”,记为“1:1”。 例: 一个班级只有一个正班长

一个班长只在一个班中任职

1:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系, 而E2中每个实体至多和E1中的一个实体有联系,那么E1对E2的联系是“一对多联系”,记为“1:N”。 例: 一个班级中有若干名学生,每个学生只在一个班级中学习

3

M:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系, 反之亦然,那么E1对E2的联系是“多对多联系”,记为“M:N”。 例: 课程与学生之间的联系:

一门课程同时有若干个学生选修 一个学生可以同时选修多门课程

关系或表:关系模型中数据的逻辑结构是一张二维表,它由行和列组成。 属性:在关系模型中,字段称为属性。

元组:在关系中,记录称为元组。元组对应表中的一行;表示一个实体。

码或候选码:如果关系的某一属性或属性组能惟一地标识一个元组(记录),而其任何真子集无此性质,则称这个属性或属性组为该关系的码或候选码。

主键或主码:若一个关系有多个候选码,则选定其中一个为主键或主码。

一、单项选择题

1.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段中,数据独立性最高的是 阶段。 A.数据库系统 B.文件系统 C.人工管理 D.数据项管理

2.数据库系统与文件系统的主要区别是 。 A.数据库系统复杂,而文件系统简单

B.文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决 C.文件系统只能管理程序文件,而数据库系统能够管理各种类型的文件 D.文件系统管理的数据量较少,而数据库系统可以管理庞大的数据量 3.数据库的概念模型独立于 。 A.具体的机器和DBMS B.E-R图 C.信息世界 D.现实世界

4.数据库是在计算机系统中按照一定的数据模型组织、存储和应用的 ① ,支持数据库各种操作的软件系统叫 ② ,由计算机、操作系统、DBMS、数据库、应用程序及用户等组成的一个整体叫做 ③ 。

① A.文件的集合 B.数据的集合 C.命令的集合 D.程序的集合 ② A.命令系统 B.数据库管理系统 C.数据库系统 D.操作系统 ③ A.文件系统 B.数据库系统 C.软件系统 D.数据库管理系统 5.数据库的基本特点是 。

A.(1)数据可以共享(或数据结构化) (2)数据独立性 (3)数据冗余大,易移植 (4)统一管理和控制 B.(1)数据可以共享(或数据结构化) (2)数据独立性 (3)数据冗余小,易扩充 (4)统一管理和控制

4

C.(1)数据可以共享(或数据结构化) (2)数据互换性 (3)数据冗余小,易扩充 (4)统一管理和控制 D.(1)数据非结构化 (2)数据独立性 (3)数据冗余小,易扩充 (4)统一管理和控制

6.数据库具有 ① 、最小的 ② 和较高的 ③ 。 ① A.程序结构化 B.数据结构化 C.程序标准化 D.数据模块化 ② A.冗余度 B.存储量 C.完整性 D.有效性

③ A.程序与数据可靠性 B.程序与数据完整性 C.程序与数据独立性 D.程序与数据一致性 7.在数据库中,下列说法 是不正确的。 A.数据库避免了一切数据的重复

B.若系统是完全可以控制的,则系统可确保更新时的一致性 C.数据库中的数据可以共享 D.数据库减少了数据冗余

8. 是存储在计算机内有结构的数据的集合。 A.数据库系统 B.数据库

C.数据库管理系统 D.数据结构

9.在数据库中存储的是 。 A.数据 B.数据模型 C.数据以及数据之间的联系 D.信息

10.数据库中,数据的物理独立性是指 。 A.数据库与数据库管理系统的相互独立 B.用户程序与DBMS的相互独立

C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的 D.应用程序与数据库中数据的逻辑结构相互独立

11.数据库的特点之一是数据的共享,严格地讲,这里的数据共享是指 。 A.同一个应用中的多个程序共享一个数据集合 B.多个用户、同一种语言共享数据 C.多个用户共享一个数据文件

D.多种应用、多种语言、多个用户相互覆盖地使用数据集合 12.数据库系统的核心是 。 A.数据库 B.数据库管理系统 C.数据模型 D.软件工具

13.下述关于数据库系统的正确叙述是 。 A.数据库系统减少了数据冗余 B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型一致 D.数据库系统比文件系统能管理更多的数据

14.下述关于数据库系统的正确叙述是 。 A.数据库中只存在数据项之间的联系

B.数据库的数据项之间和记录之间都存在联系 C.数据库的数据项之间无联系,记录之间存在联系

D.数据库的数据项之间和记录之间都不存在联系 15.相对于其他数据管理技术,数据库系统有 ① 、减少数据冗余、保持数据的一致性、

5

② 和 ③ 的特点。

①A.数据共享 B.数据模块化 C.数据结构化 D.数据共享 ②A.数据结构化 B.数据无独立性 C.数据统一管理 D.数据有独立性 ③A.使用专用文件 B.不使用专用文件

C.数据没有安全与完整性保障 D.数据有安全与完整性保障

二、填空题

1.经过处理和加工提炼而用于决策或其他应用活动的数据称为 。 2.数据管理技术经历了 ① 、 ② 和 ③ 三个阶段。

3.数据库系统一般是由 ① 、 ② 、 ③ 、 ④ 和 ⑤ 组成。

4.数据库是长期存储在计算机内、有 ① 的、可 ② 的数据集合。 5.DBMS是指 ① 它是位于 ② 和 ③ 之间的一层管理软件。 6.DBMS管理的是 的数据。

7.数据库管理系统的主要功能有 ① 、 ② 、数据库的运行管理和数据库的建立以及维护等4个方面。

8.数据库管理系统包含的主要程序有 ① 、 ② 和 ③ 。

9.数据库语言包括 ① 和 ② 两大部分,前者负责描述和定义数据库的各种特性,后者用于说明对数据进行的各种操作。 10.指出下列缩写的含义:

(1)DML: ① (2)DBMS: ② (3)DDL: ③ (4)DBS: ④ (5)SQL: ⑤ (6)DB: ⑥ (7)DD: ⑦ (8)DBA: ⑧ (9)SDDL: ⑨ (10)PDDL: ⑩

第 2 章 关系模型

1 掌握关系、关系性质、候选键、外部键、主属性、非主属性、关系模型完整性、关系模式、关系数据库等基本概念。

(1)关系:关系模型中数据的逻辑结构是一张二维表,它由行和列组成。 (2)关系性质:P12

6

1)关系中每一个属性值都是不可分解的。

2)关系中不允许出现相同的元组(没有重复元组)。

3)由于关系是一个集合,因此不考虑元组间的顺序,即没有行序。 4)元组中,属性在理论上也是无序的,但在使用时按习惯考虑列的顺序。 5)列是同质的,即每一列中是同一类型的数据,取自同一个值域。 6)每一列称为属性,要给予不同的属性名。

(3)码或候选码:如果关系的某一属性或属性组能惟一地标识一个元组(记录),而其任何真子集无此性质,则称这个属性或属性组为该关系的码或候选码。 (4)主键:用户选作元组标识的一个候选键为主键。

(5)外键:某个关系的主键相应的属性在另一关系中出现,此时该主键就是另一关系的外键, 如有两个关系S和SC,其中S#是关系S的主键,相应的属性S#在关系SC中也出现,此时S#就是关系SC的外键。

(6) 主属性:候选码的诸属性称为主属性。

(7) 非主属性( Non-Prime attribute):不包含在任何侯选码中的属性称为非主属性( Non-Prime attribute)或非码属性(Non-key attribute)。 (8)关系的三类完整性约束

实体完整性:若属性A是基本关系R的主属性,则属性A不能取空值 参照完整性:

若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为: 或者取空值(F的每个属性值均为空值) 或者等于S中某个元组的主码值 用户定义的完整性:

(9)关系模式可以形式化地表示为:

R(U,D,DOM,F) R 关系名

U 组成该关系的属性名集合 D 属性组U中属性所来自的域 DOM 属性向域的映象集合

F 属性间的数据依赖关系集合

(10)关系数据库:在一个给定的应用领域中,所有关系的集合构成一个关系数据库。 2 掌握关系代数及其运算:并、差、交、笛卡尔积、投影、选择、自然连接、 θ 连接等。

7

R和S ? 具有相同的目n(即两个关系都有n个属性) ? 相应的属性取自同一个域

R∪S

? 仍为n目关系,由属于R或属于S的元组组成

R∪S = { t|t ? R∨t ?S } R - S

? 仍为n目关系,由属于R而不属于S的所有元组组成

R -S = { t|t?R∧t?S }

R∩S ? 仍为n目关系,由既属于R又属于S的元组组成

R∩S = { t|t ? R∧t ?S }

R∩S = R –(R-S)

严格地讲应该是广义的笛卡尔积(Extended Cartesian Product) R: n目关系,k1个元组 S: m目关系,k2个元组

R×S

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

? 元组的前n列是关系R的一个元组 ? 后m列是关系S的一个元组

? 行:k1×k2个元组

? R×S = {tr ts |tr ?R ∧ ts?S }

选择:在关系R中选择满足给定条件的诸元组 σF(R) = {t|t?R∧F(t)= '真'}

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

8

X1θY1 投影:投影运算符的含义

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

πA(R) = { t[A] | t ?R }

A:R中的属性列

9

设有关系R和S(如下:)

计算:

设有关系R和S(如下:)

10

计算:

关系代数:关系代数是一种抽象的查询语言,它用对关系的运算来表达查询。

关系代数的运算对象是关系,运算结果亦为关系。关系代数用到的运算符包括四类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符。 用关系代数完成下面各项操作 各个关系模式如下所示: 供应商 S(SNO,SNAME,CITY)

零件 P(PNO,PNAME,COLOR,WEIGHT) 工程 J(JNO,JNAME,CITY) 供应 SPJ(SNO,PNO,JNO,QTY) 1、求供应工程J1零件的单位号码SNO 2、求供应工程J1零件P1的单位号码SNO 3、求供应工程J1零件为红色的单位号码SNO 4、求没有使用天津供应商的红色零件的工程号JNO 5、求至少用了单位S1所供应的全部零件的工程号JNO.

11

1、∏SNO(σJNO=?J1?(SPJ))

2、∏SNO(σJNO=?J1?∧ PNO=?P1?(SPJ))

3、∏SNO(σJNO=?J1?(SPJ) ?? ∏PNO(σCOLOR=?红?(P))) 4、

1) ∏SNO(σCITY=?天津?(S)) : ①天津供应商号 2) ∏PNO(σCOLOR=?红?(P)) : ②红色零件号

3) ∏JNO(① ?? SPJ?? ② ) :③使用了天津供应商红色零件的工程号 4) ∏JNO(J)- ③ :未使用天津供应商的红色零件的工程号

5、∏PNO(σSNO=?S1?(SPJ)) :S1供应的全部零件号

∏JNO,PNO (SPJ)÷ ∏PNO (σSNO=?S1?(SPJ)) :至少用了单位S1所供应的全部零件的工程号JNO 3 了解元组关系演算和域关系演算。

关系演算

以数理逻辑中的谓词演算为基础

按谓词变元不同 进行分类 1.元组关系演算:

以元组变量作为谓词变元的基本对象 元组关系演算语言ALPHA 2.域关系演算:

以域变量作为谓词变元的基本对象 域关系演算语言QBE

一、单项选择题

1.对关系模型叙述错误的是 。

A.建立在严格的数学理论、集合论和谓词演算公式的基础之上 B.微机DBMS绝大部分采取关系数据模型 C.用二维表表示关系模型是其一大特点

D.不具有连接操作的DBMS也可以是关系数据库系统 答案:D

2.关系数据库管理系统应能实现的专门关系运算包括 。 A.排序、索引、统计 B.选择、投影、连接 C.关联、更新、排序 D.显示、打印、制表 答案:B

3.关系模型中,一个关键字是 。

12

A.可由多个任意属性组成 B.至多由一个属性组成

C.可由一个或多个其值能惟一标识该关系模式中任何元组的属性组成 D.以上都不是 答案:C

4.在一个关系中如果有这样一个属性存在,它的值能惟一地标识关系中的每一个元组,称这个属性为 。 A.关键字 B.数据项 C.主属性 D.主属性值 答案:A

5.同一个关系模型的任两个元组值 。 A.不能全同 B.可全同 C.必须全同 D.以上都不是 答案:A

6.在通常情。况下,下面的关系中不可以作为关系数据库的关系是 。 A.R1(学生号,学生名,性别) B.R2(学生号,学生名,班级号)

C.R3(学生号,学生名,宿舍号) D.R4(学生号,学生名,简历) 答案:D

7.一个关系数据库文件中的各条记录 。 A.前后顺序不能任意颠倒,一定要按照输入的顺序排列 B.前后顺序可以任意颠倒,不影响库中的数据关系

C.前后顺序可以任意颠倒,但排列顺序不同,统计处理的结果就可能不同 D.前后顺序不能任意颠倒,一定要按照关键字段值的顺序排列 答案:B

8.在关系代数的传统集合运算中,假定有关系R和S,运算结果为w。如果W中的元组属于R,

或者属于S,则w为 ① 运算的结果。如果w中的元组属于R而不属于S,则w为 ② 运算的结果。如果w中的元组既属于R又属于S,则W为 ③ 运算的结果。 A.笛卡尔积 B.井 C.差 D.交 答案:①B ②C ③D

9.在关系代数的专门关系运算中,从表中取出满足条件的属性的操作称为 ① ;从表中选出满足某种条件的元组的操作称为 ② ;将两个关系中具有共同属性值的元组连接到一起构成新表的操作称为 ③ 。 A.选择 B.投影 C.连接 D.扫描 答案:①B ②A ③C

10.自然连接是构成新关系的有效方法。一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的 。 A.元组 B.行 C.记录 D.属性 答案:D

二、填空题

1.关系操作的特点是 操作。 答案:集合

2.一个关系模式的定义格式为 。

13

答案:关系名(属性名1,属性名2,?,属性名n)

3.一个关系模式的定义主要包括 ① 、 ② 、 ③ 、 ④ 和 ⑤ 。

答案:①关系名 ②属性名 ③属性类型 ④属性长度 ⑤关键字 4.关系数据库中可命名的最小数据单位是 。 答案:属性名

5.关系模式是关系的 ① ,相当于 ② 。 答案:①框架 ②记录格式

6.在一个实体表示的信息中,称 为关键字。 答案:能惟一标识实体的属性或属性组

7.关系代数运算中,传统的集合运算有 ① 、 ② 、 ③ 和 ④ 。

答案:①笛卡尔积 ②并 ③交 ④差

8.关系代数运算中,基本的运算是 ① 、 ② 、 ③ 、 ④ 和 ⑤ 。

答案:①并 ②差 ③笛卡尔积 ④投影 ⑤选择

9.关系代数运算中,专门的关系运算有 ① 、 ② 和 ③ 。 答案:①选择 ②投影 ③连接

10.关系数据库中基于数学上两类运算是 ① 和 ② 。

答案:①关系代数 ②关系演算

第 3 章 关系数据库标准语言 SQL

1 了解 SQL 语言的特点,掌握基本表、视图、索引等概念。 (1)SQL 语言的特点 1)综合统一 2)高度非过程化 3)面向集合的操作方式

4)以同一种语法结构提供多种使用方式 5)语言简洁,易学易用

(2)基本表:在SQL中,把传统的关系模型中的关系模式称为基本表(Base Table)。 基本表是实际存储在数据库中的表,对应一个关系。

(3)视图:在SQL中,把传统的关系模型中的子模式称为视图(View),视图是从若干基本表和(或)其他视图构造出来的表。

(4)索引: 索引是关系数据库的内部实现技术,属于内模式的范畴

CREATE INDEX语句定义索引时,可以定义索引是唯一索引、非唯一索引或聚簇索引 CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]?) 例 1 CREATE CLUSTER INDEX Stusname

14

ON Student(Sname);

例 2 CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC); DROP INDEX <索引名>; DROP INDEX Stusname;

2 掌握数据定义命令:创建数据库、创建基本表、表结构的修改、基本表的删除;索引的建立与删除。 创建数据库

CREATE DATABASE tsing_DB ON

PRIMARY (NAME=tsing_DBData,

FILENAME=?C:\\Program Files\\Microsoft SQL Server\\MSSQL\\Data\\tsing_DB.mdf?, SIZE=25MB, MAXSIZE=50MB, FILEGROWTH=2MB) LOG ON

(NAME=tsing_DBLog,

FILENAME= ?C:\\Program Files\\Microsoft SQL Server\\MSSQL\\Data\\tsing_DB.ldf?, SIZE=10MB, MAXSIZE=20MB, FILEGROWTH=25%) 创建基本表

CREATE TABLE <表名>

(<列名> <数据类型>[ <列级完整性约束条件> ] [,<列名> <数据类型>[ <列级完整性约束条件>] ] ? [,<表级完整性约束条件> ] );

如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。

[例1] 建立“学生”表Student,学号是主码,姓名取值唯一。

CREATE TABLE Student

(Sno CHAR(9) PRIMARY KEY, /* 列级完整性约束条件*/

Sname CHAR(20) UNIQUE, /* Sname取唯一值*/

15

Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20) );

[例2] 建立一个“课程”表Course CREATE TABLE Course

( Cno CHAR(4) PRIMARY KEY, Cname CHAR(40),

Cpno CHAR(4) , Ccredit SMALLINT,

FOREIGN KEY (Cpno) REFERENCES Course(Cno) );

[例3] 建立一个“学生选课”表SC

CREATE TABLE SC

(Sno CHAR(9), Cno CHAR(4), Grade SMALLINT, PRIMARY KEY (Sno,Cno),

/* 主码由两个属性构成,必须作为表级完整性进行定义*/ FOREIGN KEY (Sno) REFERENCES Student(Sno),

/* 表级完整性约束条件,Sno是外码,被参照表是Student */ FOREIGN KEY (Cno) REFERENCES Course(Cno)

/* 表级完整性约束条件, Cno是外码,被参照表是Course*/

);

表结构的修改 ALTER TABLE <表名>

[ ADD <新列名> <数据类型> [ 完整性约束 ] ] [ DROP <完整性约束名> ]

[ ALTER COLUMN<列名> <数据类型> ];

[例1]向Student表增加“入学时间”列,其数据类型为日期型。 ALTER TABLE Student ADD S_entrance DATE;

[例2]将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数。

16

ALTER TABLE Student ALTER COLUMN Sage INT;

[例3]增加课程名称必须取唯一值的约束条件。

ALTER TABLE Course ADD UNIQUE(Cname);

基本表的删除

DROP TABLE <表名>[RESTRICT| CASCADE]; RESTRICT:删除表是有限制的。

欲删除的基本表不能被其他表的约束所引用 如果存在依赖该表的对象,则此表不能被删除 CASCADE:删除该表没有限制。

在删除基本表的同时,相关的依赖对象一起删除 [例1] 删除Student表

DROP TABLE Student CASCADE ; 基本表定义被删除,数据被删除

表上建立的索引、视图、触发器等一般也将被删除 [例2]若表上建有视图,选择RESTRICT时表不能删除 CREATE VIEW IS_Student

AS

SELECT Sno,Sname,Sage FROM Student

WHERE Sdept='IS';

DROP TABLE Student RESTRICT;

--ERROR: cannot drop table Student because other objects depend on it [例3]如果选择CASCADE时可以删除表,视图也自动被删除 DROP TABLE Student CASCADE;

--NOTICE: drop cascades to view IS_Student SELECT * FROM IS_Student;

--ERROR: relation \索引的建立与删除。

CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]?)

17

例 1 CREATE CLUSTER INDEX Stusname ON Student(Sname);

例 2 CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC); DROP INDEX <索引名>; DROP INDEX Stusname;

3 掌握数据查询命令: SELECT 语句,要求: SELECT [ALL|DISTINCT] <目标列表达式> [,<目标列表达式>] ? FROM <表名或视图名>[, <表名或视图名> ] ? [ WHERE <条件表达式> ]

[ GROUP BY <列名1> [ HAVING <条件表达式> ] ] [ ORDER BY <列名2> [ ASC|DESC ] ];

1 )简单查询(单表查询),包括正确书写选择条件、排序输出、聚合运算以及分组处理; [例1] 查询全体学生的学号与姓名。

SELECT Sno,Sname FROM Student;

[例2] 查询全体学生的姓名、学号、所在系。

SELECT Sname,Sno,Sdept FROM Student;

[例3] 查询计算机科学系全体学生的名单。 SELECT Sname FROM Student WHERE Sdept=?CS?;

[例4] 查询所有年龄在20岁以下的学生姓名及其年龄。 SELECT Sname,Sage FROM Student WHERE Sage < 20;

[例5] 查询考试成绩有不及格的学生的学号。 SELECT DISTINCT Sno FROM SC

WHERE Grade<60;

[例6] 查询年龄在20~23岁(包括20岁和23岁)之间的学生的

18

姓名、系别和年龄 SELECT Sname,Sdept,Sage FROM Student

WHERE Sage BETWEEN 20 AND 23;

[例7] 查询年龄不在20~23岁之间的学生姓名、系别和年龄

SELECT Sname,Sdept,Sage FROM Student

WHERE Sage NOT BETWEEN 20 AND 23;

[例8]查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。

SELECT Sname,Ssex FROM Student

WHERE Sdept IN ( 'IS','MA','CS' );

[例9]查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。 SELECT Sname,Ssex FROM Student

WHERE Sdept NOT IN ( 'IS','MA','CS' );

[例10] 查询学号为200215121的学生的详细情况。 SELECT * FROM Student

WHERE Sno LIKE ?200215121';

[例11] 查询姓\欧阳\且全名为三个汉字的学生的姓名。 SELECT Sname FROM Student

WHERE Sname LIKE '欧阳__';

[例12] 某些学生选修课程后没有参加考试,所以有选课记录,但没 有考试成绩。查询缺少成绩的学生的学号和相应的课程号。

SELECT Sno,Cno

FROM SC

WHERE Grade IS NULL

[例13] 查所有有成绩的学生学号和课程号。 SELECT Sno,Cno FROM SC

19

[例14] 查询计算机系年龄在20岁以下的学生姓名。 SELECT Sname FROM Student

WHERE Sdept= 'CS' AND Sage<20; WHERE Grade IS NOT NULL; 排序输出

[例15] 查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。 SELECT Sno,Grade FROM SC

WHERE Cno= ' 3 ' ORDER BY Grade DESC;

[例16] 查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。

SELECT * FROM Student

ORDER BY Sdept,Sage DESC; 聚合运算 聚集函数: 计数

COUNT([DISTINCT|ALL] *) COUNT([DISTINCT|ALL] <列名>) 计算总和

SUM([DISTINCT|ALL] <列名>) 计算平均值

AVG([DISTINCT|ALL] <列名>) 最大最小值

MAX([DISTINCT|ALL] <列名>)

MIN([DISTINCT|ALL] <列名>)

[例17] 查询学生总人数。 SELECT COUNT(*) FROM Student;

[例18] 查询选修了课程的学生人数。

20

SELECT COUNT(DISTINCT Sno) FROM SC;

[例19] 计算1号课程的学生平均成绩。 SELECT AVG(Grade) FROM SC

WHERE Cno= ' 1 '; 分组处理

[例20] 求各个课程号及相应的选课人数。 SELECT Cno,COUNT(Sno) FROM SC GROUP BY Cno; 查询结果:

Cno COUNT(Sno)

1 22 2 34 3 44 4 33

5 48

[例21] 查询选修了3门以上课程的学生学号。 SELECT Sno FROM SC GROUP BY Sno

HAVING COUNT(*) >3; 2 )连接查询(多表查询);

[例22] 查询每个学生及其选修课程的情况

SELECT Student.*,SC.*

FROM Student,SC

WHERE Student.Sno = SC.Sno;

[例23] 对[例33]用自然连接完成。

SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student,SC

WHERE Student.Sno = SC.Sno;

21

[例24]查询每一门课的间接先修课(即先修课的先修课) SELECT FIRST.Cno,SECOND.Cpno FROM Course FIRST,Course SECOND WHERE FIRST.Cpno = SECOND.Cno; [例 25]

SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student LEFT OUT JOIN SC ON (Student.Sno=SC.Sno); [例26]查询选修2号课程且成绩在90分以上的所有学生

SELECT Student.Sno, Sname FROM Student, SC

WHERE Student.Sno = SC.Sno AND

/* 连接谓词*/ SC.Cno= ?2? AND SC.Grade > 90;

/* 其他限定条件 */

3 )嵌套查询(子查询)。

将第一步查询嵌入到第二步查询的条件中 SELECT Sno,Sname,Sdept

FROM Student

WHERE Sdept IN

(SELECT Sdept FROM Student

WHERE Sname= ? 刘晨 ?); 此查询为不相关子查询。

[例27]查询选修了课程名为“信息系统”的学生学号和姓名

SELECT Sno,Sname ③ 最后在Student关系中 FROM Student 取出Sno和Sname WHERE Sno IN

(SELECT Sno ② 然后在SC关系中找出选 FROM SC 修了3号课程的学生学号 WHERE Cno IN

(SELECT Cno ① 首先在Course关系中找出 FROM Course “信息系统”的课程号,为3号

22

WHERE Cname= ?信息系统? ) );

4 掌握数据操纵命令:基本表数据的插入、删除、修改。 基本表数据的插入。 INSERT

INTO <表名> [(<属性列1>[,<属性列2 >?)] VALUES (<常量1> [,<常量2>] ? )

[例1] 将一个新学生元组(学号:200215128;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。

INSERT

INTO Student (Sno,Sname,Ssex,Sdept,Sage) VALUES ('200215128','陈冬','男','IS',18); INSERT

INTO <表名> [(<属性列1> [,<属性列2>? )] 子查询;

[例2] 对每一个系,求学生的平均年龄,并把结果存入数据库。

第一步:建表

CREATE TABLE Dept_age

(Sdept CHAR(15) /* 系名*/ Avg_age SMALLINT); /*学生平均年龄*/ INSERT

INTO Dept_age(Sdept,Avg_age) SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept; 基本表数据的修改。 UPDATE <表名>

23

SET <列名>=<表达式>[,<列名>=<表达式>]? [WHERE <条件>];

[例1] 将学生200215121的年龄改为22岁 UPDATE Student SET Sage=22

WHERE Sno=' 200215121 '; 基本表数据的删除。 DELETE

FROM <表名> [WHERE <条件>];

[例1] 删除学号为200215128的学生记录。 DELETE FROM Student

WHERE Sno= 200215128 ';

5 掌握有关视图的操作:定义视图、查询视图、更新视图、撤消视图。 定义视图 CREATE VIEW

<视图名> [(<列名> [,<列名>]?)] AS <子查询>

[WITH CHECK OPTION]; [例1] 建立信息系学生的视图。 CREATE VIEW IS_Student AS

SELECT Sno,Sname,Sage FROM Student WHERE Sdept= 'IS';

[例2]建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生 。

CREATE VIEW IS_Student AS

SELECT Sno,Sname,Sage FROM Student

24

WHERE Sdept= 'IS' WITH CHECK OPTION; 撤消视图

DROP VIEW <视图名>; 例1:删除视图BT_S: DROP VIEW BT_S; 查询视图

用户角度:查询视图与查询基本表相同

[例1] 在信息系学生的视图中找出年龄小于20岁的学生。 SELECT Sno,Sage FROM IS_Student WHERE Sage<20; 视图消解转换后的查询语句为: SELECT Sno,Sage FROM Student

WHERE Sdept= 'IS' AND Sage<20; 更新视图

[例1] 将信息系学生视图IS_Student中学号200215122的学生姓名改为“刘辰”。 UPDATE IS_Student SET Sname= '刘辰'

WHERE Sno= ' 200215122 '; 转换后的语句: UPDATE Student SET Sname= '刘辰'

WHERE Sno= ' 200215122 ' AND Sdept= 'IS';

[例2] 向信息系学生视图IS_S中插入一个新的学生记录:200215129,赵新,20岁 INSERT

INTO IS_Student

VALUES(?95029?,?赵新?,20); 转换为对基本表的更新: INSERT

INTO Student(Sno,Sname,Sage,Sdept)

25

VALUES(?200215129 ','赵新',20,'IS' );

[例3]删除信息系学生视图IS_Student中学号为200215129的记录 DELETE

FROM IS_Student

WHERE Sno= ' 200215129 '; 转换为对基本表的更新: DELETE FROM Student

WHERE Sno= ' 200215129 ' AND Sdept= 'IS';

第 4 章 关系数据库理论

1 了解关系模式设计中可能出现的问题及其产生原因以及解决的途径。 关系模式设计中可能出现的问题:

发生插入异常、删除异常、更新异常,数据冗余。 产生原因:

由存在于模式中的某些数据依赖引起的。 解决的途径:

通过分解关系模式来消除其中不合适的数据依赖。

2 掌握函数依赖、完全函数依赖、部分函数依赖、传递函数依赖的定义,能计算属性的封闭集,并由此得到关系的候选键。 函数依赖:

定义 设R(U)是一个属性集U上的关系模式,X和Y是U的子集。

若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作X→Y。 完全函数依赖:

定义 在R(U)中,如果X→Y,并且对于X的任何一个真子集X?,都有X? Y, 则称Y对X完全函数依赖,记作 X→Y。

若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X P→Y。 定义 在R(U)中,如果X→Y,(Y 记为:X →

传递

F

P

X) ,YX Y→Z, 则称Z对X传递函数依赖。

Z

计算属性的封闭集,并由此得到关系的候选键。

例:已知关系模式R(A,B,C,D,E)及其上的函数依赖集合F={A→D,B→C ,E→A },

26

该关系模式的候选关键字是( B )。

A. AB B. BE C. CD D. DE ∵E→A A→D ∴E→D(传递律) ∵E→A E→D

∴E→ADE(合并规则,自反律) ∴EB→ADEB(增广律) ∵B→C

∴BE→CE(增广律) ∴BE→C(分解规则)

∴BE→ABCDE(合并规则)

3 掌握第一范式( 1NF )、第二范式( 2NF )和第三范式( 3NF )的定义,能判别关系模式的范式等级。 第一范式( 1NF )

定义 如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF 第二范式( 2NF )

定义 若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF。 第三范式( 3NF )

定义 关系模式R 中若不存在这样的码X、属性组Y及非主属性Z(Z →Z成立, Y X,则称R ∈ 3NF。

? 若R∈3NF,

??则每一个非主属性既不??部分依赖于码也不??传递依赖于码。

例1:关系模式R中的属性全部是主属性,则R至少是(C )

A. 1NF B. 2NF C. 3 NF D.BCNF 例2:设有关系模式R(A,B,C,D),其数据依赖集:F={(A,B)→C,C→D},则关系模式R的规范化程度最高达到( B )

A. 1NF B. 2NF C. 3NF D. BCNF 先求码:已知:(A,B)→C,C→D ∴(A,B)→D(传递律)

∴(A,B)→ABCD(合并规则,自反律) 故:码为AB

非主属性D传递依赖码,所以是2NF

4 掌握关系模式的分解(规范到 3NF )的步骤、分解的原则和分解的方法。 [例] 关系模式 S-L-C(Sno, Sdept, Sloc, Cno, Grade) Sloc为学生住处,假设每个系的学生住在同一个地方

1 函数依赖包括:

(Sno, Cno) F Grade Sno → Sdept (Sno, Cno) P Sdept

Y), 使得X→Y,Y 27

Sno → Sloc (Sno, Cno) P Sloc Sdept → Sloc

1 S-L-C的码为(Sno, Cno) 2 S-L-C满足第一范式。

3 非主属性Sdept和Sloc部分函数依赖于码(Sno, Cno) S-L-C不是一个好的关系模式 (1) 插入异常 (2) 删除异常 (3) 数据冗余度大 (4) 修改复杂

1 原因

Sdept、 Sloc部分函数依赖于码。

1 解决方法

S-L-C分解为两个关系模式,以消除这些部分函数依赖 SC(Sno, Cno, Grade) S-L(Sno, Sdept, Sloc)

2 关系模式SC的码为(Sno,Cno) 3 关系模式S-L的码为Sno

4 这样非主属性对码都是完全函数依赖

第 5 章 数据库设计

1 掌握数据库设计的任务和步骤。

数据库设计:数据库设计是指对于一个给定的应用环境,提供一个确定最优数据模型与处理模式的逻辑设计, 以及一个确定数据库存储结构与存取方法的物理设计,建立起既能反映现实世界信息和信息联系, 满足用户数据要求和加工要求,又能被某个数据库管理系统所接受,同时能实现系统目标,并有效存取数据的数据库。

数据库设计的步骤:需求分析;概念结构设计;逻辑结构设计;物理结构设计;数据库实施;数据库运行和维护。

2 了解需求分析阶段的任务:定义信息与应用;定义操作任务;定义数据项。

需求分析阶段的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新

28

系统的功能。 (1)信息要求 (2)处理要求

(3)安全性与完整性要求

3 掌握概念结构设计阶段的方法和步骤,并能设计 ER 图。 概念结构设计的方法:自顶向下;自底向上;逐步扩张;混合策略。 概念设计的主要步骤为:

(1)进行数据抽象、设计局部概念模式; (2)将局部概念模式综合成全局概念模式; (3)评审。

E-R图提供了表示实体型、属性和联系的方法。

某商店管理涉及三个实体,分别是商店,有属性:商店编号,店名,店址,店经理等; 商品,有属性:商品编号,商品名,单价,产地等;职工,有属性职工编号,职工名,性别,工资等。这些实体间的联系如下:百货公司管辖若干个连锁商店,每家商店经营若干商品,每家商店有若干职工,但每个职工只能服务于一家商店。职工参加某商店工作有开始时间,商店销售商品的有月销售量。 ①请画出商店、商品和职工的E—R 图。

②将该E—R 图转换为关系数据模型,并标出主码。

29

商店名称 店址 店经理 商品编号 商品名 单价 商店编号 n 商 店 销售 m 商品 产地 1 开始时间 工作 月销售量 n 职工编号 职 工 职工名 性别 工资商店表(商店编码,店名,店址,店经理) 商品表(商品编号,商品名,单价,产地) 职工表(职工编号,职工名,性别,工资) 销售表(商店编号,商品编号,月销售量) 工作表(职工编号,商店编号,开始时间)

注:“工作”可独立转换为一个关系模式 工作表(职工编号,商店编号,开始时间)也可与n端合并职工表(职工编号,商店编号,职工名,性别,工资) P225

4 掌握逻辑结构设计阶段的任务和步骤,重点掌握从 E/R 图到关系模式的转换。

逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。P224 逻辑结构设计的步骤:

(1)将概念结构转换为一般的关系、网状、层次模型。

(2)将转换来的关系、网状、层次模型向特定的DBMS支持下的数据模型转换。 (3)对数据模型进行优化。 P225

5 了解数据库物理设计的任务。

为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构。 6 了解数据库的实施、运行和维护等过程。

30

数据库实现阶段的主要工作有以下几点: (1)建立实际数据库结构 (2)试运行 (3)装入数据

数据库设计包括数据库的结构(数据)设计和行为(处理)设计。

一、单项选择题

1.在数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它是数据库设计的 阶段。

A.需求分析 B.概念设计 C.逻辑设计 D.物理设计

2.E-R图是数据库设计的工具之一,它适用于建立数据库的 。

A.概念模型 B.逻辑模 C.结构模型 D.物理模型

3.在关系数据库设计中,设计关系模式是 的任务。

A.需求分析阶段 B.概念设计阶段 C.逻辑设计阶段 D.物理设计阶段

4.数据库物理设计完成后,进入数据库实施阶段,下列各项中不属于实施阶段的工作是 。

A.建立库结构 B.扩充功能 C.加载数据 D.系统调试

5.数据库概念设计的E-R方法中,用属性描述实体的特征,属性在E-R图中,用 表示。

A.矩形 B.四边形 C.菱形 D.椭圆形

6.在数据库的概念设计中,最常用的数据模型是 。

A.形象模型 B.物理模型 C.逻辑模型 D.实体联系模型

7.在数据库设计中,在概念设计阶段可用E-R方法,其设计出的图称为 。

A.实物示意图 B.实用概念图 C.实体表示图 D.实体联系图

8.从E-R模型关系向关系模型转换时,一个M∶N联系转换为关系模型时,该关系模式的关键字是 。

A.M端实体的关键字 B.N端实体的关键字 C.M端实体关键字与N端实体关键字组合 D.重新选取其他属性

9.当局部E-R图合并成全局E-R图时可能出现冲突,不属于合并冲突的是 。

A.属性冲突 B.语法冲突 C.结构冲突 D.命名冲突

10.E-R图中的主要元素是 ① 、 ② 和属性。

A.记录型 B.结点 C.实体型 D.表 E.文件 F.联系 G.有向边

31

11.数据库逻辑设计的主要任务是 。

A.建立E-R图和说明书 B.创建数据库说明 C.建立数据流图 D.把数据送入数据库

12.E-R图中的联系可以与 实体有关。

A.0个 B.1个 C.1个或多个 D.多个

13.概念模型独立于 。

A.E-R模型 B.硬件设备和DBMS C.操作系统和DBMS D.DBMS

14.如果两个实体之间的联系是m∶n,则 引入第三个交叉关系。

A.需要 B.不需要 C.可有可无 D.合并两个实体

15.数据流程图(DFD)是用于描述结构化方法中 阶段的工具。

A.可行性分析 B.详细设计 C.需求分析 D.程序编码 16.E-R图是表示概念模型的有效工具之一, E-R图中的菱形框“表示”的是 。

A.联系 B.实体 C.实体的属性 D.联系的属性

17.图5.3所示的E-R图转换成关系模型,可以转换为 关系模式。

A.1个 B.2个 C.3个 D.4个

二、填空题

1.E-R数据模型一般在数据库设计的 阶段使用。

2.数据模型是用来描述数据库的结构和语义的,数据模型有概念数据模型和结构数据模型两类,E-R模型是 模型。

3.数据库设计的几个步骤是 。

4.“为哪些表,在哪些字段上,建立什么样的索引”这一设计内容应该属于数据库 设计阶段。

5.在数据库设计中,把数据需求写成文档,它是各类数据描述的集合,包括数据项、数据结构、数据流、数据存储和数据加工过程等的描述,通常称为 。

6.数据库应用系统的设计应该具有对于数据进行收集、存储、加工、抽取和传输等功能,即包括数据设计和处理设计,而 是系统设计的基础和核心。

7.数据库实施阶段包括两项重要的工作,一项是数据的 ,另一项是应用程序的编码和调试。

8.在设计分E-R图时,由于各个子系统分别有不同的应用,而且往往是由不同的设计人员设计

的,所以各个分E-R图之间难免有不一致的地方,这些冲突主要有 ① 、 ② 和 ③ 三类。

32

9.E-R图向关系模型转化要解决的问题是如何将实体和实体之间的联系转换成关系模式,如何确定这些关系模式的 。

10.在数据库领域里,统称使用数据库的各类系统为 系统。

答案:数据库应用

11.数据库逻辑设计中进行模型转换时,首先将概念模型转换为 ① ,然后将 ② 转换为 ③ 。

答案:

①与特定的DBMS无关的,但为一般的关系模型、网状模型或层次模型所表示的一般模型 ②一般模型

③特定DBMS支持的逻辑模型

12.以图3.18的数据库为例,用关系代数、关系演算语言ALPHA、QBE完成以下检索。

关系模式:仓库(仓库号,城市,面积) 职工(仓库号,职工号,工资)

订购单(职工号,供应商号,订购单号,订购日期) 供应商(供应商号,供应商名称,地址) (1).检索在仓库2工作的职工的工资。 解:

关系代数表示:

∏职工号,工资(σ仓库号=“WH2“(职工)) ALPHA表示:

GET W(职工.职工号,职工.工资):职工.仓库号=”WH2” QBE表示:

职工 仓库号 职工号 工资 P.E1 P.1220 WH2

(2).检索在上海工作的职工的工资。

解:

关系代数表示:

∏职工号,工资(σ城市=“上海”(仓库)? 职工) ALPHA表示:

RANGE 仓库 X , 职工 G GET W(G.职工号,G.工资):(?X)(G.仓库号=X.仓库号∧X.城市=”上海”)

QBE表示:

职工 仓库号 职工号 工资 P.E1 P.1220 WH1

33

仓库 仓库号 WH1 城市 上海 面积

(3).检索北京的供应商名称。 解:

关系代数表示:

∏供应商名称(σ地址=“北京“(供应商)) ALPHA表示:

GET W(供应商.供应商名称):供应商.地址=“北京“

QBE表示:

供应商 供应商号 供应商名称 P.607厂 地址 北京

(4).检索目前与职工E6有业务联系的供应商名称。 解:

关系代数表示:

∏供应商名称(σ职工号=“E6“(订购单)??( 供应商) ALPHA表示:

RANGE 订购单 D, 供应商 S

GET W(S.供应商名称):( ?D)(D.职工号=”E6”∧D.供应商号=S.供应商号) QBE表示:

供应商 供应商号 供应商名称 地址 P.607厂 WH1

订购单 职工号 E6 供应商号 WH1 订购单号 订购日期

(5).检索所有职工的工资大于1220的仓库所在的城市。 解:

关系代数表示: ∏城市(仓库??( ( ∏仓库号(职工)-∏仓库号(σ工资≤“1220“(职工)))) ALPHA表示: RANGE 职工 Z , 仓库 C GET W(C.城市) : (?Z)(Z.仓库号=C.仓库号∧Z.工资>1220)

34

QBE表示:

仓库 仓库号 WH1

职工 ┐ 仓库号 WH1 职工号 工资 <1220 城市 P.北京 面积

(6).检索和北京的所有供应商都有业务联系的职工的工资。 解:

关系代数表示:

R=∏供应商号(σ地址=“北京“(供应商)) **北京的供应商号 ∏工资(职工??( ∏职工号,供应商号(订购单)÷R)) ALPHA表示:

RANGE 订购单 D , 供应商 S , 职工 Z GET W(Z.工资):(?S)(?D)(Z.职工号=D. 职工号∧D.供应商号=S. 供应商号∧S.地址=”北京”) QBE表示:

职工 职工号 仓库号 工资 P.1220 E1

供应商 ALL 供应商号 WH4

订购单 职工号 E1 供应商号 WH4 订购单号 订购日期 供应商名称 地址 北京 (7).检索至少和职工E1、E4、E7都有联系的供应商名称。 解:

关系代数表示:

职工号 E1 E4 35

设临时关系R =

E7

∏供应商名称((∏供应商号,职工号(订购单)÷R)?? 供应商) ALPHA表示:

RANGE 供应商 S , 订购单 D1 , 订购单 D2 ,订购单 D3 GET W(S.供应商名称) : (?D1) (D1.供应商号=S.供应商号∧D1.职工号=”E1”)

(?D2) (D2.供应商号=S.供应商号∧D2.职工号=”E4”) (?D3) (D3.供应商号=S.供应商号∧D3.职工号=”E7”)

QBE表示:

供应商 供应商号 供应商名称 地址 P.607厂P.607 厂P.607厂 WH1 WH1 WH1

订购单 职工号 E1 E4 E6

供应商号 WH1 WH1 WH1 订购单号 订购日期 36

设临时关系R =

E7

∏供应商名称((∏供应商号,职工号(订购单)÷R)?? 供应商) ALPHA表示:

RANGE 供应商 S , 订购单 D1 , 订购单 D2 ,订购单 D3 GET W(S.供应商名称) : (?D1) (D1.供应商号=S.供应商号∧D1.职工号=”E1”)

(?D2) (D2.供应商号=S.供应商号∧D2.职工号=”E4”) (?D3) (D3.供应商号=S.供应商号∧D3.职工号=”E7”)

QBE表示:

供应商 供应商号 供应商名称 地址 P.607厂P.607 厂P.607厂 WH1 WH1 WH1

订购单 职工号 E1 E4 E6

供应商号 WH1 WH1 WH1 订购单号 订购日期 36

本文来源:https://www.bwwdw.com/article/g0ko.html

Top