数据库相关知识
1、数据库的简单介绍
数据库是一个按数据结构来存储和管理数据的计算机软件系统 。
数据管理技术发展的三个阶段
- 人工管理阶段(20世纪50年代中期以前)
- 文件系统阶段(20世纪50年代后期至60年代中期)
- 文件系统的三个缺陷
- 数据冗余性
- 数据的不一致性
- 数据联系弱
- 文件系统的三个缺陷
- 数据库阶段(20世纪60年代后至今)
数据技术中的几个名词:
-
数据库:Data Base ,简称DB
-
数据:Data
-
数据库系统: Data Base System ,简称:DBS
-
数据库系统管理: Database Management System ,简称DBMS
-
数据库管理员: Database Administrator,简称DBA
-
数据库技术:是一门研究数据库构造、存储、管理、和使用的一门软件科学
2、’不好的关系模式’可能存在的问题?
- 数据冗余
- 更新异常
- 插入异常
- 删除异常
3、数据库的设计方法
- 规范设计
- 计算机辅助设计
- 直观设计法 又称单步逻辑设计
4、使用存储过程的优点?
- 提高运行速度
- 减少网络传输
- 可维护性高
- 增强安全性和扩展性
5、数据库模型
-
概念数据模型
-
逻辑数据模型
-
物理数据模型
-
结构数据模型三要素:关系数据结构、数据关系操作、数据完整性约束
典型的结构数据模型:
- 层次模型
- 网状模型
- 关系模型
6、数据库的设计过程
- 需求分析
- 概念设计阶段
- 逻辑设计阶段
- 物理设计阶段
- 数据库的实施操作阶段
- 数据的运行和维护阶段
7、SQL语言的动词
SQL功能 | 动词 |
---|---|
数据查询 | SELECT |
数据定义 | CREATE,DROP,ALTER |
数据操纵 | INSERT,UPDATE,DELETE |
数据控制 | GRANT,REVOKE |
8、数据库的故障
- 事务故障
- 系统故障
- 介质故障
9、sql默认排序
AESC:降序,ASC:升序
ORDER BY 字段1 DESC/ASC,字段2 DESC/ASC
SELECT commodity_name,cost_price FROM t_commodity ORDER BY cost_price ASC
10、数据库系统的特点
- 数据集成
- 数据共享性高
- 数据冗余小
- 数据一致性好
- 数据独立性高
- 实施统一管理与控制
- 减少应用程序的开发与维护的工作量
11、关系数据库对关系限定的具体要求
- 每一个属性都是不可分割的
- 每一个关系仅仅有一个关系模式
- 每一个关系模式的属性必须命名,属性不可以重复
- 同一个关系中不可以出现候选码或者候选键(主键)完全相同的元组
- 在关系中元组的顺序(行序)无关紧要
- 在关系中属性的顺序(列序)无关紧要
12、数据定义语言的功能
对数据库及数据库中的各种对象进行创建、删除、修改等操作
- 创建 create
- 删除 alter
- 修改 drop
13、完整性约束的对象及其含义
作用对象可以是列、元组和表
- 列级约束,是指对列的类型、取值范围、精度等的约束
- 元组约束,是指元组中的各个字段之间的相互约束
- 表级约束,是指若干元组之间、关系之间的联系的约束
14、游标
-
定义:在查询结果的记录集合中移动的指针
-
使用游标的场景:若sql语句返回多个元组,则使用游标
-
不使用的场景:
- 结果是一个元组的select语句
- insert、update、delete语句不适用游标
-
游标的使用过程
- 定义游标 declare
- 打开游标 open
- 读取数据 fetch
- 关闭游标 close
- 删除游标 free
注:如果游标被删除(free)后,就不能在打开(open)了
15、数据库的完整性
- 定义:数据完整性是指数据的正确性、相容性和有效性
- 破坏数据完整性的操作:数据的添加、删除、修改
- 完整性规则:
- 域完整性规则—-列的约束
- 是指数据列必须满足某种疼的数据约束,约束一个列的输入的有效性。一般包含:是否允许为空、限制类型(数据类型)、取值范围、默认值、是否唯一
- 实体完整性规则—-行的约束
- 是指数据表中的所有的行唯一,实体完整性要求数据表的每一行都有一个唯一的标识符,一般包括一列值唯一、或者多列值唯一
- 参照完整性规则—-表的约束
- 是指数据表间数据的引用关系即参照关系,涉及两个以及两个以上表数据的一致性
- 域完整性规则—-列的约束
16、数据库的安全性
定义:是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏
- 安全性控制的一般方法:
- 用户标识与鉴定
- 存取控制
- 定义视图
- 审计
- 数据加密
17、事务
- 事务的概念:事务是由一系列操作序列构成的程序执行单元,这些操作要么都做,要么都不做,是一个不可分割的工作单位。
- 事务以 Begin transaction 开始 , 以 commit 或 rollback结束
- commit:表示提交,事务的正常结束
- rollback:表示非正常结束,撤销已做的操作,回滚到事务开始的状态
- 事务的性质(ACID原则)
- 原子性(Atomicity)
- 事务中包含的所有操作要么都做,要么都不做。原子性由恢复机制实现
- 一致性(Consistency)
- 事务的隔离执行必须保证数据库的一致性。事务开始前,数据库处于一致性状态;事务结束后,数据库必须处于抑制状态。数据库的一致性状态由用户来负责。
- 隔离性(Isolation)
- 系统必须保证事务不受其他并发执行事务的影响。对任何一对事务T1,T2,在T1看来,T2要么在T1开始之前就已经结束,要么在T1完成之后再开始执行。隔离性通过并发控制机制实现
- 持久性(Durability)
- 一个事务一旦提交之后,它就对数据的影响必须是永久的。系统发生故障也不能改变事务的持久性。持久性通过恢复机制来实现
- 原子性(Atomicity)
- 事务的调度
- 事务调度的概念:事务执行的顺序称为一个调度,表示事务的指令在系统中执行的时间顺序
- 事务调度的类型
- 串行调度
- 并行调度 (在保证一致性的前提下可以最大限度的提高并发度)
18、数据的并发控制
-
并发操作产生数据不一致性的原因
- 数据丢失
- 两个事务
T1
和T2
一起,读入同一数据并修改,T2
提交的结果破坏了T1
提交的结果,导致T1
的修改丢失
- 两个事务
- 不可重复读
- 事务
T1
读取了数据后,事务T2
对其进行了更新操作,就使得T1
无法再现前一次的读取结果。具体分为三种情况:- 事务
T1
读取某一数据后,事物T2
对其做了修改,当事务T1
再次读取数据时,与前一次不同 - 事务
T1
按一定条件从数据库获取某些数据后,事务T2
对其进行了删除操作,删除了其中部分记录,当T1
再以相同的条件读取数据的时候,发现某些数据就神秘的消失了 - 事务
T1
按一定的条件从数据中读取某些数据后,事务T2
对其插入了一些新的数据,导致事务T1
按相同的条件读取数据时,发现多了一些记录 - 注:(第二和第三条也称幻读现象)
- 事务
- 事务
- 读脏数据
- 事务
T1
修改了某一数据,并将其写回了磁盘,事务T2
读取同一数据后,T1
由于某种原因被撤销,这时T1
已修改过的数据恢复了原值,T2
读到的数据就与数据库中的数据不一致,则T2
读到的数据为”脏”数据,即不准确的数据
- 事务
- 数据丢失
-
封锁
- 封锁的定义:一个事务对某个数据对象进行加锁,取得对它的一定的控制,限制其他事务对该对象数据的使用
(并发控制的基本方法就是封锁)
- 封锁的类型
- 排它锁(X锁,eXclusive lock)
- 事务T对数据对象R加上X锁,则其它事务对R的任何封锁请求都不能成功,直到T释放R的X锁
- 共享锁(S锁,Share lock)
- 事务T对数据对象R加上S锁,则其它事务对R的X请求不能成功,而对R的S请求可以成功
- 排它锁(X锁,eXclusive lock)
-
封锁协议(封锁的级别)
封锁的级别又称为一致性级别或隔离度。由各种锁的类型预期封锁的不同的封锁级别
- 0级封锁
- 封锁的事务不重写其它非0级封锁事务的未提交的更新数据
- 1级封锁
- 被封锁的事务允许重写未提交的更新数据。防止数据丢失修改的发生
- 2级封锁
- 被封锁事务即不重写也不读取未提交的更新数据,这除了1级封锁的效果外还防止了读取脏数据
- 3级封锁
- 被封锁的事务不读未提交的更新数据,不写任何未提交数据
- 0级封锁
19、数据库的恢复
数据库可恢复性定义:系统能把数据从被破坏、不正确的状态,恢复到最近的一个正确的状态,从而保证数据库的一致性。DBMS的这种能力称为数据库的可恢复性
恢复的基本原理是冗余,即数据库中任何一部分数据可以根据存储在系统别的冗余数据来重建
20、数据库视图的优点
- 集中分散数据
- 简化查询语句
- 重用SQL语句
- 保护数据安全
- 共享所需数据
- 更改数据格式
其他
- 客观存在并且可以相互区别的”事务”称为实体
- 活锁问题,一种简单的办法先入先出
原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/244914.html