999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Caché數據庫建表方法的研究與分析

2022-07-29 14:12:24李成亮
計算機時代 2022年7期
關鍵詞:數據庫結構方法

李成亮

(揚中市人民醫院信息科,江蘇 鎮江 212200)

0 引言

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

Caché 數據庫是面向對象的“后關系型”數據庫,可以直接用面向對象的方法進行建表,也可以利用關系型數據庫的方法進行建表。本文詳述了Caché數據庫建表的五種方法,并從存儲結構、表結構、應用場景方面詳細分析,為Caché數據庫的開發提供了參考。

1 Caché數據庫建表的方法

Caché 數據庫的類可以映射為對應的表,其映射關系如表1所示。

表1 對象數據庫與關系數據庫之間的映射關系

Caché數據庫建表的方法分為兩大類:一類是利用面向對象的方法,另外一類是基于數據庫語言的方法。

1.1 利用對象的方法建表

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

當編譯持久類的時候,Caché 數據庫會自動將類映射為表。

1.2 基于數據庫語言的方法建表

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

表2 基于數據庫語言的建表方法

在Caché 數據庫中通過SQL 語言建表,是一個高級別的操作,必須有管理員的權限。Caché 數據庫會自動創建相應的持久類,同時映射為相應的表。

2 建表的實現過程

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

2.1 方法一:利用面向對象的方法

在相應地命名空間下,可以根據向導一步一步地創建類,也可以直接在Studio中寫代碼完成。

2.2 方法二:嵌入使用DDL靜態建表

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

在terminal 中執行此類方法,當建表成功,SQLCODE返回值為0,否則建表失敗。

2.3 方法三:通過DDL字符串動態建表

首先用管理員的權限登錄,其次準備好建表的SQL字符串,最后執行語句。

在terminal 中執行此類方法,當建表成功,rset返回值為0,否則建表失敗。

2.4 方法四:導入SQL腳本建表

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

各參數含義如下。

DDLMode:數據庫類型,必填。

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

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

outfile:程序執行過程中的錯誤日志,非必填。

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

nosupfile:當nosup 為true 時,用于記錄不支持的執行語句,非必填。

deos:語句結束的分隔符,非必填。

errpause:當錯誤發生時程序暫停執行的時間,默認為5秒,非必填。

本文用SQL Server語句創建SQL腳本,其語句為:

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

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

2.5 方法五:通過SQL GateWay建表

SQL GateWay 將第三方關系數據庫中的表結構導入到Caché 數據庫持久類中,并且將第三方數據庫表中的數據映射到Caché數據庫中。

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

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

圖1 建立ODBC數據源

第 二:在System Management Portal 中,通 過SQL GateWay 建立外部數據庫連接。具體方法為:在[Home]>[Configuration]>[SQL Gateway Connections]中找到Create New Connection,根據向導填入相應的連接名、數據源、用戶名、密碼,然后保存,如圖2所示。

圖2 建立外部數據庫連接

第三:使用外部數據庫連接建表。具體方法為:在[Home]>[SQL]>[Link Table Wizard]中根據向導選擇相應的表、字段及主鍵。

3 建表方法的分析

3.1 存儲結構的分析

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

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

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

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

3.2 表結構的分析

Caché 數據庫默認以ID 為主索引,也可以重命名主索引,各種方法映射表的區別如表3所示。

表3 各種方法映射表的區別

每種方法映射的表字段雖然略有差異,但可以根據實際情況通過關鍵字SqlRowIdPrivate 對ID 顯示或隱 藏,當SqlRowIdPrivate 為True 時,表結構中ID 隱藏;當SqlRowIdPrivate 為False 時,表結構中ID 顯示。SqlRowIdPrivate不會影響Global的存儲結構。

3.3 應用場景的分析

方法一是Caché 數據庫常規的建表方法,既可以用面向對象的方法進行增加、刪除、修改、查詢,也可以用SQL語句,應用場景十分廣泛。

方法二直接把Caché 數據庫當作關系數據庫使用,嵌入SQL語句簡潔、直觀。

方法三在程序運行的過程中動態建表,適合于充當臨時表以縮減原始數據量,也常配合Web Service接口使用。

方法四導入第三方數據庫的SQL 腳本建表,適合于做第三方數據的遷移。

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

4 結論

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

⑴Caché數據庫兼容關系數據庫,方法二~方法五最終都會生成方法一中面向對象的建表代碼;

⑵在復雜的情形下,結合具體的應用場景,可以對每種方法靈活修改,并且可以混合運用。

猜你喜歡
數據庫結構方法
《形而上學》△卷的結構和位置
哲學評論(2021年2期)2021-08-22 01:53:34
論結構
中華詩詞(2019年7期)2019-11-25 01:43:04
數據庫
財經(2017年2期)2017-03-10 14:35:35
論《日出》的結構
數據庫
財經(2016年15期)2016-06-03 07:38:02
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 国产真实乱人视频| 日本不卡免费高清视频| 91久久夜色精品| 中文字幕永久在线看| 视频二区亚洲精品| 国产麻豆精品久久一二三| 亚洲综合九九| 免费国产高清精品一区在线| 五月婷婷伊人网| 国产欧美专区在线观看| 免费一看一级毛片| 亚洲欧美在线综合一区二区三区| 免费观看男人免费桶女人视频| 欧美日韩精品一区二区在线线 | 在线播放精品一区二区啪视频| 中文字幕无线码一区| 九九九九热精品视频| 久久中文字幕2021精品| 亚洲一区国色天香| 日本91在线| 国产精品美人久久久久久AV| 亚洲一区网站| 精品伊人久久大香线蕉网站| 亚洲中文字幕久久精品无码一区 | 欧美成人精品欧美一级乱黄| 自偷自拍三级全三级视频| 色天堂无毒不卡| 亚洲成人黄色网址| 国内精品免费| 国产精品无码制服丝袜| 日韩精品亚洲人旧成在线| 女人18毛片一级毛片在线 | 国产一区二区人大臿蕉香蕉| 亚洲人成电影在线播放| 激情六月丁香婷婷| 久久特级毛片| 中文字幕欧美日韩高清| 成人精品亚洲| 3344在线观看无码| 尤物在线观看乱码| 日本在线亚洲| 97视频在线观看免费视频| 992tv国产人成在线观看| 欧美精品v| 欧美啪啪精品| 五月激情婷婷综合| 久草青青在线视频| 无码有码中文字幕| 特级欧美视频aaaaaa| 夜夜爽免费视频| 久久久久88色偷偷| 日本成人福利视频| 国产网友愉拍精品视频| 久久公开视频| 激情综合网址| 亚洲人成网站观看在线观看| a级毛片免费网站| 欧美一区福利| 中文字幕有乳无码| 在线国产你懂的| 国产a网站| 国产激爽大片在线播放| 国产一线在线| 久草视频一区| 免费欧美一级| 国产丝袜无码精品| 97se亚洲综合在线| 精品国产网| 国产午夜一级毛片| 波多野结衣一二三| 精品国产网| 丁香婷婷综合激情| 久久综合激情网| 五月婷婷导航| 丁香婷婷综合激情| 国产第四页| 亚洲福利视频网址| 欧美a在线看| 亚洲狼网站狼狼鲁亚洲下载| 色婷婷狠狠干| 亚洲无限乱码一二三四区| 久久久成年黄色视频|