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