第一步:建立模型:
clip_image002
第二步,选择物理模型进行创建工作空间
clip_image004
第三:生成后的工作空间:
clip_image006
第四步,简单了解工具栏中的相关工具 *** 作
clip_image008
第五步,实际建立一个空表
clip_image010
第六步:在表中放入表名
clip_image012
第七步:在表中放入相应的字段名,数据类型,字段长,主外键
clip_image014
最后按确定即可完成一个表。
第八步:继续建立一个表,步骤和之前一样
clip_image016
第九步:将两个表关联起来,通过工具中的关系进行自动生成外键
clip_image018
第十步:生成外键之后的物理模型图
clip_image020
第十一步:生成数据库
clip_image022
第十二步:生成数据库时的一些数据库文件名和路径的编辑
clip_image024
第十三:数据库文件生成完毕。
clip_image026
桌面上会出现这样一份文件:
clip_image028
将数据库文件右击txt打开时会看到sql语句:
/*==============================================================*/
/* DBMS name: Sybase SQL Anywhere 11 */
/* Created on: 2012/4/20 9:57:13 */
/*==============================================================*/
if exists(select 1 from sys.sysforeignkey where role=’FK_CLASS_REFERENCE_USER’) then
alter table class
delete foreign key FK_CLASS_REFERENCE_USER
end if
if exists(
select 1 from sys.systable
where table_name=’class’
and table_type in (‘BASE’, ‘GBL TEMP’)
) then
drop table class
end if
if exists(
select 1 from sys.systable
where table_name=’user’
and table_type in (‘BASE’, ‘GBL TEMP’)
) then
drop table "user"
end if
/*==============================================================*/
/* Table: class */
/*==============================================================*/
create table class
(
class_id varchar(64) not null,
class_name varchar(64) null,
user_id varchar(64) null,
constraint PK_CLASS primary key clustered (class_id)
)
comment on column class.class_id is
‘班级ID’
comment on column class.class_name is
‘班级名’
comment on column class.user_id is
‘用户ID’
/*==============================================================*/
/* Table: "user" */
/*==============================================================*/
create table "user"
(
user_id varchar(64) not null,
user_name varchar(64) null,
password varchar(64) null,
constraint PK_USER primary key clustered (user_id)
)
comment on column "user".user_id is
‘用户ID’
comment on column "user".user_name is
‘用户名’
comment on column "user".password is
‘密码’
alter table class
add constraint FK_CLASS_REFERENCE_USER foreign key (user_id)
references "user" (user_id)
on update restrict
on delete restrict
至此,如何利用powerdesigner自动生成,建立一个具有外键的数据库 *** 作就完成了!
转载,仅供参考。
从测试过程的角度来说我们也可以把数据库测试分为:系统测试
传统软件系统测试的测试重点是需求覆盖,而对于我们的数据库测试同样也需要对需求覆盖进行保证。那么数据库在初期设计中也需要对这个进行分析,测试。例如存储过程,视图,触发器,约束,规则等我们都需要进行需求的验证确保这些功能设计是符合需求的.另一方面我们需要确认数据库设计文档和最终的数据库相同,当设计文档变化时我们同样要验证改修改是否落实到数据库上。
这个阶段我们的测试主要通过数据库设计评审来实现。
集成测试
集成测试是主要针对接口进行的测试工作,从数据库的角度来说和普通测试稍微有些区别对于数据库测试来说,需要考虑的是数据项的修改 *** 作、数据项的增加 *** 作、数据项的删除 *** 作、数据表增加满、数据表删除空、删除空表中的记录、数据表的并发 *** 作、针对存储过程的接口测试、结合业务逻辑做关联表的接口测试。
同样我们需要对这些接口考虑采用等价类、边界值、错误猜测等方法进行测试。
单元测试
单元测试侧重于逻辑覆盖,相对对于复杂的代码来说,数据库开发的单元测试相对简单些,可以通过语句覆盖和走读的方式完成。
系统测试相对来说比较困难,这要求有很高的数据库设计能力和丰富的数据库测试经验。而集成测试和单元测试就相对简单了。
而我们也可以从测试关注点的角度对数据库进行分类:
功能测试
对数据库功能的测试我们可以依赖与工具进行:
DBunit:一款开源的数据库功能测试框架,可以使用类似与Junit的方式对数据库的基本 *** 作进行白盒的单元测试,对输入输出进行校验。
QTP:大名鼎鼎的自动测试工具,通过对对象的捕捉识别,我们可以通过QTP来模拟用户的 *** 作流程,通过其中的校验方法或者结合数据库后台的监控对整个数据库中的数据进行测试。个人觉得比较偏向灰盒。
DataFactory:一款优秀的数据库数据自动生成工具,通过它你可以轻松的生成任意结构数据库,对数据库进行填充,帮助你生成所需要的大量数据从而验证我们数据库中的功能是否正确。这是属于黑盒测试。
数据库性能虽然我们的硬件最近几年进步很快,但是我们需要处理的数据以更快的速度在增加。几亿条记录的表格在现在是司空见惯的,如此庞大的数据量在大量并发连接 *** 作时,我们不能像以前一样随意的使用查询,连接查询,嵌套查询,视图,这些 *** 作如果不当会给系统带来非常巨大的压力,严重影响系统性能。
性能优化分4部分:
1、物理存储方面
2、逻辑设计方面
3、数据库的参数调整
4、SQL语句优化
性能测试:
我们如何对性能方面进行测试呢,业界也提供了很多工具通过数据库系统的SQL语句分析工具,我们可以分析得到数据库语句执行的瓶颈,从而优化SQL语句。
Loadrunner:这个不用多说,我们可以通过对协议的编程来对数据库做压力测试。
Swingbench:(这是一个重量级别的feature,类似LR,而且非常强大,只不过专门针对oracle而已)数据库厂商也意识到这点,例如oracle11g已经提供了real applicationtest,提供数据库性能测试,分析系统的应用瓶颈。
还有很多第三方公司开发了SQL语句优化工具来帮助你自动的进行语句优化工作从而提高执行效率。
安全测试:
软件日益复杂,而数据又成为了系统中重中之重的核心,从以往对系统的破坏现在更倾向于对数据的获取和破坏。而数据库的安全被提到了最前端自从SQL 注入攻击被发现,冒失万无一失的数据库一下从后台变为了前台,而一旦数据库被攻破,整个系统也会暴露在黑客的手下,通过数据库强大的存储过程,黑客可以轻松的获得整个系统的权限。而SQL的注入看似简单缺很难防范,对于安全测试来说,如何防范系统被注入是测试的难点。
业界也有相关的数据库注入检测工具,来帮助用户对自身系统进行安全检测。
对于这点来说业界也有标准,例如ISO IEC 21827,也叫做SSE CMM 3.0,是CMM和ISO的集成的产物,专门针对系统安全领域的另外一方面,数据库的健壮性,容错性和恢复能力也是我们测试的要点
我们也可以发现功能测试,性能测试,安全测试,是一个由简到繁的过程,也是数据库测试人员需要逐步掌握的技能,这也是以后公司对数据库测试人员的要求。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)