數(shù)據(jù)庫中schema,表空間的意思

1.什么是schema?

定義:

A schema is a collection of database objects (used by a user.). Schema objects are the logical structures that directly refer to the database’s data. A user is a name defined in the database that can connect to and access objects. Schemas and users help database administrators manage database security.

也就是說,schema是一個邏輯概念,是數(shù)據(jù)庫對象的集合,數(shù)據(jù)庫對象包括:tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links。

“我們可以把Database看作是一個大倉庫,倉庫分了很多很多的房間,Schema就是其中的房間,一個Schema代表一個房間,Table可以看作是每個Schema中的床,Table(床)被放入每個房間中,不能放置在房間之外,那豈不是晚上睡覺無家可歸了,然后床上可以放置很多物品,就好比 Table上可以放置很多列和行一樣,數(shù)據(jù)庫中存儲數(shù)據(jù)的基本單元是Table,現(xiàn)實中每個倉庫放置物品的基本單位就是床, User就是每個Schema的主人,(所以Schema包含的是Object,而不是User),user和schema是一一對應的,每個user在沒有特別指定下只能使用自己schema(房間)的東西,如果一個user想使用其他schema(房間)的東西,那就要看那個schema(房間)的user(主人)有沒有給你這個權限了,或者看這個倉庫的老大(DBA)有沒有給你這個權限了。換句話說,如果你是某個倉庫的主人,那么這個倉庫的使用權和倉庫中的所有東西都是你的(包括房間),你有完全的操作權,可以扔掉不用的東西從每個房間,也可以放置一些有用的東西到某一個房間,你還可以給每個User分配具體的權限,也就是他到某一個房間能做些什么,是只能看(Read-Only),還是可以像主人一樣有所有的控制權(R/W),這個就要看這個User所對應的角色Role了?!薄跃W(wǎng)絡

2.什么是表空間?

在oracle中,數(shù)據(jù)庫是由表空間來組成的,而表空間里面是具體的物理文件—數(shù)據(jù)文件。我們可以創(chuàng)建數(shù)據(jù)庫并為其指定各種表空間。
本質(zhì)上是一個或多個數(shù)據(jù)文件的集合。

3.總結(jié)

數(shù)據(jù)庫由表空間來組成,而Schema是各種數(shù)據(jù)庫對象的集合,用戶可以通過Schema來訪問表等等這些數(shù)據(jù)庫對象,而我們查詢的時候通常是沒有通過Schema.對象的方式訪問,是因為當沒有指明該表屬于哪一個Schema中的,系統(tǒng)就會自動給我們在表上加上缺省的Schema名,缺省的Schema名就是用戶名。
mysql里innodb才有表空間的概念,但是它是全局的,也就是說,所有數(shù)據(jù)庫都用這個表空間。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容