《Oracle 入門教程》第 02 篇 Oracle 簡(jiǎn)介
作者: 不剪發(fā)的Tony老師
畢業(yè)于北京航空航天大學(xué),十多年數(shù)據(jù)庫管理與開發(fā)經(jīng)驗(yàn),目前在一家全球性的金融公司從事數(shù)據(jù)庫架構(gòu)設(shè)計(jì)。CSDN學(xué)院簽約講師以及GitChat專欄作者。csdn上的博客收藏于以下地址:https://tonydong.blog.csdn.net
文章目錄
2.1 關(guān)系型數(shù)據(jù)庫
2.2 Oracle 數(shù)據(jù)庫
2.3 SQL
2.4 PL/SQL
2.1 關(guān)系型數(shù)據(jù)庫
數(shù)據(jù)庫(Database)是計(jì)算機(jī)中存儲(chǔ)的有組織的數(shù)據(jù)集合。當(dāng)用戶或者應(yīng)用需要訪問和使用這些數(shù)據(jù)庫中的數(shù)據(jù)時(shí),需要借助專門的管理軟件系統(tǒng),也就是數(shù)據(jù)庫管理系統(tǒng)(DBMS)。
按照數(shù)據(jù)的組織和管理模式,主要的 DBMS 可以分為關(guān)系數(shù)據(jù)庫管理系統(tǒng)和非關(guān)系數(shù)據(jù)庫管理系統(tǒng)。關(guān)系型數(shù)據(jù)庫(Relational
database)是指基于關(guān)系模型的數(shù)據(jù)庫。在關(guān)系模型中,用于存儲(chǔ)數(shù)據(jù)的邏輯結(jié)構(gòu)稱為關(guān)系(Relation);對(duì)于用戶而言,關(guān)系就是二維表(Table)。以下面是一個(gè)員工信息表,它和
Excel 表格非常類似,由行(Row)和列(Column)組成。
常見的關(guān)系型數(shù)據(jù)庫產(chǎn)品有 Oracle、MySQL、Microsoft SQL Server、PostgreSQL、SQLite 等。
2.2 Oracle 數(shù)據(jù)庫
Oracle 數(shù)據(jù)庫是甲骨文公司(Oracle)的關(guān)系型數(shù)據(jù)庫產(chǎn)品,是世界上第一個(gè)商業(yè)化的的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。Oracle 數(shù)據(jù)庫擁有超過 40 年的開發(fā)歷史,是流行度排名第一的數(shù)據(jù)庫軟件,最新的版本為 Oracle 19c。
Oracle 數(shù)據(jù)庫發(fā)展過程中不同版本的一些主要亮點(diǎn)包括:
成立 Oracle 公司。1977 年 Larry Ellison、Bob Miner 和 Ed Oates 成立了咨詢公司
Software Development Laboratories,隨后改名為 Relational Software, Inc.
(RSI)。1983 年 RSI 成為了 Oracle 系統(tǒng)公司,并隨后改名為 Oracle 公司。
第一個(gè)商業(yè) RDBMS。1979 年 RSI 發(fā)布了第一個(gè)基于 SQL 的商用關(guān)系型數(shù)據(jù)庫管理系統(tǒng) Oracle V2 (Version 2) 。
Oracle 數(shù)據(jù)庫可移植版本。1983 年發(fā)布的 Oracle Version 3 是首個(gè)可以同時(shí)支持大型機(jī)、小型機(jī)以及個(gè)人電腦的關(guān)系型數(shù)據(jù)庫。該版本使用 C 語言編寫,可以支持不同平臺(tái)的移植性。
并發(fā)控制、數(shù)據(jù)分布以及可擴(kuò)展性增強(qiáng)。Oracle Version 4 引入了多版本一致性讀(multiversion read
consistency)。1985 發(fā)布的 Oracle Version 5 支持了客戶端/服務(wù)器計(jì)算以及分布式數(shù)據(jù)庫系統(tǒng)。Oracle
Version 6 增強(qiáng)了磁盤 I/O、行鎖、可擴(kuò)展性以及備份與恢復(fù)功能,同時(shí)還首次引入了 PL/SQL 語言。
PL/SQL 存儲(chǔ)過程支持。1992 年發(fā)布的 Oracle7 增加了 PL/SQL 存儲(chǔ)過程和觸發(fā)器。
面向?qū)ο蠛头謪^(qū)支持。1997 年發(fā)布的 Oracle8 成為了一個(gè)對(duì)象-關(guān)系型數(shù)據(jù)庫,增加了很多新的數(shù)據(jù)類型。同時(shí),它還增加了分區(qū)表功能。
網(wǎng)絡(luò)計(jì)算(Internet computing)。1999 年發(fā)布的 Oracle8i 增加了網(wǎng)絡(luò)協(xié)議的原生支持和服務(wù)器端 Java 編程,支持?jǐn)?shù)據(jù)庫的多層應(yīng)用環(huán)境部署。
Oracle 真正應(yīng)用集群(Oracle RAC)。2001 年發(fā)布的 Oracle9i 數(shù)據(jù)庫增加了 RAC
功能,允許多個(gè)實(shí)例同時(shí)訪問單個(gè)數(shù)據(jù)庫。同時(shí), Oracle XML 數(shù)據(jù)庫((Oracle XML DB)引入了存儲(chǔ)和查詢 XML 數(shù)據(jù)的功能。
網(wǎng)格計(jì)算。2003 年發(fā)布的 Oracle Database 10g 引入了網(wǎng)格計(jì)算(grid
computing)的概念,允許企業(yè)基于低成本的商用服務(wù)器構(gòu)建一個(gè)網(wǎng)格基礎(chǔ)設(shè)施,從而對(duì)計(jì)算資源進(jìn)行虛擬化。一個(gè)關(guān)鍵的目標(biāo)就是允許數(shù)據(jù)庫自我管理和調(diào)優(yōu)。Oracle
自動(dòng)存儲(chǔ)管理(Oracle ASM)通過虛擬化和簡(jiǎn)化存儲(chǔ)管理來實(shí)現(xiàn)該目標(biāo)。
可管理性、診斷性和可用性。2007 年發(fā)布的 Oracle Database 11g 引入了許多新特性,可以幫助管理員和開發(fā)人員快速應(yīng)對(duì)業(yè)務(wù)需求的變更。實(shí)現(xiàn)這種適應(yīng)性的關(guān)鍵是通過整合信息和盡可能使用自動(dòng)化來簡(jiǎn)化信息基礎(chǔ)設(shè)施。
接入云端。2013 年發(fā)布的 Oracle Database 12c 專為云計(jì)算而生,提供了新的多租戶體系結(jié)構(gòu)、內(nèi)存列存儲(chǔ)以及
JSON 文檔支持。Oracle Database 12c 可以幫助 DBA 更有效地利用 IT
資源,同時(shí)不斷為終端用戶減少成本和提高服務(wù)級(jí)別。
集成和內(nèi)存性能提升。Oracle Database 18c 簡(jiǎn)化了與目錄服務(wù)的集成,例如 Microsoft Active Directory;同時(shí)它還引入了一些可以使用列存儲(chǔ)模型以及快速行訪問模型的內(nèi)存功能。
增強(qiáng)穩(wěn)定性。Oracle Database 19c 作為 Oracle Database 12c 家族中的長(zhǎng)期支持版本對(duì)穩(wěn)定性進(jìn)一步進(jìn)行了增強(qiáng),同時(shí)還對(duì) JSON 以及 Active Data Guard 等功能進(jìn)行了改進(jìn)。
總而言之,Oracle 數(shù)據(jù)庫以其強(qiáng)大的功能、穩(wěn)定性、高性能、安全性以及可擴(kuò)展性被廣泛應(yīng)用于政府、金融、能源、教育、醫(yī)療和交通等行業(yè)的企業(yè)數(shù)據(jù)庫。
2.3 SQL
SQL 代表結(jié)構(gòu)化查詢語言(Structured Query Language),它是管理和訪問所有關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。通過 SQL 可以執(zhí)行數(shù)據(jù)的增加(Create)、刪除(Delete)、修改(Update)以及查詢(Retrieve),同時(shí)還可以執(zhí)行許多數(shù)據(jù)庫的管理操作。
SQL 語句可以按照它們的作用分為以下幾類:
DQL(data query language),數(shù)據(jù)查詢語言;主要是SELECT語句,用于查詢數(shù)據(jù)庫中的數(shù)據(jù)和信息。
DML(data manipulation language),數(shù)據(jù)操作語言;主要用于對(duì)數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的增加(INSERT)、修改(UPDATE)、刪除(DELETE)以及合并(MERGE)等語句。
DDL(data definition language),數(shù)據(jù)定義語言;主要用于定義數(shù)據(jù)庫中的模式對(duì)象,例如表或索引,創(chuàng)建(CREATE)、修改(ALTER)以及刪除(DROP)等。
TCL(transaction control language),事務(wù)控制語言;用于管理數(shù)據(jù)庫事務(wù),主要包括開始事務(wù)(BEGIN)、提交事務(wù)(COMMIT)、回滾事務(wù)(ROLLBACK)、保存點(diǎn)(SAVEPOINT)等。
DCL(data control language),數(shù)據(jù)控制語言;用于控制數(shù)據(jù)的訪問權(quán)限,主要有授予(GRANT)和撤銷(REVOKE)等。
SQL 最初由 IBM 公司開發(fā),在 1986 年成為 ANSI 標(biāo)準(zhǔn),并且在 1987 年成為 ISO 的標(biāo)準(zhǔn)。ANSI 在1992 年對(duì) SQL 標(biāo)準(zhǔn)進(jìn)行了修訂,稱為 SQL92 或者 SQL2;在 1999 年再次進(jìn)行了修訂,稱為 SQL99 或者 SQL3。如今,SQL 標(biāo)準(zhǔn)由 ANSI 和 ISO/IEC 共同維護(hù),隨后經(jīng)歷的修訂版本包括 SQL:2003、SQL:2006、SQL:2008、SQL:2011、SQL:2016。最新的版本為 SQL:2019 或者 ISO/IEC 9075:2019,它取代了之前的所有版本。
需要注意的是,不同廠商基于 SQL 標(biāo)準(zhǔn)實(shí)現(xiàn)了自己的數(shù)據(jù)庫產(chǎn)品,它們都在一定程度上兼容 SQL 標(biāo)準(zhǔn)。Oracle 實(shí)現(xiàn)了 SQL 中的絕大部分功能,同時(shí)也擴(kuò)展了一些專用的語法,這也是本專欄主要介紹的內(nèi)容。
2.4 PL/SQL
PL/SQL 的全稱是 Procedural Language/SQL,它是 Oracle SQL 的過程語言擴(kuò)展。
由于 SQL 是一種聲明式的語言,關(guān)注的是結(jié)果而不是過程。但是在實(shí)際開發(fā)中為了滿足業(yè)務(wù)處理的需要,Oracle 也提供了過程語言擴(kuò)展,支持例如定義變量、控制流結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、異常處理以及面向?qū)ο缶幊痰鹊奶匦?,從而支持在?shù)據(jù)庫服務(wù)器端實(shí)現(xiàn)業(yè)務(wù)處理功能。
本專欄包含了 Oracle PL/SQL 存儲(chǔ)過程的詳細(xì)介紹。
接下來就讓我們看看如何安裝 Oracle 軟件和數(shù)據(jù)庫。