第一章
基本概念
• 数据(Data)
描述事物特征的符号记录
• 数据库(Database)
数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合
• 数据库管理系统(DBMS)
数据库管理系统(Database Management System,简称DBMS) 是管理(组织、存储、获取和维护)数据库中数据的位于用户与操作系统之间的一层数据管理软件
• 数据库系统(DBS)
计算机系统中引入数据库后的系统
数据模型三要素(数据结构,数据操作,数据约束)
数据结构:主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在数据结构上。
数据操作:主要描述在相应的数据结构上的操作类型和操作方式。数据操作是对系统动态特性的描述。
数据约束:主要描述数据结构内数据间的语法、词义联系、它们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。
三个阶段
人工管理阶段、文件系统阶段和数据库系统阶段。
在人工管理阶段,数据量较小,且数据独立性差。用户需要直接管理数据,没有专门的软件进行数据管理。
随着技术的发展,数据管理进入到了文件系统阶段。在这个阶段,数据以文件形式存储,并由操作系统中的文件系统进行管理。尽管数据可以存储在直接存取的存储设备上,但数据的冗余度高,且管理维护困难。
最后,数据库系统阶段的到来使得数据管理变得更加高效和方便。专门的数据库软件系统,如DBMS(数据库管理系统),用于统一管理和控制数据。这个阶段的数据具有高度的结构化、共享性好、冗余度低、独立性高等特点。
数据库阶段优缺点(高共享,数据独立性,数据结构化,DBMS统一控制)
一、数据的高共享性的好处
降低数据的冗余度,节省存储空间
避免数据间的不一致性
使系统易于扩充
二、数据独立性
物理独立性
指数据库系统的应用程序与数据库的物理(存储)结构是相 互独立的。当数据的物理结构改变了,应用程序不需要改变。
逻辑独立性
指数据库系统的应用程序与数据库的逻辑结构是相互独立的。 数据的逻辑结构改变了,应用程序不需要改变。
三、数据结构化
数据的结构用数据模型描述,无需在应用程序中定义和解释;
数据可以扩展;
数据的最小存取单位是数据项。
四、DBMS对数据统一控制和管理
安全性保护、完整性检查、并发控制、数据库恢复
三级模式结构,概念(内模式,模式,外模式)
模式,也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个模式,模式位于三级结构的中间层。
外模式,也称为用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。外模式是模式的子集,一个数据库可以有多个外模式。
内模式,也称为存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。一个数据库只有一个内模式。
三种主要数据模型(层次,网状,关系)
三种主要数据模型是层次模型、网状模型和关系模型。
层次模型:使用树形结构描述实体间的关系。数据以结点形式存储,每个结点表示一个记录或实体,记录之间的联系用结点之间的连线表示。层次模型具有有且只有一个根结点、其他结点有且仅有一个父结点等特征。
网状模型:用图结构描述实体间的关系,其中每个结点代表一个记录类型,联系用链接指针实现。网状模型可以表示多个从属关系的联系,也可以表示数据间的交叉关系,即数据间的横向关系与纵向关系,它是层次模型的扩展。
关系模型:以二维表形式描述实体间的关系,即以表格的形式组织和操作数据。在关系模型中,操作的对象和结果都是二维表。关系模型是目前最流行的数据库模型,支持关系模型的数据库管理系统称为关系数据库管理系统,如Access等。
数据库完整性、数据库安全性(概念)
数据库完整性是为了确保数据的正确性、一致性和相容性,防止错误的数据进入数据库。
定义完整性约束条件:允许用户定义数据的完整性规则,如实体完整性和引用完整性。
检查完整性约束:在数据插入、更新或删除时,自动检查是否违反了完整性约束条件。
触发器与存储过程:当违反完整性约束条件时,可以自动执行某些操作,如回滚事务或生成错误消息。
完整性约束条件定义机制
PRIMARY KEY, NOT NULL, UNIQUE
FOREIGN KEY定义外码,或者用REFERENCES短语指明这些 外码参照了哪些主码
ALTER TABLE Courses
ADD FOREIGN KEY (student_id) REFERENCES Students(student_id);
完整性检查机制违约处理
外码能否可以接受空值
在被参照关系(主码所在的关系)中删除元组时
级联删除:将参照关系中外码值与被参照关系中要删除元组主 码值相对应的元组一起删除。
受限删除:当参照关系中没有任何元组的外码值与要删除的被 参照关系的元组的主码值相对应时,系统才执行删除操作,否则拒绝 此删除操作。
置空值删除:删除被参照关系的元组,并将参照关系中与被参照关系中被删除元组主码值相等的外码值置为空值。
在参照关系中插入元组时
⑴受限插入:仅当被参照关系中存在相应的元组,其主码值与参照关 系插入元组的外码值相同时,系统才执行插入操作,否则拒绝此操作。
⑵递归插入:首先向被参照关系中插入相应的元组,其主码值等于参 照关系插入元组的外码值,然后向参照关系插入元组。(先建再插)
修改关系中主码时
级联、受限、置空
数据库安全性是为了保护数据库以防止不合法用户故意造成的破坏,以及防止不合法的使用造成的数据泄密、更改或破坏。
实现数据库系统安全性的技术有哪些
用户身份鉴别、数据库角色
存取控制
自主存取控制方法
用户对不同的数据对象有不同的存取权限;
不同的用户对同一对象也有不同的权限;
用户还可将其拥有的存取权限转授给其他用户
强制存取控制方法
每一个数据对象被标以一定的密级;
每一个用户也被授予某一个级别的许可证;
对于任意一个对象,只有具有合法许可证的用户才可以存取。
授权:授予与回收
GRANT/REVOKE语句
视图实现安全性的原理
视图机制与授权机制配合使用,首先采用视图机制屏蔽掉一部分保密数据,在视图上面再进一步定义存取权限,间接实现了部分数据的用户权限定义
审计技术的作用
启用一个专用的审计日志(Audit Log),将用户对数 据库的所有操作记录在上面
DBA可以利用审计日志中的追踪信息找出非法存取数据的人
事务的概念
事务(Transaction)是用户定义的一个数据库操作序 列,这些操作要么全做,要么全不做,是一个不 可分割的工作单位
ACID特性
原子性
事务中包括的诸操作要么都做,要么都不做
一致性
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态
隔离性
对并发执行而言一个事务的执行不能被其他事务干扰
持续性
一个事务一旦提交,它对数据库中数据的改变就应该是永久性的
故障的种类
事务故障:UNDO故障事务
系统故障:UNDO故障事务和REDO已提交事务
介质故障:装入数据库副本和REDO已提交事务
数据转储,登记日志文件
数据库恢复的作用:
数据库恢复保障事务的哪些特性:ACID
恢复的基本原理:利用存储在后备副本、日志文件和数据 库镜像中的冗余数据来重建数据库
恢复中最经常使用的技术:数据库转储和登记日志文件;
提高恢复效率的技术:检查点,镜像
第十一章
并发操作导致数据不一致性:(丢失修改)(不可重复读)(读“脏”数据)
并发控制的作用
保证事务的隔离性;
保证数据库的一致性。
并发事故种类
活锁,先来先服务
死锁,超时法,等待图法
并发调度的可串行性
同一事务内部:操作不能改变顺序原来的顺序;
不同事务之间:冲突操作不能交换顺序,非冲突操作可以交换顺序
两段锁协议概念和作用
在第一阶段,事务可以对任何数据对象申请加锁,但不能释放任何锁。这一阶段也被称为扩展阶段。在第二阶段,事务可以释放之前获得的锁,但不能再次申请加锁。这一阶段也被称为收缩阶段。
封锁的粒度越大,系统被封锁的对象越少,并发度越小,系统开销越小