程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oracle學習入門系列之六模式

oracle學習入門系列之六模式

編輯:Oracle教程

oracle學習入門系列之六模式


oracle學習入門系列之六

模式

上篇咱們學習記錄了ORACLE數據庫中的數據庫結構、內存結構和進程等,篇幅 蛤蟆感覺偏多了。這次要休整下,每次筆記不宜太多,不然與書籍有何區別。我們要保證的是每次做記錄都能所有收獲所有提升。

上次中我們從總體上把握了下ORACLE系統結構,這次開始我們將涉及到ORACLE數據庫的具體方方面面了。本次就從模式對象入手。

老規矩,先來兩個問題:

a) 什麼事模式

b) 為什麼需要

搞清楚這兩個問題即可。

本人郵箱:[email protected]

微信公眾號: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概念了麼?)

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved