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

        ?

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

        2022-07-29 14:12:24李成亮
        計算機時代 2022年7期
        關(guān)鍵詞:關(guān)系數(shù)據(jù)庫面向?qū)ο?/a>腳本

        李成亮

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

        0 引言

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

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

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

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

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

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

        1.1 利用對象的方法建表

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

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

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

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

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

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

        2 建表的實現(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字符串動態(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 個類方法。本文主要用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í)行過程中的錯誤日志,非必填。

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

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

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

        errpause:當(dāng)錯誤發(fā)生時程序暫停執(zhí)行的時間,默認(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 存儲類。通過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 存儲結(jié)構(gòu)的分析

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        4 結(jié)論

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

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

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

        猜你喜歡
        關(guān)系數(shù)據(jù)庫面向?qū)ο?/a>腳本
        酒駕
        關(guān)系數(shù)據(jù)庫在高爐數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
        山東冶金(2022年2期)2022-08-08 01:51:30
        安奇奇與小cool 龍(第二回)
        數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
        電子測試(2018年14期)2018-09-26 06:04:24
        面向?qū)ο蟮挠嬎銠C網(wǎng)絡(luò)設(shè)計軟件系統(tǒng)的開發(fā)
        電子測試(2018年15期)2018-09-26 06:01:34
        面向?qū)ο蟮臄?shù)據(jù)交換協(xié)議研究與應(yīng)用
        快樂假期
        面向?qū)ο骔eb開發(fā)編程語言的的評估方法
        基于索引結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫關(guān)鍵詞檢索
        面向?qū)ο笮畔⑻崛≈杏跋穹指顓?shù)的選擇
        河南科技(2014年10期)2014-02-27 14:09:03
        国产午夜激无码av毛片| 可免费观看的av毛片中日美韩| 日韩一区二区三区无码影院| 97伦伦午夜电影理伦片| 深夜国产成人福利在线观看女同| 国产大片在线观看三级| 亚洲av一区二区三区色多多| 国产h视频在线观看| 国产精品视频一区国模私拍| 中文字幕日韩精品美一区二区三区| 日本一区二区三区高清视| 免费无码又爽又刺激网站直播| 亚洲精品久久久无码av片软件| 国产片三级视频播放| 女主播国产专区在线观看| 成人a级视频在线播放| 成人无码区免费a片www| 国产AV无码专区亚洲AWWW| 国产高清视频在线不卡一区| 东京热无码av一区二区| 18禁免费无码无遮挡网站| 宅男久久精品国产亚洲av麻豆| 精品国产中文字幕久久久| 国产av无码专区亚洲av中文| 国产乱淫视频| 国产成人久久精品二区三区| 中文字幕人妻丝袜成熟乱| 久久婷婷成人综合色| 国产精品无码久久久久久久久作品| 日韩av一区二区不卡在线| av色欲无码人妻中文字幕| 无码少妇一级AV便在线观看| 中文字幕日本韩国精品免费观看| 国产一区二区三区在线观看完整版 | 国产亚洲91精品色在线| 国产男小鲜肉同志免费| 欧美黑人性色黄在线视频| 美女把内衣内裤脱了给男人舔| 亚洲精品乱码久久久久蜜桃| 亚洲综合另类小说色区| 成人免费看吃奶视频网站|