数据库期末复习

 

数据库期末复习

分析题

1

(1)使用数据库系统可以大大提高应用开发的效率,方便用户的使用减轻数据库系统管理人员维护的负担,请回答数据库系统有哪些部分组成?什么是数据库管理系统,其主要功能包括哪些方而?(5分)

数据库系统一般由以下四个部分组成:

DB:数据库,长期存储在计算机内部,有组织,可以共享的大量数据的集合

DBMS:位于用户与操作系统之间的一层数据管理软件

DBA:数据库管理员是负责数据库的建立、使用和维护的人员。

硬件和软件:数据库系统还需要相应的硬件和软件支持。


数据库管理系统(DBMS):是一种软件工具或系统,用于管理和操作数据库。

  1. 数据定义语言(DDL):用于定义数据库结构、模式和数据类型。允许用户创建、修改和删除数据库对象,如视图、索引等。

  2. 数据操作语言(DML):用于执行数据操作,如插入、更新、删除和查询数据。用户可以使用查询语言(如SQL)编写和执行复杂的查询。

  3. 数据库安全和权限管理提供安全和权限管理机制,以控制对数据库的访问和操作。允许管理员分配用户角色、权限和访问级别。

  4. 数据完整性和约束::支持定义数据完整性规则和约束条件,以确保数据库中的数据符合预期的规范。

2

(2)从数据库管理系统角度看,数据库系统中有哪三层模式结构?采用三层模式结构有什么好处?(5分)

数据库系统中有哪三层模式结构?

  1. 外模式

  2. 模式(逻辑模式)

  3. 内模式

好处?

  1. 保证了数据的独立性

    • 概念模式和内模式分开,保证数据的物理独立性。

    • 把外模式和概念模式分开,保证数据逻辑的独立性。

  2. 有利于数据共享

    • 所有用户使用统一概念模式导出的不同外模式,减少数据冗余,有利于多种应用程序间共享数据。

  3. 有利于数据安全保密

    • 每个用户只能操作属于自己的外模式数据视图,不能对数据库其他部分进行修改,保证了数据安全性。

  4. 三层模式结构还有利于数据库的设计、开发和维护,提高了数据库的灵活性和可扩展性。

image-20240627104136007


4

(4)数据库的完整性是数据库管理系统的重要要求之一,根据您对数据库完整性的理解,请说明数据库的三类完整性是什么?并列出这三类完整性约束在SQL语句中关键词?(5分)

数据库的三类完整性:

  1. 实体完整性

    • 定义:确保表中每一行数据的唯一性,通常通过主键实现。

    • SQL关键词:PRIMARY KEY

  2. 域(用户定义)完整性

    • 定义:确保表中数据的准确性和有效性,包括数据类型、非空约束、默认值、取值范围等。

    • SQL关键词:NOT NULLDEFAULTCHECK

  3. 参照完整性

    • 定义:确保表间数据的一致性,通过外键约束实现。

    • SQL关键词:FOREIGN KEY

5

(5)DBA是从事管理和维护数据库管理系统的相关工作人员的统称,属于运维工程师的一个分支,请根据所学知识回答,DBA的主要职责是什么?(5分)

DBA的主要职责是什么

  1. 数据库备份与恢复: 制定并执行数据库备份计划,确保数据的安全性。在数据丢失或损坏时,能够迅速恢复数据,减少业务中断时间。

  2. 数据库设计,安装,配置 : 负责设计数据库架构,选择合适的数据库管理系统,并进行安装和配置,确保数据库系统能够稳定运行。

  3. 数据库安全管理 :负责数据库的安全管理工作,包括设置用户权限、审计数据库操作、防止安全威胁等,确保数据库系统的安全稳定运行。

  4. 数据库监控和维护 :定期监控数据库的运行状态,包括磁盘空间、内存使用、连接数等关键指标,及时发现并解决潜在问题。

  5. 数据迁移和升级 :随着业务的发展,负责数据库系统的迁移或升级工作,确保数据的完整性和业务的连续性。

设计题

(1)某商店管理涉及商店、商品和职工三个实体,它们分别具有下列属性:

商店:商店编号,店名,店址,店经理

**商品:商品编号,商品名,单价,产地

职工:职工编号,职工名,性别,工资

这些实体间的联系如下:百货公司管辖若干个连领商店,每家商店经营若干商品,每家商店有若干职工,但每个职工只能服务于一家商店。

职工参加某商店工作有开始时间:商店销售商品的有月销售量

1

(1). 请画出商店、商品和职工的ER图。(7分)

image-20240627110603410

image-20240627110838425

image-20240627110842862

image-20240627110854484

确定实体和属性

  • 商店(Store):商店编号(StoreID)、店名(StoreName)、店址(StoreAddress)、店经理(StoreManager)

  • 商品(Product):商品编号(ProductID)、商品名(ProductName)、单价(UnitPrice)、产地(Origin)

  • 职工(Employee):职工编号(EmployeeID)、职工名(EmployeeName)、性别(Gender)、工资(Salary)

确定实体之间的关系

  • 商店与商品之间是一对多关系:每个商店经营若干商品。

  • 商店与职工之间是一对多关系:每个商店有若干职工,但每个职工只能服务于一家商店。

  • 商店销售商品的月销售量。

  • 职工参加某商店工作的开始时间。

image-20240627112544288

image-20240627113442834

image-20240627113426149

2

(2)数据库设计是将数据库系统与现实世界进行密切的、有机的、协调一致的结合的过程。假设需要设计某个信息管理系统的数据库,按照结构化系统设计的方法,请播述数据库的设计过程?(10分)

数据库的设计过程?

1+3+1+1=6

1分析+3设计+1实施+1运行和维护

image-20240627113738547

应用题

image-20240627114046221

image-20240627114056216

image-20240627114109967

使用SQL语句完成以下操作

(1)创建Srudent表(需要包含相应的约束)。(3分)

image-20240627114046221

数据类型约束说明:

  1. Sno(学号)

    • 数据类型:字符(8)

    • 约束:主键

    • 含义:每个学生都有一个唯一的学号,长度为8个字符。

    • 作用:确保学号的唯一性,以便准确标识每个学生。

    • 默认值:无(主键通常没有默认值)

  2. Sname(姓名)

    • 数据类型:字符(12)

    • 约束:非空

    • 含义:学生的名字,长度为12个字符。

    • 作用:确保每个学生都有一个名字。

    • 默认值:无(姓名通常没有默认值)

  3. Ssex(性别)

    • 数据类型:字符(2)

    • 约束:取“男”或“女”

    • 含义:学生的性别,只能是“男”或“女”。

    • 作用:标识学生的性别。

    • 默认值:“男”

  4. Sage(年龄)

    • 数据类型:整型

    • 约束:取值范围15~36,默认值22

    • 含义:学生的年龄,必须是15到36之间的整数。

    • 作用:记录学生的年龄信息。

    • 默认值:22(当没有指定年龄时,默认年龄为22)

  5. Sdept(院系)

    • 数据类型:字符(20)

    • 约束:默认值“计算机系”

    • 含义:学生所属的院系,长度最多为20个字符。

    • 作用:标识学生所在的院系。

    • 默认值:“计算机系”(当没有指定院系时,默认院系为“计算机系”)

CREATE TABLE Student (  Sno CHAR(8) PRIMARY KEY,  Sname CHAR(12) NOT NULL,  Ssex CHAR(2) CHECK (Ssex IN ('男', '女')) DEFAULT '男',  Sage INT CHECK (Sage BETWEEN 15 AND 36) DEFAULT 22,  Sdept CHAR(20) DEFAULT '计算机系'  
);
---------------------------------------------------------------------------------
CREATE TABLE Course (  Cno CHAR(8) PRIMARY KEY,  Cname CHAR(8) NOT NULL,  Teacher CHAR(10) UNIQUE  
);
​
CREATE TABLE SC (  Sno CHAR(8),  Cno CHAR(8),  Grade SMALLINT CHECK (Grade BETWEEN 0 AND 100),  PRIMARY KEY (Sno, Cno),  FOREIGN KEY (Sno) REFERENCES Student(Sno) ON UPDATE CASCADE ON DELETE CASCADE,  FOREIGN KEY (Cno) REFERENCES Course(Cno) ON UPDATE CASCADE ON DELETE RESTRICT  
);

(2)检索课程名以"DB“开头,且倒数第3个字符为k的课程的详细情况。(3分)

INSERT INTO Course (Cno, Cname, Teacher)  
VALUES ('C001', 'DB高等kad', 'John Doe');
​
select * from Course where rtrim(Cname) like 'DB_%K__';

image-20240627120239325

(3)向学生选修课程表中插入元组“学生S10选修课程号C4”。(3分)

INSERT INTO SC (Sno, Cno)
VALUES ('S10', 'C4');

要确保

image-20240627121114079

student和course里有对应查找s10和C4的数据没有就插入

尝试在 SC 表中插入的学生编号 Sno 或课程编号 Cno 在相应的 StudentCourse 表中不存在。这违反了外键约束。确保在插入数据之前,这些外键在相关表中存在。

(4)删除选课成绩在55分以下的学生记录。(3分)

模拟对应的数据再查找

INSERT INTO Student (Sno, Sname, Ssex, Sage, Sdept)
VALUES ('S11', '小明', '男', 21, '计算机系');
​
INSERT INTO Course (Cno, Cname, Teacher)
VALUES ('C5', '高等数学A1', '马老师');
​
INSERT INTO SC (Sno, Cno,Grade)
VALUES ('S11', 'C5',100);
​
​
select * from sc where Grade > 50;
select * from sc where Grade < 50;
select * from sc where Grade  50;
​

(6)求出女同学的每一年龄组(超过3人)有多少人?要求查询结果按人数降序排列,人数相同的按年龄升序排列。(3分)

SELECT Sage, COUNT(*) AS NumOfStudents
FROM Student
WHERE Ssex = '女'
GROUP BY Sage
HAVING COUNT(*) > 3
ORDER BY NumOfStudents DESC, Sage ASC;
​

(7)统计每门课程的选课人数和考试最高分。(3分)

SELECT Cno, COUNT(*) AS NumOfStudents, MAX(Grade) AS HighestGrade
FROM SC
GROUP BY Cno;
​

image-20240627132553129

(8)定义视图Sagc,其中包括学生学号以及每个学生选修课程的门数(要求成绩非空)和平均成绩。(3分)

image-20240627132848802

CREATE VIEW Sagc AS
SELECT Sno, COUNT(Cno) AS CourseCount, AVG(Grade) AS AvgGrade
FROM SC
WHERE Grade IS NOT NULL
GROUP BY Sno;
​

(9)在Course表中增加一个类型为char(10)的职称(pro)列。(3分)

ALTER TABLE Course
ADD pro CHAR(10);
​

(10)为用户user1授权Student表的查询和插入权限:收回用户userl对Student表的查询权限。(3分)

GRANT 权限 ON 对象类型 对象名 TO 同户名 [WITH GRANT OPTION]

image-20240627131705866

GRANT SELECT ON TABLE STUDENT TO user1[with grant option]

image-20240627131713469

SQL复习

mysql简单入土 | cout<<"金缕衣";

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

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

相关文章

vue3项目报错集合

目录 一、does not provide an export named default 一、does not provide an export named default 报错截图&#xff1a; 原因&#xff1a; vite对commonjs兼容性太差&#xff0c;导致无法引入jsoneditor&#xff0c;可以使用originjs/vite-plugin-commonjs插件解决。&am…

Cocos Creator2D游戏开发(7)-飞机大战(5)-让子弹飞

飞机大战(5)-碰撞及积分 参考敌机的生成 子弹由飞机生成,放在player_node节点子弹重复使用,要使用预制体;子弹新增了动画 ①创建一个预制体 命名为playerBullet_prefab ② 双击预制体将bullet1图片拖入预制体 保存,关闭(场景编辑器里面的) ③ 发射子弹 player加入代码 prop…

【网络安全】破解邀请码实现未经授权的访问和账户接管

未经许可&#xff0c;不得转载。 文章目录 前言1、邀请用户2、低级账户访问3、提取用户 ID 和 OTP4、准备字典5、攻击6、账户接管 前言 ExampleSpark&#xff08;化名&#xff09;是一个专为团队管理和项目协作而设计的强大平台。它提供了用于管理用户、项目和权限的综合工具。…

【华视电子CVR100A】 身份证读取与酒店收银系统源码整合:CyberWinApp-SAAS 本地化及未来之窗行业应用跨平台架构

一、酒店系统连接身份证阅读器好处 在开房界面&#xff0c;点击读取身份证&#xff0c;可以自动读取姓名&#xff0c;性别&#xff0c;地址&#xff0c;身份证号码 1. 提高办理入住效率 - 传统的手动输入身份证信息繁琐且容易出错&#xff0c;一键读取能够快速准确地获取客人身…

机器学习算法——常规算法,在同的业务场景也需要使用不同的算法(一)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

【C语言报错已解决】Format String Vulnerability

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引言 在日常开发中&#xff0c;我们经常会遇到各种各样的bug&#xff0c;其中格式化字符串漏洞报错可能是最让人头疼的一种。这…

基于SpringBoot+Vue的地方美食分享网站(带1w+文档)

基于SpringBootVue的地方美食分享网站(带1w文档) 人类的进步带动信息化的发展&#xff0c;使人们生活节奏越来越快&#xff0c;所以人们越来越重视信息的时效性。以往的管理方式已经满足不了人们对获得信息的方式、方便快捷的需求。即地方美食分享网站慢慢的被人们关注。 项目简…

Redis集群启动步骤

前提&#xff1a;处理好配置文件。 一、通过配置文件启动三个Redis实例。 执行命令&#xff1a;redis-server /opt/redis/cluster/16381/16381.conf 二、因为 Redis 集群至少需要 3 个主节点。所以这三个都是主节点&#xff0c;暂不考虑从节点。 创建一个包含 3 个主节点的…

全网最适合入门的面向对象编程教程:27 类和对象的Python实现-Python中异常层级与自定义异常类的实现

全网最适合入门的面向对象编程教程&#xff1a;27 类和对象的 Python 实现-Python 中异常层级与自定义异常类的实现 摘要&#xff1a; 本文主要介绍了在使用 Python 进行面向对象编程时&#xff0c;异常的层级和如何使用继承关系完成自定义自己项目中异常类&#xff0c;并以传…

刷题了:144.二叉树的前序遍历心|145.二叉树的后序遍历心|94.二叉树的中序遍历己

递归遍历 文章讲解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E9%80%92%E5%BD%92%E9%81%8D%E5%8E%86.html#%E6%80%9D%E8%B7%AF 视频讲解:https://www.bilibili.com/video/BV1Wh411S7xt/?spm_id_from333.788&vd_sourcee70917aa6392827d1ccc8d85e1…

【Websim.ai】一句话让AI帮你生成一个网页

【Websim.ai】一句话让AI帮你生成一个网页 网站链接 websim.ai 简介 websim.ai接入了Claude Sonnet 3.5&#xff0c;GPT-4o等常用的LLM&#xff0c;只需要在websim.ai的官网指令栏中编写相关指令&#xff0c;有点类似大模型的Prompt&#xff0c;指令的好坏决定了网页生成的…

全网最全robotframework自动化测试环境搭建

一、前言 1、在2019年之前&#xff0c;robotframework-ride的版本一直是1.5.2.1&#xff0c;是2016年1月份的版本&#xff0c;只能安装在python2.7的环境上&#xff0c;导致如果想同时使用robotframework做测试且又需要python3环境编写python代码的小伙伴都需要在操作系统上安…

Open3D 计算去质心后的点云

目录 一、概述 1.1原理 1.2实现步骤 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2处理后点云 Open3D点云算法汇总及实战案例汇总的目录地址&#xff1a; Open3D点云算法与点云深度学习案例汇总&#xff08;长期更新&#xff09;-CSDN博客 一、…

linux运维脚本编写

目录 步骤1 系统基本信息的检查 步骤2 文件系统和磁盘信息的检查 步骤3 内存、cpu、进程信息的检查 1、内存信息检查 2、cpu信息检查 3、进程信息检查 步骤4 其他脚本 正文部分✌ 步骤1 系统基本信息的检查 巡检脚本 步骤2 文件系统和磁盘信息的检查 具体实现的shell脚本如…

NebulaGraph图数据库使用教程

一、NebulaGraph 是什么&#xff1f; NebulaGraph 是一款开源的图数据库&#xff0c;擅长处理千亿个顶点和万亿条边的超大规模数据集。 NebulaGraph 社区已成长为一个荟聚了众多用户、融合了各类图技术场景实践知识的活跃开源社区。你可以在其中与大家共同交流 NebulaGraph 周…

音视频开发入门很难?可能是你姿势不对

作为程序员&#xff0c;听到最烦的两个词一个是bug&#xff0c;在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「音视频开发的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大…

【书生大模型实战】L1-书生大模型全链路开源体系

一、关卡任务 观看本关卡视频后&#xff0c;写一篇关于书生大模型全链路开源开放体系的笔记。 视频链接&#xff1a;【书生浦语大模型全链路开源体系】 https://www.bilibili.com/video/BV1Vx421X72D/?share_sourcecopy_web 二、实验过程 书生浦语大模型全链路开源体系&am…

银行贷款信用评分不足?大数据帮你找回失去的“分”

在这个信息爆炸的时代&#xff0c;无论是个人还是企业&#xff0c;数据都成为了衡量信用和评估风险的重要依据。贷款、融资、求职甚至是日常消费&#xff0c;都可能因为一份好的数据报告而变得更加顺畅。那么&#xff0c;如何高效地查询自己的大数据&#xff0c;面对评分不足时…

【持续集成_02课_Jenkins+Git+Gogs综合应用】

https://www.cnblogs.com/xfeiyun/p/17510472.html Jenkins部署及持续集成——傻瓜式教程-腾讯云开发者社区-腾讯云 一、Jenkins安装 Jenkins由Java语言编写而成&#xff0c;安装包即是一个war包。因此&#xff0c;Jenkins的运行启动依赖于Java环境&#xff0c;同时&#xf…

G120 EPos配置方案及应用场景

EPos功能就是基本定位器功能,它可计算出轴的运行特性,使轴以时间最佳的方式移动到目标位置。EPos功能主要包括:设定值 直接给定(MDI)功能、 选择程序段功能、回参考点功能、点动功能、运行到固定挡块功能。 EPos功能通过处理给定的加速度、速度和位置值生成运行特性曲线,…