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.
也就是說(shuō)磨确,schema是一個(gè)邏輯概念,是數(shù)據(jù)庫(kù)對(duì)象的集合声邦,數(shù)據(jù)庫(kù)對(duì)象包括:tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links乏奥。
“我們可以把Database看作是一個(gè)大倉(cāng)庫(kù),倉(cāng)庫(kù)分了很多很多的房間亥曹,Schema就是其中的房間邓了,一個(gè)Schema代表一個(gè)房間恨诱,Table可以看作是每個(gè)Schema中的床,Table(床)被放入每個(gè)房間中骗炉,不能放置在房間之外照宝,那豈不是晚上睡覺(jué)無(wú)家可歸了,然后床上可以放置很多物品句葵,就好比 Table上可以放置很多列和行一樣硫豆,數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)的基本單元是Table,現(xiàn)實(shí)中每個(gè)倉(cāng)庫(kù)放置物品的基本單位就是床笼呆, User就是每個(gè)Schema的主人熊响,(所以Schema包含的是Object,而不是User)诗赌,user和schema是一一對(duì)應(yīng)的汗茄,每個(gè)user在沒(méi)有特別指定下只能使用自己schema(房間)的東西,如果一個(gè)user想使用其他schema(房間)的東西铭若,那就要看那個(gè)schema(房間)的user(主人)有沒(méi)有給你這個(gè)權(quán)限了洪碳,或者看這個(gè)倉(cāng)庫(kù)的老大(DBA)有沒(méi)有給你這個(gè)權(quán)限了。換句話(huà)說(shuō)叼屠,如果你是某個(gè)倉(cāng)庫(kù)的主人瞳腌,那么這個(gè)倉(cāng)庫(kù)的使用權(quán)和倉(cāng)庫(kù)中的所有東西都是你的(包括房間),你有完全的操作權(quán)镜雨,可以扔掉不用的東西從每個(gè)房間嫂侍,也可以放置一些有用的東西到某一個(gè)房間,你還可以給每個(gè)User分配具體的權(quán)限荚坞,也就是他到某一個(gè)房間能做些什么挑宠,是只能看(Read-Only),還是可以像主人一樣有所有的控制權(quán)(R/W)颓影,這個(gè)就要看這個(gè)User所對(duì)應(yīng)的角色Role了各淀。”—摘自網(wǎng)絡(luò)
2.什么是表空間诡挂?
在oracle中碎浇,數(shù)據(jù)庫(kù)是由表空間來(lái)組成的,而表空間里面是具體的物理文件—數(shù)據(jù)文件璃俗。我們可以創(chuàng)建數(shù)據(jù)庫(kù)并為其指定各種表空間奴璃。
本質(zhì)上是一個(gè)或多個(gè)數(shù)據(jù)文件的集合。
3.總結(jié)
數(shù)據(jù)庫(kù)由表空間來(lái)組成旧找,而Schema是各種數(shù)據(jù)庫(kù)對(duì)象的集合溺健,用戶(hù)可以通過(guò)Schema來(lái)訪(fǎng)問(wèn)表等等這些數(shù)據(jù)庫(kù)對(duì)象,而我們查詢(xún)的時(shí)候通常是沒(méi)有通過(guò)Schema.對(duì)象的方式訪(fǎng)問(wèn),是因?yàn)楫?dāng)沒(méi)有指明該表屬于哪一個(gè)Schema中的鞭缭,系統(tǒng)就會(huì)自動(dòng)給我們?cè)诒砩霞由先笔〉腟chema名剖膳,缺省的Schema名就是用戶(hù)名。
mysql里innodb才有表空間的概念岭辣,但是它是全局的吱晒,也就是說(shuō),所有數(shù)據(jù)庫(kù)都用這個(gè)表空間沦童。