關系數據庫模板(10篇)

時間:2023-03-01 16:33:15

導言:作為寫作愛好者,不可錯過為您精心挑選的10篇關系數據庫,它們將為您的寫作提供全新的視角,我們衷心期待您的閱讀,并希望這些內容能為您提供靈感和參考。

篇1

前言

從上個世紀60年代至今的半個世紀,數據庫技術伴隨著信息技術的發展不斷發展,到目前共經歷了人工管理階段、文件系統階段和數據庫系統階段,在數據庫系統階段又經歷了網狀數據庫、層次數據庫和關系數據庫階段,進二十來年,關系數據被廣泛使用,發展成主流,但隨著互聯網技術的蓬勃發展,關系數據庫使用遇到了一些新的問題,為應對這些新的問題,近兩年來非關系數據庫NOSql越來越引起人們的注視,得到了快速發展。

1 關系數據庫

1.1 關系數據庫的簡介

支持關系模型的數據庫系成之為關系數據庫,是目前各類數據庫中使用最為廣泛的數據庫系統。關系數據庫在經過二十幾年的發展,已經變的功能強大,使用廣泛,產品成熟的數據庫系統,現在使用主流的數據庫都為關系型數據庫,比較熟悉的如SQL Server、Mysql、Oracle、Sybase、Informix、DB2等。在網絡上使用比較廣泛的是Sql Server、Mysql和Oracle。

1.2 關系數據庫的特點

關系數據庫是支持關系模型的數據庫系統。而關系模型是由二維表來表示實體和實體間聯系的模型。使用二維表存儲數據,對使用者來說很直觀,更容易理解。使用關系數據庫的優勢主要表現在以下幾個特性:

(1)操作方便性。通過開發應用程序和數據庫連接,用戶能方便的對數據庫中數據進行操作,特別對沒有數據庫基礎的人,也可以通過數據庫管理系統,直接在數據庫中操作。

(2)易于維護性。關系數據庫在完整性約束中提供了實體完整性、參照完整性和用戶定義的完整性,通過完整性約束可以大大降低了數據存儲的冗余及數據不一致的概率。

(3)訪問數據的靈活性。關系數據庫中提供了諸如視圖,存儲過程,觸發器,索引等對象,是訪問數據更加靈活。

1.3 目前關系數據庫面臨的問題

隨著互聯網技術的發展,尤其是web2.0 技術使用,更注重用戶和服務器以及用戶和用戶之間的交互作用,用戶成為既是網站內容的瀏覽者,也是網站內容的制造者。例如:博客(BLOG)、社會網絡(SNS)、以及現在比較熱的微博等。對于在使用web2.0技術并且訪問量比較大網站,使用傳統關系數據庫就會遇到一些問題,主要表現在以下幾點:

(1)對數據庫高并發讀寫的需求

Web 2.0網站要根據用戶個性化信息來實時生成動態頁面和提供動態信息,無法使用動態頁面靜態化技術,因此數據庫的并發負載非常高,往往要達到每秒上萬次的的讀寫請求,此時服務器上的磁盤根本無法承受如此之多的讀寫請求。

(2)對海量數據的高效率存儲和訪問的需求

對于大型的社交網站網站,每天用戶產生海量的用戶動態,隨著用戶的不斷增減,一個數據表中的記錄可能有幾億條,對于關系型數據庫來說,在一個有上億條記錄的表里面進行SQL詢,效率是極其低下的。一些大型Web 網站的用戶登錄系統也是如此,如騰訊、163郵箱都有數億的帳號。

(3)對數據庫的高擴展性和高可用性的需求

在基于Web的架構中,數據庫是最難進行橫向擴展的,當用戶量和訪問量增加時, 數據庫沒有辦法像Web Server 那樣簡單的通過添加更多的硬件和服務結點來擴展性能和負載能力,對于很多需要24 小時不間斷服務的網站來說,對數據庫系統的升級和擴展往往需要停機維護。

2 非關系數據庫NoSql

2.1 NoSql概述

NoSql是應對關系數據庫出現的問題而發展起來的,近幾年隨著web2.0技術的廣泛應用,NoSQL 得到了快速的發展,NoSQL數據庫指的是非關系性的、定義不是很明確的數據存儲倉庫。NoSQL數據庫不再使用關系模型的概念,放棄了使用SQL語句對數據庫進行操作。

NoSQL 數據庫根據數據的存儲模型和特點又分為很多種類。主要有

(1)面向列的存儲系統。按列存儲,區別于關系數據庫中按行存儲,容易擴展,適用與存儲海量數據,對一個或幾個字段進行查詢的效率很高,但在復雜查詢功能比較弱,如多表聯合查詢。此類數據庫產品有BigTable、Hbase、assandra和Hypertable。

(2)面向文檔存儲系統。保證海量數據存儲的同時,具有良好的查詢性能。用JSON或類JSON格式進行存儲,存儲的內容是文檔型的,文檔中的格式是自由的。此類數據庫產品有MongoDB和CouchDB。

(3)鍵-值(key/value)存儲系統。是最簡單的Nosql系統,具有極高的并發讀寫性能。通過key能夠快速查詢到value,并且不考慮value 的格式。此類數據庫產品有Tokyo Cabinet/Tyrant、BerkeleyDB、MemcacheDB和Redis。

(4)圖存儲系統。圖形關系的最佳存儲模式。如Neo4J、FlockDB。

(5)對象存儲。類似面向對象語言的語法操作數據庫,通過對象的方式存取數據。此類數據庫產品有db4o、Versant。

(6)xml 數據庫。高效存儲XML 數據,并支持XML的內部查詢語法。此類數據庫產品有Berkeley DBXML、BaseX。

2.2 NoSql數據庫的優勢

相對于關系數據庫,Nosql數據庫的優點主要表現在:

(1)容易擴展和高性能。NoSQL 數據庫種類很多,但是都有一個共同的特點就是去掉關系型數據庫的關系型特性。數據之間彼此無關系,這樣就非常容易擴展。可以存儲海量數據。同樣由于數據之間無關系,數據庫的結構簡單,在處理大數據量時,NoSQL 數據庫會有出色的讀寫性能。

(2)靈活的數據模型。NoSQL 數據庫不使用傳統的關系數據庫模型,而是使用如key-value 存儲、文檔型的、列存儲、圖型數據庫、xml 等方式存儲數據模型,使用這些模型都無需事先為要存儲的數據建立字段,隨時可以存儲自定義的數據格式。同時根據需求可以選擇合適的模型。

(3)經濟性

在數據量和訪問量比較大的情況下,傳統的關系數據庫對服務器的要求比較高,甚至使用專用硬件設備,這樣造價就比較高。而NoSQL數據庫的易擴展的特點使配置較低服務器上運行,也可以使用低配服務器組成集群來使用,并且有研究證實使用NoSql數據庫基于低配硬件的分布式存儲解決方案比現在的高端關系數據庫更加可靠。這樣就極大的降低了投資成本。

2.3 NoSql的不足

(1)成熟度方面。NoSQL數據庫的實際應用,近幾年才逐漸開始使用,并且大部分NoSQL的產品都還處于實驗和不斷完善的階段。在產品成熟度和穩定性方面,NoSq數據庫遠不及發展了二十多年且已被廣泛使用的關系數據庫。

(2)商業支持方面。大部分NoSQL數據庫都是開源項目,沒有專門的數據庫廠商提供完善的服務,一旦出現故障,只能自己的能力解決,對于一般使用者來說風險比較大。

(3)使用習慣方面。軟件開發人員已經習慣了關系數據庫的模式,解決問題的思路已經被固定在關系模型上,而NoSQL數據庫的開發以放棄了關系模型,要軟件開發人員放棄原來的思路,而掌握和使用NoSql數據庫是很困難的,導致使用NoSQL數據庫的開發人員不可能在短時間內快速增加,這也成為NoSql數據庫發展的一個障礙。

3 關系數據庫與NoSQL 數據庫結合使用

Web2.0時代,關系數據庫不能滿足對數據庫高并發讀寫、海量數據的高效率存儲和訪問、高擴展性和高可用性方面的需求,而NoSql數據庫可以解決這些問題,從而推動了NoSql數據庫應用和發展,那是不是說NoSql數據庫就能取代關系數據可了呢?從目前來看,基于NoSql數據庫的不足,NoSql數據庫還不能完全取代關系數據庫,對NoSql數據庫的使用,單獨使用的情況很少,大多數情況下都是關系數據庫和NoSql數據庫結合使用。

關系數據庫和NoSql數據庫結合使用又分為兩種模式:

(1)NoSql數據庫作為輔助存儲。在這種模式下,把所有的數據都存放在關系數據庫中,可能被經常頻繁讀取的數據再存放在NoSql數據庫中一份,其目的是提高數據的查詢速度,減少關系數據庫的并發訪問負載。

(2)NoSql數據庫作為主存儲。在這種模式下,把所有的數據存儲在NOSQL數據庫中,為了一些特殊業務或功能的需要,在將數據存入NOSQL 的時候,同時存儲到關系數據庫一份。在數據存儲和查詢主要是由Nosql數據庫完成,少量的數據是從關系數據庫讀取。

4 結語

目前關系數據庫仍是主流數據庫,仍被廣泛使用,NoSQL數據庫還不能完全取代關系數據庫,雖然NoSql數據庫打破了關系數據庫存儲的觀念,采用創新的存儲方式,在快速讀寫、海量存儲,高擴展性上很好滿足web2.0時代數據存儲的要求,但NoSql數據庫也有自己的缺陷。在現階段的某些情況下,可以將關系型數據庫和NoSQL數據庫結合使用,相互彌補各自的不足。隨著NoSql數據庫的不斷發展和完善,將來也有可能取代關系數據庫成為主流數據庫。

參考文獻:

篇2

>> XML文檔與關系數據庫數據轉換的研究 基于DOM的XML文檔到關系數據庫的數據轉換方法 基于關系數據庫的XML存儲技術 淺談數據庫記錄與XML數據的轉換 論XML文檔數據庫數據之間的轉換原理及轉換對象 基于.NET平臺的關系數據庫轉換 WebService在LDAP與關系數據庫之間數據同步的研究 基于XSD模式的XML文檔與關系數據庫的轉換 一種模仿XML的靈活的關系數據庫設計 基于關系數據庫的時態XML存取研究 運用XML實現異構數據庫的數據轉換 淺析Notes數據庫與關系數據庫的關系 關系數據庫的設計與測試 基于架構的關系數據庫與云端數據庫比較分析 XML文檔與數據庫表信息互相轉換的方法研究與實踐 關系數據庫與非關系數據庫 淺析關系數據庫、數據倉庫與數據挖掘的關系 淺談關系數據庫的數據保護策略 關系數據庫查詢優化策略與研究 關系數據庫二進制存儲圖像數據的研究與應用 常見問題解答 當前所在位置:,1994.

[2]陳志煒.一種基于語義的將關系數據轉換為XML數據的方法[D].南京:東南大學碩士學位論文,2004.

[3]薩師煊,王珊.數據庫系統概論[M].第三版.北京:高等教育出版社,2005.

篇3

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-2374(2011)07-0088-02

在信息技術與網絡技術高速發展的今天,網絡已經成為新一代操作平臺。信息正全面地以互聯網方式展開,互聯網的信息傳播,極大地加速了人類發展的進程。隨著WEB技術的日益發展,WEB已經成為信息制造、、加工和處理的主要平臺。XML技術已日益受到更為廣泛的關注,已經在電子商務、電子數據交換、科學數據表示、數據建模與分析和搜索引擎等領域有著廣泛的應用。隨著XML應用技術的深入,將會有大量的XML文檔出現,并且現在在網絡上已經積累了大量的XML文檔。本文主要就基于關系數據庫的XML存儲技術相關問題進行探討。

一、XML與關系數據庫結構上的差異

XML文檔是半結構化的數據,是一個樹模型,如果考慮到XML元素次序,則是一棵有序樹模型,其數據結構是非結構化的,而關系數據庫管理系統是采用二維表格作為存儲數據的模型,表格由行和列組成,列被稱作“字段”用于表示組成數據有效信息的屬性,行則用于儲存一條完整的數據記錄。XML數據與關系表之間數據結構有很大的差異,具體來說,XML數據是有序的,而關系數據則是無序的,另外XML數據的模式往往經常變化,可是關系數據庫的數據結構是固定不變的,XML數據可以無限層次嵌套,而關系數據則不能。雖然XML放松的類型限制和自描述性有利于數據之間的交換,但是卻不利于數據存儲。因此,XML的數據模型的半結構化、有序性與平坦、無序的關系模型之間存在固有的不匹配。另外遵循文檔類型定義(DTD)或文檔模式定義(XML SCHEMA)的XML文檔也與遵循關系存儲模式的關系數據在語法、結構以及約束等很多方面存在著固有的異構性,因此很難直接由XML數據產生關系模式。甚至即使多個XML文檔實例都遵循同一個文檔模式定義,它們也可能有不同的結構。可以看出,XML映射到關系數據庫中存在固有的困難。映射時主要存在以下需要解決的問題:(1)如何利用可能有的XML文檔模式(或類型)信息來采取各種不同的存儲策略;(2)如何將XML文檔無損地存入關系數據庫;(3)如何從關系數據庫中查詢并重構XML信息。

二、基于關系數據庫的存儲策略

(一) 基于結構映射的策略

具體來說,基于結構的映射方法可以分為兩個步驟來實現:

第一步:簡化DTD并生成DTD圖。因為XML DTD的元素是相當復雜的,需要對復雜的DTD進行簡化。DTD的簡化變換主要有以下三種方式:(1)平面化變換:將DTD內的層次嵌套關系打平,把嵌套的定義轉換為非嵌套的定義;(2)簡化變換:將連續的多個一元操作轉換為一個一元操作;(3)聚集變換:將多個具有相同名稱的子元素聚在一起,形成一個子元素。一個DTD圖表示的是一個DTD的結構,圖的結點表示DTD中的元素、屬性或操作符,DTD中的元素在DTD圖中只出現一次,屬性和操作符在DTD圖中出現的次數則與它們在DTD中出現的次數相同。

第二步:DTD圖到關系模式的映射。從DTD圖到關系模式的映射方法主要有:基本內聯法、共享內聯法和綜合內聯法。

首先,基本內聯法。基本內聯法的原則是在存儲一個結點的時候,盡可能多地將這個元素的后代結點存儲在一個表中。其次,共享內聯法。共享內聯法為以下三種DTD結點生成獨立的關系:(1)DTD圖中入度大于l或者等于0(根結點)的元素結點生成獨立的關系;(2)DTD圖中結點“幸”的孩子結點(將值集元素作為單獨的關系保存);(3)互為遞歸的入度均為1的元素結點,其中之一生成獨立的關系。而其余的結點都生成關系屬性。共享內聯法相對減少了XML查詢轉換為SOL語句的數目,但增加了每個SOL查詢中的連接運算。再次,綜合內聯法。綜合內聯方法在處理入度大于1的結點上與共享內聯方法不同,綜合內聯法將所有入度大于1的元素結點也內聯進入父結點所生成的關系表中,但是帶回路的結點以及結點“}”或“+”的直接后繼結點除外,該方法減少了子結點與父結點的連接運算。

(二) 基于模型映射的策略

模型映射的方法是用一個固有的模式來存儲XML文檔。它用固定的關系模式來存放任何格式的XML數據,而不考慮XML文檔的模式(DTD或SCHEMA),其實質是存儲XML文檔本身的結構信息。

第一,Edge方法。Edge方法圓的存儲策略是把要存入的XML文檔看做圖形結構,每個圖的邊界都表示為圖中的元組,把XML文檔圖中的所有邊都存入到關系表Edge中,用表Edge(source,ordinal,target,label,flag,value)存儲XML文檔圖中的邊,其中的source字段和target字段分別用來存儲邊的源結點和目標結點的標識符;label域為目標結點的類型;flag用來區分目標結點;target是一個元素結點還是一個文本結點,如果該目標結點是文本結點,則文本值存儲于value域中;ordinal字段指出target結點在source結點的所有孩子中的位置。由于Edge方法將所有XML數據都用Edge表存放,操作方法簡單。但缺點是在Edge方法中每條邊都是單獨管理的,所以在用戶進行查詢操作時就需在大量的表上進行連接操作以形成路徑。如果要判斷祖先/后代關系就需要從祖先到后代(或與之相反)遍歷所有的邊,造成代價非常昂貴。

第二,XRel方法。XRel方法為了存儲XML文檔的所有信息,將XML文檔樹分解為一個個路徑表達式,對于樹中每一個結點,都將從根結點到其自身的路徑存儲。而在樹中有可能有多個結點的路徑是一樣的,所以單個的簡單路徑表達式并不能夠存儲整棵XML文檔樹的信息。XRel模式是通過區間編碼[start,end]來反映XML文檔的模型結構,并根據結點類型來劃分,分為元素結點表、屬性結點表和文本結點表,同時將所有路徑進行存儲。因此,XRel模式由四個關系表組成如圖1所示:

在Path表中,存儲所有的不重復的路徑,其中,PathID為標記路徑的標識,pathexp域存儲標記路徑。為了實現路徑表達式的字符串匹配操作,防止意外的結果出現,將標記路徑中的“/”替換為“#/”進行存儲。對于Element表、Attribute表和Text表,Attribute表和Text表中的value字段存儲的分別是屬性結點的值和文本結點的值。對于每一個路徑表達式,查詢過程都可以分為兩部:第一步,利用字符串的匹配操作,能夠快速的查找出與路徑表達式相匹配的所有標記路徑的標識;第二步,利用這些路徑標識,能夠快速的查找出隸屬于這些路徑終端的值。

XRel存儲模式的特點可以總結如下:(1)用簡單路徑表達式和結點的區間編碼(start,end)存儲XML文檔的所有信息;(2)分別為每一種結點類型創建一個對應的關系表;(3)用一個Path表把文檔中所有不重復的路徑都提取出來,有效地降低了數據庫的存儲容量。

第三,XParent方法。XParent模式和XRel模式一樣,將文本數據路徑獨立出來,共包含四個關系表,如圖2所示:

其中,表LabelPath中的pathexp字段用來存儲所有不重復的標簽路徑,即模式路徑。每一個標簽路徑被賦予一個標識符pathlD,length為標記路徑的長度。Parent表存儲的是雙親/孩子關系,pid和cid分別表示一個邊的起始結點與結尾結點。did為XML文檔中元素結點的標識,它也可以作為以該結點為終端點的數據路徑的標識。

篇4

中圖分類號:TP311.13文獻標識碼:A 文章編號:1009-3044(2008)26-1615-02

Relational Databases Conversion Based on .NET Platform

HU Shu-gang

(Dongying Vocational College, Dongying 257091, China)

Abstract: Combining the advantages of XML technology,.NET platform provides the feasibility of data conversion between relational databases. One example demonstrated the SQL Server database can be converted to an XML file, and then the XML file can be converted to other database. It has realized the data conversion between relational databases.

Key words: database conversion; .NET; XML

1 引言

網絡資源中通常包含多種格式和管理系統的關系數據庫,為了實現資源的共建共享,需要完成多種數據庫之間的數據轉換。不同的開發商采用分布式對象技術和各自的思路來實現數據庫的互操作,如OMG的CORBA技術、Sun公司的EJB/RMI和微軟的.NET技術等。

2 數據庫轉換思路

.NET是微軟公司開發的下一代基于互聯網平臺的軟件開發構想,它提供了一個全新的編程模型。該平臺建立在XML和因特網標準協議的基礎上,具有平立性和語言獨立性,它包含了強大數據庫操控能力的。編程模型由一系列的數據庫相關類和接口組成,運用技術,應用程序既能訪問關系型數據庫中的數據,又能訪問層次化的XML數據[1]。XML是W3C的通用標記語言SGML的一個簡化子集。它是一種存儲和傳輸數據的行業標準格式,普遍貫穿于.NET平臺,具有簡單性、可擴展性、互操作性和開放性等特點,其本質特點是數據獨立,它存儲的數據全部是文本,而且使用標記標示,利于網絡傳輸。XML模式提供了很強的數據類型識別功能,可正確處理各種數據類型。XML和.NET的結合為解決數據庫互操作問題奠定了基礎[2]。通過以上分析,可以在.NET平臺上,以XML為中間數據源完成多種關系數據庫之間的轉換[3]。演示示例用的操作系統是Windows XP Professional,開發平臺為Visual Studio 2005,示例用C#語言編寫。

2.1 數據庫的導入[4]

為了導入SQLServe數據庫,先用Connection對象連接數據庫,演示示例中用SqlConnection連接了服務器METC\SQLEXPRESS的數據庫books.mdf。將數據庫讀入DataSet。DataSet對象主要存放數據庫的DataTable的對象,可以使用DataAdapter建立DataSet對象。盡管DataSet可以存儲數據,但仍需要使用DataAdapter對象來創建和初始化各種表,還需要使用Fill()方法來把查詢結果移入到DataSet中去,再將數據寫入到XML文件。關鍵源代碼如下。

String strTableName = "books";

String strConnection = "server=METC\\SQLEXPRESS;database=books;uid=sa;pwd=;trusted_connection=yes ";

String strSql = "select * from " + strTableName;

SqlConnection objConn = new SqlConnection(strConnection);

SqlDataAdapter objAdapter = new SqlDataAdapter(strSql, objConn);

DataSet objDSet = new DataSet();

objAdapter.Fill(objDSet, "temp");

XmlTextWriter objXmlWriter;

String strtemp1 = Request.PhysicalApplicationPath;

String strpath = strtemp1 + "newxml.xml";

objXmlWriter = new XmlTextWriter(strpath, null);

objXmlWriter.WriteStartDocument();

objXmlWriter.WriteStartElement("xml");

for (int i = 0; i < objDSet.Tables["temp"].Rows.Count; i++)

{

objXmlWriter.WriteStartElement("menu");

for (int j = 0; j < objDSet.Tables["temp"].Columns.Count; j++)

{

objXmlWriter.WriteAttributeString(objDSet.Tables["temp"].Columns[j].ColumnName, objDSet.Tables["temp"].Rows[i][j].ToString());

}

objXmlWriter.WriteEndElement();

}

objXmlWriter.WriteEndElement();

objXmlWriter.WriteEndDocument();

objXmlWriter.Close();

2.2 數據的導出[5-6]

以下演示示例是將以上創建的“newxml.xml”文件轉換為Access數據庫demo.mdb中的一個表“newxml”。首先建立與目標數據庫的連接,也就是通過OLE DB Provider提供的OleDBConnection對象建立與Access數據庫demo.mdb的連接。當然,該示例也可通過OLE DB Provider提供的其他連接數據庫的對象來連接Oracle、Sybase或DB2這樣的數據庫以及Excel表格。以下關鍵源代碼部分省略了命名空間的引用、系統自生成代碼和對數據庫中表是否建立的檢查部分。

private void TableCheck()

{ OleDbConnection oledbConn = new OleDbConnection(textBoxOleDb.Text);

Try

{ oledbConn.Open();

DataTable schemaTable = oledbConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] {null, null, tableName, "TABLE"});

String sqlCmd = "";

if(schemaTable.Rows.Count < 1)

{sqlCmd = "create table " + tableName + " (";

for(int i = 0;i < dataTableXml.Columns.Count;i++)

{sqlCmd = sqlCmd + dataTableXml.Columns[i].ColumnName.ToString() + " char(100),";}

sqlCmd= sqlCmd .Substring(0,sqlCmd.Length - 1) + ");";

OleDbCommand oledbCmd = new OleDbCommand(sqlCmd,oledbConn);

oledbCmd.ExecuteNonQuery();}

}

catch

{Message.Text = "數據庫不存在或無法創建表.";}

finally

{oledbConn.Close();}

}

private void TableInsert()

{ OleDbConnection oledbConn = new OleDbConnection(textBoxOleDb.Text);

try

{ oledbConn.Open();

foreach(DataRow dr in dataTableXml.Rows)

{ string sqlCmd = "insert into [" + tableName + "] (";

for(int i = 0;i < dataTableXml.Columns.Count;i++)

{sqlCmd = sqlCmd + dataTableXml.Columns[i].ColumnName.ToString() + ",";}

sqlCmd= sqlCmd.Substring(0,sqlCmd.Length - 1) + ") values (";

for(int x = 0;x < dataTableXml.Columns.Count;x++)

{sqlCmd = sqlCmd + "'" + dr[x].ToString().Replace("'","''") + "',";}

sqlCmd = sqlCmd.Substring(0,sqlCmd.Length - 1) + ");";

OleDbCommand oledbCmd = new OleDbCommand(sqlCmd,oledbConn);

oledbCmd.ExecuteNonQuery();

}

}

}

3 結束語

通過以上實例,演示了以XML為中間轉換數據源,在.NET平臺上方便地完成異構關系數據庫之間的數據轉換和共享。基于.NET平臺,充分利用XML技術的優勢,來解決異構數據庫集成的問題,能夠給用戶提供一個透明的全局數據庫,方便用戶的使用,還使得系統在可擴展性、安全性、可維護性等方面有所提高。

參考文獻:

[1] Lair R, Lefbvre 開發人員手冊[M].張俊,譯.北京:電子工業出版社,2002:38-39,169-193,246-488.

[2] Bray T, Paoli J, Sperberg-McQueen C M, et al.XML標準[EB/OL].[2006-08-16]./TR/2006/REC-xml-20060816/.

[3] 石玉晶,牛存良,馬新娜.使用XML進行異構數據庫間數據傳送[J].現代計算機,2003,19(11):79-80.

篇5

數據庫查詢操作是數據庫操作的核心操作,對數據的查詢效率及處理速度已成為衡量數據庫性能的一個重要指標。數據庫查詢技術也是學生對《數據庫原理與應用》這門課程所必須掌握的知識和技能,數據庫查詢技術的精通也為以后課程的學習(如:C#.NET程序設計)中的數據庫應用程序的設計打下良好的基礎。

為了優化數據庫的性能,簡單、有效的方法就是優化查詢。

1優化原理和實質

數據查詢處理的代價通常取決于對磁盤的訪問,因為磁盤比內存的訪問速度要慢。對于一個給定的查詢,有許多可能的處理策略,復雜查詢更是如此[1]。查詢優化的實質是在結果正確的前提下,找出與已有表達式等價,但查詢效率更高的表達式。

2在教學中要注重的幾種典型的優化方法

2.1建立視圖

視圖可簡化用戶操作數據的方式,使用戶能著重于所感興趣的特定數據和所負責的特定任務。如果該視圖數據規模小于定義的基本表,則基于視圖的查詢比原查詢的速度會快得多。

例:要查詢每門課程成績最高的學生的學號

SELECT 學號,課程號,成績

FROM 成績表 A

WHERE 成績=(SELECT MAX(成績)

FROM 成績表B

WHERE A..課程號=B.課程號)

語句缺點:這屬嵌套查詢,子查詢的結果集將作為外層查詢的條件,查詢效率不高。

解決方案:可先建立視圖,求得每門課程的最高分,再與成績表中比較,獲取與視圖中最高分數據相等的記錄,這就減少了內層連接的數據量,從而提高了檢索速度。

用SQL語句優化的步驟為:

首先,創建視圖

GREATE VIEW V_max_cnoscore AS

SELECT 課程號,Max(成績) AS 最高分數

FROM 成績表 GROUP BY 課程號

其次,利用視圖檢索數據

SELECT 學號,A.課程號,A.成績

FROM 成績表A,V_max_cnoscore B

WHERE A.成績=B.最高分數 AND A.課程號=B.課程號

2.2查詢條件Where子句的優化

2.2.1合理設置WHERE條件的先后順序。多數數據庫都是按從左到右的順序處理條件,把能過濾更多數據的條件放在前面,過濾少的放后面,便可提高檢索速度。

例:SELECT * FROM student

WHERE ssex=’女’ --條件1過濾的數據較少

AND sdept=’計算機系’ --條件2過濾數據比條件1多

上面的SQL就不符合上述原則,可改為:

SELECT * FROM student

WHERE sdept=’計算機系’

AND ssex=’女’

對同一表格進行多個選擇運算,選擇條件的排序對性能有較大影響,不僅影響索引的選取,而且關系到臨時表的大小[2]。因此,要提高查詢速度,可將較嚴格的條件寫在前面,較弱的放在后面。

2.2.2避免使用“< >”或“NOT”操作符。“< >”或“NOT”均屬于排斥性操作符,不是包括性操作符,這會使系統在搜索數據時無法使用索引,只能直接搜索表中的數據,例:

(1)SELECT 學號 FROM 成績表 WHERE 成績< >80

(2)SELECT 學號 FROM 成績表 WHERE NOT(成績80)

(3)SELECT 學號 FROM 成績表 WHERE成績< 80 OR 成績>80

比較以上三條語句,可知第3條可使用索引查詢,它的查詢速度最快。

2.2.3恰當運用“OR擴展”技術。該技術是把在Where子句中帶有OR的查詢轉換成包含多個UNION ALL的查詢。

例:查詢計算機系縣年齡不大于20歲的學生。

常規的SQL語句:

SELECT 學號,姓名 FROM 學生表 WHERE 系名=’計算機系’ OR 年齡

假定表中“系名”和“年齡”兩個字段上創建了索引,以上的查詢可能不會使查詢優化器使用索引,從而查詢效率降低,可改進為:

SELECT 學號,姓名 FROM 學生表 WHERE 系名='計算機系'

UNION ALL SELECT 學號,姓名 FROM 學生表 WHERE 年齡

2.2.4合理減少LIKE條件的使用。在SQL查詢中,LIKE條件使用的神奇之處在于其與通配符匹配所提供的模糊查詢功能。但在字符串的比較中,有時大量字符的逐個比較,也會大大降低查找效率。

例:圖書按26個英文字母分為26類,查找所有屬于‘A’類圖書的銷售金額。

SELECT 圖書類號, SUM (數量*單價) FROM 銷售

WHERE 圖書類號LIKE′A%′GROUP BY圖書類號

優化為精確查詢:

SELECT 圖書類號,SUM(數量*單價) FROM銷售

WHERE 圖書類號>=′A′AND圖書類號

GROUP BY圖書類號

2.3正確使用子查詢“展平”技術子查詢“展平”技術就是指將子查詢轉變為半連接,連接或者反連接,從而將查詢優化。

例:找出成績大于等于90分的學生的姓名。

SELECT 姓名 FROM 學生表 WHERE 學號IN

(SELECT 學號FROM 成績表WHERE 成績>=90)

語句缺點:需要搜索學生表的每一行,來查找所有滿足子查詢條件的記錄。

解決方案:將學生表作為連接的內表,查詢將作為通常的連接來執行。

優化后的SQL語句:

SELECT 姓名FROM (SELECT 學號 FROM 成績表

WHERE成績>=90) A,學生表 B WHERE A.學號=B.學號

2.4善于使用存儲過程

存儲過程是SQL語句和可選控制流語句的預編譯集合,一個名稱存儲并作為一個單元處理。善于使用存儲過程,將使SQL變得更加靈活和高效。

例:查詢某個學生某門課程的考試成績,列出學生的姓名、課程名及成績

CREATE PROC pro_student_degree

@stu_name char(12),@course_name char(18) AS

SELECT sname,cname,degree

FROM student A INNER JOIN sc B ON A.sno=B.省略o=o

WHERE sname=@stu_name AND cname=@course_name

以上是一個帶有兩個輸入參數的簡單存儲過程,只需執行一個簡單的SQL語句――“EXEC pro_student_degree‘劉娜’,’數據庫原理’”就可完成查詢。

編寫性能優化的SQL語句是提高數據庫系統的重要因素,隨著數據庫管理系統中數據量的增大,如何提高查詢速度與效率也是計算機軟件開發的一個時代要求。實現優化查詢的方法很多,在使用中,要根據具體情況權衡利弊,使數據庫查詢性能最優。在學生的教學中要注重培養學生的動手能力,使學生養成編寫優化的SQL語句的習慣。

參考文獻:

[1]王振輝,吳廣茂.SQL查詢語句優化研究[J].計算機應用,2005,(12):208.

篇6

中圖分類號:TP311文獻標識碼:A 文章編號:1009-3044(2008)16-21188-02

On Optimization Method for Query in Relational Database

YIN Mei-gui

(Heyuan Polytechnic, Heyuan 517000, China)

Abstract: In the database application MIS, query process is the most frequent. Whether query process is good or bad will directly affect the performance of database application system. Therefore, query in database should be optimized. This article suggests some methods of how to realize the optimization by making use of the technology of query in relational database.

Key words: RDBMS; query optimization; methods

1 引言

數據庫系統是管理信息系統的核心,基于數據庫的聯機事務處理(OLTP)以及聯機分析處理(OLAP)是企業、銀行、政府部分最為重要的計算機應用之一。從大多數數據庫系統的應用實例來看,查詢操作是所有數據庫操作中所占據比重最大的操作。當數據庫系統積累到一定程度(如稅務系統的賬戶達到上百萬甚至上千萬條記錄),全表掃描一次往往需要數十分鐘,甚至數小時。如果采用比全表掃描更好的查詢策略,往往能降低查詢時間。如何設計數據庫,采取什么樣的查詢方法,提高查詢效率,這就是查詢優化要解決的問題。

2 合理使用索引

索引是數據庫一個常用的數據庫對象,優化查詢的重要方法是建立索引,也是數據庫同時預先將數據分類導入到多表格的方式。在關系數據庫的表上建立合適的索引,可以提高數據庫數據查詢的速度,改善數據庫的性能。除了集簇索引,每一索引的使用都以磁盤容量作為代價,當使用一個索引,數據庫引擎必須執行兩個數據讀取,這兩個數據讀取是數據庫記錄所必需的,第一個數據被讀取到實際數據指針的索引,第二個數據被讀入到指針指定的位置。因此創建索引時必須要與實際應用系統的查詢需求密切結合,才能達到優化查詢的目的。

2.1 建索引的必要性

判斷索引必要性的最終標準是判斷這些索引是否對數據庫的工作效率有所幫助。在實際的應用過程中,應該為優化工作做以下幾點準備:

首先觀察數據庫應用程序中所有的SQL語句,并從中統計出常用且可能對性能有影響的部分語句,然后分析、歸納出作為Where條件子句的字段及其各種組合方式;在這一基礎上可以初步判斷出哪些表的哪些字段應該建立索引。其次,必須了解應用程序,要了解哪些表是數據操作頻繁的表;哪些表經常與其他表進行連接;哪些表中的數據量可能很大;數據量大的表中各個字段的數據分布情況如何等等。對于滿足上述條件的這些表,必須重點關注。因為建立在這些表上的索引,將對SQL語句的性能產生舉足輕重的影響。

2.2 使用索引的規則

索引的使用要恰到好處,其使用原則如下:

(1)在經常進行連接,但是沒有指定為外鍵的列上建立索引,而不經常連接的字段則由優化器自動生成索引。

(2)在主鍵索引方面,不應有超過25%列成為主鍵,而普通列很少,這會浪費索引空間。

(3)在條件表達式中經常用到的不同值較多的列上建立檢索,在不同值少的列上不要建立索引。

(4)在頻繁進行排序或分組(即進行group by 或 order by 操作)的屬性上建立索引。

(5)在作為最小值等聚集函數的屬性上考慮建立索引。

索引的建立、維護和使用都需要付出代價,應合理使用索引。錯誤的索引不會使數據庫性能得到預期的提高,往往還會產生一些負面影響。

3 SQL語句優化

要對查詢進行優化,一個簡單直接有效的方法是對SQL語句進行調整,減少計算量,提高查詢的效率。以下是一些書寫SQL的一些經驗。

3.1 避免相關子查詢

查詢嵌套層數每增加一層,查詢的效率成幾何級的降低。要想提高嵌套語句的執行效率,則應減少嵌套語句的嵌套的層次。所以在實際應用中,若可以用連接查詢代替的子查詢,則用連接查詢實現。

例:查詢選修了“3-105”號課程的學生基本信息

用子查詢的方法如下所示:

SELECT * FROM student WHERE SNO IN (SELECT sno FROM sc WHERE cno=’3-105’)

改寫成連接查詢如下:

SELECT student.* FROM student,sc WHERE stuent.sno=sc.sno AND cno=’3-105’

3.2 用UNION替換OR

合理建立索引有助于提高查詢效率。有時盡管在所有的檢索列上都有索引,但有些形式SELECT查詢語句可能不會促使查詢優化器使用索引,從而降低查詢效率。如果對查詢語句進行改寫,用UNION替換OR,可以強迫優化器按索引路徑處理。如:假定分別在“職工”關系中的“年齡”和“月工資”字段上創建了索引,對以下SQL語句

SELECT 姓名,年齡,月工資 FROM 職工 WHERE 年齡>45 OR 月工資

可替換為:

SELECT 姓名,年齡,月工資 FROM 職工 WHERE 年齡>45

UNION

SELECT 姓名,年齡,月工資 FROM 職工 WHERE月工資

3.3 使用臨時表優化查詢

在涉及相關查詢的某些情形中,構造臨時關系可以提高查詢效率。如:查詢每個部門中月工資最高的“職工號”

SELECT 職工號 FROM 職工 AS e1 WHERE 月工資=(SELECT MAX(月工資)FROM 職工 AS e2 WHERE e1.部門號=e2.部門號)

以上的查詢對于外層的職工關系e1中的每一個元組,都要對內層的整個職工關系e2進行檢索,因此查詢效率不高。可以構建臨時關系提高查詢效率。

SELECT MAX(月工資) AS 最高工資,部門號 INTO temp FROM職工 GROUP BY 部門號

SELECT 職工號 FROM 職工,temp WHERE 月工資=最高工資 AND 職工.部門號=temp.部門號

3.4 避免在索引列上使用計算

WHERE子句中,如果索引列是函數的一部分。優化器不使用索引而使用全表掃描。如

SELECT * FROM職工 WHERE 月工資*12>20000

可改為:

SELECT * FROM 職工 WHERE 月工資>20000/12

3.5 謂詞的等價變換

由于執行引擎對各種謂詞的處理方法不同,把邏輯表達式重寫成等價的且效率較高的表達式是提高效率的有效方法,同時也是切實可行的。針對執行引擎對各種謂詞執行效率的不同,總結如下謂詞轉換規則:

1)將BETWEEN轉化為AND 連接的謂詞

把BETWEEN...AND...形式改寫為用AND連接的兩個謂詞,效率往往

有一定的提高。

例如:月工資 BETWEEN 1000 AND 2000 改為: 月工資>=1000 AND 月工資

2)避免使用In語句

當查詢語句中有In關鍵詞時,優化器采用OR并列條件。

如:職工號IN (‘1001’,’2001’) 改為:職工號=’1001’ OR 職工號=’2001’

4 結束語

查詢處理是數據管理系統的核心,而查詢優化技術是查詢處理的關鍵技術。查詢優化就要抓住關鍵問題。在數據庫的開發和維護過程中,查詢優化設計可以提高系統的性能,尤其對于數據量大的數據庫系統最為重要。本文提到一些優化方法是根據自己的經驗,并查閱了大量的資料。在具體的使用時候要根據實際情況,才能合理制定出良好的優化方法,實現快速、高效的數據查詢。

參考文獻:

篇7

一、關系數據庫技術的功能

關系數據庫技術的主要作用是為網絡設計提供輔助功能,在關系數據庫中包含各種各樣網絡設計所需的數據和信息,合理應用關系數據庫技術可網絡設計提供便利條件。促使網絡設計更加完善,比如:在關系數據輸入過程中,要先把對數據的賦值進行全面系統的分類處理,然后對這些數據進行整合和重組,促使網絡設計能獲得更加全面的數據參數和參考信息,促使網絡設計效果和服務質量不斷提升。

二、網絡設計對關系數據庫技術的需求分析

在計算機網絡技術具有很強的開放性,安全性容易受到挑戰,大大增加了管理的難度。為完整網絡設計對安全性和性能的需求,就必須切實滿足如下要求:高性能。網絡設計需要應用到支持線速交換的骨干交換設備,才能確保數據交換的流暢性,在關系數據庫中幾乎包含網絡設計所需的全部信息,合理應用關系數據庫技術可為網絡設計提供數據支持和理論指導。高質量。網絡設計需要滿足業務服務質量,應用業務數據通常情況下,都包含多種多樣的形式,關鍵業務數據流在網絡流量高峰期內,所需的響應時間會有響應的延長。因此,在具體設計過程中,為最大限度上滿足網絡設計的服務質量,高性能網絡必須具備關系數據庫的相關功能。網絡的安全性。網絡病毒、黑客等是目前影響計算機網絡安全的主要因素。因此,網絡設計中需要采取有針對性的手段和技術,禁止病毒的傳播和黑客的攻擊。

三、網絡設計中關系數據庫技術的具體應用

(一)應用思路

為滿足計算機網絡對高性能、高質量、高安全性的需求,在具體設計過程中,對網絡的控制需要以設備分層結構的總線型為主要設計依據,在滿足高性能、高質量、高安全性的基礎上,提升網絡技術應用范圍的靈活性和有效性。關系數據庫的基礎就是數據的有效性,因此,在應用關系數據庫技術時,需要重復結合對象技術,有針對的實現計算機網絡對數據集的功能。此外,針對關系數據庫存在不合理的產品,可在綜合事務處理中進行及時糾正處理,全面體會網絡數據系統的開放性和可擴展性。在關系數據庫中結構比較清晰,簡潔,配置協議的錄入也可以輕松實現,并且協議中的數量,對網絡涉及的難易程度并不會造成較大影響,大大提升了網絡設計的可操作。關系數據庫訪問對象和網絡設計形式之間具有非常密切的聯系,因此,在進行計算機網絡訪問系統設計過程中,要充分結合關系數據庫,可通過C語言編程的使用來完成訪問工作。

(二)存儲功能的實現

在網絡數據處理中,XML(可擴展標記語言)是進行數據轉換的主要標準,通過描述數據自身的意義來實現數據實體間復雜嵌套的關系連接。因此存儲功能的實現主要包括以下兩個方面:1.結構映射XML中文件類型定義比較復雜,需要先進行簡化處理,生成文件類型定義圖,具有的簡化流程為:先進行層次嵌套關系的平面優化轉換處理,將其轉換為非嵌套定義;然后再對多個一元操作進行簡化轉換;最后把聚集轉換為多個子元素,通過整合和歸類的作用,構成一個子元素。在具體簡化過程中,要完成文件類型定義圖像關系模式的映射,通過共享內聯法,為文件類型定義提供達先對獨立的關系。再通過綜合內聯法,在父節點形成的關系表中,除直接后繼節點之外,內聯和入度都超過1的元素節點。2.模型映射XML文檔在存儲過程中,常用的方法有兩種,一種是Edge法,主要過程為把XML文檔當做圖形結構進行處理,并在相應的關系表中,完成邊界存儲,而目標節點的區分通過flag來實現。Source主要應用在資源節點存儲中,target則主要應用目標節點標識符的儲存中。

(三)轉換功能的實現

篇8

2客戶關系數據庫相似重復記錄清洗算法

經研究大量的企業客戶關系數據庫,發現客戶關系數據表的屬性個數均不多,一般為10個左右,且客戶信息基本包含了姓名、性別、身份證號、住址等屬性.對于住址等屬性由于描述方式不一或采用簡寫等方面的原因,造成同一個人在同一張表中出現了多條住址不一樣的記錄.然而如果兩條或多條記錄相似重復,其姓名、性別和身份證號等屬性必定相同,所以對于客戶關系數據表判重前的排序使用“姓名+性別+身份證號”的多關鍵字排序方式.經排序,相似和重復記錄已位于鄰近的區間內.在排序的基礎上,對相鄰數據記錄進行比對,如構成相似重復記錄,則進行合并,合并后刪除原來的兩條記錄,將新合并的記錄插入數據表,然后用新合并的記錄和之后的記錄再進行比對,以此類推.記錄的排序、合并和刪除實現起來均非常簡單,所以清洗中最麻煩的一環便是數據記錄的比對即相鄰記錄相似重復的判定.此外,客戶關系數據庫中常出現許多無用的數據,即“廢卡”信息,為了減少這些“臟數據”占用系統資源,也為了提高相似重復記錄的清洗速度,在相似重復記錄清洗前有必要對這些數據先行清洗.由于客戶關系數據庫都會記錄卡片使用情況,如用卡時間等信息,可以根據這些信息對所有的記錄進行掃描,導出無用的數據,由人工方式判斷是否予以刪除.

篇9

關鍵詞:關系數據庫 關鍵詞查詢 數據庫索引

1 系統總體設計

人們在求解一個復雜問題時,通常采用的是逐步分解、分而治之的方法。也就是把一個大問題分解成若干個比較容易求解的小問題,然后分別求解。設計一個復雜的系統時,往往也是把整個系統劃分為若干個功能較為單一的功能模塊,然后分別予以設計、實現,這就是模塊化設計。本系統也采用這種模塊化設計方式。

圖1 面向關系數據庫關鍵字查詢系統框圖

2 數據庫設計

本系統為面向關系數據庫的關鍵字查詢系統,在實驗中本文選取了IMDB 數據集,為了進行實驗,將數據集整理為以下七個表數據結構。

實驗數據集(電影信息數據庫):

create table Actor( //演員表

actorname varchar(50) Primary Key ; //演員姓名key

sex varchar(2); //性別

mvname varchar(50); //出演電影或電視劇名

mvyear varchar(10); //電影上映時間

mvactorname varchar(10); //電影中人物姓名

position varchar(20); //電影中人物排名

made varchar(10); //TV 或是Video

setname varchar(50); //出演電視劇集名

episode varchar(10); //出演電視劇集

date varchar(10); //電視劇播出日期

classification varchar(30); //(achieve football)

creat table Consume( //設計師

consumename varchar(20) Primary Key; //設計師姓名key

mvname varchar(20); //電影名或電視劇名

mvyear varchar(10); //上映日期

setname varchar(20); //電視劇集名

episode varchar(10); //電視劇集

productiondate varchar(10); //電視劇播放日期

classification varchar(30); //(as M...)

made varchar(10); ///(V/TV/uncredited)

creat table Director( //導演信息

directorname varchar(20) Primary Key; //導演姓名key

mvname varchar(20); //電影或電視劇名

mvyear varchar(10); //上映日期

setname varchar(20); //電視劇集名

episode varchar(20); //電視劇集

made varchar(10); //(V/TV/VG)

explantaion varchar(30); //(as M...)

creat table Business( //投資

mvname varchar(20) Primary Key; //電影名key

productiondate varchar(20); //拍攝日期

company varchar(50); //出品公司

studiodate varchar(50); //上映日期

masterpiece varchar(1000);///OW

budget varchar(20); //預算

ad varchar(50); ///AD

general_revenue varchar(20); //收入

wg varchar(50); //WG

editorname varchar(20) Primary Key; //編輯名

mvname varchar(20); //電影或電視劇名key

mvyear varchar(10); //上映日期

made varchar(10); //(V/TV/video)

setname varchar(20); //電視劇集名key

episode varchar(20); //電視劇集key

explantaion varchar(30); //(as M...)

creat table Color { //顏色信息

mvname varchar(20); //電影或電視劇名key

mvyear varchar(10); //上映日期

setname varchar(20); //電視劇集名key

episode varchar(20); //電視劇集key

color varchar(20); //顏色分類color或black and white

explantaion varchar(10); //顏色分類之后的()中有(HD)等,(HD)是高清

Primary Key(mvname,setname,episode);

}

creat table Keyword( //關鍵詞

mvname varchar(20); //電影或電視劇名key

mvyear varchar(10); //上映日期

setname varchar(20); //電視劇集名key

episode varchar(10); //電視劇集key

keyword varchar(50); //關鍵詞

Primary Key(mvname,setname,episode);

3 數據庫索引設計

由于關系型數據庫對于文本屬性上全文索引的支持,所以在文本屬性可以直接利用數據庫中的全文索引。對于給定的關鍵字k,全文索引能檢索出查詢關鍵字所在位置。

對于數據庫中的表屬性,構建索引的方式比較簡單,依賴于DBMS的IR索引。對于數據庫中具有文本屬性的列,在該列上建立全文索引。在進行關鍵字查詢時,對于給定的關鍵字,通過數據庫的全文索引,會返回包含該關鍵字的元組集合。

在進行關鍵字查詢的時候,對于用戶給定查詢關鍵字,系統首先要對給定的關鍵字進行定位,確定關鍵字所匹配的信息是模式項還是數值項。

例如,關鍵字{“Color”“Director”}的索引結構如表1所示。

表1 關鍵字{“Color”“Director”}的索引結構

4 關鍵字檢索設計

在搜索引擎行業,所謂關鍵字,就是用戶在使用搜索引擎時輸入的、能夠最大程度概括用戶所要查找的信息內容的字或者詞,是信息的概括化和集中化。關鍵字檢索作為一種易于使用的檢索方式,為大量普通用戶所喜愛。本文從關鍵字個數角度介紹現有的關鍵字檢索技術中最常見的單關鍵字查詢和多關鍵字查詢這兩種關鍵字檢索形式。

5 結果生成設計

在本文中,將查詢結果定義為元組連接樹。

元組連接樹(Joined Tuple Tree)是給定一個數據庫模式圖GS,一個元組連接樹T是一棵元組樹。其中,T中的每一條邊(ti,tj)(ti∈Ri,tj∈Rj)滿足以下兩個要求:

①(Ri,Rj)∈RS,

②ti∞tj∈Ri∞Rj。

同時這些元組連接樹滿足以下條件:

①完整性:用戶提交的所有關鍵字均出現在元組連接樹上;

②最小性:從元組連接樹中移除任何元組后的元組連接樹都不具有完整性。

6 結束語

通過分析相關檢索系統的實現策略,設計了支持關鍵字檢索的系統架構和核心構成組件,主要包括數據庫索引、數據庫模式圖、關鍵字檢索和結果生成。

參考文獻:

篇10

隨著計算機技術的發展,計算機應用系統的開發越來越多,需要大批掌握大型關系數據庫的專業技術人員,培養和造就這樣的專業人員已經成為時代的需求,是大學計算機教學中一個十分重要的方面。由于大型數據庫在計算機應用系統開發中的重要地位和作用,突出抓好大型關系數據庫的教學已經別無選擇。同時,大型關系數據庫是一門實踐性很強的課程,學生在學習完數據庫基礎理論后,通過大型關系數據庫的學習,可以深化數據庫理論的理解,提高并培養綜合運用知識、解決實際問題的能力。對學生科研能力、工程能力和創新能力的培養具有重要作用。因此,對這門課的教學模式值得進行認真的研究與探討。

1大型關系數據庫Oracle的教學現狀

隨著社會對大型應用系統開發要求的日益增多,大型數據庫開發相關的人才需求也不斷增加,比如:Oracle、SQL SERVER和DB2的數據庫管理員等,特別是Oracle數據庫管理員,在比較大型的網絡應用中需求量更大。太原理工大學五年前就在選修課中開設了“大型關系數據庫Oracle”。但是大型關系數據庫Oracle技術要求高,實踐性要求很強,加之學校存在教學管理、資金投入以及師資力量不足等諸多因素的困擾,使得這門課的教學質量很難盡如人意,存在較為嚴重的不足與缺陷,具體表現如下。

1.1沒有合適的教材和合理的大綱

我校計算機系最初采用Oracle公司廠家提供的培訓教材,其內容較多,分體系框架、PL/SQL指令、性能調整和備份與恢復等內容[1],而大學教學中該課程的學時有限,教學過程中很難做到面面俱到,要想讓學生更進一步深入領會并形成應用能力存在一定困難。后來學校又采用了ORACLE的技術書籍進行教學,但是這些書籍基本側重點各不相同,導致教學過程中內容不夠全面,重點難點不易把握,教學效果也不十分理想,很難適應高校教學的需要,很難滿足學生求知的欲望,更主要的是不能夠適應社會的需求。

1.2重理論,輕實踐

在這么幾年的ORACLE教學摸索中,由于學校數據庫服務器和網絡條件的限制,更多地關注的是理論教學,許多交互性演示的例子也是用PPT展示,學生很少參與甚至不參與具體的操作過程,導致學生很少接觸到解決實際問題的環節,給學生的感性認識不強。再加上配套的教學實驗環節較少或根本沒有,學生很難有動手機會,使理論與實踐得不到銜接,影響了學生綜合素質的提高。

1.3重技術,輕應用

即使在教學環境和條件具備情況下,有的教學過程也只是滿足于讓學生掌握知識點,至于這些知識點在實際開發中如何應用,知識點之間如何貫穿聯系等相關綜合性素質的培養,沒有滲透到教學中,導致學生的知識停留在點多線短,缺乏聯系的層面,不能形成較為系統綜合的結構體系。比如觸發器,很多人只知道它的定義,會編寫,但是在一個項目中何時用、怎樣用等內容,在教學中則很少涉及,使學生感覺所學的知識與實際應用存在較大的差距。

這些問題和不足已經引起一定程度上的關注和重視,我們學校在不斷加大對大型關系數據庫教學的改進力度的同時,積極組織編寫適合高校教學的相關教材,逐步嘗試加大教學實驗環節的學時數,增加實訓、項目模擬等項內容,給學生以更多實踐的機會,提高其綜合應用所學基礎理論知識的意識和實際動手的能力,為造就更多學識豐厚、技術高超、學以致用的高素質人才,為不斷滿足時代和社會對數據庫技術人才的需求,創造了一定的教育教學條件。

2教學模式的改進方法

針對目前存在的問題,進行大型關系數據庫課程教學的改革嘗試,我們認為應該注重把握好以下幾個方面。

2.1精心挑選、把握精髓,選擇較好的教材

Oracle數據庫的廠家標準培訓教材和相關的科技書籍不能拿來就用。首先必須根據大學教學大綱的培養目標要求,從中選取適合學生的內容。我們知道大型關系數據庫課程要培養的是能夠進行數據庫設計、開發和維護的數據庫管理員(DBA)[2]。一般情況下,數據庫管理人員分為三類:軟件開發型DBA,軟件維護型DBA和系統設計型DBA。本科教育教學大綱要求培養的是兼顧前一、二類的高素質人才。所以,在教學教材內容的選取上,就要著眼于Oracle數據庫的基本編程操作和基本管理能力的培養,而把數據庫的系統架構和性能調整等內容放在次要的地位,指導幫助學有余力的學生自學,以豐富其知識積累。在基本編程操作教學過程中,要注重對數據庫的數據操縱語句DCL、數據查詢語句DQL和過程編程語句PL/SQL的把握,而對數據定義語句DDL等讓學生了解即可。在基本管理教學過程中,限于教學課時的制約,可以適當傾向于用戶管理、權限管理、基本對象管理等方面內容的學習,而將其他的技術管理內容作為學生的自學內容。這樣可以使教學工作做到學有目標、富有實效,學生學習做到入門快、有興趣、收益大。其次,要本著管用有效、突出重點的原則篩選教學內容,選擇計算機應用系統實際開發中常用、多見的知識,組織開展教學,引導學生掌握精華和要害,使學生能夠充分利用有限的時間,學到最具實用價值的知識和技術。

2.2把握理論和實驗相結合這一教學過程中的關鍵點

大型關系數據庫實踐性很強,光講理論和架構,學生不容易掌握,難以形成能力,所以應該強化實驗。這門課的教學共有32個學時,我們現在把相關理論知識壓縮在12學時內講授完畢,用剩余的20個學時,讓學生做24個實驗,通過這些實驗,引導學生掌握數據庫對象管理、數據庫編程基本操作、數據庫安全管理、文件管理、表空間管理、備份管理、狀態監測等方面的操作技能[3]。使學生能夠兼具理論性和動手實踐能力,有效地了解和掌握Oracle數據庫系統操作和管理。

2.3注重知識點在工程開發實例中的綜合運用

掌握了數據庫的基本理論和基本操作技能后,如何在實踐開發中應用所學知識,就應當成為我們教師和學生共同關注的問題[4]。因此,有必要在大型關系數據庫Oracle的教學過程中,引入Oracle工程開發。在我校的ORACLE課程的內容中,我們以一個學生成績管理系統為例,從系統的需求分析開始,介紹實體關系設計、系統邏輯結構設計、系統物理結構設計、數據庫實施、系統存儲過程設計、觸發器設計、數據導出和初始化設計等,在全過程實例系統開發中,讓學生體會數據庫技術在項目開發中的應用,同時掌握各個知識點在實踐中的綜合運用。這部分作為學生了解的內容,課時為4學時左右,建議在有條件的學校,可以類設計一個大的課程設計題,要求學生模擬項目開發中數據庫開發的全過程。我校教學實踐證明,這樣做的效果非常好,不但鞏固了課堂教學知識,同時促使學生發揮主動性,掌握很多其他數據庫課堂上沒有來得及涉及的內容。

3總結與展望

設立大型關系數據庫選修課的目的,就是要培養適應社會需求的具有實踐能力和創新精神的數據庫管理技術人才。在現有的教學資源條件下,如何有效地進行教學改革、完成教學目標、培養合格人才,已經成為該項課程教學的迫切任務。

對于教學內容和教學方法這兩個教學中的關鍵點,我們提出如下的改進思路:精選教學內容、加強實驗環節和注重工程實踐。

大型關系數據庫的教學對教師和學生提出了更高的要求,需要在教學實踐中勤于探索,即時總結,不斷改進,以明確的培養目標來選擇教學內容,以具體的實際應用為教學導向,以真實的系統開發設計實踐為重點[5],就能夠在教學實踐中取得好的教學效果,提高學生的理論與實踐水平,培養學生的專業素養。只要我們真誠地為學生著想,為社會服務,就一定能夠使大學教育教學工作受到學生的歡迎,得到社會的承認,不斷提高我們的辦學水平,為國家為社會培養更多更好的有用人才,服務社會主義和諧社會建設,推動中華民族的偉大復興。

參考文獻:

[1] 安志遠. 數據庫系統原理及應用實訓教程[M]. 北京:中國水利水電出版社,2004.

[2] 羅瓊. 數據庫應用型課程的設置與實踐[J]. 科技信息, 2009(15):36-37.

[3] 員亞利,高春玲,陳紅梅. 計算機專業“大型數據庫”課程教學研究與實踐[J]. 計算機教育, 2008(12):3-4.

[4] 祝朝映. 任務驅動在計算機教學中的探索與實踐[J]. 教職論壇,2003,(10):56-57.

[5] 向琳,左德承,羅丹彥,等. “計算機設計與實踐”課程創新性實踐教學探索[J]. 計算機教育,2007(3):16-18.

The Improvement of the Teaching Pattern of Large-scale Relational Database Oracle

QIANG Yan

国产精品视频线观看26uuu,免费av网站在线观看,免费一级a四片久久精品网,国产成人无码精品久久久露脸
中文字幕一本精品在线 | 午夜国产精品电影在线观看 | 色多多99在线热播视频 | 亚洲国产日韩欧美高清片 | 亚洲中文字幕无线乱码 | 曰韩欧美亚洲美日更新在线 |