第一章 绪论
知识点
1.什么是数据库?
数据库是长期储存在计算机内,有组织,可共享的大量数据的集合。数据库中的数据按照一定的数据模型组织,描述和存储,具有较小冗余度,较高的独立性和易扩展性,并可为各种用户共享。
2.数据库一般由 数据库,数据库管理系统(DBS),数据库管理员(DBA),应用程序构成。
问答
1.数据管理系统的主要功能有哪些?
①数据库定义功能;
②数据组织、存储和管理功能;
③数据操纵功能;
④数据库的事务管理和运行管理;
⑤数据库的建立和维护功能;
⑥其他功能,如不同数据库之间的互访和互操作功能等。
2.试阐述数据库三级模式结构,并说明这种结构的优点是什么?
数据库系统的三级模式结构由外模式、模式和内模式组成。
外模式,亦称子模式或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图。
模式,亦称逻辑模式,是数据库中全体数据的逻辑结构和特性的描述,是所有用户的公共数据视图。模式描述的是数据的全局逻辑结构。外模式通常是模式的子集。
内模式,亦称存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。
为了能够在内部实现这三个抽象层次的联系和转换,数据库系统在这三级模式之间提供了两级映像:外模式/模式映像 和 模式/内模式映像。正是这两级映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
3.什么是数据程序的物理独立性?什么是数据程序的逻辑独立性?
数据与程序的物理独立性是指,当数据库的存储结构改变了,由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变,这就是数据与程序的物理独立性,简称数据的物理独立性。
(就是说通过这个中间商模式,可以让各种不同的内模式转换成相同的外模式。就像微信支付一样,你不需要知道对面收的是哪一种货币,你只需要知道你用人民币可以支付就可以了)
数据与程序的逻辑独立性是指,当数据的逻辑结构即模式改变时,由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变,从而应用程序不必修改,这就是数据与程序的逻辑独立性,简称数据的逻辑独立性。
(其实就是换了中间商,差价由数据库管理员重新谈而已,对于交易两方同样不会受影响)
第二章 关系数据库
知识点
1.关系数据模型由关系数据结构,关系操作集合和关系完整性约束三部分组成。
2.域和笛卡尔积
域是指一组具有相同数据类型的值的集合。
像{0,1},{男,女}这些都是
笛卡尔积略
3.关系
候选码:某一属性组的值能唯一地标志一个元组,而其子集不能,则称这个属性组为候选码。
若一个关系中由多个候选码,则选定一个为主码。(只有一个候选码,那当然也就称为主码了)
主属性:候选码地诸多属性称为主属性。不包含在任何候选码中地属性称为非主属性或非码属性。如果候选码只有一个属性,在最极端地情况下,关系模式的所有属性是这个关系模式的候选码,称为全码。
4.关系的完整性
关系模型中的三类完整性约束:实体完整性,参照完整性,和用户定义完整性。
实体完整性: 主码不取空值。
参照完整性: 外码约束(可以取空值,或者是取某个元组上的主码值)。
用户定义完整性: 针对某一关系数据库的约束条件。(例如,某个属性必须是唯一值,某个属性不能取空)。
5.五种基本操作
选择,投影,并,差,笛卡尔积
外连接可以把原本悬浮的元组也保留在结果关系中。分为左外连接和右外连接(只保留左边元组或右边元组)
问答
2. 关系代数的基本运算有哪些?如何用这些基本运算来表示其他运算?
关系代数的基本运算有:并、差、笛卡儿积、投影和选择5种运算。
交运算:R∩S = R-(R-S) = S-(S-R)
连接运算:R ⋈AB S = σAB(RS)
除运算:R(X,Y) ÷ S(Y) = πX® - πX(πX® × πY(S) - R)
第三章 关系数据库标准查询语言SQL
问答
什么是视图?使用视图有哪些优点?
视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。(基本表中数据改变,视图中查询的数据也会相应的改变)视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。视图具有如下优点:
① 视图能够简化用户的操作。
② 视图使用户能以多种角度看待同一数据。
③ 视图对重构数据库提供了一定程度的逻辑独立性。
④ 视图能够对机密数据提供安全保护。
⑤ 适当的利用视图可以更清晰的表达查询
不是所有的视图都可以更新。若视图的更新不能唯一地、有意义地转换成对相应基本表的更新,则这些视图不允许更新。(对应着上面的话)
(像一些视图,里面的码属性是一些像取平均,相加这一些的时候,这时因为基本表中是不存在这些的,所以是不能对视图进行修改)
更新视图:由于视图时虚表,所以对视图的更新最后会转变成对基本表的更新。
第四章 数据库安全性
概念
用户权限由两个要素组成:数据库对象和操作类型。
定义存取权限称为授权。
在关系数据库中,存取控制的对象不仅由数据本身(基本表中的数据、属性列上的数据),还有数据库模式(包括模式、基本表、视图和索引的创建等)
授予与收回
Grant <权限>
on <数据类型>
to <用户>
[with Grant option]
Revoke <权限>
on <数据类型>
from <用户>
[Cascade|Restrict]
(级联回收)
创建用户
create user < username > [WITH] [DBA|RESOURCE|CONNECT]
数据库的角色
数据库角色是被命名的一组与数据库擦欧总相关权限,角色是权限的集合。
1.角色的创建
create role < 角色名 >
2.给角色授权
grant < 权限 >
on < 对象类型 >
to < 角色 >
3.将一个角色授予其他的角色或用户
grant < 角色1 >
to < 角色2 >
[with admin option]
4.角色权限回收
revoke < 权限 >
on < 对象类型 >
from < 角色 >
密级标记规则
审计
问答
1. 什么是数据库中的自主存取控制方法和强制存取控制方法。
解答:自主存取控制方法: 定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。
强制存取控制方法: 每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。
自主存取控制中自主的含义是:用户可以将自己拥有的事取权限"自主"地授予别人。即用户具有一定的"自主"权。
第六章 关系数据理论
概念
关系模式的五元组:
R(U,D,DOM,F)
U: 一组属性
D: U中属性来自的域
DOM: 属性到域的映射
F: U上的一组数据依赖
数据依赖是一个关系内部属性与属性之间的一种约束关系。这种约束关系是通过属性值的相等与否体现出来的数据间的相关联系。
在许多数据依赖中,其中最重要的是函数依赖和多值依赖。
这就引出了规范化
函数依赖
函数依赖和别的数据依赖一样是语义范畴的概念,只能根据语义来确定一个函数依赖。
非平凡依赖,平凡依赖 与 完全函数依赖,部分函数依赖
eg,有一个表SC(Sno,Cno,Grade)
(Sno,Cno) —>Grade 非平凡
(Sno,Cno) —>Sno , (Sno,Cno) —>Cno 平凡
根据上面的例子,很明显Sno,Cno这两个属性是SC表的两个主码,只要知道了这两个属性就可以唯一确定一个成绩,而这个成绩不在我们的元组(Sno,Cno)中,所以称为非平凡的函数依赖。
但看到第二个例子,当我们确定了Sno和Cno之后,肯定能够唯一确定一个Sno和Cno的,而这两个属性又刚好属于元组(Sno,Cno)中,所以称为平凡的函数依赖。
正如上面的例6.3,我们看到在表SC(Sno,Cno,Grade,Sdept)中,这里的主码是Sno和Cno,但是(Sno,Cno) —> Grade,Sno—>Sdept。出现了一个是由Sno和Cno同时决定的所以我们将其叫做完全函数依赖,而另外一个只是由一个主码Sno来决定,所以称为部分函数依赖。
范式
关系数据库中的关系是要满足一定过要求的,满足不同程度要求的为不同范式。
分别是1NF,2NF,3NF,BCNF,4NF,5NF。(NF为范式)
一个低一级范式的关系模式分解可以转换为若干个高一级的范式的关系模式的集合,这种过程叫规范化。
2NF
3NF
BCNF
总结
1NF每个数据项都是不可再分割。
2NF,属于1NF,并且消除了部分函数依赖。
3NF,属于2NF,并且不存在传递函数依赖
BCNF,属于3NF,并且表R的候选码个数 等于 1。
第七章 数据库设计
数据库设计的基本步骤:
分为六个阶段
- 需求分析
重点在于“数据”和“处理”,通过调查、收集与分析,获得用户对数据库的如下要求:
(1)信息要求(2)处理要求(3)安全性与完整性要求 - 概念结构设计(得到基本表)
- 逻辑结构设计
- 物理结构设计(默认栈存储)
- 数据库实施
- 数据库运行与维护
每个阶段的描述:
关于联系的多重性,一个多对一的联系中允许多对多的情形。
子模式DDL是用来描述数据库的局部逻辑结构。
ER图向关系模型的转换
问答
1.简述数据库设计的过程。
数据库设计过程的6个阶段:
①需求分析;
②概念结构设计;
③逻辑结构设计;
④数据库物理设计;
⑤数据库实施;
⑥数据库运行和维护。