一、数据库系统概论
(1)数据库的四个基本概念
数据:描述事物的符号记录,数据和关于数据的解释是分不开的,数据的解释是指对数据含义的说明。
数据库DB:存放数据的仓库,长期存储在计算机内,有组织的,可共享的大量数据的集合。
数据库管理系统DBMS:用于科学的组织和存储数据,高效的获取和维护数据的系统软件。
数据库系统DBS:在计算机系统中引入数据库后的系统,一般由数据库,数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
(2)数据库管理技术的产生和发展
(3)DBMS在计算机系统中的地位
(4)常见的数据库
(5)DBMS的主要功能
二、数据模型
(1)模型
(2)概念模型:是现实世界到数据模型的一个中间层次,用于信息世界建模,是数据库设计的有力工具,是数据库设计人员和用户之间进行交流的语言
①客观对象的抽象过程---两步抽象:现实世界中的客观对象抽象为概念模型;把概念模型转换为某一DBMS支持的数据模型。
②概念模型的基本概念:
实体,属性,码,域,实体型,实体集,联系
实体集(Entity set):同型实体的集合
联系(Relationship):不同实体间的联系,现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系:一对多、一对一、多对多
实体(Entity):客观存在并可相互区别的事物称为实体,可以是具体的人、事、物或抽象的概念。
属性(Attribute):实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。
码(Key):唯一标识实体的属性集称为码
域(Domain):属性的取值范围称为该属性的域。
实体型(Entity Type):用实体名及其属性名集合来抽象和刻画,同类实体称为实体型
③E-R模型
ER图基本概念
¤ 矩形:表示实体型
¤ 椭圆:表示属性,加下划线表示是主码属性
¤ 菱形:表示联系集
¤ 线段:将属性连接到实体集或将实体集连到联系集
¤ 双椭圆:表示多值属性
¤ 虚椭圆:表示派生属性
(3)逻辑模型:层次模型、网状模型、关系模型
数据模型的组成要素:数据结构、数据操作、数据约束条件
(4)物理模型
三、关系模型
(1)关系模型的数据结构
• 关系模型的基本概念
¤ 关系(Relation)
一个关系对应通常说的一张表。
¤ 元组(Tuple)
表中的一行即为一个元组。
¤ 属性(Attribute)
表中的一列即为一个属性,给每一个属性起一个名称即属性名。
¤ 分量
元组中的一个属性值。
候选码(Candidatekey):若关系中的某一(最小)属性组的值能唯一地标识一个元组,则该(最小)属性组称为候选码。
主码(Primary key):若关系中有多个候选码,则选定其中的一个为主码。
主属性(Primeattribute):候选码的诸属性称为主属性。
非主属性(Nonprimaryattribute):不被任何候选码包含的属性。
全码(All-key):关系模式的所有属性都是这个关系模式的候选码
关系模式:对关系的描述称为关系模式。可以形式化的表示为:R(U,D,dom,F),简记: R(U),或者R(A1,A2,…An)
(3)关系模型中三类完整性约束:实体完整性、参照完整性(两个不变性)、用户定义的完整性
四、数据库系统结构
• 数据库系统结构
¤ 数据库系统的模式结构
• 数据库系统模式的概念
• 数据库系统的三级模式结构
• 数据库的二级映象功能与数据独立性
¤ 数据库系统外部的体系结构
• 单用户数据库系统
• 主从式结构的数据库系统
• 分布式结构的数据库系统
• 客户/服务器结构的数据库系统
• 浏览器/应用服务器/数据库服务器结构
• 数据库系统的组成
¤ 硬件要求;软件要求;人员组成
• 数据库技术的研究领域
¤ 数据库管理系统软件的研制;数据库设计;数据库理论
• 模式
¤ 是数据库的中心与关键
¤ 独立于数据库的其它层次
¤ 设计数据库模式结构时应首先确定数据库的逻辑模式
• 内模式
¤ 依赖于全局逻辑结构,但独立于数据库的用户视图即外模式,也独立于具体的存储设备。
它将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率
• 外模式
¤ 面向具体的应用程序,定义在逻辑模式之上,但独立于存储模式和存储设备
¤ 设计外模式时应充分考虑到应用的扩充性。当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式就得做相应改动
¤ 应用程序在外模式是描述的数据结构上编制的,它依赖于特定的外模式,与数据库的模式和存储结构独立。
¤ 不同的应用程序有时可以共用同一个外模式。
• 二级映像
¤ 保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改。
¤ 数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去。
数据库设计的基本步骤
• 需求分析阶段
¤ 准确了解与分析用户需求(包括数据与处理)
¤ 是整个设计过程的基础,是最困难、最耗费时间的一步
• 概念结构设计阶段
¤ 是整个数据库设计的关键
¤ 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型
• 逻辑结构设计阶段
¤ 将概念结构转换为某个DBMS所支持的数据模型并对其进行优化
• 数据库物理设计阶段
¤ 为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)
• 数据库实施阶段
¤ 运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果
• 建立数据库
• 编制与调试应用程序
• 组织数据入库
• 试运行
• 数据库运行和维护阶段
¤ 数据库应用系统经过试运行后即可投入正式运行。
¤ 在数据库系统运行过程中必须不断地对其进行评价、调整与修改。
• 逻辑结构设计任务:将概念结构转化为具体的数据模型
• 逻辑结构设计的步骤
¤ 将概念结构转化为一般的关系、网状、层次模型
¤ 将转化来的关系、网状、层次模型向特定DBMS支持下的数据模型转换
¤ 对数据模型进行优化
¤ 设计用户子模式
• E-R图向关系模型的转换内容
将E-R图转换为关系模型:将实体、实体的属性和实体之间的联系转化为关系模式。
• E-R图向关系模型的转换原则
¤ ⒈ 一个实体型转换为一个关系模式。
¤ ⒉ 一个m:n联系转换为一个关系模式。
¤ ⒊ 一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
¤ ⒋ 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
¤ 三个或三个以上实体间的一个多元联系转换为一个关系模式。
¤ ⒍ 同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n和m:n三种情况分别处理。
¤ ⒎ 具有相同码的关系模式可合并。
• 优化数据模型的方法
¤ 确定数据依赖
¤ 对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
¤ 确定各关系模式分别属于第几范式。
¤ 分析对于应用环境这些模式是否合适,确定是否要对它们进行合并或分解。
¤ 对关系模式进行必要的分解或合并
• 设计用户子模式
¤ 使用更符合用户习惯的别名
¤ 针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。
¤ 简化用户对系统的使用
• 数据库各级模式的形成
¤ 数据库的各级模式是在设计过程中逐步形成的
¤ 需求分析阶段综合各个用户的应用需求(现实世界的需求)。
¤ 概念设计阶段形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述。
¤ 在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。
¤ 在物理设计阶段根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。
事务的ACID特性:
¤ 原子性(Atomicity)
¤ 一致性(Consistency)
¤ 隔离性(Isolation)
¤ 持续性(Durability)
• 如果数据库只包含成功事务提交的结果,就说数据库处于一致性状态。保证数据一致性是对数据库的最基本的要求。
• 事务是数据库的逻辑工作单位
¤ DBMS保证系统中一切事务的原子性、一致性、隔离性和持续性
• DBMS必须对事务故障、系统故障和介质故障进行恢复
• 恢复中最经常使用的技术:数据库转储和登记日志文件
• 恢复的基本原理:利用存储在后备副本、日志文件和数据库镜像中的冗余数据来重建数据库
• 常用恢复技术
¤ 事务故障的恢复
• UNDO
¤ 系统故障的恢复
• UNDO + REDO
¤ 介质故障的恢复
• 重装备份并恢复到一致性状态 + REDO
• 提高恢复效率的技术
¤ 检查点技术
• 可以提高系统故障的恢复效率
• 可以在一定程度上提高利用动态转储备份进行介质故障恢复的效率
¤ 镜像技术
• 镜像技术可以改善介质故障的恢复效率