從今日起連結四天Oracle,由馮威老師授課。由于以前沒有接觸過Oracle數據庫,所以上午講解的Oraclae數據庫的一些專業名詞,讓我有點措手不及。不過沒關系,回家看一下就可以了。上午的內容比較枯燥,下午還好。下午講解在Oracle數據庫中使用SQL語句,這相對輕松些。SQL語句與前兩天學習的在MySQL中使用SQL語句一樣,但還沒講那么多,十分簡單!首先回顧一下Oracle的基本概念。
Oracle數據庫的特點:
1. 支持大數據量,多用戶的高性能的事務處理。
2. Oracle遵守數據存取語言、操作系統、用戶接口和網絡通訊協議的工業標準。
3. 實施安全控制和完整性控制。
4. 支持分布式數據庫和分布處理。
5. 具有可移植性、可兼容性和可連接性。
6. 全球化、跨平臺的數據庫。
Oracle數據庫的一些基本概念:
數據庫對象:
1. 表:與其他數據庫相同,是一種數據存儲對象——數據實體。由行和列組成,列是字段,行是一條記錄。
2. 約束條件:用于保證數據必須符合的一些約束行規則的,被設置在單個字段或多個字段組合上的,寫入這些字段的數據必須符合約束條件的限制。這是什么?可能是varchar(20),這種東西,或者 not null之類的吧!應該還有SQL語句中的約束條件。
3. 視圖:也就是虛表。實際上視圖就是一個命令查詢的結果集。
4. 索引:構建于表字段或者字段組合上,加速對表的查詢。
5. 序列:產生順序的不重復的字符串,就是主鍵。
6. 同義詞:一個數據庫對象的別名。
7. 存儲過程:用于完成某種特定功能的PL/sql程序,存儲在數據庫中。
8. 函數:用于完成復雜計算的函數,這個比較好理解。比如sum、avg…。
9. 觸發器:這個就是數據庫的事件處理機制,沒什么特別的。
10. 包:這個比較高級。一些相關的函數和存儲過程的命令集合,存儲在數據庫中。
數據庫安全:
1. 用戶:就是數據庫的用戶!可以操作自己權限的數據。
2. 方案:一組數據庫對象的命令集合,一個方案唯一對應一個數據庫用戶,方案的名稱和用戶名稱完全相同,在訪問數據庫對象的時候,通常采取的是“方案名.對象名”的方式來訪問。這種用法還是第一次見。
3. 權限:就是用戶只能根據管理員設置的用戶權限進行的相關操作,數據庫里也有角色這個定義。不同的角色具有不同的權限。用戶被賦予了某個角色,他就具有這個角色的權限。
4. 角色:一組命令的權限,用于簡化對權限的管理操作,可以一次將多個權限授予一個或者多個用戶。角色,在一些商業軟件中比較常見,企業管理軟件中應用居多。
5. 配額:有點像大鍋飯時期的配額,但這里的配額不是均衡的。這里的配額是指,當創建存儲對象時,比如表。需要一安的數據庫空間來存放這些對象,這些空間就是配額。
數據庫文件和存儲:
1. 數據文件:用于存放數據的操作系統文件,文件中保存著用戶創建的所有數據庫對象的信息。它十分重要,如果丟失就會導致所有數據丟失。數據庫包含一個或多個數據庫文件。老馮在講解Oracle安裝時,提到將數據庫的數據部分安裝在非系統盤里,就是為了保護數據文件。直接在安裝界面中將安裝路徑修改為非系統盤即可。
2. 表空間:數據文件被組織在一起,按照表空間方式進行管理。它是一個或多個數據文件的邏輯集合,在數據庫中存儲空間被表現為表空間,在操作系統中表現為數據文件。一個數據庫可以包含多個表空間。
3. 控制文件:數據庫的核心文件,存放著數據庫重要的信息,例如數據庫的名稱和數據庫的結構(數據文件、重做日志文件的名稱和目錄)。
4. 重做日志文件:記錄數據庫改變的文件,所有數據修改操作都記錄在日志文件中,主要用于保證數據庫的可恢復性。
5. 初始化參數文件:存放數據庫初始化參數的文件,數據庫啟動時讀取這些參數設置分配數據庫的內存空間。
數據庫網絡訪問:
1. 數據庫名:在控制文件中有記錄,在參數文件中通過“db_name指定”。
2. 實例名:數據庫的內在區域和后臺進程的集合的總稱,在參數文件中通過“instance_name”指定,通常與“db_name”相同。
3. 服務名:數據庫在操作系統上被作為一個服務對待,對外來說它就是一個數據庫服務。服務器名稱通過參數service_name指定,通常與全局數據庫名相同。
4. 連接字符串:通過網絡訪問遠端服務器上的數據時,用于描述數據庫訪問地址的字符串,通常的結構是:“主機名(或IP):端口號:服務名”,例如:“192.168.1.100:1521:orcl”,1521是Oracle數據庫的默認端口號。
5. 服務命名:連接字符串的別名,因為連接字符串的復雜所以使用服務命名替代,被用于通過網絡連接數據庫,通常的使用格式是:“用戶名/口令@服務名”。
6. 監聽器:在服務器端運行的一個進程,用于監聽客戶端到數據庫的連接請求,在通過網絡訪問數據庫時必須啟動。
OK!看完成上邊的內容,我簡單的回顧一下Oracle的安裝與配置吧!雖然相比SQL語句,上邊的內容不是很重要,但是多了解還是好的,如果在以后的工作中能用到那就更好了!
Oracle的安裝,這個比較簡單,首先說一下注意的問題:
1. 不要使用非字母路徑,路徑中不要包含空格。
2. 建議裸機安裝,否則極可能安裝失敗或錯誤。
3. 成功安裝后,不要使用系統優化等工具。這樣可能造成Oracle系統出錯。
4. 將系統文件安裝到系統盤,將數據文件安裝到非系統盤。
5. 設置全局數據庫名稱:數據庫實例+域名。例,itcast.com。
開始安裝,直接將安裝路徑設置為非系統盤即可。安裝程序會默認將系統文件安裝到系統盤中。其他的都不需要設置。
安裝完成后會提示配置系統。首先選擇監聽器程序配置,添加一個監聽器。非常簡單!什么是監聽器?看上邊的基本概念吧!設置監聽器名稱(隨意),協議使用TCP,端口默認。服務器端不要添加過多的監聽器,既然是測試或者自己用一個就足夠了。監聽器也是一個服務,可能在Windows的服務列表中關閉它們。
安裝Oracle客戶端: 然后配置命名方法,什么是命名方法配置?(http://lwchq.spaces.live.com/blog/cns!76F6E52267F8CCF6!703.entry?wa=wsignin1.0&sa=214971721)
客戶機應用程序在試圖連接數據庫服務時,需要借助命名方法將連接標識符解析為連接描述符。
Oracle Net 提供了五種命名方法:
主機命名(Host Naming):使 TCP/IP 環境中的用戶能夠通過其現有名稱解析服務來解析名稱
本地命名:使用在每個客戶機的 tnsnames.ora 文件中配置和存儲的信息查找網絡地址
目錄命名:將數據庫服務或網絡服務名解析為連接描述符,該描述符存儲在中央目錄服務器中
Oracle Names:這是由 Oracle Names 服務器系統構成的 Oracle 目錄服務,這些服務器可以為網絡上的每個服務提供由名稱到地址的解析
外部命名:使用受支持的第三方命名服務
對于只有幾個數據庫的小型組織來說,應使用主機命名將名稱存儲在現有名稱解析服務中,也可使用本地命名將名稱存儲在客戶機上的 tnsnames.ora 文件中。對于有多個數據庫的大型組織來說,應使用目錄命名將名稱存儲在集中管理的符合 LDAP 的目錄服務器中。
配置成本地命名即可。
配置本地NET服務器,我的電腦上東西多,還不敢安裝Oracle的服務器,所以直接連接到了老馮的服務器。
1. 添加
2. 服務器名:itcast.com,前面有提到過。
3. TCP
4. 主機名,如果是本地可以鍵入“localhost”。如果是其他機器,IP地址。
5. 選擇測試,如果測試失敗,更改登錄。OK!
此時可以使用上面配置的賬戶,用Oracle自帶的SQL Plus登錄,SQL是個控制臺程序,可以執行SQL語句。
Oracle自帶的EnterpriseManagerConsole,可以視圖化的對服務器進行設置。只有在客戶端才有這個工具。
管理Oracle數據庫,用的最多的是PLSQL Developer,老馮給我們發了個“PLSQL Developer 7.0.1”,并且下午對SQL語句在Oracle中的應用的講解,全是使用這個工具!
學到這兒,多少有些想深入了解一下數據庫。雖然學習完這四天的Oracle后,在以后的開發中足夠用。但IT這個行業的知識太寬了,我不可以學習那么寬,要有針對性的學習!所以,不到需要那天還是學好當下,鉆研當下吧!
幸好來到這里學習,這些有經驗的講師把各技術重點都整理出來了。我們學習的就是這些,如果要是自學,這些東西不知道得學習多長時間!也不知道會走多少彎路!可能真自學成才的那一天,這些技術已經有些落伍了。學習技術的重點就是把握技術的核心和實現原理,即使將來出了新技術,也是基于這些技術的升級罷了!我堅決支持這種深入的學習方式!