首页 > 数据库 >MySQL中三级模式和二级映像指的是什么?

MySQL中三级模式和二级映像指的是什么?

时间:2023-03-05 17:44:07浏览次数:36  
标签:概念模式 独立性 数据库 映像 模式 视图 MySQL 三级

MySQL中三级模式和二级映像指的是什么?

更新时间:2022-06-09 来源:黑马程序员 浏览量:2354

美国国家标准学会(American National Standards Institute,ANSI)所属的标准计划与需求委员会(Standards Planning and Requirements Committee,SPARC)在1971年公布的研究报告中提出了ANSI-SPARC体系结构,即三级模式结构(或称为三层体系结构)。ANSI-SPARC最终没有成为正式标准,但它仍然是理解数据库管理系统的基础。三级模式是指数据库管理系统从三个层次来管理数据,分别是外部层(ExternalLevel)、概念层(Conceptual Level)和内部层(Internal Level)。这三个层次分别对应三种不同类型的模式,分别是外模式(External Schema)、概念模式(Conceptual Schema)和内模式(Internal Schema)。在外模式与概念模式之间,以及概念模式与内模式之间,还存在映像,即二级映像,具体如图所示。

1654684980985_333333333333.jpg

三级模式和二级映像

在图1-2中,外模式面向应用程序,描述用户的数据视图(View);内模式(又称为物理模式、存储模式)面向物理上的数据库,描述数据在磁盘中如何存储;概念模式(又称为模式、逻辑模式)面向数据库设计人员,描述数据的整体逻辑结构。
由于三级模式比较抽象,为了更好地理解,下面将计算机中常用的Excel电子表格类比成数据库,并假设有一个商城使用电子表格来保存商品信息。

(1)概念模式。概念模式类似于表格的列标题,它描述了商品表中包含哪些信息,如图所示。

1654739272236_44.jpg

商品信息表格

上图中,表的横向称为行,纵向称为列,第一行就是列标题,用来描述该列的数据表示什么含义。实际上,概念模式在数据库中描述的信息还有很多,如多张表之间的联系、表中每一列的数据类型和长度等,读者在后面的学习中就会接触到这些内容。

(2)内模式。在将Excel表格另存为文件时,可以选择保存的文件路径、保存类型(如XLS、XLSX、CSV等格式)等,这些与存储相关的描述信息相当于内模式。在数据库中,内模式描述数据的物理结构和存储方式,如堆文件、索引文件、散列(Hash)文件等。

(3)外模式。在打开一个电子表格后,默认会显示表格中所有的数据,这个表格称为基本表。在将数据提供给其他用户时,出于权限、安全控制等因素的考虑,只允许用户看到一部分数据,或不同用户看到不同的数据,这样的需求就可以用视图来实现。下图是视图和基本表的关系。

1654755694276_视图和基本表的关系.jpg

视图与基本表

在上图中,基本表中的数据是实际存储在数据库中的,而视图中的数据是查询或计算出来的。由此可见,外模式可以为不同用户的需求创建不同的视图,且由于不同用户的需求不同,数据的显示方式也会多种多样。因此,一个数据库中会有多个外模式,而概念模式和内模式则只有一个。

通过前面的分析可知,三级模式是数据的三个抽象级别,每个级别关心的重点不同。为了使三级模式之间产生关联,数据库管理系统在三级模式之间提供了二级映像功能。二级映像是一种规则,它规定了映像双方如何进行转换。通过二级映像,体现了逻辑和物理两个层面的数据独立性。具体解释如下。

(1)逻辑独立性。外模式/概念模式映像体现了逻辑独立性。逻辑独立性是指当修改了概念模式,不影响其上一层的外模式。例如,将图1-4中基本表的“库存”和“销量”拆分到另一张表中,此时概念模式发生了更改,但可以通过改变外模式/概念模式的映像,继续为用户提供原有的视图,如图所示。

1654757868876_视图与基本表.jpg

视图与基本表

由此可见,逻辑独立性能够让使用视图的用户感觉不到基本表的改变。其实,逻辑独立性带来的好处还有很多,随着后面的学习,读者会有更深入的体会。

(2)物理独立性。概念模式/内模式映像体现了物理独立性。物理独立性是指修改了内模式,不影响其上层的概念模式和外模式。例如,在Excel中将.xls文件另存为.xlsx文件,虽然更换了文件格式,但是打开文件后显示的表格内容一般不会发生改变。在数据库中,更换更先进的存储结构,或者创建索引以加快查询速度,内模式会发生改变。此时,只需改变概念模式/内模式映像,就不会影响到原有的概念模式。

另外,物理独立性使得用户不必了解数据库内部的存储原理,即可正常使用数据库来保存数据。数据库管理系统会自动将用户的操作转换成物理级数据库的操作。

多学一招:数据库相关的人员

数据库系统涉及一些人员,主要包括数据库管理员(Database Administrator,DBA)、应MySQL数据库原理、设计与应用用程序员(Application Programmer)和最终用户(End User)。关于这些人员的具体解释如下。

(1)数据库管理员。负责管理和维护数据库,参与数据库的设计、测试和部署。数据库管理员需要对数据库系统非常精通,且应具有较高的技术水平和较深的资历。

(2)应用程序员。负责为最终用户设计和编写程序,并进行调试和安装,以便最终用户利用应用程序来对数据库进行存取操作。

(3)最终用户。一般为非计算机专业人员,通过应用程序访问数据库。例如,在12306网站订票的用户、在一些购物网站购买商品的用户,他们可能对数据库完全不了解,在使用浏览器、客户端等应用程序时,间接地访问了数据库。

标签:概念模式,独立性,数据库,映像,模式,视图,MySQL,三级
From: https://www.cnblogs.com/cdaniu/p/17181054.html

相关文章

  • MySQL Workbench 8.0 点击Server Status面板Could not acquire management access for
    转载自:MySQLWorkbench8.0点击ServerStatus面板Couldnotacquiremanagementaccessforadministration报错问题解决Win10安装MySQLWorkbench8.0后连接MySQL服务......
  • python操作mysql
    1、mysql查询操作:#!/usr/bin/python#-*-coding:UTF-8-*-importMySQLdb#打开数据库连接db=MySQLdb.connect("localhost","root","111111","analysis2")#使用cursor......
  • mysql主从数据库状态检测(php)
    实例:<?php/***检测多个主从数据库是否挂掉*建立从数据库$slave_db的二维数组,内容包含每个从服务器的配置数据*/header("Content-Type:text/html;charset=utf-8");set......
  • MySQL数据库备份恢复
    拓扑图:推荐步骤:使用MySQLdump对数据库数据库中表一个数据库多个表所有数据库进行备份模拟数据丢失恢复备份的数据 配置MySQL数据库开启二进制日志功能配置二进制日志切割......
  • MySQL基本命令操作
    目录创建数据库删除数据库数据表的创建与管理删除数据表修改字段数据类型添加字段字段更名删除字段表数据管理插入数据查询数据模糊匹配排序与分组HAVING子句查询聚合函数......
  • php 检测mysql表是否存在
    pdo:<?php$dsn='mysql:dbname=test;host=127.0.0.1';$user='root';$password='';try{$pdo=newPDO($dsn,$user,$password);}catch(PDOException$e){......
  • SQL笔记--MySQL高级操作
    MySQL高级SQL操作数据新增多数据插入蠕虫复制主键冲突查询数据查询选项别名数据源where子句groupby子句having子句orderby子句limit子句更新数据限制更新删除数据限制......
  • MySQL行列互转
    sudoservicemysqlstart--启动mysql服务mysql-uroot--使用root用户登录quit/exit--退出setnamesutf8;--设置传输编码,避免中文乱码sourced:/xxx.sql;--sou......
  • mysqli 批量执行多条语句
    可以一次性的执行多个操作或取回多个结果集。实例:<?php$mysqli=newmysqli("localhost","root","111111","test");/*checkconnection*/if(mysqli_connect_errno())......
  • java使用hibernate输出mysql数据库代码(个人笔记)
    packagecom.seo.worker.quartz;importjava.util.List;importorg.apache.log4j.Logger;importcom.seo.bean.Proxy;importcom.seo.common.dao.impl.BaseDAO;publicclass......