抽象数据类型,让Oracle数据库数据管理更加容易
2、 抽象數(shù)據(jù)的引用。
當(dāng)建立好抽象數(shù)據(jù)類型的時候,數(shù)據(jù)庫管理員就可以向基本數(shù)據(jù)類型那樣,引用抽象數(shù)據(jù)類型,包括在建立表或者對相關(guān)字段進(jìn)行賦值的時候,都這么方便。
如在建立表的時候,可以把這個抽象數(shù)據(jù)類型直接跟某個字段關(guān)聯(lián)起來。如
Create Table USERS
(F--_Adress Adress );
上面這個語句就是在USERS表中建立了一個F_Adress的字段,其數(shù)據(jù)類型為Adress。
若要對這個字段賦值的話,需要注意一個問題,要依次輸入賦值的內(nèi)容,順序不能夠顛倒。如按照上面的定義,用戶在賦值的時候,需要依次輸入街道、城市、省份、郵編等等內(nèi)容。若用戶在輸入的過程中,忘記輸入城市的話,則省份的內(nèi)容將會直接輸入到城市中。另外,若數(shù)據(jù)類型不匹配的話,則就直接會有錯誤提示。當(dāng)然數(shù)據(jù)庫管理員也可以根據(jù)需要,為特定的數(shù)據(jù)內(nèi)容設(shè)置默認(rèn)值,以方便管理。
?
三、抽象數(shù)據(jù)類型管理經(jīng)驗分享。
筆者平時在數(shù)據(jù)庫設(shè)計中,非常鐘愛這個抽象數(shù)據(jù)類型。筆者十多年的數(shù)據(jù)庫管理經(jīng)驗證明,利用抽象數(shù)據(jù)類型可以大幅度的簡化我們平時的工作。為此筆者在這方面也積累了不少的經(jīng)驗。這里就拿出來跟大家分享一下。
?
經(jīng)驗一:利用腳本建立抽象數(shù)據(jù)類型。
對于一些常用的抽象數(shù)據(jù)類型,數(shù)據(jù)庫管理員最好能夠利用腳本來建立抽象數(shù)據(jù)類型。如果每次建立數(shù)據(jù)庫的時候,都通過手寫代碼來完成的話,工作量會比較大。如筆者在日常工作中,就把常用的一些抽象數(shù)據(jù)類型,如員工姓名、地址、產(chǎn)品規(guī)格等抽象數(shù)據(jù)類型都保存在一個SQL腳本中,等到需要的時候,只需要運行這個腳本即可。這就可以減少一些不需要的編碼的編寫,從而提高數(shù)據(jù)庫開發(fā)設(shè)計的效率。
?
經(jīng)驗二:對于多個數(shù)據(jù)庫對象中經(jīng)常需要用到的數(shù)據(jù),最好采用抽象數(shù)據(jù)類型。
如在一個ERP系統(tǒng)中,產(chǎn)品基本信息的產(chǎn)品規(guī)格可能包含多個部分的內(nèi)容,如產(chǎn)品的顏色、尺寸、大小、外處理方式等等。而在采購訂單、進(jìn)貨單等地方有需要多處進(jìn)行引用。為了保障數(shù)據(jù)的一致性與統(tǒng)一性,最好為產(chǎn)品規(guī)格設(shè)置一個抽象數(shù)據(jù)類型 。如此的話,一方面在其他對象中引用這個內(nèi)容的話,不用一個個字段的引用,從而簡化應(yīng)用程序的設(shè)計; 另一方面,因為這些信息組合才能夠唯一的定位產(chǎn)品,所以,在采購訂單或者其他單據(jù)中統(tǒng)一的顯示,非常的關(guān)鍵。為此,若能夠一個數(shù)據(jù)類型來包含這些內(nèi)容的話,則應(yīng)用程序設(shè)計時就可以減少錯誤的發(fā)生。
?
經(jīng)驗三:要考慮不同數(shù)據(jù)庫庫的兼容性問題。
抽象數(shù)據(jù)類型,它是Oracle數(shù)據(jù)庫對標(biāo)準(zhǔn)SQL語句的一種擴(kuò)展。所以,雖然Oracle數(shù)據(jù)庫提供了抽象數(shù)據(jù)類型的功能,但是,其他品牌的數(shù)據(jù)庫不一定支持。這也就是說,這個抽象數(shù)據(jù)類型的兼容性并不時很好。如果數(shù)據(jù)庫管理員能夠預(yù)見在以后可能會把數(shù)據(jù)庫遷移到其他平臺的數(shù)據(jù)庫中,則這個抽象數(shù)據(jù)類型就需要慎用。否則的話,在數(shù)據(jù)庫移植的過程中,就會平白的遇到很多麻煩。
另外,由于標(biāo)準(zhǔn)的SQL語句不支持這個抽象數(shù)據(jù)類型,所以,如果采用其他的非Oracle數(shù)據(jù)庫出的SQL語句,就可能會造成額外的困擾。如有些數(shù)據(jù)庫管理員喜歡采用Excle等工具作為Oracle數(shù)據(jù)庫管理的輔助工具。若在數(shù)據(jù)庫中采用了抽象數(shù)據(jù)類型,那么Excle軟件將無法很好的支持Oralce數(shù)據(jù)庫。這也是Oracle數(shù)據(jù)庫管理員在考慮采用抽象數(shù)據(jù)類型需要考慮的內(nèi)容。
最后,有一個值得慶幸的就是,這些抽象數(shù)據(jù)類型的執(zhí)行計劃與其他Oracle數(shù)據(jù)庫系統(tǒng)默認(rèn)的內(nèi)部數(shù)據(jù)類型的執(zhí)行計劃相同。這也就是說,抽象數(shù)據(jù)類型的引入對SQL語句的執(zhí)行性能將不會產(chǎn)生任何影響。換一句話說,采用抽象數(shù)據(jù)類型并不會降低數(shù)據(jù)庫的性能,相反可以提高數(shù)據(jù)庫數(shù)據(jù)管理的一致性與統(tǒng)一性,從而讓數(shù)據(jù)管理起來更加的容易。所以說,如果不考慮抽象數(shù)據(jù)類型的兼容性問題的話,那么抽象數(shù)據(jù)類型將是數(shù)據(jù)庫管理員規(guī)劃數(shù)據(jù)的一個好幫手。
總結(jié)
以上是生活随笔為你收集整理的抽象数据类型,让Oracle数据库数据管理更加容易的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IE6、IE7、Firefox无提示关闭
- 下一篇: E销助手软件