当前位置: 首页 > news >正文

【数据库】复习

数据库期中复习——概念填空_在修改数据结构时,为了保证数据库的数据独立性-CSDN博客

选择题

关系数据理论-数据库习题_数据库关系理论考题-CSDN博客

关系、关系模式、关系模型区别和联系

关系:元组的集合,一张表

关系模式:关系的描述   R(U,D,DOM,F)

关系模型:数据结构、数据操纵与完整性约束

关系和关系模式的区别
1.关系模式是型,关系是值,关系模式是对关系的描述
2.关系是关系模式在某一个时刻的状态或者内容,关系模式是静态的,稳定的,而关系是动态的,随时间不断变化的,因为关系操作在不断地更新着数据库中的数据
3.类似于面向对象程序设计中”类“与”对象“的区别。”关系“是”关系模式“的一个实例,可以把”关系”理解为一张带数据的表,而“关系模式”是这张数据表的表结构。

关系模型和关系的区别

关系模型包含关系,关系是关系模型的数据结构,在关系模型中,现实世界的实体以及实体间的各级联系均用单一的结构类型,即关系来表示


                        

数据模型由数据结构、数据操作和数据的完整性约束条件三部分组成

第七章

1.事务的概念及事务的4个特性

事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做

ACID特性

事务具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持续性(Durability)四大特性

2.数据库中为什么要进行并发控制?并发控制技术能够保证哪些特性?

数据库是共享资源,可以供多个用户使用,所以通常有许多个事务同时在运行。当多个事务并发地存取数据库时就会产生同时读取或修改同一数据的情况。
若对并发操作不加以控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。
并发控制技术能够保证事务的隔离性和一致性。

3.并发操作可能会产生哪几种数据不一致问题?用什么方法能够避免各种不一致的情况?

(1)丢失修改

两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了)T1提交的结果,导致T1的修改被丢失

(2)不可重复读

事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果

(3)读脏数据

事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为“脏”数据,即不正确的数据

避免不一致的方法和技术就是并发控制。最常用的并发控制技术是封锁技术,还有在分布式数据库系统中采用时间戳方法来进行并发控制

第八章

1.数据库中为什么要进行数据库恢复?数据库恢复能够保证事务的哪些特性?

数据备份就是要保存数据的完整性,防止非法关键,断点,病毒感染等情况,使数据丢失

数据还原就是数据库出现错误或者是崩溃了不可以用,就把原来的数据恢复回来。提高系统的可用性和灾难可恢复性,在数据库系统崩溃的时候,可以恢复数据

使用数据库备份还原数据库是数据库崩溃时提供数据恢复最小代价的最优方案。没有数据就没有一切,数据库备份就是一种防范灾难于未然的强力手段。

数据库恢复能够保证事务的原子性和持久性

一、简答题

1、2、10、11

二、关系代数

三、关系规范化理论

四、数据库设计

画E-R图,然后把E-R图转换成数据模型

五、SQL语言

一、简答题

1.什么事数据库管理系统?它有哪些功能?P5

DBMS

建立、运用和维护数据库时进行集中控制的软件系统

  • 数据定义
  • 数据组织、存储和管理
  • 数据操纵
  • 数据库的事务管理和运行管理
  • 其他,通信、数据转换、互访和互操作

2.简述数据库系统的三级模式和两级映像结构,其如何保证数据的逻辑独立性和物理独立性 P28

模式、外模式、内模式

外模式/模式映像、模式/内模式映像

当模式改变时,由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变。应用程序是根据数据的外模式编写的,从而应用程序不用修改,保证了数据与程序的逻辑独立性

当数据库的存储结构改变时,由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据程序之间的物理独立性

3.简述关系模型的三类完整性规则及其内容 P45

实体完整性:主码中的属性不能取空

参照完整性:不引用不存在的实体,参照关系中的外码或者取空或者等于被参照关系中某个元组的主码值

用户定义的完整性规则反映某一具体应用涉及的数据必须满足的语义要求

4.简述数据库设计的六个阶段及每个阶段的主要工作 P209

  • 需求分析:分析用户的需求,包括数据、功能和性能需求;
  • 概念结构设计:主要采用E-R模型进行设计,包括画E-R图;
  • 逻辑结构设计:将E-R图转换成表,实现从E-R模型到关系模型的转换;
  • 数据库物理设计:主要是为所涉及的数据库选择合适的存储结构和存取路径;
  • 数据库实施:包括编程、测试和试运行;
  • 数据库运行与维护:系统的运行与数据库的日常维护

在数据库设计过程中,需求分析和概念结构设计可以独立于任何数据库管理系统进行,逻辑结构设计和物理结构设计与选用的数据库管理系统密切相关

5.简述事务的概念和四个特性。P293 并发控制能保证事务的哪些特性?P310

事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位

ACID

  • 原子性Atomicity
  • 一致性Consistency
  • 隔离性Isolation
  • 持续次Durability

并发控制技术保证了事务的隔离性一致性

二、关系代数语言

设有学生-课程-教学数据库,包含三个关系,分别为:S(S#,SNAME,SEX,AGE),C(C#,CNAME,TEACHER),SC(S#,C#,GRADE),试用关系代数表达式表达以下问题:

1.查询年龄AGE大于22的男同学的学号和姓名。

2.查询选修任课教师TEACHER是“李小明”课程的学生学号。

3.查询选修了课程C#为“C1”和“C2”课程的学生学号。

4.查询全部学生都选修的课程号与课程名。

三、关系规范化理论

关系模式R(员工编号,日期,零件数,部门名称,部门经理),表示某个工厂里每个员工的日生产零件数以及员工所在的部门和经理信息。假设每个员工每天只有一个日生产零件数,每个员工只在一个部门工作,每个部门只有一个经理。完成:

1.写出关系模式R的基本函数依赖和所有候选码

2.R是否为2NF,如果不是,把R分解为2NF

不是

(员工编号,日期)是码,存在非主属性(部门名称)对码的部分依赖 [员工编号--->部门名称]

分解:

R1(员工编号,日期,零件数)

R2(员工编号,部门名称,部门经理)

3.进一步将R分级为3NF

R1(员工编号,日期,零件数)

R2(员工编号,部门名称)

R3(部门名称,部门经理)

四、数据库设计题

某IT公司的数据库信息有:

部门:部门编号、部门名称、办公地点

员工:员工编号、姓名、级别

项目:项目编号、项目名称、开始时间、结束时间

一个员工只在一个部门工作;每个部门有唯一的一个员工作为部门经理;每个项目由一名员工负责,多名员工参与,一个员工只负责一个项目,可参加多个项目,在每个项目具有工作时间比。

1.试画出E-R图,并在图上注明属性、联系及联系类型

2.将E-R 图转换成关系模型,并说明主码和外码。

关系模型为:
部门(编号,名称,办公地点,经理编号),主码:编号,外码:部门的经理编号参照员工的编号;
员工(编号,姓名,级别,部门编号),主码:编号,外码:员工的部门编号参照部门的编号
项目(编号,名称,开始日期,结束日期,负责人编号),主码:编号,外码:项目的负责人编号参照员工的编号;
员工参与(员工编号,项目编号,时间比),主码:员工编号,项目编号;外码:员工编号、项目编号分别参照员工的编号、项目的编号。
 

五、SQL语言编程题

假设一个数据库中有3个关系:

客户关系Customer(CustomerID,CName,CA),属性的含义依次为客户号、客户名称和地址;

产品关系Products(ProductID,PName,Price,Provide,Storage),属性的含义依次为产品号、产品名、单价、供应商和库存量;

订单关系Orders(OrderID,CustomerID,ProductsID,Odate,QTY),属性的含义依次为订单号、客户号、产品号、日期和数量。

规定一张用户订单只能订购一种产品。用SQL语句完成以下各题:

1.建立Customers表、Orders表,要求定义主码和外码约束

create table Customers(CustomerID char(10) primary key,CName varchar(20),CA varchar(20)
);create table Orders(OrderID char(10) primary key,CustomerID char(10) foreign key references Customers(CustomerID),ProductID char(10) foreign key references Products(ProductID),Odate date,QTY int
);

2.往Products表中添加一条记录,产品号=‘1018’,产品名=‘洗衣机’,单价=1500,供应商=“海尔”,库存量=150

insert into Products values('1018','洗衣机',1500,'海尔',150);

3.更改Products表,将“洗衣机”产品的价格下浮10%

update Products set Price=Price*0.9 where PName='洗衣机';

4.删除Customers表地址中有“西安市”的客户信息

delete from Customers where CA like '%西安市%';

5.允许用户李小明对Orders表进行插入、删除操作

grant insert,delete on Orders to '李小明';

6.查询西安地区客户的订单情况

select * from Orders where CustomerID=(select CustomerID from Customers where CA like '%西安市%');

7.查询产品表中没有订单记录的产品信息

select * from Products where ProductID not in(select ProductID from Orders);

8.统计2019年12月30日的订单中每种产品的总数量

select sun(QTY) from Orders
where Odate='2019-12-30'
group by ProductID;

9.在订单表上建立触发器,当添加一条记录时,减少产品表中对应产品的库存量

create trigger trigger_insert
on Orders
after insert
as 
uodate Products set Storage=Storage-inserted.QTY
from Products,inserted
where Products.ProductID=inserted.ProductID;

http://www.lryc.cn/news/500084.html

相关文章:

  • CorsConfig前后端数据跨域连接,IDEA右侧Maven窗口消失
  • Python微博动态爬虫
  • 【设计模式】单例模式 在java中的应用
  • burp suite 8
  • 为什么在Java中super与this不能共存于子类构造器中,其中this起什么作用
  • Hypothesis:高效的 Python 测试工具
  • Terminus Calculator 计算原理分享
  • Wwise 使用MIDI文件、采样音频
  • 在CentOS上无Parallel时并发上传.wav文件的Shell脚本解决方案
  • 【RocketMQ 源码分析(一)】设计理念与源码阅读技巧
  • 独立ip服务器有什么优点?
  • 如何使用Python库连接Redis
  • Vant UI +Golang(gin) 上传文件
  • 【Unity高级】如何实现粒子系统的间歇式喷射
  • 通过linux命令获取自选股票价格及大盘涨跌幅
  • 透彻理解并解决Mockito模拟框架的单元测试无法运行的问题
  • vue3字典数据的显示问题(使用hooks解决)
  • Elasticsearch 单节点安全配置与用户认证
  • 二分查找(带图详解)
  • 【Git】:标签管理
  • 物品识别 树莓派 5 YOLO v5 v8 v10 11 计算机视觉
  • 单片机软件工程师前景分析
  • 在Java中几种常用数据压缩算法的实现及其优劣势
  • Word——如何打出 符号中的 1、2、3等带圆圈的序号
  • 操作系统之进程与线程
  • 代码随想录算法训练营打卡第35天:背包问题
  • 【MySQL】数据库 Navicat 可视化工具与 MySQL 命令行基本操作
  • vscode(一)安装(ubuntu20.04)
  • 利用永恒之蓝对win7进行键盘记录
  • 万字长文解读深度学习——dVAE(DALL·E的核心部件)