数据库精选题(二)(引言+关系代数)

news2024/11/29 12:38:36

🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀数据库

💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 

目录

前言

常见概念

一、什么是数据库?

二、什么是数据独立性?数据库系统如何实现数据独立性?

三、简述数据库管理员的职责

四、简述数据库系统三级模式结构及其同数据独立性之间的关系

五、什么是 DBMS?

六、 试述 ER 模型、层次模型、网状模型、关系模型和面向对象模型的主要特点

关系代数

题目一 

题目二

总结 


前言

本系列的重点是大学本科课程《数据库系统概念》。总结数据库学习中的各类知识点,并且对各类数据库考试中可能遇到的题型和对应的解法做总结归纳。在自我复习的同时也将这份心得带给大家,希望能对大家的数据库学习提供帮助~~
本篇复习的点是数据库中的常见概念

常见概念

一、什么是数据库?

定义:数据库=存放数据的一个仓库=数据集合

修饰:按照数据模型组织、长期存储在计算机内、为多用户共享、由数据库管理系统统一管理

数据库是按照一定的数据模型组织的、长期存储在计算机内,可为多个用户共享的、由数据库管理系统统一管理和控制的数据的集合

二、什么是数据独立性?数据库系统如何实现数据独立性?

数据独立性:数据和应用程序相互独立

数据库利用三级结构两级映像实现数据独立性

数据独立性是指应用程序和数据之间是相互独立的,即数据发生变化不必修改应用程序。数据变化包括数据逻辑结构变化、数据物理结构变化,因此独立性可以分为逻辑独立性物理独立性。逻辑独立性指数据逻辑结构变化不影响应用程序变化;物理独立性指数据物理结构变化不必修改应用程序。

数据独立性包括以上两个部分,是由DBMS的三级模式两级映像实现的。三级模式包括外模式、模式、内模式,两级映像包括外模式/模式映像和模式/内模式映像。当数据物理结构变化时,通过修改模式/内模式映像,可以使得模式不发生变化,因此应用程序不用修改;当数据逻辑结构变化时,通过修改外模式/模式,可以使得外模式不变,因此应用程序不变。因此保证了数据独立性

三、简述数据库管理员的职责

定义:模式定义、存储结构及存取方式定义、

修改:模式及物理组织的修改

日常使用:数据访问授权、日常维护

模式定义:数据库管理员通过DDL书写一系列的定义来构造最初的数据库模式

存储结构和存取方式定义:定义数据库用什么存储结构来存储,同时决定是否使用索引等存取方式

模式及物理组织的修改:在定义完成后,因需求变化或提高性能,改进数据库模式/物理结构

数据访问授权:在日常使用中,DBA能够授予不同的用户不同的权限去访问数据库不同的部分

日常维护:定期备份数据库、监视数据库的运行

四、简述数据库系统三级模式结构及其同数据独立性之间的关系

1、简述数据系统三级模式结构

2、简述数据独立性

3、通过两级映像分析三级模式结构和数据独立性的关系

数据库系统存在三级模式分别是外模式、模式和内模式,同时三级模式中存在二级映像分别是外模式/模式映像、模式/内模式映像。数据独立性是指应用程序和数据相互独立,包括逻辑独立性和物理独立性。当物理结构发生变化可以修改模式/内模式映像使得模式不发生变化,从而使得应用程序不发生变化;当逻辑结构发生变化时可以修改模式/模式映像,使得外模式不发生变化,从而使得应用程序不变化

五、什么是 DBMS?

DB:数据库

DBA:数据库管理员

DBMS:数据库管理系统

数据库管理系统,对数据库进行统一的管理和控制

六、 试述 ER 模型、层次模型、网状模型、关系模型和面向对象模型的主要特点

模型描述:

1、数据结构

2、靠什么实现联系

3、执行效率

4、用户理解难度

5、DML是过程化还是非过程化——>编程难度

1、E-R模型是实体联系模型。从实体和实体间的各种关系来表达联系,与计算机系统无关,用户容易理解,且能够充分表达现实世界

2、层次模型的数据结构是树结构,记录之间联系通过指针实现,查询较快,但是DML属于过程化的,操作复杂

3、网状模型的数据结构是有向图,记录之间联系通过指针实现,查询较快,但是DML属于过程化的,编程复杂,不易理解

4、关系模型的数据结构是二维表格,联系靠关系实现。DML属于非过程化的,编程简单,容易理解

5、面向对象模型的数据结构主要是类和对象,联系靠封装、多态、继承等实现。具有丰富的表达能力,能够很好反映现实世界的实际情况。但是用户难以理解,知识面较广

关系代数

关系代数求解流程:

1、确定需要哪几个关系模式

2、确定关系模式之间的关系应该怎么样(技巧见下面)

各种关系使用的场景:

1、产生联系——>自然连接(员工和经理在同一城市——>员工经理要有联系)

2、比较条件(相等、大于、小于)——>笛卡尔积(员工和经理在同一城市——>同一城市同一街道)

3、否条件=全集-正条件(不在那里工作=全集-在那里工作)

4、与“所有”比较大小关系——>可以用Gmin和Gmax聚集处理(比所有高——>Gmax找最高,比较)

5、查询“所有”元组——>利用与全集自然连接

6、爷孙关系——>利用同一关系模式做笛卡尔积(爸爸1儿子1 爸爸2儿子2关系 满足 儿子1=爸爸2)

7、需要多属性参与——>自然连接拓充属性

8、找+比较“所有”下的“所有"——>Gcount+Gmax(聚集函数不能嵌套使用,应该用中间关系分开)

9、与“所有”比较大小关系——>可以用全集-不满足条件=满足条件(减少一次聚集函数使用)

10、使用聚集函数后的更名操作是不必要的,属性名就可以用聚集函数代替(类似sum(salary)就是一个属性名)

11、对于需要用到多次聚集函数/复杂运算的题目——>赋值运算利用中间关系简化

12、已知一个关系,包含所有这个关系元组——>除运算

13、每个+每个——>两个属性进行分组研究(所有出版社找所有员工里满足的)

14、没有借书、上课的也包括——>在加入时就要用左外连接(左边的一定存在)

15、求平均——>用avg

15、平均数=所有/人数——>利用count求每个的值+利用avg实现所有/人数

题目一 

基于员工关系模式完成以下查询:

Employee(person_name, street, city)

Works(person_name,company_name,salary)

Company(company_name, city)

Manages(person_name,manager_name) 

1、找出与其经理居住在同一城市同一街道的员工

  1. 确定关系模式用employee和manages
  2. 思考两个关系模式用的具体关系

2、找出不在First Bank Corporation 公司工作的职工

  1. 确定关系模式用works和employee(首先是职工,然后是不在~工作;职工在employee中找,因为是职工可能最近刚刚辞职不在works里)
  2. 思考两个关系模式用的具体关系

Πperson-name(employee) - Πperson-name(σcompany-name = ‘First Bank Corporation’(works))

3、找出比First Bank Corporation 公司所有员工的收入都高的员工姓名

  1. 确定关系模式用works
  2. 思考两个关系模式用的具体关系

4、找出所有在经理’Jones’下工作的员工

  1. 确定关系模式用managers
  2. 思考两个关系模式用的具体关系

修正:

1、mname=manager_name

2、选择后还要投影到person_name 

 5、找出所有在经理’Jones’下工作的员工所居住的城市

  1. 确定关系模式用managers
  2. 思考两个关系模式用的具体关系

 6、找出’Jones’经理的经理

  1. 确定关系模式用managers
  2. 思考两个关系模式用的具体关系

 7、找出比住在‘Mumbai’的所有员工收入都高那些员工

  1. 确定关系模式用employee⋈works(同时考虑地址和收入)
  2. 思考两个关系模式用的具体关系

8、找出First……的所有员工姓名和居住城市

Πperson_name,city(σcompany name = ‘First Bank Corporation’(works⋈employee))

9、找出所有居住地与工作的公司在同一城市的员工姓名

Πperson_name(σcompany.city=employee.city(employee⋈ works⋈ company))

10、找出员工最多的公司

1、找到所有公司的员工——>聚集函数Gcount

2、在所有公司的员工数关系中找最大的——>Gmax

3、在所有公司的员工数关系中找最大的这里用了另一个思路——>求全集的补集

本题的属性更名运算可以不必要,t1的属性默认就是cname、count(pname) 

13 、 找出工资总额最少的公司 (smallest payroll)

本题思路和上一题相类似 

14 、 找出人均工资比 First 公司人均工资高的公司

题目二

基于图书关系模式完成以下查询

Member(memb_no,name,dob)

Books(isbn,author,publisher)

Borrowed(memb_no, isbn,date)                                                                                                                                                                                                                                                                                                                              

 1、找出借了任何由MG出版的书的员工的姓名

∏name(σpublisher=’MG’(member ⋈ books ⋈ borrowed))

确定好需要三个关系来共同处理本题便做完了

2、找出借了由MG出版的所有的书的员工的姓名

∏name( (∏memb_no,isbn(borrowed) ÷ ∏isbn(σpublisher=’Mc’(books))) ⋈ member)

本题的关键点在于——除运算

3、找出借了至少5本不同的由MG出版的书的员工的姓名

 4、对于每个出版商,找出借了至少5本该出版商的书的员工的姓名

5、找出平均每个成员借了多少本书(没借书的成员也包含在内)。

左外连接将没借的也包括在里面 

总结 

本文的所有知识点、图片均来自《数据库系统概念》(黑宝书)、山东大学李晖老师PPT。不可用于商业用途转发。

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

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

相关文章

QT4-QT5升级(4)GBK-UTF-8-乱码-QT工程构建的区别

文件编码为UTF-8 QString 正常 char* 中文乱码解决方法&#xff1a; #include <iostream> #include <QString> #include <QTextCodec>int main() {QString qstr "你好&#xff0c;世界&#xff01;"; // 中文字符串// 获取 GBK 编码的 QTex…

异步开发的终极答案—协程

我们在之前的文章中讲过,在并发场景下,传统的基于多线程的命令式开发模型虽然比较简单,但并发数高了之后资源占用较高,大量线程会阻塞;而响应式编程模式我们可以通过异步化处理提升系统资源的利用效率,但异步开发有违人的直觉,门槛比较高。作为成年人,我们肯定希望全都…

Echarts 社区分享

​ 首页先确定你要使用的Echarts版本&#xff0c;因为现在Echarts5以上版本引入地图与之前版本有所不同。但是大多数地图不太容易搞分享一些比较好用的ECharts社区网站。 1、makeapie 网址&#xff1a;makeapie 2、isqqw 网址&#xff1a;echarts图表集 3、PPchart 网址…

生产管理系统看板,在自动化设备领域的创新应用

在自动化设备领域&#xff0c;生产管理系统看板的创新应用是一项引人注目的技术进步。以广州某自动化设备有限公司为例&#xff0c;他们是一家涂装工程设备制造企业&#xff0c;将讯鹏生产管理系统电子看板成功应用于全自动立式静电喷粉线、卧式静电喷粉线、氟碳喷涂生产线等领…

VMware连接XShell保姆教程

打开虚拟机后进入终端在终端中 1.配置静态IP 在终端中输入 ifconfig回车&#xff0c; 注意这里需要记住这个IP每个电脑的都不一样 在输入ip addr 2.接着输入cd /etc/sysconfig/network-scripts/进入配置网络文件夹 3.通过Vim编辑器编辑内容 vim ifconfig-ens33 进入界面…

小阿轩yx-MySQL数据库初体验

小阿轩yx-MySQL数据库初体验 数据库简介 21 世纪迈入了“信息爆炸时代”&#xff0c;大量的数据、信息在不断产生&#xff0c;伴随而来的就是如何安全、有效地存储、检索和管理它们。 对数据的有效存储、高效访问、方便共享和安全控制已经成为信息时代亟待解决的问题。 使用…

R语言——R语言基础

1、用repeat、for、while计算从1-10的所有整数的平方和 2、编写一个函数&#xff0c;给出两个正整数&#xff0c;计算他们的最小公倍数 3、编写一个函数&#xff0c;让用户输入姓名、年龄&#xff0c;得出他明年的年龄。用paste打印出来。例如&#xff1a;"Hi xiaoming …

域内攻击手法——域内用户枚举和密码喷洒

一、域内用户枚举 1、域内用户枚举原理 域内用户枚举可以在无域内有效凭据的情况下&#xff0c;枚举出域内存在的用户名&#xff0c;并对其进行密码喷洒攻击&#xff0c;以此获得域内的有效凭据&#xff0c;在 Kerberos 协议认证的 AS-REQ 阶段&#xff0c;客户端向 AS 发送的…

windows本地运行LLama3中文版

先到官网下载LM Studio 网址&#xff1a;LM Studio - Discover, download, and run local LLMs 下载完成后&#xff0c;直接点击运行。在页面搜索栏输入&#xff1a;llama3 chines 然后收获了如下错误信息&#xff1a;network error&#xff0c;怎么办&#xff1f;请转如下链接…

AI绘画-Stable Diffusion三次元人物模型训练(炼丹)教程,你也可以定制你的三上youya老师!

大家好&#xff0c;我是设计师阿威 &#xff08;Stable diffusion生成的三上youya老师&#xff09; 用AI进行画出不同人物&#xff0c;我们需要训练自己Lora模型。除了训练二次元人物之外&#xff0c;也常常要训练三次元人物。 比如福利姬老师可以训练自己然后穿上各种美美的…

The Sandbox 购入几大迷因币!

The Sandbox 是一个致力于支持虚拟艺术家和创作者的全球性社区。我们相信创意文化是开放式元宇宙的基石&#xff0c;我们会花时间参与并帮助 Web3 生态系统的发展&#xff0c;使其中的参与者受益。 为了进一步实现这一目标&#xff0c;我们购买了几种流行的 迷因币&#xff0c;…

【大模型驯化-Prompt】企业级大模型Prompt调试技巧与batch批量调用方法

【大模型驯化-Prompt】企业级大模型Prompt调试技巧 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的博客个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免费获取相关内容文档关注&#x…

『FPGA通信接口』LVDS接口(4)LVDS接收端设计

文章目录 1.LVDS接收端概述2逻辑框图3.xapp855训练代码解读4.接收端发送端联调5.传送门 1.LVDS接收端概述 接收端的传输模型各个属性应该与LVDS发送端各属性一致&#xff0c;例如&#xff0c;如果用于接收CMOS图像传感器的图像数据&#xff0c;则接收端程序的串化因子、通道个…

批量推送邮件如何高效实现?邮件推送技巧?

批量推送邮件有哪些注意事项&#xff1f;如何优化邮件推送效果&#xff1f; 无论是市场营销、客户服务还是内部沟通&#xff0c;批量推送邮件都发挥着关键作用。然而&#xff0c;如何高效实现批量推送邮件却是一个需要深思的问题。AokSend将探讨一些提高批量推送邮件效率的方法…

C++ GPU编程(英伟达CUDA)

安装编译环境 https://developer.download.nvidia.com/compute/cuda/12.5.0/local_installers/cuda_12.5.0_555.85_windows.exe CMakeLists.txt cmake_minimum_required(VERSION 3.10)set(CMAKE_CXX_STANDARD 17) set(CMAKE_BUILD_TYPE Release) #set(CMAKE_CUDA_ARCHITECTUR…

手写方法实现字符串例如:“123“与整型例如:123相互转化(面试必会)

目录 二、字符串类型转化为整型 1. 初始化变量 2.定义字符串索引值 3.思考如何将字符1转化为数字1 4. 转化思路 5.考虑字符串转化负数例&#xff1a;-123456 6.完整代码 四、最后 一、前言 在c语言和c中&#xff0c;有许许多多的数据类型相互转化的方法&#xff0c;这里…

CARIS HIPS and SIPSv12 是专业的多波束水深数据和声呐图像处理软件

CARIS HIPS and SIPS是专业的多波束水深数据和声呐图像处理软件。CARIS HIPS and SIPS适用于海洋应用需求。其可靠性和可用性对多波束水深数据处理和声呐图像都是很重要的。CARIS HIPS用于处理多波束水深数据&#xff0c;CARIS SIPS用于处理侧扫声呐图像和多波束背向散射回波数…

卫星智慧停车导航系统有哪些优势

卫星智慧停车导航系统凭借其先进的技术和创新的理念&#xff0c;为现代城市停车问题提供了有效的解决方案。以下是卫星智慧停车导航系统的主要优势&#xff1a; 一、实时性与准确性 卫星智慧停车导航系统通过集成全球卫星定位系统(GPS)和地理信息系统(GIS)&#xff0c;能够实时…

Redis 持久化策略

Redis 提供了多种持久化机制&#xff0c;用于将数据保存到磁盘中&#xff0c;以防止因服务器重启或故障而导致的数据丢失。主要的持久化策略有两种&#xff1a;RDB (Redis Database) 和 AOF (Append Only File)&#xff0c;即当 Redis 服务器重新启动时&#xff0c;会读取相应的…

自研地面站!自主开源无人飞行系统 Prometheus V2 版重大升级详解

自主开源无人飞行系统 Prometheus V2 相对于 Prometheus V1 在多方面做了重大的升级&#xff0c;今天我们将聊聊 Prometheus V2 的地面站升级。 地面站的重大提升 熟悉 Prometheus 的小伙伴们可能知道&#xff0c;V1 版本是没有专门的地面站的。而在 Prometheus V2 中&#x…