数据库练习六答案

合集下载

数据库原理综合练习六参考答案

数据库原理综合练习六参考答案

数据库原理综合练习六参考答案一、选择题练习1.B.概念设计练习2.B.概念模型练习3.C.逻辑设计阶段练习4.B.可移植性练习5.B.安全性练习6.B.完整性练习7.B.授权练习8.D.安全性练习9.B.事务中包括的所有操作要么都做,要么都不做练习10.B.一致性练习11.C.并发控制练习12.D.只有出现并发操作时,才有可能出现死锁练习13.D.不一致练习14.C.封锁练习15.B.一致练习16.B.系统故障练习17.C.介质故障练习18.C.对数据的所有更新操作练习19.D.丢失修改、不可重复读、脏读练习20.B.范围越小二、填空题l.答案:概念设计2.答案:概念数据3.答案:需求分析,概念设计,逻辑设计,物理设计,编码和调试4.答案:物理5.答案:数据字典6.答案:数据设计7.答案:载入8.答案:①属性冲突②命名冲突③结构冲突9.答案:属性和码10.答案:数据库应用11.答案:①与特定的DBMS无关的,但为一般的关系模型、网状模型或层次模型所表示的一般模型②一般模型③特定DBMS支持的逻辑模型三、简答题和综合题1.答:(1)学生与课程的联系类型是多对多联系。

(2)课程与教师的联系类型是多对多联系。

(3)学生与教师的联系类型是一对多联系。

(4)完善本题E-R图的结果如图6.5所示。

2.解:本题的E-R图转换为如下关系模式:单位(单位号,地址,电话)职工(职工号,姓名,性别,年龄,单位号)3.略4.解:本题对应的E-R图如图6.8所示5.解:(1)本题的E-R图如图6.9所示。

(2)对应的关系模型结构如下:科室(科名,科地址,科电话)病房(病房号,床位号,科室名)医生(工作证号,姓名,职称,科室名,年龄)病人(病历号,姓名,性别,诊治,主管医生,病房号)(3)每个关系模式的候选码如下:科室的候选码是科名;病房的候选码是科室名十病房号;医生的候选码是工作证号;病人的候选码是病历号。

6.解:(1)学生选课局部E-R图如图6.10 所示,教师任课局部E-R图如图6.11所示。

数据库题库(含答案)

数据库题库(含答案)

数据库题库(含答案)一、单选题(共100题,每题1分,共100分)1、在关系模型中,用来表示实体的是( )A、字段B、记录C、表D、指针正确答案:B答案解析:二维表的每一行的所有数据称为一个元组,相当于一条记录,代表一个实体2、格式属性是给字段()数据时设置的样式。

A、初始值B、当前值C、输出D、输人正确答案:C答案解析:初始值是设置默认值属性,输入是设置有效性规则和输入掩码3、窗体通过来显示字段信息,以类似填空的格式输入数据。

( )A、宏B、模块C、表D、控件正确答案:D4、已知“邮政编码”字段为6位数字,对其设置掩码,正确的是( )A、######B、999999C、D、000000正确答案:D答案解析:必须是6位数字,因此就必须为000000。

5、下列关于Access 2010说法正确的是()A、Access 2010是一个关系型数据库系统B、Access 2010默认创建的文件的扩展名是.mdbC、Access 2010数据库可以作为应用软件的数据库,也可以作为WEB页的数据库D、Access 2010数据库中的数据只能本机访问,不能被其他计算机访问正确答案:C答案解析:Access 2010是数据库管理系统,默认扩展名是.accdb,其数据库既可以被本机访问,也可以被其他计算机访问。

6、有三个关系R、S和T如下:由关系R和S通过运算得到关系T,则所使用的运算为( )。

A、笛卡尔积B、交C、并D、连接正确答案:D答案解析:运算结果是通过R表和S表共同的属性B的值进行的连接运算。

7、下列不是关系术语的是( )A、元组B、属性C、分量D、数据正确答案:D答案解析:关系中的一行称为一个元组,一列称为一个属性,一个单元格称为一个分量。

8、在关系模式中,如果属性A和B存在1对1的联系,则( )A、A→BB、B→AC、ABD、以上都不是正确答案:C9、教师和同学之间的关系是()A、1:1B、1:nC、m:nD、n: 1正确答案:C答案解析:一个教师可以教多名学生,一个学生可以被多个教师教,因此两者之间是多对多的联系。

(完整版)数据库第六章答案

(完整版)数据库第六章答案

第六章6.1.1Attributes must be separated by commas. Thus here B is an alias of A.6.1.2a)SELECT address AS Studio_AddressFROM StudioWHERE NAME = 'MGM';b)SELECT birthdate AS Star_BirthdateFROM MovieStarWHERE name = 'Sandra Bullock';c)SELECT starNameFROM StarsInWHERE movieYear = 1980OR movieTitle LIKE '%Love%';However, above query will also return words that have the substring Love e.g. Lover. Below query will only return movies that have title containing the word Love.SELECT starNameFROM StarsInWHERE movieYear = 1980OR movieTitle LIKE 'Love %'OR movieTitle LIKE '% Love %'OR movieTitle LIKE '% Love'OR movieTitle = 'Love';d)SELECT name AS Exec_NameFROM MovieExecWHERE netWorth >= 10000000;e)SELECT name AS Star_NameFROM movieStarWHERE gender = 'M'OR address LIKE '% Malibu %';6.1.3a)SELECT model,speed,hdFROM PCWHERE price < 1000 ;MODEL SPEED HD----- ---------- ------1002 2.10 2501003 1.42 801004 2.80 2501005 3.20 2501007 2.20 2001008 2.20 2501009 2.00 2501010 2.80 3001011 1.86 1601012 2.80 1601013 3.06 8011 record(s) selected.b)SELECT model ,speed AS gigahertz,hd AS gigabytesFROM PCWHERE price < 1000 ;MODEL GIGAHERTZ GIGABYTES ----- ---------- ---------1002 2.10 2501003 1.42 801004 2.80 2501005 3.20 2501007 2.20 2001008 2.20 2501009 2.00 2501010 2.80 3001011 1.86 1601012 2.80 1601013 3.06 8011 record(s) selected.c)SELECT makerFROM ProductWHERE TYPE = 'printer' ; MAKER-----DDEEEHH7 record(s) selected.d)SELECT model,ram ,screenFROM LaptopWHERE price > 1500 ;MODEL RAM SCREEN----- ------ -------2001 2048 20.12005 1024 17.02006 2048 15.42010 2048 15.44 record(s) selected.e)SELECT *FROM PrinterWHERE color ;MODEL CASE TYPE PRICE----- ----- -------- ------3001 TRUE ink-jet 993003 TRUE laser 9993004 TRUE ink-jet 1203006 TRUE ink-jet 1003007 TRUE laser 2005 record(s) selected.Note: Implementation of Boolean type is optional in SQL standard (feature ID T031). PostgreSQL has implementation similar to above example. Other DBMS provide equivalent support. E.g. In DB2 the column type can be declare as SMALLINT with CONSTRAINT that the value can be 0 or 1. The result can be returned as Boolean type CHAR using CASE.CREATE TABLE Printer(model CHAR(4) UNIQUE NOT NULL,color SMALLINT ,type VARCHAR(8) ,price SMALLINT ,CONSTRAINT Printer_ISCOLOR CHECK(color IN(0,1)));SELECT model,CASE colorWHEN 1THEN 'TRUE'WHEN 0THEN 'FALSE'ELSE 'ERROR'END CASE ,type,priceFROM PrinterWHERE color = 1;f)SELECT model,hdFROM PCWHERE speed = 3.2AND price < 2000;MODEL HD----- ------1005 2501006 3202 record(s) selected.6.1.4a)SELECT class,countryFROM ClassesWHERE numGuns >= 10 ;CLASS COUNTRY ------------------ ------------Tennessee USA1 record(s) selected.b)SELECT name AS shipName FROM ShipsWHERE launched < 1918 ;SHIPNAME------------------HarunaHieiKirishimaKongoRamilliesRenownRepulseResolutionRevengeRoyal OakRoyal Sovereign11 record(s) selected.c)SELECT ship AS shipName, battleFROM Outcomes WHERE result = 'sunk' ; SHIPNAME BATTLE ------------------ ------------------Arizona Pearl Harbor Bismark Denmark Strait Fuso Surigao Strait Hood Denmark Strait Kirishima Guadalcanal Scharnhorst North Cape Yamashiro Surigao Strait 7 record(s) selected.d)SELECT name AS shipName FROM ShipsWHERE name = class ;SHIPNAME------------------IowaKongoNorth CarolinaRenownRevengeYamato6 record(s) selected.e)SELECT name AS shipNameFROM ShipsWHERE name LIKE 'R%';SHIPNAME------------------RamilliesRenownRepulseResolutionRevengeRoyal OakRoyal Sovereign7 record(s) selected.Note: As mentioned in exercise 2.4.3, there are some dangling pointers and to retrieve all ships a UNION of Ships and Outcomes is required.Below query returns 8 rows including ship named Rodney.SELECT name AS shipNameFROM ShipsWHERE name LIKE 'R%'UNIONSELECT ship AS shipNameFROM OutcomesWHERE ship LIKE 'R%';f) Only using a filter like '% % %' will incorrectly match name such as ' a b 'since % can match any sequence of 0 or more characters.SELECT name AS shipNameFROM ShipsWHERE name LIKE '_% _% _%' ;SHIPNAME------------------0 record(s) selected.Note: As in (e), UNION with results from Outcomes.SELECT name AS shipNameFROM ShipsWHERE name LIKE '_% _% _%'UNIONSELECT ship AS shipNameFROM OutcomesWHERE ship LIKE '_% _% _%' ;SHIPNAME------------------Duke of YorkKing George VPrince of Wales3 record(s) selected.6.1.5a)The resulting expression is false when neither of (a=10) or (b=20) is TRUE.a = 10b = 20 a = 10 OR b = 20NULL TRUE TRUETRUE NULL TRUEFALSE TRUE TRUETRUE FALSE TRUETRUE TRUE TRUEb)The resulting expression is only TRUE when both (a=10) and (b=20) are TRUE.a = 10b = 20 a = 10 AND b = 20TRUE TRUE TRUEc)The expression is always TRUE unless a is NULL.a < 10 a >= 10 a = 10 ANDb = 20TRUE FALSE TRUEFALSE TRUE TRUEd)The expression is TRUE when a=b except when the values are NULL.a b a = bNOT NULL NOT NULL TRUE when a=b; else FALSEe)Like in (d), the expression is TRUE when a<=b except when the values are NULL.a b a <= bNOT NULL NOT NULL TRUE when a<=b; else FALSE6.1.6SELECT *FROM MoviesWHERE LENGTH IS NOT NULL;6.2.1a)SELECT AS starNameFROM MovieStar M,StarsIn SWHERE = S.starNameAND S.movieTitle = 'Titanic'AND M.gender = 'M';b)SELECT S.starNameFROM Movies M ,StarsIn S,Studios TWHERE ='MGM'AND M.year = 1995AND M.title = S.movieTitleAND M.studioName = ;c)SELECT AS presidentNameFROM MovieExec X,Studio TWHERE X.cert# = T.presC#AND = 'MGM';d)SELECT M1.titleFROM Movies M1,Movies M2WHERE M1.length > M2.lengthAND M2.title ='Gone With the Wind' ;e)SELECT AS execNameFROM MovieExec X1,MovieExec X2WHERE Worth > WorthAND = 'Merv Griffin' ;6.2.2a)SELECT R.maker AS manufacturer, L.speed AS gigahertzFROM Product R,Laptop LWHERE L.hd >= 30AND R.model = L.model ; MANUFACTURER GIGAHERTZ ------------ ----------A 2.00A 2.16A 2.00B 1.83E 2.00E 1.73E 1.80F 1.60F 1.60G 2.0010 record(s) selected.b)SELECT R.model,P.priceFROM Product R,PC PWHERE R.maker = 'B'AND R.model = P.model UNIONSELECT R.model,L.priceFROM Product R,Laptop LWHERE R.maker = 'B'AND R.model = L.model UNIONSELECT R.model,T.priceFROM Product R,Printer TWHERE R.maker = 'B'AND R.model = T.model ;----- ------1004 6491005 6301006 10492007 14294 record(s) selected.c)SELECT R.makerFROM Product R,Laptop LWHERE R.model = L.model EXCEPTSELECT R.makerFROM Product R,PC PWHERE R.model = P.model ; MAKER-----FG2 record(s) selected.d)SELECT DISTINCT P1.hd FROM PC P1,PC P2WHERE P1.hd =P2.hdAND P1.model > P2.model ; Alternate Answer:SELECT DISTINCT P.hdFROM PC PGROUP BY P.hdHAVING COUNT(P.model) >= 2 ; e)SELECT P1.model,P2.modelFROM PC P1,PC P2WHERE P1.speed = P2.speedAND P1.ram = P2.ramAND P1.model < P2.model ; MODEL MODEL----- -----1004 10121 record(s) selected.f)FROM(SELECT maker,R.modelFROM PC P,Product RWHERE SPEED >= 3.0AND P.model=R.modelUNIONSELECT maker,R.modelFROM Laptop L,Product RWHERE speed >= 3.0AND L.model=R.model) MGROUP BY M.makerHAVING COUNT(M.model) >= 2 ; MAKER-----B1 record(s) selected.6.2.3a)SELECT FROM Ships S,Classes CWHERE S.class = C.classAND C.displacement > 35000; NAME------------------IowaMissouriMusashiNew JerseyNorth CarolinaWashingtonWisconsinYamato8 record(s) selected.b)SELECT ,C.displacement,C.numGunsFROM Ships S ,Outcomes O,Classes CWHERE = O.shipAND S.class = C.classAND O.battle = 'Guadalcanal' ;NAME DISPLACEMENT NUMGUNS------------------ ------------ -------Kirishima 32000 8Washington 37000 92 record(s) selected.Note:South Dakota was also engaged in battle of Guadalcanal but not chosen since it is not in Ships table(Hence, no information regarding it's Class is available).c)SELECT name shipNameFROM ShipsUNIONSELECT ship shipNameFROM Outcomes ;SHIPNAME------------------ArizonaBismarkCaliforniaDuke of YorkFusoHarunaHieiHoodIowaKing George VKirishimaKongoMissouriMusashiNew JerseyNorth CarolinaPrince of WalesRamilliesRenownRepulseResolutionRevengeRodneyRoyal OakRoyal SovereignScharnhorstSouth DakotaTenneseeTennesseeWashingtonWest VirginiaWisconsinYamashiroYamato34 record(s) selected.d)SELECT C1.countryFROM Classes C1,Classes C2WHERE C1.country = C2.country AND C1.type = 'bb'AND C2.type = 'bc' ; COUNTRY------------Gt. BritainJapan2 record(s) selected.e)SELECT O1.shipFROM Outcomes O1,Battles B1WHERE O1.battle = AND O1.result = 'damaged'AND EXISTS(SELECT B2.dateFROM Outcomes O2,Battles B2WHERE O2.battle= AND O1.ship = O2.shipAND B1.date < B2.date) ;SHIP------------------0 record(s) selected.f)SELECT O.battleFROM Outcomes O,Ships S ,Classes CWHERE O.ship = AND S.class = C.class GROUP BY C.country,O.battleHAVING COUNT(O.ship) > 3;SELECT O.battleFROM Ships S ,Classes C,Outcomes OWHERE C.Class = S.classAND O.ship = GROUP BY C.country,O.battleHAVING COUNT(O.ship) >= 3;6.2.4Since tuple variables are not guaranteed to be unique, every relation Ri should be renamed using an alias. Every tuple variable should be qualified with the alias. Tuple variables for repeating relations will also be distinctly identified this way.Thus the query will be likeSELECT A1.COLL1,A1.COLL2,A2.COLL1,…FROM R1 A1,R2 A2,…,Rn AnWHERE A1.COLL1=A2.COLC2,…6.2.5Again, create a tuple variable for every Ri, i=1,2,...,nThat is, the FROM clause isFROM R1 A1, R2 A2,...,Rn An.Now, build the WHERE clause from C by replacing every reference to some attribute COL1 of Ri by Ai.COL1. In addition apply Natural Join i.e. add condition to check equality of common attribute names between Ri and Ri+1 for all i from 0 to n-1. Also, build the SELECT clause from list of attributes L by replacing every attribute COLj of Ri by Ai.COLj.6.3.1a)SELECT DISTINCT makerFROM ProductWHERE model IN(SELECT modelFROM PCWHERE speed >= 3.0);SELECT DISTINCT R.makerFROM Product RWHERE EXISTS(SELECT P.modelFROM PC PWHERE P.speed >= 3.0AND P.model =R.model);b)SELECT P1.modelFROM Printer P1WHERE P1.price >= ALL(SELECT P2.priceFROM Printer P2) ;SELECT P1.modelFROM Printer P1WHERE P1.price IN(SELECT MAX(P2.price)FROM Printer P2) ;c)SELECT L.modelFROM Laptop LWHERE L.speed < ANY(SELECT P.speedFROM PC P) ;SELECT L.modelFROM Laptop LWHERE EXISTS(SELECT P.speedFROM PC PWHERE P.speed >= L.speed ) ;d)SELECT modelFROM(SELECT model,priceFROM PCUNIONSELECT model,priceFROM LaptopUNIONSELECT model,priceFROM Printer) M1WHERE M1.price >= ALL (SELECT priceFROM PCUNIONSELECT priceFROM LaptopUNIONSELECT priceFROM Printer) ;(d) – contd --SELECT modelFROM(SELECT model,priceFROM PCUNIONSELECT model,priceFROM LaptopUNIONSELECT model,priceFROM Printer) M1WHERE M1.price IN(SELECT MAX(price)FROM(SELECT priceFROM PCUNIONSELECT priceFROM LaptopUNIONSELECT priceFROM Printer) M2) ;e)SELECT R.makerFROM Product R,Printer TWHERE R.model =T.model AND T.price <= ALL(SELECT MIN(price)FROM Printer);SELECT R.makerFROM Product R,Printer T1WHERE R.model =T1.model AND T1.price IN(SELECT MIN(T2.price) FROM Printer T2);f)SELECT R1.makerFROM Product R1,PC P1WHERE R1.model=P1.model AND P1.ram IN(SELECT MIN(ram)FROM PC)AND P1.speed >= ALL(SELECT P1.speedFROM Product R1,PC P1WHERE R1.model=P1.model AND P1.ram IN(SELECT MIN(ram)FROM PC));SELECT R1.makerFROM Product R1,PC P1WHERE R1.model=P1.modelAND P1.ram =(SELECT MIN(ram)FROM PC)AND P1.speed IN(SELECT MAX(P1.speed)FROM Product R1,PC P1WHERE R1.model=P1.model AND P1.ram IN(SELECT MIN(ram)FROM PC));6.3.2a)SELECT C.countryFROM Classes CWHERE numGuns IN(SELECT MAX(numGuns)FROM Classes);SELECT C.countryFROM Classes CWHERE numGuns >= ALL(SELECT numGunsFROM Classes);b)SELECT DISTINCT C.class FROM Classes C,Ships SWHERE C.class = S.classAND EXISTS(SELECT shipFROM Outcomes OWHERE O.result='sunk'AND O.ship = ) ;SELECT DISTINCT C.class FROM Classes C,Ships SWHERE C.class = S.classAND IN(SELECT shipFROM Outcomes OWHERE O.result='sunk' ) ;c)SELECT FROM Ships SWHERE S.class IN(SELECT classFROM Classes CWHERE bore=16) ;SELECT FROM Ships SWHERE EXISTS(SELECT classFROM Classes CWHERE bore =16AND C.class = S.class );d)SELECT O.battleFROM Outcomes O WHERE O.ship IN(SELECT nameFROM Ships SWHERE S.Class ='Kongo' );SELECT O.battleFROM Outcomes O WHERE EXISTS(SELECT nameFROM Ships SWHERE S.Class ='Kongo' AND = O.ship );e)SELECT FROM Ships S,Classes CWHERE S.Class = C.ClassAND numGuns >= ALL(SELECT numGunsFROM Ships S2,Classes C2WHERE S2.Class = C2.Class AND C2.bore = C.bore) ;SELECT FROM Ships S,Classes CWHERE S.Class = C.ClassAND numGuns IN(SELECT MAX(numGuns)FROM Ships S2,Classes C2WHERE S2.Class = C2.Class AND C2.bore = C.bore) ;Better answer;SELECT FROM Ships S,Classes CWHERE S.Class = C.ClassAND numGuns >= ALL(SELECT numGunsFROM Classes C2WHERE C2.bore = C.bore) ;SELECT FROM Ships S,Classes CWHERE S.Class = C.ClassAND numGuns IN(SELECT MAX(numGuns)FROM Classes C2WHERE C2.bore = C.bore) ;6.3.3SELECT titleFROM MoviesGROUP BY titleHAVING COUNT(title) > 1 ;6.3.4SELECT FROM Ships S,Classes CWHERE S.Class = C.Class ;Assumption: In R1 join R2, the rows of R2 are unique on the joining columns. SELECT COLL12,COLL13,COLL14FROM R1WHERE COLL12 IN(SELECT COL22FROM R2)AND COLL13 IN(SELECT COL33FROM R3)AND COLL14 IN(SELECT COL44FROM R4) ...6.3.5(a)SELECT ,S.addressFROM MovieStar S,MovieExec EWHERE S.gender ='F'AND Worth > 10000000AND = AND S.address = E.address ;Note: As mentioned previously in the book, the names of stars are unique. However no such restriction exists for executives. Thus, both name and address are required as join columns.Alternate solution:SELECT name,addressFROM MovieStarWHERE gender = 'F'AND (name, address) IN(SELECT name,addressFROM MovieExecWHERE netWorth > 10000000) ;(b)SELECT name,addressFROM MovieStarWHERE (name,address) NOT IN(SELECT name addressFROM MovieExec) ;6.3.6By replacing the column in subquery with a constant and using IN subquery for the constant, statement equivalent to EXISTS can be found.i.e. replace "WHERE EXISTS (SELECT C1 FROM R1..)" by "WHERE 1 IN (SELECT 1 FROM R1...)"Example:SELECT DISTINCT R.makerFROM Product RWHERE EXISTS(SELECT P.modelFROM PC PWHERE P.speed >= 3.0AND P.model =R.model) ;Above statement can be transformed to below statement.SELECT DISTINCT R.makerFROM Product RWHERE 1 IN(SELECT 1FROM PC PWHERE P.speed >= 3.0AND P.model =R.model) ;6.3.7(a)n*m tuples are returned where there are n studios and m executives. Each studio will appear m times; once for every exec.(b)There are no common attributes between StarsIn and MovieStar; hence no tuples are returned.(c)There will be at least one tuple corresponding to each star in MovieStar. The unemployed stars will appear once with null values for StarsIn. All employed stars will appear as many times as the number of movies they are working in. In other words, for each tuple in StarsIn(starName), the correspoding tuple from MovieStar(name)) is joined and returned. For tuples in MovieStar that do not have a corresponding entry in StarsIn, the MovieStar tuple is returned with null values for StarsIn columns.6.3.8Since model numbers are unique, a full natural outer join of PC, Laptop and Printer will return one row for each model. We want all information about PCs, Laptops and Printers even if the model does not appear in Product but vice versa is not true. Thus a left natural outer join between Product and result above is required. The type attribute from Product must be renamed since Printer has a type attribute as well and the two attributes are different.(SELECT maker,model,type AS productTypeFROM Product) RIGHT NATURAL OUTER JOIN ((PC FULL NATURAL OUTER JOIN Laptop) FULL NATURAL OUTER JOIN Printer); Alternately, the Product relation can be joined individually with each of PC,Laptop and Printer and the three results can be Unioned together. For attributes that do not exist in one relation, a constant such as 'NA' or 0.0 can be used. Below is an example of this approach using PC and Laptop.SELECT R.MAKER ,R.MODEL ,R.TYPE ,P.SPEED ,P.RAM ,P.HD ,0.0 AS SCREEN,P.PRICEFROM PRODUCT R,PC PWHERE R.MODEL = P.MODELUNIONSELECT R.MAKER ,R.MODEL ,R.TYPE ,L.SPEED ,L.RAM ,L.HD ,L.SCREEN,L.PRICEFROM PRODUCT R,LAPTOP LWHERE R.MODEL = L.MODEL;6.3.9SELECT *FROM Classes RIGHT NATURALOUTER JOIN Ships ;6.3.10SELECT *FROM Classes RIGHT NATURALOUTER JOIN ShipsUNION(SELECT C2.class ,C2.type ,C2.country ,C2.numguns ,C2.bore ,C2.displacement,C2.class NAME ,FROM Classes C2,Ships S2WHERE C2.Class NOT IN(SELECT ClassFROM Ships)) ;6.3.11(a)SELECT *FROM R,S ;(b)Let Attr consist ofAttrR = attributes unique to RAttrS = attributes unique to SAttrU = attributes common to R and SThus in Attr, attributes common to R and S are not repeated. SELECT AttrFROM R,SWHERE R.AttrU1 = S.AttrU1AND R.AttrU2 = S.AttrU2 ...AND R.AttrUi = S.AttrUi ;(c)SELECT *FROM R,SWHERE C ;6.4.1(a)DISTINCT keyword is not required here since each model only occurs once in PC relation. SELECT modelFROM PCWHERE speed >= 3.0 ;(b)SELECT DISTINCT R.makerFROM Product R,Laptop LWHERE R.model = L.modelAND L.hd > 100 ;(c)SELECT R.model,P.priceFROM Product R,PC PWHERE R.model = P.modelAND R.maker = 'B'UNIONSELECT R.model,L.priceFROM Product R,Laptop LWHERE R.model = L.modelAND R.maker = 'B'UNIONSELECT R.model,T.priceFROM Product R,Printer TWHERE R.model = T.modelAND R.maker = 'B' ;(d)SELECT modelFROM PrinterWHERE color=TRUEAND type ='laser' ;(e)SELECT DISTINCT R.makerFROM Product R,Laptop LWHERE R.model = L.modelAND R.maker NOT IN(SELECT R1.makerFROM Product R1,PC PWHERE R1.model = P.model) ;better:SELECT DISTINCT R.makerFROM Product RWHERE R.type = 'laptop'AND R.maker NOT IN(SELECT R.makerFROM Product RWHERE R.type = 'pc') ;(f)With GROUP BY hd, DISTINCT keyword is not required. SELECT hdFROM PCGROUP BY hdHAVING COUNT(hd) > 1 ;(g)SELECT P1.model,P2.modelFROM PC P1,PC P2WHERE P1.speed = P2.speedAND P1.ram = P2.ramAND P1.model < P2.model ;(h)SELECT R.makerFROM Product RWHERE R.model IN(SELECT P.modelFROM PC PWHERE P.speed >= 2.8)OR R.model IN(SELECT L.modelFROM Laptop LWHERE L.speed >= 2.8)GROUP BY R.makerHAVING COUNT(R.model) > 1 ;(i)After finding the maximum speed, an IN subquery can provide the manufacturer name. SELECT MAX(M.speed)FROM(SELECT speedFROM PCUNIONSELECT speedFROM Laptop) M ;SELECT R.makerFROM Product R,PC PWHERE R.model = P.modelAND P.speed IN(SELECT MAX(M.speed)FROM(SELECT speedFROM PCUNIONSELECT speedFROM Laptop) M)UNIONSELECT R2.makerFROM Product R2,Laptop LWHERE R2.model = L.modelAND L.speed IN(SELECT MAX(N.speed)FROM(SELECT speedFROM PCUNIONSELECT speedFROM Laptop) N) ;Alternately,SELECT COALESCE(MAX(P2.speed),MAX(L2.speed),0) SPEEDFROM PC P2FULL OUTER JOIN Laptop L2ON P2.speed = L2.speed ;SELECT R.makerFROM Product R,PC PWHERE R.model = P.modelAND P.speed IN(SELECT COALESCE(MAX(P2.speed),MAX(L2.speed),0) SPEED FROM PC P2FULL OUTER JOIN Laptop L2ON P2.speed = L2.speed)UNIONSELECT R2.makerFROM Product R2,Laptop LWHERE R2.model = L.modelAND L.speed IN(SELECT COALESCE(MAX(P2.speed),MAX(L2.speed),0) SPEED FROM PC P2FULL OUTER JOIN Laptop L2ON P2.speed = L2.speed)(j)SELECT R.makerFROM Product R,PC PWHERE R.model = P.modelGROUP BY R.makerHAVING COUNT(DISTINCT speed) >= 3 ;(k)SELECT R.makerFROM Product R,PC PWHERE R.model = P.modelGROUP BY R.makerHAVING COUNT(R.model) = 3 ;better;SELECT R.makerFROM Product RWHERE R.type='pc'GROUP BY R.makerHAVING COUNT(R.model) = 3 ;6.4.2(a)We can assume that class is unique in Classes and DISTINCT keyword is not required.SELECT class,countryFROM ClassesWHERE bore >= 16 ;(b)Ship names are not unique (In absence of hull codes, year of launch can help distinguish ships).SELECT DISTINCT name AS Ship_NameFROM ShipsWHERE launched < 1921 ;(c)SELECT DISTINCT ship AS Ship_NameFROM OutcomesWHERE battle = 'Denmark Strait'AND result = 'sunk' ;(d)SELECT DISTINCT AS Ship_NameFROM Ships S,Classes CWHERE S.class = C.classAND C.displacement > 35000 ;(e)SELECT DISTINCT O.ship AS Ship_Name,C.displacement ,C.numGunsFROM Classes C ,Outcomes O,Ships SWHERE C.class = S.classAND = O.shipAND O.battle = 'Guadalcanal' ;SHIP_NAME DISPLACEMENT NUMGUNS------------------ ------------ -------Kirishima 32000 8Washington 37000 92 record(s) selected.Note: South Dakota was also in Guadalcanal but its class information is not available. Below query will return name of all ships that were in Guadalcanal even if no other information is available (shown as NULL). The above query is modified from INNER joins to LEFT OUTER joins.SELECT DISTINCT O.ship AS Ship_Name,C.displacement ,C.numGunsFROM Outcomes OLEFT JOIN Ships SON = O.shipLEFT JOIN Classes CON C.class = S.classWHERE O.battle = 'Guadalcanal' ;SHIP_NAME DISPLACEMENT NUMGUNS------------------ ------------ -------Kirishima 32000 8South Dakota - -Washington 37000 93 record(s) selected.(f)The Set opearator UNION guarantees unique results.SELECT ship AS Ship_NameFROM OutcomesUNIONSELECT name AS Ship_NameFROM Ships ;(g)SELECT C.classFROM Classes C,Ships SWHERE C.class = S.classGROUP BY C.classHAVING COUNT() = 1 ;better:SELECT S.classFROM Ships SGROUP BY S.classHAVING COUNT() = 1 ;(h)The Set opearator INTERSECT guarantees unique results.SELECT C.countryFROM Classes CWHERE C.type='bb'INTERSECTSELECT C2.countryFROM Classes C2WHERE C2.type='bc' ;However, above query does not account for classes without any ships belonging to them. SELECT C.countryFROM Classes C,Ships SWHERE C.class = S.classAND C.type ='bb'INTERSECTSELECT C2.countryFROM Classes C2,Ships S2WHERE C2.class = S2.classAND C2.type ='bc' ;(i)SELECT O2.ship AS Ship_Name FROM Outcomes O2,Battles B2WHERE O2.battle = AND B2.date > ANY(SELECT B.dateFROM Outcomes O,Battles BWHERE O.battle = AND O.result ='damaged'AND O.ship = O2.ship);6.4.3a)SELECT DISTINCT R.maker FROM Product R,PC PWHERE R.model = P.modelAND P.speed >= 3.0;b)Models are unique.SELECT P1.modelFROM Printer P1LEFT OUTER JOIN Printer P2 ON (P1.price < P2.price) WHERE P2.model IS NULL ;c)SELECT DISTINCT L.model FROM Laptop L,PC PWHERE L.speed < P.speed ;d)Due to set operator UNION, unique results are returned.It is difficult to completely avoid a subquery here. One option is to use Views. CREATE VIEW AllProduct ASSELECT model,priceFROM PCUNIONSELECT model,priceFROM LaptopUNIONSELECT model,priceFROM Printer ;SELECT A1.modelFROM AllProduct A1LEFT OUTER JOIN AllProduct A2ON (A1.price < A2.price)WHERE A2.model IS NULL ;But if we replace the View, the query contains a FROM subquery. SELECT A1.modelFROM(SELECT model,priceFROM PCUNIONSELECT model,priceFROM LaptopUNIONSELECT model,priceFROM Printer) A1LEFT OUTER JOIN(SELECT model,priceFROM PCUNIONSELECT model,priceFROM LaptopUNIONSELECT model,priceFROM Printer) A2ON (A1.price < A2.price) WHERE A2.model IS NULL ;e)SELECT DISTINCT R.makerFROM Product R,Printer TWHERE R.model =T.modelAND T.price <= ALL(SELECT MIN(price)FROM Printer);f)SELECT DISTINCT R1.maker FROM Product R1,PC P1WHERE R1.model=P1.modelAND P1.ram IN(SELECT MIN(ram)FROM PC)AND P1.speed >= ALL(SELECT P1.speedFROM Product R1,PC P1WHERE R1.model=P1.modelAND P1.ram IN(SELECT MIN(ram)FROM PC));6.4.4a)SELECT DISTINCT C1.country FROM Classes C1LEFT OUTER JOIN Classes C2 ON (C1.numGuns < C2.numGuns) WHERE C2.country IS NULL ;。

数据库第六章习题答案

数据库第六章习题答案

第六章习题答案一、选择填空1、A2、C3、D4、B5、D6、A7、C8、A9、D 10、A11、C 12、A 13、B 14、C 15、C 16、D 17、B 18、C 19、A 20、D21、C 22、B二、判断下列描述的正确性,对者划√,错者划×。

1、√2、×3、×4、×5、√6、√7、×8、√9、×10、√11、√12、√13、√14、√15、×16、√17、√18、√19、√20、×21、×22、×三、分析下列程序的输出结果。

1、运行该程序输出结果如下所示。

Default constructor calledConstructor calleda=0,b=0a=4,b=82、运行该程序输出结果如下所示。

a=7,b=93、运行该程序输出结果如下所示。

1044、运行该程序输出结果如下所示。

1035,789.5045、运行该程序输出结果如下所示。

1{}{0,1,2,3,4,5,6,7,8}1{11,12,13,14,15,16,17,18,19}{19,18,17,16,15,14,13,12,11}6、运行该程序输出结果如下所示。

Starting1:Default constructor called.Default constructor called.Default constructor called.Eding1:Starting2:Constructor: a=5,b=6Constructor: a=7,b=8Constructor: a=9,b=10Ending2:Destructor called.a=9,b=10Destructor called.a=7,b=8Destructor called.a=5,b=6Destructor called.a=5,b=6Destructor called.a=3,b=4Destructor called.a=1,b=27、运行该程序输出结果如下所示。

数据库系统基础教程第六章答案

数据库系统基础教程第六章答案

数据库系统基础教程第六章答案数据库系统基础教程第六章答案【篇一:数据库系统基础教程答案ch7】>数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案数据库系统基础教程答案a)create table movies ( titlechar(100), yearint, length int,gee char(10),studioname char(30), producerc# int,primary key (title, year),foreign key (producerc#) references movieexec(cert#) ); orcreate table movies ( titlechar(100), yearint, length int,gee char(10),studioname char(30),producerc# int references movieexec(cert#), primary key (title, year) ); b)create table movies ( titlechar(100), yearint, length int,gee char(10),studioname char(30),producerc# int references movieexec(cert#) on delete set null on update set null,primary key (title, year) );c)create table movies ( titlechar(100), yearint, length int,gee char(10),studioname char(30),producerc# int references movieexec(cert#) on delete cascade on update cascade,primary key (title, year) ); d)create table starsin (movietitle char(100)references movie(title), movieyear int,starname char(30),primary key (movietitle, movieyear, starname) );e)create table starsin (movietitle char(100)references movie(title) on delete cascade, movieyear int,starname char(30),primary key (movietitle, movieyear, starname) ); to declare such a foreign-key constraint between the relations movie and starsin, values of the referencing attributes in movie should appear inmoviestar as unique values. however, based on primary key declaration in relation starin, the uniqueness of movies is guaranteed with movietitle, movieyear, and starname attributes. even with title and year as referencing attributes there is no way of referencing unique movie from starsinwithout starname information. therefore, such a constraint can not be expressed using a foreign-key constraint.alter table productadd primary key (model);alter table pcadd foreign key (model) references product (model); alter table laptopadd foreign key (model) references product(model); alter table printeradd foreign key (model) references product (model);alter table classesadd primary key (class); alter table shipsadd primary key (name); alter table shipsadd foreign key (class) references classes(calss); alter table battlesadd primary key (name); alter table outcomes add foreign key (ship) references ships (name); alter table outcomesadd foreign key (battle) references battles (name);a)alter table shipsadd foreign key (class) references classes (class) on delete set null on update set null;in addition to the above declaration, class must be declared the primary key for classes. b)alter table outcomeadd foreign key (battle) references battles (name) on delete set null on update set null; c)alter table outcomesadd foreign key (ship) references ships (name) on delete set null on update set null; a)yearint check (year = 1915)b)length int check (length = 60 and length = 250) c)studioname char(30)check (studioname in (?disney?, fox?, ?mgm?, ?paramount?) ) a)create table laptop ( …speed decimal(4,2) check (speed = ) … ); b) create table printer ( …type varchar(10)check (type in (?laser?, ?ink-jet?, ?bubble-jet?)) … ); c)create table product ( …type varchar(10)check (type in(?pc?, ?laptop?, ?printer?)) … );d)create table product ( …model char(4)check (model in (select model from pc union all select model from laptop union allselect model from printer)) … );* note this doesn?t check the attribute constraint violation caused by deletions from pc, laptop, or printera)【篇二:数据库原理教程习题答案(全)】t>第1章数据库系统概述习题参考答案税务局使用数据库存储纳税人信息、纳税人缴纳税款信息等。

数据库系统概论练习题库及参考答案

数据库系统概论练习题库及参考答案

数据库系统概论练习题库及参考答案一、单选题(共80题,每题1分,共80分)1、下列不属于数据库系统特点的是( )A、数据独立性高B、数据冗余度高C、数据完整性D、数据共享正确答案:C2、把表和索引分开放在不同的磁盘上以提高性能是哪个阶段考虑的事项()A、需求分析B、数据库实施C、数据库物理设计D、数据库运行与维护正确答案:C3、下列关于数据模型中实体间联系的描述正确的是()。

A、单个实体不能构成E-R图B、仅在两个实体之间有联系C、实体间的联系不能有属性D、实体间可以存在多种联系正确答案:D4、同一个关系的任两个元组值( )。

A、其他三个答案均不正确B、必须完全相同C、不能完全相同D、可以完全相同正确答案:C5、下列模型中,广泛采用E-R模型设计方法的是()。

A、逻辑模型B、概念模型C、物理模型D、外模型正确答案:B6、在SQL的查询语句中,对应关系代数中“投影”运算的语句是()。

A、WHEREB、SELECTC、FROMD、SET正确答案:B7、下列关系代数操作中,哪些运算要求两个运算对象其属性结构完全相同()。

A、自然连接、除法B、并、交、差C、投影、选择D、笛卡尔积、连接正确答案:B8、设有三个域D1={A,B}、D2={C,D,E}、D3={F,G},则其笛卡尔积D1×D2×D3的基数为( )。

A、3B、7C、5D、12正确答案:D9、当前数据库应用系统的主流数据模型是()。

A、面向对象数据模型B、网状数据模型C、关系数据模型D、层次数据模型正确答案:C10、关于“死锁”,下列说法中正确的是()。

A、当两个用户竞争相同资源时不会发生死锁B、只有出现并发操作时,才有可能出现死锁C、在数据库操作中防止死锁的方法是禁止两个用户同时操作数据库D、死锁是操作系统中的问题,数据库操作中不存在正确答案:B11、在关系模式R中,函数依赖X→Y的语义是()。

A、在R的每一关系中,若两个元组的X值相等,则Y值也相等B、在R的某一关系中,Y值应与X值相等C、在R的某一关系中,若两个元组的X值相等,则Y值也相等D、在R的每一关系中,Y值应与X值相等正确答案:A12、从E-R图导出关系模式时,如果两实体间的联系是m:n;下列说法中正确的是()A、将n方码和联系的属性纳入m方的属性中B、增加一个关系表示联系,其中纳入m方和n方的码C、在m方属性和n方属性中均增加一个表示级别的属性D、将m方码和联系的属性纳入n方的属性中正确答案:B13、对于关系模式S-L(Sno,Sdept,Sloc),S-L中有下列函数依赖:Sno→Sdept,Sdept→Sloc ,SnoSloc,将S-L分解为下面三个关系模式:SN(Sno),SD(Sdept),SO(Sloc),这种分解是()。

数据库练习第6章

数据库练习第6章

第六章习题一、选择题:1.关系规范化中的删除操作异常是指①,插入操作异常是指②。

A.不该删除的数据被删除B.不该插入的数据被插入C.应该删除的数据未被删除D.应该插入的数据未被插入答案:①A ②D2.设计性能较优的关系模式称为规范化,规范化主要的理论依据是____。

A.关系规范化理论B.关系运算理论C.关系代数理论D.数理逻辑答案:A3.规范化理论是关系数据库进行逻辑设计的理论依据。

根据这个理论,关系数据库中的关系必须满足:其每一属性都是____。

A.互不相关的B.不可分解的C.长度可变的D.互相关联的答案:B4.关系数据库规范化是为解决关系数据库中____问题而引人的。

A.插入、删除和数据冗余B.提高查询速度C.减少数据操作的复杂性D.保证数据的安全性和完整性答案:A5.规范化过程主要为克服数据库逻辑结构中的插入异常,删除异常以及____的缺陷。

A.数据的不一致性B.结构不合理C.冗余度大D.数据丢失答案:C6.当关系模式R(A,B)已属于3NF,下列说法中____是正确的。

A.它一定消除了插入和删除异常B.仍存在一定的插入和删除异常C.一定属于BCNF D.A和C都是答案:B7.关系模型中的关系模式至少是____。

A.1NF B.2NF C.3NF D.BCNF答案:A8.在关系DB中,任何工元关系模式的最高范式必定是____。

A.1NF B.2NF C.3NF D.BCNF答案:D9.在关系模式R中,若其函数依赖集中所有候选关键宇都是决定因素,则R最高范式是____。

A.2NF B.3NF C.4 NF D.BCNF答案:C10.当B属性函数依赖于A属性时,属性A与B的联系是____。

A.1对多B.多对1 C.多对多D.以上都不是答案:B11.在关系模式中,如果属性A和B存在1对1的联系,则说____。

A.A→B B.B→A C.A↔B D.以上都不是答案:C12.候选码中的属性称为____。

数据库课后习题答案(仅供参考)

数据库课后习题答案(仅供参考)

第1章数据库基础知识答案一、简答题1.(张红超提供)DB:数据库(Datebase,DB)是按照一定的方式组织的、存储在外部存储设备上的、能为多个用户共享的、与应用程序相互独立的相关数据集合。

DBMS:数据库管理系统(Database Management System,DBMS)是对数据库中数据资源进行统一管理和控制的软件,它提供数据定义、数据操作、数据库管理、数据库建立和维护以及通信等功能。

DBS:数据库系统(Database System,DBS)是由计算机系统、数据库及其描述机构、数据库管理系统和有关人员组成,是由这几个方面组成的具有高度组织性的总体。

区别:数据库就是存放数据的仓库,数据库管理系统就是用来管理数据库的,其中数据库系统是一个通称,包括数据库、数据库管理系统、数据库管理人员等的统称,是最大的范畴。

2.(张红超提供)(1) 实体(Entity)是现实世界客观存在并可相互区别的事物可以是具体的人、事、物或抽象的概念(某次活动,某种思想)。

(2) 属性(Attribute)实体所具有的特性或特征。

一个实体可以由若干个属性来刻画。

分“型”属性名和“值”取值。

(3)主码(Primary Key,关键字)唯一标识实体的属性或属性组称为主码。

3.(张红超提供)(1)需求分析:收集和分析数据库所有用户的信息需求和处理需求。

(2)概念结构设计:对用户需求进行综合、归纳与抽象,把用户的信息要求统一到一个整体逻辑结构中,通常用E-R图表示概念模型。

这是数据库设计的关键。

(3)逻辑结构设计:将概念模型转换为某个DBMS所支持的数据模型(如关系模型),形成数据库的模式和外模式。

(4)物理设计:确定数据库的物理结构并对其评价(时间效率和空间效率)物理设计的结果是形成数据库的内模式。

(5)数据库实施:在计算机系统上建立起实际数据库结构、装入数据、测试、试运行的过程。

(6)数据库运行和维护:数据库投入运行标志着开发任务的基本完成和维护工作的开始。

数据库练习题库(含答案)

数据库练习题库(含答案)

数据库练习题库(含答案)一、单选题(共98题,每题1分,共98分)1.在需求分析阶段,结构化分析和建模方法是一种较为有效的需求分析方法,下列不属于结构化分析和建模方法优点的是()。

A、可避免过早陷入具体细节B、从局部或子系统开始分析问题,便于建模人员了解业务模型C、图形对象不涉及太多技术术语,便于用户理解模型D、用图形化的模型能直观表示系统功能正确答案:B2.DBMS通过加锁机制允许用户并发访问数据库,这属于DBMS提供的()。

A、数据定义功能B、数据操纵功能C、数据库运行管理与控制功能D、数据库建立与维护功能正确答案:C3.关于数据划分策略,下述说法错误的是()。

A、散列划分釆用某种散列函数,以数据的划分属性作为函数参数,计算数据应存储的磁盘序号B、范围划分根据某个属性的取值,将数据划分为n个部分,分别存储到不同磁盘上C、范围划分有利于范围查询和点查询,但也可能会引起数据分布不均匀及并行处理能力下降问题D、轮转法划分能保证元组在多个磁盘上的平均分配,并具有较高的点查询和范围查询正确答案:D4.存取方法设计属于数据库设计的()阶段的设计任务。

A、逻辑结构设计B、概念结构设计C、系统需求分析D、物理结构设计正确答案:D5.将新插入的记录存储在文件末尾,并使记录随机地分布在文件物理存储空间中的文件结构是()。

A、散列文件B、堆文件C、索引文件D、聚集文件正确答案:B6.关于"死锁”,下列说法中正确的是()。

A、在数据库操作中防止死锁的方法是禁止两个用户同时操作数据库B、只有出现并发操作时,才有可能出现死锁C、当两个用户竞争相同资源时不会发生死锁D、死锁是操作系统中的问题,数据库操作中不存在正确答案:B7.关于数据库应用系统的需求分析工作,下列说法正确的是()。

A、在需求分析阶段,系统需求分析员要与用户充分沟通,并做出各类用户视图B、通过需求分析过程,需要确定出整个应用系统的目标、任务和系统的范围说明C、数据操作响应时间、系统吞吐量、最大并发用户数都是性能需求分析的重要指标D、数据需求分析的主要工作是要辩识出数据处理中的数据处理流程正确答案:C8.如果一个系统定义为关系系统,则它必须( )oA、支持关系数据库B、支持选择、投影和连接运算C、A和B均成立D、A、B都不需要正确答案:C9.联机分析处理包括以下()基本分析功能。

《数据库技术与应用》第6章习题答案

《数据库技术与应用》第6章习题答案
解:
关系模式:
客户(驾照号,姓名,住址,电话)
车辆(车辆编号,车型,出厂年份)
事故(事故பைடு நூலகம்号,事故发生日期,发生地点,赔偿金)
存在的函数依赖: 客户(驾照号→姓名,驾照号→住址,驾照号→电话) 车辆(车辆编号→车型,车辆编号→出厂年份、车辆编号→驾照号) 事故(事故编号→事故发生日期,事故编号→发生地点,事故编号→赔偿金、事故编号→车辆编号) 4. 设关系模式R(A,B,C,D,E,F),函数依赖集F={A C,C A,B AC,D AC,BD A}。 (1) 求出R的候选码。 (2) 求出F的最小函数依赖集。 解: (1)B、D。 (2) ①将F中每个函数依赖的右部均变成单属性。则, F={A C,C A,B A,B C,D A,D C,BD A}; ②去掉F中各函数依赖左部多余的属性。 在BD A中,由于存在B A和D A因此,BD A为多余的函数依赖,可去掉。 ③去掉F中冗余的函数依赖。 由于B A可由B C和C A推出,因此,可去掉B A。 D A可由D C和C A推出,因此,可去掉D A。 因此,F m={A C,C A,B C,D C }。 5. 设X在关系模式R中成立。如果存在Z X使得Z Y成立,则称函数依赖X称为部分函数依赖,并称Y部分函数依赖于X;否则称 X为完全函数依赖,并称Y完全依赖于X。使用完全函数依赖概念给出2NF的等价定义。 解:
若R1NF,且R的所有函数依赖都满足完全函数依赖,则R2NF。 6. 证明: (1) 如果R的所有属性都是主属性,则R是3NF。 (2) 如果R的码包含R的所有属性(全码),则R是BCNF。
解:
(1) 证明:关系模式R中若不存在这样的候选码X,属性组Y及非主属性Z(Z Y)使得X Y,Y Z成立,则称R3NF。因为如果R的所 有属性都是主属性,即没有非主属性,则不存在非主属性对码的部分和传递函数依赖。因此如果R的所有属性都是主属性,则 R是3NF。 (2) 证明:BCNF要求关系范式满足1NF,且每一个函数依赖的决定因子都包含码。而全码的关系满足1NF,且只有一个决定 因子,即关系模式包含的所有属性。因此如果R 的码包含R的所有属性(全码),则R是BCNF。 7. 在关系模式设计中,有没有理由设计一个属于2NF,但不属于更高范式的关系模式?解释你的答案。

数据库 练习题(答案)

数据库  练习题(答案)

第四章练习题一、选择题1、设有两个关系R(A,B)和S(B,C),与下列SELECT语句SELECT A,B FROM RWHERE B NOT IN(SELECT B FROM S WHERE C='C56');等价的关系代数表达式是 [ C]A.πA,B(σC≠'C56'(R⋈S))B.πA,B(R ⋈ S)C≠'C56' C.R-πA,B(σC= 'C56'(R⋈S))D.R-πA,B(σC≠'C56'(R⋈S))2、嵌入式SQL的预处理方式,是指[ B]A.识别出SQL语句,加上前缀标识和结束标志B.把嵌入的SQL语句处理成函数调用形式C.对源程序进行格式化处理D.把嵌入的SQL语句编译成目标程序3、SQL中,“DELETE FROM 表名”表示 [ A]A.从基本表中删除所有元组B.从基本表中删除所有属性C.从数据库中撤消这个基本表D.从基本表中删除重复元组4、SQL中,聚合函数COUNT(列名)用于[ C]A.计算元组个数B.计算属性的个数C.对一列中的非空值计算个数D.对一列中的非空值和空值计算个数5、在传统SQL技术中,使用“ORDER BY”子句的SELECT语句查询的结果,实际上为 [B]A.数组 B.列表 C.包 D.集合6、在数据库中,能提高查询速度的是(C )A. 数据依赖B. 视图C. 索引D. 数据压缩7、语句 delete from sc 表明( A )A. 删除sc中的全部记录B. 删除基本表scC. 删除基本表sc中的列数据D. 删除基本表sc中的部分行8、在DB应用中,一般一条SQL 语句可产生或处理一组记录,而DB主语言语句一般一次只能处理一条记录,其协调可通过( B )实现。

A. 指针B. 游标C. 数组D. 栈9、在下列基本表的定义中,数值5表示( C )CREATE TABLE student (Sno char(5) not null unique,Sname char(2));A. 表中有5条记录B. 表中有5列C. 表中字符串Sno 的长度D. 表格的大小10、在视图上不能完成的操作是( C )A. 更新视图B. 查询C. 在视图上定义新的基本表D. 在视图上定义新视图11、下列聚合函数中不忽略空值 (null) 的是(C)A、SUM (列名)B、MAX (列名)C、COUNT ( * )D、AVG (列名)12、SQL的查询语句的where子句中,对空值的操作,不正确的是( C )A、where AGE IS NULLB、where AGE IS NOT NULLC、where AGE = NULLD、where NOT (AGE IS NULL)13、Transact-SQL对标准SQL的扩展主要表现为( A )。

数据库习题答案

数据库习题答案
8
整理课件
练习二(E-R图)
一、研究所有若干研究室,每一个研究室多位科研人员在指 定的办公地点。每一位科研人员只属于一个研究所,有编 号、姓名、性别和年龄。研究所承担了多个科研项目,包 括责任人、项目号、项目名和开工时间(每位科研人员可 以参加多个科研项目),每个科研项目有多位科研人员参 加,科研人员参加科研项目均有相应的工作量
6
二、单项选择题
1、( A )不是SQL语言的标准。P156 A.SQL-84 B.SQL-86 C.SQL-89 D.SQL-92
整理课件
2、 ( D )数据模型没有被商用DBMS实现。P26 A.关系模型 B.层次模型 C.网状模型 D.E-R模型
3、( C )不是数据模型应满足的要求。P12
WHERE C.Cid = SC.Cid AND S.Sid = ‘S3’
20
4、检索至少选修LIU老师所授课程中一门课的女学生姓名。 S n a m e ( T e a c h e r " L I U " ( C )S C S e x " 女 " ( s ) )
SELECT Sname
1、检索LIU老师所授课程的课程号和课程名。 ( ( C ) ) C i d ,C n a m e T e a c h e r " L I U "
SELECT Cid, Cname FROM C WHERE Teacher = ‘LIU’
19
2、检索年龄大于 23岁的男学生的学号和姓名。 ( ( S ) ) S i d , S n a m eA g e 2 3 S e x " 男 "
整理课件
SELECT FROM WHERE

数据库练习题(含答案)

数据库练习题(含答案)

数据库练习题(含答案)一、单选题(共80题,每题1分,共80分)l、同一个数据模型的任意两个元组值()A、不能全同B、可全同C、必须全同D、以上都不是正确答案: A2、在创建主/子窗体之前,要确定主窗体与子窗体之间的数据源之间存在着的关系。

A、多对一B、多对多C、一对一D、一对多正确答案: D3、Access不能对数据类型进行排序和索引。

()A、文本B、数字C、备注D、自动编号正确答案: D4、任何一个满足2F但不满足3N F的关系模式都存在()A、非主属性对候选码的传递依赖B、主属性对候选码的部分依赖C、非主属性对候选码的部分依赖D、主属性对候选码的传递依赖正确答案: A5、以下哪一条属千关系数据库的规范化理论要解决的问题?()A、如何构造合适的应用程序界面B、如何构造合适的数据库逻辑结构C、如何控制不同用户的数据操作权限D、如何构造合适的数据库物理结构正确答案: B6、在数据管理技术发展的三个阶段中,数据独立性最好的是()。

A、人工管理阶段B、文件系统阶段C、数据库系统阶段D、三个阶段相同正确答案: C答案解析:数据库系统管理阶段的独立性最高,是因为采用了数据库管理系统来管理数据,将应用程序和数据分开存储。

7、在设计表时,若输人掩码属性设置为"LL", 则能接收的输人是()A、abBdB、aBC、AB+CD、AB a9正确答案: B答案解析:在输入掩码的格式符号中,"L"表示在该位置必须输入一个字母。

B送选项中少了一个字母,C选项中不能接受"+"'D选项中不能接受"9"8、在下列SQL语句中,修改表结构的语句是()。

A、AL T ERB、CRE A TEC、UP D ATED、IN SE R T正确答案: A9、空数据库是指()A、没有基本表的数据库B、没有任何数据库对象的数据库C、数据库中数据表记录为空的数据库D、没有窗体和报表的数据库正确答案: B答案解析:Access由六大对象组成,因此空数据库必须是没有任何对象的数据库。

数据库模拟练习题及答案

数据库模拟练习题及答案

数据库模拟练习题及答案一、单选题(共90题,每题1分,共90分)1、在SQLServer 2000中,若希望数据库用户ACCT具有创建数据库对象的权限,较为合适的实现方法是()。

A、使ACCT只在db_ddladmin角色中B、使ACCT只在db_creator角色中C、使ACCT只在db_owner角色中D、使ACCT只在public角色中正确答案:B2、数据库概念设计是面向企业或组织中的数据需求的。

下列有关概念模型设计的说法中,错误的是()。

A、分析和定义实体集中的每一个实例,并用有意义的符号或文字分别描述它们B、从一个联系的两端(两个方向)确定实体集之间联系的基数,并把联系的基数标注在模型中C、按照具有相同属性特征原则对客观事物进行分类,在分类的基础上概括命名,得到实体集D、要保证一个实体集中定义的每一个属性有意义、不重名正确答案:A3、关于数据库系统中的数据的静态转储和动态转储机制,下述说法正确的是()。

A、静态转储时允许其他事务访问数据库B、静态转储能够保证数据库的可用性C、动态转储时允许在转储过程中其他事务对数据进行存取和修改D、动态转储无法保证数据库的可用性正确答案:C4、在需求分析阶段,结构化分析和建模方法是一种较为有效的需求分析方法,下列不属于结构化分析和建模方法优点的是()。

A、图形对象不涉及太多技术术语,便于用户理解模型B、用图形化的模型能直观表示系统功能C、从局部或子系统开始分析问题,便于建模人员了解业务模型D、可避免过早陷入具体细节正确答案:C5、下列关于数据仓库的叙述中,()是不正确的。

A、数据仓库前端分析工具中包括报表工具B、数据仓库中间层OLAP服务器只能采用关系型OLAPC、数据仓库通常釆用三层体系结构D、底层的数据仓库服务器一般是一个关系型数据库系统正确答案:B6、在数据库应用系统生命周期模型中,作为系统总体设计阶段输入的是()。

A、技术可行性分析报告和需求规范说明书B、软硬件选型和配置设计C、数据库应用系统体系结构设计D、应用软件总体设计正确答案:A7、文件系统与数据库系统的重要区别是数据库系统具有()。

数据库应用基础第6章习题参考答案

数据库应用基础第6章习题参考答案

1.选择题(1)(C)允许用户定义一组操作,这些操作通过对指定的表进行删除、插入和更新命令来执行或触发。

A.存储过程B.视图C.触发器D.索引(2)SQL Server为每个触发器创建了两个临时表,它们是( B )。

A.Updated和Deleted B.Inserted和DeletedC.Inserted和Updated D.Seleted和Inserted(3)SQL Server中存储过程由一组预先定义并被(C)的Transact-SQL语句组成。

A.编写B.解释C.编译D.保存(4)下列可以查看表的行数以及表使用的存储空间信息的系统存储过程是( A )。

A.sq_spaceused B.sq_dependsC.sq_help D.sq_rename2.填空题(1)存储过程(stored procedure)是SQL Server服务器中(一组预编译的)Transact-SQL 语句的集合。

(2)SQL Server中的存储过程具有如下(的系统存储过程、用户自定义存储过程、临时存储过程、远程存储过程、扩展存储过程5 )种类型。

(3)创建存储过程实际是对存储过程进行定义的过程,主要包含存储过程名称及其(参数)和存储过程的主体两部分。

(4)触发器主要用于强制复杂的(业务规则)或要求。

(5)当某个表被删除后,该表上的(所有触发器)将自动被删除。

3.问答题(1)使用存储过程的主要优点有哪些?答:存储过程的主要优点有:- 实现模块化编程,一个存储过程可以被多个用户共享和重用。

- 可以加快程序的运行速度。

- 可以减少网络的流量。

- 可以提高数据库的安全性(2)存储过程分哪两类?各有何特点?答:存储过程最常见的主要分为系统存储过程和用户自定义存储过程两类,此外还有临时存储过程、远程存储过程和扩展存储过程:- 系统存储过程由系统自动创建,主要存储在master数据库中,一般以sp_为前缀,系统存储过程完成的功能主要是从系统表中获取信息,通过系统存储过程,SQL Server中的许多管理性或信息性的活动都可以被顺利地完成。

数据库课后练习及标准答案

数据库课后练习及标准答案

数据库课后练习及标准答案————————————————————————————————作者:————————————————————————————————日期:第一章:一、单选题1.以下的英文缩写中表示数据库管理系统的是( B)。

A. DB B.DBMS C.DBA D.DBS2.数据库管理系统、操作系统、应用软件的层次关系从核心到外围分别是(B )。

A. 数据库管理系统、操作系统、应用软件B. 操作系统、数据库管理系统、应用软件C. 数据库管理系统、应用软件、操作系统D. 操作系统、应用软件、数据库管理系统3.DBMS是(C )。

A. 操作系统的一部分B.一种编译程序 C.在操作系统支持下的系统软件 D.应用程序系统4.数据库系统提供给用户的接口是(A )。

A.数据库语言 B.过程化语言 C.宿主语言D.面向对象语5.(B )是按照一定的数据模型组织的,长期存储在计算机内,可为多个用户共享的数据的聚集。

A.数据库系统 B.数据库C.关系数据库D.数据库管理系统6. ( C)处于数据库系统的核心位置。

A.数据模型 B.数据库C.数据库管理系统D.数据库管理员7.( A)是数据库系统的基础。

A.数据模型B.数据库C.数据库管理系统D.数据库管理员8.( A)是数据库中全部数据的逻辑结构和特征的描述。

A.模式B.外模式 C.内模式 D.存储模式9.(C )是数据库物理结构和存储方式的描述。

A.模式 B.外模式 C.内模式D.概念模式10.( B)是用户可以看见和使用的局部数据的逻辑结构和特征的描述》 A.模式B.外模式C.内模式D.概念模式11.有了模式/内模式映像,可以保证数据和应用程序之间( B)。

A.逻辑独立性B.物理独立性C.数据一致性D.数据安全性12.数据管理技术发展阶段中,文件系统阶段与数据库系统阶段的主要区别之一是数据库系统( B)。

A.有专门的软件对数据进行管理B.采用一定的数据模型组织数据C.数据可长期保存D.数据可共享13.关系数据模型通常由3部分组成,它们是(B )。

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

1在关系模式R(A,B,C)中,F={(A,B)→C,B→C},则R最高达到()
A. 1NF
B. 2NF
C. 3NF
D. BCNF
答案:A
2.关系模式至少应属于( A )
A.1NF B.2NF
C.3NF D.BCNF
3. 设有关系模式R (A,B,C,D),F是R上成立的FD集,F = {D→A,D→B},试写出关系模式R的候选键,并说明理由。

答:
①R的候选键是CD
②理由:从已知的F,可导出D→ABD,
再根据增广律,可得出CD→ABCD,
即CD值可决定全部属性值。

五、综合题(本题共10分)
41. 假设某商业集团数据库中有一关系模式R如下:
R (商店编号,商品编号,数量,部门编号,负责人)
如果规定:(1) 每个商店的每种商品只在一个部门销售;
(2) 每个商店的每个部门只有一个负责人;
(3) 每个商店的每种商品只有一个库存数量。

试回答下列问题:
(1) 根据上述规定,写出关系模式R的基本函数依赖;
(2) 找出关系模式R的候选码;
(3) 试问关系模式R最高已经达到第几范式?为什么?
(4) 如果R不属于3NF,请将R分解成3NF模式集。

答:
(1) 有三个函数依赖:(商店编号,商品编号) →部门编号
(商店编号,部门编号) →负责人
(商店编号,商品编号) →数量
(2) R的候选码是(商店编号,商品编号)
(3) 因为R中存在着非主属性“负责人”对候选码(商店编号、商品编号)的传递函数依赖,所以R属于2NF,R不属于3NF。

(4) 将R分解成:R1 (商店编号,商品编号,数量,部门编号)
R2 (商店编号,部门编号,负责人)
42.设有一个反映工程及其所使用相关材料信息的关系
式:
R(工程号,工程名,工程地址,开工日期,完工日期,材料号,材料名称,使用数量)
如果规定:
a每个工程的地址、开工日期、完工日期惟一;不同工程的地址、开工和完工日期可能相同;
b工程名与材料名称均有重名;
c每个工程使用若干种材料,每种材料可应用于若干工程中。

(1)根据上述规定,写出模式R的基本FD和关键码。

(2)R最高达到第几范式,并说明理由。

(3)将R规范到3NF。

THANKS !!!
致力为企业和个人提供合同协议,策划案计划书,学习课件等等
打造全网一站式需求
欢迎您的下载,资料仅供参考。

相关文档
最新文档