03数据库系统
01-数据库系统分类以及三级模式两级映射
2021-07-26 360 5
简介 数据库系统分类以及三级模式两级映射的详细介绍
数据库系统的分类
集中式数据库系统: 数据是集中的,数据是集中管理的, 数据库系统的所有功能(从形式的用户接口到DBMS核心)都集中在DBMS所在的计算机。
B/S结构数据库系统:客户端负责数据表示,服务服务器主要负责数据库服务,数据库系统分为前端和后端,主要通过ODBC、JDBC驱动连接数据库。比如通过DataGrip客户端连接数据库,实现数据库系统数据的展示和维护。
并行数据库:共享内存式和无共享方式
分布式数据库:可以分为物理上分布但是逻辑上集中、物理上分布逻辑上也分布的数据库系统, 具有透明性的特点,用户看到的只是一个数据库。
三级模式 、两级映射
外模式: 视图,用户数据库、用户级数据库
模式: 概念模式, 逻辑表,概念级数据库
内模式: 数据文件,数据存储结构,物理级数据库
1. 三级抽象
数据库系统划分为三个抽象级:用户级、概念级、物理级。
(1)用户级数据库。用户级数据库对应于外模式,是最接近于用户的一级数据库,是用户看到和使用的数据库,又称用户视图。用户级数据库主要由外部记录组成,不同用户视图可以互相重叠,用户的所有操作都是针对用户视图进行的。
(2)概念级数据库。概念级数据库对应于概念模式,又称模式,介于用户级和物理级之间,是所有用户视图的最小并集,是数据库管理员看到和使用的数据库,又称DBA(DataBase Administrator,数据库管理员)视图。概念级数据库由概念记录组成,一个数据库可有多个不同的用户视图,每个用户视图由数据库某一部分的抽象表示所组成。一个数据库应用系统只存在一个DBA视图,它把数据库作为一个整体的抽象表示。概念级模式把用户视图有机地结合成一个整体,综合平衡考虑所有用户要求,实现数据的一致性、最大限度降低数据冗余、准确地反映数据间的联系。
(3)物理级数据库。物理级数据库对应于内模式,是数据库的低层表示,它描述数据的实际存储组织,是最接近于物理存储的级,又称内部视图。物理级数据库由内部记录组成,物理级数据库并不是真正的物理存储,而是最接近于物理存储的级。
2.三级模式
数据库系统的三级模式为外模式、概念模式、内模式。
(1)外模式。外模式(子模式、用户模式)用以描述用户看到或使用的那部分数据的逻辑结构,用户根据外模式用数据操作语句或应用程序去操作数据库中的数据。外模式主要描述组成用户视图的各个记录的组成、相互关系、数据项的特征、数据的安全性和完整性约束条件。
外模式是数据库用户(包括程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。一个数据库可以有多个外模式。一个应用程序只能使用一个外模式。
(2)概念模式。概念模式(模式、逻辑模式)用以描述整个数据库中数据库的逻辑结构,描述现实世界中的实体及其性质与联系,定义记录、数据项、数据的完整性约束条件及记录之间的联系,是数据项值的框架。
数据库系统概念模式通常还包含有访问控制、保密定义、完整性检查等方面的内容,以及概念/物理之间的映射。
概念模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个概念模式。
(3)内模式。内模式是整个数据库的最底层表示,不同于物理层,它假设外存是一个无限的线性地址空间。内模式定义的是存储记录的类型、存储域的表示以及存储记录的物理顺序,指引元、索引和存储路径等数据的存储组织。
内模式是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。
内模式、模式和外模式之间的关系如下:
(1)模式是数据库的中心与关键;
(2)内模式依赖于模式,独立于外模式和存储设备;
(3)外模式面向具体的应用,独立于内模式和存储设备;
(4)应用程序依赖于外模式,独立于模式和内模式。
3.两级独立性
数据库系统两级独立性是指物理独立性和逻辑独立性。三个抽象级间通过两级映射(外模式/模式映射,模式/内模式映射)进行相互转换,使得数据库的三级形成一个统一的整体。
(1)物理独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的。当数据的物理存储改变时,应用程序不需要改变。
物理独立性存在于概念模式和内模式之间的映射转换,说明物理组织发生变化时应用程序的独立程度。
(2)逻辑独立性。逻辑独立性是指用户的应用程序与数据库中的逻辑结构是相互独立的。当数据的逻辑结构改变时,应用程序不需要改变。
逻辑独立性存在于外模式和概念模式之间的映射转换,说明概念模式发生变化时应用程序的独立程度。
逻辑独立性比物理独立性更难实现。
用户视图主要针对数据库进行查询,不可以修改和更新,主要用于数据的展示,但是我们的应用程序需要进行增删改查,所以程序员或者最终用户操作用户视图,准确来说有点不合理。
数据库中的视图(VIEW)
数据库视图:它一个虚拟表(逻辑上的表),其内容由查询定义(仅保存SQL查询语句)。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并没有真正存储这些数据,而是通过查询原始表动态生成所需要的数据。
DML语句CREATE VIEW可以创建视图,视图底层就是一个查询语句,就相当于我们在SELECT语句中带有子查询,子查询的结果就是视图。但是通过CREATE VIEW创建了视图,更具有灵活性,让程序和数据库表耦合度降低。
视图的优点
1、视图能简化用户操作,子查询可以替换为视图,增加了可读性,简化了用户的操作。
2、视图使用户能以多种角度看待同一数据
3、视图对重构数据库提供了一定程度的逻辑独立性
4、视图可以对机密数据提供安全保护,用户不能直接访问逻辑表,而是只能访问逻辑表上创建的视图,可以决定视图是基于逻辑表的哪些列创建,这样就可以使得用户访问到的数据具有了权限控制,保证了数据的安全性。
物化视图(MATERIALIZED QUERY TABLES, MQT)
适用于在查询比较多,更新比较少的逻辑表上创建物化视图,物化视图不是传统意义上虚拟视图,是实体化视图,其本身会存储数据。同时当原始表中的数据更新时,物化视图也会更新,会增加更新原始表的成本(COST)。