数据库复习纲要

  • 格式:docx
  • 大小:23.43 KB
  • 文档页数:2

数据:数据(Data)是数据库中存储的基本对象,描述事物的符号记录
数据库:数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的数据集合。

数据库的特征:数据按一定的数据模型组织、描述和储存。

可为各种用户共享。

冗余度较小。

数据独立性较高。

易扩展。

数据库系统:是指在计算机系统中引入数据库后的系统构成。

数据库管理系统:是位于用户与操作系统之间的一层数据管理软件。

完整性规则:是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。

关系数据库:是支持关系模型的数据库系统。

关系数据结构:1.单一的数据结构----关系,现实世界的实体以及实体间的各种联系均用关系来表示。

2.数据的逻辑结构----二维表。

从用户角度,关系模型中数据的逻辑结构是一张二维表。

笛卡尔积:给定一组域D1,D2,…,Dn,这些域中可以有相同的。

D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1, d2, … , dn)|di Di,i=1, 2, … , n}
候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码
关系的完整性:实体完整性:若属性A是基本关系R的主属性,则属性A不能取空值。

参照完整性:参照完整性规则就是定义外码与主码之间的引用规则。

参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关
系S的主码Ks相对应(基本关系R和S不一定是不同的
关系),则对于R中每个元组在F上的值必为:或者取空
值(F的每个属性值均为空值)或者等于S中某个元组的
主码值。

用户定义的完整性:用户定义的完整性是针对某一具体关系数据库的约束条
件,反映某一具体应用所涉及的数据必须满足的语义要
求。

视图:定义:是从一个或者几个基本表导出的表,是用户可以从一个特定的角度来查看数据库中的数据,它与基本表不同,是一个虚表,即视图锁对应的数据不进行实际存储。

优点:视图能够集中数据,简化用户的数据查询和处理。

视图便于用户共享数据。

视图提高了数据的逻辑独立性。

视图能够对机密数据提供安全保护。

常用完整性约束
主码约束:PRIMARY KEY
参照完整性约束
唯一性约束:UNIQUE
非空值约束:NOT NULL
取值约束:CHECK
[例1] 建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。

其中学号不能为空,值是唯一的,并且姓名取值也唯一。

CREATE TABLE Student
(Sno CHAR(5) NOT NULL UNIQUE,
Sname CHAR(20) UNIQUE,
Ssex CHAR(1) ,
Sage INT,
Sdept CHAR(15));
修改基本表:ALTER TABLE <表名>
[ ADD <新列名><数据类型> [ 完整性约束] ]
[ DROP <完整性约束名> ]
[ MODIFY <列名><数据类型> ];
删除基本表:DROP TABLE <表名>;
各类范式的定义及区别
1.如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。

第一范式是对关系模式的最起码的要求。

不满足第一范式的数据库模式不能称为关系数据库。

但是满足第一范式的关系模式并不一定是一个好的关系模式。

2.若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于R的码,则R∈2NF。

采用投影分解法将一个1NF的关系分解为多个2NF的关系,可以在一定程度上减轻原1NF 关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。

3.关系模式R<U,F>中若不存在这样的码X、属性组Y及非主属性Z(Z Y), 使得X→Y,Y →X,Y→Z,成立,则称R<U,F>∈3NF。

4.BCNF是由Boyce和Codd提出的,比3NF更进了一步。

通常认为BCNF是修正的第三范式,所以有时也称为第三范式。

BCNF的定义:设关系模式R<U,F>∈1NF,如果对于R的每个函数依赖X→Y,若Y不属于X,则X必含有候选码,那么R∈BCNF。

如果一个关系模式是4NF,则必为BCNF。

数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。

数据库的并发控制:
事务的特性:1.原子性事务是数据库的逻辑工作单位2.一致性事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

3.隔离性一个事务的执行不能被其他事务干扰。

4. 持续性持续性也称永久性
封锁:封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁。

加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。

活锁:如何避免活锁:采用先来先服务的策略
当多个事务请求封锁同一数据对象时,封锁子系统按请求封锁的先后次序对这些事务排队
该数据对象上的锁一旦释放,首先批准申请队列中第一个事务获得锁。

死锁:死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都请求对已为其他事务封锁的数据对象加锁,从而出现死等待。

预防:一次封锁法要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行。

(降低并发度)顺序封锁法是预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。

(维护成本高)
数据库设计的步骤:需求分析阶段
概念结构设计阶段
逻辑结构设计阶段
数据库物理设计阶段
数据库实施阶段
数据库运行和维护阶段。