資料庫之模式

2021-08-21 18:03:59 字數 1234 閱讀 7604

schema就是資料庫物件的集合,這個集合包含了各種物件如:表、檢視、儲存過程、索引等。為了區分不同的集合,就需要給不同的集合起不同的名字,預設情況下乙個使用者對應乙個集合,使用者的schema名等於使用者名稱,並作為該使用者預設schema。所以schema集合看上去像使用者名稱。

如果把database看作是乙個倉庫,倉庫很多房間(schema),乙個schema代表乙個房間,table可以看作是每個房間中的儲物櫃,user是每個schema的主人,有運算元據庫中每個房間的權利,就是說每個資料庫對映的user有每個schema(房間)的鑰匙。view就是你把你想要的儲物櫃都開啟展現出來。索引就是為這些儲物櫃拉乙個標單,可以方便你找東西。

我們訪問乙個表時,沒有指明該錶屬於哪乙個schema中的,系統就會自動給我們在表上加上預設的schema名。在資料庫中乙個物件的完整名稱為schema.object,而不屬user.object。只是因為預設情況下,schema以user名命名,所以長得都一樣。

在mysql中建立乙個schema和建立乙個database的效果好像是一樣的,但是在sqlserver和orcal資料庫中效果又是不同的。

在sql server 2000中,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名字一一 對應並且相同。

資料庫模式

1 我們知道資料庫和表是描述和儲存使用者資料的,那麼問題來了,對於資料庫和表,誰來描述和儲存它們呢?2 這就是模式做的事情。mysql安裝之後,有乙個預設的資料庫,information schema,這個裡面儲存了資料庫和表的內容,需要注意的是,information schema還包含了自身的內...

資料庫模式

資料庫系統結構是資料庫的乙個總的框架,儘管實際的資料庫品種多種多樣,支援不同的資料庫模型,使用不同的資料庫語言,建立在不同的作業系統之上,但絕大多數資料庫系統在總的體系結構上,都具有 模式的結構特徵,學習資料庫的 模式有助於理解資料庫設計及應用中的一些概念。資料庫的 模式,分為外模式 內模式 概念模...

資料庫之保護資料庫

一 完整性定義 分類 實體完整性 域完整性 使用者定義完整性 建立約束 主鍵 外來鍵 1 建立表的同時建立約束 1 主鍵primary key 2 外來鍵foreign key 父關鍵字在自己表中必須是主鍵 父子必須完全一樣 3 唯一unique 4 預設值default舉例create table...