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