MS SQL 中的SCHEMA

schema的翻譯不統一,有的翻譯成模式,有的翻譯成方案,有的翻譯成架構或結構。這個詞比較抽象,不同的環境下,有不同的解釋。時間長了,即明白了。這個詞就屬於不要翻譯成中文的那一類詞,翻譯後反而不好理解了。 
從數據庫理論的角度看:schema是數據庫中存儲數據的一個邏輯表示,是一系列數據結構和數據對象的集合,既可以是數據庫的全局邏輯描述也可是數據庫的局部邏輯描述。

首先我來做一個比喻,什麼是Database,什麼是Schema,什麼是Table,什麼是列,什麼是行,什麼是User?我們可以可以把Database看作是一個大倉庫,倉庫分了很多很多的房間,Schema就是其中的房間,一個Schema代表一個房間,Table可以看作是每個Schema中的牀,Table(牀)就被放入每個房間中,不能放置在房間之外,那豈不是晚上睡覺無家可歸了J。,然後牀上可以放置很多物品,就好比 Table上可以放置很多列和行一樣,數據庫中存儲數據的基本單元是Table,現實中每個倉庫放置物品的基本單位就是牀, User就是每個Schema的主人,(所以Schema包含的是Object,而不是User),其實User是對應與數據庫的(即User是每個對應數據庫的主人),既然有操作數據庫(倉庫)的權利,就肯定有操作數據庫中每個Schema(房間)的權利,就是說每個數據庫搜索映射的User有每個 Schema(房間)的鑰匙,換句話說,如果他是某個倉庫的主人,那麼這個倉庫的使用權和倉庫中的所有東西都是他的(包括房間),他有完全的操作權,可以扔掉不用的東西從每個房間,也可以放置一些有用的東西到某一個房間,呵呵,和現實也太相似了吧。我還可以給User分配具體的權限,也就是他到某一個房間能做些什麼,是隻能看(Read-Only),還是可以像主人一樣有所有的控制權(R/W),這個就要看這個User所對應的角色Role了,至於分配權限的問題,我留在以後單獨的blog中詳述。比喻到這裏,相信大家都清楚了吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章