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

上传人:xt****7 文档编号:91311149 上传时间:2022-05-16 格式:DOC 页数:14 大小:419KB
返回 下载 相关 举报
数据库系统基础教程第二章答案解析_第1页
第1页 / 共14页
数据库系统基础教程第二章答案解析_第2页
第2页 / 共14页
数据库系统基础教程第二章答案解析_第3页
第3页 / 共14页
点击查看更多>>
资源描述
ExerciseFor relation Accounts, the attributes are:acctNo, type, balanceFor relation Customers, the attributes are:firstName, lastName, idNo, accountExerciseFor 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)ExerciseFor 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 accountExerciseFor relation Accounts, a relation schema is:Accounts(acctNo, type, balance)For relation Customers, a relation schema is:Customers(firstName, lastName, idNo, account)ExerciseAn example database schema is:Accounts (acctNo,type,balance)Customers (firstName,lastName,idNo,account)ExerciseA suitable domain for each attribute:acctNo Integertype Stringbalance IntegerfirstName StringlastName StringidNo String (because there is a hyphen we cannot use Integer)account IntegerExerciseAnother equivalent way to present the Account relation:acctNobalancetype3456725savings234561000checking1234512000savingsAnother equivalent way to present the Customers relation:idNofirstNamelastNameaccount805-333LenaHand23456805-333LenaHand12345901-222RobbieBanks12345Examples 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.We 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.We 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 = 2880We 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!CREATE TABLE Product (makerCHAR(30),modelCHAR(10) PRIMARY KEY,type CHAR(15);CREATE TABLE PC (model CHAR(30),speed DECIMAL(4,2),ram INTEGER,hd INTEGER,price DECIMAL(7,2);CREATE TABLE Laptop (model CHAR(30),speed DECIMAL(4,2),ram INTEGER,hd INTEGER,screen DECIMAL(3,1),price DECIMAL(7,2);CREATE TABLE Printer (model CHAR(30),color BOOLEAN,type CHAR (10),price DECIMAL(7,2);ALTER TABLE Printer DROP color;ALTER TABLE Laptop ADD od CHAR (10) DEFAULT none;CREATE TABLE Classes (class CHAR(20),type CHAR(5),country CHAR(20),numGuns INTEGER,bore DECIMAL(3,1),displacement INTEGER);CREATE TABLE Ships (name CHAR(30),class CHAR(20),launched INTEGER);CREATE TABLE Battles (name CHAR(30),date DATE);CREATE TABLE Outcomes (ship CHAR(30),battle CHAR(30),result CHAR(10);ALTER TABLE Classes DROP bore;ALTER TABLE Ships ADD yard CHAR(30);R1 := speed 3.00 (PC)R2 := model(R1)model100510061013R1 := hd 100 (Laptop)R2 := Product (R1)R3 := maker (R2)makerEABFGR1 := 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 R6modelprice100464910056301006104920071429R1 := color = true AND type = laser (Printer)R2 := model (R1)model30033007R1 := type=laptop (Product)R2 := type=PC(Product)R3 := maker(R1)R4 := maker(R2)R5 := R3 R4makerFGR1 := PC1(PC)R2 := PC2(PC)R3 := R1 (PC1.hd = PC2.hd AND PC1.model PC2.model) R2R4 := hd(R3)hd25080160R1 := PC1(PC)R2 := PC2(PC)R3 := R1 ) R2R4 := (R3)10041012R1 := model(PC) model(Laptop)R2 := maker,model(R1 Product)R3 := R3(maker2,model2)(R2)R4 := R2 (maker = maker2 AND model model2) R3R5 := maker(R4)makerBER1 := 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)makerBR1 := 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)makerADE R1 := 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)makerABDER1 := bore 16 (Classes)R2 := class,country (R1)classcountryIowaUSANorth CarolinaUSAYamatoJapanR1 := launched 1921 AND displacement 35000 (R1)R3 := name (R2)nameIowaMissouriMusashiNew JerseyNorth CarolinaWashingtonWisconsinYamatoR1 := battle=Guadalcanal(Outcomes)R2 := Ships (ship=name) R1R3 := Classes R2R4 := name,displacement,numGuns(R3)namedisplacementnumGunsKirishima320008Washington370009R1 := name(Ships)R2 := ship(Outcomes)R3 := R3(name)(R2)R4 := R1 R3nameCaliforniaHarunaHieiIowaKirishimaKongoMissouriMusashiNew JerseyNorth CarolinaRamilliesRenownRepulseResolutionRevengeRoyal OakRoyal SovereignTennesseeWashingtonWisconsinYamatoArizonaBismarckDuke of YorkFusoHoodKing George VPrince of WalesRodneyScharnhorstSouth DakotaWest VirginiaYamashiroFrom 2.3.2, assuming that every class has one ship named after the class.R1 := class(Classes)R2 := class(name class(Ships)R3 := R1 R2classBismarckR1 := country(type=bb(Classes)R2 := country(type=bc(Classes)R3 := R1 R2countryJapanGt. BritainR1 := 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.The 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.UnionIf 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 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 the existing 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.If 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. If 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.If 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.Assuming 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. Defining r as the schema of R and s as the schema of S:1. r(R S)2. R (rs(S)where is the duplicate-elimination operator in Section 5.2 pg. 2133. R (R r(R S)Defining r as the schema of R1. R - r(R S)A1,A2An(R S)speed 500(PC) = Model 1011 violates this constraint.screen 15.4 AND hd 16(Classes) = The Yamato class violates the constraint.class(numGuns 9 AND bore 14(Classes) = No violations to the constraint.This 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) R2 R5(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.country(type = bb(Classes) country(type = bc(Classes) = Japan and Gt. Britain violate the constraint.This 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(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.Defining r as the schema A1,A2,An and s as the schema B1,B2,Bn:r(R) s(S) = where is the antisemijoinThe 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.
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!