|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
这章描述如何检查和处理在MySQL数据库中的数据损坏。如果你的表损坏很多,你应该尝试找出其原因!见G.1调试一个MySQL服务器。数据|数据库先容Matisse--专为.NET的后干系型数据库part1先容
当我入手下手打仗用于.NET的数据库,我发明除尽人皆知的一些数据库,如SQLServer、MySQL之外,另有很多选择。Matisse就是个中之一,它是一种后干系型数据库(post-relationaldatabase)。
为何要选择Matisse呢?那是由于它是我所晓得的,独一专为.NET举行扩大,具有全体的工具功能和原生.NET撑持的数据库。它次要的功能包含用户自界说范例,承继,多态和复杂的数据模子等。已往的两年里,我在多个必要庞大数据模子的.NET项目中猎取了Matisse的实践事情常识。
假如有人想要找一篇细致的文章,可以对支流的干系型数据库和其他产物举行深条理的对照。我还没有看到一个复杂的,渐进的教程,能匡助那些但愿可以打仗新一代数据库的开辟职员。因而,我决意公布一系列的漫笔往弥补这一空缺,这是第一篇文章。
这第一篇文章次要是对用Matisse举行SQL编程作一个简介。接上去的文章里,将加倍具体的先容怎样利用.NET和ASP.NET往开辟数据库使用程序。
安装
安装Matisse十分的复杂和疾速.进进Matisse下载站点http://www.matisse.com/developers/downloads/,并在"MatisseDBMS7.0.x"区中下载上面两个文件:
1.Intel-MSWindows(文件名是matisse70x.exe)
2..NETbinding(文件名是matisseDotNet70x.exe)
第一个文件安装数据库服务、办理和开辟工具和一个通用的客户端链接库,该链接库可为分歧的言语共享,好比C#,VB.Net等。第二个文件包括一个.NET的拆卸件(assembly),其供应工具永世化服务和一个原生的ADO.NET供应者。
译者注:在这里,我把nativeADO.NETdataprovider翻译为原生的ADO.NET供应者.
要安装Matisse,你必要具有Windows体系办理员级别(Administrator)的权限,呆板的基础设置:WindowsNT,2000,大概XP,64MB内存和100MB的硬盘空间。起首,实行matisse70x.exe文件,跟从安装导游的指引,当呈现安装范例时,记得选择"Typical/Full",安装历程将在几分钟内停止。接着,实行matisseDotNet70x.exe文件,安装.NET接口,选择与前一个安装不异的目次。
在入手下手利用之前,你应当看看以下几个文档:
1.DiscoveringMatisseEnterpriseManager(fromReadme.html)
2.BuildingreusablecomponentswithSQLPSM(fromReadme.html)
3.GettingStartedwithMatisse
你也能够在以下网址找到一些编程,数据库办理和安装方面的指引:
http://www.matisse.com/developers/documentation/.
假如有RationalRose建模工具,你也能够下载MatisseRoseLink(matisseRoseLink70x.exe)。它同意你利用UML来界说和保护数据库schema。
记着,你也能够在Linux下面运转你的database服务器,然后在Windows上公布你的.NET使用程序。你只必要下载Linux版的Matisse(matisse-7.0-x.i386.rpm)并用rpm安装,假如你利用的是RedHat8,在运转rmp之前,你必要修正情况变量RPM_INSTALL_PREFIX为/usr/local/matisse。
>rpm-ihvmatisse-7.0-x.i386.rpm
利用MatisseEnterpriseManager你能够做甚么?
在入手下手写一个演示程序之前,让我们看一些EnterpriseManager的风趣特征。
1.你能够象其他那些免费软件一样,扫瞄一个数据库中的类,属性,干系和SQL办法。个中一个风趣的特征,你能够看到一个类的一切属性(好比属性,干系和办法)和子类的属性。如许,当你在类中写一个SQL声明的时分,这个特征就变得很有效,由于你不必在父类和子类之间往返切换,以查找某一个属性。
2.数据倒进(CSV)
利用CSV(Comma-Separated)文件,你能够从干系型数据库中倒进数据。当你从CSV文件倒进数据,文件中的每行被存为一个数据工具。一切的CSV文件倒进停止后,你必要界说一个形貌数据库中分歧工具之间链接干系的XRD文件(XMLRelationshipDefinition)。随后依据你UML中的形貌,数据库中的工具被整分解一个成心义的语义收集。工具之间的干系会在SQL查询时,供应一个分明的功能优化。
复杂演示
在这篇文章中,我将会展现一个复杂的演示使用程序,以先容怎样利用SQL往界说一个schema和操纵数据工具。在接上去的文章中,我们会举行更深切的会商。
起首,你必要开启一个数据库。实行EnterpriseManager,选中一个数据库,然后点选Start菜单。几秒钟以后,数据库将被启动。
在这个演示程序中,我们将利用项目办理形式。个中界说了三个类:Project,Employee和Manager。其干系以下:
假如有RationalRose,能够十分便利的倒进UML图。选择Tools->Matisse->ExporttoDatabase…菜单:
假如有RationalRose,你可使用SQLDDL大概ODL(ObjectDefinitionLanguage)。上面的DDL语句和后面的UML图是等效的。
CREATETABLEProject(
ProjectNameSTRING,
BudgetNUMERIC(19,2),
MembersREFERENCES(Employee)
CARDINALITY(1,-1)
INVERSEEmployee.WorksIn,
ManagedByREFERENCES(Manager)
CARDINALITY(1,1)
INVERSEManager.Manages
);
CREATETABLEEmployee(
NameSTRING,
BirthDateDATE,
WorksInREFERENCES(Project)
INVERSEProject.Members
);
CREATETABLEManagerUNDEREmployee(
TitleSTRING,
ManagesREFERENCES(Project)
INVERSEProject.ManagedBy
);
要实行下面的DDLstatement,复制到SQLQueryAnalyzer窗口,实行。
到此,你应当看到了用Matisse举行数据库建模的长处了吧!你不必要修改你的形式,一切的类和其他的容器之间的干系已被保存在数据库的schema中了。关于保护和扩大使用程序,这是一个很年夜的上风。
如今,我们能够在数据库中创建工具了。在SQLQueryAnalyzer窗口中实行上面的代码:
INSERTINTOEmployee(Name,BirthDate)
VALUES(JohnVenus,DATE1955-10-01)
RETURNINGINTOemp1;
INSERTINTOEmployee(Name,BirthDate)
VALUES(AmyMars,DATE1965-09-25)
RETURNINGINTOemp2;
INSERTINTOManager(Name,BirthDate,Title)
VALUES(KenJupiter,DATE1952-12-15,Director)
RETURNINGINTOmgr1;
INSERTINTOProject(ProjectName,Budget,ManagedBy,Members)
VALUES(CampaignSpring04,10000.00,mgr1,SELECTION(emp1,emp2));
下面的代码创立了两个Employee工具,一个Manager工具,一个Project工具。然后将这个两个雇员工具作为成员到场项目工具中,而司理工具作为项目标办理者到场。
要观察拔出的工具,实行"SELECT*FROMEmployee"语句
当你依照Employee查找,查询会前往两品种的工具-Employee和Manager。由于它们都承继至类Employee。可是,Manager工具中的一些属性,好比Title是不会显现在了局表中的,由于这些属性并没有包含在类Employee,而是在其子类中。
你能够界说类的SQL办法。语法遵守SQLPSM(PersistentStoredModule).举例申明一下,让我们界说一个实例办法Age(),该办法前往雇员的岁数。
CREATEMETHODAge()
RETURNSINTEGER
FOREmployee
BEGIN
RETURNEXTRACT(YEARFROMCURRENT_DATE)-EXTRACT(YEARFROMSELF.BirthDate);
END;
在SQLQueryAnalyzer窗口中实行上述语句,然后尝尝上面的查询语句。
SELECT*FROMEmployeeempWHEREemp.Age()>40;
Age()这个办法在Employee中界说,其子类Manager也承继了这一办法,固然,你也能够象在.NET一样利用它,好比在Manager类中覆写这个办法,大概利用它的多态特征。
下一篇文章
在这篇文章中,我复杂的先容了利用Matisse举行SQL编程,并展现了它的工具特征,好比承继和干系。在接上去的文章中,我将加倍具体的逐一先容,并会商它的手艺上风和优势。
mysqld进程在一个写入当中被杀死;计算机的意外关闭(例如,如果计算机掉电);一个硬件错误。 |
|