必威电竞|足球世界杯竞猜平台

Oracle數(shù)據(jù)庫(kù)
來(lái)源:互聯(lián)網(wǎng)

Oracle數(shù)據(jù)庫(kù)是由ORACLE(甲骨文)公司于1979年所研制開(kāi)發(fā)的一種關(guān)系型數(shù)據(jù)庫(kù)。Oracle數(shù)據(jù)庫(kù)由多個(gè)關(guān)系組成,包括表、視圖、索引、序列、存儲(chǔ)過(guò)程等。它是一個(gè)以數(shù)據(jù)為中心,反映數(shù)據(jù)之間的關(guān)系的信息庫(kù)。Oracle數(shù)據(jù)庫(kù)適用于WindowsLinuxunix等多種操作系統(tǒng)。

1977年,拉里·埃里森(Laurel E. Ellison)、鮑勃·穆勒(Bob Miner)和愛(ài)德·奧茨(Ed Oates)共同創(chuàng)立軟件開(kāi)發(fā)實(shí)驗(yàn)室(SDL,甲骨文公司的前身),并開(kāi)發(fā)了Oracle。1979年,Oralce公司推出第一個(gè)基于SQL標(biāo)準(zhǔn)的商用的關(guān)系數(shù)據(jù)庫(kù)Oralce 2版本,該版本使用匯編語(yǔ)言開(kāi)發(fā),隨后于1983年推出由c語(yǔ)言開(kāi)發(fā)的Oracle 3版本。1998年至2001年間,Oracle公司發(fā)布了i(Internet)系列的Oracle 8i版本和Oracle 9i版本。然后于2003年至2007年間開(kāi)啟g(grid)網(wǎng)格系列的研究,發(fā)布了Oracle 10g和Oracle 11g版本。Oracle從2013年開(kāi)始了對(duì)c(cloud)云系列的研究,發(fā)布了Oracle 12c,隨后版本持續(xù)的更新迭代,2023年發(fā)布了代號(hào)為“App Simple”的Oracle 23c。

Oracle數(shù)據(jù)庫(kù)憑借很好的并行處理能力、系統(tǒng)可移植性好、使用方便、功能強(qiáng)大等特性,被廣泛應(yīng)用于各個(gè)領(lǐng)域,它是一種高效率,可靠性好、適應(yīng)高吞吐量的數(shù)據(jù)庫(kù)解決方案,能夠滿(mǎn)足銀行,醫(yī)院、保險(xiǎn)等企業(yè)和事業(yè)開(kāi)發(fā)大型數(shù)據(jù)庫(kù)的需求。截止2022年,DB-Engines公布的最新排名,Oracle數(shù)據(jù)庫(kù)的受歡迎程度為全球第一。

發(fā)展歷程

發(fā)展初期

1970年,IBM公司的研究員埃德加·泰德·科德(Edgarh Ted Cod)發(fā)表一篇論文——《大型共享數(shù)據(jù)庫(kù)數(shù)據(jù)的關(guān)系模型》,在當(dāng)時(shí)還是層次模型和網(wǎng)狀模型的數(shù)據(jù)庫(kù)產(chǎn)品占據(jù)市場(chǎng)主要地位的情況下,這篇論文拉開(kāi)了關(guān)系型數(shù)據(jù)庫(kù)軟件革命的序幕。1977年,拉里·埃里森(Larry Ellison)與鮑勃·邁納(Bob Miner)和埃德·奧茨(Ed Oates)在硅谷共同創(chuàng)辦了一家名為“軟件開(kāi)發(fā)實(shí)驗(yàn)室”的軟件公司(SDL),是Oracle公司的前身,奧茨看到科德的論文后與埃里森和邁納商討,共同籌劃構(gòu)建可商用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS),并將這種商業(yè)數(shù)據(jù)庫(kù)產(chǎn)品命名為Oracle。

1979年,甲骨文公司推出了世界上第一個(gè)基于SQL標(biāo)準(zhǔn)的關(guān)系數(shù)據(jù)庫(kù)Oracle 2,可用于DEC公司的PDP-11計(jì)算機(jī),是第一個(gè)商用的關(guān)系數(shù)據(jù)庫(kù),它是基于匯編語(yǔ)言開(kāi)發(fā)的,整合了比較完整的SQL實(shí)現(xiàn),其中包括子查詢(xún)、連接及其它特性,但是軟件不穩(wěn)定,缺少事務(wù)處理這樣的重要功能。

編程語(yǔ)言的發(fā)展

隨著高級(jí)語(yǔ)言的發(fā)展,1983年3月,Oracle公司發(fā)布了由c語(yǔ)言開(kāi)發(fā)的Oracle 3,使得Oracle有了一個(gè)關(guān)鍵的特性——可移植性。還推出了SQL語(yǔ)句和事務(wù)處理的“原子性”——SQL語(yǔ)句要么成功,要么全部失敗,事務(wù)處理要么全部提交,要么全部回滾。1984年,Oracle公司發(fā)布了Oracle 4,增加了讀一致性,可以確保用戶(hù)在查詢(xún)期間看到一致的數(shù)據(jù)。1985年,Oracle公司發(fā)布了Oracle 5。成為首批可以在Client/Server模式下運(yùn)行RDBMS產(chǎn)品,這意味著運(yùn)行在桌面客戶(hù)機(jī)上的商務(wù)應(yīng)用程序能夠通過(guò)網(wǎng)絡(luò)訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器,隨后于1986年發(fā)布了Oracle 5.1版本,支持分布式查詢(xún),允許通過(guò)一次性查詢(xún)?cè)L問(wèn)存儲(chǔ)在多個(gè)位置的數(shù)據(jù)。

1988年,發(fā)布了Oracle 6.0版本,推出了PL/SQL過(guò)程化SQL語(yǔ)言,包括條件處理、循環(huán)、分支、變量和錯(cuò)誤處理,還引入了行級(jí)鎖重要特性和聯(lián)機(jī)熱備份功能,使數(shù)據(jù)庫(kù)能夠在使用過(guò)程中創(chuàng)建聯(lián)機(jī)的備份,增強(qiáng)了可用性。最終使得Oracle數(shù)據(jù)庫(kù)在數(shù)據(jù)庫(kù)市場(chǎng)確立主導(dǎo)地位的是于1992年發(fā)布基于Unix的Oracle 7版本,增加了許多新的特性,包括分布式事務(wù)處理功能、增強(qiáng)的管理功能、用于應(yīng)用程序開(kāi)發(fā)的新工具以及安全性方法,還有極強(qiáng)的網(wǎng)格能力以及系統(tǒng)易于擴(kuò)充發(fā)展的優(yōu)點(diǎn)。

隨著面向?qū)ο笳Z(yǔ)言的發(fā)展,1997年發(fā)布了Oracle 8版本,該版本支持面向?qū)ο蟮拈_(kāi)發(fā)及新的多媒體應(yīng)用,為支持Internet、網(wǎng)格計(jì)算等奠定了基礎(chǔ),開(kāi)始具有同時(shí)處理大量用戶(hù)和海量數(shù)據(jù)的特性。

網(wǎng)絡(luò)系列的Oracle數(shù)據(jù)庫(kù)

隨后的1998年發(fā)布了Oracle 8i版本,i代表Internet,這個(gè)版本中添加了大量為支持Internet而設(shè)計(jì)的特性,還為數(shù)據(jù)庫(kù)用戶(hù)提供了Java支持,也成為了第一個(gè)完全整合了本地Java運(yùn)行時(shí)環(huán)境的數(shù)據(jù)庫(kù),用Java就可以編寫(xiě)Oracle的存儲(chǔ)過(guò)程。在2001年6月的Oracle Open World大會(huì)上,Oracle發(fā)布了Oracle 9i,該版本更加強(qiáng)調(diào)了對(duì)網(wǎng)絡(luò)計(jì)算的支持,更適合于企業(yè)級(jí)高強(qiáng)度的網(wǎng)絡(luò)計(jì)算,還有一個(gè)最重要的技術(shù)Real Appllication Clusters(RAC)——集群技術(shù)。

網(wǎng)格系列的Oracle數(shù)據(jù)庫(kù)

Oracle公司著重了對(duì)網(wǎng)格發(fā)展,開(kāi)啟了grid(網(wǎng)格)版本歷程,2003年,同樣在Oracle Open World大會(huì)上發(fā)布了新版本Oracle 10g,g代表grid(網(wǎng)格),是第一個(gè)為網(wǎng)格計(jì)算而設(shè)計(jì)的數(shù)據(jù)庫(kù)。可以從單一實(shí)例遷移到網(wǎng)格計(jì)算方式,無(wú)需更改一行代碼,還具有獨(dú)特的安全性,能夠滿(mǎn)足隱私,法規(guī)遵守和數(shù)據(jù)整合方面的需求,能夠借助集群技術(shù)為用戶(hù)提供不間斷的可用性、可伸縮性和低成本的集群方式。

2007年Oralce公司全面創(chuàng)新,發(fā)布了Oracle 11g版本,根據(jù)用戶(hù)的需求實(shí)現(xiàn)信息聲明周期管理等多項(xiàng)創(chuàng)新,提高了系統(tǒng)性能的安全性。增加了RDID Tag、DICOM醫(yī)學(xué)圖像、3D空間等重要數(shù)據(jù)類(lèi)型的支持,加強(qiáng)了對(duì)Binary XML的支持和性能優(yōu)化。

云系列的Oracle數(shù)據(jù)庫(kù)

隨著云計(jì)算的發(fā)展,g版本之后開(kāi)始了c版本的發(fā)展。2013年,Oracle 12c版本正式發(fā)布,c代表cloud,也就是云計(jì)算的意思,與上一個(gè)版本11g相比,該版本采用多租戶(hù)管理的概念,通過(guò)可插拔式的結(jié)構(gòu)實(shí)現(xiàn)數(shù)據(jù)庫(kù)集群結(jié)構(gòu),共享操作系統(tǒng)和數(shù)據(jù)庫(kù),直接把數(shù)據(jù)庫(kù)以云的方式提供給客戶(hù),也成為Oracle數(shù)據(jù)庫(kù)架構(gòu)最大的改變。2015年正式推出了Oracle商務(wù)智能12c(Oracle BI 12c),能夠使企業(yè)在企業(yè)分析平臺(tái)上混合任何數(shù)據(jù),并對(duì)其進(jìn)行可視化分析。2018年,Oracle 18c發(fā)布,該版本在功能上沒(méi)有巨大變化,但是進(jìn)行了全面漸進(jìn)式改進(jìn),對(duì)性能、高可用性、多租戶(hù)、安全性、數(shù)據(jù)倉(cāng)庫(kù)和開(kāi)發(fā)等方面進(jìn)行了提升和改進(jìn)。2019年,Oracle 19c發(fā)布,該版本作為Oracle 12c和18c系列產(chǎn)品的長(zhǎng)期支持產(chǎn)品,提供了最高級(jí)別的版本穩(wěn)定性和最長(zhǎng)時(shí)間的支持服務(wù)和錯(cuò)誤修復(fù)幫助。該版本新增功能內(nèi)容:靜默模式下可以使用一些功能、增加了自動(dòng)索引功能、內(nèi)存中外部表的大數(shù)據(jù)和性能增強(qiáng)、定期清除閃回日志等

2021年,云中融合數(shù)據(jù)庫(kù)Oracle 21c正式發(fā)布,新版本包含200多項(xiàng)全新創(chuàng)新,包括不可變區(qū)塊鏈表、數(shù)據(jù)庫(kù)內(nèi)ECMAScript、原生JSON二進(jìn)制數(shù)據(jù)類(lèi)型、數(shù)據(jù)庫(kù)內(nèi)機(jī)器學(xué)習(xí)的AutoML、持久性內(nèi)存存儲(chǔ),同時(shí)增強(qiáng)了內(nèi)存、圖形處理性能、數(shù)據(jù)庫(kù)分表、多租戶(hù)和安全性功能等。

2023年,Oracle 23c版本正式發(fā)布,Oracle 23c代號(hào)為“App Simple”,專(zhuān)注于通過(guò)聲明預(yù)期結(jié)果(而不是手動(dòng)編碼)來(lái)簡(jiǎn)化數(shù)據(jù)專(zhuān)業(yè)人員、開(kāi)發(fā)人員和數(shù)據(jù)用戶(hù)與數(shù)據(jù)交互的方式。數(shù)據(jù)系統(tǒng)利用新的數(shù)據(jù)庫(kù)技術(shù)(如JSON、關(guān)系二元視圖和AI向量搜索)以及新的自然語(yǔ)言界面功能來(lái)生成解決方案。還引入了Raft Replication——筏復(fù)制,確保數(shù)據(jù)完整性和無(wú)縫操作,

版本歷程

Oracle系統(tǒng)組成與結(jié)構(gòu)

Oracle體系結(jié)構(gòu)

Oracle是以數(shù)據(jù)為中心,建立在操作系統(tǒng)之上的,所有Oracle工具要訪問(wèn)數(shù)據(jù),必須采用SQL和PL/SQL技術(shù),經(jīng)由Oracle核心處理這種SQL語(yǔ)句。可以用Oracle提供的各種工具:SQL*Plus、Oracle*Forms、Pro*C、Oracle*Menu、Oracle*ReportWriter等,來(lái)生成應(yīng)用系統(tǒng)(由用戶(hù)自己編寫(xiě)的各種應(yīng)用系統(tǒng)),如人事管理系統(tǒng)和圖書(shū)管理系統(tǒng)等,還包括Oracle本身提供的應(yīng)用軟件,如Oracle財(cái)務(wù)軟件(Oracle Financials)、Oracle生產(chǎn)制造業(yè)軟件(Oracle Manu facturing)等。

Oracle進(jìn)程結(jié)構(gòu)

進(jìn)程是一種“控制的線索”,是多用戶(hù)操作系統(tǒng)下協(xié)調(diào)多任務(wù)的一種機(jī)制,Oracle數(shù)據(jù)庫(kù)是一種復(fù)雜的多用戶(hù)系統(tǒng),需要一整套完善的進(jìn)程管理機(jī)制來(lái)控制整個(gè)系統(tǒng)的正常運(yùn)作。

例程是Oracle的進(jìn)程管理機(jī)制的核心,不管Oracle運(yùn)行在哪種硬件平臺(tái)或操作系統(tǒng)上,每個(gè)正在運(yùn)行的Oracle數(shù)據(jù)庫(kù)都有一個(gè)與之相聯(lián)系的例程,Oracle啟動(dòng)后,會(huì)在內(nèi)存中分配一片區(qū)域,稱(chēng)為系統(tǒng)全局區(qū)(SGA),同時(shí)Oracle啟動(dòng)后會(huì)產(chǎn)生一組后臺(tái)進(jìn)程,這二者結(jié)合在一起叫做Oracle例程,Oracle通過(guò)例程有效地管理數(shù)據(jù)庫(kù)的數(shù)據(jù),并為所有訪問(wèn)數(shù)據(jù)庫(kù)的用戶(hù)提供服務(wù)。

在多進(jìn)程O(píng)racle系統(tǒng)中,進(jìn)程可以分為兩種:用戶(hù)進(jìn)程與Oracle使用的服務(wù)進(jìn)程、共享服務(wù)進(jìn)程、調(diào)度進(jìn)度及后臺(tái)進(jìn)程。

用戶(hù)進(jìn)程和服務(wù)器進(jìn)程以及程序全局區(qū)構(gòu)成了用戶(hù)進(jìn)程發(fā)布并執(zhí)行SQL的用戶(hù)環(huán)境。當(dāng)用戶(hù)連接到Oracle服務(wù)器時(shí),Oracle便創(chuàng)建一個(gè)服務(wù)器進(jìn)程與之交互,并代表該用戶(hù)完成與Oracle數(shù)據(jù)庫(kù)間的交互。程序全局區(qū)是用戶(hù)專(zhuān)用的內(nèi)存結(jié)構(gòu),存儲(chǔ)該用戶(hù)連續(xù)期間與SQL語(yǔ)句執(zhí)行相關(guān)的信息。

Oracle關(guān)系系統(tǒng)組成

Oracle數(shù)據(jù)庫(kù)由多個(gè)關(guān)系組成,包括表、視圖、索引、序列、存儲(chǔ)過(guò)程、觸發(fā)器等。其中表是數(shù)據(jù)庫(kù)的核心,存儲(chǔ)了數(shù)據(jù)記錄視圖是對(duì)表數(shù)據(jù)的邏輯展現(xiàn),索引提高了數(shù)據(jù)索的效率,序列用于生成唯一標(biāo)識(shí),存儲(chǔ)過(guò)程是對(duì)一組SQL語(yǔ)句的封裝,觸發(fā)器則是對(duì)數(shù)據(jù)庫(kù)操作的響應(yīng)機(jī)制。這些關(guān)系之間相互作用,構(gòu)成一個(gè)完整的數(shù)據(jù)庫(kù)系統(tǒng)。而Oracle數(shù)據(jù)庫(kù)的關(guān)鍵是怎樣理解數(shù)據(jù)間的關(guān)系,以數(shù)據(jù)為中心,然后構(gòu)造反映這些關(guān)系的信息庫(kù)。

Oracle數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)

Oracle數(shù)據(jù)類(lèi)型

Oracle數(shù)據(jù)庫(kù)的關(guān)鍵是怎樣理解數(shù)據(jù)間的關(guān)系,以數(shù)據(jù)為中心,然后構(gòu)造反映這些關(guān)系的信息庫(kù)。在Oracle數(shù)據(jù)庫(kù)中,數(shù)據(jù)按行存放在表中,一個(gè)行包含若干列,各列可以指定為一種數(shù)據(jù)類(lèi)型,在存放表中每一列值的同時(shí),存放一字節(jié)的長(zhǎng)度參數(shù)和一字節(jié)的列標(biāo)志,基本數(shù)據(jù)類(lèi)型有:CHAR,NUMBER,DATE,LONG,RAW和LONG RAW,ROWID等。

基本數(shù)據(jù)類(lèi)型

CHAR類(lèi)型數(shù)據(jù)是字符型數(shù)據(jù),作為變長(zhǎng)的ASCII或EBCDIC字符串存儲(chǔ),可以用來(lái)存儲(chǔ)字母數(shù)字字符,漢化的Oracle可以用來(lái)存儲(chǔ)漢字,在建表時(shí)定義為char類(lèi)型的列可以存放的字符的最大個(gè)數(shù)為240。

NUMBER數(shù)據(jù)類(lèi)型是數(shù)字型數(shù)據(jù),可以存放高至這樣大的數(shù),精度可達(dá)到38位數(shù)字,可以指定精度和標(biāo)度,當(dāng)指定的精度小于實(shí)際值長(zhǎng)度時(shí),會(huì)自動(dòng)按實(shí)際數(shù)據(jù)長(zhǎng)度存放。數(shù)值數(shù)據(jù)以變長(zhǎng)格式存放,開(kāi)頭為冪次和符號(hào)字節(jié),隨后為數(shù)據(jù)字節(jié)。

DATE數(shù)據(jù)類(lèi)型是日期型數(shù)據(jù),存放在7個(gè)字節(jié)長(zhǎng)的定長(zhǎng)列中,日期的存放內(nèi)容格式為:

LONG數(shù)據(jù)類(lèi)型的列可存放長(zhǎng)達(dá)65536個(gè)字符的變長(zhǎng)字符串,LONG類(lèi)型數(shù)據(jù)是一個(gè)無(wú)結(jié)構(gòu)的數(shù)據(jù)字節(jié)組,LONG類(lèi)型的列主要用于存放字符數(shù)組或較短的文檔。定義為L(zhǎng)ONG的列可用在SELECT列表、SET語(yǔ)句、INSERT語(yǔ)句中。

RAW和LONG RAW數(shù)據(jù)類(lèi)型用于表示ORACLE不加解釋的面向字節(jié)的數(shù)據(jù),主要用于存儲(chǔ)二進(jìn)制數(shù)據(jù)或字符串。RAW類(lèi)似于CHAR數(shù)據(jù),LONG RAW類(lèi)似于LONG,區(qū)別在于RAW不對(duì)所存儲(chǔ)的字節(jié)的含義作任何假定,用SQL.NET傳送時(shí),不會(huì)做任何轉(zhuǎn)換,LONG RAW于LONG的區(qū)別也在于此。

ROWID是一個(gè)由ORACLE RDBMS系統(tǒng)負(fù)責(zé)定義更新、用戶(hù)只能查詢(xún)、與數(shù)據(jù)庫(kù)中每一行相聯(lián)系的一個(gè)邏輯列名,返回的內(nèi)容是那一行的地址,ROWID的作用有:訪問(wèn)一個(gè)特定行、查看一個(gè)表需要多少塊存儲(chǔ)空間、獲得行級(jí)鎖定。數(shù)據(jù)庫(kù)中不存放ROWID,不是數(shù)據(jù)的一列,不能對(duì)ROWID進(jìn)行增刪改查等操作。

Oracle數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)可分為邏輯存儲(chǔ)結(jié)構(gòu)和物理存儲(chǔ)結(jié)構(gòu),對(duì)于這兩種存儲(chǔ)結(jié)構(gòu),Oracle是分別進(jìn)行管理的。邏輯存儲(chǔ)結(jié)構(gòu)是Oracle內(nèi)部的組織和管理數(shù)據(jù)的方式,物理存儲(chǔ)結(jié)構(gòu)是Orale外部組織和管理數(shù)據(jù)的方式。

邏輯存儲(chǔ)結(jié)構(gòu)

Oracle在邏輯上將保存的數(shù)據(jù)劃分為一個(gè)個(gè)小單元來(lái)進(jìn)行存儲(chǔ)和維護(hù),更高一級(jí)的邏輯存儲(chǔ)結(jié)構(gòu)都是由這些基本的小單元組成的。邏輯結(jié)構(gòu)類(lèi)型按照尺寸從小到大分可分為:塊(block)-->區(qū)(extent)-->段(segment)-->表空間(tablespace)。其中,塊是Oracle用來(lái)管理存儲(chǔ)的最小單元,也是最小的邏輯存儲(chǔ)結(jié)構(gòu),Oracle數(shù)據(jù)庫(kù)在進(jìn)行輸入輸出時(shí),都是以塊為單位進(jìn)行讀寫(xiě)操作的,塊的大小是在創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候決定的,之后不能修改。區(qū)是比塊高一級(jí)的邏輯存儲(chǔ)結(jié)構(gòu),由連續(xù)的塊組成,是Oracle在進(jìn)行存儲(chǔ)空間的分配和回收的最小單位。段由多個(gè)區(qū)組成,這些區(qū)可以是連續(xù)的,也可以是不連續(xù)的。當(dāng)用戶(hù)在數(shù)據(jù)庫(kù)中創(chuàng)建各種具有實(shí)際存儲(chǔ)結(jié)構(gòu)的對(duì)象時(shí)(保存有數(shù)據(jù)的對(duì)象),比如表、索引等,Oracle將為這些對(duì)象創(chuàng)建段。表空間:最高級(jí)的邏輯存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)庫(kù)是由多個(gè)表空間組成的。常見(jiàn)的表空間有:數(shù)據(jù)表空間、系統(tǒng)表空間、回滾表空間和臨時(shí)表空間。

物理存儲(chǔ)結(jié)構(gòu)

Oracle數(shù)據(jù)庫(kù)邏輯上由一個(gè)或多個(gè)表空間組成,每個(gè)表空間在物理上由一個(gè)或多個(gè)數(shù)據(jù)文件組成,而每個(gè)數(shù)據(jù)文件是有數(shù)據(jù)塊構(gòu)成的。所以,邏輯上數(shù)據(jù)存放在表空間中,而物理上存儲(chǔ)在表空間所對(duì)應(yīng)的數(shù)據(jù)文件中。構(gòu)成數(shù)據(jù)庫(kù)的物理文件主要有:數(shù)據(jù)文件,存放數(shù)據(jù)庫(kù)數(shù)據(jù);控制文件,存放數(shù)據(jù)庫(kù)的基本信息;重做日志文件,存檔對(duì)數(shù)據(jù)的改變。

Oracle SQL和PL/SQL

SQL是操作關(guān)系型數(shù)據(jù)庫(kù)的工具,其最顯著特點(diǎn)是面向集合,使用SQL語(yǔ)言執(zhí)行查詢(xún)時(shí),只需說(shuō)明數(shù)據(jù)所滿(mǎn)足的條件,不必說(shuō)明數(shù)據(jù)的存儲(chǔ)位置和如何遍歷數(shù)據(jù),常見(jiàn)的大型DBMS一般會(huì)對(duì)SQL語(yǔ)言加入過(guò)程性語(yǔ)言特征,對(duì)其功能進(jìn)行擴(kuò)展,從而在數(shù)據(jù)庫(kù)中也可以進(jìn)行編程,功能擴(kuò)展后,Oracle的編程語(yǔ)言稱(chēng)為PL/SQL。

在PL/SQL塊中,可以使用數(shù)據(jù)查詢(xún)語(yǔ)言,數(shù)據(jù)操作語(yǔ)言和數(shù)據(jù)控制語(yǔ)言,但不能使用數(shù)據(jù)定義語(yǔ)言,具體說(shuō),就是在SQL塊中可以使用SELECT、INSERT、UPDATE、DELETE、COMMIT、ROLLBACK,而不能使用CREATE、ALTER、DROP、GRANT、REVOKE。

在Oracle中,使用了稱(chēng)之為“專(zhuān)用SQL區(qū)”(Private SQL,Area)的工作區(qū),用于執(zhí)行SQL語(yǔ)句和存儲(chǔ)處理信息,在PL/SQL中,有一種叫做游標(biāo)(CURSOR)的專(zhuān)用SQL構(gòu)造,可以快速存取它所存儲(chǔ)的信息,PL/SQL由兩種類(lèi)型的游標(biāo):顯示優(yōu)先和隱式游標(biāo)。PL/SQL為全部SQL DML語(yǔ)句隱式地定義一個(gè)游標(biāo),而對(duì)于返回多行的查詢(xún),為了單個(gè)地處理每一行,必須顯式地定義一個(gè)游標(biāo)。在PL/SQL塊子程序或包的說(shuō)明部分定義游標(biāo),給游標(biāo)命名,并指定一查詢(xún),之后可用三種命令:OPEN、FETCH和CLOSE控制游標(biāo)。

Oracle數(shù)據(jù)庫(kù)的支持工具

SQL*Plus

SQL*PLUS是一個(gè)關(guān)于ORACLE RDBMS的即席、交互終端接口程序,在SQL*Plus環(huán)境下,可以使用的命令有兩種:一種是SQL,另一種是SQL*Plus專(zhuān)用命令。利用SQL語(yǔ)言可完成數(shù)據(jù)定義、存儲(chǔ)控制、數(shù)據(jù)操控、數(shù)據(jù)查詢(xún)等功能;利用SQL*Plus專(zhuān)用命令可完成命令的編輯、存儲(chǔ)和調(diào)入以及格式化報(bào)表等功能。

SQL*Forms

SQL*Forms是一個(gè)屬于第四代語(yǔ)言的應(yīng)用軟件開(kāi)發(fā)支持工具,它通過(guò)讓用戶(hù)快速開(kāi)發(fā)基于屏幕格式(Form)的應(yīng)用,提供一種直觀、便捷、交互式操作數(shù)據(jù)庫(kù)的手段。利用SQL*Forms,用戶(hù)可運(yùn)行已建立的Forms應(yīng)用程序,通過(guò)操作一些功能鍵,完成對(duì)數(shù)據(jù)庫(kù)的查詢(xún)、更新、刪除、插入和統(tǒng)計(jì)操作。SQL*Forms面向應(yīng)用軟件開(kāi)發(fā)者的是一些窗口,窗口技術(shù)是ORACLE RDBMS所采用的技術(shù)之一。一個(gè)窗口是屏幕中一組邏輯相關(guān)的填入項(xiàng)、可供執(zhí)行的操作和選擇項(xiàng)集合。SQL*Forms提供多級(jí)窗口,進(jìn)入某窗口是指系統(tǒng)打開(kāi)這個(gè)窗口在屏幕上顯示并可在該窗口進(jìn)行工作。

SQL*Report

SQL*Report是一個(gè)報(bào)表生成工具,它包括兩個(gè)實(shí)用程序,報(bào)表生成器程序(RPT)和報(bào)表正文格式化程序(RPF)。他們必須一起結(jié)合使用能夠從數(shù)據(jù)庫(kù)中提取數(shù)據(jù),并以所希望的額形式產(chǎn)生包括數(shù)據(jù)庫(kù)信息的報(bào)表。報(bào)表生成程序RPT通過(guò)SQL語(yǔ)句提取數(shù)據(jù)庫(kù)信息,報(bào)表正文格式化程序RPT根據(jù)正文中所含的命令對(duì)這些信息進(jìn)行格式化,一個(gè)報(bào)表程序大體由SELECT宏、體宏、頭宏、足宏組成。對(duì)于報(bào)表程序的編制就是對(duì)報(bào)表中用到的變量進(jìn)行說(shuō)明,編制SELECT宏,體宏,頭宏以及一些有特殊用途的宏,最后把它用REPORY語(yǔ)句鏈接起來(lái)。

SQL*Calc

SQL*Calc是一個(gè)供用戶(hù)快速生成報(bào)表的第四代語(yǔ)言的應(yīng)用開(kāi)發(fā)支持工具,提供了操作ORACLE數(shù)據(jù)庫(kù)、對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)計(jì)算和快速制表的有效手段。SQL*Calc的工作屏幕格式是表格形式的工作頁(yè),允許用戶(hù)在屏幕上直接控制光標(biāo)畫(huà)表格線,并直接可以填寫(xiě)計(jì)算公式、SQL語(yǔ)句以及具體正文內(nèi)容。利用SQL*Calc能夠從數(shù)據(jù)庫(kù)中查詢(xún)所需的數(shù)據(jù),在屏幕上進(jìn)行修改,形成最終報(bào)表,并可以多種方式輸出。SQL*Calc制表命令是樹(shù)形結(jié)構(gòu)。

SQL*Net

SQL*NET是Oracle公司的遠(yuǎn)程數(shù)據(jù)庫(kù)訪問(wèn)包,在網(wǎng)絡(luò)環(huán)境下實(shí)現(xiàn)客戶(hù)機(jī)/服務(wù)器的連接與通信。SQL*NET采用TNS(透明網(wǎng)絡(luò)底層)和符合工業(yè)標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議來(lái)連接客戶(hù)機(jī)和服務(wù)器,并建立一個(gè)ORACLE會(huì)話,從TNS監(jiān)聽(tīng)進(jìn)程處接收與數(shù)據(jù)庫(kù)連接的請(qǐng)求,并將控制傳遞給數(shù)據(jù)庫(kù)服務(wù)器,建立并保持二者之間的信息轉(zhuǎn)換。SQL*NET由V1和V2兩個(gè)版本,較早的SQL*NET V1有兩個(gè)部分,與ORACLE RDBMS和所有工具連接的SQL*NET組成部分、SQL*NET協(xié)議驅(qū)動(dòng)程序。而在SQL*NET V2中,SQL*NET驅(qū)動(dòng)程序已經(jīng)重新設(shè)計(jì),提供通用的網(wǎng)絡(luò)操作,所有的通用網(wǎng)絡(luò)操作和制定協(xié)議支持被TNS和ORACLE協(xié)議適配器所取代。

PRO*C

PRO*C、PRO*COBOL、PRO*Fortran等PRO*系列是甲骨文公司所提供的可編程接口產(chǎn)品,可以使用c語(yǔ)言編程語(yǔ)言對(duì)ORACLE數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行操作,其中一種操作方法就是在C語(yǔ)言程序中嵌入SQL語(yǔ)句,所編寫(xiě)的程序叫做PRO*C程序,通過(guò)PRO*C程序可以方便實(shí)現(xiàn)特定表格的輸出。

Oracle數(shù)據(jù)庫(kù)定價(jià)和市場(chǎng)

定價(jià)

Oracle數(shù)據(jù)庫(kù)有基于開(kāi)發(fā)人員的Oracle Database 23c Free—Developer Release和用于商業(yè)的授權(quán)收費(fèi)版本。Oracle數(shù)據(jù)庫(kù)有兩種授權(quán)許可模式,按處理器(Processor)數(shù)和按用戶(hù)數(shù)(Named User Plus)。Named User Plus許可證是基于訪問(wèn)軟件的用戶(hù)數(shù)量,而Proseeor許可證基于安裝軟件的服務(wù)器中的處理器內(nèi)核數(shù)量,其中用戶(hù)數(shù)量和處理器數(shù)量是衡量許可證的單位。企業(yè)版中每個(gè)處理器至少需要25個(gè)Named User Plus許可證,標(biāo)準(zhǔn)版 2的每臺(tái)服務(wù)器至少需要10個(gè)用戶(hù)。

市場(chǎng)

早期Oracle數(shù)據(jù)庫(kù)的市場(chǎng)份額一直處于領(lǐng)先的地位,而云計(jì)算顛覆了數(shù)據(jù)庫(kù)的市場(chǎng),許多公司圍繞開(kāi)源的數(shù)據(jù)庫(kù)軟件建立起管理系統(tǒng),這導(dǎo)致了Oracle數(shù)據(jù)庫(kù)的市場(chǎng)份額呈現(xiàn)下降的趨勢(shì)。2020年,全球數(shù)據(jù)庫(kù)市場(chǎng)規(guī)模達(dá)到648億美元,其中Oracle數(shù)據(jù)庫(kù)市場(chǎng)份額占比為24%,相較于上一年下降了3%。2021年,全球數(shù)據(jù)庫(kù)市場(chǎng)規(guī)模達(dá)到了700億美元,Oracle數(shù)據(jù)庫(kù)的市場(chǎng)份額占比下降到了20.6%。2022年,全球數(shù)據(jù)庫(kù)市場(chǎng)規(guī)模為833億美元,而Oracle數(shù)據(jù)庫(kù)在關(guān)系型數(shù)據(jù)庫(kù)的市場(chǎng)占有率為30.2%。截止2023年11月3日,DB-Engines公布的排名顯示,Oracle數(shù)據(jù)庫(kù)的排名得分為全球第一,是最受歡迎的關(guān)系型數(shù)據(jù)庫(kù),相比2022年,Oracle數(shù)據(jù)庫(kù)在關(guān)系型數(shù)據(jù)庫(kù)的市場(chǎng)占比下降到28.6%,而在公有云中占有33.9%的市場(chǎng)份額。

Oracle數(shù)據(jù)庫(kù)的實(shí)際應(yīng)用

應(yīng)用于醫(yī)療信息

隨著計(jì)算機(jī)技術(shù)、數(shù)據(jù)庫(kù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,數(shù)字化信息已深入到社會(huì)的各個(gè)領(lǐng)域,醫(yī)院也加快數(shù)字化建設(shè)步伐,尤其以數(shù)據(jù)庫(kù)為核心的醫(yī)院信息系統(tǒng)的不斷發(fā)展更為顯著。Oracle數(shù)據(jù)庫(kù)的真正應(yīng)用集群技術(shù)RAC為醫(yī)院龐大的數(shù)據(jù)量和復(fù)雜的業(yè)務(wù)流程提供了強(qiáng)有力的支持,它是由兩臺(tái)或者兩臺(tái)以上同構(gòu)計(jì)算機(jī)及共享存儲(chǔ)設(shè)備構(gòu)成,以提供強(qiáng)大的數(shù)據(jù)庫(kù)處理能力以及容錯(cuò)能力,保障了持續(xù)的數(shù)據(jù)訪問(wèn)。同時(shí),Oracle RAC還能根據(jù)醫(yī)院業(yè)務(wù)需求的變化搞笑擴(kuò)展以滿(mǎn)足任何性能需求,還可將醫(yī)院購(gòu)置成本和操作復(fù)雜性降至最低。橫向和縱向上的伸縮特性為其提供了一個(gè)可在任何方向上進(jìn)行擴(kuò)展的平臺(tái),可支持醫(yī)院業(yè)務(wù)增長(zhǎng)。應(yīng)用系統(tǒng)的開(kāi)發(fā)、管理及更改管理因此變得更為簡(jiǎn)單,從而降低了成本。

應(yīng)用于國(guó)家統(tǒng)計(jì)局

國(guó)家統(tǒng)計(jì)局是國(guó)家重要信息匯總、信息處理的中樞機(jī)構(gòu),要與國(guó)務(wù)院各大委部及各省市信息系統(tǒng)交流信息,但其信息系統(tǒng)包含的機(jī)種多,有DEC、HP、CDC以及AT&T等公司的機(jī)型,而Oracle數(shù)據(jù)庫(kù)系統(tǒng)幾乎可以使用任何計(jì)算機(jī)來(lái)建立可移植的基于SQL的應(yīng)用系統(tǒng),并且把不同計(jì)算機(jī)上的許多應(yīng)用連接起來(lái),形成功能強(qiáng)的分布式數(shù)據(jù)庫(kù)環(huán)境,因此,國(guó)家統(tǒng)計(jì)局采用Oracle數(shù)據(jù)庫(kù)產(chǎn)品為其信息系統(tǒng)服務(wù)。

應(yīng)用于農(nóng)業(yè)信息化

在大數(shù)據(jù)時(shí)代,農(nóng)業(yè)信息化發(fā)展遇到了瓶頸。信息全球化使得農(nóng)業(yè)的發(fā)展與傳統(tǒng)農(nóng)業(yè)相比發(fā)生了巨大的改變。Oracle數(shù)據(jù)庫(kù)以分布式數(shù)據(jù)處理為中心,它可以提供集中、 開(kāi)放、全面的信息管理系統(tǒng)。把Oracle數(shù)據(jù)庫(kù)作用于農(nóng)業(yè)的信息技術(shù)發(fā)展可以提高農(nóng)業(yè)資源的管理與決策指揮。利用信息技術(shù)方法,把農(nóng)業(yè)資源與環(huán)境中重要的數(shù)據(jù)快速、自動(dòng)、高效地采集并且儲(chǔ)存起來(lái),通過(guò)發(fā)現(xiàn)問(wèn)題、整理問(wèn)題、分析問(wèn)題,繼而高效解決問(wèn)題。通過(guò)與Oracle數(shù)據(jù)庫(kù)相結(jié)合,發(fā)展出來(lái)的信息采集技術(shù)、模擬種植技術(shù)、資源處理技術(shù)為一體的技術(shù)手段。

參考資料 >

..2023-10-13

數(shù)據(jù)庫(kù).oracle.2023-10-17

什么是數(shù)據(jù)庫(kù)?.oracle.2023-10-13

..2023-10-13

..2023-10-13

Oracle數(shù)據(jù)庫(kù)發(fā)展史.清華大學(xué)出版社.2023-10-13

Oracle的發(fā)展史.清華大學(xué)出版社.2023-10-13

..2023-10-16

揭示 Oracle 全球分布式數(shù)據(jù)庫(kù)的強(qiáng)大功能:Oracle 數(shù)據(jù)庫(kù) 23c 的進(jìn)步.oracle.2023-10-16

Oracle CloudWorld, Las Vegas — September 19, 2023.oracle.2023-11-03

..2023-10-17

2023年全球數(shù)據(jù)庫(kù)軟件行業(yè)發(fā)展現(xiàn)狀分析 Oracle數(shù)據(jù)庫(kù)管理系統(tǒng)全球排名第一【組圖】.前瞻網(wǎng).2023-11-02

..2023-10-13

..2023-10-16

..2023-10-16

..2023-10-16

..2023-10-16

Oracle Database 18c:現(xiàn)已在 Oracle 云和 Oracle 集成系統(tǒng)上推出.oracle.2023-10-16

Oracle Database Features.oracle.2023-10-16

甲骨文在Oracle云中推出新版Oracle數(shù)據(jù)庫(kù)21c.中關(guān)村在線.2023-10-16

..2023-10-16

..2023-10-16

..2023-10-13

ORACLE數(shù)據(jù)庫(kù)存儲(chǔ)結(jié)構(gòu)簡(jiǎn)介.oracle.2023-10-13

..2023-10-16

..2023-10-16

..2023-10-16

..2023-10-16

Oracle Database Free.oracle.2023-11-02

Oracle Database Enterprise Edition (On-Premises.oracle.2023-11-02

SIX ORACLE DATABASE LICENSING MODELS AND COSTS – 2023.redresscompliance.2023-11-03

Oracle Technology Global Price List.oracle.2023-11-03

OracleJustMadeItsDatabaseSoftwareFreeforDevelopers.fool.2023-11-03

數(shù)據(jù)庫(kù)行業(yè)專(zhuān)題研究報(bào)告:行業(yè)信創(chuàng)最具彈性的是數(shù)據(jù)庫(kù).新浪看點(diǎn).2023-11-03

Is Oracle's Database Dominance Being Eroded by Cloud-First Rivals? (msn.com).slashdot.2023-11-03

《全球數(shù)據(jù)庫(kù)產(chǎn)業(yè)圖譜(2022)》發(fā)布:2021年全球數(shù)據(jù)庫(kù)市場(chǎng)規(guī)模約700億美元.今日頭條.2023-11-03

《數(shù)據(jù)庫(kù)發(fā)展研究報(bào)告(2023)》:中國(guó)邁入第一梯隊(duì),數(shù)據(jù)庫(kù)市場(chǎng)規(guī)模超400億元.今日頭條.2023-11-03

Top Databases to Use in 2022: What is The Right Database for Your Use Case?.towardsdatascience.2023-11-03

DB-Engines Ranking.db-engines.2023-11-03

Essential Oracle Statistics in 2023.zipdo.2023-11-03

..2023-10-17

生活家百科家居網(wǎng)