EMStudio系列教程3--静态建模之数据库设计
在本系列教程的前一篇:静态建模之实体模型设计中已经涉及了一小部分数据库设计相关的内容,比如在实体设计器中设计索引和触发器。本篇的内容将继续介绍其它与数据库设计相关的内容和操作。在前一篇使用到的工程在这里也会被用到,如果读者是直接开始阅读文本,那么最好是能重新创建该工程文件。好,现在请打开之前创建的工程文件MyProject,开始数据库设计的介绍。

一.存储过程,视图及函数
请点击"Data Model",显示数据模型视图。这里可以浏览数据库结构信息和设计相关的内容。鼠标右击"Database"节点,选择New->Stored Prcedure菜单,创建一个新的存储过程。双击该新建的存储过程,打开对应的编辑器。当前显示的内容是自动生成的,是一个新建存储过程默认的内容。开发者可以编写自己需要的存储过程。但是需要遵守当前选择数据库对存储过程的语法要求。编辑完成后,直接关闭编辑器,并保存工程。如果需要删除选中的存储过程,请鼠标右击该存储过程然后点击Delete From Model菜单项。

存储过程管理的基本操作就这些,视图和函数管理器的操作也是类似,这里就不再介绍了。开发者可以从主菜单的Database菜单中打开相应的管理器。

二.数据库转换
在EMStudio中选择的数据库时可以随时改变的。当选择的数据库改变后,索引,触发器等相关的设计内容也会自动改变。选择主菜单ProjectSetting…,打开项目设置界面。选择General设置页,将Database改为Oracle,然后点击OK按钮。再打开实体Company的实体设计器,可以看一下有如下变化:

1.字段可选择的类型改变了
2.索引的属性改变了
3.触发器的属性改变了

三.数据库操作
1.创建数据库连接
先将数据库改回Sql,然后创建一个真实的数据库连接,这样才能生成数据库。选择主菜单ProejctSetting…菜单项,打开项目设置界面,选择General设置页,再点击New Connection按钮。在显示的界面中,Data source选择为SQL Server,Data provider选择为SQL Server。

点击OK进入下一步。请根据自己的开发环境设置界面中的各个选项。可以点击Test Connection按钮,确认是否可以连接数据库。点击OK按钮完成数据库连接的创建工作。在项目设置界面中可以看到Connection String文本框中自动填入了连接字符串。开发者可以在这个文本框手动编写连接字符串,以满足特定的要求。点击OK按钮,返回主界面。如果开发者当且没有Sql数据库那么可以选择Access数据库,但是请确认当前计算机安装了Access 2010 Runtime,否则Access数据库的操作无法完成。Access 2010 Runtime可在微软官网上下载,是免费的。

2.生成数据库
选择主菜单DatabaseBuild Database菜单项。由于执行该操作会删除数据库中所有的内容,所以会显示一个提示信息,要求开发者确认是否真的想执行该操作,点击Yes按钮,执行数据库生成操作。如果数据库生成成功,会在Output窗口显示成功信息。如果生成失败,会提示失败信息,然后在Errors And Warnings窗口可以看到具体的错误信息。

3.数据库同步
当静态模型改变以后,需要将这些变化体现到数据库时,可以执行数据库同步操作。当然重新执行生成数据库也是可以的。两者的区别是,同步时数据库只更新变化的部分,并且EMStudio会尽最大可能保留数据库中已有的数据,数据库中不需要更新的部分将完整保留,不会丢失。而生成数据库操作会丢失当前数据库中所有的内容,将数据库重新生成一次。

打开实体Company的实体设计器,增加一个新的成员,名字是Address,类型是string。然后选择主菜单DatabaseSynchronize Database…菜单项,打开同步数据库界面。由于我们只增加一个字段,所以同步数据库界面只显示有一个字段需要增加,这是本次同步操作所要执行的所有操作。点击Synchronize按钮执行同步操作。如果成功在Output窗口中显示成功信息,否则显示失败信息,并在Errors And Warnings窗口中显示具体的错误信息。

4.从数据库生成模型
保存并关闭当前工程,选择主菜单DatabaseCreate Model From Database…菜单项。点击New Connection按钮创建一个数据库连接,然后点击OK就可以完成从数据库生成模型的操作。如果失败请查看Errors And Warnings窗口中的错误信息,然后解决问题。

四.继承关系在数据库设计中的作用
EMStudio在数据库设计中对继承关系的支持,使得开发者可以真正意义上的使用面向对象的思想和方法完成对数据库的设计。为了体会这种功能,先定义两个实体:BaseEntity和SubEntity,然后再建立继承关系。

在BaseEntity实体中定义一个新的成员,所有属性使用默认值,再生成数据库。读者可以打开数据库确认,子类SubEntity对应的数据表也会有一个字段,这和父类BaseEntity对应的数据表是一致的。生成源代码以后,可以查看源代码,SubEntity类确实是继承自BaseEntity类。这只是一个说明性质的例子,实际上索引,触发器,关系都是可以继承的。
Copyright 2014--2020 广联科技版权所有