关系数据库系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库管理系统是数据库系统的核心
数据库系统是在文件系统的基础上发展而来的
数据库最大的特点是“数据的三级抽象和二级独立”
数据库是存储在计算机内有结构的数据集合
数据库应用系统包括数据库和数据库应用程序
关系数据库系统: 是支持关系模型的数据库系统
数据模型的三要素是: 数据结构、数据操作和数据完整性
关系模型的组成
1. 关系数据结构
2. 关系操作集合
3. 关系完整性约束
关系模型中常用的关系操作: 选择、投影、并、差、笛卡尔积是5种基本操作
关系操作的特点: 集合操作方式,即操作的对象和结果都是集合
关系代数
是一种抽象的查询语言
用对关系的运算来表达查询
关系代数运算的三个要素
运算对象:关系
运算结果:关系
运算符:四类关系代数运算符
关系运算的分类:分为传统的集合运算和专门的关系运算
SQL的功能特点
数据查询
数据定义(DDL)
数据操纵(DML)
数据控制(DCL)
约束条件类型
⏹PRIMARY KEY(主键约束)
⏹UNIQUE(惟一约束)
⏹NOT NULL(非空约束)
⏹FOREIGN KEY(外键约束)
⏹CHECK(检查约束)
建立索引的目的:基本表上建立一个或多个索引,以提供多种存取路径,加快查找速度。
数据库异常问题
1.冗余太大
2.插入异常
3.删除异常
4.修改异常
数据依赖:是一个关系内部属性与属性之间的一种约束关系,是语义的体现。分为函数依赖和多值依赖。
泛关系模式:就是最初设计的关系模式,或者说是存在异常问题的关系模式。
数据库模式:根据范式理论,将不符合用户需求的泛关系模式分解成一系列的关系集合。
若R∈1NF,且R中的每一个非主属性都完全函数依赖于R的任一候选码,则R∈2NF。
⏹如果关系模式R∈BCNF,必定有R∈3NF
⏹如果R∈3NF,且R只有一个候选码,则R必属于BCNF。
任何的二元关系必定是BCNF
⏹查询优化:从查询的多个执行策略中进行合
理选择的过程。
⏹查询优化的分类:代数优化和物理优化
数据保护也叫数据控制,主要包括:
●数据库恢复
●并发控制
●数据的安全性
●数据的完整性
事务(Transaction)
是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
⏹事务可以是一组SQL语句、一条SQL语句或整个程序,在通常
情况下,一个应用程序里包含多个事务。
⏹事务生成:
⏹用户显式地定义事务
⏹由DBMS按缺省自动划分事务
事务的特性
1.原子性(Atomicity)
一个事务中对数据库的操作,是一个不可分割的整体。
2.一致性(Consistency)
数据不会因事务的执行而遭受破坏。
3.隔离性(Isolation)
在多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果一样。
4.持久性(Durability)
一个事务一旦完成全部操作,它对数据库的所有更新应永久地反映在数据库中。
事务是数据库恢复和并发控制的基本单位
数据库故障恢复的基本单位是事务,因此在数据恢复时主要使用事务撤销(UNDO)与事务重做(REDO)两个操作。
⏹ 1. 事务级故障
⏹事务内部执行所产生的逻辑错误与系统错误,它
由诸如数据输入错误、数据溢出、资源不足以及死锁等
引起,使得事务尚未运行到终点即告夭折。
⏹ 2. 系统级故障
⏹指造成系统停止运转的任何事件,使得系统要重
新启动,通常称为软故障。
⏹ 3. 介质级故障
⏹也称为硬故障(Hard Crash),如磁盘损坏、磁
头碰撞、瞬时强磁场干扰等。这类故障将破坏数据库或
部分数据库。
数据转储的概念
转储即DBA定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些备用的数据文本称为后备副本(backup)或后援副本。(1)静态转储:是在系统中无运行事务时进行的转储操作。静态转储得到的一定是一个数据一致性的副本。
(2)动态转储:是指转储期间允许对数据库进行存取或修改。即转储和用户事务可以并发执行。
3、海量转储和增量转储
(1)海量转储:每次转储全部数据库。
(2)增量转储:每次只转储上一次转储后更新过的数据
日志文件(log file)—用来记录事务对数据库的更新操作的文件。日志文件的作用
进行事务故障、系统故障恢复,并协助后备副本进行介质故障恢复。
系统故障的恢复:
恢复操作:
要撤销故障发生时未完成的事务(撤销队列进行UNDO)
重做已完成的事务(重做队列进行REDO)
介质故障的恢复需要DBA介入。
动态维护日志文件的方法是周期性地执行: 建立检查点,保存数据库状态
⏹具体步骤:
①将当前所有日志记录写入磁盘日志文件上;
②在日志文件中写入一个检查点记录;
③将当前所有数据记录写入磁盘的数据库中;
④把检查点记录在日志文件中的地址写入一个重新开始文件。
⏹在数据库系统中,为了提高性能,多个事务并发执行是必要的。
●提高CPU和硬盘的使用效率,从而增加事务的吞吐率。
●减少事务的平均响应时间(即等待CPU的时间),短时间
事务无需等待长时间事务。
并发操作—在多用户共享系统中,多个用户同时存取同一数据的情形称为并发操作。
⏹并发操作可能带来的问题:
(1)破坏数据库的一致性
(2)破坏事务的隔离性
⏹并发控制的主要技术有封锁(Locking)、时间戳(Timestamp)
和乐观控制法,商用的DBMS一般都采用封锁方法。
封锁:指事务T在对某个数据对象操作之前,对其加锁。在T未释放锁之前,其他的事务不能更新此数据对象。
封锁协议:对数据对象加锁时,约定的规则。