您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 使用UML的数据库分析与设计概要
第八章使用UML的数据库分析与设计本章的教学目的长期以来按照传统的系统设计方法,应用程序设计与数据库设计是分别进行的,设计完成后还需要对这两项设计进行协调,因此比较麻烦。如果采用UML进行系统分析和设计,则可以把系统的应用程序设计和数据库设计统一起来,有效地提高数据库设计的效率和质量,降低开发风险,提高软件部件的可重用性,降低开发成本。所以,希望同学们通过本章的学习能掌握使用UML进行数据库分析与设计的方法。本章的教学内容•UML关系数据库设计的概念、术语和规范•使用UML进行数据库分析与设计的方法与过程8.1数据库设计的一般方法与过程1.传统的关系数据库设计方法与过程传统的关系数据库设计的过程分为4个阶段:•需求分析;•概念结构设计;•逻辑结构设计;•物理结构设计。(1)需求分析阶段的主要任务是通过对现有的系统进行调查分析,以确定要建立的新数据库应用系统的信息需求和处理要求,并编制出数据库需求分析说明书,对数据的存储要求和处理要求进行描述,作为后续各设计阶段的依据。(2)概念结构设计需要借助某种工具或方法,如当前应用最广泛的有实体联系方法(Entity-Relationship,ER方法),它使用ER图定义系统的信息组织模式,即概念结构。教师职称性别职务姓名教工号教学生性别姓名系学号年级学课程学时学分课名课程号成绩1NMN教师-学生-课程E-R图(3)逻辑结构设计的任务是按照一定的规则,将概念结构转换为某种数据库管理系统所能接受的数据模型。图2一个实体类型转换为一个关系模型(4)物理结构设计将前一阶段设计的关系模式转化为具体数据库环境下的数据表结构,以实现对数据库的有效管理。这需要依赖于给定的计算机系统来确定。对于关系数据库系统来说,数据库的物理结构主要由DBMS确定。2.基于UML的数据库设计使用UML做数据库设计,可以把数据库设计与系统的应用程序设计结合在一起进行,而且UML具有更强的建模表现能力。基于UML的关系数据库设计与传统的关系数据库设计的过程类似,一般分为4个阶段:•业务UseCase模型设计:就是进行数据库的需求分析,使用用例图等建立业务模型。•逻辑数据模型设计:主要是确定应用系统所需要的持久数据。使用类图等建立数据库逻辑模型。如果是关系数据库设计,则需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。•物理数据模型设计:使用组件图、配置图等,设计数据库的物理模型。•物理实现设计:根据物理数据模型建立具体数据库环境下的数据库,定义构成数据库的基本表、视图等。8.2UML用于数据库设计的规范8.2.1表是关系数据库的基本建模结构。表又称为二维表或关系,它是具有相同结构的行(Row)的集合,行又称为元组。表中的每一列又称为关系的属性。表1-1学生信息表学号姓名性别年龄2000001张三男202000002李四男212000003王五女22数据元素1数据元素2数据元素3数据项1数据项2数据项3数据项4在UML中表用类的图标来表示,带有构造型图标“”或Table,类名即表名,类的属性描述表的列特性,包括列名、数据类型,以及有关的约束。在类的行为部分,根据需要可以给出对表的一些操作的描述,也可以缺省。STUDENTSPKSno:LONGINTSname:CHAR(8)Sex:CHAR(2)Birth:DATEPKPK_Student()TableCOURSESPKCno:CHAR(4)Cname:CHAR(24)Credit:CHAR(24)Hours:DATEPKPK_Course()8.2.2关键字与索引(1)候选关键字(candidatekey):是一个或多个属性的组合,它唯一地确定某个表里的记录。一个候选关键字里的属性集必须是最小化的;除非破坏唯一性,否则属性不能从候选关键字删除。候选关键字里的属性不能为空。(2)主关键字(primarykey):是一个特别选定的候选关键字,用来唯一地确定表里的记录。(3)外来关键字(foreignkey):是一个属性或属性组,它在本表中不是关键字,不能唯一地标识表中的行,但它在另一个表中是主关键字,能够唯一地标识那个表中的行。外来关键字体现了两个表的联系,实现表之间的参照完整性。例如:学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩)8146910223418193140385466467178688085140034516610285153keylink下标索引表012345678910111213141516171819key其它域位置主表索引表结构图(4)索引:索引是由数据库表中一列或多列值的集合形成的数据结构,使用这种结构可快速访问数据库表中的特定信息。在UML图标中,索引用构造型index表示。8.2.3约束约束是一种施加于数据库结构的规则,用于保证数据库的正确性或完整性。(1)主关键字约束—加在表的图标中的一个属性名前面,表示该属性为主关键字,也可以加在一个操作名前表示该操作的类型。主关键字约束使用构造型PK表示,也可用一个小图标“PK”代替。STUDENTSPKSno:LONGINTSname:CHAR(8)Sex:CHAR(2)Birth:DATEPKPK_Student()TableCOURSESPKCno:CHAR(4)Cname:CHAR(24)Credit:CHAR(24)Hours:DATEPKPK_Course()(2)外来关键字约束—加在表中的一个属性名前面,表示该属性为外来关键字,也可以加在一个操作名前表示该操作的类型。外来关键字约束使用构造型FK表示,也可用一个小图标“FK”代替。TEACHERSPKTno:LONGINTTname:CHAR(8)Sex:CHAR(2)FKDept:CHAR(24)PKPK_Teacher11();FKFK_Teacher11();(3)值检验约束—可以检验表中列值是否符合某个规则,比如把列值与一个固定的值范围进行比较或与数据库中的其他列的数据进行比较。值检验约束使用构造型Check表示,它可以加在一个操作名前面,以表示该操作是一个值检验约束。TEACHERSPKTno:LONGINTTname:CHAR(8)Sex:CHAR(2)FKDept:CHAR(24)PKPK_Teacher11();FKFK_Teacher11();CheckTC_Teacher211()TriggerTRIG_Teacher13();(4)值唯一性约束—保证所定义列的所有值是互不相同的。值唯一性约束使用构造型Unique表示,它可以加在一个操作名前面,以表示该操作是一个值检验约束。TEACHERSPKTno:LONGINTTname:CHAR(8)Sex:CHAR(2)FKDept:CHAR(24)PKPK_Teacher11();FKFK_Teacher11();UniqueTC_Teacher210();CheckTC_Teacher211();TriggerTRIG_Teacher13();(5)触发器约束—当一般的约束难以满足应用程序的功能需求时,可用触发器约束来满足。所以它也是为保证表的数据完整性而定义的某种特殊约束操作。当对表中数据进行了增、删、改等操作时,触发器可能被自动激发执行。触发器约束使用构造型Trigger表示,它可以加在一个操作名前面,以表示该操作是一个触发器。TEACHERSPKTno:LONGINTTname:CHAR(8)Sex:CHAR(2)FKDept:CHAR(24)PKPK_Teacher11();FKFK_Teacher11();TriggerTRIG_Teacher13();8.2.4联系存在于两个表之间的任何关系称为联系。表之间的联系有两种:非确定性联系和确定性联系。•非确定性联系(Non-IdentifyRelationship)是存在于两个独立表之间的联系,此时在子表中的外来关键字为非主关键字列。STUDENTSPKSno:LONGINTSname:CHAR(8)Sex:CHAR(2)FKTno:LongINTPKPK_Student()TEACHERSPKTno:LONGIINTTname:CHAR(8)Sex:CHAR(2)Position:CHAR(24)FKDept:CHAR(24)PKPK_Enrolls()IndexTC_Enrolls()Non-Identifying图8.4表之间的非确定性联系STUDENTSPKSno:LONGINTSname:CHAR(8)Sex:CHAR(2)FKTno:LongINTPKPK_Student()ENROLLSPKSno:LONGINTFPKCno:CHAR(8)FGrad:INTPKPK_Enrolls()IndexTC_Enrolls()Identifying图8.5表之间的确定性联系主表子表确定性联系(IdentifyRelationship)是存在于两个有依赖关系的表之间的联系,若父表不存在,则子表也不存在,子表的存在依赖于父表的存在。父表中的每一个主关键字列都可成为子表中的主关键字列的一部分和外来关键字列。8.5视图一个视图是一个基本表的投影,包含基本表的部分数据。视图可以看成数据库的窗口,可以简化数据库查询的复杂性,有利于保持数据库数据的一致性和安全性。在UML中,视图用带有构造性图标“”或View的类表示,类名即为视图名。但是,视图的属性必须与其来源表中相应的属性一致。STUDENTSPKSno:LONGINTSname:CHAR(8)Sex:CHAR(2)Birth:DATEPKPK_Student()BOYSTUDENTSno:STUDENTS.SnoSname:STUDENTS.SnameSex:STUDENTS.SexPKPK_Student()DerivedSTUDENTS8.6数据库与数据库模式(1)数据库在UML中,数据库用带有构造型Database的组件表示,也可用柱型图标表示。Web浏览器应用服务器数据库服务器DatabaseERPOracleACCOUNTSDB2ACCOUNTS图8.6组件图中的数据库(2)数据库模式数据库模式是表的组织结构的描述。关系数据库模式是关系模式的集合,包括对表的静态结构和完整性约束的定义。在UML中,数据库模式用带有构造型Schema的包表示,通常用在类图中。WebInterfaceBusinessLogicDatabaseAccessSchemaE-Business-DB8.7表空间与节点(1)表空间表空间是指数据的存储区域。一个数据库可以分布在一个或多个表空间,这取决于数据库的数据量、数据访问要求和安全性的要求。表空间用带有构造型Tablespace的组件表示,表空间与数据库的联系用依赖表示。TablespaceTSP1TeachingDBTablespaceTSP2图8.8在两个表空间实现数据库(2)节点节点(Node)是处于运行期的分布式系统的物理元素,代表计算机资源,如处理器或其他硬件设备。经过开发得到的软件组件和重用模块就必须配置在相应的节点上才能被执行。节点在配置图中使用,通过节点和节点之间的联系,表达计算机系统的物理配置结构。Web服务器应用服务器OracleServerMyDBServer1DB2ServerMyDBServer2SQLServerMyDBServer3XMLOraNetJDBCODBC图8.9数据库系统(服务器端)配置图示例8.3关系数据库逻辑模型设
本文标题:使用UML的数据库分析与设计概要
链接地址:https://www.777doc.com/doc-1274007 .html