学习了数据库概论,以下是一些自我总结的知识点:
1、了解术语
DBMS:数据库管理系统 SQL:结构化查询语言
DBS:数据库系统 DDL:数据库定义语言(定义模式、外模式、内模式)
DBA:数据库管理员 DML:数据操纵语言(对数据进行查询、插入、删除、修改)
2、数据库系统(DBS):包括数据库(DB)和数据库管理系统(DBMS)
小结:所有的DBMS都是遵照一定的数据模型设计的。,数据模型是对数据特征的抽象,是现实世界的模拟。
3、数据库系统组成:数据库、数据库管理系统、应用程序、数据库管理员
4、数据库管理三个阶段:人工阶段、文件系统阶段、数据库系统阶段
5、数据库系统特点:
(1)结构化
(2)共享性高,冗余度低且易扩充
(3)数据独立性高
①物理独立性
②逻辑独立性
(4)数据由数据库管理系统统一管理和控制
①数据的安全性保护
②数据的完整性检查
③并发控制
④数据库恢复
6、数据库模型:对现实世界书局特征的抽象,是数据库系统的核心和基础
7、数据模型的组成要素:数据结构、数据操作、数据的完整性约束条件
8、术语的对应关系:
关系——表 元组——行 属性——列 关系模式——表头
9、关系完整性三大类
实体完整性:主码的属性不能取空值
参照完整性
用户自定义完整性
9、数据库系统的三级模式、两级映像
外模式(用户模式)——用户级
模式(逻辑模式)——概念级
内模式(存储模式)——存储级
外模式/模式 的映像和 模式/内模式 的映像
10、关系的三种类型:
基本关系(基本表):实际存在的表
查询表:查询结果对应的表
视图表:由基本表或其他视图表导出的表,是虚表
11、关系模式:关系的描述。
在关系数据库中,关系模式是型,关系是值。
12、集合运算:
并(RUS):由属于R或属于S的元组(行)组成
差(R-S):属于R而不属于S
交:既属于R又属于S
笛卡尔积(R*S):R中的每个元组分别去匹配S中的元组,产生的结果个数=R的元组个数*S的元组个数
13、关系运算:
选择:行的运算
投影:列的操作
连接:先笛卡尔积再取满足条件的元组(行)
除
14、视图:简化用户的操作
with check option:保证更新、插入、删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)
with read only:将视图设置成只读。禁止在视图中执行insert、update、delete等操作
15、视图的作用(视图的优点):
(1)视图能够简化用户操作
(2)视图使用户能以多种角度看待同一数据
(3)视图对重构数据库提供了一定程度的逻辑独立性
(4)视图能够对机密数据提供安全保护
(5)适当利用视图可以更清晰的表达查询
16、什么是基本表?什么是试图?两者的区别与联系。
基本表:本身独立存在的表,在SQL中一个关系对应一个表
视图:从基本表或视图上导出的表
17、哪类视图可更新?哪类不可更新?
(1)基本表的行列子集视图可更新。
(2)若视图的属性来自集函数表达式,则肯定不能更新。
18、数据库的完整性:正确性和相容性。
(1)primary key(主键):唯一且不能为null
(2)foreign key(外键):外键列数据必须在主表的主键列存在或为null
(3)unique(唯一):值不能重复,但是可以为null
(4)not null:该列不能为空,必须插入数据 注意:not null约束只能在列级上定义
(5)check(检查):限制插入数据要满足的条件
(6)default(默认):默认条件
19、什么是列级定义?什么是表级定义?
列级定义:在定义列的同时定义约束
表级约束:在定义了所有列后,再定义约束
20、触发器(trigger):是用户定义在关系表上的一类由事件驱动的特殊过程。事件——条件——事件。
注意:只能定义在基本表上,不能定义在视图上。
21、数据的完整性和安全性的区别与联系
完整性:防止数据库中存在不符合语义的数据,防止错误信息的输入和输出。
安全性:保护数据库防止恶意的破坏和非法的存取。
区别:安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。
22、什么是数据库的完整性约束条件?
数据库中的数据应该满足的语义约束条件。
23、一个不好的关系模式会出现什么问题?
大量 的数据冗余、更新异常、插入异常、删除异常
24、候选码:能唯一标识一个元组的属性。
25、主码:若一个关系中有多个候选码。则选其中一个作为主码。
26、外码(外键):其他关系中的主码。
27、全码(All-key):整个属性组都是码。
28、主属性:主码的属性。
29、超码:一个或多个属性的集合,这些属性可以让我们在一个实体集中唯一地标识一个实体、
注意:候选码是从超码中选出的,候选码是最小的超码。
30、数据库设计的基本步骤:
(1)需求分析
(2)概念结构设计(ER图)
(3)逻辑结构设计(关系模式)
(4)物理结构设计
(5)数据库实施
(6)数据库运行和维护
31、数据字典:是进行详细的数据收集和数据分析所获得的主要成果(出现在需求分析阶段),包括:
数据项:不可再分的数据单位
数据结构:反映了数据之间的组合关系
数据流:数据结构在系统内传输的路径
数据存储:数据结构停留或保存的地方
处理过程:处理过程的具体处理逻辑一般用判定表或判定树来描述
32、聚集函数:只能用于select子句和group by 中的having子句。
33、where子句和having短语的区别:作用对象不同。
where:作用于基本表或视图。
having:作用于元组。
34、事务:用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
commit 提交
rollback 回退(没有提交前可用)
save point(时间点):保存点
rollback to point(时间点):回退到(时间点)
35、事务的ACID 特性:
原子性(Atomicity):要么都做,要么都不做
一致性(Consistency):事务的执行结果必须是使数据库从一个一致性状态变成另一个一致性状态
隔离性(Isolation):一个事务的执行不能被其他事务干扰
持续性(Durability):一个事务一旦提交,对数据库中数据的改变是永久的
36、交叉并发方式:实际上是这些并行事务的并行操作轮流交叉运行。
37、同时并发方式:多个处理机可以同时运行多个事务,实现多个事务真正的并行运行。
38、事务是并发控制的基本单位。
并发控制的主要技术:封锁、时间戳、乐观控制法、多版本并发控制。
39、封锁:实现并发控制的一个非常重要的技术。
排他锁(写锁)X,对事务T加上X锁,只允许T读取修改A。
共享锁(读锁)S,对事务T对象A加上S锁,T可以读A但不能改。
40、封锁协议
(1)一级封锁协议:(解决的问题:丢失修改)
事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。
(2)二级封锁协议:(解决的问题:丢失修改和读脏数据)
在一级封锁协议基础上增加食物T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。
(3)三级封锁协议:(解决的问题:全都是)
在一级封锁协议基础上增加食物T在读取数据R之前必须先对其加S锁,直到事务结束才释放。
41、数据库系统如何实现数据独立性?
在三级模式之间提供二级映像。
42、数据的独立性包括什么?
物理独立性:指用户的应用程序与数据库中数据的物理存储是相互独立的。
逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。
43、范式
1NF:所有属性都是不可拆分的基本数据项。
2NF:属于第一范式,且每一个非主属性完全函数依赖于任何一个候选码。
3NF:属于第二范式,且所有飞主属性都不传递依赖于码,也不部分依赖于码。
BCNF:每一个决定因素都包含码。
小结:一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这个过程叫关系模式的规范化。
1NF
↓ 消除非主属性对码的部分函数依赖
2NF
↓ 消除非主属性对码的传递函数依赖
3NF
↓ 消除主属性对码的部分和传递函数依赖
BCNF
44、模式分解——投影分解
步骤:
(1)首先,对组成码的属性集合的每一个子集,用它作为主码构成一个表。
(2)然后,将依赖于这些码的属性放置到相应的表中。
45、视图消解:
(1)进行有效性检查
(2)转换成等价的对基本表的查询
(3)执行修正后的查询
46、更新视图
视图是不实际存储数据的虚表,所以视图的更新最终要转换成对基本表的更新,且一般行列子集视图是可更新的。
47、为什么要学习PL/SQL?
(1)提高应用程序的运行性能
(2)模块化的设计思想
(3)减少网络传输量
(4)提高安全性
缺点:移植性不好。
48、应该选用怎样的DBMS?
取决于项目的规模
(1)负载量有多大(用户的数量)
(2)成本
(3)对安全性的要求
49、Oracle中char和varchar2的区别:
char(10):给10个空间,要占满(用空格代替),查询效率高。
varchar2(10):给10个空间,不一定要占满,用多少占多少,节省空间。
50、现实世界 ———————— 信息世界 ———————— 机器世界
↓ ↓
建立的是概念 建立的是逻辑
模型(E-R)图 模型和物理模型
51、逻辑模型:层次、网状、关系
①每一种模型的数据结构、数据操作、数据约束是不一样的。
②数据结构是:关系,也就是表,所有的数据储存在表中,所有操作的结果就是表。
数据库——实践篇结构化查询语句SQL参考:https://blog.csdn.net/weixin_37590454/article/details/81227763