数据库第二章课后习题解答

合集下载

数据库原理及应用 chp2课后习题答案

数据库原理及应用 chp2课后习题答案
第 2 章 关系数据库
2.1 试述关系模型的三个组成部分。 答:关系模型的三个组成部分为关系结构、关系操作和关系完整性约束。 在关系模型中,无论是实体集,还是实体集之间的联系均由单一的关系表示。关系模式
可以形式化地表示为:R(U,D,Dom,F),其中 R 为关系名,U 为组成该关系的属性集 合,D 为属性组 U 中属性所来自的域,Dom 为属性向域的映像的集合,F 为属性间数据的 依赖关系集合。
2.5 假定关系 R 和 S 分别有 n 和 m 个元组,试说明下列运算结果中的最小和最大元组个数:
(1) R U S
(2)R

(3)σ F (R) × S ,其中 F 是条件表达式 (4) Π L (R) − S ,其中 L 是属性集合
答:
(1) R U S 的结果,最大元组个数为 m+n,最小为 m( R ⊇ S )个或者 n( R ⊆ S )
属性)为候选码。当一个关系有多个候选码时,应选定其中的一个候选码为主码;而如果关 系中只有一个候选码,这个惟一的候选码就是主码。
设 F 是基本关系 R 的一个或一组属性,但不是关系 R 的主码(或候选码)。如果 F 与基 本关系 s 的主码 KS 相对应,则称厅是基本关系 R 的外码。
2)给定一组域 D1,D2,…, Dn.这些域中可以有相同的部分,则 D1,D2,…, Dn 的笛卡地积为:D1×D2×…×Dn﹦{(dl,d2,…,dn)∣di∈Di,i=1,2, …,n}。
说明:SC 自乘之后,同一个学号下两个课程号不同的元组 若修改为:检索至少选修一门课的学生学号
πSNO(SC)
(7) 检索全部学生都选修的课程的课程号和课程名;
π (C CNO,CNAME
(πSNO,CNO(SC)÷πSNO(S)))

(完整版)数据库系统基础教程第二章答案解析

(完整版)数据库系统基础教程第二章答案解析

For relation Accounts, the attributes are:acctNo, type, balanceFor relation Customers, the attributes are:firstName, lastName, idNo, accountExercise 2.2.1bFor relation Accounts, the tuples are:(12345, savings, 12000),(23456, checking, 1000),(34567, savings, 25)For relation Customers, the tuples are:(Robbie, Banks, 901-222, 12345),(Lena, Hand, 805-333, 12345),(Lena, Hand, 805-333, 23456)Exercise 2.2.1cFor relation Accounts and the first tuple, the components are:123456 → acctNosavings → type12000 → balanceFor relation Customers and the first tuple, the components are:Robbie → firstNameBanks → lastName901-222 → idNo12345 → accountExercise 2.2.1dFor relation Accounts, a relation schema is:Accounts(acctNo, type, balance)For relation Customers, a relation schema is:Customers(firstName, lastName, idNo, account) Exercise 2.2.1eAn example database schema is:Accounts (acctNo,type,balance)Customers (firstName,lastName,idNo,account)A suitable domain for each attribute:acctNo → Integertype → Stringbalance → IntegerfirstName → StringlastName → StringidNo → String (because there is a hyphen we cannot use Integer)account → IntegerExercise 2.2.1gAnother equivalent way to present the Account relation:Another equivalent way to present the Customers relation:Exercise 2.2.2Examples of attributes that are created for primarily serving as keys in a relation:Universal Product Code (UPC) used widely in United States and Canada to track products in stores.Serial Numbers on a wide variety of products to allow the manufacturer to individually track each product.Vehicle Identification Numbers (VIN), a unique serial number used by the automotive industry to identify vehicles.Exercise 2.2.3aWe can order the three tuples in any of 3! = 6 ways. Also, the columns can be ordered in any of 3! = 6 ways. Thus, the number of presentations is 6*6 = 36.Exercise 2.2.3bWe can order the three tuples in any of 5! = 120 ways. Also, the columns can be ordered in any of 4! = 24 ways. Thus, the number of presentations is 120*24 = 2880Exercise 2.2.3cWe can order the three tuples in any of m! ways. Also, the columns can be ordered in any of n! ways. Thus, the number of presentations is n!m!Exercise 2.3.1aCREATE TABLE Product (maker CHAR(30),model CHAR(10) PRIMARY KEY,type CHAR(15));CREATE TABLE PC (model CHAR(30),speed DECIMAL(4,2),ram INTEGER,hd INTEGER,price DECIMAL(7,2));Exercise 2.3.1cCREATE TABLE Laptop (model CHAR(30),speed DECIMAL(4,2),ram INTEGER,hd INTEGER,screen DECIMAL(3,1),price DECIMAL(7,2));Exercise 2.3.1dCREATE TABLE Printer (model CHAR(30),color BOOLEAN,type CHAR (10),price DECIMAL(7,2));Exercise 2.3.1eALTER TABLE Printer DROP color;Exercise 2.3.1fALTER TABLE Laptop ADD od CHAR (10) DEFAULT ‘none’; Exercise 2.3.2aCREATE TABLE Classes (class CHAR(20),type CHAR(5),country CHAR(20),numGuns INTEGER,bore DECIMAL(3,1),displacement INTEGER);Exercise 2.3.2bCREATE TABLE Ships (name CHAR(30),class CHAR(20),launched INTEGER);Exercise 2.3.2cCREATE TABLE Battles (name CHAR(30),date DATE);Exercise 2.3.2dCREATE TABLE Outcomes (ship CHAR(30),battle CHAR(30),result CHAR(10));Exercise 2.3.2eALTER TABLE Classes DROP bore;Exercise 2.3.2fALTER TABLE Ships ADD yard CHAR(30); Exercise 2.4.1aR1 := σspeed ≥ 3.00 (PC)R2 := πmodel(R1)model100510061013Exercise 2.4.1bR1 := σhd ≥ 100 (Laptop)R2 := Product (R1)R3 := πmaker (R2)makerEABFGExercise 2.4.1cR1 := σmaker=B (Product PC)R2 := σmaker=B (Product Laptop)R3 := σmaker=B (Product Printer)R4 := πmodel,price (R1)R5 := πmodel,price (R2)R6: = πmodel,price (R3)R7 := R4 R5 R6model price1004 6491005 6301006 10492007 1429Exercise 2.4.1dR1 := σcolor = true AND type = laser (Printer)R2 := πmodel (R1)model30033007Exercise 2.4.1eR1 := σtype=laptop (Product)R2 := σtype=PC(Product)R3 := πmaker(R1)R4 := πmaker(R2)R5 := R3 – R4Exercise 2.4.1fR1 := ρPC1(PC)R2 := ρPC2(PC)R3 := R1 (PC1.hd = PC2.hd AND PC1.model <> PC2.model) R2R4 := πhd(R3)Exercise 2.4.1gR1 := ρPC1(PC)R2 := ρPC2(PC)R3 := R1 (PC1.speed = PC2.speed AND PC1.ram = PC2.ram AND PC1.model < PC2.model) R2R4 := πPC1.model,PC2.model(R3)Exercise 2.4.1hR1 := πmodel(σspeed ≥ 2.80(PC)) πmodel(σspeed ≥ 2.80(Laptop))R2 := πmaker,model(R1 Product)R3 := ρR3(maker2,model2)(R2)R4 := R2 (maker = maker2 AND model <> model2) R3R5 := πmaker(R4)Exercise 2.4.1iR1 := πmodel,speed(PC)R2 := πmodel,speed(Laptop)R3 := R1 R2R4 := ρR4(model2,speed2)(R3)R5 := πmodel,speed (R3 (speed < speed2 ) R4)R6 := R3 – R5makerBExercise 2.4.1jR1 := πmaker,speed(Product PC)R2 := ρR2(maker2,speed2)(R1)R3 := ρR3(maker3,speed3)(R1)R4 := R1 (maker = maker2 AND speed <> speed2) R2R5 := R4 (maker3 = maker AND speed3 <> speed2 AND speed3 <> speed) R3R6 := πmaker(R5)makerFGhd25080160PC1.model PC2.model1004 1012makerBEmakerADEExercise 2.4.1kR1 := πmaker,model(Product PC)R2 := ρR2(maker2,model2)(R1)R3 := ρR3(maker3,model3)(R1)R4 := ρR4(maker4,model4)(R1)R5 := R1 (maker = maker2 AND model <> model2) R2R6 := R3 (maker3 = maker AND model3 <> model2 AND model3 <> model) R5R7 := R4 (maker4 = maker AND (model4=model OR model4=model2 OR model4=model3)) R6R8 := πmaker(R7)makerABDEExercise 2.4.2aπmodelσspeed≥3.00PCExercise 2.4.2bπmakerσhd ≥ 100 ProductLaptopExercise 2.4.2cσmaker=B πmodel,priceσmaker=B πmodel,price σmaker=Bπmodel,priceProduct PC Laptop Printer ProductProductExercise 2.4.2dPrinter σcolor = true AND type = laserπmodelExercise 2.4.2e σtype=laptop σtype=PC πmakerπmaker –Product ProductExercise 2.4.2fρPC1ρPC2 (PC1.hd = PC2.hd AND PC1.model <> PC2.model)πhdPC PCExercise 2.4.2gρPC1ρPC2PC PC(PC1.speed = PC2.speed AND PC1.ram = PC2.ram AND PC1.model < PC2.model)πPC1.model,PC2.modelExercise 2.4.2hPC Laptop σspeed ≥ 2.80σspeed ≥ 2.80πmodelπmodel πmaker,modelρR3(maker2,model2)(maker = maker2 AND model <> model2)makerExercise 2.4.2iPCLaptopProductπmodel,speed πmodel,speed ρR4(model2,speed2)πmodel,speed(speed < speed2 )–makerExercise 2.4.2jProduct PC πmaker,speed ρR3(maker3,speed3)ρR2(maker2,speed2)(maker = maker2 AND speed <> speed2)(maker3 = maker AND speed3 <> speed2 AND speed3 <> speed)πmakerExercise 2.4.2kπmaker(maker4 = maker AND (model4=model OR model4=model2 OR model4=model3)) (maker3 = maker AND model3 <> model2 AND model3 <> model)(maker = maker2 AND model <> model2)ρR2(maker2,model2)ρR3(maker3,model3)ρR4(maker4,model4)πmaker,modelProduct PCExercise 2.4.3aR1 := σbore ≥ 16 (Classes)R2 := πclass,country (R1)Exercise 2.4.3bR1 := σlaunched < 1921 (Ships)R2 := πname (R1)KirishimaKongoRamilliesRenownRepulseResolutionRevengeRoyal OakRoyal SovereignTennesseeExercise 2.4.3cR1 := σbattle=Denmark Strait AND result=sunk(Outcomes)R2 := πship (R1)shipBismarckHoodExercise 2.4.3dR1 := Classes ShipsR2 := σlaunched > 1921 AND displacement > 35000 (R1)R3 := πname (R2)nameIowaMissouriMusashiNew JerseyNorth CarolinaWashingtonWisconsinYamatoExercise 2.4.3eR1 := σbattle=Guadalcanal(Outcomes)R2 := Ships (ship=name) R1R3 := Classes R2R4 := πname,displacement,numGuns(R3)name displacement numGuns Kirishima 32000 8Washington 37000 9Exercise 2.4.3fR1 := πname(Ships)R2 := πship(Outcomes)R3 := ρR3(name)(R2)R4 := R1 R3nameCaliforniaHarunaHieiIowaKirishimaKongoMissouriMusashiNew JerseyExercise 2.4.3gFrom 2.3.2, assuming that every class has one ship named after the class.R1 := πclass (Classes) R2 := πclass (σname <> class (Ships)) R3 := R1 – R2Exercise 2.4.3hR1 := πcountry (σtype=bb (Classes)) R2 := πcountry (σtype=bc (Classes)) R3 := R1 ∩ R2Exercise 2.4.3iR1 := πship,result,date (Battles (battle=name) Outcomes)R2 := ρR2(ship2,result2,date2)(R1)R3 := R1 (ship=ship2 AND result=damaged AND date < date2) R2R4 := πship (R3)No results from sample data.Exercise 2.4.4aσbore ≥ 16πclass,countryClassesExercise 2.4.4bNorth Carolina Ramillies Renown Repulse Resolution Revenge Royal Oak Royal Sovereign Tennessee Washington Wisconsin Yamato Arizona Bismarck Duke of York Fuso Hood King George V Prince of Wales Rodney Scharnhorst South Dakota West Virginia Yamashiro class Bismarck country Japan Gt. Britainπnameσlaunched < 1921ShipsExercise 2.4.4cπshipσbattle=Denmark Strait AND result=sunkOutcomesExercise 2.4.4dπnameσlaunched > 1921 AND displacement > 35000Classes Ships Exercise 2.4.4eσbattle=Guadalcanal Outcomes Ships(ship=name)πname,displacement,numGunsExercise 2.4.4f Ships Outcomesπnameπship ρR3(name)Exercise 2.4.4g Classes Shipsπclass σname <> class πclass–Exercise 2.4.4hClasses Classesσtype=bb σtype=bcπcountry πcountry∩Exercise 2.4.4iBattles Outcomes (battle=name)πship,result,dateρR2(ship2,result2,date2)(ship=ship2 AND result=damaged AND date < date2)πshipExercise 2.4.5The result of the natural join has only one attribute from each pair of equated attributes. On the other hand, the result of the theta-join has both columns of the attributes and their values are identical.Exercise 2.4.6UnionIf we add a tuple to the arguments of the union operator, we will get all of the tuples of the original result and maybe the added tuple. If the added tuple is a duplicate tuple, then the set behavior will eliminate that tuple.Thus the union operator is monotone.IntersectionIf we add a tuple to the arguments of the intersection operator, we will get all of the tuples of the originalresult and maybe the added tuple. If the added tuple does not exist in the relation that it is added but does exist in the other relation, then the result set will include the added tuple. Thus the intersection operator is monotone.DifferenceIf we add a tuple to the arguments of the difference operator, we may not get all of the tuples of the originalresult. Suppose we have relations R and S and we are computing R – S. Suppose also that tuple t is in R but not in S. The result of R – S would include tuple t. However, if we add tuple t to S, then the new result will not have tuple t. Thus the difference operator is not monotone.ProjectionIf we add a tuple to the arguments of the projection operator, we will get all of the tuples of the original result and the projection of the added tuple. The projection operator only selects columns from the relation and does not affect the rows that are selected. Thus the projection operator is monotone.SelectionIf we add a tuple to the arguments of the selection operator, we will get all of the tuples of the original result and maybe the added tuple. If the added tuple satisfies the select condition, then it will be added to the newresult. The original tuples are included in the new result because they still satisfy the select condition. Thusthe selection operator is monotone.Cartesian ProductIf we add a tuple to the arguments of the Cartesian product operator, we will get all of the tuples of the original result and possibly additional tuples. The Cartesian product pairs the tuples of one relation with the tuples ofanother relation. Suppose that we are calculating R x S where R has m tuples and S has n tuples. If we add a tuple to R that is not already in R, then we expect the result of R x S to have (m + 1) * n tuples. Thus the Cartesianproduct operator is monotone.Natural JoinsIf we add a tuple to the arguments of a natural join operator, we will get all of the tuples of the original result and possibly additional tuples. The new tuple can only create additional successful joins, not less. If, however, the added tuple cannot successfully join with any of the existing tuples, then we will have zero additionalsuccessful joins. Thus the natural join operator is monotone.Theta JoinsIf we add a tuple to the arguments of a theta join operator, we will get all of the tuples of the original result and possibly additional tuples. The theta join can be modeled by a Cartesian product followed by a selection onsome condition. The new tuple can only create additional tuples in the result, not less. If, however, the addedtuple does not satisfy the select condition, then no additional tuples will be added to the result. Thus the theta join operator is monotone.RenamingIf we add a tuple to the arguments of a renaming operator, we will get all of the tuples of the original result and the added tuple. The renaming operator does not have any effect on whether a tuple is selected or not. In fact, the renaming operator will always return as many tuples as its argument. Thus the renaming operator is monotone.Exercise 2.4.7aIf all the tuples of R and S are different, then the union has n + m tuples, and this number is the maximum possible.The minimum number of tuples that can appear in the result occurs if every tuple of one relation also appears in the other. Then the union has max(m , n) tuples.Exercise 2.4.7bIf all the tuples in one relation can pair successfully with all the tuples in the other relation, then the natural join has n * m tuples. This number would be the maximum possible.The minimum number of tuples that can appear in the result occurs if none of the tuples of one relation can pairsuccessfully with all the tuples in the other relation. Then the natural join has zero tuples.Exercise 2.4.7cIf the condition C brings back all the tuples of R, then the cross product will contain n * m tuples. This number would be the maximum possible.The minimum number of tuples that can appear in the result occurs if the condition C brings back none of the tuples of R. Then the cross product has zero tuples.Exercise 2.4.7dAssuming that the list of attributes L makes the resulting relation πL(R) and relation S schema compatible, then the maximum possible tuples is n. This happens when all of the tuples of πL(R) are not in S.The minimum number of tuples that can appear in the result occurs when all of the tuples in πL(R) appear in S. Then the difference has max(n–m , 0) tuples.Exercise 2.4.8Defining r as the schema of R and s as the schema of S:1.πr(R S)2.R δ(πr∩s(S)) where δ is the duplicate-elimination operator in Section 5.2 pg. 2133.R – (R –πr(R S))Exercise 2.4.9Defining r as the schema of R1.R - πr(R S)Exercise 2.4.10πA1,A2…An(R S)Exercise 2.5.1aσspeed < 2.00 AND price > 500(PC) = øModel 1011 violates this constraint.Exercise 2.5.1bσscreen < 15.4 AND hd < 100 AND price ≥ 1000(Laptop) = øModel 2004 violates the constraint.Exercise 2.5.1cπmaker(σtype = laptop(Product)) ∩ πmaker(σtype = pc(Product)) = øManufacturers A,B,E violate the constraint.Exercise 2.5.1dThis complex expression is best seen as a sequence of steps in which we define temporary relations R1 through R4 that stand for nodes of expression trees. Here is the sequence:R1(maker, model, speed) := πmaker,model,speed(Product PC)R2(maker, speed) := πmaker,speed(Product Laptop)R3(model) := πmodel(R1 R1.maker = R2.maker AND R1.speed ≤ R2.speed R2)R4(model) := πmodel(PC)The constraint is R4 ⊆ R3Manufacturers B,C,D violate the constraint.Exercise 2.5.1eπmodel(σLaptop.ram > PC.ram AND Laptop.price ≤ PC.price(PC × Laptop)) = øModels 2002,2006,2008 violate the constraint.Exercise 2.5.2aπclass(σbore > 16(Classes)) = øThe Yamato class violates the constraint.Exercise 2.5.2bπclass(σnumGuns > 9 AND bore > 14(Classes)) = øNo violations to the constraint.Exercise 2.5.2cThis complex expression is best seen as a sequence of steps in which we define temporary relations R1 through R5 that stand for nodes of expression trees. Here is the sequence:R1(class,name) := πclass,name(Classes Ships)R2(class2,name2) := ρR2(class2,name2)(R1)R3(class3,name3) := ρR3(class3,name3)(R1)R4(class,name,class2,name2) := R1 (class = class2 AND name <> name2) R2R5(class,name,class2,name2,class3,name3) := R4 (class=class3 AND name <> name3 AND name2 <> name3) R3The constraint is R5 = øThe Kongo, Iowa and Revenge classes violate the constraint.Exercise 2.5.2dπcountry(σtype = bb(Classes)) ∩ πcountry(σtype = bc(Classes)) = øJapan and Gt. Britain violate the constraint.Exercise 2.5.2eThis complex expression is best seen as a sequence of steps in which we define temporary relations R1 through R5 that stand for nodes of expression trees. Here is the sequence:R1(ship,bat tle,result,class) := πship,battle,result,class(Outcomes (ship = name) Ships)R2(ship,battle,result,numGuns) := πship,battle,result,numGuns(R1 Classes)R3(ship,battle) := πship,battle(σnumGuns < 9 AND result = sunk (R2))R4(ship2,battle2) := ρR4(ship2,battle2)(πship,battle(σnumGuns > 9(R2)))R5(ship2) := πship2(R3 (battle = battle2) R4)The constraint is R5 = øNo violations to the constraint. Since there are some ships in the Outcomes table that are not in the Ships table, we are unable to determine the number of guns on that ship.Exercise 2.5.3Defining r as the schema A1,A2,…,A n and s as the schema B1,B2,…,B n:πr(R) πs(S) = øwhere is the antisemijoinExercise 2.5.4The form of a constraint as E1 = E2 can be expressed as the other two constraints.Using the “equating an expression to the empty set” method, we can simply say:E1– E2 = øAs a containment, we can simply say:E1⊆ E2 AND E2⊆ E1Thus, the form E1 = E2 of a constraint cannot express more than the two other forms discussed in this section.。

数据库技术与应用第二版第2章习题参考答案

数据库技术与应用第二版第2章习题参考答案

第2章习题解答1.选择题(1)下列(C)不是sql 数据库文件的后缀。

A..mdf B..ldf C..tif D..ndf(2)SQL Server数据库对象中最基本的是(B)。

A.表和语句B.表和视图C.文件和文件组D.用户和视图(3)事务日志用于保存(C.)。

A. 程序运行过程B. 程序的执行结果C. 对数据的更新操作D. 数据操作(4)Master数据库是SQL Server系统最重要的数据库,如果该数据库被损坏,SQL Server将无法正常工作。

该数据库记录了SQL Server系统的所有(D)。

A. 系统设置信息B. 用户信息C. 对数据库操作的信息D. 系统信息(5)SQL Server中组成数据库的文件有(B)类型。

A. 2B. 3C. 4D. 5(6)分离数据库就是将数据库从(B)中删除,但是保持组成该数据的数据文件和事务日志文件中的数据完好无损。

A. WindowsB. SQL ServerC. U盘D. 企业管理器(7)以下是指对数据库的完整备份,包括所有的数据以及数据库对象。

A. 数据库完全备份B. 数据库差异份C. 事务日志备份D. 文件或文件组备份(8)下面描述错误的是()。

A.每个数据文件中有且只有一个主数据文件。

B.日志文件可以存在于任意文件组中。

C.主数据文件默认为PRIMARY文件组。

D.文件组是为了更好的实现数据库文件组织。

(9)下列文件中不属于SQL Server数据库文件的是()。

A.device_data.MDF B.device_log.LDFC.device_mdf.DAT D.device_data.NDF(10)SQL Server 对象的完整名称不包括下面()。

A.服务器名B.数据库名C.对象名D.文件夹名2.填空题(1)数据库逻辑结构中的文件主要存储(用户数据),而且存储所有与(用户数据)相关的信息。

(2)数据库物理结构主要应用于面向计算机的(数据)组织和管理。

数据库第二章课后习题解答

数据库第二章课后习题解答

第3部分习题及其解答第一章的两道题3-2 习题22.6 分别把习题1.10、习题1.11的ER图转换成关系模型数据结构。

【参考答案】1.习题1.10的ER图可转换成如下的关系模型数据结构。

①程序员(编号,,性别,年龄,单位,职称),其中编号是关键字;②程序(程序名称,,专利号,价格),其中程序名称是关键字;③设计(编号,程序名称,开始时间,结束时间),其中(编号,程序名称)是关键字。

2.习题1.11的ER图可转换成如下的关系模型数据结构。

①工厂(工厂名称,厂址,联系),其中工厂名称是关键字;②产品(产品号,产品名,规格,单价),其中产品号是关键字;③工人(工人编号,,性别,职称,工厂名称,雇用期,月薪),其中工人编号是关键字,工厂名称是外关键字,雇用期和月薪是联系属性;④生产(工厂名称,产品号,月产量),其中(工厂名称,产品号)是关键字,生产关系是表示联系的。

2.8 判断下列情况,分别指出它们具体遵循那一类完整性约束规则?1.用户写一条语句明确指定月份数据在1~12之间有效。

2.关系数据库中不允许主键值为空的元组存在。

3.从A关系的外键出发去找B关系中的记录,必须能找到。

【解答】1.用户用语句指定月份数据在1~12之间有效,遵循用户定义的完整性约束规则。

2.关系数据库中不允许主键值为空的元组存在,遵循实体完整性约束规则;3.从A关系的外键出发去找B关系的记录,必须能找到,遵循引用完整性约束规则。

2.9 判断下列情况,分别指出他们是用DML还是用DDL来完成下列操作?1.创建“学生”表结构。

2.对“学生”表中的学号属性,其数据类型由“整型”修改为“字符型”。

3.把“学生”表中学号“021”修改为“025”。

【解答】1.创建“学生”表结构,即定义一个关系模式,用DDL完成。

2.修改“学生”表中学号属性的数据类型,即修改关系模式的定义,用DDL完成。

3.修改“学生”表中学号属性的数据值,即对表中的数据进行操作,用DML完成。

数据库系统原理第二章基本概念及课后习题有答案

数据库系统原理第二章基本概念及课后习题有答案

数据库系统原理第二章基本概念及课后习题有答案一、数据库系统生存期1.数据库系统生存期:数据库应用系统从开始规划、设计、实现、维护到最后被新的系统取代而停止使用的整个期间。

2.数据库系统生存期分七个阶段:规划、需求分析、概念设计、逻辑设计、物理设计、实现、运行维护。

3.规划阶段三个步骤:系统调查、可行性分析、确定数据库系统总目标。

4.需求分析阶段:主要任务是系统分析员和用户双方共同收集数据库系统所需要的信息内容和用户对处理的需求,并以需求说明书的形式确定下来。

5.概念设计阶段:产生反映用户单位信息需求的概念模型。

与硬件和DBMS无关。

6.逻辑设计阶段:将概念模型转换成DBMS能处理的逻辑模型。

外模型也将在此阶段完成。

7.物理设计阶段:对于给定的基本数据模型选取一个最适合应用环境的物理结构的过程。

数据库的物理结构主要指数据库的存储记录格式、存储记录安排和存取方法。

8.数据库的实现:包括定义数据库结构、数据装载、编制与调试应用程序、数据库试运行。

二、ER模型的基本概念ER模型的基本元素是:实体、联系和属性。

2.实体:是一个数据对象,指应用中可以区别的客观存在的事物。

实体集:是指同一类实体构成的集合。

实体类型:是对实体集中实体的定义。

一般将实体、实体集、实体类型统称为实体。

3.联系:表示一个或多个实体之间的关联关系。

联系集:是指同一类联系构成的集合。

联系类型:是对联系集中联系的定义。

一般将联系、联系集、联系类型统称为联系。

4.同一个实体集内部实体之间的联系,称为一元联系;两个不同实体集实体之间的联系,称为二元联系,以此类推。

5.属性:实体的某一特性称为属性。

在一个实体中,能够惟一标识实体的属性或属性集称为实体标识符。

6. ER模型中,方框表示实体、菱形框表示联系、椭圆形框表示属性、实体与联系、实体与其属性、联系与其属性之间用直线连接。

实体标识符下画横线。

联系的类型要在直线上标注。

注意:联系也有可能存在属性,但联系本身没有标识符。

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

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

Exercise 2.2.1aFor relation Accounts, the attributes are:acctNo, type, balanceFor relation Customers, the attributes are:firstName, lastName, idNo, accountExercise 2.2.1bFor relation Accounts, the tuples are:(12345, savings, 12000),(23456, checking, 1000),(34567, savings, 25)For relation Customers, the tuples are:(Robbie, Banks, 901-222, 12345),(Lena, Hand, 805-333, 12345),(Lena, Hand, 805-333, 23456)Exercise 2.2.1cFor relation Accounts and the first tuple, the components are: 123456 → acctNosavings → type12000 → balanceFor relation Customers and the first tuple, the components are: Robbie → firstNameBanks → lastName901-222 → idNo12345 → accountExercise 2.2.1dFor relation Accounts, a relation schema is:Accounts(acctNo, type, balance)For relation Customers, a relation schema is:Customers(firstName, lastName, idNo, account) Exercise 2.2.1eAn example database schema is:Accounts (acctNo,type,balance)Customers (firstName,lastName,idNo,account)Exercise 2.2.1fA suitable domain for each attribute:acctNo → Integertype → Stringbalance → IntegerfirstName → StringlastName → StringidNo → String (because there is a hyphen we cannot use Integer)account → IntegerExercise 2.2.1gAnother equivalent way to present the Account relation:Another equivalent way to present the Customers relation:Exercise 2.2.2Examples of attributes that are created for primarily serving as keys in a relation:Universal Product Code (UPC) used widely in United States and Canada to track products in stores.Serial Numbers on a wide variety of products to allow the manufacturer to individually track each product.Vehicle Identification Numbers (VIN), a unique serial number used by the automotive industry to identify vehicles.Exercise 2.2.3aWe can order the three tuples in any of 3! = 6 ways. Also, the columns can be ordered in any of 3! = 6 ways. Thus, the number of presentations is 6*6 = 36. Exercise 2.2.3bWe can order the three tuples in any of 5! = 120 ways. Also, the columns can be ordered in any of 4! = 24 ways. Thus, the number of presentations is120*24 = 2880Exercise 2.2.3cWe can order the three tuples in any of m! ways. Also, the columns can be ordered in any of n! ways. Thus, the number of presentations is n!m!Exercise 2.3.1aCREATE TABLE Product (maker CHAR(30),model CHAR(10) PRIMARY KEY,type CHAR(15));Exercise 2.3.1bCREATE TABLE PC (model CHAR(30),speed DECIMAL(4,2),ram INTEGER,hd INTEGER,price DECIMAL(7,2));Exercise 2.3.1cCREATE TABLE Laptop (model CHAR(30),speed DECIMAL(4,2),ram INTEGER,hd INTEGER,screen DECIMAL(3,1),price DECIMAL(7,2));Exercise 2.3.1dCREATE TABLE Printer (model CHAR(30),color BOOLEAN,type CHAR (10),price DECIMAL(7,2));Exercise 2.3.1eALTER TABLE Printer DROP color;Exercise 2.3.1fALTER TABLE Laptop ADD od CHAR (10) DEFAULT ‘none’; Exercise 2.3.2aCREATE TABLE Classes (class CHAR(20),type CHAR(5),country CHAR(20),numGuns INTEGER,bore DECIMAL(3,1),displacement INTEGER);Exercise 2.3.2bCREATE TABLE Ships (name CHAR(30),class CHAR(20),launched INTEGER);Exercise 2.3.2cCREATE TABLE Battles (name CHAR(30),date DATE);Exercise 2.3.2dCREATE TABLE Outcomes (ship CHAR(30),battle CHAR(30),result CHAR(10));Exercise 2.3.2eALTER TABLE Classes DROP bore;Exercise 2.3.2fALTER TABLE Ships ADD yard CHAR(30);Exercise 2.4.1aR1 := σspeed ≥ 3.00 (PC)R2 := πmodel(R1)model100510061013Exercise 2.4.1bR1 := σhd ≥ 100 (Laptop)R2 := Product (R1)R3 := πmaker (R2)makerEABFGExercise 2.4.1cR1 := σmaker=B (Product PC)R2 := σmaker=B (Product Laptop)R3 := σmaker=B (Product Printer)R4 := πmodel,price (R1)R5 := πmodel,price (R2)R6: = πmodel,price (R3)R7 := R4 R5 R6model price1004 6491005 6301006 10492007 1429Exercise 2.4.1dR1 := σcolor = true AND type = laser (Printer)R2 := πmodel (R1)model30033007Exercise 2.4.1eR1 := σtype=laptop (Product)R2 := σtype=PC(Product)R3 := πmaker(R1)R4 := πmaker(R2)R5 := R3 – R4makerFGExercise 2.4.1fR1 := ρPC1(PC)R2 := ρPC2(PC)R3 := R1 (PC1.hd = PC2.hd AND PC1.model <> PC2.model) R2R4 := πhd(R3)hd25080160Exercise 2.4.1gR1 := ρPC1(PC)R2 := ρPC2(PC)R3 := R1 (PC1.speed = PC2.speed AND PC1.ram = PC2.ram AND PC1.model < PC2.model) R2R4 := πPC1.model,PC2.model(R3)PC1.model PC2.model1004 1012Exercise 2.4.1hR1 := πmodel(σspeed ≥ 2.80(PC)) πmodel(σspeed ≥ 2.80(Laptop))R2 := πmaker,model(R1 Product)R3 := ρR3(maker2,model2)(R2)R4 := R2 (maker = maker2 AND model <> model2) R3R5 := πmaker(R4)makerBEExercise 2.4.1iR1 := πmodel,speed(PC)R2 := πmodel,speed(Laptop)R3 := R1 R2R4 := ρR4(model2,speed2)(R3)R5 := πmodel,speed (R3 (speed < speed2 ) R4)R6 := R3 – R5R7 := πmaker(R6 Product)makerBExercise 2.4.1jR1 := πmaker,speed(Product PC)R2 := ρR2(maker2,speed2)(R1)R3 := ρR3(maker3,speed3)(R1)R4 := R1 (maker = maker2 AND speed <> speed2) R2R5 := R4 (maker3 = maker AND speed3 <> speed2 AND speed3 <> speed) R3R6 := πmaker(R5)makerADEExercise 2.4.1kR1 := πmaker,model(Product PC)R2 := ρR2(maker2,model2)(R1)R3 := ρR3(maker3,model3)(R1)R4 := ρR4(maker4,model4)(R1)R5 := R1 (maker = maker2 AND model <> model2) R2R6 := R3 (maker3 = maker AND model3 <> model2 AND model3 <> model) R5R7 := R4 (maker4 = maker AND (model4=model OR model4=model2 OR model4=model3)) R6R8 := πmaker(R7)makerABDEExercise 2.4.2aπmodelσspeed≥3.00PCExercise 2.4.2bLaptopσhd ≥ 100 ProductmakerExercise 2.4.2cσmaker=B πmodel,price σmaker=B πmodel,price σmaker=B πmodel,priceProduct PC Laptop Printer ProductProductExercise 2.4.2d Printerσcolor = true AND type = laserπmodelExercise 2.4.2eσtype=laptopσtype=PC πmakerπmaker ProductProductExercise 2.4.2fρPC1ρPC2 (PC1.hd = PC2.hd AND PC1.model <> PC2.model)πhdPC PCExercise 2.4.2gρPC1ρPC2PC PC(PC1.speed = PC2.speed AND PC1.ram = PC2.ram AND PC1.model < PC2.model)πPC1.model,PC2.modelExercise 2.4.2hPC Laptopσspeed ≥ 2.80σspeed ≥ 2.80πmodelπmodel πmaker,modelρR3(maker2,model2)(maker = maker2 AND model <> model2)makerExercise 2.4.2iPC LaptopProductπmodel,speed πmodel,speed ρR4(model2,speed2)πmodel,speed(speed < speed2 )–makerExercise 2.4.2jProduct PC πmaker,speed ρR3(maker3,speed3)ρR2(maker2,speed2)(maker = maker2 AND speed <> speed2)(maker3 = maker AND speed3 <> speed2 AND speed3 <> speed)makerExercise 2.4.2kπmaker(maker4 = maker AND (model4=model OR model4=model2 OR model4=model3)) (maker3 = maker AND model3 <> model2 AND model3 <> model)(maker = maker2 AND model <> model2)ρR2(maker2,model2)ρR3(maker3,model3)ρR4(maker4,model4)πmaker,modelProduct PCExercise 2.4.3aR1 := σbore ≥ 16 (Classes)R2 := πclass,country (R1)Exercise 2.4.3bR1 := σlaunched < 1921 (Ships)R2 := πname (R1)RamilliesRenownRepulseResolutionRevengeRoyal OakRoyal SovereignTennesseeExercise 2.4.3cR1 := σbattle=Denmark Strait AND result=sunk(Outcomes)R2 := πship (R1)shipBismarckHoodExercise 2.4.3dR1 := Classes ShipsR2 := σlaunched > 1921 AND displacement > 35000 (R1)R3 := πname (R2)nameIowaMissouriMusashiNew JerseyNorth CarolinaWashingtonWisconsinYamatoExercise 2.4.3eR1 := σbattle=Guadalcanal(Outcomes)R2 := Ships (ship=name) R1R3 := Classes R2R4 := πname,displacement,numGuns(R3)name displacement numGuns Kirishima 32000 8Washington 37000 9Exercise 2.4.3fR1 := πname(Ships)R2 := πship(Outcomes)R3 := ρR3(name)(R2)R4 := R1 R3nameCaliforniaHarunaHieiIowaKirishimaKongoMissouriMusashiNew JerseyNorth CarolinaRamilliesRenownRepulseResolutionRevengeRoyal OakRoyal SovereignTennesseeWashingtonExercise 2.4.3gFrom 2.3.2, assuming that every class has one ship named after the class. R1 := πclass (Classes)R2 := πclass (σname <> class (Ships))R3 := R1 – R2Exercise 2.4.3hR1 := πcountry (σtype=bb (Classes))R2 := πcountry (σtype=bc (Classes))R3 := R1 ∩ R2Exercise 2.4.3iR1 := πship,result,date (Battles (battle=name) Outcomes)R2 := ρR2(ship2,result2,date2)(R1)R3 := R1 (ship=ship2 AND result=damaged AND date < date2) R2R4 := πship (R3)No results from sample data.Exercise 2.4.4aσbore ≥ 16πclass,country ClassesExercise 2.4.4bσlaunched < 1921πname ShipsExercise 2.4.4cWisconsin Yamato Arizona Bismarck Duke of York Fuso Hood King George V Prince of WalesRodneyScharnhorstSouth Dakota West VirginiaYamashiro classBismarckcountryJapanGt. BritainOutcomesπshipσbattle=Denmark Strait AND result=sunkExercise 2.4.4dClasses Shipsσlaunched > 1921 AND displacement > 35000πnameExercise 2.4.4eσbattle=Guadalcanal Outcomes ShipsClasses(ship=name)πname,displacement,numGunsExercise 2.4.4fShipsOutcomesπnameπship ρR3(name)Exercise 2.4.4g ClassesShips πclass σname <> class πclass –Exercise 2.4.4hClasses Classes σtype=bb σtype=bcπcountry πcountry∩Exercise 2.4.4iπship(ship=ship2 AND result=damaged AND date < date2)ρR2(ship2,result2,date2)πship,result,date(battle=name)Battles OutcomesExercise 2.4.5The result of the natural join has only one attribute from each pair of equated attributes. On the other hand, the result of the theta-join has both columns of the attributes and their values are identical.Exercise 2.4.6UnionIf we add a tuple to the arguments of the union operator, we will get all of the tuples of the original result and maybe the added tuple. If theadded tuple is a duplicate tuple, then the set behavior will eliminate that tuple. Thus the union operator is monotone.IntersectionIf we add a tuple to the arguments of the intersection operator, we will get all of the tuples of the original result and maybe the added tuple. If the added tuple does not exist in the relation that it is added but does exist in the other relation, then the result set will include the added tuple.Thus the intersection operator is monotone.DifferenceIf we add a tuple to the arguments of the difference operator, we may not get all of the tuples of the original result. Suppose we have relations R and S and we are computing R – S. Suppose also that tuple t is in R but not in S. The result of R – S would include tuple t. However, if we add tuple t to S, then the new result will not have tuple t. Thus the difference operator is not monotone.ProjectionIf we add a tuple to the arguments of the projection operator, we will get all of the tuples of the original result and the projection of the added tuple. The projection operator only selects columns from the relation and does not affect the rows that are selected. Thus the projection operator is monotone.SelectionIf we add a tuple to the arguments of the selection operator, we will get all of the tuples of the original result and maybe the added tuple. If the added tuple satisfies the select condition, then it will be added to the new result. The original tuples are included in the new result because they still satisfy the select condition. Thus the selection operator is monotone.Cartesian ProductIf we add a tuple to the arguments of the Cartesian product operator, we will get all of the tuples of the original result and possibly additional tuples. The Cartesian product pairs the tuples of one relation with the tuples of another relation. Suppose that we are calculating R x S where R has m tuples and S has n tuples. If we add a tuple to R that is not already in R, then we expect the result of R x S to have (m + 1) * n tuples.Thus the Cartesian product operator is monotone.Natural JoinsIf we add a tuple to the arguments of a natural join operator, we will get all of the tuples of the original result and possibly additional tuples.The new tuple can only create additional successful joins, not less. If, however, the added tuple cannot successfully join with any of theexisting tuples, then we will have zero additional successful joins. Thus the natural join operator is monotone.Theta JoinsIf we add a tuple to the arguments of a theta join operator, we will get all of the tuples of the original result and possibly additional tuples. The theta join can be modeled by a Cartesian product followed by a selection on some condition. The new tuple can only create additional tuples in the result, not less. If, however, the added tuple does not satisfy the select condition, then no additional tuples will be added to the result. Thus the theta join operator is monotone.RenamingIf we add a tuple to the arguments of a renaming operator, we will get all of the tuples of the original result and the added tuple. The renaming operator does not have any effect on whether a tuple is selected or not. In fact, the renaming operator will always return as many tuples as its argument. Thus the renaming operator is monotone.Exercise 2.4.7aIf all the tuples of R and S are different, then the union has n + m tuples, and this number is the maximum possible.The minimum number of tuples that can appear in the result occurs if every tuple of one relation also appears in the other. Then the union has max(m , n) tuples.Exercise 2.4.7bIf all the tuples in one relation can pair successfully with all the tuples in the other relation, then the natural join has n * m tuples. This number would be the maximum possible.The minimum number of tuples that can appear in the result occurs if none of the tuples of one relation can pair successfully with all the tuples in the other relation. Then the natural join has zero tuples.Exercise 2.4.7cIf the condition C brings back all the tuples of R, then the cross product will contain n * m tuples. This number would be the maximum possible.The minimum number of tuples that can appear in the result occurs if the condition C brings back none of the tuples of R. Then the cross product has zero tuples.Exercise 2.4.7dAssuming that the list of attributes L makes the resulting relation πL(R) and relation S schema compatible, then the maximum possible tuples is n. This happens when all of the tuples of πL(R) are not in S.The minimum number of tuples that can appear in the result occurs when all of the tuples in πL(R) appear in S. Then the difference has max(n–m , 0) tuples.Exercise 2.4.8Defining r as the schema of R and s as the schema of S:1.πr(R S)2.R δ(πr∩s(S)) where δ is the duplicate-elimination operator in Section 5.2 pg. 2133.R – (R –πr(R S))Exercise 2.4.9Defining r as the schema of R1.R - πr(R S)Exercise 2.4.10πA1,A2…An(R S)Exercise 2.5.1aσspeed < 2.00 AND price > 500(PC) = øModel 1011 violates this constraint.Exercise 2.5.1bσscreen < 15.4 AND hd < 100 AND price ≥ 1000(Laptop) = øModel 2004 violates the constraint.Exercise 2.5.1cπmaker(σtype = laptop(Product)) ∩ πmaker(σtype = pc(Product)) = øManufacturers A,B,E violate the constraint.Exercise 2.5.1dThis complex expression is best seen as a sequence of steps in which we define temporary relations R1 through R4 that stand for nodes of expression trees. Here is the sequence:R1(maker, model, speed) := πmaker,model,speed(Product PC)R2(maker, speed) := πmaker,speed(Product Laptop)R3(model) := πmodel(R1 R1.maker = R2.maker AND R1.speed ≤ R2.speed R2)R4(model) := πmodel(PC)The constraint is R4 ⊆ R3Manufacturers B,C,D violate the constraint.Exercise 2.5.1eπmodel(σLaptop.ram > PC.ram AND Laptop.price ≤ PC.price(PC × Laptop)) = øModels 2002,2006,2008 violate the constraint.Exercise 2.5.2aπclass(σbore > 16(Classes)) = øThe Yamato class violates the constraint.Exercise 2.5.2bπclass(σnumGuns > 9 AND bore > 14(Classes)) = øNo violations to the constraint.Exercise 2.5.2cThis complex expression is best seen as a sequence of steps in which we define temporary relations R1 through R5 that stand for nodes of expression trees. Here is the sequence:R1(class,name) := πclass,name(Classes Ships)R2(class2,name2) := ρR2(class2,name2)(R1)R3(class3,name3) := ρR3(class3,name3)(R1)R4(class,name,class2,name2) := R1 (class = class2 AND name <> name2) R2R5(class,name,class2,name2,class3,name3) := R4 (class=class3 AND name <> name3 AND name2 <> name3) R3The constraint is R5 = øThe Kongo, Iowa and Revenge classes violate the constraint.Exercise 2.5.2dπcountry(σtype = bb(Classes)) ∩ πcountry(σtype = bc(Classes)) = øJapan and Gt. Britain violate the constraint.Exercise 2.5.2eThis complex expression is best seen as a sequence of steps in which we define temporary relations R1 through R5 that stand for nodes of expression trees. Here is the sequence:R1(ship,battle,result,class) := πship,battle,result,class(Outcomes (ship = name) Ships)R2(ship,battle,result,numGuns) := πship,battle,result,numGuns(R1 Classes)R3(ship,battle) := πship,battle(σnumGuns < 9 AND result = sunk (R2))R4(ship2,battle2) := ρR4(ship2,battle2)(πship,battle(σnumGuns > 9(R2)))R5(ship2) := πship2(R3 (battle = battle2) R4)The constraint is R5 = øNo violations to the constraint. Since there are some ships in the Outcomes table that are not in the Ships table, we are unable to determine the number of guns on that ship.Exercise 2.5.3Defining r as the schema A1,A2,…,A n and s as the schema B1,B2,…,B n:πr(R) πs(S) = øwhere is the antisemijoinExercise 2.5.4The form of a constraint as E1 = E2 can be expressed as the other two constraints.Using the “equating an expression to the empty set” method, we can simply say:E1– E2 = øAs a containment, we can simply say:E1⊆ E2 AND E2⊆ E1Thus, the form E1 = E2 of a constraint cannot express more than the two other forms discussed in this section.。

数据库1-3章习题参考答案

数据库1-3章习题参考答案

第二章 习题
二、多项选择题 5、下列关系代数运算中,要求是相容关系的是( ) A. 投影 B. 并 C.交 D.差 6、 关系模型的完整性规则包括( )。 A. 实体完整性规则 B.参照完整性规则 C.安全性规则 D.用户定义的完整性规 则 7.扩充关系代数 包括 ( )。 A. 外联接 B. 除 C.外部并 D.联接 8、自然联接运算是由( )操作组合而成 A. 投影 B.选择 C.笛卡儿积 D.并 9、关系模型是由( )组成 A. 数据结构 B.数据描述语言 C.数据操作 D.完 整性规则
6、试述过程性DML与非过程性DML的区别 。 用户使用过程性DML编程时,不仅需要指出 “做什么”,而且还需指出“怎么做”。用 户使用非过程性DML编程时,则需指出“做 什么”,不需指出“怎么做” 。
三、应用题
1、为某百货公司设计一个E-R模型。 某百货公司管辖若干个连锁商店,每家商 店经营若干种商品,每家商店有若干职工, 但每个职工只能服务于一家商店。 试画出反映商店、商品、职工之间联系的 E-R模型,并将其转换成关系模式集。
1、在关系中能唯一标识元组的属性集为( D )。 A.外部键 B.候选键 C.主键 D.超键
2、在实体中有属性可作为键而选定其中一个时,称
为该实体的 ( C )。 A.外部键 B.候选键 C.主键 D.主属性
3、若某属性虽非该实体的主键,却是另一实体的主
键,称该属性为( A )。 A.外部键 B.候选键 C.主键 D.主属性
第一章 习题
6、数据独立性与数据联系这两个概念有什 么区别? 7、试述DBMS在用户访问数据库过程中所 起的作用。
8、试述过程性DML与非过程性DML的区别 。
三、应用题
1、为某百货公司设计一个E-R模型。 某百货公司管辖若干个连锁商店,每家商 店经营若干种商品,每家商店有若干职工, 但每个职工只能服务于一家商店。 试画出反映商店、商品、职工之间联系的 E-R模型,并将其转换成关系模式集。

数据库学习课程第二章习题和答案

数据库学习课程第二章习题和答案

数据库学习课程第二章习题和答案一.单项选择1.SQL语言是 B 的语言,易学习.A 过程化B 非过程化C 格式化D 导航式提示:SQL是一种介于关系代数与关系演算之间的结构化查询语言,它是高度非过程化的.2.SQL语言是 C 语言.A 层次数据库B 网络数据库C 关系数据库D 非数据库提示:SQL是关系数据库标准语言.3.SQL语言具有 B 的功能.A 关系规范化,数据操纵,数据控制B 数据定义,数据操纵,数据控制C 数据定义,关系规范化,数据控制D 数据定义,关系规范化,数据操纵提示:SQL语言自身不具备关系规范化功能.4.在SQL中,用户可以直接操作的是 D .A 基本表B 视图C 基本表和视图D 基本表和视图5.在SQL语言中,实现数据检索的语句是 A .A SELECTB INSERTC UPDATED DELETE6.SELECT语句执行结果是 C .A 数据项B 元组C 表D 数据库7.在SQL语句中,对输出结果排序的语句是 B .A GROUP BYB ORDER BYC WHERED HA VING8.在SELECT语句中,需对分组情况满足的条件进行判断时,应使用 D .A WHEREB GROUP BYC ORDER BYD HA VING9.在SELECT语句中使用*表示 B .A 选择任何属性B 选择全部属性C 选择全部元组D 选择主码10.在SELECT语句中,使用MAX(列名)时,该”列名”应该 D .A 必须是数值型B 必须是字符型C 必须是数值型或字符型D 不限制数据类型11.使用CREATE TABLE语句创建的是 B .A 数据库B 表C 试图D 索引12.下列SQL语句中,修改表结构的是 A .A ALTERB CREATEC UPDATED INSERT13.在SQL中使用UPDATE语句对表中数据进行修改时,应使用的语句是 D .A WHEREB FROMC V ALUESD SET14.视图建立后,在数据库中存放的是 C .A 查询语句B 组成视图的表的内容C 视图的定义D 产生视图的表的定义15.以下叙述中正确的是 B .A SELECT命令是通过FOR子句指定查询条件B SELECT命令是通过WHERE子句指定查询条件C SELECT命令是通过WHILE子句指定查询条件D SELECT命令是通过IS子句指定查询条件16.与WHERE AGE BETWEEN 18 AND 23完全等价的是 D .A WHERE AGE>18 AND AGE<23B WHERE AGE<18 AND AGE>23C WHERE AGE>18 AND AGE<=23 D WHERE AGE>=18 AND AGE<=2317.在查询中统计记录(元组)的个数时,应使用 C 函数.A SUMB COUNT(列名)C COUNT(*)D A VG18.在查询中统计某列中值的个数应使用 B 函数.A SUMB COUNT(列名)C COUNT(*)D A VG19.已知基本表SC(S#,C#,GRADE),其中S#为学号,C#为课程号,GRADE为成绩.则”统计选修了课程的学生人数”的SQL—SELECT语句为 A .A SELECT COUNT(DISTINCT S#)FROM SCB SELECT COUNT(S#)FROM SC C SELECT COUNT()FROM SCD SELECT COUNT(DISTINCT *)FROM SC20.在数据库中有如图所示的两个表,若职工表的主码是职工号,部门表的主码是部门号,SQL 操作 B 不能执行.A 从职工表中删除行(‘025’,’王芳’,’03’,720)B 将行(‘005’,’乔兴’,’04’,750)插入到职工表中C 将职工号为”001”的工资改为700D 将职工号为”038”的部门号改为’03’提示:由于职工表中的职工号为主码,不能向其中插入同主码的记录.21.若用如下SQL语句创建一个表studentCREATE TABLE student(NO CHAR(4) NOT NULL,NAME CHAR(8) NOT NULL,SEX CHAR(2),AGE INT)可以插入到student 表中的是 B .A (‘1031’,’曾华’,男,23)B (‘1031’,’曾华’,NULL,NULL)C (NULL,’曾华’,’男’,’23’)D (‘1031’,NULL,’男’,23)提示:A 中性别SEX 属性值格式不正确,C 中NO 属性值不能为空,D 中NAME 属性值不能为空.22.假设学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选课关系是SC(S#,C#,GRADE).要查询选修”COMPUTER ”课程的”女”同学的姓名,将涉及关系 D .A SB SC,C C S,SCD S,SC,C 二.填空1.SQL 语言的数据定义功能包括 定义数据 、 定义基本表 、 定义视图 、 定义索引 。

《数据库概论》第二章期末考试复习提纲+课后习题答案

《数据库概论》第二章期末考试复习提纲+课后习题答案

1.试述关系模型的三个组成部分。

答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

2.试述关系模型的完整性规则。

在参照完整性中,什么情况下外码属性的值可以为空值?答:关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。

关系模型的完整性规则是对关系的某种约束条件。

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

②参照完整性规则:若属性(或属性组)是基本关系R的外码,它与基本关系S的主码K,相对应(基本关系A和S不一定是不同的关系),则对于R中每个元组在F上的值必须为下面二者之一:-或者取空值(F的每个属性值均为空值);・或者等于S中某个元组的主码值。

③用户定义的完整性是针对某一具体关系数据库的约束条件。

它反映某一具体应用所涉及的数据必须满足的语义要求在参照完整性中,如果外码属性不是其所在关系的主属性,外码属性的值可以取空值。

3.代数的基本运算有哪些?如何用这些基本运算来表示其他运算?答:在8种关系代数运算中,并、差、笛卡儿积、投影和选择5种运算为基本运算;其他三种运算,即交、连接和除,均可以用这5种基本运算来表达。

2.3补充习题1.选择题(1) 关于关系模型,下列叙述不正确的是(D )。

A.一个关系至少要有一个候选码B.列的次序可以任意交换C.行的次序可以任意交换D.一个列的值可以来自不同的域(2) 下列说法正确的是(A)。

A.候选码都可以唯一地标识一个元组B.候选码中只能包含一个属性C.主属性可以取空值D.关系的外码不可以取空值(3) 关系操作中,操作的对象和结果都是(B )。

A.记录B.集合C.元组D.列(4) 假设存在一张职工表,包含“性别”属性, 要求这个属性的值只能取“男”或“女”,这属于(C )oA.实体完整性B.参照完整性C.用户定义的完整性D.关系不变性(5)有两个关系R(A,B,C)和S(B,C,D),将R和S进行自然连接,得到的结果包含几个列(B)。

数据库原理与应用第2章答案解析主编肖海蓉、任民宏

数据库原理与应用第2章答案解析主编肖海蓉、任民宏

数据库原理与应⽤第2章答案解析主编肖海蓉、任民宏第2章关系数据库基础2.1关系的概念2.2关系数据模型2.2.1关系模型及其要素2.2.2关系的性质及类型2.3关系代数2.3.1关系代数概述2.3.2传统的集合运算2.3.3专门的关系运算2.3.4关系代数运算实例分析及查询优化2.4关系演算2.4.1元组关系运算2.4.2域关系运算本章⼩结习题2第2 章关系数据库基本理论课后习题参考答案1、选择题(1)~(4):C、A、C、B(5)~(8):D、B、C、C(9)~(12):C、A、D、C2、简答题1)定义并解释下列术语,说明它们之间的联系。

答:候选码:在关系中可以唯⼀标识⼀个元组的属性或属性组。

主码:如果⼀个关系中有多个候选码,则选定其中最⼩属性组为主码;主码⼀般⽤下划横线标⽰。

外码:如果属性 X 不是关系R2 的主码,⽽是另⼀关系R1 的主码,则该属性X 称为关系R2 的外码;外码⼀般⽤波浪线标⽰。

域:域是⼀组具有相同数据的值的集合。

笛卡尔积:设定⼀组域 D1,D2,D3,…,D n,这些域中允许有相同的, D1,D2,D3,…,D n 的笛卡尔积为:D1×D2×D3×…×D n={(d1,d2,d3,…,d n)∣d i∈D i ,i=1,2,…,n} 即诸域 D1,D2,D3,…,D n 中各元素间的⼀切匹配组合构成的集合。

其中每个元素(d1,d2,d3,…,d n)称为⼀个元组,元素中的每个值 d i(i=1,2,…,n)称为⼀个分量。

关系:笛卡尔积 D1×D2×D3×…×D n 的⼦集称为域D1,D2,D3,…,D n 上的⼀个 n 元关系,表⽰为:R(D1,D2,D3,…,D n);关系是笛卡尔积的⼦集,故关系也是⼀张⼆维表,关系中每个元素(d1,d2,d3,…,d n)是关系的元组,对应⼆维表中的⾏,关系中的每个域 D i(i=1,2,…,n)对应表中的⼀列即属性。

数据库课后答案 第二章(数据库系统基本原理)

数据库课后答案 第二章(数据库系统基本原理)

《数据库技术及应用基础教程》第二章参考答案--责任人:袁圆、董婧灵、娄振霞一、选择题1~5:CDCCD 6~10:BDCCA 11~15:AD,ABCA 16:B二、填空题:1.数据库、数据库系统软件、数据库系统用户2. 关系名(属性名1,属性名2,属性名3,…)3.列4. 能标识独一实体的属性或属性组5.一张或几张表(或视图),结构,数据6. 使关系中的每一个属性为不可再分的单纯形域(消除“表中表”),使关系中所有非主属性对任意一个侯选关键字不存在部分函数依赖(使关系中所有非主属性都完全函数依赖于任意一个侯选关键字),使关系中所有非主属性对任意一个侯选关键字不存在传递函数依赖7.需求分析阶段,概念结构设计阶段,逻辑结构设计阶段,数据库物理设计阶段,数据库实施阶段,数据库运行和维护阶段8.数据库应用系统(DBAS)9.安全性、完整性、并发控制和数据恢复10.发生故障后,故障前状态11.授权12.事务13.事务中包括的各个操作一旦开始执行,则一定要全部完成14.封锁,共享锁,排他锁15. 一致性,正确性16.系统自动完成三、简答题1、试述数据模型的概念、数据模型的作用和数据模型的三个要素。

答:数据模型是现实世界数据特征的一种抽象,一种表示实体类型及实体类型间联系的模型。

数据模型可以抽象、表示、处理现实中的数据和信息。

数据模型的三要素分别是:(1)数据结构:是所研究的对象类型的集合,是对系统静态特性的描述。

(2)数据操作:对数据库中各种对象(型)的实例(值)允许执行的操作的集合,操作及操作规则。

(3)数据的约束条件:是一组完整性规则的集合。

也就是说,对于具体的应用娄必须遵循特定的语义约束条件,以保证数据的正确、有效和相容。

2、试述网状、层次数据库的优缺点。

答:网状数据库的优点:(1)能更直接的描述现实世界;(2)具有良好的性能,存取效率更好。

网状数据库缺点:(1)结构复杂,应用系统越大数据库结构越复杂;(2)用法复杂,用户不易理解。

数据库原理与应用教程-(第二版)习题参考答案

数据库原理与应用教程-(第二版)习题参考答案

第2章习题参考答案第6小题三简答题(1)查询T1老师所授课程的课程号和课程名。

(2)查询年龄大于18岁男同学的学号、姓名、系别。

(3)查询“李力”老师所授课程的课程号、课程名和课时。

(4)查询学号为S1的同学所选修课程的课程号、课程名和成绩。

(5)查询“钱尔”同学所选修课程的课程号、课程名和成绩。

(6)查询至少选修“刘伟”老师所授全部课程的学生姓名。

(7)查询“李思”同学未选修的课程的课程号和课程名。

(8)查询全部学生都选修了的课程的课程号和课程名。

(9)查询选修了课程号为C1和C2的学生的学号和姓名。

(10)查询选修全部课程的学生的学号和姓名。

(11)查询选修课程包含“程军”老师所授课程之一的学生学号。

(12)查询选修课程包含学号S2的学生所修课程的学生学号。

第3章习题参考答案一、选择题1. B2. A3. C4. B5. C6. C7. B8. D9. A 10. D二、填空题1. 结构化查询语言(Structured Query Language)2. 数据查询、数据定义、数据操纵、数据控制3. 外模式、模式、内模式4. 数据库、事务日志5. NULL/NOT NULL、UNIQUE约束、PRIMARY KEY约束、FOREIGN KEY约束、CHECK约束6. 聚集索引、非聚集索引7. 连接字段8. 行数9. 定义10. 系统权限、对象权限11. 基本表、视图12.(1)INSERT INTO S VALUES('990010','李国栋','男',19)(2)INSERT INTO S(No,Name) VALUES('990011', '王大友')(3)UPDATE S SET Name='陈平' WHERE No='990009'(4)DELETE FROM S WHERE No='990008'(5)DELETE FROM S WHERE Name LIKE '陈%'13.CHAR(8) NOT NULL14.o=o15.ALTER TABLE StudentADD SGrade CHAR(10)三、设计题1.(1) 查找在“高等教育出版社”出版,书名为“操作系统”的图书的作者名。

数据库第二章练习题答案

数据库第二章练习题答案

数据库第二章练习题答案数据库第二章练习题答案数据库是现代信息系统中的重要组成部分,它负责存储、管理和处理数据。

在学习数据库的过程中,练习题是检验我们对知识掌握程度的重要方式。

本文将为大家提供数据库第二章练习题的详细答案,希望能对大家的学习有所帮助。

1. 什么是实体完整性?实体完整性是指数据库中的实体必须具有唯一的标识符,也就是主键。

每个实体都必须有一个主键,用来唯一标识该实体。

实体完整性保证了数据库中的实体的唯一性。

2. 什么是参照完整性?参照完整性是指数据库中的外键必须引用已经存在的主键。

外键是一个表中的字段,它引用了另一个表中的主键。

参照完整性保证了数据库中的关系的一致性。

3. 什么是主键?主键是用来唯一标识一个实体的字段或字段组合。

主键的值在表中必须是唯一的,且不能为空。

主键可以是一个字段,也可以是多个字段的组合。

4. 什么是外键?外键是一个表中的字段,它引用了另一个表中的主键。

外键用来建立两个表之间的关系,保证数据的一致性和完整性。

5. 什么是联合主键?联合主键是由多个字段组成的主键。

联合主键的值在表中必须是唯一的,且不能为空。

联合主键用来唯一标识一个实体。

6. 什么是关系型数据库?关系型数据库是以关系模型为基础的数据库。

关系模型是由表、行和列组成的,每个表代表一个实体,每一行代表一个实例,每一列代表一个属性。

关系型数据库使用SQL语言进行数据操作。

7. 什么是非关系型数据库?非关系型数据库是指不使用关系模型的数据库。

非关系型数据库使用不同的数据模型,如键值对、文档型、列族型等。

非关系型数据库具有高性能、高可扩展性和灵活性的特点。

8. 什么是数据库事务?数据库事务是由一组数据库操作组成的逻辑单位。

事务具有原子性、一致性、隔离性和持久性的特点。

原子性表示事务中的操作要么全部执行成功,要么全部执行失败;一致性表示事务执行前后数据库的状态保持一致;隔离性表示事务之间是相互隔离的;持久性表示事务提交后,其结果将永久保存在数据库中。

数据库第二章课后习题解答

数据库第二章课后习题解答
4.检索选修课程号为C02或C06的学生学号。
sno(cno='C02'∨cno='C06'(elective))
5.检索至少选修课程号为C02和C06的学生学号。
sno(1=4∧2='C02'∧5='C06'(electiveelective))
6.检索没有选修C06课程的学生姓名及其所在班级。
sname, class(student) -sname, class(cno='C06'(student elective))
【解答】
方法一:运用推理规则推导。
对已知的AC→B和B→D,根据Å3传递律,AC→D成立;
对已证的AC→D和已知的D→BE,根据Å3传递律,AC→BE成立;即AC→BE能从F中导出。
方法二:按算法2.1(求属性集合X关于函数依赖集F的闭包X+),求(AC)+。
(1) 置初始值A=ф,A*=AC;
(2) 因A≠A*,置A=AC;
sno, grade(cno='C06'(elective)) 或1,3(2='C06'(elective))
2.检索学习课程号为C06的学生学号与姓名。
sno, sname(cno='C06'(student elective))
3.检索学习课程名为ENGLISH的学生学号与姓名。
sno, sname(cname='ENGLISH'(student elective course))
4. ; 。
5.A B;A B;A B。
【解答】
1.结果关系见表3.2(a)~表3.2(e)。

大学数据库-第2章习题解答

大学数据库-第2章习题解答

第2章习题解答〖2.1〗定义并解释术语:实体实体型实体集属性码实体联系图(E-R图)数据模型答:①实体:现实世界中存在的可以相互区分的事物或概念称为实体。

②实体型:现实世界中,对具有相同性质、服从相同规则的一类事物(或概念,即实体)的抽象称为实体型。

③实体集:具有相同特征或能用同样特征描述的实体的集合称为实体集。

④属性:属性为实体的某一方面特征的抽象表示。

⑤码:也称为关键字,能够唯一标识一个实体。

⑥实体联系图(E-R图):实体联系方法(E-R图法)是用来描述现实世界中概念模型的一种著名方法,提供了表示实体集、属性和联系的方法。

⑦数据模型:一组严格定义的概念集合。

这些概念精确地描述了系统的数据结构、数据操作和数据完整性约束条件。

〖2.2〗试述数据模型的概念、数据模型的作用和数据模型的三个要素。

答:①数据模型是一组严格定义的概念集合,这些概念精确地描述了系统的数据结构、数据操作和数据完整性约束条件。

数据模型是通过概念模型数据化处理得到的。

②数据库是根据数据模型建立的,因而数据模型是数据库系统的基础。

③数据模型的三要素是数据结构、数据操作和完整性约束条件。

数据结构是所研究的对象类型的集合;数据操作是指对数据库中各种数据对象允许执行的操作集合;数据约束条件是一组数据完整性规则的集合。

〖2.3〗试述信息模型的作用。

答:信息模型是对信息世界的管理对象、属性及联系等信息的描述形式。

信息模型不依赖于计算机及DBMS,它是现实世界的真实而全面的反映。

信息模型数据化处理后可得到数据模型。

〖2.4〗试给出三个实际部门的E-R图,要求实体型之间具有一对一、一对多、多对多各种不同的联系。

答:见图。

题2.4 E-R图图中:部门和负责人间的联系是一对一的联系;一个学生可以借阅多本书,一本书只能一个人借,学生和借阅间的联系为一对多的联系;一个学生可以参加多个社会团体,一个社会团体有多个学生参加,学生和社会团体间的联系为多对多的联系。

数据库基础及其应用第二章课后作业

数据库基础及其应用第二章课后作业

第二章关系运算1.关系数据模型包括(关系数据结构)、(关系完整性规则)和(关系运算)三个方面。

2.在一个关系中,不同的列可以对应同一个(域),但必须具有不同的(列名)。

3.顾客购物的订单和订单明细之间是(1)对(多)的联系。

4.主码是一种(候选)码,主码中的(属性)个数没有限制。

5.若一个关系为R(学生号,姓名,性别,年龄),则(学生号)可以作为该关系的主码,姓名、性别和年龄为该关系的(非主)属性。

6.关系完整性包括(实体)完整性、(参照)完整性和(用户定义)的完整性三个方面。

7.在参照和被参照的关系中,每个外码值或者为(空值),或者等于某个(主码)值。

8.传统的集合运算包括(并)、(交)、(差)和(笛卡尔积)四种。

9.设一个关系A具有a1个属性和a2个元组,关系B具有b1个属性和b2个元组,则关系AxB具有(a1+b1)个属性和(a2xb2)个元组。

10.设一个关系模式为R(A,B,C),对应的关系内容为R={{1,10,50}, {2,10,60}, {3,20,72}, {4,30,60}},则δB>15(R)属于(选择)运算,运算结果中包含有(2)个元组。

11.设一个关系模式为R(A,B,C),对应的关系内容为R={{1,10,50}, {2,10,60}, {3,20,72}, {4,30,60}},则的运算结果中包含有(4)个元组,每个元组包含有(3)个分量。

12.设一个学生关系为S(学生号,姓名),课程关系为C(课程号,课程名),选课关系为X(学生号,课程号,成绩),则选修了课程名为’程序设计’课程的全部学生信息所对应的运算(C))))。

表达式为(Π学生号(X(δ课程名=’程序设计’13.设一个学生关系为S(学生号,姓名),课程关系为C(课程号,课程名),选课关系为X(学(X))生号,课程号,成绩),则求出所有选修课程信息的运算表达式为(Π课程号与(C)的自然连接。

14.设D1、D2、和D3域的基数分别为2、3、4,则D1*D2*D3的元组数为(24),每个元组有(3)个分量。

数据库原理与设计第二章课后习题答案

数据库原理与设计第二章课后习题答案

电子工业出版社《数据库原理与设计》第二章部分课后习题答案p24 1.简述数据模型的三要素。

答:数据模型的三要素包括:数据结构、数据操作、数据模型的完整性约束。

数据结构是所研究的对象类型的集合。

刻画对象和对象之间的关系,是对数据库系统静态特性的描述。

如对象的类型、性质、对象之间的参照,所属关系等。

数据操作是指对数据库中各种对象的值允许执行的操作的集合,包括有关的操作要求,是对数据库系统动态特性的描述。

数据库只要有查询和更新(增加、删除和修改)操作。

数据模型中需要定义这些操作的具体含义、操作符号、操作规则和实现操作的语句。

数据模型的完整性约束即数据和数据间应该满足的条件,是一组完整性规则的集合,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确性、有效性、和相容性。

6.现有某应用,涉及两个实体集,两实体间的联系及相关的属性如下所述。

请画出该应用的E-R图。

实体集Enitity1(A#,A1,A2,A3) 其中,A#为码实体集Enitity2(B#,B1,B2) 其中,B#为码答:E-R 图如下:7.要开发连锁百货数据库管理系统,在该系统中有3个实体:商店,其属性有商店编号,商店名及地址等;商品,其属性有商品号、商品名、规格及单价等;职工,其属性有职工编号、姓名、性别以及业绩等。

商店与商品存在“销售”联系,每个商店可以销售多种商品,每种商品也可放在多个商店销售,每个商店销售的每种商品有月销售量;商店与职工间存在着“聘用关系”,每个商店有多名职工,每个职工只能在一个商店工作,商店聘用职工有月薪。

答:实体间联系的属性及其E-R图表示:实体间联系的属性及其E-R图表示:商店实体及属性的E-R图表示:商品实体及属性的E-R图表示:职工实体及属性的E-R图表示:8.(1991年高级程序员考试试题)从供选择的答案中选出应填入下列叙述中的正确答案,把编号依次写出来。

一个数据库系统必须能表示试题和关系。

数据库第二章习题及答案

数据库第二章习题及答案

第二章 关系数据库习题二一、单项选择题:1、系数据库管理系统应能实现的专门关系运算包括 B 。

A .排序、索引、统计 B.选择、投影、连接 C .关联、更新、排序 D.显示、打印、制表2、关系模型中,一个关键字是 C 。

A .可由多个任意属性组成 B .至多由一个属性组成C .可由一个或多个其值能惟一标识该关系模型中任何元组的属性组成D .以上都不是3、个关系数据库文件中的各条记录 B 。

A .前后顺序不能任意颠倒,一定要按照输入的顺序排列B .前后顺序可以任意颠倒,不影响库中的数据关系C .前后顺序可以任意颠倒,但排列顺序不同,统计处理的结果就可能不同D .前后顺序不能任意颠倒,一定要按照关键字段值的顺序排列 4、有属性A ,B ,C ,D ,以下表示中不是关系的是 C 。

A .R (A ) B .R (A ,B ,C ,D ) C .D)C B R(A ⨯⨯⨯ D .R (A ,B )5、概念模型中,一个实体相对于关系数据库中一个关系中的一个 B 。

A 、属性 B 、元组 C 、列 D 、字段二、设有一个SPJ 数据库,包括S ,P ,J ,SPJ 四个关系模式: S( SNO ,SNAME ,STA TUS ,CITY); P(PNO ,PNAME ,COLOR ,WEIGHT); J(JNO ,JNAME ,CITY);SPJ(SNO ,PNO ,JNO ,QTY);供应商表S 由供应商代码(SNO )、供应商姓名(SNAME )、供应商状态(STATUS )、供应商所在城市(CITY )组成;零件表P 由零件代码(PNO )、零件名(PNAME )、颜色(COLOR )、重量(WEIGHT )组成; 工程项目表J 由工程项目代码(JNO )、工程项目名(JNAME )、工程项目所在城市(CITY )组成; 供应情况表SPJ 由供应商代码(SNO )、零件代码(PNO )、工程项目代码(JNO )、供应数量(QTY )组成,表示某供应商供应某种零件给某工程项目的数量为QTY 。

数据库第二章练习题答案

数据库第二章练习题答案

数据库第二章练习题答案一、选择题1. 在关系数据库中,一个关系可以被视为一个()。

A. 表B. 列C. 行D. 视图答案:A2. 数据库管理系统(DBMS)的主要功能不包括()。

A. 数据存储B. 数据检索C. 数据加密D. 数据管理答案:C3. 以下哪个选项是SQL语言的基本组成部分?A. 存储过程B. 触发器C. 视图D. 所有选项答案:D4. 在关系数据库设计中,主键用于()。

A. 唯一标识表中的每条记录B. 存储数据C. 排序数据D. 索引数据答案:A5. 以下哪个是数据库规范化的目的?A. 提高查询速度B. 减少数据冗余C. 增加数据安全性D. 降低存储成本答案:B二、填空题6. 数据库的三大范式是第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。

答案:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)7. 在SQL中,用于创建新表的命令是____。

答案:CREATE TABLE8. 一个数据库表可以有多个索引,但只能有一个____。

答案:主键9. 在数据库中,外键用于维护表之间的____。

答案:参照完整性10. 数据库的事务具有四个重要的属性,通常被称为ACID属性,它们是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

三、简答题11. 请简述数据库的三种基本操作。

答案:数据库的三种基本操作是插入(INSERT)、查询(SELECT)和更新(UPDATE)。

12. 解释什么是数据库的事务?答案:数据库的事务是一个操作序列,它们作为一个整体被执行,以确保数据的完整性。

事务要么完全成功,要么完全失败,不会留下中间状态。

四、应用题13. 假设你有一个学生信息表,包含学号、姓名、年龄和专业。

请编写一个SQL查询,列出所有20岁的学生名单。

答案:SELECT 姓名 FROM 学生信息表 WHERE 年龄 = 20;14. 如果需要删除一个表中的重复记录,你会使用哪个SQL命令?答案:可以使用DELETE命令结合GROUP BY和HAVING COUNT(*) > 1来删除重复记录。

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

第3部分习题及其解答第一章的两道题3-2 习题2分别把习题、习题的ER图转换成关系模型数据结构。

【参考答案】1.习题的ER图可转换成如下的关系模型数据结构。

①程序员(编号,姓名,性别,年龄,单位,职称),其中编号是关键字;②程序(程序名称,版权,专利号,价格),其中程序名称是关键字;③设计(编号,程序名称,开始时间,结束时间),其中(编号,程序名称)是关键字。

2.习题的ER 图可转换成如下的关系模型数据结构。

① 工厂(工厂名称,厂址,联系电话),其中工厂名称是关键字; ② 产品(产品号,产品名,规格,单价),其中产品号是关键字;③ 工人(工人编号,姓名,性别,职称,工厂名称,雇用期,月薪),其中工人编号是关键字,工厂名称是外关键字,雇用期和月薪是联系属性;④ 生产(工厂名称,产品号,月产量),其中(工厂名称,产品号)是关键字,生产关系是表示联系的。

判断下列情况,分别指出它们具体遵循那一类完整性约束规则1.用户写一条语句明确指定月份数据在1~12之间有效。

2.关系数据库中不允许主键值为空的元组存在。

3.从A 关系的外键出发去找B 关系中的记录,必须能找到。

【解答】1.用户用语句指定月份数据在1~12之间有效,遵循用户定义的完整性约束规则。

2.关系数据库中不允许主键值为空的元组存在,遵循实体完整性约束规则;3.从A 关系的外键出发去找B 关系的记录,必须能找到,遵循引用完整性约束规则。

判断下列情况,分别指出他们是用DML 还是用DDL 来完成下列操作1.创建“学生”表结构。

2.对“学生”表中的学号属性,其数据类型由“整型”修改为“字符型”。

3.把“学生”表中学号“021”修改为“025”。

【解答】1.创建“学生”表结构,即定义一个关系模式,用DDL 完成。

2.修改“学生”表中学号属性的数据类型,即修改关系模式的定义,用DDL 完成。

3.修改“学生”表中学号属性的数据值,即对表中的数据进行操作,用DML 完成。

给出两个学生选修课程关系A 和B ,属性为姓名、课程名、成绩。

分别写出后列各关系代数运算的结果关系。

1.A 和B2.?)3.? (A -B ))。

4.B A 11=; B A3322>∧= 。

5.A [] B ; A ]B ; A [ B 。

【解答】12345学生关系课程关系选修关系 elective(sno,cno,grade)用关系代数表达式表达下列查询:1.检索学习课程号为C06的学生学号与成绩。

2.检索学习课程号为C06的学生学号与姓名。

3.检索学习课程名为ENGLISH的学生学号与姓名。

4.检索选修课程号为C02或C06的学生学号。

5.检索至少选修课程号为C02和C06的学生学号。

6.检索没有选修C06课程的学生姓名及其所在班级。

7.检索学习全部课程的学生姓名。

8.检索学习课程中包含了S08学生所学课程的学生学号。

【解答】1.检索学习课程号为C06的学生学号与成绩。

?sno, grade (?cno='C06' (elective)) 或 ?1,3 (?2='C06' (elective))2.检索学习课程号为C06的学生学号与姓名。

?sno, sname (?cno='C06' (studentelective))3.检索学习课程名为ENGLISH的学生学号与姓名。

?sno, sname (?cname='ENGLISH' (studentcourse))elective4.检索选修课程号为C02或C06的学生学号。

?sno (?cno='C02'∨cno='C06' (elective))5.检索至少选修课程号为C02和C06的学生学号。

?sno (?1=4∧2='C02'∧5='C06' (elective?elective))6.检索没有选修C06课程的学生姓名及其所在班级。

?sname, class (student) - ?sname, class (?cno='C06' (studentelective))7.检索学习全部课程的学生姓名。

?sname (student(?sno, cno (elective) ? ?cno (course)))8.检索学习课程中包含了S08学生所学课程的学生学号。

?sno, cno (elective) ? (?cno (?sno='S08'(elective)))已知关系模式R(A,B,C,D,E)和函数依赖集F={AB→C, B→D, C→E, EC→B, AC→B,D→BE},试问AC→BE能否从F导出【解答】方法一:运用推理规则推导。

对已知的AC→B和B→D,根据?3传递律,AC→D成立;对已证的AC→D和已知的D→BE,根据?3传递律,AC→BE成立;即AC→BE能从F中导出。

方法二:按算法(求属性集合X关于函数依赖集F的闭包X+),求(AC)+。

(1) 置初始值A=ф,A*=AC;(2) 因A≠A*,置A=AC;(3) 第一次扫描F,找到C→E和AC→B,其左部?AC,故置A*=ACEB。

搜索完,转(4);(4) 因A≠A*,置A=ACEB;(5) 第二次扫描F,找到AB→C,B→D和EC→B,其左部?ACEB,故置A*=ACEBD。

搜索完,转(6);(6) 因A≠A*,置A=ACEBD;(7) 第三次扫描F,找到D→BE,其左部?ACEBD,故置A*=ACEBD。

搜索完,转(8);(8) 因A=A*,转(9);(9) 输出A*,即(AC)+=ACEBD。

因为BE?(AC)+ ,所以AC→BE能够从F中导出。

方法三:运行算法的VB程序,输入相应数据后,得出(AC)+=ACEBD,如图所示。

因为BE?(AC)+ ,所以AC→BE能够从F中导出。

图运行算法的VB程序,求(AC)+。

2.求属性集BG关于F的闭包(BG)+,其算法步骤如下:(1) 置初始值A=ф,A*=BG;(2) 因A≠A*,置A=BG;(3) 第一次扫描F,找到B→CE,其左部?BG,故置A*=BGCE。

搜索完,转(4);(4) 因A≠A*,置A=BGCE;(5) 第二次扫描F,找到GC→A,其左部?BGCE,故置A*=BGCEA。

搜索完,转(6);(6) 因A≠A*,置A=BGCEA;(7) 第三次扫描F,找到AC→PE,A→P,GA→B和AE→GB,其左部?BGCEA,故置A*=BGCEAP。

搜索完,转(8);(8) 因A≠A*,置A=BGCEAP;(9) 第四次扫描F,找到PG→A,PAB→G和ABCP→H,其左部?BGCEAP,故置A*=BGCEAPH。

搜索完,转(10);(10) 因A≠A*,置A=BGCEAPH;(11) 第五次扫描F,找不到其左部?BGCEAPH的函数依赖,转(12);(12) 因A=A*,转(13);(13) 输出A*,即(BG)+=BGCEAPH。

运行算法的VB程序,输入相应数据后,可验证(BG)+=BGCEAPH,如图所示。

图 运行算法的VB 程序,求(BG )+。

已知关系模式R (A ,B ,C ,D ,E )和函数依赖集F ={A →D ,E →D ,D →B ,BC →D ,DC →A },问分解ρ={R 1(A ,B ),R 2(A ,E ),R 3(E ,C ),R 4(D ,B ,C ),R 5(A ,C )}是否为R 的无损联接分解。

【解答】1.根据“测试一个分解ρ是否为无损连接分解”的算法,首先建立习题的初始R ρ表,如表(1)所示。

2ρ① 对A →D ,第1,2,5行的A 同为a 1,把这三行的D 均改为b 14; ② 对E →D ,第2,3行的E 同为a 5,把这两行的D 均改为b 14; ③ 对D →B ,第1,2,3,5行的D 同为b 14,把这四行的B 均改为a 2; ④ 对BC →D ,第3,4,5行的BC 同为(a 2,a 3),把这三行的D 均改为a 4; ⑤ 对DC →A ,第3,4,5行的DC 同为(a 4,a 3),把这三行的A 均改为a 1; ⑥ 重复扫描F ,对A →D ,五行的A 同为a 1,把这五行的D 均改为a 4;⑦ 表格不能再修改了,算法终止,结果R ρ表如表(2)所示。

第3行全为a ,即ρ是R 的无损联接分表(1) 习题的初始R ρ表 A B C D EAB AE EC DBC AC a a b b a a b b a b b b a a a b b b a b b aabb表(2) 习题的结果R ρ表A B C D E AB AE EC DBC AC a a a a a a a a a a b b a a a a a a a a baabb图习题用算法的VB程序解题试分析下列分解是否具有无损联接和保持函数依赖的特点。

1.设R1(ABC),F1={A→B},ρ1={AB,AC}。

2.设R2(ABC),F2={A→C,B→C},ρ2={AB,AC}。

3.设R3(ABC),F3={A→B},ρ3={AB,BC}。

4.设R4(ABC),F4={A→B,B→C},ρ4={AC,BC}。

5.设R5(ABC),F5={AB→C,C→A},ρ5={AC,BC}。

【解答】1.因为AB∩AC=A,AB-AC=B,A→B成立,所以分解ρ1具有无损连接性。

运行算法的VB程序如图(a)所示,验证结果正确。

因为 ?{AB}(F1)∪?{AC}(F1) = A→B = F1 ;所以分解ρ1是保持函数依赖集F1的。

图(a) 分解ρ1具有无损连接性2.因为AB∩AC=A,AC-AB=C,A→C成立,所以分解ρ2具有无损连接性。

运行算法的VB程序如图(b)所示,验证结果正确。

因为 ?{AB}(F2)∪?{AC}(F2) = A→C≠F2 ;所以分解ρ2不具有保持函数依赖特性。

图(b) 分解ρ2具有无损连接性3.因为(AB∩BC)?(AB-BC),而且(AB∩BC)?(BC-AB),所以分解ρ3不具有无损连接特性。

运行算法的VB程序如图(c)所示,验证结果正确。

因为 ?{AB}(F3)∪?{BC}(F3) = A→B = F3 ;所以分解ρ3是保持函数依赖集F3的。

图(c) 分解ρ3不具有无损连接特性4.因为(AC∩BC)?(AC-BC),而且(AC∩BC)?(BC-AC),所以分解ρ4不具有无损连接特性。

运行算法的VB 程序如图(d)所示,验证结果正确。

因为 ?{AC}(F4)∪?{BC}(F4) = B→C≠F4 ;所以分解ρ4不具有保持函数依赖特性。

图(d) 分解ρ4不具有无损连接特性5.因为AC∩BC=C,AC-BC=A,C→A成立,所以分解ρ5具有无损连接性。

相关文档
最新文档