3 回答

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
database schema 是指數(shù)據(jù)庫(kù)的模式結(jié)構(gòu)定義,就是你創(chuàng)建了哪些表,表中的屬性是什么
database instance 是指你創(chuàng)建的這個(gè)數(shù)據(jù)庫(kù)

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
schema為數(shù)據(jù)庫(kù)對(duì)象的集合里,面包含了各種對(duì)象如tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links
“我們可以把Database看作是一個(gè)大倉(cāng)庫(kù),倉(cāng)庫(kù)分了很多很多的房間,Schema就是其中的房間,一個(gè)Schema代表一個(gè)房間。"

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
在MySQL中創(chuàng)建一個(gè)Schema好像就跟創(chuàng)建一個(gè)Database是一樣的效果,在SQL Server和Orcal數(shù)據(jù)庫(kù)中好像又不一樣. 目前我只能理解,在mysql中 schema<==>database。
數(shù)據(jù)庫(kù)中User和Schema的關(guān)系
假如我們想了解數(shù)據(jù)庫(kù)中的User和Schema究竟是什么關(guān)系,首先必須了解一下數(shù)據(jù)庫(kù)中User和Schema到底是什么概念。
在SQL Server2000中,由于架構(gòu)的原因,User和Schema總有一層隱含的關(guān)系,讓我們很少意識(shí)到其實(shí)User和Schema是兩種完全不同的概念,不過(guò)在SQL Server2005中這種架構(gòu)被打破了,User和Schema也被分開(kāi)了。
首先我來(lái)做一個(gè)比喻,什么是Database,什么是Schema,什么是Table,什么是列,什么是行,什么是User?我們可以可以把Database看作是一個(gè)大倉(cāng)庫(kù),倉(cāng)庫(kù)分了很多很多的房間,Schema就是其中的房間,一個(gè)Schema代表一個(gè)房間,Table可以看作是每個(gè)Schema中的床,Table(床)就被放入每個(gè)房間中,不能放置在房間之外,那豈不是晚上睡覺(jué)無(wú)家可歸了J。,然后床上可以放置很多物品,就好比Table上可以放置很多列和行一樣,數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)的基本單元是Table,現(xiàn)實(shí)中每個(gè)倉(cāng)庫(kù)放置物品的基本單位就是床,
User就是每個(gè)Schema的主人,(所以Schema包含的是Object,而不是User),其實(shí)User是對(duì)應(yīng)與數(shù)據(jù)庫(kù)的(即User是每個(gè)對(duì)應(yīng)數(shù)據(jù)庫(kù)的主人),既然有操作數(shù)據(jù)庫(kù)(倉(cāng)庫(kù))的權(quán)利,就肯定有操作數(shù)據(jù)庫(kù)中每個(gè)Schema(房間)的權(quán)利,就是說(shuō)每個(gè)數(shù)據(jù)庫(kù)映射的User有每個(gè)Schema(房間)的鑰匙,換句話說(shuō),如果他是某個(gè)倉(cāng)庫(kù)的主人,那么這個(gè)倉(cāng)庫(kù)的使用權(quán)和倉(cāng)庫(kù)中的所有東西都是他的(包括房間),他有完全的操作權(quán),可以扔掉不用的東西從每個(gè)房間,也可以放置一些有用的東西到某一個(gè)房間,呵呵,和現(xiàn)實(shí)也太相似了吧。我還可以給User分配具體的權(quán)限,也就是他到某一個(gè)房間能做些什么,是只能看(Read-Only),還是可以像主人一樣有所有的控制權(quán)(R/W),這個(gè)就要看這個(gè)User所對(duì)應(yīng)的角色Role了,至于分配權(quán)限的問(wèn)題,我留在以后單獨(dú)的blog中詳述。比喻到這里,相信大家都清楚了吧。
添加回答
舉報(bào)