数据库技术复习题综合题附答案.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
【数据库技术复习题综合解析】 1. 关系模式 R 的分析: R (商店编号,商品编号,数量,部门编号,负责人) - 根据规定(1),每个商店的每种商品只在一个部门销售,这表明商店编号、商品编号和部门编号之间存在唯一性约束。 - 规定(2)指出,每个商店的每个部门只有一个负责人,这意味着部门编号与负责人之间存在一对一关系。 - 规定(3)表示,每个商店的每种商品只有一个库存数量,即商店编号、商品编号决定数量。 (1) 函数依赖: - 商品编号 → 商品数量(每个商品只有一个库存) - 商店编号,商品编号 → 部门编号(每种商品只在一个部门销售) - 商店编号,部门编号 → 负责人(每个部门只有一个负责人) (2) 候选码: - 商店编号,商品编号是候选码,因为它们共同唯一标识了关系中的每一行。 (3) 关系模式 R 已经达到第二范式(2NF),因为所有非主属性都完全依赖于候选码。但由于部门编号和负责人之间的一对一关系,它们不是部分依赖于候选码,所以R已经满足第三范式(3NF)。 (4) R 属于 3NF,无需进一步分解。 2. SQL 查询: (1) 查询信息系全体学生的学号、姓名、年龄: ```sql SELECT sno, sname, sage FROM stu WHERE sdept = 'information'; ``` (2) 查询选修操作系统的学生姓名、课程号和成绩: ```sql SELECT sname, o, grade FROM stu AS s, sc AS c, Course AS co WHERE s.sno = c.sno AND c.o = co.o AND co.ame = '操作系统'; ``` (3) 查询学号为 95001 的学生2号课程的姓名和成绩: ```sql SELECT sname, grade FROM stu AS s, sc AS c WHERE s.sno = c.sno AND s.sno = '95001' AND c.o = '2'; ``` 3. SQL 查询(续): (1) 查询选修了3号课程的学生学号及其成绩,按分数降序排列: ```sql SELECT sno, grade FROM sc WHERE o = '3' ORDER BY grade DESC; ``` (2) 查询所有比“王华”年龄大的学生姓名、年龄和性别: ```sql SELECT sname, sage, sex FROM stu WHERE sage > (SELECT sage FROM stu WHERE sname = '王华'); ``` (3) 查询选修“puter”课程的“女”学生姓名及成绩: ```sql SELECT sname, grade FROM stu AS s, sc AS c, Course AS co WHERE s.sno = c.sno AND c.o = co.o AND co.ame = 'puter' AND s.sex = '女'; ``` 4. 关系SC分析: SC(学号 Sno,课程号 O,课程名 Ctitle,教师姓名 Iname,教师住址 Iloc,成绩 Grade) - SC 为第一范式(1NF),因为不存在属性的集合。 - 插入异常:例如,若某个课程没有学生选修,则无法在SC中插入记录,因为没有学号与之对应。 - 删除异常:如果删除一个学生的所有选课记录,可能会导致教师信息丢失,因为教师信息与学号相关联。 - 解决方案:将SC分解为两个关系,一个包含学号和课程号,另一个包含课程号、教师信息和成绩,这样可以独立处理选课和教师信息。 5. 医院病房管理设计: (1) E-R图设计: - 科室实体:科名、科地址、科 - 病房实体:病房号、床位号、所属科室名 - 医生实体:医生姓名、职称、所属科室名、年龄、工作证号 - 病人实体:病历号、姓名、性别、诊断、主管医生、病房号 - 约束:一个科室有多个病房和医生,一个病房属于一个科室,一个医生属于一个科室,一个医生可以负责多个病人,一个病人的主管医生只有一个。 (2) 关系模型构造: - 科室(科名, 科地址, 科) - 病房(病房号, 床位号, 科室名) - 医生(医生姓名, 职称, 科室名, 年龄, 工作证号) - 病人(病历号, 姓名, 性别, 诊断, 主管医生, 病房号) - 病人医生关系(病历号, 医生工作证号) (3) 候选码: - 科室:科名 - 病房:病房号 - 医生:工作证号 - 病人:病历号 - 病人医生关系:病历号,医生工作证号 6. Soccer 表编程实现: - 由于题目未给出具体编程语言,这里以SQL为例,创建Soccer表: ```sql CREATE TABLE Soccer ( Fno INT PRIMARY KEY, -- 队员编号 Fcc INT, -- 比赛场次 Fiq INT, -- 进球数 Fqd VARCHAR(50), -- 球队名 Fdz VARCHAR(50), -- 队长名 FOREIGN KEY (Fqd) REFERENCES Teams(TeamName), FOREIGN KEY (Fdz) REFERENCES Players(PlayerName) ); ``` - 注意:假设已有一个Teams表(球队名TeamName为主键)和Players表(球员姓名PlayerName为主键)。 以上是对给定的数据库技术复习题的详细解答,涵盖了函数依赖、候选码、范式理论、SQL查询、E-R图转换和数据库设计等方面的知识点。
剩余22页未读,继续阅读
- 粉丝: 16
- 资源: 19万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Python+SQL Server的实验室管理系统python数据库管理系统
- 离线xml转json的html代码
- springboot学生综合测评系统 PPT
- 油雾分离器工程图机械结构设计图纸和其它技术资料和技术方案非常好100%好用.zip
- hadoop-大数据技术中的Hadoop架构与应用解析
- CH340系列PDF数据手册
- IMG_20241225_103252.jpg
- 批量调整表格的行高Python实现源代码(不存在多行合并)
- silvaco学习资料!
- 职工工资表接近满分作业包含所有源文件
- 不同操作系统上tomcat安装与配置教程指南
- 纯js实现国密算法:sm2,sm3,sm
- 安卓源码,安卓开发,跑步打卡项目app源码,包括源码和简单文档
- selenium自动化测试工具详解:核心组件、编程语言支持及应用场景
- 大数据架构初步规划与应用
- 代码审核管理规范1.0