他们在体系结构上通常具有相同的特征,即采用三级模式结构并提供两级映像功能
三级模式
数据库的三级模式结构是指:数据库系统是由外模式、模式和内模式三级构成:
外模式:又称为子模式或用户模式,是三级结构的最外层,描述用户看到或者使用那部分的数据的逻辑结构,用户根据外模式用户数据操作语句或者程序去操作数据库中的数据,外模式的主要特点用来描述组成用户视图各个记录的组成、相互联系、数据的完整性和安全性、数据项的特征等。一个数据库可以有多个外模式
逻辑模式:又称概念模式,描述整个数据库中的逻辑结构、用来描叙现实生活中的实体,以及它们之间的关系、从而定义记录数据项的完整性约束条件以及记录之间的联系是数据项的框架
-
内模式:是数据库在物理存储方面的描述,定义所有内部记录类型、索引和文件的组织方式,以及数据控制方面的细节,是数据在数据库内部的表示方式。一个数据库只有一个内模式。(例如,记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定)
外模式、概念模式、内模式.png
两级映像
- 外模式/逻辑模式映像:存在于外模式于逻辑模式之间,用于定义外模式和逻辑模式之间的对应性。一般在外模式中描述。
- 逻辑模式/内模式映像:存在于逻辑模式和内模式之间,用于定义逻辑模式和内模式之间的对应性。一般在内模式中描述。
数据独立性
分为物理数据独立性和逻辑数据独立性:
- 物理数据独立性:
数据库只有一个逻辑模式,也只有一个内模式,所以逻辑模式/内模式映射是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。当数据库存储结构改变时,由数据库管理员对模式/内模式映像作相应改变,可以使逻辑模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性。 - 逻辑数据独立性:
逻辑模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构,当模式改变时,由数据库管理员对各个外模式/逻辑模式映像作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性。
三大范式
- 第一范式是最基本的范式。如果数据库表中的所有“字段”都是不可分解的原子值,就说明该数据库表满足了第一范式
- 第二范式要求数据库中表的每个实例或行必须能唯一的区分。为实现区分通常需要为表加上一个列,以存储各个实例(或者叫行)的唯一标识。此唯一标示通常被称为主键或主码
- 第三范式要满足以下的条件:首先要满足第二范式,其次非主属性之间不存在函数依赖。由于满足了第二范式,表示每个非主属性都函数依赖于主键。如果非主属性之间存在了函数依赖,就会存在传递依赖,这样就不满足第三范式
解释一下:
第一条要求,列(维度对应的属性)不能再分了
第二条要求,每一行得是独立的,不能再分了
第三条要求,在一行中(满足第二条后),其他属性都得依赖主键,非主键之间不能有依赖关系
视图
视图就是将你需要的几张表中的数据整合到一张表上面,然后你就可以干自己想干的事情了!其实感觉就像是你把自己即将会写的一段SQL语句整合成一个个小小的模块
视图(子查询):是从一个或多个表导出的虚拟的表,其内容由查询定义。具有普通表的结构,但是不实现数据存储。
--创建视图--
create or replace view v_student as select * from student;
--从视图中检索数据--
select * from v_student;
--删除视图--
drop view v_student;
优点
- 简化了操作,把经常使用的数据定义为视图。
- 安全性,用户只能查询和修改能看到的数据。
- 逻辑上的独立性,屏蔽了真实表的结构带来的影响。
