【数据库原理】期末突击(2)

news2024/11/18 15:29:16

有不会的题可以后台问我的哦,看见了就会回。祝大家期末心想事成。

数据库大题显而易见就只有几类,大家可以根据老师平时讲解的例题对应去解决一类型的题目。

前提知识;

候选码==候选键==关键字==键==码

关系代数:(1)传统:交、并、差、笛卡尔积(2)专门:选择、投影、连接、除

关系演算:并、差、选择、投影、笛卡尔积

SQL:select */列名/表达式/函数/常量 from 表名/视图  where 条件 

           insert、update、delete

E-R图实体型、属性、关系

一:关系代数和关系演算的转换

这个题型变化大,举个例子

查询信息系(IS系)全体学生

关系代数:

关系演算:

t[5]中5的含义是IS在表中是第几个属性

二:SQL语句

现有关系数据库如下:

     学生(学号,姓名,性别,专业)

     课程(课程号,课程名,学分)

     学习(学号,课程号,分数)

用SQL语句实现下列1—5小题

1.        检索所有选修了课程号为“C112”的课程的学生的学号和分数;                 

2.        检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数;

3.        检索“数据库原理”课程成绩高于90分的所有学生的学号、姓名、专业和分数;

4.        检索没学课程号为“C135”课程的学生信息,包括学号,姓名和专业;  

5.        检索至少学过课程号为“C135”和“C219”的课程的学生的信息,包括学号、姓名和专业。

答案:

1.

SELECT 学号,分数 FROM 学习 WHERE 课程号=’C112’

2.

SELECT 学生.学号,姓名,课程名,分数

FROM 学生,学习,课程      

WHERE 学习.学号=学生.学号 AND 学习.课程号=课程.课程号 AND 专业=’英语’  

3.

SELECT 学生.学号,姓名,专业,分数

FROM 学生,学习,课程      

WHERE 学生.学号=学习.学号 AND 学习.课程号=课程.课程号 AND分数>90 AND 课程名=‘数据库原理’

4.

SELECT 学号,姓名,专业

FROM 学生

                WHERE 学号 NOT IN      (1分)

(SELECT 学号 FROM 学习 WHERE 课程号=‘C135’)

5.

SELECT 学号,姓名,专业 FROM 学生 WHERE 学号 IN  

(SELECT X1.学号 FROM  学习 X1,学习 X2  WHERE X1.学号=X2.学号 AND X1.课程号=‘C135’AND X2.课程号=‘C219’)

三:E-R图与关系模式的转换

设有如下教学环境,一个班级有多名学生,一个学生只属于一个班级。一个学生可以选修若干门课程,每门课若干学生选修,学生选修每门课有一个成绩。一门课程只有一位教师讲授,一名教师可以讲投多门课,每位教师属于一个教研室,一个数研室有若干教师。(前面是描述的实体和联系,后面描述的是属性)其中班级由班级编号、班级名称等属性描述;学生由学号、姓名等属性描述;课程由课程编号、课程名称等属性描述;教师由教师编号、教师姓名、教师地址等属性描述;教研室由教研室编号、教研室名称等属性描述。
1、根据上述语义画出ER图,要求在图中画出属性并注明联系的类型。
2、将ER模型转换成关系模式,并指出每个关系模式的主键和外键。

(1)

(2)主键红色外键蓝色

学生(学号,姓名,班级编号)学生与班级多对一

班级(班级编号,班级名称)

课程(课程编号,课程名称,教师编号)课程与教师多对一

教师(教师编号,教师姓名,教师地址,教研室编号)教师与教研室多对一

教研室(教研室编号,教研室名称)

选修(学号,课程号(既是主键,又是外键),成绩)学生和课程是多对多的关系,所以需要介入选修表

四:候选码、函数依赖、范式

现有如下关系模式:借阅(图书编号,书名,作者名,出版社,读者编号,读者姓名,借阅日期,归还日期),基本函数依赖集F={图书编号→(书名,作者名,出版社),读者编号→读者姓名,(图书编号,读者编号,借阅日期)→归还日期}

(1)读者编号是候选码吗?(2分)

(2)写出该关系模式的主码。(2分)

(3)该关系模式中是否存在非主属性对码的部分函数依赖?如果存在,请写出一个。(2分)

(4)该关系模式满足第几范式?并说明理由。(4分)

答案:

(1)不是(2分)。

(2)(图书编号,读者编号,借阅日期)(2分)

(3)存在(1分)。(图书编号,读者编号,借阅日期)→书名、(图书编号,读者编号,借阅日期)→作者名、(图书编号,读者编号,借阅日期)→出版社、(图书编号,读者编号,借阅日期)→读者姓名(1分,四个函数依赖任选一个即可)

(4)1NF。因为存在非主属性对码的部分函数依赖。

五:求闭包、函数依赖

设关系模式R(ABCD),F是R上成立的FD集,F{A→B,B→C}

(1)试写出属性集BD的闭包(BD)+

(2)是写出所有左部是B的函数依赖

六:求候选码和关系分解

设有关系模式R(运动员编号、比赛项目、成绩、比赛类别、比赛主管),如果规定:每个运动员每参加一个比赛项目,只有一个成绩;每个比赛项目只属于一个比赛类别;每个比赛类别只有一个比赛主管。试回答下列问题:
①根据上述规定,写出模式R的基本FD和码;
②说明R不是2NF的理由,并把R分解成2NF关系模式集;
③进而分解成3NF关系模式集。

七:无损分解、范式级别

设关系模式R(ABCD),在R上有5个相应的FD集及分解:
(1)F=(B→C,D→A,p=(BC,AD)
(2)F=(AB→C,C→A,C→D),p=(ACD,BC)
(3)F=(A-BC, C→AD),p=(ABC,AD)
(4)F=(A→B,B→C,C-D,p=(AB,ACD)
(5)F=(A→B,B→C,C→D,p=(AB,AD,CD)
试对上述5种情况分别回答下列问题:
a、确定R的关键码。
b、是否是无损分解?
c、是否保持FD集?
d、确定p中每一模式的范式级别。

解:(1)

a、R的关键码为BD。
b、p不是无损分解。
c、p保持FD集F。
d、p中每一模式已达到BCNF级别。
(2)

a、R有两个关键码:AB和BC。
b、p是无损分解。
c、因为acD(F)=(C→A,C→D),Tgc(F)=中(没有非平凡的FD),所以p不保持FD,丢失了AB→C。
d、p中两模式均已达到BCNF级别。
(3)

a、R有两个关键码:A和C。
b、p是无损分解。
c、因为TABc(F)=(A→BC,C→A),TD(F)=(A→D),所以p保持FD。
d、在模式ABC中,关键码是A或BC,属性全是主属性,但有传递依赖(A→BC,BC→A),因此模式ABC是3NF,但不是BCNF,而模式AD显然已是BCNF。
(4)

a、R的关键码为A。
b、p是无损分解。
c、因为Tab(F)=(A→B,TacD(F)=(A→C,C→D),从这两个依赖集推不出原来的B→C,因此,不保持FD,丢失了B→C。
d、模式AB是BCNF,模式ACD不是3NF,只达到2NF级别。
(5)

a、R的关键码为A。
b、p不是无损分解。
c、因为TaB(F)=(A→B,tap(F)=(A→D),Tco(F)=(C→D),从这3个依赖集不能推理得到原来的B→C,因此p不保持FD,丢失了B→C。
d、p中每个模式均是BCNF级别。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1371622.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

echarts使用之柱状图

一、引入Echarts npm install eacharts --save 二、选择一个Echarts图 选择创建一个柱状图 option { // x轴参数的基本配置xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun] //X轴数据}, // y轴参数的基本配置yAxis: {type: value}, // series:[{data: …

MySQL连接池、C3P0、Druid德鲁伊连接池技术

MySQL连接池 连接池C3P0Druid 连接池 概念:其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象&#xff0…

怎么样检查自己系统上的Python环境中是否有某个包(扩展库)?

比如我们这里想看下有没有库pytz 很简单,进入Python的命令行,然后输入下面的命令: import pytz如果有这个库,则不会报错,否则会报错。 Windows的测试结果如下: Centos的测试结果如下:

Linux中vim查看文件某内容

一、编辑文件命令 [rootyinheqilin ~]# vim test.txt 1,在编辑的文件中连续按2次键盘的【g】键,光标会移动到文档开头第一行 2,输入一个大写 G,光标会跳转到文件的最后一行第一列(末行) 二、查看文件内容命令 gre…

改善制造业客户体验的实用技巧与策略

制造业是一个关键行业,在经济中发挥着至关重要的作用。它负责为我们的日常生活生产必需品和服务。然而近年来,该行业发生了重大变化,企业现在面临着日益激烈的竞争和满足消费者需求的压力。为了保持竞争力,制造商必须专注于打造更…

算法通关村番外篇-LeetCode编程从0到1系列二

大家好我是苏麟 , 今天来说LeetCode编程从0到1系列二 . 内置函数 最后一个单词的长度 描述 : 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子…

PHP大型企业人才招聘网站源码带文字安装教程

PHP大型企业人才招聘网站源码带文字安装教程 运行环境 服务器宝塔面板 PHP 5.6 Mysql 5.5及以上版本 Linux Centos7以上 功能说明: 会员模块包括企业管理、职位管理、名企管理、企业认证审核、 企业设置。内容模块包括新闻管理、新闻类别、新闻属性、添加新闻。 运营…

海外云手机:一机多用,引领跨境电商新潮流

如今,跨境卖家除了经营跨境平台外,还需抓住短视频和社交媒体的机遇。在社交媒体上实现引流,将流量导向自己的跨境平台或独立站,吸引用户购买,完成流量变现,已成为跨境电商的一项关键策略。本文将介绍如何用…

获取深层次字段报错TypeError: Cannot read properties of undefined (reading ‘title‘)

动态生成菜单时报错,不能多层获取路由meta下面的title字段 <template><p>{{ meneList }}</p><template v-for"item in meneList" :key"item.path"><el-menu-item v-if"!item.children"><template #title>{…

【Tomcat】在一台计算机上运行两个Tomcat服务

首先把Tomcat整个文件复制一份放在其他文件夹路径中 1.修改环境变量 添加环境变量在系统变量里面 “CATALINA_HOME” 指向一个Tomcat文件夹路径 “CATALINA_HOME1” 指另一个Tomcat文件夹路径 2.修改startup里面的环境变量&#xff0c;全部修改 分别修改两个apache-tomcat…

教你用SadTalker一键整合包轻松制作专属数字人

数字人的效果&#xff1a; &#x1f3b5;我用SadTalker制作了专属虚拟数字人&#xff0c;还会唱歌哦&#xff0c;多多点赞关注就出教程呦&#x1f497; SadTalker有独立离线版Ai数字人&#xff0c;也可以在Stable Diffusion以插件的形式使用&#xff0c;但是如果显卡小的话还是…

水经微图安卓版APP正式上线!

在水经微图APP&#xff08;简称“微图APP”&#xff09;安卓版已正式上线&#xff01; 在随着IOS版上线约一周之后&#xff0c;安卓版终于紧随其后发布了。 微图安卓版APP下载安装 自从IOS版发布之后&#xff0c;就有用户一直在问安卓版什么时候发布&#xff0c;这里非常感谢…

PHP Web应用程序中常见漏洞

一淘模板&#xff08;56admin.com)发现PHP 是一种流行的服务器端脚本语言&#xff0c;用于开发动态 Web 应用程序。但是&#xff0c;与任何其他软件一样&#xff0c;PHP Web 应用程序也可能遭受安全攻击。 在本文中&#xff0c;我们将讨论 PHP Web 应用程序中一些最常见的漏洞…

计算机网络——应用层(2)

计算机网络——应用层&#xff08;2&#xff09; 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) Web和HTTP概念解读HTTPHTTP请求和响应包含内容常见的请求方法Web缓存优点缺点 总结 DNS提供的服务 小程一言 我的计算机网络专栏&#xff0c;是自己在计算机网络学习过程…

std::numeric_limits::max()编译错误问题解决

在使用numeric_limits的max最大值时&#xff0c;报 替换成下面就可以了 (numeric_limits::max)()

IPv6路由协议---IPv6动态路由(OSPFv3-6)

OSPFv3链路状态通告类型 Link-LSA(8类LSA) Link-LSA每个连接的链路都产生一条Link LSA,该LSA的泛洪范围只在链路范围内。 Link-LSA的作用: 向该链路上其他路由器通知本地的link-local地址,即到本地的下一跳地址。 收集本路由器在该链路上配置的所有的IPv6前缀,并通知该…

element的Table表格组件树形数据与懒加载简单使用

目录 1. 代码实现2. 效果图3. 解决新增、删除、修改之后树节点不刷新问题。&#xff08;[参考文章](https://blog.csdn.net/weixin_41549971/article/details/135504471)&#xff09; 1. 代码实现 <template><div><!-- lazy 是否懒加载子节点数据 --><!-…

anaconda创建虚拟环境启动jupyter notebook

1.进入虚拟环境 &#xff08;以环境名为py37_pytorch1.9为例&#xff09; 创建虚拟环境: conda create -n py37_pytorch1.9 python3.7 查看已经创建的虚拟环境&#xff1a; ​​​​​​​conda env list 切换/进入环境&#xff1a; conda activate py37_pytorch1.9 删除环…

Verifiable Credentials可验证证书 2023 终极指南

1. 引言 Dock公司为去中心化数字身份领域的先驱者&#xff0c;其自2017年以来&#xff0c;已知专注于构建前沿的可验证证书&#xff08;Verifiable Credentials&#xff09;技术。本文将阐述何为电子证书、电子证书工作原理、以及其对组合和个人的重要性。 伪造实物证书和数字…

思迈特2023 年度回顾:这一年,在不确定的时代里做好正确的事

2023年&#xff0c;思迈特的成长离不开您的相伴❤️2024年&#xff0c;思迈特愿与君携手&#xff0c;让数据创造更大的价值&#xff0c;让经营决策更智能&#xff01;