oracle學習入門系列之六 模式,oracle入門系列之六
oracle學習入門系列之六
模式
上篇咱們學習記錄了ORACLE資料庫中的資料庫結構、記憶體結構和進程等,篇幅 蛤蟆感覺偏多了。這次要休整下,每次筆記不宜太多,不然與書籍有何區別。我們要保證的是每次做記錄都能所有收穫所有提升。
上次中我們從總體上把握了下ORACLE系統結構,這次開始我們將涉及到ORACLE資料庫的具體方方面面了。本次就從模式對象入手。
老規矩,先來兩個問題:
a) 什麼事模式
b) 為什麼需要
搞清楚這兩個問題即可。
本人郵箱:appdevzw@163.com
公眾號:HopToad
歡迎各界交流
1 模式schema
在學模式對象前,必須先講下使用者的概念。
我們知道在建立資料庫的時候會讓我輸入SYS使用者和SYSTEM使用者的密碼,這兩個使用者是系統管理員。這兩個賬戶由於權力很大,所以一般建立完資料庫後,都會自己再建立一些使用者,如:xiaoming,xiaohong,xiaogang等等。這些我們建立的就是使用者,那和模式是什麼關係呢?
模式的定義是這樣的,模式,schema,是指屬於特定使用者的資料庫物件集合。So,這個定義來看模式的定義是基於使用者之上的,沒有使用者就沒有模式之說。不過,很多ORACLE技術人員都會將使用者和模式替換,儘管他們是不同的事物。
一般實際情況是這樣的,當我們部署資料庫應用的時候,要用到很多的對象,如表、索引、觸發器、約束等等,而這些對象最後是要歸屬給某個使用者的,比如xiaoming。那麼我們就擁有一個叫做xiaoming 的模式也叫schema. 模式是個邏輯結構。
ORACLE在建立一個使用者的同時會建立一個同名的模式,所以schema和使用者是一一對應的。
我們在訪問資料庫的時候有時候需要指定訪問那個schema,比如select * from scott.emp;
這個就是訪問scott模式中的emp表,如果不加scott,模式就是訪問使用者預設模式的schema了。
這就是oracle的使用者和模式,user 和 schema.
終於搞明白了什麼是schema,那我們來說說為什麼需要schema。
繼續往下走。
2 為什麼需要模式
很多事情我不光光要知道概念是什麼,也要知道為什麼需要它。這樣我們會記得更牢,併產生興趣,也會促使我們做出改變和創新。
為什麼需要模式呢,我們知道使用者是要求輸入密碼才能登陸的,而模式和使用者是一一對應的,那麼對了,這個是處於安全考慮的。
想想使用者小明有個表叫做工資,小紅也有個表叫做工資;他們的表各自屬於他們自己的schema. 如果小明沒有訪問小紅schema的許可權,那麼小明是不能看到小紅的工資表的,小紅也同理。此處我們需要知道訪問其他模式是需要許可權的。
除了安全之外,還有一個方面就是整體管理方面。如果沒有schema,小紅有一個工資表,小明一個工資表,明天來了個小剛也一個工資表那不是亂套了麼。有個schema,那就方便了,小紅的工資表屬於小紅這個schema。(如果你說他們的工資表分別屬於他們各自的使用者啊,這樣辯也沒錯,不過你這個想法提煉一下不就是schema概念了嗎?)
這篇筆記甚是舒服,下篇見。