您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 图书管理系统-OOD-数据库设计
图书管理系统-数据库设计2013.1计科系段恩泽email:duanenze@126.com2数据库表的设计•在已有类图的基础上,利用Rose的正向工程,完成数据库表的设计3Rose中的双向工程UML模型代码/数据库正向工程逆向工程在RationalRose中可以实现正向、反向及双向工程,以保证模型和代码的高度一致。4添加类之间的关联及多重性类图描述的是系统中的数据对象,又称为objectModel,objectModel属于概念级别的模型,需要映射为表(DataModel)才能被计算机存储5根据类图进行数据库设计•设计原则:–每一个类成为一个数据库表。–关系映射:1.一对多的关系映射为数据库表的主外键关联(1方的主键加入n方成为外键)2.一对一的关系映射为数据库表的主外键关联(1方的主键加入另一方成为外键)3.多对多的关系映射:产生第三张表,将两个多方的主键加入其中成为外键,两个外键的组合成为主键。–利用数据库三范式检查表,从而考察领域类图的分析是否合理,消除冗余数据。–检查数据是否能够反映用例视图的需要;进一步与用户再次确认使用的数据。6利用Rose进行数据库设计和数据库表的创建•Rose可以方便的帮助我们自动生成数据库设计图,并且可以在SQLServer2005中创建表。7利用Rose进行数据库设计•准备工作:安装SQLServer2005。在SQLServer中创建一个新的数据库。•在组件视图(ComponentView)中点击右键,选择DataModeler-new-database•注:如使用MySQL,Target选择ANSISQL928•点领域分析包,右键——DataModeler——TransformtodataModel9•SchemaLMS右键-DataModeler-new-DataModelDiagram,命名为“系统数据库设计”•将产生的借阅信息表,图书表和学生表,拖动到“系统数据库设计图”中,完成整个设计。10图书管理系统数据库设计11利用Rose进行数据库表的创建前提:1.安装SQLSERVER2005已安装并已运行服务。2.已经由领域类图的ObjectModel产生DataModel.12SchemaDataModelerForwardEngineer这里的Schema就是前面由前面的领域分析转换得到的Schema。131415这里有两种做法:1.生成DDL脚本的同时执行脚本,生成数据库中的表2.指生成DDL脚本16OK!17此时在所指定的数据库中,新的数据库表已建立。缺省数据库是master。18Rose中的双向工程UML模型代码正向工程逆向工程在RationalRose中可以实现正向、反向及双向工程,以保证模型和代码的高度一致。19利用Rose进行反向工程步骤:•1.选择Tools菜单中的DataModeler的reverseengineering2021从数据库到模型的反向工程从脚本到模型的反向工程22这部分信息因数据库认证方式不同而异23242526编写表结构说明字段名数据类型长度(精度)是否为空键说明借阅时间varchar255否归还时间varchar255否借阅信息_IDint4否主键学生_IDint4否外键图书_IDint4否外键表:借阅信息27生成产生表的sql,作为开发小组的文档之一28图书管理系统Sql脚本_SQLServer2000ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[FK_借阅信息3]')andOBJECTPROPERTY(id,N'IsForeignKey')=1)ALTERTABLE[dbo].[借阅信息]DROPCONSTRAINTFK_借阅信息3GOifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[FK_借阅信息2]')andOBJECTPROPERTY(id,N'IsForeignKey')=1)ALTERTABLE[dbo].[借阅信息]DROPCONSTRAINTFK_借阅信息2GOifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[借阅信息]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptable[dbo].[借阅信息]GOifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[图书]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptable[dbo].[图书]GOifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[学生]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptable[dbo].[学生]GO29图书管理系统Sql脚本_SQLServer2000CREATETABLE[dbo].[借阅信息]([借阅时间][varchar](255)COLLATEChinese_PRC_CI_ASNOTNULL,[归还时间][varchar](255)COLLATEChinese_PRC_CI_ASNOTNULL,[借阅信息_ID][int]IDENTITY(1,1)NOTNULL,[学生_ID][int]NOTNULL,[图书_ID][int]NOTNULL)ON[PRIMARY]GO30图书管理系统Sql脚本_SQLServer2000CREATETABLE[dbo].[图书]([图书状态][varchar](255)COLLATEChinese_PRC_CI_ASNOTNULL,[ISBN][varchar](255)COLLATEChinese_PRC_CI_ASNOTNULL,[书名][varchar](255)COLLATEChinese_PRC_CI_ASNOTNULL,[作者][varchar](255)COLLATEChinese_PRC_CI_ASNOTNULL,[出版社][varchar](255)COLLATEChinese_PRC_CI_ASNOTNULL,[出版日期][varchar](255)COLLATEChinese_PRC_CI_ASNOTNULL,[总页数][int]NOTNULL,[定价][varchar](255)COLLATEChinese_PRC_CI_ASNOTNULL,[图书分类][varchar](255)COLLATEChinese_PRC_CI_ASNOTNULL,[图书_ID][int]IDENTITY(1,1)NOTNULL)ON[PRIMARY]GO31图书管理系统Sql脚本_SQLServer2000CREATETABLE[dbo].[学生]([学号][varchar](255)COLLATEChinese_PRC_CI_ASNOTNULL,[姓名][varchar](255)COLLATEChinese_PRC_CI_ASNOTNULL,[班级][varchar](255)COLLATEChinese_PRC_CI_ASNOTNULL,[性别][varchar](255)COLLATEChinese_PRC_CI_ASNOTNULL,[专业][varchar](255)COLLATEChinese_PRC_CI_ASNOTNULL,[学生_ID][int]IDENTITY(1,1)NOTNULL)ON[PRIMARY]GO
本文标题:图书管理系统-OOD-数据库设计
链接地址:https://www.777doc.com/doc-3967297 .html