数据库系统概论(第五版)期末复习

第一章

简述数据,数据库,数据库管理系统,数据库系统的概念

数据:描述事物的符号记录
数据库:数据库是存储在计算机内的、可共享的、有组织的数据集合。数据库中的数据按照一定的数据模型进行组织、描述和存储,具有较小的冗余度、较高的独立性和易拓展性,并可以共享。
数据库管理系统:数据库管理系统是位于用户与操作系统之间的一层数据管理软件。主要功能包括有数据定义功能,数据组织、储存和管理,数据操纵功能,数据库的事务管理和运行管理,数据库的建立和维护功能,和其他功能包括数据库管理系统与网络中其他软件系统的通信功能。
数据库系统:据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员组成的储存、管理、处理和维护数据的系统。

简述文件系统与数据库系统的联系与区别。

区别:文件系统面向某一应用程序,共享性差,冗余度大,数据独立性差,记录内有结构,整体无结构,由应用程序自己控制。数据库系统面向现实世界,共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库系统提供数据安全性,完整性,并发控制和恢复力。
联系:文件系统与数据库系统都是计算机系统中管理数据库的软件。解析文件系统是操作系统的重要组成部分。而DBMS是独立于操作系统的软件。DBMS是在操作系统的基础上实现的。数据库系统的组织和存储是通过操作系统中的文件系统来实现的。

简述数据库管理系统的功能

用户角度:
1.定义:通俗的说就是对表内的表名,标题,属性名,结构等进行确定,利用DDL语言(数据定义语言)
2.操纵:增删改查等,利用数据操控语言
3.控制:哪些用户可以访问数据库,利用数据控制语言
4.维护:转储/恢复/重组/性能检测/分析

系统角度:解析语言并执行的系统
1.语言编译器:把数据库语言翻译成DBMS可执行的内容
2.查询优化与查询实现:增加检索的效率
3.数据存取与索引:数据在缓冲区的高效存储
4.通信控制:数据传输
5.故障恢复:将有故障的数据库恢复正常
6.安全控制:避免非授权用户访问数据库
7.完整控制:提供数据和数据完整性检查的手段

简述数据库的三级模式

(1)外模式,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
(2)模式,模式描述的是数据的全局逻辑结构。
(3)内模式,亦称存储模式,对数据的物理结构和存储方式的描述。

两级映像:

1.外模式/模式映射
对于同一个模式可以有任意多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映射。当模式被改变时,数据库管理员对各个外模式/模式映射做相应的改变,可以使外模式保持不变。这样,依据数据外模式编写的应用程序就不用修改,保证了数据与程序的逻辑独立性。

2.模式/内模式映射
数据库中只有一个模式和一个内模式,所以模式/内模式的映射是唯一的,它定义了数据库的全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构被改变时,数据库管理员对模式/内模式映射做相应的改变,可以使模式保持不变,应用程序相应地也不做变动。这样,保证了数据与程序的物理独立性

第二章

关系以及关系模式

关系:现实中实体与实体间的各种联系均用关系来表示
关系模式:是对数据库的设计,数据库实例指的是某一特定时刻整个数据库数据的快照,同理,关系模式是对关系,也就是表的设计,关系实例就是某一特定时刻整个表数据的快照。
联系:关系模式是对关系的描述,关系是关系模式在某一时刻的状态或内容。关系模式和关系往往笼统称为关系
区别:关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的。

简述关系的完整性。

实体完整性:
若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值。
例如:定义一张学生表,将学号定义为主键,则主键学号不能为空。
参照完整性:
外码的值可以为空但是必有意义。
例如:定义的学生表中,除了学号主键以外还有姓名,年龄等,这些属性值可以为空,但是一定是有意义的。
用户定义的完整性:
用户以及定义的一些属性,例如邮箱的格式是 @.com等

关系代数。

详细可以看这篇博客,非常详细

第三章

什么是基本表,什么是视图,两者的区别和联系

视图:
它是从一个或几个基本表中导出的 表,是从现有基本表中抽取若干子集组成用户的“专用表”,物理并不存在。
表:是本身独立存在的表。
区别:
1、视图是已经编译好的sql语句。而表不是
2、视图没有实际的物理记录。而表有。
3、表是内容,视图是窗口
4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改
5、表是内模式,试图是外模式
6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
8、视图的建立和删除只影响视图本身,不影响对应的基本表。
联系:
视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系

简述视图的优点,为什么有些视图不可更新,举例。

优点:

  1. 使用视图,可以定制用户数据,聚焦特定的数据。
  2. 使用视图,可以简化数据操作
  3. 使用视图,基表中的数据就有了一定的安全性
  4. 可以合并分离的数据,创建分区视图

不可更新:
视图的可更新性和视图中查询的定义有关系,以下类型的视图是不能更新的。
1.包含以下关键字的sgl语句:分组函数、disinet. group by、having. union威者union all
2.常量视图(查询结果是一个常量,然后此常量不能更改)
3.Select中包含子查询
4.包含join
5.from一个不能更新的视图
6.where子句的子查询引用了from子句中的表

第四五章

什么是数据库的安全性?什么是数据库的完整性?

数据库的安全性:
保护数据库防止恶意的破坏和非法的存取,安全性防范的是非法用户和非法操作存取数据库中的正确数据
数据库的完整性:
防止数据库中存在不符合语义的数据,也就是防止数据库存在不正确的数据,完整性是阻止合法用户通过合法操作向数据库中加入不正确的数据

简述实现数据库安全性控制的常用的方法和技术

方法内容
用户标识和鉴别该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才能提供系统的使用权
存取控制通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未授权的人员无法存取数据
视图机制为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
审计建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人,时间和内容等。
数据加密对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。

授权的SQL语句

  • grant all privileges on *.* to 'root'@'%' identified by '123456' with
  • grant option 其中all privileges指所有权限
  • *.* 中第一个*是哪个数据库,如果为*指所有数据库,第二个*指选中库的哪个表,为*指所有表
  • root指用户名 %指授权地址,%指所有地址,localhost指本地,也可以为127.0.0.1
  • 123456为设定密码
  • with grant option这个选项表示该用户可以将自己拥有的权限授权给别人

第六七章

根据题目画出E-R图

实体(方框表示),联系(菱形表示),属性(椭圆表示),联系(直线表示)
在这里插入图片描述
在这里插入图片描述

详细内容可以点这个连接(有例题)

将E-R图转换为关系模式,各个关系模式说明主、外键

同样可以点击这个连接
详细内容可以点这个连接(有例题)

判断范式等级,进行规范化,并知道规范化步骤

我放弃-_-

第十、十一章

事务的概念

定义:数据库事务是构成单一逻辑工作单元的操作集合。

1.数据库事务可以包含一个或多个数据库操作,但这些操作构成一个逻辑上的整体。
2.构成逻辑整体的这些数据库操作,要么全部执行成功,要么全部不执行。
3.构成事务的所有操作,要么全都对数据库产生影响,要么全都不产生影响,即不管事务是否执行成功,数据库总能保持一致性状态。
4.以上即使在数据库出现故障以及并发事务存在的情况下依然成立。

并发操作会带来哪几类数据不一致的情况?分别具体说明。

问题内容
丢失更新1两个事务更新相同数据,如果一个事务提交,另一个事务回滚,第一个事务的更新会被回滚
丢失更新2多个事务同时读取相同数据,并完成各自的事务提交,导致最后一个事务提交会覆盖前面所有事务对数据的改变
脏读第二个事务查询到第一个事务未提交的更新数据,第二个事务根据该数据执行,但第一个事务回滚,第二个事务操作脏数据
幻读/虚读一个事务查询到了另一个事务已经提交的新数据,导致多次查询数据不一致
不可重复读一个事务查询到另一个事务已经修改的数据,导致多次查询数据不一致

解决方法:

  • 利用悲观锁,悲观锁的大概意思是每次从表中获取数据时,都认为会对数据做出修改。所以每次在拿数据的时候都会“上锁”,操作完成之后再“解锁”。在数据加锁期间,如果有其他人从表中拿数据就会等待,直到解锁为止。在数据库中的悲观锁有“表锁”和“行锁”等。
  • 乐观锁,乐观锁的意思是认为获取的数据不会被占用,所以先占用,如果发现没占用上,那么就直接操作失败。
  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

smile_new

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值