基于 ?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.pswp.cn/news/896785.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/896785.shtml
英文地址,請注明出處:http://en.pswp.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 建邊注意…