亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Caché數(shù)據(jù)庫建表方法的研究與分析

        2022-07-29 14:12:24李成亮
        計(jì)算機(jī)時(shí)代 2022年7期
        關(guān)鍵詞:數(shù)據(jù)庫結(jié)構(gòu)方法

        李成亮

        (揚(yáng)中市人民醫(yī)院信息科,江蘇 鎮(zhèn)江 212200)

        0 引言

        InterSystems 公司研發(fā)的高性能Caché 數(shù)據(jù)庫不僅速度快、接口全面、升級(jí)擴(kuò)容方便,而且還是功能齊全的關(guān)系型數(shù)據(jù)庫。Caché 數(shù)據(jù)庫可以將存儲(chǔ)的多維數(shù)據(jù)映射為二維表,提供的接口支持許多基于SQL的訪問工具,讓開發(fā)者使用標(biāo)準(zhǔn)的SQL 語句進(jìn)行增加、刪除、修改、查詢。

        Caché 數(shù)據(jù)庫是面向?qū)ο蟮摹昂箨P(guān)系型”數(shù)據(jù)庫,可以直接用面向?qū)ο蟮姆椒ㄟM(jìn)行建表,也可以利用關(guān)系型數(shù)據(jù)庫的方法進(jìn)行建表。本文詳述了Caché數(shù)據(jù)庫建表的五種方法,并從存儲(chǔ)結(jié)構(gòu)、表結(jié)構(gòu)、應(yīng)用場景方面詳細(xì)分析,為Caché數(shù)據(jù)庫的開發(fā)提供了參考。

        1 Caché數(shù)據(jù)庫建表的方法

        Caché 數(shù)據(jù)庫的類可以映射為對(duì)應(yīng)的表,其映射關(guān)系如表1所示。

        表1 對(duì)象數(shù)據(jù)庫與關(guān)系數(shù)據(jù)庫之間的映射關(guān)系

        Caché數(shù)據(jù)庫建表的方法分為兩大類:一類是利用面向?qū)ο蟮姆椒?,另外一類是基于?shù)據(jù)庫語言的方法。

        1.1 利用對(duì)象的方法建表

        Caché 數(shù)據(jù)庫的持久類(%Persistent)用來存儲(chǔ)數(shù)據(jù),我們自己定義的類一定繼承于持久類,定義類的方法為:

        當(dāng)編譯持久類的時(shí)候,Caché 數(shù)據(jù)庫會(huì)自動(dòng)將類映射為表。

        1.2 基于數(shù)據(jù)庫語言的方法建表

        Caché數(shù)據(jù)庫提供了多種接口讓開發(fā)者調(diào)用,基于數(shù)據(jù)庫語言的建表方法主要是采用SQL 語言,具體可以分為四種方法,如表2所示。

        表2 基于數(shù)據(jù)庫語言的建表方法

        在Caché 數(shù)據(jù)庫中通過SQL 語言建表,是一個(gè)高級(jí)別的操作,必須有管理員的權(quán)限。Caché 數(shù)據(jù)庫會(huì)自動(dòng)創(chuàng)建相應(yīng)的持久類,同時(shí)映射為相應(yīng)的表。

        2 建表的實(shí)現(xiàn)過程

        本文舉例的表名為:Test.Student,字段名分別為:字符型Name、字符型Sex、日期型DateOfBirth。

        2.1 方法一:利用面向?qū)ο蟮姆椒?/h3>

        在相應(yīng)地命名空間下,可以根據(jù)向?qū)б徊揭徊降貏?chuàng)建類,也可以直接在Studio中寫代碼完成。

        2.2 方法二:嵌入使用DDL靜態(tài)建表

        在類方法中嵌入使用DDL 語句,在建表前先用管理員的權(quán)限登錄。

        在terminal 中執(zhí)行此類方法,當(dāng)建表成功,SQLCODE返回值為0,否則建表失敗。

        2.3 方法三:通過DDL字符串動(dòng)態(tài)建表

        首先用管理員的權(quán)限登錄,其次準(zhǔn)備好建表的SQL字符串,最后執(zhí)行語句。

        在terminal 中執(zhí)行此類方法,當(dāng)建表成功,rset返回值為0,否則建表失敗。

        2.4 方法四:導(dǎo)入SQL腳本建表

        Caché 數(shù)據(jù)庫提供了抽象類%SYSTEM.SQL,該類提供了一套管理SQL 的接口,其中包含107 個(gè)類方法。本文主要用DDLImport 類方法來導(dǎo)入SQL腳本,其語法為$SYSTEM.SQL.DDLImport(DDLMode,SQLUser,infile,outfile,nosup,nosupfile,deos,errpause)。

        各參數(shù)含義如下。

        DDLMode:數(shù)據(jù)庫類型,必填。

        SQLUser:Caché SQL用戶名,必填。

        infile:帶路徑的文件名,必填。

        outfile:程序執(zhí)行過程中的錯(cuò)誤日志,非必填。

        nosup:當(dāng)Caché 數(shù)據(jù)庫不支持腳本文件中的語句時(shí),決定是否記錄到文件中,非必填。

        nosupfile:當(dāng)nosup 為true 時(shí),用于記錄不支持的執(zhí)行語句,非必填。

        deos:語句結(jié)束的分隔符,非必填。

        errpause:當(dāng)錯(cuò)誤發(fā)生時(shí)程序暫停執(zhí)行的時(shí)間,默認(rèn)為5秒,非必填。

        本文用SQL Server語句創(chuàng)建SQL腳本,其語句為:

        創(chuàng)建完腳本后將其保存在D 盤,文件名為SQLServer.sql。

        導(dǎo)入腳本過程為:①在terminal 中切換到相應(yīng)的命名空間;②執(zhí)行命令Do $SYSTEM.SQL.DDLImport("MSSQLServer","_system","D:SQLServer.sql");③在相應(yīng)的命名空間下可以看到Test.Student類。

        2.5 方法五:通過SQL GateWay建表

        SQL GateWay 將第三方關(guān)系數(shù)據(jù)庫中的表結(jié)構(gòu)導(dǎo)入到Caché 數(shù)據(jù)庫持久類中,并且將第三方數(shù)據(jù)庫表中的數(shù)據(jù)映射到Caché數(shù)據(jù)庫中。

        SQL GateWay 由四部分組成,分別為連接管理、SQL GateWay 接口、外部表查詢器、SQL 存儲(chǔ)類。通過SQL GateWay建表的方法就是利用這四部分。

        第一:建立數(shù)據(jù)源,通過ODBC 數(shù)據(jù)源管理器建立好數(shù)據(jù)源,如圖1所示。

        圖1 建立ODBC數(shù)據(jù)源

        第 二:在System Management Portal 中,通 過SQL GateWay 建立外部數(shù)據(jù)庫連接。具體方法為:在[Home]>[Configuration]>[SQL Gateway Connections]中找到Create New Connection,根據(jù)向?qū)钊胂鄳?yīng)的連接名、數(shù)據(jù)源、用戶名、密碼,然后保存,如圖2所示。

        圖2 建立外部數(shù)據(jù)庫連接

        第三:使用外部數(shù)據(jù)庫連接建表。具體方法為:在[Home]>[SQL]>[Link Table Wizard]中根據(jù)向?qū)нx擇相應(yīng)的表、字段及主鍵。

        3 建表方法的分析

        3.1 存儲(chǔ)結(jié)構(gòu)的分析

        Caché 數(shù)據(jù)庫提供了兩種存儲(chǔ)類,即%Library.CacheStorage、% Library.CacheSQLStorage,其 中,%Library.CacheStorage是系統(tǒng)默認(rèn)的存儲(chǔ)類,采用列表編碼的形式存儲(chǔ)多維數(shù)據(jù);%Library.CacheSQLStorage比%Library.CacheStorage 有局限性,采用字符分隔符的形式存儲(chǔ)多維數(shù)據(jù)。

        方法一~方法四均采用系統(tǒng)默認(rèn)的存儲(chǔ)方式,數(shù)據(jù)存儲(chǔ)在^Test.StudentD()、索引存儲(chǔ)在^Test.StudentI(),Global 節(jié)點(diǎn)形如:^Test.StudentD=ID,^Test.StudentD(ID)=$listbuild("",value1,value2,……),其 中^Test.StudentD為計(jì)數(shù)節(jié)點(diǎn),ID為主索引,是自增型計(jì)數(shù)變量,^Test.StudentD(i)為數(shù)據(jù)節(jié)點(diǎn),$listbuild()中第一位用于存儲(chǔ)子類的類名,若無則為空,其余為節(jié)點(diǎn)值。

        方法五采用%Library.CacheSQLStorage,將對(duì)象映射為原來的數(shù)據(jù)結(jié)構(gòu),比如對(duì)象中的屬性直接映射為表中的字段。Caché 數(shù)據(jù)庫通過SQL GateWay 隨第三方數(shù)據(jù)庫的變化而變化,第三方數(shù)據(jù)庫也會(huì)隨Caché數(shù)據(jù)庫中的變化而變化,但是默認(rèn)情況下Caché數(shù)據(jù)庫并不存儲(chǔ)第三方數(shù)據(jù)庫的數(shù)據(jù)。

        %Library.CacheStorage 存儲(chǔ)結(jié)構(gòu)中主索引ID 為單一的變量,缺乏一定的靈活性,適用于單表。而%Library.CacheSQLStorage 可通過SqlIdExpression 關(guān)鍵字?jǐn)U展主索引ID,結(jié)合SQL storage map,一方面讓ID 形成樹形結(jié)構(gòu)的存儲(chǔ),提高檢索速度;另一方面可以與其他表的ID 形成關(guān)聯(lián),比如父子表,提高表之間的檢索效率。

        3.2 表結(jié)構(gòu)的分析

        Caché 數(shù)據(jù)庫默認(rèn)以ID 為主索引,也可以重命名主索引,各種方法映射表的區(qū)別如表3所示。

        表3 各種方法映射表的區(qū)別

        每種方法映射的表字段雖然略有差異,但可以根據(jù)實(shí)際情況通過關(guān)鍵字SqlRowIdPrivate 對(duì)ID 顯示或隱 藏,當(dāng)SqlRowIdPrivate 為True 時(shí),表結(jié)構(gòu)中ID 隱藏;當(dāng)SqlRowIdPrivate 為False 時(shí),表結(jié)構(gòu)中ID 顯示。SqlRowIdPrivate不會(huì)影響Global的存儲(chǔ)結(jié)構(gòu)。

        3.3 應(yīng)用場景的分析

        方法一是Caché 數(shù)據(jù)庫常規(guī)的建表方法,既可以用面向?qū)ο蟮姆椒ㄟM(jìn)行增加、刪除、修改、查詢,也可以用SQL語句,應(yīng)用場景十分廣泛。

        方法二直接把Caché 數(shù)據(jù)庫當(dāng)作關(guān)系數(shù)據(jù)庫使用,嵌入SQL語句簡潔、直觀。

        方法三在程序運(yùn)行的過程中動(dòng)態(tài)建表,適合于充當(dāng)臨時(shí)表以縮減原始數(shù)據(jù)量,也常配合Web Service接口使用。

        方法四導(dǎo)入第三方數(shù)據(jù)庫的SQL 腳本建表,適合于做第三方數(shù)據(jù)的遷移。

        方法五中SQL GateWay 充當(dāng)“橋梁”作用,可以直接在Caché數(shù)據(jù)庫處理第三方數(shù)據(jù)庫的數(shù)據(jù),方便、快捷。

        4 結(jié)論

        本文詳細(xì)介紹了Caché 數(shù)據(jù)庫的五種建表方法,并對(duì)每種方法從存儲(chǔ)結(jié)構(gòu)、表結(jié)構(gòu)、應(yīng)用場景三個(gè)角度進(jìn)行了分析,可以得出以下結(jié)論:

        ⑴Caché數(shù)據(jù)庫兼容關(guān)系數(shù)據(jù)庫,方法二~方法五最終都會(huì)生成方法一中面向?qū)ο蟮慕ū泶a;

        ⑵在復(fù)雜的情形下,結(jié)合具體的應(yīng)用場景,可以對(duì)每種方法靈活修改,并且可以混合運(yùn)用。

        猜你喜歡
        數(shù)據(jù)庫結(jié)構(gòu)方法
        《形而上學(xué)》△卷的結(jié)構(gòu)和位置
        論結(jié)構(gòu)
        中華詩詞(2019年7期)2019-11-25 01:43:04
        數(shù)據(jù)庫
        可能是方法不對(duì)
        論《日出》的結(jié)構(gòu)
        數(shù)據(jù)庫
        用對(duì)方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        无码va在线观看| 天堂av在线播放观看| 亚洲午夜精品第一区二区| 图片小说视频一区二区| 内地老熟女老少配视频| 亚洲AV永久无码制服河南实里 | 久久精品国产亚洲av蜜点| 国产电影无码午夜在线播放| 手机看片福利一区二区三区| 亚洲永久无码动态图| 亚洲色图视频在线播放 | 国产成人精品优优av| 国内精品视频在线播放不卡| 国产在线丝袜精品一区免费| 亚洲愉拍自拍视频一区| 亚洲天堂av在线网站| 毛片a级毛片免费观看| 国产精品久久码一区二区| 亚洲图文一区二区三区四区 | 国产精品∧v在线观看| 国产成人精品一区二区视频| 97无码人妻一区二区三区蜜臀| 国产黄色三级一区二区三区四区| 夜夜揉揉日日人人青青| 亚洲日本天堂| 免费人人av看| 国产一区白浆在线观看| 小蜜被两老头吸奶头在线观看| 国产精品久久久久免费a∨| 国产高清丝袜美腿视频在线观看| av在线免费高清观看| 精品无码人妻一区二区三区不卡| 伊人久久亚洲综合影院首页| 青青草免费视频一区二区| 精品天堂色吊丝一区二区| 精品少妇人妻av无码专区| 传媒在线无码| 国产白浆一区二区三区佳柔| 丰满少妇人妻无码| 中文字幕一区二区三区人妻少妇| 亚洲av不卡电影在线网址最新|