数据库技术是研究数据库的结构、存储、设计、管理和应用的一门软件学科
数据库系统(DataBase System,DBS)是一个采用了数据库技术,有组织地、动态地存储大量数据,方便多用户访问的计算机系统。DBS 是由数据库、硬件、软件和人员组成
数据库是相关数据的集合
硬件是构成计算机系统的各种物理设备,包括存储数据所需的外部设备
包括操作系统、数据库管理系统(DBMS)和应用程序
主要实现对共享数据有效的组织、管理和存取
数据定义语言DDL
数据操作语言DML
DML分为两类:
数据库系统是数据密集型应用的核心。
角度 | 体系结构 |
---|---|
最终用户 | 集中式、分布式、客户端/服务器、并行结构 |
数据库管理系统 | 三级模式结构 |
集中式数据库系统
不仅数据是集中的,数据的管理也是集中的,数据库系统的所有功能(从形式的用户接口到 DBMS 核心)都集中在 DBMS 所在的计算机上。
客户端/服务器数据库系统
客户端请求被送到服务器上执行。
客户端主要负责数据表示服务;服务器主要负责数据库服务。
数据库服务器分为事务服务器和数据服务器
并行数据库系统
并行体系结构是多个物理上连载一个的CPU,分布式系统是多个地理上分开的CPU.
并行体系结构分为共享内存式多处理器和无共享式并行体系结构
分布式数据库系统
分布式DBMS分为两种:
物理上分布、逻辑上集中的分布式
物理上分布、逻辑上分布的分布式
数据按外模式的描述提供给用户,按内模式的描述存储在磁盘上,而概念模式提供了连接这两级模式的相对稳定的中间层,并使得两级中任意一级的改变都不受另一级影响。
概念模式
也称模式,它是数据库中全部数据的逻辑结构和特征的描述,由若干个概念记录类型组成,只涉及型的描述,不涉及值。
具体值称为模式的一个实例,可以有多个实例。
描述概念记录类型,还要描述记录间的联系、操作以及数据的完整性和安全性等要求。
外模式
也称用户模式或子模式,是用户与数据库系统的接口,由若干个外部记录类型组成
内模式
也称存储模式,是数据物理结构和存储方式的描述,定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。
两级映像
映像分类 | 说明 |
---|---|
概念模式/内模式映像 | 存在于概念级和内部级之间,实现了概念模式和内模式之间的相互转换 |
外模式/概念模式映像 | 存在于外部级和概念级之间,实现了外模式和概念模式之间的相互转换 |
两级映像保证了数据库中的数据独立性。
数据的独立性是指数据与程序独立,将数据的定义从程序中分离出去。
独立性包括数据的物理独立性和数据的逻辑独立性。
定义:是指“无法用现有的软件工具提取、存储、搜索、共享、分析和处理的海量的、复杂的数据集合”。
特征:大量化(Volume)、多样化(Variety)、价值密度低(Value)、快速化(Velocity)
数据模型是对现实世界数据特征的抽象。
分类 | 说明 |
---|---|
概念数据模型 | 也称信息模型,是按用户的观点对数据和信息建模,主要用于数据库设计。最著名的是实体-联系模型,简称E-R模型 |
基本数据模型 | 按计算机系统的观点对数据建模。基本的数据模型有层次模型、网状模型、关系模型和面向对象模型 |
数据库结构的基础是数据模型,数据模型的三要素是数据结构、数据操作和数据的约束条件
三要素 | 说明 |
---|---|
数据结构 | 数据结构是所研究的对象类型的集合,是对系统静态特性的描述。 |
数据操作 | 数据操作是对数据库中各种对象 (型) 的实例(值) 允许执行的操作的集合,包括操作和操作规则。 |
数据的约束条件 | 数据的约束条件是一组完整性规则的集合。对于具体的应用数据必须遵循特定的语义约束条件 |
概念数据模型是对信息世界建模,最常用的是实体-联系模型(E-R模型)
在E-R模型中,实体用矩形表示,通常矩形框内写明实体名。
实体是现实世界中可以区别其他对象的事件或物体。
实体集市具有相同属性的实体集合。
在E-R模型中,联系用菱形表示,通常菱形框内写明联系名。并用无向边分别与实体连接,在无向边旁标注联系的类型。
实体的联系分为实体内部的联系和实体与实体之间的联系
属性是实体某方面的特性。
分类 | 说明 |
---|---|
简单属性和复合属性 | 简单属性是原子的、不可再分的。复合属性可以细分为更小的部分 |
单值属性和多值属性 | 一个属性可能对应一组值。例如职工家属属性 |
NULL属性 | 当实体在某个属性上没有值或属性值未知时,使用 NULL 值,表示无意义或不知道 |
派生属性 | 派生属性可以从其他属性得来,根据生日获取年龄 |
构件 | 说明 |
---|---|
矩形 | 表示实体集 |
双边矩形 | 表示弱实体集 |
菱形 | 表示联系集 |
双边菱形 | 表示弱实体集对应的标识性联系 |
椭圆 | 表示属性 |
线段 | 将屈性与相关的实体集连接,或将实体集与联系集相连 |
双椭圆 | 表示多值属性 |
虚椭圆 | 表示派生属性 |
双线 | 表示一个实体全部参与到联系集中 |
包括弱实体、特殊化、普遍化
学生实体集可以分为研究生、本科生和大专生等子集。将这种从普遍到特殊的过程称为“特殊化”
将几个具有共同特性的实体集概括成一个更普遍的实体集的过程称为“普遍化’。
设有实体集E,如果S是E的某些真子集的集合,记为 S={ S i S_i Si | S i ⊂ E , i = 1 , 2 , … , n S_i \subset E,i=1,2,\ldots,n Si⊂E,i=1,2,…,n },则称S是E的一个特殊化,E是 S 1 , S 2 , … , S n S_1, S_2,\ldots, S_n S1,S2,…,Sn的超类, S 1 , S 2 , … , S n S_1, S_2,\ldots, S_n S1,S2,…,Sn称为E的子类
如果 ⋃ i = 1 n S i = E \displaystyle\bigcup_{i=1}^{n} S_i= E i=1⋃nSi=E ,则称S是E 的全特殊化,否则是E 的部分特殊化。
如果 S i ⋂ S j = Φ S_i \bigcap S_j = \Phi Si⋂Sj=Φ, i ≠ j i≠j i=j,则S 是不相交特殊化,否则是重叠特殊化。
最常用的数据模型之一。
关系数据库系统采用关系模型作为数据的组织方式,在关系模型中用表格结构表达实体集以及实体集之间的联系,其最大特色是描述的一致性。
描述一个事物的特征,称为属性。
每个属性的取值范围对应一个值的集合,称为该属性的域。
在数据库中要区分型和值。
完整性规则提供了一种手段来保证当授权用户对数据库做修改时不会破坏数据的一致性。因此,完整性规则防止的是对数据的意外破坏。
关系的完整性分为3类:实体完整性、参照完整性、用户定义完整性
关系操作的特点是操作对象和操作结果都是集合,而非关系数据模型的数据操作方式则为一次一个记录的方式。
关系数据语言分为3类::关系代数语言,关系演算语言,具有关系代数和关系演算双重特点的语言(SQL)
关系演算语言包含元组关系演算语言 (例如 Aplha、Quel) 和域关系演算语言 (例如 QBE)
关系代数运算符包括4类:集合运算符、专门的关系运算符、比较运算符、逻辑运算符
关系R与S具有相同的关系模式,即 R与S的元数相同(结构相同)。关系R与S的并是由属于 R 或属于 S的元组构成的集合,记作 R U S。
关系 R与 S 具有相同的关系模式,关系 R 与 S 的差是由属于 R 但不属于 S 的元组构成的集合,记作 R-S
两个元数分别为 n 目和 m 目的关系 R 和 S的广义笛卡儿积是一个(n+m)列的元组的集合。元组的前 n 列是关系 R 的一个元组,后 m 列是关系 S 的一个元组,记作 RXS
投影运算是从关系的垂直方向进行运算,在关系 R 中选出若干属性列 A组成新的关系,记作 π A ( R ) \pi_A(R) πA(R)
选择运算是从关系的水平方向进行运算,是从关系 R 中选择满足给定条件的诸元组,记作 σ F ( R ) \sigma_F(R) σF(R).
关系 R与 S具有相同的关系模式,关系 R与 S 的交是由属于 R 同时又属于 S 的元组构成的集合,记作 R ⋂ S R \bigcap S R⋂S 。
连接分为 θ \theta θ 连接、等值连接和自然连接 3 种
外连接运算是连接运算的扩展,可以处理由于连接运算而缺失的信息。
外连接运算有3种:左外连接、右外连接和全外连接。
SQL主要有3个标准: ANSI SQL;SQL-92(SQL2);SQL-99(SQL3)
SQL的数据定义包括对表、视图、索引的创建和删除。
SQL 提供了将 SQL 语句嵌入到某种高级语言中的使用方式,通常采用预编译的方法识别嵌入到高级语言中的 SQL 语句。
嵌入式SQL与主语言之间的通信通常有3种方式:
定义:若关系模式 R 的每一个分量是不可再分的数据项,则关系模式 R 属于第一范式。
事务是一组操作的集合,要么都做,要么都不做。
事务原子性:原子性 (Atomicity)、一致性 (Consistency)、隔离性 (Isolation) 和持久性(Durability)
数据库的关键技术在于建立冗余数据,即备份数据。
系统出现故障后,能够及时的使数据库恢复到故障前的正确状态,就是数据库恢复技术。
分类 | 说明 |
---|---|
事务内部故障 | 有的可以通过事务程序本身发现,有的是非预期的,例如运算溢出、并发事务发生死锁等 |
系统故障 | 通常称为软故障,是指造成系统停止运行的任何事件,使得系统要重新启动,如CPU故障、操作系统故障、断电 |
介质故障 | 通常称为硬故障,如磁盘损坏、磁头碰撞和瞬时强磁干扰 |
计算机病毒 | 计算机病毒是一种人为的故障和破坏 |
分类 | 说明 |
---|---|
静态转储和动态转储 | 静态转储是指在转储期间不允许对数据库进行任何存取、修改操作;动态转储是在转储期间允许对数据库进行存取、修改操作。因此,转储和用户事务可并发执行。 |
海量转储和增量转储 | 海量转储是指每次转储全部数据;增量转储是指每次只转储上次转储后更新过的数据。 |
日志文件 | 在事务处理的过程中,DBMS 把事务开始、事务结束以及对数据库的插入删除和修改的每一次操作写入日志文件。 |
数据库镜像是通过复制数据实现的,用于数据库恢复。
所谓并发操作,是指在多用户共享的系统中许多用户可能同时对同一数据进行操作。
并发控制的主要技术是封锁。基本封锁的类型有排它锁(简称 X 锁或写锁)和共享锁 (简称 S 锁或读锁)。
排它锁
共享锁
所谓活锁,是指当事务 T1封锁了数据 R 时,事务 T2请求封锁数据 R,于是 T2等待,当T1释放了 R 上的封锁后,系统首先批准了 T3请求,于是 T2仍等待,当 T3释放了 R 上的封锁后,又批准了 T4请求,依此类推,使得 T2可能永远等待的现象。
所谓死锁,是指两个以上的事务分别请求封锁对方已经封锁的数据,导致了长期等待而无法继续运行下去的现象。