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

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

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

前提知识;

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

关系代数:(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.mzph.cn/news/610304.shtml

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

相关文章

CST2024的License服务成功启动,仍报错——“The desired daemon is down...”,适用于任何版本!基础设置遗漏!

CST2024的License服务成功启动,仍报错——“The desired daemon is down…”,适用于任何版本!基础设置遗漏! CST2024的License服务成功启动后报错 若不能成功启动License服务,有可能是你的计算机名称带中文&#xff…

融云 CEO 董晗荣获 51CTO 「2023 年度科技影响力人物奖」

(👆点击获取《社交泛娱乐出海作战地图》) 1 月 5 日,由知名 IT 技术媒体 51CTO 主办的第十八届“中国企业年终评选”正式揭晓榜单,融云 CEO 董晗荣获“2023 年度科技影响力人物奖”。关注【融云全球互联网通信云】了解…

Android亮度调节的几种实现方法

最近在做一个App的设置项,亮度调节。真正做时,发现Android亮度调节比预想要复杂一些。其实目前网上已有不少这方面的资料,但有些博文具有一定误导性。在此将这块内容按照自己理解整理一下。 整体上看,Android亮度调节分为三个层次…

微服务下的SpringSecurity认证端

从三板斧开始微服务下的SpringSecurity开始 一、引入组件包 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-oauth2</artifactId> </dependency> 二、创建适配器 AuthorizationServerConfig…

【Android Studio】APP练手小项目——切换图片APP

本项目效果&#xff1a; 前言&#xff1a;本项目最终实现生成一个安卓APP软件&#xff0c;点击按钮可实现按钮切换图片。项目包含页面布局、功能实现的逻辑代码以及设置APP图标LOGO和自定义APP名称。 关于Android Studio的下载与安装见我的博文&#xff1a;Android Studio 最新…

Python接口自动化测试的局限性,该如何破局?

Python接口自动化测试在软件质量保证方面具有显著的优势&#xff0c;如提高测试效率、减少人工错误、支持持续集成和回归测试等。然而&#xff0c;它也存在一些局限性&#xff0c;主要包括以下几点&#xff1a; 1. **初始投入成本高**&#xff1a; - 编写自动化测试脚本需要…

nginx upstream负载均衡模块

前言 upstream 与 proxy 搭配使用 配置upstream upstream server_www.xxx.com_backend {server 192.168.1.128:8081 weight1;server 192.168.1.128:8082 weight2; }配置 server server {listen 80;server_name www.xxx.com;...location / {proxy_pass http://server_…

蓝牙信标定位原理

定位原理&#xff1a;蓝牙信标的定位原理是基于RSSI蓝牙信号强度来做定位的。 根据应用场景不同&#xff0c;通过RSSI定位原理可分为两种定位方式 一、存在性定位 这种方式通常要求所需定位的区域安装一个蓝牙信标即可&#xff0c;手持终端扫描蓝牙信标信号&#xff0c;扫描…

huggingface下载太慢的问题

解决问题&#xff1a;huggingface网站模型文件太大&#xff0c;下载太慢 方式&#xff1a; huggingface镜像站网址 使用方法3的python脚本文件内容 import os# 下载模型 os.system(huggingface-cli download --resume-download THUDM/chatglm2-6b --local-dir /home/bennie…

LeetCode[27]移除元素

Description 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中…

linxu 寻找某一个文件所在的绝对路径

目录 1 实现 1 实现 在Linux系统中&#xff0c;你可以使用find命令来寻找某个文件的绝对路径。find命令可以递归地在指定的目录及其子目录中搜索文件&#xff0c;并根据给定的条件进行匹配。 下面是使用find命令来查找文件的示例&#xff1a; find / -name "filename&q…

C++入门【25-C++ 从函数返回指针】

在上一章中&#xff0c;我们已经了解了 C 中如何从函数返回数组&#xff0c;类似地&#xff0c;C 允许您从函数返回指针。为了做到这点&#xff0c;您必须声明一个返回指针的函数&#xff0c;如下所示&#xff1a; int * myFunction() { . . . } 另外&#xff0c;C 不支持在函数…

Linux【C编程】 信号以及信号的处理方式

文章目录 1.什么是信号&#xff1f;1.1信号是内容受限的一种异步通信机制1.2信号由谁发出的&#xff1f;1.3信号由谁处理&#xff0c;如何处理 2.常见的信号3.进程对信号的处理3.1用signal函数处理SIGINT信号3.2使用sigaction 函数 4.alarm 和pause函数4.1 alarm函数详解4.2 pa…

vue element plus 安装

环境支持# Element Plus 可以在支持 ES2018 和 ResizeObserver 的浏览器上运行。 如果您确实需要支持旧版本的浏览器&#xff0c;请自行添加 Babel 和相应的 Polyfill 。 由于 Vue 3 不再支持 IE11&#xff0c;Element Plus 也不再支持 IE 浏览器。 Edge ≥ 79Firefox ≥ 78C…

用通俗易懂的方式讲解:大模型 RAG 在 LangChain 中的应用实战

Retrieval-Augmented Generation&#xff08;RAG&#xff09;是一种强大的技术&#xff0c;能够提高大型语言模型&#xff08;LLM&#xff09;的性能&#xff0c;使其能够从外部知识源中检索信息以生成更准确、具有上下文的回答。 本文将详细介绍 RAG 在 LangChain 中的应用&a…

愤怒的小红帽

欢迎来到程序小院 愤怒的小红帽 玩法&#xff1a;帮助小红帽安全送达老奶奶家&#xff0c;当狼进入靶子以后鼠标对准靶子&#xff0c; 点击鼠标左键&#x1f3f9;&#xff0c;对应的狼就会被射死&#xff0c;然后继续往前冲&#xff0c;快去&#x1f3f9;吧^^。开始游戏https:…

Jmeter压缩包安装

JMeter安装及配置-Mac 本章要点 前置条件命令行安装压缩包安装 在Mac上安装对应的JMeter工具有两种方式&#xff1a;一种直接借助终端命令行brew进行安装&#xff1b;另外一种和Window电脑一样去JMeter官网下载压缩包安装。 JMeter不需要安装&#xff0c;但是JMeter作为java应用…

谭浩强C语言课后习题-入门与顺序结构

第一题&#xff1a;第一个HelloWorld程序 题目描述 学习了输出语句&#xff0c;请参照例题&#xff0c;编写一个程序&#xff0c;输出以下信息&#xff1a; ************************** Hello World! ************************** 注意&#xff1a;Hello与World之间有一个空格…

伺服电机:伺服电机的控制方式(脉冲控制)

脉冲控制是伺服系统最常见的一种控制方式&#xff0c;基本上每家的伺服驱动器都支持脉冲模式。脉冲模式一般用于轴比较少的场合&#xff08;4轴及以下&#xff09;&#xff0c;轴数比较多的话就需要用总线来控制&#xff0c;毕竟伺服控制器的脉冲输入输出口的数量是有限的。 一…

Hive分区表实战 - 单分区字段

文章目录 一、实战概述二、实战步骤&#xff08;一&#xff09;创建图书数据库&#xff08;二&#xff09;创建国别分区的图书表&#xff08;三&#xff09;在本地创建数据文件&#xff08;四&#xff09;按分区加载数据1、加载中文书籍数据到countrycn分区2、加载英文书籍数据…