麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > .NET > 正文

介紹Matisse--專為.NET的后關(guān)系型數(shù)據(jù)庫part 1

2024-07-21 02:08:14
字體:
供稿:網(wǎng)友

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

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

如果有人想要找一篇詳盡的文章,能夠?qū)χ髁鞯年P(guān)系型數(shù)據(jù)庫和其他產(chǎn)品進行深層次的比較。我還沒有看到一個簡單的,漸進的教程,能幫助那些希望能夠接觸新一代數(shù)據(jù)庫的開發(fā)人員 。因此,我決定發(fā)布一系列的短文去填補這一空白,這是第一篇文章。

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

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

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

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

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

要安裝matisse,你需要擁有windows 系統(tǒng)管理員級別(administrator)的權(quán)限, 機器的基本配置:windows nt, 2000, 或者xp, 64mb內(nèi)存以及100mb的硬盤空間。首先,執(zhí)行matisse70x.exe文件,跟隨安裝向?qū)У闹敢敵霈F(xiàn)安裝類型時,記得選擇"typical/full",安裝過程將在幾分鐘內(nèi)結(jié)束。接著,執(zhí)行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

你也可以在以下網(wǎng)址找到一些編程,數(shù)據(jù)庫管理和安裝方面的指引:

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

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

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

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

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





2. 數(shù)據(jù)倒入(csv)

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

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





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





如果有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

);

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



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

現(xiàn)在,我們可以在數(shù)據(jù)庫中建立對象了。在sql query analyzer窗口中執(zhí)行下面的代碼:

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));

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

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



當你按照employee查找,查詢會返回兩種類的對象-employee 和 manager。因為它們都繼承至類employee。但是,manager對象中的一些屬性,比如title是不會顯示在結(jié)果表中的,因為這些屬性并沒有包括在類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窗口中執(zhí)行上述語句,然后試試下面的查詢語句。

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

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

 
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美日韩中文字幕在线视频 | 久久99国产精品视频 | 午夜视频大全 | 免费在线观看亚洲 | 欧美日本色 | 欧美在线观看黄色 | 日韩视频在线观看免费视频 | 成人免费毛片在线观看 | 中文在线观看视频 | 国产一级性生活视频 | av电影在线观看网站 | 日本在线视频二区 | 毛片福利 | 国产精品亚洲精品日韩已方 | 日韩毛片一区二区三区 | sese在线视频 | 欧美精品日日鲁夜夜添 | 免费视频xxxx | 韩国一级免费视频 | 精品国产乱码久久久久久丨区2区 | 欧美一极视频 | 毛片视频在线免费观看 | 夜夜夜精品视频 | 国产日韩欧美一区 | 久久精品亚洲欧美日韩精品中文字幕 | 美国av免费看 | 欧美日韩在线视频观看 | 亚洲精华液久久含羞草 | 精品久久久久久 | 国产孕妇孕交大片孕 | 精国产品一区二区三区 | 国产精品亚洲一区二区三区在线观看 | 久久另类视频 | 天天操天天骑 | 国产成人精品免高潮在线观看 | av色偷偷| 欧美视频网| 久久综合伊人 | 噜噜噜躁狠狠躁狠狠精品视频 | 国产精品久久久久久久久久大牛 | 国产一级一区二区三区 |