亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

介紹Matisse--專為.NET的后關系型數據庫part 1

2024-07-21 02:08:14
字體:
來源:轉載
供稿:網友

介紹matisse--專為.net的后關系型數據庫part 1 介紹
當我開始接觸用于.net的數據庫,我發現除了眾所周知的一些數據庫,如sql server、mysql以外,還有不少選擇。matisse就是其中之一,它是一種后關系型數據庫(post-relational database)。

為什么要選擇matisse呢? 那是因為它是我所知道的,唯一專為.net進行擴充,具有全部的對象性能和原生.net支持的數據庫。它主要的性能包括用戶自定義類型,繼承,多態和簡單的數據模型等。過去的兩年里,我在多個需要復雜數據模型的.net項目中獲取了matisse的實際工作知識。

如果有人想要找一篇詳盡的文章,能夠對主流的關系型數據庫和其他產品進行深層次的比較。我還沒有看到一個簡單的,漸進的教程,能幫助那些希望能夠接觸新一代數據庫的開發人員 。因此,我決定發布一系列的短文去填補這一空白,這是第一篇文章。

這第一篇文章主要是對用matisse進行sql編程作一個簡介。接下來的文章里,將更加詳細的介紹如何使用.net 和 asp.net去開發數據庫應用程序。
安裝
安裝matisse非常的簡單和快速. 進入matisse下載站點 http://www.matisse.com/developers/downloads/,并在"matisse dbms 7.0.x"區中下載下面兩個文件:

1.      intel - ms windows (文件名是 matisse70x.exe)

2.      .net binding (文件名是 matissedotnet70x.exe)

第一個文件安裝數據庫服務、管理和開發工具以及一個通用的客戶端鏈接庫,該鏈接庫可為不同的語言共享,比如c#, vb.net等。第二個文件包含一個.net的裝配件(assembly),其提供對象永久化服務和一個原生的ado.net提供者。

          譯者注:在這里,我把native ado.net data provider翻譯為原生的ado.net提供者.

要安裝matisse,你需要擁有windows 系統管理員級別(administrator)的權限, 機器的基本配置:windows nt, 2000, 或者xp, 64mb內存以及100mb的硬盤空間。首先,執行matisse70x.exe文件,跟隨安裝向導的指引,當出現安裝類型時,記得選擇"typical/full",安裝過程將在幾分鐘內結束。接著,執行matissedotnet70x.exe文件,安裝.net接口,選擇與前一個安裝相同的目錄。

在開始使用之前,你應該看看以下幾個文檔:

1.      discovering matisse enterprise manager (from readme.html)

2.      building reusable components with sql psm (from readme.html)

3.      getting started with matisse

你也可以在以下網址找到一些編程,數據庫管理和安裝方面的指引:

http://www.matisse.com/developers/documentation/.

如果有rational rose建模工具,你也可以下載matisse rose link(matisseroselink70x.exe)。它允許你使用uml來定義和維護數據庫schema。

記住,你也可以在linux上面運行你的database服務器,然后在windows上發布你的.net應用程序。你只需要下載linux版的matisse(matisse-7.0-x.i386.rpm)并用rpm安裝,如果你使用的是redhat 8,在運行rmp之前,你需要修改環境變量rpm_install_prefix 為/usr/local/matisse。

 > rpm -ihv matisse-7.0-x.i386.rpm
使用matisse enterprise manager你可以做什么?
在開始寫一個演示程序之前,讓我們看一些enterprise manager的有趣特性。

1. 你可以象其他那些收費軟件一樣,瀏覽一個數據庫中的類,屬性,關系和sql方法。其中一個有趣的特性,你可以看到一個類的所有屬性(比如屬性,關系和方法)以及子類的屬性。這樣,當你在類中寫一個sql聲明的時候,這個特性就變得很有用,因為你不用在父類和子類之間來回切換,以查找某一個屬性。





2. 數據倒入(csv)

使用csv(comma-separated)文件,你可以從關系型數據庫中倒入數據。當你從csv文件倒入數據,文件中的每一行被存為一個數據對象。所有的csv文件倒入結束后,你需要定義一個描述數據庫中不同對象之間鏈接關系的xrd文件(xml relationship definition)。隨后根據你uml中的描述,數據庫中的對象被整合成一個有意義的語義網絡。對象之間的關系會在sql查詢時,提供一個明顯的性能優化。
簡單演示
在這篇文章中,我將會展示一個簡單的演示應用程序,以介紹如何使用sql去定義一個schema和操作數據對象。在接下來的文章中,我們會進行更深入的討論。

首先,你需要開啟一個數據庫。執行enterprise manager,選中一個數據庫,然后點選start菜單。幾秒鐘之后,數據庫將被啟動。





在這個演示程序中,我們將使用項目管理模式。其中定義了三個類:project, employee和manager。其關系如下:





如果有rational rose, 可以非常方便的倒入uml圖。選擇tools -> matisse -> export to database…菜單:





如果有rational rose, 你可以使用sql ddl或者odl(object definition language)。下面的ddl 語句和前面的uml圖是等效的。

create table project (

  projectname string,

  budget numeric(19,2),

  members references (employee)

    cardinality (1, -1)

    inverse employee.worksin,

  managedby references (manager)

    cardinality (1, 1)

    inverse manager.manages

);

 

create table employee (

  name string,

  birthdate date,

  worksin references (project)

    inverse project.members

);

 

create table manager under employee (

  title string,

  manages references (project)

    inverse project.managedby

);

要執行上面的ddl statement,復制到sql query analyzer窗口,執行。



到此,你應該看到了用matisse進行數據庫建模的優點了吧!你不需要改動你的模式,所有的類和其他的容器之間的關系已經被保留在數據庫的schema中了。對于維護和擴展應用程序,這是一個很大的優勢。

現在,我們可以在數據庫中建立對象了。在sql query analyzer窗口中執行下面的代碼:

insert into employee (name, birthdate)

  values ('john venus', date '1955-10-01')

  returning into emp1;

insert into employee (name, birthdate)

  values ('amy mars', date '1965-09-25')

  returning into emp2;

insert into manager (name, birthdate, title)

  values ('ken jupiter', date '1952-12-15', 'director')

  returning into mgr1;

insert into project (projectname, budget, managedby, members)

  values ('campaign spring 04', 10000.00, mgr1, selection(emp1, emp2));

上面的代碼創建了兩個employee對象,一個manager對象,一個project對象。然后將這個兩個雇員對象作為成員加入項目對象中,而經理對象作為項目的管理者加入。

要察看插入的對象,執行"select * from employee"語句



當你按照employee查找,查詢會返回兩種類的對象-employee 和 manager。因為它們都繼承至類employee。但是,manager對象中的一些屬性,比如title是不會顯示在結果表中的,因為這些屬性并沒有包括在類employee,而是在其子類中。

你可以定義類的sql方法。語法遵循sql psm (persistent stored module).舉例說明一下,讓我們定義一個實例方法age(),該方法返回雇員的年齡。

create method age()

returns integer

for employee

begin

  return extract(year from current_date) - extract(year from self.birthdate);

end;

在sql query analyzer窗口中執行上述語句,然后試試下面的查詢語句。

select * from employee emp where emp.age() > 40;

age()這個方法在employee中定義,其子類manager也繼承了這一方法,當然,你也可以象在.net一樣使用它,比如在manager類中覆寫這個方法,或者使用它的多態特性。
下一篇文章
在這篇文章中,我簡單的介紹了使用matisse進行sql編程,并展示了它的對象特性,比如繼承和關系。在接下來的文章中,我將更加詳細的逐個介紹,并討論它的技術優勢和劣勢。

 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美极品美女电影一区| 日韩av大片免费看| 久久精品国产清自在天天线| 伊人青青综合网站| 亚洲在线观看视频网站| 欧美xxxx综合视频| 日本高清不卡在线| 亚洲成人在线视频播放| 日韩电影中文字幕一区| 深夜福利日韩在线看| 日韩在线视频国产| 日韩美女毛茸茸| 俺去了亚洲欧美日韩| 久久视频在线观看免费| 欧美精品激情在线| 日韩电影中文字幕av| 国产精品久久久久久久久久久新郎| 91在线观看免费高清完整版在线观看| 亚洲欧美中文在线视频| 精品一区二区电影| 日韩性xxxx爱| 成人免费高清完整版在线观看| xxxx性欧美| 亚洲精品免费网站| 欧美日韩在线视频一区二区| 日韩美女免费线视频| y97精品国产97久久久久久| 亚洲欧洲美洲在线综合| 在线观看欧美日韩国产| 热久久这里只有精品| 亚洲激情在线视频| 久久免费视频这里只有精品| 欧美成人在线影院| 91精品久久久久久综合乱菊| 97视频在线播放| 在线视频日本亚洲性| 亚洲成色www8888| 精品国产31久久久久久| 欧美一级bbbbb性bbbb喷潮片| 狠狠色狠狠色综合日日五| 欧美高清视频在线观看| 亚洲天堂av高清| 91性高湖久久久久久久久_久久99| 国产精品毛片a∨一区二区三区|国| 精品国产精品三级精品av网址| 97视频色精品| 国内精品久久久久久久| 国产精品久久久久免费a∨大胸| 国产黑人绿帽在线第一区| 成人网在线免费看| 日韩精品在线播放| 九九热r在线视频精品| 搡老女人一区二区三区视频tv| 国产91精品青草社区| 久久99国产综合精品女同| 精品视频—区二区三区免费| 欧美一区二区大胆人体摄影专业网站| 成人春色激情网| 亚洲欧美制服中文字幕| 美女精品视频一区| 日本亚洲欧美三级| 欧美成人免费在线视频| 国内成人精品视频| 国产97色在线|日韩| 欧美激情奇米色| 国产一区二区三区在线视频| 91av在线不卡| 精品在线小视频| 91tv亚洲精品香蕉国产一区7ujn| 欧美一级电影免费在线观看| 国产mv免费观看入口亚洲| 色综合久久精品亚洲国产| 欧美精品第一页在线播放| 欧美国产日韩在线| 欧美日韩一二三四五区| 日韩中文字幕不卡视频| 亚洲人成电影网站色| 欧美亚洲视频一区二区| 久久精品国产精品亚洲| 亚洲午夜精品久久久久久久久久久久| 欧美精品免费在线| 国产视频999| 欧美日韩福利视频| 欧美专区在线视频| 日韩在线观看免费av| 亚洲人午夜色婷婷| 福利一区福利二区微拍刺激| 国产丝袜精品视频| 日韩专区中文字幕| 国产精品免费一区豆花| 欧美日韩成人精品| 国产精品自产拍在线观看| 久久久国产精品视频| 亚洲视频在线观看| 91精品久久久久久久久久久久久| 成人日韩在线电影| 欧美大尺度电影在线观看| www高清在线视频日韩欧美| 亚洲第一中文字幕在线观看| 欧美第一淫aaasss性| 欧美又大粗又爽又黄大片视频| 亚洲电影成人av99爱色| 亚洲成人av在线播放| 国模gogo一区二区大胆私拍| 成人激情春色网| 欧美专区国产专区| 日韩精品中文字幕视频在线| 国产精品日日做人人爱| 上原亚衣av一区二区三区| 欧美一级片久久久久久久| 超在线视频97| 色综合91久久精品中文字幕| 最新的欧美黄色| 亚洲精品动漫100p| 亚洲成人动漫在线播放| 最近免费中文字幕视频2019| 日韩亚洲成人av在线| 久久91亚洲精品中文字幕| 色哟哟网站入口亚洲精品| 欧美性jizz18性欧美| 亚洲欧美一区二区三区四区| 91国产高清在线| 久久亚洲综合国产精品99麻豆精品福利| 中文字幕免费精品一区| 国产婷婷色综合av蜜臀av| 在线观看精品自拍私拍| 日韩欧美中文第一页| 欧美激情视频播放| 不卡在线观看电视剧完整版| 美日韩丰满少妇在线观看| 亚洲国产美女精品久久久久∴| 亚洲男人av在线| 国产成人高潮免费观看精品| 国产精品欧美日韩| 欧美人交a欧美精品| xvideos国产精品| 在线播放国产一区二区三区| 国产精品av在线播放| 隔壁老王国产在线精品| 91亚洲精品一区二区| 精品国产一区二区三区久久狼5月| 色播久久人人爽人人爽人人片视av| 亚洲国产欧美一区二区三区同亚洲| 日本视频久久久| 992tv在线成人免费观看| 欧美日韩久久久久| 亚洲精品久久在线| 黄色成人av网| 国内精品国产三级国产在线专| 91香蕉国产在线观看| 久久久av亚洲男天堂| 国产精品69久久| 高跟丝袜一区二区三区| 久久夜精品va视频免费观看| 97香蕉久久夜色精品国产| 一本色道久久88综合亚洲精品ⅰ| 成人国产精品日本在线| 国产精品女主播| 日韩精品视频观看| 97福利一区二区| 日韩av片免费在线观看| 97成人精品视频在线观看| 一级做a爰片久久毛片美女图片| 日韩精品在线观看视频|