6 oracle學習入門系列之六 模式

2021-07-03 03:17:14 字數 1419 閱讀 9288

oracle學習入門系列之六

模式上篇咱們學習記錄了oracle資料庫中的資料庫結構、記憶體結構和程序等,篇幅 **感覺偏多了。這次要休整下,每次筆記不宜太多,不然與書籍有何區別。我們要保證的是每次做記錄都能所有收穫所有提公升。

上次中我們從總體上把握了下oracle系統結構,這次開始我們將涉及到oracle資料庫的具體方方面面了。本次就從模式物件入手。

老規矩,先來兩個問題:

a)        什麼事模式

b)       為什麼需要

搞清楚這兩個問題即可。

歡迎各界交流

在學模式物件前,必須先講下使用者的概念。

我們知道在建立資料庫的時候會讓我輸入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。

繼續往下走。

很多事情我不光光要知道概念是什麼,也要知道為什麼需要它。這樣我們會記得更牢,並產生興趣,也會促使我們做出改變和創新。

為什麼需要模式呢,我們知道使用者是需要密碼才能登陸的,而模式和使用者是一一對應的,那麼對了,這個是處於安全考慮的。

想想使用者小明有個表叫做工資,小紅也有個表叫做工資;他們的表各自屬於他們自己的schema. 如果小明沒有訪問小紅schema的許可權,那麼小明是不能看到小紅的工資表的,小紅也同理。此處我們需要知道訪問其他模式是需要許可權的。

除了安全之外,還有乙個方面就是整體管理方面。如果沒有schema,小紅有乙個工資表,小明乙個工資表,明天來了個小剛也乙個工資表那不是亂套了麼。有個schema,那就方便了,小紅的工資表屬於小紅這個schema。(如果你說他們的工資表分別屬於他們各自的使用者啊,這樣辯也沒錯,不過你這個想法提煉一下不就是schema概念了麼?)

這篇筆記甚是舒服,下篇見。

API入門系列之六 自己實現MessageBox

api入門系列文章的第六篇之自己動手實現messagebox。我在第四篇文章 乙個相當簡單的sdk程式 中講到了通過呼叫messageboxapi函式來彈出乙個對話方塊,那你有沒有想過,我們一句簡單的 背後所隱藏的細節是怎麼的呢,那時候讓你了解這些未免還早了些,不過現在時機到了,通過一些基本的api...

C 3 0入門系列(六) 之OrderBy操作

本節講orderby操作 我突然在想這麼乙個問題,讀者會t sql嗎?要是不知道,那我寫的是不是太簡單了呢?做個調查哦,不知道的舉手 orderby操作 簡單的,按雇用日期排序,預設為公升序 var q from e indb.employees orderby e.hiredate select ...

Asp元件中級入門與精通系列之六

作為asp的內建物件,我們最後來學習server物件 server物件用的比較多的就是html編碼,url編碼和網頁的重定向,傳送。開啟vb6,新建activex dll工程。工程名修改為fcom,類名修改為fz6 引用 microsoft active server pages object 物件...