關系數據庫范文
時間:2023-04-09 12:12:34
導語:如何才能寫好一篇關系數據庫,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。
篇1
【關鍵詞】關系數據庫;非關系數據庫;NoSql
前言
從上個世紀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 數據庫種類很多,但是都有一個共同的特點就是去掉關系型數據庫的關系型特性。數據之間彼此無關系,這樣就非常容易擴展??梢源鎯A繑祿M瑯佑捎跀祿g無關系,數據庫的結構簡單,在處理大數據量時,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數據庫的不斷發展和完善,將來也有可能取代關系數據庫成為主流數據庫。
參考文獻:
[1]盧冬海,何先波.淺析NoSQL數據庫 中國西部科技 2011年02期
篇2
關鍵詞:數據庫轉換;.NET;XML
中圖分類號: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.
[4] 呂品,夏紅霞,李明.異構數據庫互操作平臺的開發研究[J].武漢理工大學學報,2003,25(1):35-37.
篇3
關鍵詞:網絡設計;關系數據庫技術;儲存功能;轉換功能
一、關系數據庫技術的功能
關系數據庫技術的主要作用是為網絡設計提供輔助功能,在關系數據庫中包含各種各樣網絡設計所需的數據和信息,合理應用關系數據庫技術可網絡設計提供便利條件。促使網絡設計更加完善,比如:在關系數據輸入過程中,要先把對數據的賦值進行全面系統的分類處理,然后對這些數據進行整合和重組,促使網絡設計能獲得更加全面的數據參數和參考信息,促使網絡設計效果和服務質量不斷提升。
二、網絡設計對關系數據庫技術的需求分析
在計算機網絡技術具有很強的開放性,安全性容易受到挑戰,大大增加了管理的難度。為完整網絡設計對安全性和性能的需求,就必須切實滿足如下要求:高性能。網絡設計需要應用到支持線速交換的骨干交換設備,才能確保數據交換的流暢性,在關系數據庫中幾乎包含網絡設計所需的全部信息,合理應用關系數據庫技術可為網絡設計提供數據支持和理論指導。高質量。網絡設計需要滿足業務服務質量,應用業務數據通常情況下,都包含多種多樣的形式,關鍵業務數據流在網絡流量高峰期內,所需的響應時間會有響應的延長。因此,在具體設計過程中,為最大限度上滿足網絡設計的服務質量,高性能網絡必須具備關系數據庫的相關功能。網絡的安全性。網絡病毒、黑客等是目前影響計算機網絡安全的主要因素。因此,網絡設計中需要采取有針對性的手段和技術,禁止病毒的傳播和黑客的攻擊。
三、網絡設計中關系數據庫技術的具體應用
(一)應用思路
為滿足計算機網絡對高性能、高質量、高安全性的需求,在具體設計過程中,對網絡的控制需要以設備分層結構的總線型為主要設計依據,在滿足高性能、高質量、高安全性的基礎上,提升網絡技術應用范圍的靈活性和有效性。關系數據庫的基礎就是數據的有效性,因此,在應用關系數據庫技術時,需要重復結合對象技術,有針對的實現計算機網絡對數據集的功能。此外,針對關系數據庫存在不合理的產品,可在綜合事務處理中進行及時糾正處理,全面體會網絡數據系統的開放性和可擴展性。在關系數據庫中結構比較清晰,簡潔,配置協議的錄入也可以輕松實現,并且協議中的數量,對網絡涉及的難易程度并不會造成較大影響,大大提升了網絡設計的可操作。關系數據庫訪問對象和網絡設計形式之間具有非常密切的聯系,因此,在進行計算機網絡訪問系統設計過程中,要充分結合關系數據庫,可通過C語言編程的使用來完成訪問工作。
(二)存儲功能的實現
在網絡數據處理中,XML(可擴展標記語言)是進行數據轉換的主要標準,通過描述數據自身的意義來實現數據實體間復雜嵌套的關系連接。因此存儲功能的實現主要包括以下兩個方面:1.結構映射XML中文件類型定義比較復雜,需要先進行簡化處理,生成文件類型定義圖,具有的簡化流程為:先進行層次嵌套關系的平面優化轉換處理,將其轉換為非嵌套定義;然后再對多個一元操作進行簡化轉換;最后把聚集轉換為多個子元素,通過整合和歸類的作用,構成一個子元素。在具體簡化過程中,要完成文件類型定義圖像關系模式的映射,通過共享內聯法,為文件類型定義提供達先對獨立的關系。再通過綜合內聯法,在父節點形成的關系表中,除直接后繼節點之外,內聯和入度都超過1的元素節點。2.模型映射XML文檔在存儲過程中,常用的方法有兩種,一種是Edge法,主要過程為把XML文檔當做圖形結構進行處理,并在相應的關系表中,完成邊界存儲,而目標節點的區分通過flag來實現。Source主要應用在資源節點存儲中,target則主要應用目標節點標識符的儲存中。
(三)轉換功能的實現
關系數據庫中數據轉換流程包括以下幾個步驟:第一步,定義模式映射通過XSD格式來完成,進而實現目標數據庫到XML模式映射的建立,此外,XSD格式和文件類型定義相比,可更好的定義類型,并且在網絡設計中也容易實現數據之間的相互交換,可保證數據庫中信息和數據的傳輸都是XML格式。第二步,當模式映射文件形成以后,還需要綁定同步模塊,為后期XML的導入提供參考指導。第三步,在目標數據庫中和本庫中主要通過源數據庫的使用,完成相關數據模式的對比,并判斷其是否為同步的表結構,為創建異構模式映射文件提供數據支持。第四步,根據同步模式中的相關任務,形成對源數據庫,所有的同步數據都可以通過該查詢來獲取。第五步,把關系數據庫中查詢到的結果進行同步處理,形成XML格式數據,并寫入相應的文件中。
篇4
關鍵詞:大型關系數據庫;Oracle;教學改革
隨著計算機技術的發展,計算機應用系統的開發越來越多,需要大批掌握大型關系數據庫的專業技術人員,培養和造就這樣的專業人員已經成為時代的需求,是大學計算機教學中一個十分重要的方面。由于大型數據庫在計算機應用系統開發中的重要地位和作用,突出抓好大型關系數據庫的教學已經別無選擇。同時,大型關系數據庫是一門實踐性很強的課程,學生在學習完數據庫基礎理論后,通過大型關系數據庫的學習,可以深化數據庫理論的理解,提高并培養綜合運用知識、解決實際問題的能力。對學生科研能力、工程能力和創新能力的培養具有重要作用。因此,對這門課的教學模式值得進行認真的研究與探討。
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
(College of Computer and Software, Taiyuan University of Technology, Taiyuan 030024, China)
篇5
【關鍵詞】計算機;網絡設計;關系數據庫;研究分析
引言
計算機網絡設計中可以運用的關系數據庫的設備以及技術是非常多樣化的,常見的數據庫技術包括:層次模型數據庫技術、關系數據庫技術、網狀模型數據庫技術以及層次模型數據庫技術。在所有常見的數據庫技術中,關系數據庫是最為科學的,在現實的運用中的推廣與使用最為廣泛,適合于現代化生活中比較復雜的數據管理。關系數據庫的管理系統非常容易獲得,已經成為了人們首選的數據庫技術。在計算機網絡設計中得到了大范圍的使用。隨著信息時代的到來,給計算機網絡技術的發展提供了全新的發展機遇,近年來,我國對計算機網絡技術的發展給予了高度重視,投入了大量的人力、物力。使計算機網絡技術得到充分發展。由于我國計算機技術起步比較晚,對計算機技術的應用還不夠成熟,所以一定要采取并且吸收國內外先進技術,促進計算機網絡設計的成熟與發展。
1關系數據庫概述
關系數據庫是創建在關系模型基礎上的數據庫,借助于集合代數等數學概念和方法來處理數據庫中的相關數據。在現實世界中,各種實體以及實體之間的聯系都可以通過關系模型來進行表示。關系模型由關系數據結構、關系操作集合、關系完整性約束三部分組成。關系數據庫技術是對傳統的數據庫技術的傳承與發展。針對關系數據庫技術的研發是以原有的數據庫技術作為基礎的,只是運用了更加先進的輔助技術手段。在計算機網絡設計的過程中運用關系數據庫技術可以建立起比較系統化的關系數據庫模型。關系型數據庫在計算機網絡技術設計中的應用優勢主要是數據存儲功能強大和數據運用便捷。關系數據庫在計算機網絡設計中贏得運用主要分為以下幾個過程:首先,根據實際情況,利用原有的數據庫技術建立起模型。其次針對表格中的相關數據進行分析與處理,形成簡單的關系數據庫。最后,通過一系列的處理,原本簡單的表格就會顯現出固定的特征,可以進行數據存儲與查詢。如果用戶想要使用相關的數據可以根據數據特征進行選擇,將符合要求的數據調用出來。在整個使用過程中,表格只是一個載體,承載相關的數據。關系數據庫技術在計算機網絡技術設計中的應用可以節約很多中間環節。從而提高數據的利用率。
2在計算機網絡設計中關系數據庫的運用原理
關系數據庫在所有數據庫中屬于數學模型最完善,最有利于管理復雜數據的數據庫模型,另外,關系數據庫比較容易構建管理系統,編輯工具比較完整,正是由于這些特點與優勢,在計算機網絡設計中得到了廣泛應用。由于計算機網絡設計中對數據庫技術的要求比較高,需要數據的獲得簡單便捷,并且可以對復雜的數據有效管理。關系數據庫技術通過C語言的運用充分實現了以上要求,得到人們親睞。關系數據庫的設計原理是在計算機的數據庫軟件的系統結構中有兩個主要的數據訪問系統,但兩個系統不是聯合面向用戶的,而是獨立的面對用戶,當用戶訪問開放性的數據鏈接時,數據庫的管理系統可以通過輸入語言程序來進行訪問。當數據體系結構由多個數據訪問對象同時工作時,具備良好的協同性,對關系數據庫技術的操作進行全面優化。另外,關系數據庫的編程工具非常完整,在計算機網絡設計中大多使用C語言進行編程,可以最大限度的滿足設計的相關需求。
3關系數據庫在計算機網絡設計中的運用優勢
3.1數據存儲功能強大
隨著科學技術的快速發展,促進了網絡拓撲系統的優化,在計算機網絡設計中所涉及到的數據信息在不斷的增加,傳統的數據庫信息主要由人工來進行錄用,信息的存儲量有限,在數據庫操作運作的過程中經常出現失誤?,F代化的關系數據庫技術的應用凸顯出非常明顯的優勢。關系數據庫系統中存儲著大量的數據信息,可以無限容量的輸入或者錄入數據信息,在計算機網絡的設計中,可以通過數據庫的的輔助功能對數據信息進行調度,推復雜的信息進行處理。關系數據庫的數據系統操作起來非常便捷,出現失誤的概率非常小,操作準確便捷,目前在各種數據庫中,關系數據庫的運用最為廣泛,比較適合現代化復雜的數據管理。
3.2數據靈活轉換
大多的計算機網絡設計中,不可避免的會涉及到社會生產的多個方面,要求計算機網絡一定要實現不同數據之間的轉換,促進計算機網絡設計軟件的正常運行。所以對不同數據之間的轉換工作已經成為了計算機網絡技術發展的重點。關系數據庫在計算機網絡設計中的應用具有簡便的數據轉換功能,通過關系數據庫可以將計算機中大部分的軟件按照不同的需求進行轉換,轉換的功能非常高效。關于軟件的轉換主要是關系數據庫將計算機網絡設計中的計算機軟件與網絡管理軟件進行相互鏈接,從而實現了計算機中大部分軟件之間自由轉換。一旦數據轉換的問題得到解決,那么計算機網絡設計在日常的運行中就會起到良好的效果。
3.3輔助設計功能
關系數據庫在計算機網絡設計中主要起到輔助設計的功能,計算機網絡設計的資源來源于數據庫,數據庫的信息量非常大,而且具有特定的描述特征。把相關的數據進行組合,得到相應的網絡參數,便于計算機網絡數據的輸入,并且解決相關的設計問題。在計算機網絡設計中,光纖是比不可少的應用,網絡數據庫的存在使得光纖設計過程中的相關設備的數據可以相互融合,加快傳播速度。關系數據庫技術在計算機網絡設計中的應用能夠及時的發現數據輸入是的錯誤并且及時解決。
3.4概念單一
關系數據庫是建立在嚴格的數學概念基礎之上,概念比較單一,實體與實體之間都存在必然的聯系,數據結構簡單清晰、數據的存取路徑對用戶透明,所以關系數據庫技術具有更高的數據獨立性和安全保密性。
4結束語
關系數據庫可以對海量信息進行存儲、利用以及轉化,在計算機網絡設計中的運用可以使操作更加準確便捷。隨著科學技術的快速發展與進步,對計算機網絡設計是一個巨大挑戰,對計算機網絡的設計需要高度重視,抓住當前的發展機遇,逐漸的將關系數據庫技術運用到計算機網絡設計中,使計算機網絡設計更加優化,促進我國計算機技術與信息技術的穩定發展。
參考文獻
[1]李遠英.計算機網絡設計中關系數據庫技術的應用探析[J].通訊世界,2016-11-25.
[2]徐闖.計算機網絡設計中關系數據庫技術的應用[J].信息技術與信息化,2016-03-25.
[3]朱曉寧.關系數據庫技術在計算機網絡設計中的運用[J].智能城市,2016-04-25.
篇6
[關鍵詞]關系數據庫SQL查詢對策
中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)1210080-01
在各類大型應用軟件的數據庫中,都存在大量的數據信息和記錄,經常要對它們進行各種數據操作。SQL(Structrued Query Language)作為結構化查詢語言,是大型計算機操作關系數據庫的標準查詢語言,同時也廣泛地應用到小型計算機的數據庫管理系統中。它是一種高度非過程化的語言,即只要用戶按其語法規則寫出符合操作要求的語句,而并不需要告訴系統應如何執行SQL語句,就可得到所要求的結果。隨著數據庫技術的廣泛應用,在數據庫程序的開發過程中,大量的工作是要進行數據查詢和檢索處理。本文從SQL查詢語句執行的過程入手,對其執行效率進行分析,并給出參考性建議和優化策略。
一、SQL語句執行過程解析
在平時書寫SQL查詢語句時,雖然每個人的寫法不盡相同,而且有時個別子句順序并不影響操作結果,但是在各種數據庫管理系統中,標準的SQL的解析順序為:
1.FROM子句,組裝來自不同數據源的數據;
2.WHERE子句,基于指定的條件對記錄進行篩選;
3.GROUP BY子句,將數據劃分為多個分組;
4.使用聚合函數進行計算;
5.使用HAVING子句篩選分組;
6.計算所有的表達式;
7.使用ORDER BY對結果集進行排序。
通過以上SQL語句的解析過程,我們可以對SQL查詢語句進行優化處理。SQL查詢語句的核心結構是SELECT…FROM…WHERE,了解了這個基本結構,我們可以從以下幾個方面對其進行優化處理。
二、效率分析及優化對策
(一)從From子句入手
From子句后面接單表或者多表,通常情況下接受來自不同數據源的多表。如果是單表,一般情況下對表進行快速全表掃描。如果是多表的情況,查詢設計優化器將采取自右向左的順序依次讀取數據表。如以下語句:“From table1,table2,table3”,優化器將優先讀取table3表,然后是table2表,最后是table1表。在進行From子句的多表連接時,就需要結合條件子句WHERE進行分析,需要遵循下面的規則:1. 當WHERE后面接的條件能夠一次性過濾某個表的大量記錄時,應優先處理該表。2. 如果WHERE后面接的條件不能過濾掉大量記錄時應該優先考慮處理記錄數最少或者索引關鍵值最少的表。
(二)從條件子句WHERE入手
WHERE子句后面通常接過濾條件,對表的記錄進行篩選,篩選出符合條件的記錄。如果SELECT查詢語句沒有WHERE子句,則無須對表記錄進行過濾。若后面接單個表,則通常順序掃描全表。若后接多表或者大量記錄表時,則可以考慮用索引來減少查詢的時間。所以在查詢前可對各個表建立比較的索引。對WHERE子句中出現的條件,可以依據以下原則首先來驅動查詢。
(1)建立索引字段的列比沒有建立索引的要快;(2)主索引要比普通索引快;(3)單索引要比符合索引快;(4)有條件約束要比沒有條件約束要快。
此外,WHERE子句通常采用自下而上的順序解析WHERE子句,根據這個原理,表之間的連接必須寫在其他WHERE條件之前,那些可以過濾掉最大數量記錄的條件必須寫在WHERE子句的末尾。根據以上原則,我們可以判斷出以下四個語句中哪個選項語句效率最高。
Select * Frommobilewhere (mobileno='13775637677') andbegINtime>
{^2009-1-308:20:11} andbegintime
B) SELECT*Frommobilewhere(mobileno='13775637677' )andbegINtime
{^2009-1-30 8:20:11} andbegintime>{^2009-1-30 8:20:11}
C) SELECT*Frommobilewherebegintime
{^2009-1-308:20:11}and(mobileno='13775637677' )
很顯然,綜合以上原則C選項效率最高。
(三)從GROUP BY和HAVING子句入手
在SELECT語句中,GROUP BY語句的作用是對記錄進行分組(劃分成較小的組),使用聚合函數返回每一個組的匯總信息,而HAVING子句限制返回的結果集。在一個SQL語句中可以有WHERE子句和HAVING子句。HAVING與WHERE子句類似,均用于設置限定條件。WHERE子句的作用是在對查詢結果進行分組前,將不符合WHERE條件的記錄過濾掉,而HAVING子句的作用是篩選滿足條件的組,即在分組之后過濾數據,但它不能單獨使用,只能配合GROUP By語句使用,該條件中經常包含聚組函數,使用HAVING條件顯示特定的組,也可以使用多個分組標準進行分組。雖然HAVING子句可以起到過濾的作用,但是要盡量避免使用HAVING子句,HAVING只會在檢索出所有記錄之后才對結果集進行過濾。這個處理需要排序,總計等操作。如果能通過WHERE子句限制記錄的數目,而且能盡早地把不滿足條件的記錄過濾掉,那就能減少這方面的開銷。
(四)從謂詞等方面入手
在SELECT語句中,由于實際需要,查詢語句會經常出現謂詞。常用的謂詞有EXIST,NOT EXSIT,IN,NOT IN等,巧用謂詞也會提高SQL語句的執行效率,可參考以下原則編寫SQL語句。
1.Where子句中盡量不要使用IS NULL或IS NOT NULL的語句,因為它們不會使用索引。
2.WHERE子句盡量不要將通配符(%)放在搜尋詞首出現,通配符(%)在搜尋詞首出現不會使用索引。
3.用EXISTS代替IN。在許多基于基礎表的查詢中,為了滿足一個條件,往往需要對另一個表進行聯接。在這種情況下,使用EXISTS(或NOT EXISTS)通常將提高查詢的效率。
4.用表連接代替EXISTS。通常來說,采用表連接的方式比EXISTS更有效率。
5.用EXISTS代替DISTINCT。當提交一個包含一對多表信息(比如班級表和學生表)的查詢時,避免在SELECT子句中使用DISTINCT。一般可以考慮用EXIST替換。
6.WHERE子句盡量少使用NOT或是,應該成OR來實行,使用OR時應該把結果集小的條件放在前面。
7.UNION改用UNION ALL,UNION要對合并的結果進行排序,UNION ALL不排序。
8.ORDER BY子句中盡量不要使用非索引列。
三、結語
通過對SQL查詢語句執行過程的分析,可以從以上幾個方面對其進行優化改進,從而提高了數據庫查詢和檢索的效率。當然,具體的查詢語句還要根據具體需要,并結合具體的數據庫系統而定。只有多總結多積累才能寫出高質量高效率的查詢語句,當然這只是提高數據檢索的一個方面,在其他方面的設計也要進行優化,如對表建立必要的索引,減少表之間的連接,或盡量在索引屬性列上建立連接等。總之,通過以上幾個方面的綜合優化,一定會使數據庫查詢與檢索效率有很大的提高。
參考文獻:
[1]王振輝、吳廣茂,SQL查詢語句優化研究[J].計算機應用,2005,25(12).
[2]徐鳳梅,關系數據庫中SQL查詢語言的優化策略[J].廣西輕工業,2009,126(5).
[3]鄧文艷,基于關系數據庫的查詢優化技術[J].太原科技,2007(12).
[4]楊克昌,Visual FoxPro程序設計教程[M].長沙:湖南科學技術出版社,2004.
[5]李瑩、代勤,關系代數運算與SQL查詢的對應關系[J].內蒙古農業大學學報(自然科學版),2003,24(3).
篇7
數據庫技術發展至今已有40多年的歷史,它作為數據管理的有效手段,大大促進了計算機應用技術的發展。從早期的文件系統到層次數據庫和網狀數據庫,從關系數據庫到面向對象數據庫,以及面向不同應用的時態數據庫、演繹數據庫等等,均向人們展示了數據庫技術的廣闊應用前景[2]。關系數據庫,顧名思義是建立在關系數據庫模型基礎上的數據庫,借助于集合代數、離散數學等概念和方法來處理數據庫中的數據。關系數據庫是一個被組織成一組擁有正規描述的表格,該形式表格作用的實質是裝載著數據項的特殊收集體。這些表格中的數據以許多不同的方式被存取或重新召集而不需要重新組織數據庫表格[3]。除了相對容易創建和存取之外,關系數據庫具有容易擴充的優勢。在最初數據庫創造之后,一個新的數據種類能被添加而不需要修改所有的現有應用軟件。目前主流的關系數據庫有Oracle、SQL、Aceess、DB2、MySQL、SQLServer、Sybase等等[4]。根據本校辦學規模和處理信息量,采用ACEESS作為本系統數據庫的管理工具。
2數據庫模型建立
2.1應用需求抽象
根據學員信息管理的具體任務,按照管理功能進行業務劃分和模塊化設計。按照簡單性、獨立性及完整性原則,學員信息管理系統后臺可以分為以下幾個子系統:即學員檔案管理子系統、課程管理子系統、成績管理子系統、中隊管理子系統、管理統計子系統、系統管理子系統、系統維護子系統。(1)學員檔案管理子系統學員檔案管理主要有學員管理、批量學員添加、按中隊批量學員添加等功能。(2)課程管理子系統課程管理子系統主要有課程管理、批量課程添加、任課管理、任課添加等功能。(3)成績管理子系統成績管理子系統完成成績管理、批量成績添加、按中隊成績添加功能。(4)中隊管理子系統中隊管理子系統完成中隊管理、中隊批量添加兩個子模塊功能。(5)管理統計子系統管理統計子系統顯示學校基本信息,包括年級數、中隊數、學員數、教師數、課程數、用戶瀏覽統計等相關信息,還可完成學員統計、排名統計功能。(6)系統管理子系統系統管理子系統包括修改管理員密碼、帳號管理、干部管理、年級管理、學期管理功能。(7)系統維護子系統系統維護子系統主要完成系統的相關設置功能,包括站點名稱,站點LOGO設置,網站主體表格屬性設置,年級變遷(這里主要是對年級進行批量升級操作,也可以在中隊管理下單個進行升級)。
2.2數據庫表關系建立
關系數據庫模式的建立,離不開數據表之間關系的建立,只有建立表之間的關系,整個數據庫才能形成一個系統,提供強大的信息存儲、查詢、和處理功能[5]。對比應用需求說明和現實學校各部門的業務流程,設計數據庫表之間的關系如圖1所示。(1)學員和評語之間存在一對多的對應關系,即一個學員可以有多條來自不同老師的評語;學員和家長存在一對多的對應關系,即一個學員可以對應一個家長,方便家長對學員相關信息進行查詢。學員和平時成績存在一對多的對應關系,即一個學員可以有多種平時成績;同時,學員還和中隊有多對一對應關系,即一個中隊可以有多個學員。(2)中隊和成績有一對多的對應關系,即一個中隊可以有多條成績;中隊和年級有一對一的對應關系,即一個中隊屬于一個年級。中隊和大隊有一對一的對應關系,即一個中隊屬于一個大隊,中隊和任課信息有一對多的對應關系即一個中隊有多條任課關系與之對應。大隊和中隊有一對多的對應關系,即一個大隊對應多個中隊。(3)任課信息表中的教師ID和教師信息表中ID存在一一對應關系。教師表中ID和任課教師信息表中的ID存在一對多的關系。即一個教師可以有多個任課關系。任課教師表中的課程ID和課程表中的課程ID存在一一對應關系。任課信息表中的學期和學期ID存在一一對應關系。即一個任課信息對應一個學期。成績表中的課程ID和課程信息表中的ID存在一一對應關系,成績表中的學期ID和學期表中的學期ID存在一一對應關系。
2.3數據庫模式設計
2.3.1關系數據庫設計中存在問題
(1)數據冗余:在一個數據集合中重復的數據稱為數據冗余。例如在設計時沒有把教師信息表Teacher和任課信息表tea_sub分開,那么每存儲一條任課信息tea_sub(tsid、ts_tea_user、ts_sub_id、ts_ter_id、ts_cla_id)教師表中的其他信息也要重復存儲[4]。(2)更新異常:更新異常分為插入異常和刪除異常。插入異常:比如學員信息表student,如果不知道學號,那么插入再多的其他信息都是沒有意義的。例如一個剛入職的教師理所當然要在任課信息表中有其相關數據,但此時他還沒有任課,即他對應的元組<ts_sub_id、ts_ter_id、ts_cla_id>是不完全的,只有<tsid、ts_tea_user、ts_sub_id>而沒有<ts_ter_id、ts_cla_id>,不能將他的信息放到數據庫中。因此無法注冊該教師的任課信息,這與實際需求不符。這樣的操作是不合理的,將這種現象稱為插入異常。刪除異常:例如在沒分解的教師信息表中的任課信息中,相應的任課關系解除。那么刪除整條記錄,該教師的其他信息也被刪除,在查詢的時候無法查閱該教師相關信息,這也與實際需求相悖,將這種現象稱為刪除異常。數據庫的性能優化包括硬件優化,查詢優化和設計優化三個方面。本文著重介紹設計優化即模式優化,模式優化重點解決數據冗余和更新異常問題。
2.3.2數據庫模式的規范化
在對數據庫進行模式設計時,對關系的分解并不是盲目的,分解的目的在于減少關系模式的規模,避免不必要的存儲及操作的冗余和數據更新異常。為了清除異常,需要對關系模式進行合理地分解。為此,人們設計數據庫設計的規范化理論,以便能夠設計出異常盡可能少的數據庫模式[4]。據參考文獻[4]所述,數據庫模式分為6級,具體的定義見參考書目。分別是1NF:是關系數據庫對模式的基本要求,即要求屬性的值必須是原子屬性不可再分。2NF:消除了數據庫模式中非主屬性對碼的部分依賴。3NF:消除了數據庫模式中非主屬性對碼的傳遞依賴。BCNF:消除了數據庫模式中一切屬性對碼的傳遞依賴。4NF:消除了數據庫模式中非平凡的和非碼所隱患的多值依賴。5NF:消除了數據庫模式中非平凡的和非碼所隱患的連接依賴[4]。范式的級別由小到大分別是有1NF到5NF。范式的級別越低,冗余與更新異常就越容易產生[6]。(1)滿足1NF的學員信息表分解,在學員信息表中每一個屬性都該是原子屬性,故對部職別進行分解。由消防部隊的編制特點,每個省、自治區、直轄市均有相應的消防總隊;每個地級市、自治州、區都有相應的消防支隊。學校學員來自五湖四海,故對學員信息表中的部職別屬性進行分解。由于有的學員來自總隊和支隊機關,故把部職別分為總隊和部職別兩個屬性,即<yuanbubie>分解為<yuanbu-bie、province>,province為province表中的省份ID??傟牨碓O計為province(pid、pname)。在學員信息表中只要存儲省份ID就行。不用再存儲省份名。最長總隊名新疆維吾爾族自治區消防總隊所占字節為26Btye,所占ID為2Byte。按新疆總隊有學員121名計算,模式分解前學員原部別信息中存儲總隊信息需用26Btye×121=3164Byte;而模式分解后存儲ID信息占用2Btye×121=242Byte。(2)滿足BCNF的教師信息表分解,在2.4.1節數據庫設計存在問題中提到數據冗余和刪除異常,在沒分解的教師信息表的任課信息中,相應的任課關系解除。那么刪除整條記錄,該教師的其他信息也被刪除,在查詢的時候無法查閱該教師相關信息,這也與實際需求相悖。要解決刪除異常,即把教師信息表Teacher分解為教師基本信息表teacher和任課教師信息表tea_sub(tsid、ts_tea_user、ts_sub_id、ts_ter_id、ts_cla_id)。這樣的分解既解決了數據冗余的問題,也解決了刪除異常的問題。分解后Teacher和tea_sub關系模式都是1NF,且在其中不存在這樣的屬性A,A傳遞依賴與Teacher和tea_sub的碼、由于關系模式Teacher={R1,R2…,Rn}和tea_sub={R1,R2…,Rn}中Ri(i=1,2,…,n)為BC范式,則關系模式Teacher和tea_sub也滿足BCNF。數據庫的規范化設計還有很多,根據系統應用需求的變更和數據規模的遞增,需要設計相應的數據模式來優化昆明消防指揮學校學員綜合信息管理系統的數據庫性能,使之滿足應用需求,更好地為學校教師、學員和管理人員提供便捷的信息化服務。
3結束語
篇8
關鍵詞:數字圖書館;信息組織;數據庫技術
中圖分類號:G251.5 文獻標識碼:A文章編號:1007-9599 (2011) 16-0000-02
The Database Technology of Digital Library Information Organization
Liu Fen
(Huizhou Industrial& Commercial Senior Vocational School,Huizhou516008,China)
Abstract:Digital library is no longer a new concept,has undergone a considerable period of development.Within this period,construction of digital libraries in many areas has been greatly improved,which is a concept and ideas,convenient service is one of the important elements.In this paper,the history of digital library development started elaborated,followed by combining the characteristics of digital libraries,emphasizing the application of database technology on library organization and management of information need,and finally focused on the data warehouse,relational database,multimedia database,object-oriented database technology,database technology and other unstructured information organization in digital library applications.
Keywords:Digital library;Information organization;Database technology
一、前言
互聯網技術的發展給數字圖書館的發展帶來了很多的機遇,信息的類型以及信息的傳播方式也隨之發生了巨大改變。數字圖書館旨在建立一種大規模的并且可以拓展的海量的數字化信息資源庫,其能把無序的、復雜的資源變得更加有序化、更加有益于使用。與此同時,在現階段,我們更應該在結合互聯網技術的前提之下,把封閉的和精致的信息資源轉變成可以超越時間限制以及空間限制的信息資源,以向用戶提供更加高效及更加便捷的數字化信息為最終目的。
數字圖書館的發展雖然已經經歷了不是很長時期,但是相對于傳統的圖書館而言,數字圖書館仍然是一種比較先進和現代化的方式。這項技術通常與先進的網絡信息技術緊密連接,這是實現資源共享的主要方式之一。數字圖書館的信息資源需要進行組織和描述,以給使用者帶來方便,所以應該探索一種適合數字圖書館信息組織的技術。經實踐證明,數據庫技術在數字圖書館信息組織方面便具有很大的潛力和優勢?,F階段,數據庫在我國數字圖書館的信息處理中已經得到較為廣發的應用,大致上可以分為兩大種類,第一類是應用數據庫管理系統的軟件進行了二次開發為用戶提供查詢服務。另外一種是,商業化的數據庫。這一些數據庫更新換代是相對迅速的、高效的。
數字圖書館中的信息資源不僅極為復雜,而且信息量又非常大,既有影像資料也有電子文本等各種格式,還有軟件等其他形式,數字圖書館便是對這一些數字對象的集中分析、處理、整合以及輸出整理等。數字圖書館信息組織的數據庫技術的現狀數字圖書館的信息組織的對象是數字信息資源,主要方式是對其進行選擇、描述和整合等一系列的內容,以使其變得更加有序化,形成一個有機的整體,使資源的利用更加的方便和高效。數字圖書館信息組織是至關重要的,因為這直接關系到數據存儲的質量以及所提供的信息服務的好壞,在總體上會直接影響到系統運行的性能。
數字圖書館作為一個十分龐大的系統,其具有分布廣泛、規模大、信息容量大等特點,必須需要組織及其明確的數據庫技術,只有這樣才能夠最大程度上保證用戶進行訪問的質量與速度,以獲得自己所需要的最終信息,數據庫的建立是在一定的計算機和網絡技術基礎之上的,這是數字圖書館信息系系統所具有的基本特征。從其本質上特征來講,便是建立在計算機網絡技術基礎之上的數據庫信息系統。數據庫技術是數字圖書館的用戶獲取信息,以及對信息進行存儲、組織和檢索、分析統計等的技術基礎。所以數據庫的技術應該引起我們的重視和關注。數字圖書館的建立以及信息資源的開發和利用甚至是信息資源的配置和傳播,都從很大程度上依賴于數據庫技術。從宏觀上來講,數據庫技術主要包括數據倉庫技術、多媒體數據庫技術、關系數據庫技術等。
二、數字圖書館的信息組織
數字圖書館組織的信息對象除了傳統的文字信息以外還有圖像、聲音以及視頻等其他類型,這些信息在數字圖書館變化成為一些數字化層面的信息,并且在一定程度上與原有的載體分割開來,總體上來看,數字圖書館信息組織的對象主要是跨媒體的信息對象。信息數字化的過程是一個復雜的過程,信息可能會分布在不同的數據服務器上,而不僅僅是傳統的儲存在同一個地方。數字化圖書館還要面臨的就是信息總量的不斷增長,因為伴隨著信息的處理以及信息的傳播等各方面技術的快速發展,信息總量的增加是必然趨勢。在這些前提之下,數字圖書館的信息處理方式會是一種跨越時間和空間限制的方式,還具有全球化的特征。
圖書館的信息組織必須在一定的原則基礎之上完成,這些原則主要包括多維揭示原則、非線性原則、以及選擇性原則、標準性原則和完備性原則等。
三、數據庫技術在數字圖書館信息組織中的應用
(一)數據倉庫技術在數字圖書館信息組織中的應用
數字圖書館提供的不僅僅是一次性的信息,還要提供一些經過深層次開發的信息,不僅要讓讀者感受到信息的導航和信息的提供這些簡單的和傳統的內容,還要提供信息的分析和信息的決策支持等更深層次的服務,這些要求和發展趨勢就使得數據倉庫技術越來越成為圖書館信息組織的必不可少的數據庫形式。數據倉庫是很多數據的集合。這些數據主要用于支持管理的決策過程,并且具有集成、不可更新以及隨時間不斷變化等特點。實際上,數據倉庫是一個過程,是一個業務處理系統獲得數據,最后為用戶提供從數據中獲取信息和知識的各種方法和手段。
數據倉庫具有其他類型的數據庫所不具有的一些特點,第一,數據倉庫技術具有存儲信息量大的特點,一般會比其他的數據庫大。第二,數據倉庫還具有集成性的特點。在數據倉庫中,數據的來源是很復雜的,信息源不同,所以必須對原始的數據進行一定的處理時候才能夠進行統一和整合,以適合數據倉庫的要求。第三,數據具有很強的穩定性能。數據倉庫具有一個明顯的優勢,那便是可以對很長一段時間以內的歷史數據進行保留,這樣就避免了頻繁的數據的處理和更新。
數字圖書館的籌建和發展過程中一定會產生大量的信息數據,這是構建數據倉庫的基礎。作為一個具有整體性的技術體系,數據倉庫經歷了初步發展之后已經形成一定的規模,已經有足夠的技術基礎和普及的條件。同時,數據倉庫具有另外一個優勢,它不僅僅是在數字圖書館中得到了一定應用,而且在其他一些相關領域具有實際應用的先例,這些便為數據倉庫在數字圖書館中的應用奠定了相當深厚的技術基礎和值得借鑒的成功經驗。
只有圖書管理過程的科學和先進才能夠保證圖書管理的科學和規范,才能夠為讀者節約時間、提高效率和獲取更多的信息。所以圖書館的管理更應該向著科學化的方向發展和改進。數據倉庫技術的出現和發展很大程度上改善了原有的狀況,從很大程度上避免了主觀經驗的盲目性,形成的決策相對的具有理性,更加適應時代的需求和讀者的需求。這種數據庫的集中優點便是,第一,把圖書館內部的數據與外部的信息進行了有機統一和集中管理,這樣的信息更加全面,也防止了發生決策失誤的風險。第二,這種數據庫在處理集成數據是具有可靠性和可行性。采用這種數據庫可以對集成的數據進行分析比較。
(二)關系數據庫在信息處理上的應用
關系數據庫在關系模型提出的基礎上已經得到了長足發展,所以在結構化的數據處理方面具有很大的優勢,在處理文本數據、管理事務等方面的優勢也是顯而易見的,但是此類數據庫也有缺點,不能夠滿足一些高層次的要求,所以就出現了一些新的數據庫擴充功能。同時,在多媒體的信息處理方面關系數據庫比較適合于處理文本,但是不太適合處理多媒體的信息。實際上在數字圖書館中的很大一部分信息的處理還是依賴于關系數據庫,例如各種統計數據、數值和事實數據庫等。
(三)多媒體數據庫在數字圖書館信息處理中的應用
隨著數字圖書館的發展,出現了很多圖像、聲音以及視頻等其他格式的信息,這些信息的傳播和存儲是必然離不開多媒體數據庫的。
(四)面向對象的數據庫技術在數字圖書館信息組織中的應用
面向對象的方法其實是一種程序語言,廣泛存在于計算機行業的各個領域,不僅僅是一個面向對象的系統,還是一個數據庫系統。用一種與客觀世界比較直接的映射方式很好地實現了抽象、封裝、復雜性控制、信息隱蔽等機制。但是,這種數據庫的原理、適用范圍以及方法等很多方面的內容并沒有得到專業人士的一致認可,還存在一些分歧,并且這種數據庫的工具、環境和對面向對象方法的支持程度都還有待進一步的完善。
(五)非結構化數據庫技術在數字圖書館信息處理中的應用
文本、圖像和聲音等很多形式的信息是無法用數字或者統一的結構來表示的。非結構化數據庫變主要是用來處理這一種類型的數據。這種數據庫的獨特優勢便是支持重復字段、子字段以及變長字段,突破了關系數據庫結構定義不易改變和數據定長的限制。非結構化的數據庫在處理多媒體信息上是很輕松的,因為其記錄是不定長的。
另外,數字圖書館的信息組織常使用到的數據庫形式還有其他一些形式,這些數據庫是維持數字圖書館信息安全以及傳播的技術基礎,數據庫之間取長補短,充分發揮優勢,可以更好地為數字圖書館的建設和發展做出貢獻。
參考文獻:
[1]汪鑫.數字圖書館建設中的數據倉庫技術應用研究[J].科技創新導報,2010,29
篇9
關鍵詞:數據庫營銷;數據倉庫;數據挖掘;關聯分析;聯機分析處理
中圖分類號:TP391文獻標識符:A文章編號:1009-3044(2010)13-3312-02
Discussion about Realizing Database Marketing System's Key Technology
CHEN Ping, WANG Li-gang
(Nanjing College of Information Technology, Nanjing 210046, China)
Abstract: Data marketing that use collected data forecast customers future purchasing. First creating a enterprises database, finding valuable hidden information in the database or data warehouse, then analyzing data in the database by using data mining technology, finally summarizing the valuable information into a structural model, that are key technology of realizing database marketing system successfully. It improves efficiency and profit of enterprise but lower the cost.
Key words: database marketing; data warehouse; data mining; relational analysis; OLAP
1 概述
IT的發展提供了嶄新的營銷渠道和營銷手段,如網上營銷和數據庫營銷。網上營銷只是提供一種新的信息溝通工具,而數據庫營銷則提供了一種全新的營銷模式,因為它可使營銷者更迅速、更準確低抓著消費者的需要,甚至能使營銷者比消費者本人更了解其需要。所以在最近幾年內,數據庫營銷的理念在行業內不斷被提到,而且其技術也迅速得到發展。下面筆者就簡單地談一下實現數據庫營銷系統的關鍵技術。
2 數據庫營銷
2.1 數據庫營銷的概念
數據庫營銷(Database Marketing)將營銷數據建立成數據庫,并通過對數據庫內數據的分析,進行市場營銷活動[1]。
具體來說,就是將客戶的銷售歷史數據等營銷數據建立數據庫,并根據對數據庫內數據的分析,確認目標客戶,迅速準確地獲知其需求,了解其特征,傳達產品和服務的相關信息,以便更有效地進行市場營銷活動,維系顧客和提高銷售額。其旨在建立互信共贏的客戶關系,數據庫服務過程本身即可視為數據庫營銷過程。數據庫的數據必須是動態的,可擴充的和及時更新的,涵蓋現有客戶和潛在客戶。
2.2 數據庫營銷的特點
與傳統的數據庫營銷相比,網絡數據庫營銷的獨特價值主要表現在三個方面[2]:
1)動態更新
數據庫營銷具有數據量大、易于修改、能實現動態數據更新、便于遠程維護等多種優點,還可以實現顧客資料的自我更新。網絡數據庫的動態更新功能不僅節約了大量的時間和資金,同時也更加精確地實現了營銷定位,從而有助于改善營銷效果,這是其他的營銷技術所不能比的。
2)顧客主動加入
僅靠現有顧客資料的數據庫是不夠的,除了對現有資料不斷更新維護之外,還需要不斷挖掘潛在顧客的資料,這項工作也是數據庫營銷策略的重要內容。在沒有借助互聯網的情況下,尋找潛在顧客的信息一般比較難,要花很大代價。而在網絡營銷環境中,有超過50%的顧客愿意提供自己的部分個人信息,這樣就便于營銷工作的進行。顧客在登記的時候,一般是將信息填寫在一些表格中,例如,我們注冊會員用戶時填寫的信息。但是,營銷人員在對顧客進行登記時需要從他們的實際利益出發,合理地利用顧客的主動性來豐富和擴大顧客數據庫。在某種意義上,郵件列表可以認為是一種簡單的數據庫營銷,數據庫營銷同樣要遵循自愿加入、自由退出的原則。
3)改善顧客關系
優秀的顧客數據庫是網絡數據庫營銷取得成功的重要保證。在互聯網上,顧客希望得到更多個性化的服務,比如,顧客定制的信息接收方式和接收時間,顧客的興趣愛好、購物習慣等等都是網絡數據庫的重要內容,根據顧客個人需求提供針對性的服務是網絡數據庫營銷的基本職能,因此,網絡數據庫營銷是改善顧客關系最有效的工具。
2.3 實現數據庫營銷的關鍵技術
數據庫營銷是運用收集到的數據來預測用戶未來的購買行為,成功實現數據庫營銷系統的關鍵在于三方面組件的集成:存儲在數據倉庫或數據處理機中的事實數據;在數據庫或數據倉庫中尋找有價值的隱藏事件,使用統計技術或預測模型工具對數據進行分析,將有意義的信息歸納成結構模式,供企業決策時參考,這種技術就是數據挖掘技術;功能強大的展示工具[3-5]。
2.3.1 建立數據庫
首先,要把營銷過程中需要的數據建成一個數據庫,為了便于對具體以及過去的數據進行分析,一般建立一個數據倉庫。
按照數據倉庫之父W. H. Inmon的描述,數據倉庫是一個面向主題的、集成的、相對穩定的、反映歷史變化的數據集合,用于支持管理決策[4]。
整個數據倉庫系統是一個包含四個層次的體系結構,具體如圖1所示。
下面對圖1中的部分組件進行介紹:
數據源:是數據倉庫系統的基礎,是整個系統的數據源泉。通常包括企業內外部信息。這些信息可以是存放在關系數據庫中的數據,也可以是文檔數據。
數據的存儲與管理:是整個數據倉庫系統的核心。針對現有各業務系統的數據,進行抽取、清理,并有效集成,按照主題進行組織。數據倉庫按照數據的覆蓋范圍可以分為企業級數據倉庫和部門級數據倉庫(通常稱為數據集市)。
OLAP服務器:對分析需要的數據進行有效集成,按多維模型予以組織,以便進行多角度、多層次的分析,并發現趨勢。其具體實現可以分為:ROLAP、MOLAP和HOLAP。ROLAP基本數據和聚合數據均存放在RDBMS之中;MOLAP基本數據和聚合數據均存放于多維數據庫中;HOLAP基本數據存放于RDBMS之中,聚合數據存放于多維數據庫中。
前端工具:主要包括各種報表工具、查詢工具、數據分析工具、數據挖掘工具以及各種基于數據倉庫或數據集市的應用開發工具。其中數據分析工具主要針對OLAP服務器,報表工具、數據挖掘工具主要針對數據倉庫。
2.3.2 使用數據挖掘技術分析數據
數據挖掘(Data Mining)是從大量的、不完全的、有噪聲的、模糊的、隨機的數據中提取隱含在其中的、人們事先不知道的、但又是潛在有用的信息和知識的過程[6]。
其主要任務是關聯分析、聚類分析、分類、預測、時序模式和偏差分析等。
①關聯分析。數據關聯是數據庫中存在的一類重要的、可被發現的知識。關聯分析目的是找出數據庫中隱藏的關聯網。一般用支持度和可信度兩個閥值來度量關聯規則的相關性[7-8]。
②聚類分析。聚類是把數據按照相似性歸納成若干類別,同一類中的數據彼此相似,不同類中的數據相異。聚類分析可以建立宏觀的概念,發現數據的分布模式,以及可能的數據屬性之間的相互關系。
③分類。分類就是找出一個類別的概念描述,它代表了這類數據的整體信息,即該類的內涵描述,并用這種描述來構造模型,一般用規則或決策樹模式表示。分類是利用訓練數據集通過一定的算法而求得分類規則。
④預測。預測是利用歷史數據找出變化規律,建立模型,并由此模型對未來數據的種類及特征進行預測。預測關心的是精度和不確定性,通常用預測方差來度量。
⑤時序模式。時序模式是指通過時間序列搜索出的重復發生概率較高的模式。與回歸一樣,它也是用己知的數據預測未來的值,但這些數據的區別是變量所處時間的不同。
⑥偏差分析。在偏差中包括很多有用的知識,數據庫中的數據存在很多異常情況,發現數據庫中數據存在的異常情況是非常重要的。偏差檢驗的基本方法就是尋找觀察結果與參照之間的差別。
數據挖掘的主要流程是:定義問題、數據準備、數據挖掘、結果分析、知識的運用。
用于挖掘的對象有關系數據庫、面向對象數據庫、數據倉庫、文本數據源、多媒體數據庫、空間數據庫、時態數據庫、異質數據庫以及Internet等。
目前,常用的數據挖掘有:神經網絡方法、遺傳算法、決策樹方法、粗集方法、統計分析方法等。
3 結束語
數據挖掘能夠基于顧客的年齡、性別、人口統計數據和其他類似因素,對顧客購買某一具體貨物的可能性做出預測;識別出具有相似瀏覽習慣的顧客;辨別出具體的顧客偏好,以便提供改進的個人服務;找出高頻率地被組合在一起的所有產品組。據此,公司可獲得新顧客、留住老顧客、增加顧客的消費額。這樣既降低了成本,又提高了營銷的成功率。故數據挖掘的強大功能可以確保企業數據庫營銷的順利開展。
參考文獻:
[1] 許多頂.網絡數據庫營銷[J].商業研究,2002,9:119-121.
[2] 陳曉紅.企業信息化建設的模糊綜合評判[J].運籌與管理,2003(6).
[3] 楊麗,馬玉磊,張丹.數據挖掘技術在CRM中的應用研究[J].新鄉學院學報,2009,6:66-67.
[4] 李石君,王漢飛,周洞汝.關系數據庫中統計關系的挖掘和應用[J].計算機工程與應用,2000,(6):117-118.
[5] 李從東,徐志英.基于數據挖掘的企業關系管理系統構建[J].現代管理科學,2009,8:23-25.
[6] 韓家煒,堪博.數據挖掘:概念與技術[M].北京:機械工業出版社,2006:56-62.
篇10
刀具管理是一項復雜的工作,一直以來,這項工作都是以數控技術人員的工作經驗為基礎、以操作者的相關記錄為依據而進行的。目前,刀具種類和數量不斷增加,而加工車間條件有限,不同的設備、產品零件之間的刀具還需要相互借用,這就為刀具管理工作帶來了很大的困難,也為生產效率以及產品質量的保證埋下了極大的隱患。由于加工零件的多樣化,使得加工刀具的種類和數量都在不斷增加,刀具在機床和刀庫之間的流動頻率也越來越高,使得傳統的紙質登記、現場找刀這一模式顯得滯后。而隨著數控設備數量的增多以及新產品種類的不斷增加,僅憑技術人員的工作經驗和到車間現場查找刀具的管理方法已經無法滿足現代化生產的需要?,F代化生產迫切需要加工車間采用先進的刀具管理方法來實現刀具的科學管理。
2系統設計分析
2.1系統物理結構分析
本系統采用C/S(Client/Server,客戶機/服務器)體系結構,即將數據庫中的數據內容存放在遠程服務器上,在各個客戶機上安裝相應的客戶端應用軟件進行操作使用。C/S體系的物理結構如圖1所示。C/S結構的計算機軟硬件平臺可通過企業內部局域網連接起來。對于數控車間刀具管理系統,可以將開發完成的客戶端應用軟件安裝在多個PC機站點上,由多個用戶共同使用。數據的安全性通過SQLServer2000數據庫安裝時設置的身份驗證和用戶級別來保證,既保證了數據的共享性,也提高了工作效率。
2.2系統功能模型
通過對刀具信息管理系統功能進行分析,系統可分為以下幾個模塊:用戶信息管理模塊、權限設置模塊、刀具參數管理模塊、刀具出庫管理模塊、刀具入庫管理模塊、刀具信息查詢管理模塊、刀具借還記錄管理模塊和刀具庫存預警模塊(圖2)。
2.3系統流程分析
根據刀具管理系統需要完成的任務和實現的功能,得出系統流程如圖3所示。
2.4開發工具選擇
考慮到車間本身的技術與軟硬件情況,選用SQLServer2000作為后臺的數據庫管理系統。一方面,因為刀具管理系統本身是基于局域網操作的,采取的是C/S結構模型;另一方面,SQLServer2000是一種安全性高的真正的C/S體系結構,圖形化用戶界面,使系統管理和數據庫管理更加直觀、簡單,豐富的編程接口工具為用戶設計程序提供了更大的選擇余地[3]。在選擇前臺開發工具時充分利用開發工具本身的性能,比如考慮其穩定性和可靠性、可視化和訪問數據庫的能力等,從常用的軟件中,本文選用了VC++6.0。
3數據庫設計
運用VC++的數據庫接口技術,以SQLServer2000為后臺數據庫進行車間刀具管理系統“chejiantool_db”數據庫的設計,其具體的設計步驟為:正規化數據庫、建立數據庫、建立表、建立關系、實現數據完整性等幾個步驟。
3.1數據庫概念結構設計
將分析得到的系統需求抽象為概念模型,在需求分析的基礎上,設計出能夠滿足用戶需求的各種實體以及它們之間的相互關系,這是整個數據庫設計的關鍵。在這一設計原則的基礎上,遵循正規化的數據庫設計規則與關系數據庫設計的3種范式(1NF~3NF),用正規的方法將數據分為多個所有字段值不可分割的數據表[4]。每個數據庫表應有一個標識,不應有重復的值或列,并盡量避免含有空列。根據這一原則建立了用戶信息表、刀具參數表、刀具基本信息表、刀具出庫表、刀具入庫表和刀具借還記錄表等。表1以刀具基本信息表為例說明其結構。它由8個字段組成,其中刀具編號是該表的主鍵,通過此主鍵可與其他表相互關聯。
3.2數據庫安全性設計
在建立用戶的登錄信息時,系統管理員不僅要為該用戶選擇默認的數據庫,而且還設置該用戶對特定數據對象的訪問權,即對數據對象的讀取、插入、更新和刪除等的權限。而該數據庫中未指定訪問權的數據庫對象,即使該用戶登錄到SQLServer服務器,并且連接上指定的默認數據庫,也不能操作該數據庫的數據對象。在應用軟件中,用戶只能用賬號登錄,通過應用軟件訪問數據庫,而沒有其他途徑操作數據庫。為防止用戶密碼泄露,對所有用戶賬號的密碼進行加密處理,確保在任何地方都不會出現密碼的明文。由于數據庫管理員擁有對應用軟件的所有權限,因此其可以對所有用戶和軟件功能進行管理。應用時先確定每個角色對數據庫表的操作權限,然后在程序中再為用戶分配角色。角色權限見表2。
3.3數據庫完整性設計
在將刀具信息輸入到數據庫的過程中,由于某些特殊的原因,可能會造成對數據庫的修改無效或者不一致的現象發生,從而導致程序數據庫的崩潰。為了避免這種問題的發生,需要在數據庫分析、設計完畢后,利用數據庫自帶的屬性,對字段進行主鍵、索引、標識等約束,以保證數據庫的完整性[5]。主要有以下3種方法:
(1)對于通過程序窗口操作輸入的數據,可以通過客戶端應用程序來保證數據的完整性。這樣,一方面可把非法數據在提交數據庫之前就過濾掉,另一方面可使用戶及時得到操作反饋的信息(成功或失敗),以便進行相應的操作。
(2)對于通過數據庫直接輸入的數據,可以通過服務器端數據庫管理系統來實現數據的完整性。
(3)對于數據一致性的維護,可以由服務器端數據庫的觸發器或表定義的約束來實現。這樣可降低客戶端應用程序的開發量,提高應用系統的運行效率、可維護性及可靠性。
3.4建立數據庫
數據庫名稱是chejiantool_db,實現步驟為[6]:
(1)打開SQLServer2000的企業管理器(企業管理器是SQLServer2000最主要的管理工具,幾乎所有對SQLServer的管理工作,甚至是數據查詢,都可以通過它來完成)。
(2)新建數據庫,并輸入數據庫名稱、數據文件和日志文件的位置。
(3)指定數據和日志文件。
(4)定義文件的大小和增長方式。
3.5創建數據庫表及實體關系圖
SQLServer2000提供了3種方法創建數據庫表。其一,是利用表設計器創建表;其二,是利用數據庫關系圖創建表;其三,是利用Transact-SQL語句中的CREATE命令創建表[7-8]。本文選用第二種方式。在SQLServer企業管理器中,展開指定的服務器和數據庫,打開chejiantool_db數據庫,打開表設計器。在數據庫中創建刀具基本信息表、刀具借還表、用戶表、借還日志表等。
在表設計器中除了可以定義列名稱、數據類型和長度外,還可根據需要定義以下屬性,如精度、小數位數、是否允許為空、默認值、標識列等等。建立數據庫表時,定義好各自的主鍵和外鍵,各表完成后,利用MicrosoftVisio2003“反向工程向導”或SQLServer2000企業管理器中的“操作/新建數據庫關系圖”即可獲取系統E-R圖。本文選擇后者,結果如圖4所示。
4過程中的數據庫技術
程序的各個實現過程中,均采用了大量的SQL語句,由于篇幅有限,在各模塊的實現過程中僅列出其中的一種功能實現的Transact-SQL代碼[9-10]。
4.1刀具借用過程
該過程主要包括刀具信息查詢和刀具借用時信息功能人,其中刀具借用信息包括借用人、借用時間和借用刀具信息的填寫、修改等功能。以借用功能模塊為例,當加工人員從刀庫中借用刀具時,刀庫管理員根據其要求的條件查詢相應的刀具信息,選中后,填寫借用信息,點擊“借用”后,該刀具的借用信息就會被寫入數據庫,其狀態隨之變為“借出”,刀具借用過程完成。
4.2刀具歸還過程
刀具歸還過程中以歸還功能模塊為例。借用人員歸還刀具時,刀庫管理員根據刀具名稱或借用人的名字查詢到刀具的借用信息后,選中要歸還的刀具記錄,填入歸還時間,點擊“歸還”后,該刀具的狀態又會變成“庫存”寫入數據庫,刀具歸還過程完成。其Transact-SQL實現代碼如下:sql.Format("updatetoolset歸還時間='"+ghtime+"',刀具狀態='庫存'where刀具編號='%s'",cId)實現界面如圖6所示。
4.3刀具信息查詢過程
刀具信息查詢包括兩部分:精確查詢和模糊查詢。精確查詢可以按刀具編號、刀具名稱、刀具材料等具體查詢條件查詢到精確符合查詢條件的刀具信息記錄;模糊查詢可以查詢同時滿足刀具長度、刀具材料和刀具編號中一條或多條的刀具信息記錄。其實現界面如圖7所示。
5結束語