【网学网提醒】:本文主要为网学会员提供《关系数据库与SQL语言》复习资料,希望对需要《关系数据库与SQL语言》复习资料网友有所帮助,学习一下!
《关系数据库与SQL语言》复习资料
第1章数据库系统概述
掌握数据库系统中的几个基本概念:数据库、数据库管理系统、数据库系统、数据模型、1掌握数据库系统中的几个基本概念:数据库、数据库管理系统、数据库系统、数据模型、关系数据库等。系数据库等。DB:(1)DB:即数据库(Database),是统一管理的相关数据的集合。DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。DBMS:(2)DBMS:即数据库管理系统(DatabaseManagementSystem),是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型、面向对象型DBMS。DBS:(3)DBS:即数据库系统(DatabaseSystem),是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。数据模型:(4)数据模型:模型是对现实世界的抽象。在数据库技术中,表示实体类型及实体类型间联系的模型称为“数据模型”。它可分为两种类型:概念数据模型和结构数据模型。关系数据库:(5)关系数据库:在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。关系数据库也有型和值之分。关系数据库的型关系数据库的型也称为关系数据库模式,是对关系数据库的描述。关系数据库的型关系数据库模式包括:若干域的定义;在这些域上定义的若干关系模式。关系数据库的值关系数据库的值是这关系数据库的值些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。了解数据管理的发展过程,重点掌握数据库系统的特点、发展阶段,2了解数据管理的发展过程,重点掌握数据库系统的特点、发展阶段,掌握数据库管理系统的主要功能。主要功能。(1)数据库管理发展过程:人工管理阶段、文件系统阶段、数据库系统阶段。数据库管理发展过程:(2)数据库系统的特点数据结构化。采用复杂的数据模型表示数据结构。数据结构化。数据的共享性高,冗余度低,易扩充。数据的共享性高,冗余度低,易扩充。数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系
统弹性大,易于扩充,可以适应各种用户的要求。
1
数据独立性高。数据独立性高。有较高的数据独立性(数据结构分成用户的逻辑结构、整体逻辑结构和物理结构三级)物理独立性:指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。数据由DBMS统一管理和控制。数据库的恢复、并发控制、数据由DBMS统一管理和控制。系统提供了四个方面的数据控制功能:DBMS统一管理和控制数据完整性和数据安全性,以保证数据库中数据是安全的、正确的和可靠的。(3)DBMS的主要功能有:DBMS的主要功能有:的主要功能有数据库的定义功能数据组织、存储和管理数据库的操纵功能数据库的事务管理和运行管理数据库的建立与维护功能其他功能掌握数据库三级模式结构、优点、数据物理独立性、数据逻辑独立性。3掌握数据库三级模式结构、优点、数据物理独立性、数据逻辑独立性。(1)数据库系统的三级模式结构数据库系统的三级模式结构是指数据库系统是由:外模式、模式、内模式三级组成。的三级模式结构
数据库系统的三级模式结构
2
模式:模式:模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式。外模式:是用户与数据库系统的接口,是用户用到的那部分数据的描述。一个数据库可以有多外模式:个外模式。内模式:内模式:是数据库在物理存储方面的描述,定义所有的内部记录类型、索引和文件的组成方式,以及数据控制方面的细节。一个数据库只有一个内模式。两级映像:两级映像:外模式/模式映像、模式/内模式映像模式/内模式映象用于定义概念模式和内模式间的对应模式/内模式映象:这个映象存在于概念级和内部级之间,性,即概念记录和内部记录间的对应性。此映象一般在内模式中描述。外模式/模式映象:用于定义外模式和概念模式间的对应外模式/模式映象:这人映象存在于外部级和概念级之间,性,即外部记录和概念记录间的对应性。此映象都是在外模式中描述。物理数据独立性:物理数据独立性:如果数据库的内模式要进行修改,即数据库的存储设备和存储方法有所变化,那么模式/内模式映象也要进行相应的修改,使概念模式尽可能保持不变。也就是对内模式的修改尽量不影响概念模式。逻辑数据独立性:逻辑数据独立性:如果数据库的概念模式要进行修改(如增加记录类型或增加数据项),那么外模式/模式映象也要进行相应
的修改,使外模式尽可能保持不变。也就是对概念模式的修改尽量不影响外模式和应用程序。掌握信息世界中的实体、属性、联系,以及关系数据模型中的关系、属性、4掌握信息世界中的实体、属性、联系,以及关系数据模型中的关系、属性、元组和键码等基本概念。本概念。实体(entity):实体(entity):是指客观存在可以相互区别的事物。实体可以是具体的对象,如:一个学生,一辆汽车等;也可以是抽象的事件,如:一次借书、一场足球赛等。属性(attribute):属性(attribute):实体有很多特性,每一个特性称为属性。每个属性有一个值域,其类型可以是整数型、实数型、字符串型。比如,学生(实体)有、、年龄、性别等属性,相应值域为字符、字符串、整数和字符串型。联系:联系:指实体集之间的联系。1联系:如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系,反之亦然,那1:联系:么实体集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.具体的机器和DBMSB.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.数据共享C.数据结构化②A.数据结构化C.数据统一管理③A.使用专用文件C.数据没有安全与完整性保障
B.数据模块化D.数据共享B.数据无独立性D.数据有独立性B.不使用专用文件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)码或候选码:如果关
系的某一属性或属性组能惟一地标识一个元组(记录),而其任何真子集(3)码或候选码:码或候选码无此性质,则称这个属性或属性组为该关系的码或候选码。(4)主键:(4)主键:用户选作元组标识的一个候选键为主键。主键(5)外键:此时该主键就是另一关系的外键,如(5)外键:外键某个关系的主键相应的属性在另一关系中出现,有两个关系S和SC,其中S#是关系S的主键,相应的属性S#在关系SC中也出现,此时S#就是关系SC的外键。主属性:(6)主属性:候选码的诸属性称为主属性。非主属性(Nonattribute)(7)非主属性(Non-Primeattribute):不包含在任何侯选码中的属性称为非主属性(Non-Primeattribute)或非码属性(Non-keyattribute)。(8)关系的三类完整性约束实体完整性:实体完整性:若属性A是基本关系R的主属性,则属性A不能取空值参照完整性:参照完整性:若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值用户定义的完整性:(9)关系模式可以形式化地表示为:关系模式可以形式化地表示为:R(U,D,DOM,F)RUD关系名组成该关系的属性名集合属性组U中属性所来自的域
DOM属性向域的映象集合F属性间的数据依赖关系集合
(10)关系数据库:在一个给定的应用领域中,所有关系的集合构成一个关系数据库。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)
严格地讲应该是广义的笛卡尔积(ExtendedCartesianProduct)R:n目关系,k1个元组S:m目关系,k2个元组
R×S
列:(n+m)列元组的集合??元组的前n列是关系R的一个元组后m列是关系S的一个元组
行:k1×k2个元组?
R×S={trts|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零件的单位号码SNO2、求供应工程J1零件P1的单位号码SNO3、求供应工程J1零件为红色的单位号码SNO4、求没有使用天津供应商的红色零件的工程号JNO5、求至少用了单位S1所供应的全部零件的工程号JNO.
11
1、∏SNO(σJNO=‘J1’(SPJ))2、∏SNO(σJNO=‘J1’∧PNO=‘P1’(SPJ))3、∏SNO(σJNO=‘J1’(SPJ)4、1)∏SNO(σCITY=‘天津’(S))2)∏PNO(σCOLOR=‘红’(P))3)∏JNO(①SPJ::②)①天津供应商号②红色零件号:③使用了天津供应商红色零件的工程号:未使用天津供应商的红色零件的工程号∏PNO(σCOLOR=‘红’(P)))
4)∏JNO(J)-③
5、∏PNO(σSNO=‘S1’(SPJ))
:S1供应的全部零件号
∏JNO,PNO(SPJ)÷∏PNO(σSNO=‘S1’(SPJ)):至少用了单位S1所供应的全部零件的工程号JNO了解元组关系演算和域关系演算。3了解元组关系演算和域关系演算。关系演算以数理逻辑中的谓词演算为基础按谓词变元不同进行分类1.元组关系演算:以元组变量作为谓词变元的基本对象元组关系演算语言ALPHAALPHA2.域关系演算:以域变量作为谓词变元的基本对象域关系演算语言QBEQBE
一、单项选择题
1.对关系模型叙述错误的是。A.建立在严格的数学理论、集合论和谓词演算公式的基础之上B.微机DBMS绝大部分采取关系数据模型C.用二维表表示关系模型是其一大特点D.不具有连接操作的DBMS也可以是关系数据库系统答案:D2.关系数据库管理系统应能实现的专门关系运算包括A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表答案:B3.关系模型中,一个关键字是。
。
12
A.可由多个任意属性组成B.至多由一个属性组成C.可由一个或多个其值能惟一标识该关系模式中任何元组的属性组成D.以上都不是答案:C4.在一个关系中如果有这样一个属性存在,它的值能惟一地标识关系中的每一个元组,称这个。属性为A.关键字B.数据项C.主属性D.主属性值答案:A5.同一个关系模型的任两个元组值。A.不能全同B.可全同C.必须全同D.
以上都不是答案:A6.在通常情。况下,下面的关系中不可以作为关系数据库的关系是。A.R1(学生号,学生名,性别)B.R2(学生号,学生名,班级号)C.R3(学生号,学生名,宿舍号)D.R4(学生号,学生名,简历)答案:D。7.一个关系数据库文件中的各条记录A.前后顺序不能任意颠倒,一定要按照输入的顺序排列B.前后顺序可以任意颠倒,不影响库中的数据关系C.前后顺序可以任意颠倒,但排列顺序不同,统计处理的结果就可能不同D.前后顺序不能任意颠倒,一定要按照关键字段值的顺序排列答案:B8.在关系代数的传统集合运算中,假定有关系R和S,运算结果为w。如果W中的元组属于R,或者属于S,则w为①运算的结果。如果w中的元组属于R而不属于S,则w为②运算的结果。如果w中的元组既属于R又属于S,则W为③运算的结果。A.笛卡尔积B.井C.差D.交答案:①B②C③D9.在关系代数的专门关系运算中,从表中取出满足条件的属性的操作称为①;从表中选出满足某种条件的元组的操作称为②;将两个关系中具有共同属性值的元组连接到一起构成新表的操作称为③。A.选择B.投影C.连接D.扫描答案:①B②A③C10.自然连接是构成新关系的有效方法。一般情况下,当对关系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)基本表:(2)基本表:在SQL中,把传统的关系模型中的关系模式称为基本表(BaseTable)。基本表是实基本表际存储在数据库中的表,对应一个关系。(3)视图:把传统的关系模型中的子模式称为视图(View),视图是从若干基本表和(或)(3)视图:视图在SQL中,其他视图构造出来的表。(4)索引:(4)索引:索引是关系数据库的内部实现技术,属于内模式的范畴索引CREATEINDEX语句定义索引时,可以定义索引是唯一索引、非唯一索引或聚簇索引CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]…)例1CREATECLUSTERINDEXStusname
14
ON
Student(Sname);SCnoONSC(SnoASC,CnoDESC);
例2CREATEUNIQUEINDEXDROPINDEX<索引名>;DROPINDEXStusname;
掌握数据定义命令:创建数据库、创建基本表、表结构的修改、基本表的删除;2掌握数据定义命令:创建数据库、创建基本表、表结构的修改、基本表的删除;索引的建立与删除。与删除。创建数据库CREATEDATABASEtsing_DBONPRIMARY(NAME=tsing_DBData,FILENAME=’C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\tsing_DB.mdf’,SIZE=25MB,MAXSIZE=50MB,FILEGROWTH=2MB)LOGON(NAME=tsing_DBLog,FILENAME=‘C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\tsing_DB.ldf’,SIZE=10MB,MAXSIZE=20MB,FILEGROWTH=25%)创建基本表CREATETABLE<表名>(<列名><数据类型>[<列级完整性约束条件>][,<列名><数据类型>[<列级完整性约束条件>]]…[,<表级完整性约束条件>]);如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。[例1]建立“学生”表Student,是主码,取值唯一。
CREATETABLEStudent(SnoCHAR(9)PRIMARYKEY,/*列级完整性约束条件*//*Sname取唯一值*/
SnameCHAR(20)UNIQUE,
15
SsexSage
CHAR(2),SMALLINT,
SdeptCHAR(20));[例2]建立一个“课程”表CourseCREATETABLECourse(CnoCHAR(4)PRIMARYKEY,
CnameCHAR(40),CpnoCcreditCHAR(4),SMALLINT,
FOREIGNKEY(Cpno)REFERENCESCourse(Cno));[例3]建立一个“学生选课”表SCCREATETABLESC(SnoCHAR(9),CnoGradeCHAR(4),SMALLINT,
PRIMARYKEY(Sno,Cno),/*主码由两个属性构成,必须作为表级完整性进行定义*/FOREIGNKEY(Sno)REFERENCESStudent(Sno),/*表级完整性约束条件,Sno是外码,被参照表是Student*/FOREIGNKEY(Cno)REFERENCESCourse(Cno)/*表级完整性约束条件,Cno是外码,被参照表是Course*/);表结构的修改ALTERTABLE<表名>[ADD<新列名><数据类型>[完整性约束]][DROP<完整性约束名>][ALTERCOLUMN<列名><
数据类型>];[例1]向Student表增加“入学时间”列,其数据类型为日期型。ALTERTABLEStudentADDS_entranceDATE;[例2]将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数。
16
ALTERTABLEStudentALTERCOLUMNSageINT;[例3]增加课程名称必须取唯一值的约束条件。ALTERTABLECourseADDUNIQUE(Cname);基本表的删除DROPTABLE<表名>[RESTRICT|CASCADE];RESTRICT:删除表是有限制的。欲删除的基本表不能被其他表的约束所引用如果存在依赖该表的对象,则此表不能被删除CASCADE:删除该表没有限制。在删除基本表的同时,相关的依赖对象一起删除[例1]删除Student表DROPTABLEStudentCASCADE;
基本表定义被删除,数据被删除表上建立的索引、视图、触发器等一般也将被删除[例2]若表上建有视图,选择RESTRICT时表不能删除CREATEVIEWIS_StudentASSELECTSno,Sname,SageFROMStudentWHERESdept='IS';
DROPTABLEStudentRESTRICT;--ERROR:cannotdroptableStudentbecauseotherobjectsdependonit[例3]如果选择CASCADE时可以删除表,视图也自动被删除DROPTABLEStudentCASCADE;--NOTICE:dropcascadestoviewIS_StudentSELECT*FROMIS_Student;--ERROR:relation"IS_Student"doesnotexist索引的建立与删除。索引的建立与删除。CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]…)
17
例1CREATECLUSTERINDEXStusnameONStudent(Sname);SCnoONSC(SnoASC,CnoDESC);
例2CREATEUNIQUEINDEXDROPINDEX<索引名>;DROPINDEXStusname;
掌握数据查询命令:语句,要求:3掌握数据查询命令:SELECT语句,要求:SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]…FROM<表名或视图名>[,<表名或视图名>]…[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC|DESC]];1)简单查询(单表查询),包括正确书写选择条件、排序输出、聚合运算以及分组处理;[例1]查询全体学生的与。SELECTSno,SnameFROMStudent;[例2]查询全体学生的、、所在系。SELECTSname,Sno,SdeptFROMStudent;[例3]查询计算机科学系全体学生的名单。SELECTSnameFROMStudentWHERESdept=‘CS’;[例4]查询所有年龄在20岁以下的学生及其年龄。SELECTSname,SageFROMStudent
WHERESage<20;[例5]查询考试成绩有不及格的学生的。SELECTDISTINCTSnoFROMSCWHEREGrade<60;[例6]查询年龄在20~23岁(包括20岁和23岁)之间的学生的
18
、系别和年龄SELECTSname,Sdept,SageFROMWHEREStudentSageBETWEEN20AND23;
[例7]查询年龄不在20~23岁之间的学生、系别和年龄SELECTSname,Sdept,SageFROMStudent
WHERESageNOTBETWEEN20
AND23;[例8]查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的和性别。SELECTSname,SsexFROMStudentWHERESdeptIN('IS','MA','CS');[例9]查询既不是信息系、数学系,也不是计算机科学系的学生的和性别。SELECTSname,SsexFROMStudentWHERESdeptNOTIN('IS','MA','CS');[例10]查询为200215121的学生的详细情况。SELECT*FROMStudentWHERESnoLIKE‘200215121';[例11]查询姓"欧阳"且全名为三个汉字的学生的。SELECTSnameFROMWHEREStudentSnameLIKE'欧阳__';
[例12]某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的和相应的课程号。SELECTSno,CnoFROMSCWHEREGradeISNULL
[例13]查所有有成绩的学生和课程号。SELECTSno,CnoFROMSC
19
[例14]查询计算机系年龄在20岁以下的学生。SELECTSnameFROMStudent
WHERESdept='CS'ANDSage<20;WHERE排序输出[例15]查询选修了3号课程的学生的及其成绩,查询结果按分数降序排列。SELECTSno,GradeFROMSCWHERECno='3'ORDERBYGradeDESC;[例16]查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。SELECT*FROMStudentORDERBYSdept,SageDESC;聚合运算聚集函数:计数COUNT([DISTINCT|ALL]*)COUNT([DISTINCT|ALL]<列名>)计算总和SUM([DISTINCT|ALL]<列名>)计算平均值AVG([DISTINCT|ALL]<列名>)最大最小值MAX([DISTINCT|ALL]<列名>)MIN([DISTINCT|ALL]<列名>)[例17]查询学生总人数。SELECTCOUNT(*)FROMStudent;[例18]查询选修了课程的学生人数。GradeISNOTNULL;
20
SELECTCOUNT(DISTINCTSno)FROMSC;[例19]计算1号课程的学生平均成绩。SELECTAVG(Grade)FROMSCWHERECno='1';分组处理[例20]求各个课程号及相应的选课人数。SELECTCno,COUNT(Sno)FROMSC
GROUPBYCno;查询结果:Cno1234548COUNT(Sno)22344433
[例21]查询选修了3门以上课程的学生。SELECTSnoFROMSCGROUPBYSnoHAVINGCOUNT(*)>3;
2)连接查询(多表查询);[例22]查询每个学生及其选修课程的情况SELECTStudent.*,SC.*FROMStudent,SC
WHEREStudent.Sno=SC.Sno;[例23]对[例33]用自然连接完成。
SELECTStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,GradeFROMStudent,SC
WHEREStudent.Sno=SC.Sno;
21
[例24]查询每一门课的间接先修课(即先修课的先修课)SELECTFIRST.Cno,SECOND.CpnoFROMCourseFIRST,CourseSECONDWHEREFIRST.Cpno=SECOND.Cno;[例25]SELECTStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,GradeFROMStudentLEFTOUTJOINSCON(Student.Sno=SC.Sno);[例26]查询选修2号课程且成绩在90分以上的所有学生SELECTStudent.Sno,SnameFROMStudent,SC
WHEREStudent.
Sno=SC.SnoAND/*连接谓词*/SC.Cno=‘2’ANDSC.Grade>90;/*其他限定条件*/3)嵌套查询(子查询)。将第一步查询嵌入到第二步查询的条件中SELECTSno,Sname,SdeptFROMStudentWHERESdeptIN(SELECTSdeptFROMStudentWHERESname=‘刘晨’);此查询为不相关子查询。[例27]查询选修了课程名为“信息系统”的学生和SELECTSno,SnameFROMStudent③最后在Student关系中取出Sno和Sname
WHERESnoIN(SELECTSnoFROMSC②然后在SC关系中找出选修了3号课程的学生
WHERECnoIN(SELECTCnoFROMCourse①首先在Course关系中找出“信息系统”的课程号,为3号
22
WHERECname=‘信息系统’));4掌握数据操纵命令:基本表数据的插入、删除、修改。掌握数据操纵命令:基本表数据的插入、删除、修改。基本表数据的插入。基本表数据的插入。INSERTINTO<表名>[(<属性列1>[,<属性列2>…)]VALUES(<常量1>[,<常量2>]…)
[例1]将一个新学生元组(:200215128;:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。
INSERTINTOStudent(Sno,Sname,Ssex,Sdept,Sage)VALUES('200215128','陈冬','男','IS',18);
INSERTINTO<表名>[(<属性列1>[,<属性列2>…)]子查询;[例2]对每一个系,求学生的平均年龄,并把结果存入数据库。
第一步:建表CREATETABLEDept_age/*系名*//*学生平均年龄*/
(SdeptCHAR(15)Avg_ageSMALLINT);
INSERTINTODept_age(Sdept,Avg_age)SELECTSdept,AVG(Sage)FROMStudentGROUPBYSdept;基本表数据的修改。基本表数据的修改。UPDATE<表名>
23
SET
<列名>=<表达式>[,<列名>=<表达式>]…
[WHERE<条件>];[例1]将学生200215121的年龄改为22岁UPDATEStudentSETSage=22WHERESno='200215121';基本表数据的删除。基本表数据的删除。DELETEFROM<表名>
[WHERE<条件>];[例1]删除为200215128的学生记录。DELETEFROMStudentWHERESno=200215128';掌握有关视图的操作:定义视图、查询视图、更新视图、撤消视图。5掌握有关视图的操作:定义视图、查询视图、更新视图、撤消视图。定义视图CREATEVIEW<视图名>[(<列名>AS<子查询>[WITHCHECKOPTION];[例1]建立信息系学生的视图。CREATEVIEWIS_StudentASSELECTSno,Sname,SageFROMStudent[,<列名>]…)]
WHERESdept='IS';[例2]建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生。CREATEVIEWIS_StudentASSELECTSno,Sname,SageFROMStudent
24
WHERESdept='IS'WITHCHECKOPTION;撤消视图DROPVIEW<视图名>;例1:删除视图BT_S:DROPVIEWBT_S;查询视图用户角度:查询视图与查询基本表相同[例1]在信息系学生的视图中找出年龄小于20岁的学
生。SELECTFROMWHERESno,SageIS_StudentSage<20;
视图消解转换后的查询语句为:SELECTSno,SageFROMStudentWHERESdept='IS'AND更新视图[例1]将信息系学生视图IS_Student中200215122的学生改为“刘辰”。UPDATEIS_StudentSETSname='刘辰'WHERESno='200215122';转换后的语句:UPDATEStudentSETSname='刘辰'WHERESno='200215122'ANDSdept='IS';[例2]向信息系学生视图IS_S中插入一个新的学生记录:200215129,赵新,20岁INSERTINTOIS_StudentVALUES(‘95029’,‘赵新’,20);转换为对基本表的更新:INSERTINTOStudent(Sno,Sname,Sage,Sdept)Sage<20;
25
VALUES(‘200215129','赵新',20,'IS');[例3]删除信息系学生视图IS_Student中为200215129的记录DELETEFROMIS_StudentWHERESno='200215129';转换为对基本表的更新:DELETEFROMStudentWHERESno='200215129'ANDSdept='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’依赖,记作X→Y。依赖若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖部分函数依赖,记作X部分函数依赖定义在R(U)中,如果X→Y,(Y
传递
Y,则称Y对X完全函数完全函数
F
P→Y。
P
X),YXY→Z,则称Z对X传递函数依赖传递函数依赖。传递函数依赖
记为:X→
Z
计算属性的封闭集,并由此得到关系的候选键。计算属性的封闭集,并由此得到关系的候选键。例:已知关系模式R(A,B,C,D,E)及其上的函数依赖集合F={A→D,B→C,E→A},
26
该关系模式的候选关键字是(B)。A.ABB.BEC.CDD.DE∵E→AA→D
∴E→D(传递律)∵E→AE→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
Y),使得X→Y,Y
X,则称R∈3NF。
若R∈3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。
例1:关系模式R中的属性全部是主属性,则R至少是(C)A.1NFB.2NFC.3NFD.BCNF例2:设有关系模式R(A,B,C,D),其数据依赖集:F={(A,B)→C,C→D},则关系模式R的规范化程度最高达到(B)A.1NFB.2NFC.3NFD.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)FGradeSno→Sdept(Sno,Cno)PSdept
27
Sno→Sloc(Sno,Cno)PSdept→Sloc123S-L-C的码为(Sno,Cno)S-L-C满足第一范式。非主属性Sdept和Sloc部分函数依赖于码(Sno,Cno)Sloc
S-L-C不是一个好的关系模式(1)插入异常(2)删除异常(3)数据冗余度大(4)修改复杂1原因Sdept、Sloc部分函数依赖于码。1解决方法S-L-C分解为两个关系模式,以消除这些部分函数依赖SC(Sno,Cno,Grade)S-L(Sno,Sdept,Sloc)234关系模式SC的码为(Sno,Cno)关系模式S-L的码为Sno这样非主属性对码都是完全函数依赖
第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.结点E.文件F.联系①、C.实体型G.有向边②和属性。D.表。
31
11.数据库逻辑设计的主要任务是A.建立E-R图和说明书C.建立数据流图12.E-R图中的联系可以与A.0个B.1个
。B.创建数据库说明D.把数据
送入数据库实体有关。D.多个
C.1个或多个
13.概念模型独立于。B.硬件设备和DBMSC.操作系统和DBMSA.E-R模型14.如果两个实体之间的联系是m∶n,则A.需要B.不需要C.可有可无15.数据流程图(DFD)是用于描述结构化方法中A.可行性分析B.详细设计C.需求分析
D.DBMS
引入第三个交叉关系。D.合并两个实体阶段的工具。D.程序编码。
E-R“表示”的是16.图是表示概念模型的有效工具之一,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表示
:GETW(职工.职工号,职工.工资):职工.仓库号=”WH2”QBE表示:职工仓库号职工号工资P.E1P.1220
WH2
(2).检索在上海工作的职工的工资。解:关系代数表示:∏职工号,工资(σ城市=“上海”(仓库)?职工)ALPHA表示:RANGE仓库X,职工GGETW(G.职工号,G.工资)(?X):(G.仓库号=X.仓库号∧X.城市=”上海”)
QBE表示:职工仓库号WH1职工号P.E1工资P.1220
33
仓库
仓库号WH1
城市上海
面积
(3).检索北京的供应商名称。解:关系代数表示:∏供应商名称(σ地址=“北京“(供应商))ALPHA表示:GETW(供应商.供应商名称):供应商.地址=“北京“QBE表示:供应商供应商号供应商名称P.607厂
地址北京
(4).检索目前与职工E6有业务联系的供应商名称。解:关系代数表示:∏供应商名称(σ职工号=“E6“(订购单)(供应商)ALPHA表示:RANGE订购单D,供应商SGETW(S.供应商名称):(?D)(D.职工号=”E6”∧D.供应商号=S.供应商号)QBE表示:供应商供应商号供应商名称地址P.607厂WH1
订购单
职工号E6
供应商号WH1
订购单号
订购日期
(5).检索所有职工的工资大于1220的仓库所在的城市。解:关系代数表示:∏城市(仓库(∏仓库号(职工)-∏仓库号(σ工资≤“1220“((职工))))ALPHA表示:RANGE职工Z,仓库CGETW(C.城市):(?Z)(Z.仓库号=C.仓库号∧Z.工资>1220)
34
QBE表示:仓库仓库号WH1城市P.北京面积
职工┐
仓库号WH1
职工号
工资<1220
(6).检索和北京的所有供应商都有业务联系的职工的工资。解:关系代数表示:R=∏供应商号(σ地址=“北京“(供应商))**北京的供应商号)∏工资(职工(∏职工号,供应商号(订购单)÷R)ALPHA表示:RANGE订购单D,供应商S,职工ZGETW(Z.工资):(?S)(?D)(Z.职工号=D.职工号∧D.供应商号=S.供应商号∧S.地址=”北京”)QBE表示:职工职工号仓库号工资P.1220E1
供应商ALL
供应商号WH4
供应商名称
地址北京
订购单
职工号E1
供应商号WH4
订购单号
订购日期
(7).检索至少和职工E1、E4、E7都有联系的供应商名称。解:关系代数表示:职工号E1E4
35
设临时关系R=
E7
(∏供应商)∏供应商名称(供应商号,职工号(订购单)÷R)ALPHA表示:RANGE供应商S,订购单D1,订购单D2,订购单D3GETW(S.供应商名称):(?D1)(D1.供应商号=S.供应商号∧D1.职工号=”E1”)(?D2)(D2.供应商号=S.供应商号∧D2.职工号=”E4”)(?D3)(D3.供应商号=S.供应商号∧D3.职工号=”E7”)
QBE表示:供应商供应商号WH1供应商名称P.607厂P.607厂P.607厂地址
WH1WH1
订购单
职工号E1E4E6
供应商号WH1
订购单号
订购日期
WH1WH1
36