数据库原理与应用 赵小超 课后习题及答案_第1页
数据库原理与应用 赵小超 课后习题及答案_第2页
数据库原理与应用 赵小超 课后习题及答案_第3页
数据库原理与应用 赵小超 课后习题及答案_第4页
数据库原理与应用 赵小超 课后习题及答案_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章1.简述数据、数据库、数据库管理系统、数据库系统的概念数据:对客观事物或现象的原始符号记录,是未经加工的数字、文字、图像、声音等,本身无特定含义。数据库:长期存储在计算机内、按一定结构组织、可共享的数据集合,是数据库系统的数据基础。数据库管理系统:位于用户与操作系统之间的系统软件,负责对数据库进行统一管理和控制,是数据库系统的核心。数据库系统:由计算机平台(硬件、操作系统)、数据库、数据库管理系统、数据用户组成的人机交互系统,用于实现数据的高效管理与维护。2.数据库管理系统的主要功能有哪些?数据定义功能:对数据库中的表、视图、索引等数据对象进行结构定义。数据操作功能:提供数据的查询、插入、修改、删除等核心操作。数据控制功能:实现数据的安全性、完整性与并发访问控制。数据库维护功能:负责数据备份恢复、结构更新、性能监控与优化。3.何为概念模型?简述其主要作用。概念模型:是现实世界到机器世界的中间抽象层次,独立于具体计算机系统与DBMS,用于描述现实世界的事物及相互联系,常用ER图表示。主要作用:用于数据库设计初期,帮助设计人员理解应用领域语义,将现实事物转化为易理解的信息结构;作为中间模型,后续可转换为数据库管理系统支持的数据模型。4.简述实体、实体集、实体型之间的联系。实体型:对同类实体的抽象描述,包含实体名与属性集合,是实体的“类型”的定义。实体:实体型的具体实例,是客观存在可区分的事物。实体集:同一实体型的所有实体的集合。三者关系:实体型是模板,实体是实例,实体集是同类实体的全体。5.简述关系模型的三要素。数据结构:关系模型只有一种数据结构——关系,实体集以及实体集之间的联系都统一用关系表示,从用户的视角来看,关系的结构是一张规范化的二维表格。数据操作:关系模型的操作主要包括查询和更新(插入、修改、删除),数据操作属于集合操作,操作的对象和结果都是关系。完整性约束:关系模型的数据完整性约束包括实体完整性规则、参照完整性规则和用户定义完整性规则。6.何为数据独立性?数据库系统是如何实现数据独立性的?数据独立性:指应用程序与数据库中的数据相互独立,数据的逻辑或物理结构改变时,应用程序不受影响,分为逻辑独立性和物理独立性。数据的独立性通过三级模式(外模式、模式、内模式)与两级映像实现:外模式/模式映像:保证逻辑独立性,模式改变时调整映像,使得外模式不变,应用程序无需修改。模式/内模式映像:保证物理独立性,内模式改变时调整映像,是的模式不变(外模式也不变),应用程序无需修改。

第二章1.简述关系数据库的完整性约束。实体完整性:针对关系中的主码,要求主码中的每一个属性都不能取空值。参照完整性:针对关系中的外码,外码的值可以为空;若不为空,则其引用的对象必须在被引用关系中存在。用户定义完整性:用户根据实际应用需求定义的约束条件,反映具体业务的数据语义要求,如非空、CHECK、唯一性约束等。2.简述等值连接与自然连接的区别与联系。联系:自然连接是特殊的等值连接,二者都要求连接条件为属性值相等。区别:等值连接不要求参与连接的属性同名,自然连接要求参与连接的属性必须是同名属性;等值连接不去除重复属性列,自然连接需要去掉重复的同名属性列。3.设“供应商—工程—零件”数据库包含以下4个关系。Suppliers(Sno,Sname,Status,Scity)Parts(Pno,Pname,Color,Weight)Projects(Jno,Jname,Jcity)SPJ(Sno,Pno,Jno,Quantity)其中,各关系的主码用下横线标示。Sno,Sname,Status,Scity分别表示供应商的编号、名称、状态和所在城市;Pno,Pname,Color,Weight分别表示零件的编号、名称、颜色和重量;Jno,Jname,Jcity分别表示工程的编号、名称和所在城市;SPJ是供应关系,Quantity是特定供应商一次向特定工程供应的特定零件的数量。用关系代数表示如下查询。(1)查询上海的所有供应商的信息。σScity(2)查询位于郑州的所有工程的信息。σ(3)查询零件数量在100~150的供应记录。σ(4)查询为工程J1提供零件的供应商号。π(5)查询供应工程J1红色零件的供应商号。π(6)查询至少提供一种红色零件的供应商名称。π(7)查询不提供零件P2的供应商名称。π(8)查询没有使用天津供应商生产的红色零件的工程号。π(9)查询使用了本地供应商提供的零件的工程号和工程名称。π(10)查询未使用本地供应商提供的零件的工程号和工程名称。π(11)查询提供过所有零件的供应商名称。π(12)查询至少用了供应商S1所供应的全部零件的工程号。π4.现有如下关系代数表达式,先说明该表达式的查询需求,然后简述如何对其进行优化。π查询需求:查询性别为男、成绩大于等于90分的学生的学号、姓名、成绩。优化思路:先执行选择运算,分别对Student关系和SC关系按照条件“性别为男”和“成绩在90以上”做选择运算,提前过滤无关元组,减少后续运算数据量;然后将笛卡尔积与选择合并为自然连接,避免产生大量无意义冗余元组;最后执行投影运算,保留目标属性sno、sname和grade。优化后表达式:πsno

第三章1.简述SQL语言“高度非过程化”特征的含义。SQL是高度非过程化语言,用户只需提出做什么,无需指明怎么做;无需了解数据存取路径,存取路径选择与SQL语句执行过程由数据库系统自动完成。2.实体完整性、参照完整性、用户定义完整性在CREATETABLE语句中分别通过哪些子句或关键字实现?各举一例。实体完整性:通过PRIMARYKEY(主键约束)实现,例如“snoCHAR(6)PRIMARYKEY”。参照完整性:通过FOREIGNKEY…REFERENCES…(外键约束)实现,例如“FOREIGNKEY(sno)REFERENCESStudent(sno)”。用户定义完整性:通过CHECK、NOTNULL、UNIQUE、DEFAULT等关键字实现,例如“CHECK(sage>16)、snameVARCHAR(15)NOTNULL”、“UNIQUE(cname)”、“ssexCHAR(2)DEFAULT'男'”。3.简述“聚集索引”与“非聚集索引”在物理存储与查询性能上的两点核心差异。(1)存储结构聚集索引:表中数据行物理排列顺序与索引键逻辑顺序完全一致。非聚集索引:独立于数据物理存储,仅存储索引键与指针,不改变数据物理顺序。(2)查询性能聚集索引:范围查询、排序效率更高,一个表仅能建一个。非聚集索引:维护成本更低,一个表可建多个,适配多条件查询。4.解释“WHERE子句不能使用聚集函数”这一限制的原因。查询的逻辑执行顺序中,WHERE子句先执行,GROUPBY分组后执行;聚集函数需要基于分组后的数据计算,分组前数据未分组,聚集函数无计算对象,因此WHERE子句不能使用聚集函数。5.按以下要求建立索引。(1)在Student表的sname列上创建非聚集、非唯一索引IX_StuName。CREATENONCLUSTEREDINDEXIX_StuNameONStudent(sname)(2)在Course表的credit列上创建降序、非唯一索引IX_Credit。 CREATEINDEXIX_CreditONCourse(creditDESC)(3)创建一个索引IX_SC_sno_grade,先按sno升序,再按grade降序排列。 CREATEINDEXIX_SC_sno_gradeONSC(snoASC,gradeDESC)6.按以下要求插入数据。(1)使用单条INSERT语句向Student表一次性插入5条数据,其中1条性别采用默认值,其余4条显式赋值。INSERTINTOStudent(sno,sname,ssex,sage,sdept)VALUES('001','张三','男',19,'计算机系'),('002','李四','女',20,'信息工程系'),('003','王五',DEFAULT,18,'英语系'),('004','赵六','男',21,'数学系'),('005','孙七','女',19,'物理系')(2)为计算机系全体学生选修001号课程,成绩暂时留空,要求跳过已经选修001号课程的学生。INSERTINTOSC(sno,cno)SELECTsno,'001'FROMStudentWHEREsdept='计算机系'ANDNOTEXISTS(SELECT1FROMSCWHERESC.sno=Student.snoANDcno='001')7.按以下要求修改数据。(1)把计算机系所有学生的年龄增加1岁,并将院系名称改为人工智能学院。UPDATEStudentSETsage=sage+1,sdept='人工智能学院'WHEREsdept='计算机系'(2)把课程名包含“数据”二字且学分小于等于3的课程学分统一上调1分。UPDATECourseSETcredit=credit+1WHEREcnameLIKE'%数据%'ANDcredit<=3(3)将SC表中成绩为NULL值的记录中的成绩改为0,同时把0分记录中的成绩改为NULL值,要求使用一条UPDATE语句完成。UPDATESCSETgrade=CASEWHENgradeISNULLTHEN0WHENgrade=0THENNULLELSEgradeEND8.按以下要求删除数据。(1)删除英语系学生所有成绩不及格(grade<60)的选课记录,要求采用多表关联删除。DELETESCFROMSCJOINStudentONSC.sno=Student.snoWHEREStudent.sdept='英语系'ANDSC.grade<60(2)删除Student表中从未选课的学生,分别用NOTEXISTS与NOTIN两种子查询作为删除条件。1)NOTEXISTS写法DELETEFROMStudentWHERENOTEXISTS(SELECT1FROMSCWHERESC.sno=Student.sno)2)NOTIN写法DELETEFROMStudentWHEREsnoNOTIN(SELECTsnoFROMSC)9.完成以下查询操作。(1)列出信息工程系年龄最大的前3名学生的学号、姓名和年龄。SELECTTOP3sno,sname,sageFROMStudentWHEREsdept='信息工程系'ORDERBYsageDESC(2)按课程学分统计不同分数段的学生人数,结果列:学分、不及格人数(<60)、及格人数(60~79)、良好人数(80~89)、优秀人数(≥90)。SELECTcredit,SUM(CASEWHENgrade<60THEN1ELSE0END)AS不及格人数,SUM(CASEWHENgradeBETWEEN60AND79THEN1ELSE0END)AS及格人数,SUM(CASEWHENgradeBETWEEN80AND89THEN1ELSE0END)AS良好人数,SUM(CASEWHENgrade>=90THEN1ELSE0END)AS优秀人数FROMCourseJOINSCONCo=SC.cnoGROUPBYcredit(3)查询先修课程学分高于本课程学分的课程详细信息,列出本课程号、本课程名、本课程学分、先修课程号、先修课程名、先修学分。SELECToAS本课程号,ameAS本课程名,c1.creditAS本课程学分,oAS先修课程号,ameAS先修课程名,c2.creditAS先修学分FROMCoursec1JOINCoursec2ONc1.pcno=oWHEREc2.credit>c1.credit(4)找出至少选修了两门3学分课程的学生的学号和姓名,要求分别用分组查询和相关子查询实现。1)分组查询SELECTs.sno,snameFROMStudentsJOINSCscONs.sno=sc.snoJOINCoursecONo=oWHEREc.credit=3GROUPBYs.sno,snameHAVINGCOUNT(*)>=2;2)相关子查询SELECTsno,snameFROMStudentsWHERE(SELECTCOUNT(*)FROMSCscJOINCoursecONo=oWHEREsc.sno=s.snoANDc.credit=3)>=2(5)查询同时选修了001号和002号课程的学生的学号,分别用INTERSECT(SQLServer)和JOIN/IN两种写法(MySQL)实现。1)INTERSECTSELECTsnoFROMSCWHEREcno='001'INTERSECTSELECTsnoFROMSCWHEREcno='002';2)JOINSELECTDISTINCTsc1.snoFROMSCsc1JOINSCsc2ONsc1.sno=sc2.snoWHEREo='001'ANDo='002'3)INSELECTsnoFromStudentWHEREsnoIN(SELECTsnoFROMSCWHEREcno='001')ANDsnoIN(SELECTsnoFROMSCWHEREcno='002')10.完成以下基于视图的操作。(1)创建行列子集视图V_CS_Student,仅包含计算机系学生的学号、姓名和年龄,要求通过该视图更新数据时只涉及计算机系的学生。CREATEVIEWV_CS_Student(sno,sname,sage)ASSELECTsno,sname,sageFROMStudentWHEREsdept='计算机系'WITHCHECKOPTION(2)基于V_CS_Student创建视图V_CS_Grade,列出学号、姓名、平均成绩,仅保留平均成绩在80以上的结果。CREATEVIEWV_CS_Grade(sno,sname,avg_grade)ASSELECTv.sno,v.sname,AVG(sc.grade)FROMV_CS_StudentvJOINSCscONv.sno=sc.snoGROUPBYv.sno,v.snameHAVINGAVG(sc.grade)>80(3)通过V_CS_Student插入一条新学生记录(学号、姓名、年龄和性别自拟,院系为信息工程系),观察WITHCHECKOPTION的阻断效果。INSERTINTOV_CS_Student(sno,sname,sage,sdept)VALUES('006','周八',20,'信息工程系')(4)先删除V_CS_Grade,再删除V_CS_Student。DROPVIEWV_CS_GradeDROPVIEWV_CS_Student11.完成以下过程化SQL编程。(1)创建函数fn_sdept_abbr,接收院系名作为输入,输出对应院系的字母代号(计算机系为CS、信息工程系为IE、英语系为EN、数学系为MA、物理系为PH、化学系为CH,其他院系输出XX)。1)SQLServerCREATEFUNCTIONdbo.fn_sdept_abbr(@sdeptVARCHAR(20))RETURNSCHAR(2)ASBEGINRETURNCASE@sdeptWHEN'计算机系'THEN'CS'WHEN'信息工程系'THEN'IE'WHEN'英语系'THEN'EN'WHEN'数学系'THEN'MA'WHEN'物理系'THEN'PH'WHEN'化学系'THEN'CH'ELSE'XX'ENDEND2)MySQLDELIMITER//CREATEFUNCTIONfn_sdept_abbr(p_sdeptVARCHAR(20))RETURNSCHAR(2)DETERMINISTICBEGINRETURNCASEp_sdeptWHEN'计算机系'THEN'CS'WHEN'信息工程系'THEN'IE'WHEN'英语系'THEN'EN'WHEN'数学系'THEN'MA'WHEN'物理系'THEN'PH'WHEN'化学系'THEN'CH'ELSE'XX'END;END//DELIMITER;(2)创建存储过程usp_fill_null_grade,接收一个课程号作为输入参数,功能是把指定课程号在SC表中所有未录入的成绩改为0,若课程号不存在则抛出异常,最后通过输出参数返回被修改的行数(SQLServer通过全局变量@@ROWCOUNT获取,MySQL则通过系统函数ROW_COUNT()获取)。1)SQLServerCREATEPROCEDUREusp_fill_null_grade@cnoCHAR(3),@update_countINTOUTPUTASBEGINSETNOCOUNTONIFNOTEXISTS(SELECT1FROMCourseWHEREcno=@cno)THROW50001,'课程号不存在',1UPDATESCSETgrade=0WHEREcno=@cnoANDgradeISNULLSET@update_count=@@ROWCOUNTEND2)MySQLDELIMITER//CREATEPROCEDUREusp_fill_null_grade(INp_cnoCHAR(3),OUTp_update_countINT)BEGINIFNOTEXISTS(SELECT1FROMCourseWHEREcno=p_cno)THENSIGNALSQLSTATE'45000'SETMESSAGE_TEXT='课程号不存在';ENDIF;UPDATESCSETgrade=0WHEREcno=p_cnoANDgradeISNULL;SETp_update_count=ROW_COUNT();END//DELIMITER;(3)先创建日志表SC_Log(log_id,op_time,sno,cno,old_grade,new_grade),log_id是自增主键,op_time是时间,然后创建SC表上的AFTERUPDATE触发器trg_log_sc,在日志表中记录操作时间、学号、课程号、旧成绩和新成绩,最后验证批量更新时的日志效果。1)创建日志表CREATETABLESC_Log(log_idINTIDENTITY(1,1)PRIMARYKEY,op_timeDATETIMEDEFAULTGETDATE(),snoCHAR(6),cnoCHAR(3),old_gradeSMALLINT,new_gradeSMALLINT)2)SQLServer触发器CREATETRIGGERtrg_log_scONSCAFTERUPDATEASBEGININSERTINTOSC_Log(sno,cno,old_grade,new_grade)SELECTd.sno,o,d.grade,i.gradeFROMdeleteddJOINinsertediONd.sno=i.snoANDo=oEND3)触发器DELIMITER//CREATETRIGGERtrg_log_scAFTERUPDATEONSCFOREACHROWBEGININSERTINTOSC_Log(op_time,sno,cno,old_grade,new_grade)VALUES(CURRENT_TIMESTAMP,OLD.sno,OLD.cno,OLD.grade,NEW.grade);END//DELIMITER;

第四章1.请简述函数依赖中“部分函数依赖”与“传递函数依赖”的定义,并说明二者分别会导致关系模式出现哪些问题。部分函数依赖:设X→Y是非平凡函数依赖,若存在X的真子集X′,使得X′→Y成立,则称“Y部分函数依赖于X”。传递函数依赖:若X→Y、Y→Z是非平凡函数依赖,且Y↛X,则称“Z传递函数依赖于X”。引发的问题:部分函数依赖会导致数据冗余度高、修改复杂;传递函数依赖会引发插入异常、删除异常,无法单独存储中间属性信息,删除数据会丢失关联信息。2.什么是关系模式的范式?请依次说明1NF、2NF、3NF的核心约束要求,以及各范式间的递进关系。定义:范式是衡量关系模式合理性的分级标准。1NF:每个属性都是不可再分的原子值,关系中没有重复元组,是关系的最低要求。2NF:满足1NF,且非主属性完全函数依赖于候选码,消除部分函数依赖。3NF:满足2NF,且非主属性不传递函数依赖于候选码,消除传递函数依赖。递进关系:满足高范式必满足低范式:3NF⊂2NF⊂1NF,逐级消除部分依赖、传递依赖。3.什么是最小函数依赖集?其需满足哪三个核心条件?定义:与原函数依赖集等价、无冗余依赖、无冗余属性的最简函数依赖集,记为Fm。核心条件:每个函数依赖的右侧都是单属性;去掉任一依赖后,与原集不等价(无冗余函数依赖);每个依赖的左侧无冗余属性。4.已知以下三个独立的关系模式,请分别分析每个关系模式满足的最高范式,并给出判断依据。(1)R(A,B,C,D),F={ABC,ABD,AB}。未在函数依赖右侧出现的属性A一定是候选码的成员,属性A的闭包是属性全集。因此,A是唯一候选码,B、C、D均为非主属性。关系R未涉及非原子属性(满足1NF)、候选码为单属性(满足2NF)、不存在非主属性对于候选码的传递函数依赖(满足3NF)、同时每个函数依赖的左侧都包含候选码A(满足BCNF),因此关系模式R最高满足BCNF。(2)R(X,Y,Z,W),F={XY,XZ,YW}。未在函数依赖右侧出现的属性A一定是候选码的成员,属性X的闭包是属性全集。因此,X是唯一候选码,Y、Z、W均为非主属性。关系R未涉及非原子属性(满足1NF)、候选码为单属性(满足2NF),但存在非主属性对于候选码的传递函数依赖(XW,不满足3NF),因此关系模式R最高满足2NF。(3)R(M,N,P,Q),F={MN,NP,PQ,QN}。未在函数依赖右侧出现的属性M一定是候选码的成员,属性M的闭包是属性全集。依次,M是唯一候选码,N、P、Q均为非主属性。关系R未涉及非原子属性(满足1NF)、候选码为单属性(满足2NF),但存在非主属性对候选码的传递函数依赖(MP和MQ,不满足3NF),因此关系模式R最高满足2NF。5.已知属性全集U={A,B,C,D,E},存在两个函数依赖集F和G,其中F={AB,BC,ACD,DE},G={ABC,BC,AD,DE}。证明函数依赖集F与G等价,并写出详细证明步骤。(1)证明F⇒1)检查A→BC,AF+=ABCDE,包含BC2)检查B→C,F包含该函数依赖,因此B→C∈F3)检查A→D,AF+=ABCDE,包含4)检查D→E,F包含该函数依赖,因此D→E∈因此,G⊆F(2)证明G1)检查A→B,AG+=ABCDE,包含2)检查B→C,G包含该函数依赖,因此B→C∈3)检查AC→D,ACG+=ABCDE4)检查D→E,G包含该函数依赖,因此D→E∈因此,F⊆G综上,F+=G+,即F6.已知关系模式R<U,F>,其中属性全集U={A,B,C,D},函数依赖集F={AB,BC,CDA}。现有分解ρ={R₁(A,B),R₂(B,C),R₃(C,D,A)},证明该分解是否具有无损连接性,并写出详细证明步骤。(1)构造初始表ABCDR₁(AB)a₁a2b₁₃→a₃b₁₄R₂(BC)b₂₁a₂a3b₂₄R₃(ACD)a1b₃₂→a₂a₃a4(2)更新表格1)检查AB,第一、三行的A值相同,修改第三行B列的值(b₃₂→a₂)。2)检查BC,第一、二、三行的B值相同,修改第一行C列的值(b₁₃→a₃)。观察表格可知,第三章的所有列的值均为a。因此,分解ρ具有无损连接性。7.已知关系模式R<U,F>,其中属性全集U={A,B,C,D,E},函数依赖集F={AB,ABC,CD,DE,AEC},将该关系模式分解为满足3NF且具有无损连接性和函数依赖保持性的关系模式。(1)最小化1)将函数依赖右侧分解为单属性已满足,无需分解。2)消除函数依赖左侧冗余属性检查ABC,A+=ABCDE,B+=B,因此检查AEC,A+=ABCDE,E+=E,因此因此,F={AB,AC,CD,DE}3)去掉冗余函数依赖验证AB,去掉后A+=ACDE,不包含验证AC,去掉后A+=AB,不包含验证CD,去掉后C+=C,不包含D,因而验证DE,去掉后D+=D,不包含E,因而因此,最小函数依赖集Fm={AB,AC,CD,DE}。(2)排除不满足排除条件。(3)独立不存在N类属性。(4)分组依据Fm可得ρ={R₁(A,B),R₂(A,C),R₃(C,D),R4(D,E)}(5)添码未在函数依赖右侧出现的属性A,其闭包为属性全集,因而是唯一候选码。由于R1和R2均包含候选码A,无需添码。(6)优化无需优化。因此,分解的结果是ρ={R₁(A,B),R₂(A,C),R₃(C,D),R4(D,E)}。

第五章1.需求分析阶段的核心成果是什么?其包含哪些关键组成部分?核心成果包括数据字典和需求说明书。数据字典主要由数据项、数据结构、数据流、数据存储、处理过程五部分组成。需求说明书主要包括引言、需求范围、详细需求、验收标准、附录。2.ER图中的多值属性、派生属性、复合属性的图形化表示方式分别是什么?处理这些特殊属性时,关系模式设计需遵循哪些规则?图形表示:多值属性用双椭圆表示,派生属性用虚线椭圆表示,复合属性用椭圆嵌套子属性。关系模式处理规则:对于多值属性,单独建表,包含原实体“主码+多值属性”;对于派生属性,不在数据库中存储,由查询计算得出即可;对于复合属性,拆分为多个子属性,直接作为字段。3.将ER图中1:n和m:n联系转换为关系模式的核心规则有何不同?请简要说明。1:n联系可独立为关系模式,也可合并到n端关系模式(引入1端主码作外键),主码是n端实体主码。m:n联系则必须独立为关系模式,主码是两端实体主码组合(也可以单独增加一列作为主码)。4.数据库物理结构设计中,索引设计需遵循哪些核心原则?为何不建议为“性别”这类低区分度字段创建索引?索引设计原则:只为高频查询字段建索引,优先高区分度字段,单表索引不超过5个,不为大字段、低区分度字段建索引,避免重复索引。不给“性别”列建索引的原因:区分度极低(只有男/女两个值),索引过滤效果差;查询时近似于全表扫描,索引无收益且增加维护开销。5.数据库维护阶段的核心任务包括哪些?简述“结构调整”的基本流程。核心任务:备份、日志管理等日常维护任务,SQL优化、索引优化等性能优化任务,增字段、改类型、分区、拆表等结构调整任务,权限、加密、审计等安全管理任务。结构调整流程:评估影响,制定方案与回滚策略,测试环境验证,低峰期执行,上线验证与监控。6.设要建立一个学校社团管理数据库,该学校有多个社团,每个社团有多个成员,一个成员仅属于一个社团;一个成员可参与多个社团活动,一个活动中有很多成员参加;有多个赞助商为各个社团活动提供不同物资。社团的属性:社团编号、社团名称、社团负责人、联系电话;成员的属性:学号、姓名、性别、年级;物资的属性:物资编号、物资名称、物资数量;赞助商的属性:赞助商编号、赞助商名称、联系方式;活动的属性:活动编号、活动名称、举办时间。请完成如下任务。(1)设计满足上述要求的ER图。(2)将该ER图转换为等价的关系模式。(3)用下画线标明每个关系模式中的主码。社团(社团编号,名称,负责人,电话)成员(学号,姓名,性别,年级,社团编号)活动(活动编号,活动名称,举办时间)赞助商(赞助商编号,名称,联系方式)物资(物资编号,物资名称)参加(学号,活动编号)赞助(赞助商编号,活动编号,物资编号,数量)7.设一个图书馆要建立图书借阅数据库系统,包括如下三个方面的信息。(1)图书方面图书:ISBN号、书名、作者、出版社、出版日期;书架:书架编号、位置、可容纳数量;图书类别:类别编号、类别名称、父类别编号(若为一级类别则为NULL)。(2)借阅方面读者:读者证号、姓名、性别、联系电话;借阅记录:记录编号、借阅日期、应还日期、实际还书日期。(3)业务规则一个书架可放置多本图书,一本图书仅放置在一个书架上;一类图书包含多本图书,一本图书仅属于一个类别;一个读者可借阅多本图书,一本图书可被多个读者借阅;一条借阅记录对应一次读者借阅某一本图书的行为。请完成如下设计。(1)分别设计图书和借阅两个局部ER图。(2)将上述两个局部ER图合并为一个全局ER图.(3)将该全局ER图转换为关系模式。书架(书架编号,位置,可容纳数量)图书类别(类别编号,名称,父类编号)图书(ISBN,书名,作者,出版社,出版日期,书架编号,类别编号)读者(读者证号,姓名,性别,联系电话)借阅记录(记录编号,读者证号,ISBN,借阅日期,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论