基于 ‌MySQL 数据库‌对三级视图(用户视图、DBA视图、内部视图)的详细解释

基于 ‌MySQL 数据库‌对三级视图(用户视图、DBA视图、内部视图)的详细解释,结合理论与实际操作说明:

一、三级视图核心概念

数据库的三级视图是 ANSI/SPARC 体系结构的核心思想,MySQL 的实现逻辑如下:

层级别称核心内容MySQL 中的体现
用户视图外模式/子模式用户看到的数据逻辑结构用户权限内的表、视图、可操作字段
DBA视图概念模式/逻辑模式全局逻辑结构、表关系、约束information_schemamysql 系统库元数据
内部视图内模式/存储模式物理存储结构、索引、文件组织方式InnoDB/MyISAM 存储引擎的物理文件、缓存机制


二、用户视图(外模式)

1. 定义

用户视角下可见的数据集合,‌权限隔离‌是核心特性。

2. MySQL 实现
‌权限控制‌:通过 GRANT/REVOKE 限制用户对表、字段的访问。
‌操作示例‌:

-- 创建用户并限制访问权限
CREATE USER 'user1'@'%' IDENTIFIED BY 'password';
GRANT SELECT ON db1.employee TO 'user1'@'%';  -- 仅允许查询 employee 表-- 用户登录后只能看到授权对象
SHOW DATABASES;       -- 仅显示有权限的数据库
SELECT * FROM salary; -- 无权访问时报错:ERROR 1142 (42000)

三、DBA视图(概念模式)

1. 定义

DBA 或开发者看到的‌全局逻辑结构‌,包括所有表、字段、约束、用户权限等。

2. MySQL 实现
‌系统库 information_schema‌:存储元数据(表、列、索引等)。
‌操作示例‌:

-- 查看所有数据库中的表
SELECT table_name, table_type 
FROM information_schema.tables 
WHERE table_schema = 'db1';-- 查看用户权限
SELECT * FROM mysql.user WHERE user = 'user1';  -- 用户密码、权限字段

四、内部视图(内模式)

1. 定义

数据在磁盘的‌物理存储形式‌,由存储引擎(如 InnoDB)实现。

2. MySQL 实现
‌物理文件结构‌:
.frm:表结构定义文件(MySQL 8.0 后移除,元数据存于系统表)
.ibd:InnoDB 表的数据和索引文件(独立表空间模式)
‌操作示例‌:

-- 查看数据存储路径
SHOW VARIABLES LIKE 'datadir';  -- 输出如 /var/lib/mysql/-- 查看 InnoDB 存储细节
SHOW ENGINE INNODB STATUS;      -- 事务、锁、缓冲池状态

五、三级视图关系总结

graph TBA[用户视图] -->|通过外模式-模式映射| B[DBA视图]B -->|通过模式-内模式映射| C[内部视图]C -->|存储引擎解析| D[物理文件]


‌关键点‌:

‌用户无需关心物理存储‌,只需通过 SQL 操作逻辑表。
‌DBA 维护映射规则‌,如通过 ALTER TABLE 修改存储引擎而不影响用户视图。
‌存储引擎透明性‌:InnoDB 的 B+树索引、MyISAM 的堆表结构对用户不可见。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/896785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WP 高级摘要插件:助力 WordPress 文章摘要精准自定义显示

wordpress插件介绍 “WP高级摘要插件”功能丰富,它允许用户在WordPress后台自定义文章摘要。 可设置摘要长度,灵活调整展示字数;设定摘要最后的显示字符, 如常用的省略号等以提示内容未完整展示;指定允许在摘要中显示…

三次握手内部实现原理

socket()创建一个新的套接字 int socket(int domain, int type, int protocol); 参数: domain:地址族,如 AF_INET(IPv4),AF_INET6(IPv6) type:套接字类型&…

DeepSeek 助力 Vue3 开发:打造丝滑的悬浮按钮(Floating Action Button)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

【前端场景题】如何应对页面请求接口的大规模并发问题

如何应对页面请求接口的大规模并发问题,尤其是前端方面的解决方案,并且需要给出详细的代码解释。首先,我需要仔细阅读我搜索到的资料,找出相关的信息,然后综合这些信息来形成答案。 首先看,它提到前端优化策…

360个人版和企业版的区别

功能方面 管理能力 个人版:主要用于单台设备的安全防护,只能在单独的电脑上进行安装使用,无集中管理和监控其他设备的功能。企业版:可批量管理大量电脑,如公司的十台、百台甚至千台电脑。管理员能通过管理控制台对所有…

苹果与小米破冰合作:iPhone 16e全面支持Find My网络,跨生态互通实现技术性突破

2025年2月28日&#xff0c;苹果公司正式宣布其中国区特供机型iPhone 16e全面接入Find My网络升级版&#xff0c;并与小米旗舰机型15 Ultra实现跨平台互联互通。 核心功能升级 1. Find My网络能力扩展 iPhone 16e搭载的Find My 3.0网络支持亚米级定位&#xff08;误差<1米…

Spring MVC 程序开发(1)

目录 1、什么是 SpringMVC2、返回数据2.1、返回 JSON 对象2.2、请求转发2.3、请求重定向2.4、自定义返回的内容 1、什么是 SpringMVC 1、Tomcat 和 Servlet 分别是什么&#xff1f;有什么关系&#xff1f; Servlet 是 java 官方定义的 web 开发的标准规范&#xff1b;Tomcat 是…

一键安装Mysql部署脚本之Linux在线安装Mysql,脚本化自动化执行服务器部署(附执行脚本下载)

相关链接 一键安装Redis部署脚本之Linux在线安装Redis一键安装Mysql部署脚本之Linux在线安装Mysql一键安装JAVA部署脚本之Linux在线安装JDK一键安装Nginx部署脚本之Linux在线安装NginxNavicat最新版(17)详细安装教程Xshell客户端免费版无需注册XFtp客户端免费版无需注册 前言…

1.2.2 使用Maven方式构建Spring Boot项目

本次实战通过Maven方式构建了一个Spring Boot项目&#xff0c;实现了简单的Web应用。首先&#xff0c;创建了Maven项目并设置好项目名称、位置、构建系统和JDK等。接着&#xff0c;添加了Spring Boot的父项目依赖和web、thymeleaf起步依赖。然后&#xff0c;创建了项目启动类He…

【愚公系列】《Python网络爬虫从入门到精通》037-文件的存取

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…

C++:vector的push_back时间复杂度分析

引导示例 #include <iostream> #include <vector>int main() {std::vector<int> v;std::cout << v.capacity() << " ";int last 0;for (int i 1; i < 10; i) {v.push_back(1);std::cout << v.capacity() << " …

LeetCode 202. 快乐数 java题解

https://leetcode.cn/problems/happy-number/description/ 哈希表 class Solution {public boolean isHappy(int n) {if(n1) return true;HashSet<Integer> setnew HashSet<>();while(n!1&&!(set.contains(n))){//没找到结果&#xff1b;没有重复出现过se…

11.24 SpringMVC(1)@RequestMapping、@RestController、@RequestParam

一.RequestMapping("/user")//HTTP 请求方法既支持get也支持post&#xff0c;可表示为类路径与方法路径 二.RequestMapping(value "/m7", method {RequestMethod.POST, RequestMethod.GET}) value这个参数指定了请求的 URL 路径。method 参数指定了允许…

解决npm run dev报错

解决&#xff1a;Node.js 版本更新后与 OpenSSL 不兼容导致的npm报错“Error: error:0308010C:digital envelope routines::unsupported” 方法一&#xff1a;更改系统环境变量方法二&#xff1a;更改项目环境变量方法三&#xff1a;更换 Node.js 版本方法四&#xff1a;升级依…

Django模型管理器/QuerySet 常见的方法

模型管理器/QuerySet 常见的方法 get([**kwargs]) 方法 用途&#xff1a;获取满足条件的唯一对象。参数&#xff1a;关键字参数&#xff0c;指定查询条件。返回值&#xff1a;模型对象。异常&#xff1a;如果找到多个对象或未找到对象&#xff0c;将分别抛出 MultipleObjects…

爬虫系列之【数据解析之JSON】《三》

目录 前置知识 一、 json.loads()&#xff1a;JSON 转 Python 数据 二、json.dump()&#xff1a;python数据 转 json 并写入文件 三、json.loads() &#xff1a;json 转 python数据 四、json.load() &#xff1a;json 转 python数据&#xff08;在文件操作中更方便&#xf…

Python核心技术,Django学习基础入门教程(附环境安装包)

文章目录 前言1. 环境准备1.1Python安装1.2选择Python开发环境1.3 创建虚拟环境1.4 安装 Django 2. 创建 Django 项目3. Django项目结构介绍4. 启动开发服务器5. 创建 Django 应用6. 应用结构介绍7. 编写视图函数8. 配置 URL 映射9. 运行项目并访问视图10. 数据库配置与模型创建…

功能丰富的自动化任务软件zTasker_2.1.0_绿色版_屏蔽强制更新闪退

&#x1f680; zTasker 一键式效率倍增器使用指南 &#x1f64f; 致谢 首先感谢开发者提供如此高效的工具&#xff01; 软件本身功能强大&#xff0c;但部分机制需特别注意&#xff01; &#x1f4d6; 软件概述 zTasker 是一款通过自动化脚本/任务流实现效率飞跃的生产力工…

MFC中CMutex类和CSingleLock类,配合使用疑惑

在使用CMutex过程中&#xff0c;看到别人使用了CSingleLock类&#xff0c;想着明明CMutex已经可以实现线程同步了&#xff0c;为什么还有使用CSingleLock类呢&#xff1f; 在MFC中&#xff0c;虽然CMutex类本身可以实现线程同步&#xff0c;但通常会与CSingleLock类一起使用&am…

【最大半连通子图——tarjan求最大连通分量,拓扑排序,树形DP】

题目 分析 最大连通分量肯定是满足半连通分量的要求&#xff0c;因此tarjan。 同时为了简化图&#xff0c;我们进行缩点&#xff0c;图一定变为拓扑图。 我们很容易看出&#xff0c;只要是一条不分叉的链&#xff0c;是满足条件的。 于是我们按照拓扑序不断树形DP 建边注意…