薄麗輝
摘 要:本文以圖書館數(shù)據(jù)庫設(shè)計(jì)為研究對(duì)象,結(jié)合案例探討了基于Oracle的數(shù)據(jù)庫設(shè)計(jì)和查詢檢索方法,并在最后結(jié)合筆者工作實(shí)踐給出了幾點(diǎn)結(jié)論,全文是筆者長期研究實(shí)踐基礎(chǔ)上的理論升華,相信對(duì)從事相關(guān)工作的同行能有所裨益。
關(guān)鍵詞:數(shù)據(jù)庫設(shè)計(jì) Oracle 案例
中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2014)08(a)-0255-021 Oracle數(shù)據(jù)庫與SQL概述
Oracle數(shù)據(jù)庫是oracle公司所研制和開發(fā)的一個(gè)關(guān)系數(shù)據(jù)庫系統(tǒng)。經(jīng)過幾十年的發(fā)展,其功能和性能不斷完善,己成為功能最齊全最受歡迎的數(shù)據(jù)庫系統(tǒng)。Oracle系統(tǒng)由oracle的核心,SQL*PLUS接口、主語言接口以及各種系統(tǒng)實(shí)用程序組成。Oracle是目前應(yīng)用最廣泛的數(shù)據(jù)庫系統(tǒng)。一個(gè)完整的數(shù)據(jù)庫系統(tǒng)包括系統(tǒng)硬件、操作系統(tǒng)、網(wǎng)絡(luò)層、DBMS(數(shù)據(jù)庫管理系統(tǒng))、應(yīng)用程序與數(shù)據(jù),各部分之間是互相依賴的,對(duì)每個(gè)部分都必須進(jìn)行合理的配置、設(shè)計(jì)和優(yōu)化才能實(shí)現(xiàn)高性能的數(shù)據(jù)庫系統(tǒng)。
(1)非結(jié)構(gòu)程度高。用戶在使用計(jì)算機(jī)完成系統(tǒng)工作時(shí),是使用系統(tǒng)所提供的語言來表達(dá)或描述自己處理要求的。例如常用的FORTRAN、COBOL等都是系統(tǒng)所提供的用戶語言。(2)用戶性能好。衡量一個(gè)語言好壞的一個(gè)標(biāo)準(zhǔn)是用戶性能的好壞。所謂用戶性能好是值一種語言在被一個(gè)新用戶學(xué)習(xí)掌握時(shí),用戶不必花費(fèi)太多的時(shí)間就能學(xué)會(huì),并且很快就能熟練的掌握和使用。經(jīng)過實(shí)驗(yàn),SQL語言是一種用戶性能非常好的語言,它非常便于用戶學(xué)習(xí)與掌握。(3)語言功能強(qiáng)。SQL語言是一種關(guān)系數(shù)據(jù)庫語言。關(guān)系數(shù)據(jù)庫分為兩大類,一類是關(guān)系代數(shù)語言,另一種是關(guān)系演算語言。(4)兩種使用方式。SQL語言可以通過兩種方式使用,一種是命令方式,另一種是程序方式。采用命令方式使用SQL時(shí),用戶通過交互式的方式,每輸入一條命令,系統(tǒng)就會(huì)執(zhí)行該命令,并且顯示執(zhí)行的結(jié)果。SQL語言還可以鑲?cè)朐谙驝OBOL、FORTRAN、C等高級(jí)語言中,組成一個(gè)完整的程序。用戶根據(jù)自己不同的需要,靈活的選擇相應(yīng)的使用方式,以滿足不同的要求。(5)提供數(shù)據(jù)控制功能。數(shù)據(jù)功能時(shí)數(shù)據(jù)庫系統(tǒng)的重要部分。SQL語言提供了事務(wù)控制,它能保證數(shù)據(jù)的共享以及并發(fā)使用而不產(chǎn)生干擾,也便于對(duì)數(shù)據(jù)庫的恢復(fù)。
2 圖書館數(shù)據(jù)庫設(shè)計(jì)
下面以圖書館數(shù)據(jù)庫設(shè)計(jì)為例使用oracle操作系統(tǒng)進(jìn)行功能分析。
關(guān)系數(shù)據(jù)庫的特點(diǎn)之一就是用表的方式組織數(shù)據(jù)。通常這種表稱之為關(guān)系。表是語言存放數(shù)據(jù),查找數(shù)據(jù)以及更新數(shù)據(jù)的基本數(shù)據(jù)。這種表與我們?nèi)粘I钪兴姷谋矸浅O嗨?,但不完全相同。在語言中,表有其嚴(yán)格的定義,它是一種二維表格。對(duì)于這種表有如下規(guī)定。
(1)每個(gè)表都有一個(gè)名字,通常稱為表名或關(guān)系名。(2)表中的一行稱之為一個(gè)元組,它相當(dāng)于一個(gè)記錄。(3)一個(gè)表可以由若干列組成,表的每一列必須命名唯一,即表中每一列都有一個(gè)名字,同一表中不允許有相同的名字。(4)同一列的數(shù)據(jù)必須具有相同的數(shù)據(jù)類型。(5)表中的列值必須似不可分割的基本數(shù)據(jù)項(xiàng)。
建表:依次建立圖書、讀者、借閱三個(gè)表。
建立圖書表,該表記錄了圖書的總編號(hào)、書名、作者、出版單位、單價(jià)的信息,在表結(jié)構(gòu)中輸入信息,得到表1。
建立讀者表,該表記錄了讀者的借書證號(hào)、單位、姓名、職稱、地址的信息,表結(jié)構(gòu)如表2。
6 結(jié)論
(1)創(chuàng)建索引一般有兩個(gè)目的:維護(hù)被索引列的惟一性和提供快速訪問表中數(shù)據(jù)的策略。大型數(shù)據(jù)庫有兩種索引,即簇索引和非簇索引,一個(gè)沒有簇索引的表是按堆結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),所有的數(shù)據(jù)均添加在表的尾部。(2)為了保證數(shù)據(jù)庫的一致性和完整性,設(shè)計(jì)人員往往會(huì)設(shè)計(jì)過多的表間關(guān)聯(lián)(Relation),盡可能地降低數(shù)據(jù)冗余。表間關(guān)聯(lián)是一種強(qiáng)制性措施,建立后,對(duì)父表(Parent Table)和子表(Child Table)的插入、更新、刪除*作均要占用系統(tǒng)的開銷,另外,最好不要用Identify屬性字段作為主鍵與子表關(guān)聯(lián)。如果數(shù)據(jù)冗余低,數(shù)據(jù)的完整性容易得到保證,但增加了表間連接查詢的*作。為了提高系統(tǒng)的響應(yīng)時(shí)間,合理的數(shù)據(jù)冗余也是必要的。(3)數(shù)據(jù)類型的合理選擇對(duì)于數(shù)據(jù)庫的性能和作具有很大的影響,表現(xiàn)在:Identify字段不要作為表的主鍵與其它表關(guān)聯(lián),這將會(huì)影響到該表的數(shù)據(jù)遷移;Text和Image字段屬指針型數(shù)據(jù),主要用來存放二進(jìn)制大型對(duì)象(BLOB)。這類數(shù)據(jù)的作相比其它數(shù)據(jù)類型較慢,因此要避開使用;日期型字段的優(yōu)點(diǎn)是有眾多的日期函數(shù)支持。
參考文獻(xiàn)
[1] 沈金發(fā),鄭甫京,王令赤.關(guān)系數(shù)據(jù)庫系統(tǒng)[M].清華大學(xué)出版社,1992.
[2] 盧軍發(fā),彭頂華.談公安院校圖書館數(shù)字資源建設(shè)[J].江西公安??茖W(xué)校學(xué)報(bào),2010(4).
[3] 孫曉瑜,王榮宗.探析手機(jī)圖書館與高校背景融合的應(yīng)用發(fā)展[J].石油教育,2011(2).
[4] 黃繼超.淺談?dòng)行Ю酶咝D書館數(shù)字資源[J].科技信息,2010(18).
[5] 溫國華.高校圖書館特色數(shù)據(jù)庫建設(shè)與問題探討[J].內(nèi)蒙古科技與經(jīng)濟(jì),2009(9).