还剩6页未读,继续阅读
文本内容:
第二章关系数据库本章系统地讲解了关系数据库的重要概念并着重对关系模型进行了阐述关系模型包括关系数据结构、关系操作集合以及关系完整性约束三个组成部分本章分别对这三个部分的内容进行了详细的分析与论述习题解答和解析
1.试述关系模型的三个组成部分答关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成
2.试述关系数据语言的特点和分类答:关系数据语言可以分为三类关系代数语言例如ISBL关系数据语言关系演算语言 具有关系代数和关系演算双重特点的语言例如SQL这些关系数据语言的共同特点是具有完备的表达能力;是非过程化的集合操作语言;功能强;能够嵌入高级语言中使用
3.定义并理解下列术语说明它们之间的联系与区别1域笛卡儿积关系元组属性答域域是一组具有相同数据类型的值的集合笛卡儿积给定一组域D1D2…Dn这些域中可以有相同的这组域的笛卡儿积为D1×D2×…×Dn={d1d2…dn|di∈Dii=12…n}其中每一个元素d1d2…dn叫做一个n元组n-tuple或简称元组Tuple元素中的每一个值di叫做一个分量Component关系在域D1D2…Dn上笛卡儿积D1×D2×…×Dn的子集称为关系表示为RD1D
2...Dn元组关系中的每个元素是关系中的元组属性关系也是一个二维表表的每行对应一个元组表的每列对应一个域由于域可以相同为了加以区分必须对每列起一个名字称为属性Attribute2主码候选码外部码答候选码若关系中的某一属性组的值能惟一地标识一个元组则称该属性组为候选码Candidatekey主码若一个关系有多个候选码则选定其中一个为主码Primarykey外部码:设F是基本关系R的一个或一组属性但不是关系R的码如果F与基本关系S的主码Ks相对应则称F是基本关系R的外部码Foreignkey简称外码基本关系R称为参照关系Referencingrelation基本关系S称为被参照关系Referencedrelation或目标关系TargetMation关系R和S可以是相同的关系3关系模式关系关系数据库答:关系模式关系的描述称为关系模式RelationSchema它可以形式化地表示为RUDdomF其中R为关系名U为组成该关系的属性名集合D为属性组U中属性所来自的域dom为属性向域的映像集合F为属性间数据的依赖关系集合关系在域D1D2…Dn上笛卡儿积D1×D2×…×Dn的子集称为关系表示为RD1D2…Dn关系是关系模式在某一时刻的状态或内容关系模式是静态的、稳定的;而关系是动态的、随时间不断变化的因为关系操作在不断更新着数据库中的数据关系数据库关系数据库也有型和值之分关系数据库的型也称为关系数据库模式是对关系数据库的描述它包括若干域的定义以及在这些域上定义的若干关系模式关系数据库的值是这些关系模式在某一时刻对应的关系的集合通常就称为关系数据库
4.试述关系模型的完整性规则O在参照完整性中为什么外部码属性的值也可以为空什么情况下才可以为空答关系模型的完整性规则是对关系的某种约束条件关系模型中可以有三类完整性约束实体完整性、参照完整性和用户定义的完整性其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件被称做是关系的两个不变性应该由关系系统自动支持1实体完整性规则若属性A是基本关系R的主属性则属性A不能取空值2参照完整性规则若属性或属性组F是基本关系R的外码它与基本关系S的主码Ks相对应基本关系R和S不一定是不同的关系则对于R中每个元组在F上的值必须为11 或者取空值F的每个属性值均为空值;12 或者等于S中某个元组的主码值3用户定义的完整性是针对某一具体关系数据库的约束条件它反映某一具体应用所涉及的数据必须满足的语义要求在参照完整性中外部码属性的值可以为空它表示该属性的值尚未确定但前提条件是该外部码属性不是其所在关系的主属性例如在下面的学生表中专业号是一个外部码不是学生表的主属性可以为空其语义是该学生的专业尚未确定学生学号姓名性别专业号年龄专业专业号专业名而在下面的选修表中的课程号虽然也是一个外部码属性但它又是课程表的主属性所以不能为空因为关系模型必须满足实体完整性课程课程号课程名学分选修学号课程号成绩
5.设有一个SPJ数据库包括S、P、J、SPJ四个关系模式SSNOSNAMESTATUSCITY;PPN0PNAMECOLORWEIGHT;JJNOJNAMECITY;SPJSN0PNOJN0QTY;供应商表S由供应商代码SNO、供应商姓名SNAME、供应商状态STATUS、供应商所在城市CITY组成;零件表P由零件代码PNO、零件名PNAME、颜色COLOR、重量WEIGHT组成;工程项目表J由工程项目代码JNO、工程项目名JNAME、工程项目所在城市CITY组成;供应情况表SPJ由供应商代码SNO、零件代码PNO、工程项目代码JNO、供应数量QTY组成表示某供应商供应某种零件给某工程项目的数量为QTY今有若干数据如下S表SNOSNAMESTATUSCITYS1S2S3S4S5精益盛锡东方红丰泰盛为民2010302030天津北京北京天津上海 P表PNOPNAMECOLORWEIGHTP1P2P3P4P5P6螺母螺栓螺丝刀螺丝刀凸轮齿轮红绿蓝红蓝红121714144030J表JNOJNAMECITYJ1J2J3J4J5J6J7三建一汽弹簧厂造船厂机车厂无线电厂半导体厂北京长春天津天津唐山常州南京SPJ表SNOPNOJNOQTYSlS1S1S1S2S2S2S2S2PlP1P1P2P3P3P3P3P5J1J3J4J2J1J2J4J5J1200100700100400200500400400S2S3S3S4S4S4S5S5S5S5P5PlP3P5P6P6P2P3P6P6J2J1J1J1J3J4J4J1J2J4100200200100300200100200200500 试分别用关系代数、ALPHA语言、QBE语言完成下列操作1求供应工程J1零件的供应商号SNO;答关系代数πSNOσJNO=’j1’SPJALPHA语言GETWSPJ.SNO:SPJ.JNO=‘J1’QBE语言SPJSNOPNOJNOQTY P.Sl J1 2求供应工程Jl零件P1的供应商号SNO;答关系代数πSNOσJNO=‘J1’∧PNO=‘J1’SPJAIPHA语言GETWSPJ.SNO:SPJ.JNO=‘J1’∧SPJ.PNO=‘P1’QBE语言SPJSNOPNOJNOQTY P.SlP1J1 3求供应工程J1红色零件的供应商号SNO;答关系代数πSNOπSNOPNOσJN0=‘J1’SPJπPNOσcolor=’红’PALPHA语言RANGEPPXGETWSPJ.SNO: PXPX.PNO=SPJ.PNO∧SPJ.JNO=‘J1’∧PX.COLOR=’红’QBE语言 SPJSNOPNOJNOQTY P.SlP1J1 PPNOPNAMECOLORWEIGHT P1 红 4求没有使用天津供应商生产的红色零件的工程号JNO;答关系代数πJNOJ-πJNOπSNOσCITY=’天津’SπSNOPNOJNOSPJπPNOσCOLOR=’红’P 解析减法运算中被减的部分是使用了天津供应商生产的红色零件的所有工程号πJNOJ是全部工程的工程号两者相减就是没有使用天津供应商生产的红色零件的工程号包括没有使用任何零件的工程号AIPHA语言RANGESPJSPJXPPXSSXGETWJ.JNO:SPJXSPJX.JNO=J.JNO∧SXSX.SNO=SPJX.SNO∧SX.CITY=’天津’∧PXPX.PNO=SPJX.PNO∧PX.COLOR=’红’ 解析:1S、P、SPJ表上各设了一个元组变量2解题思路是要找的是满足给定条件的工程号JN0因此对工程表J中的每一个JNO进行判断看SPJ中是否存在这样的元组其JNO=J.JNO并且所用的零件是红色的该零件的供应商是天津的如果SPJ中不存在这样的元组则该工程号JNO满足条件放入结果集合中如果SPJ中存在这样的元组则该工程号JNO不满足条件不放入结果集中再对工程表J中的下一个JNO进行同样的判断直到所有JNO都检查完结果集中是所有没有使用天津供应商生产的红色零件的工程号包括没有使用任何零件的工程号QBE语言当不考虑没有使用任何零件的工程时SSNOSNAMESTATUSCITY Sl 天津 PPNOPNAMECOLORWEIGHT P1 红 SPJSNOPNOJNOQTYSlP1P.J1 解析:本题是从SPJ表中输出满足条件的JNO没有使用任何零件的工程项目的工程号是不会出现在SPJ中的所以本题的结果不包括没有使用任何零件的工程号考虑没有使用任何零件的工程JJNOJNAMECITYP.Jl SSNOSNAMESTATUSCITY Sl 天津 PPNOPNAMECOLORWEIGHT P1 红 SPJSNOPNOJNOQTY SlP1J1 解析:本题是从J表中输出满足条件的JNO没有使用任何零件的工程项目的工程号也满足条件所以本题的结果包括没有了使用任何零件的工程号5求至少用了S1供应商所供应的全部零件的工程号JNO答关系代数πJNOPNOSPJ÷πPNOσSNO=’S1’SPJ 解析:上面公式中除号前的部分是所有工程与该工程所用的零件除号后的部分是S1所供应的全部零件号对于SPJ表中的某一个JNO如果该工程使用的所有零件的集合包含了S1所供应的全部零件号则该JNO符合本题条件在除法运算的结果集中可以看到使用关系代数的除法运算概念清晰语言表达也很简单ALPHA语言类似于《概论》P67例14RANGESPJSPJXSPJSPJYPPXGETWJ.JNO:PXSPJXSPJX.PNO=PX.PNO∧SPJX.SNO=’S1’SPJYSPJY.JNO=J.JNO∧SPJY.PNO=PX.PNO 解析:11 SPJ表上设了两个元组变量:SPJXSPJY;P表上设了一个元组变量:PX12 解题思路是:要找的是满足给定条件的工程号JNO因此对工程表J中的每一个JNO例如J1进行以下一组操作:1
① 对零件PX中的所有零件依次对每一个零件进行以下检查;1
② 例如零件P1检查SPJX看S1是否供应了该零件如果供应了则再看这一个JNO例如Jl是否使用了该零件;1
③ 如果对于S1所供应的每种零件这一个JNO例如J1都使用了则该JNO为例如J1满足要求的工程项目3为了帮助理解读者可以画出所涉及的三个表给出一些数据按照上面的解析步骤一步一步地分析就能掌握解题方法从而达到举一反三的要求QBE不要求
6.试述等值连接与自然连接的区别和联系答连接运算中有两种最为重要也最为常用的连接一种是等值连接Equijoin另一种是自然连接Naturaljoin为=的连接运算称为等值连接它是从关系R与S的笛卡儿积中选取A、B属性值相等的那些元组即等值连接为 自然连接Naturaljoin是一种特殊的等值连接它要求两个关系中进行比较的分量必须是相同的属性组并且在结果中把重复的属性列去掉即若R和S具有相同的属性组B则自然连接可记为
7.关系代数的基本运算有哪些如何用这些基本运算来表示其他的运算答:在八种关系代数运算中并、差、笛卡儿积、投影和选择五种运算为基本的运算其他三种运算即交、连接和除均可以用五种基本运算来表达交运算:RS=R-R-S连接运算:除运算:RXY÷SYZ=πxR-πxπxRπyS-RX、Y、Z为属性组R中的Y和S中的Y可以有不同的属性名但必须出自相同的域集 小结关系数据库系统是目前使用得最为广泛的数据库系统1970年以后开发的数据库系统几乎都是基于关系的可以说关系模型的提出是数据库发展史上最为重要的成就本章对关系模型的核心概念进行了阐述并重点讲述了关系数据结构、关系操作集合以及关系完整性约束的概念对以上三个部分的掌握是学习后续章节的基础学习本章的关键在于理解关系模型的核心与本质而不要仅仅局限于理解相关概念的字面意思读者应该达到能够对所学知识灵活运用的程度 。