日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库中Schema(模式)概念的理解

發布時間:2024/9/30 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库中Schema(模式)概念的理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章內容來自:https://www.biaodianfu.com/database-schema.html?utm_source=tuicool&utm_medium=referral

在學習數據庫時,會遇到一個讓人迷糊的Schema的概念。實際上,schema就是數據庫對象的集合,這個集合包含了各種對象如:表、視圖、存儲過程、索引等。

如果把database看作是一個倉庫,倉庫很多房間(schema),一個schema代表一個房間,table可以看作是每個房間中的儲物柜,user是每個schema的主人,有操作數據庫中每個房間的權利,就是說每個數據庫映射的user有每個schema(房間)的鑰匙。

默認情況下一個用戶對應一個集合,用戶的schema名等于用戶名,并作為該用戶缺省schema。所以schema集合看上去像用戶名。訪問一個表時,如果沒有指明該表屬于哪個schema,系統會自動加上缺省的schema。一個對象的完整名稱為schema.object,而不屬user.object。

在MySQL中創建一個Schema和創建一個Database的效果好像是一樣的,但是在SQL Server和Oracle數據庫中效果又是不同的。

在SQL Server中,user和schema總有一層隱含的關系,讓我們很少意識到其實user和schema是兩種完全不同的概念,假如我們在某一數據庫中創建了用戶Bosco,那么此時后臺也為我們默認的創建了schema【Bosco】,schema的名字和user的名字相同。

在SQL Server 2005中,為了向后兼容,當用sp_adduser存儲過程創建一個用戶的時候,sqlserver2005同時也創建了一個和用戶名相同的schema,然而這個存儲過程是為了向后兼容才保留的,當我們用create user創建數據庫用戶時,我們可以用該用戶指定一個已經存在的schema作為默認的schema,如果我們不指定,則該用戶所默認的schema即為dbo schema,dbo房間(schema)好比一個大的公共房間,在當前登錄用戶沒有默認schema的前提下,如果你在大倉庫中進行一些操作,比如create table,如果沒有制定特定的房間(schema),那么你的物品就只好放進公共的dbo房間(schema)了。但是如果當前登錄用戶有默認的schema,那么所做的一切操作都是在默認的schema上進行。

在Oracle數據庫中不能新建一個schema,要想創建一個schema,只能通過創建一個用戶的方法解決,在創建一個用戶的同時為這個用戶創建一個與用戶名同名的schem并作為該用戶的缺省shcema。即schema的個數同user的個數相同,而且schema名字同user名字一一 對應并且相同。

update:2017-3-27

PostgreSQL中模式的概念與MySQL中Database的概念是等同的。在MYSQL中可以同事訪問多個Database對象,但在PostgreSQL中只能訪問一個Database對象,但在PostgreSQL中可以訪問多個Scheme。

總結

以上是生活随笔為你收集整理的数据库中Schema(模式)概念的理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。