《数据库规划与设计》实验指导/实验六物理数据模型的创建及管理 《数据库规划与设计》实验指导 实验六物理数据模型的创建及管理 、实验目的 1、熟悉数据库的物理结构设计; 2、掌握使用 Power Designer工具建立PDM的方法和过程; 3、熟练掌握将CDM或者LDM转换为PDM: 4、掌握PDM对象的管理。 、实验学时 2学时 、实验类型 验证性 四、实验环境 1、硬件 每位学生配备计算机一台,满足下列软件的安装; 2、软件 Windows操作系统, MySQL Workbench、 Powerdesigner5、 Visio2003等工具的安装文件 安装有Aces、 SQL Server、 MySQL等数据库管理软件。 3、网络 需要局域网支持 4、工具 无 五、实验理论与预备知识 数据库应用系统案例分析; 2、物理数据模型的对象及对象间关系 esigner工具在PDM中的使用 4、物理数据模型PDM与数据库系统的关系。 六、实验任务 1、熟悉物理数据模型PDM 2、创建数据库应用案例的PDM: 3、PDM模板文档的创建及管理。 管理科学与工程学科/共8页第1页
《数据库规划与设计》实验指导 /实验六 物理数据模型的创建及管理 1 管理科学与工程学科 / 共 8 页,第 1 页 《数据库规划与设计》实验指导 实验六 物理数据模型的创建及管理 一、实验目的 1、熟悉数据库的物理结构设计; 2、掌握使用 PowerDesigner 工具建立 PDM 的方法和过程; 3、熟练掌握将 CDM 或者 LDM 转换为 PDM; 4、掌握 PDM 对象的管理。 二、实验学时 2 学时 三、实验类型 验证性 四、实验环境 1、硬件 每位学生配备计算机一台,满足下列软件的安装; 2、软件 Windows 操作系统,MySQL Workbench、Powerdesigner15、Visio 2003 等工具的安装文件; 安装有 Access、SQL Server、MySQL 等数据库管理软件。 3、网络 需要局域网支持; 4、工具 无 五、实验理论与预备知识 1、数据库应用系统案例分析; 2、物理数据模型的对象及对象间关系; 3、PowerDesigner 工具在 PDM 中的使用; 4、物理数据模型 PDM 与数据库系统的关系。 六、实验任务 1、熟悉物理数据模型 PDM; 2、创建数据库应用案例的 PDM; 3、PDM 模板文档的创建及管理
《数据库规划与设计》实验指导/实验六物理数据模型的创建及管理 七、实验内容及步骤 熟悉物理数据模型PDM 物理数据模型( Physical Data Model,PDM)是以常用的DBMS(数据库管理系统)理论为基础, 将 CDM/LDM中所建立的现实世界模型生成相应的DBMS的SQL语言脚本,利用该SQL脚本在数 据库中产生现实世界的存储结构(表、约束等),并保证数据在数据库中的完整性和一致性 (1)熟悉PDM示例 基本步骤:启动 Power Designer,,选择【Fl】→【open】→【 Examples】→【 project pdm】,即 可打开逻辑数据模型示例,如图1所示; 图1物理数据模型示例 任务1:图1是关于员工数据相关的物理结构设计,请描述该PDM使用的对象有哪些(建议用 中文),并将结果填写在表1中 表1PDM对象描述 对象 内容 备注 具体表的中文名称 如规则 (2)CDM示例生成PDM 基本步骤: 第一步:打开CDM示例。启动 PowerDesigner,选择【Fle→【open】→【 Examples】 【 project. cdm】,即可打开概念数据模型示例 第二步:检査CDM示例。选择菜单栏【 Tools】→【 Check model】,即可打开“检査模型参数 管理科学与工程学科/共8页第2页
《数据库规划与设计》实验指导 /实验六 物理数据模型的创建及管理 2 管理科学与工程学科 / 共 8 页,第 2 页 七、实验内容及步骤 1、熟悉物理数据模型 PDM 物理数据模型(Physical Data Model,PDM)是以常用的 DBMS(数据库管理系统)理论为基础, 将 CDM/LDM 中所建立的现实世界模型生成相应的 DBMS 的 SQL 语言脚本,利用该 SQL 脚本在数 据库中产生现实世界的存储结构(表、约束等),并保证数据在数据库中的完整性和一致性。 (1)熟悉 PDM 示例 基本步骤:启动 PowerDesigner,选择【File】→【Open】→【Examples】→【project.pdm】,即 可打开逻辑数据模型示例,如图 1 所示; 图 1 物理数据模型示例 任务 1:图 1 是关于员工数据相关的物理结构设计,请描述该 PDM 使用的对象有哪些(建议用 中文),并将结果填写在表 1 中; 表 1 PDM 对象描述 对象 内容 备注 如 表 具体表的中文名称 如 规则 (2)CDM 示例生成 PDM 基本步骤: 第一步:打开 CDM 示例。启动 PowerDesigner,选择【File】→【Open】→【Examples】→ 【project.cdm】,即可打开概念数据模型示例; 第二步:检查 CDM 示例。选择菜单栏【Tools】→【Check Model】,即可打开“检查模型参数
《数据库规划与设计》实验指导/实验六物理数据模型的创建及管理 3 设置”窗口,选择“ Option”选项中每个要进行检查的节点,单击【确定】即可 第三步:将CDM转换为PDM。如果CDM检查无误后,选择菜单栏【 Tools】→【 Generate Physical Data model】→【 Generate new Physical Data Model】,即可打开“物理数据模型生成”窗口,选择 DBMS,如“ Microsoft SQL Server2000”,并输入物理数据模型的名称及代码,在“ Selection”选项 中选择需转换的实体; 第四步:设置“ Detail”选项,确定“ Option”选项中选择是否检査模型、保存依赖等,选择索 引的命名方式,以及外键选项中, Update rule和 Delete rule是否选择“ Cascade”,外键约束的名称 命名,默认选择“%3 PARENT%% COLUMN%”等,具体如图2所示; General Detail Target Nodels selection 回 Check model 回 Save generation dependenciesInde 口 Convert names nto codes PX index names:ZTABLE*_PK AK index names:*TABLE*_AK Enable fransformations EK index names:2REFR*_FK Update rulec FK column 来3 PARENT之 COLUMN of confect 确定□取消应用Q)匚帮助 图2设置“ Detail”选项 第五步:设置完成后,单击【确定】即可开始CDM向PDM模型的转换,转换后的PDM初始 界面如图3所示 = 图3PDM模型的初始图片 任务1:在CDM向PDM转换过程中,请设置外键约束中更新和删除的不同类型及它们的作用, 并将结果填写在表2中; 管理科学与工程学科/共8页第3页
《数据库规划与设计》实验指导 /实验六 物理数据模型的创建及管理 3 管理科学与工程学科 / 共 8 页,第 3 页 设置”窗口,选择“Option”选项中每个要进行检查的节点,单击【确定】即可; 第三步:将 CDM 转换为 PDM。如果 CDM 检查无误后,选择菜单栏【Tools】→【Generate Physical Data Model】→【Generate new Physical Data Model】,即可打开“物理数据模型生成”窗口,选择 DBMS,如“Microsoft SQL Server 2000”,并输入物理数据模型的名称及代码,在“Selection”选项 中选择需转换的实体; 第四步:设置“Detail”选项,确定“Option”选项中选择是否检查模型、保存依赖等,选择索 引的命名方式,以及外键选项中,Update rule 和 Delete rule 是否选择“Cascade”,外键约束的名称 命名,默认选择“ %.3:PARENT%_%COLUMN% ”等,具体如图 2 所示; 图 2 设置“Detail”选项 第五步:设置完成后,单击【确定】即可开始 CDM 向 PDM 模型的转换,转换后的 PDM 初始 界面如图 3 所示; 图 3 PDM 模型的初始图片 任务 1:在 CDM 向 PDM 转换过程中,请设置外键约束中更新和删除的不同类型及它们的作用, 并将结果填写在表 2 中;
《数据库规划与设计》实验指导/实验六物理数据模型的创建及管理 表2PDM中外键约束转换类型 类型 中文 作用 如 Restrict 如 Cascade 任务2:在PDM中,主要包括了数据表、规则、域、关系等对象,请依次查看所有对象的SQL 语句,其中数据表 Employee的对应的SQL语句如表3所示,请对相应的SQL语句进行注释,并将 结果填写在对应空格内 查看SQL语句步骤:【双击数据表对象】→【 Proview】 表3数据表 Employee对应SQL语句 if exists(select 1 from dbo. sysreferences r join dbo. sysobjects o on(o id =r consti and o type=F) where r. fkeyid =object id( C EMPLOYEE)and o name=FK C EMPLOY BELONGS T C DIVISI) alter table C EMPlOYee drop constraint FK_C_ EMPLOY BELONGS_TC_ DIVIsI if exists(select I from dbo. sysreferences r join dbo. sysobjects o on(o id =rconsti and o type=F) where r. fkeyid =object id(C EMPLOYEE)and o. name=FK C EMPLOY CHIEF C EMPLOY,) alter table C EmPloyee drop constraint FK_C_EMPLOY_ CHIEF_C_ EMPLOY if exists(select I from dbo. sysreferences r join dbo. sysobjects o on(o id =r consid and o type=F) where r. fkeyid =object id( C_ MEMBEr) and o name =FKC_ MEMBER MEMBER_ C EMPLOY) alter table C member drop constraint FK C MEMBER MEMBER C_ EMPLOY if exists(select 1 from dbo. sysreferences r join dbo. sysobjects o on(o id=rconsid and o type=F) where r. fkeyid = object id(C PARTICIPATE)and o name K C PARTIC WORKS ON C EMPLOY) alter table C Participate drop constraint FK C PARTIC WORKS ON C EMPLOY if exists(select 1 from dbo. sysreferences r join dbo. sysobjects o on(oid =r consti and o type=F) 管理科学与工程学科/共8页第4页
《数据库规划与设计》实验指导 /实验六 物理数据模型的创建及管理 4 管理科学与工程学科 / 共 8 页,第 4 页 表 2 PDM 中外键约束转换类型 类型 中文 作用 如 Restrict 如 Cascade 任务 2: 在 PDM 中,主要包括了数据表、规则、域、关系等对象,请依次查看所有对象的 SQL 语句,其中数据表 Employee 的对应的 SQL 语句如表 3 所示,请对相应的 SQL 语句进行注释,并将 结果填写在对应空格内; 查看 SQL 语句步骤:【双击数据表对象】→【Proview】; 表 3 数据表 Employee 对应 SQL 语句 if exists (select 1 from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = 'F') where r.fkeyid = object_id('C_EMPLOYEE') and o.name = 'FK_C_EMPLOY_BELONGS_T_C_DIVISI') alter table C_EMPLOYEE drop constraint FK_C_EMPLOY_BELONGS_T_C_DIVISI go /* */ if exists (select 1 from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = 'F') where r.fkeyid = object_id('C_EMPLOYEE') and o.name = 'FK_C_EMPLOY_CHIEF_C_EMPLOY') alter table C_EMPLOYEE drop constraint FK_C_EMPLOY_CHIEF_C_EMPLOY go /* */ if exists (select 1 from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = 'F') where r.fkeyid = object_id('C_MEMBER') and o.name = 'FK_C_MEMBER_MEMBER_C_EMPLOY') alter table C_MEMBER drop constraint FK_C_MEMBER_MEMBER_C_EMPLOY go /* */ if exists (select 1 from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = 'F') where r.fkeyid = object_id('C_PARTICIPATE') and o.name = 'FK_C_PARTIC_WORKS_ON_C_EMPLOY') alter table C_PARTICIPATE drop constraint FK_C_PARTIC_WORKS_ON_C_EMPLOY go /* */ if exists (select 1 from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = 'F')
《数据库规划与设计》实验指导/实验六物理数据模型的创建及管理 where r. fkeyid=object id(C PROJECT)and o. name =FK C PROJEC IS RESPON C EMPLOY) alter table C Project drop constraint FK_C_PROJEC_IS_ RESPON_C_ EMPLOY if exists(select 1 from dbo. sysreferences r join dbo. sysobjects o on(o id =r consti and o type =F where r. fkeyid =object id(C_ USED) and o name=FKC USED USED C EMPLOY ter table C USED drop constraint FK_C_USED_ USED_C_ EMPLOY if exists(select I from sysing where id =object id(C EMPLOyee nd name =BELONGS TO FK and indid >0 and indid <255) drop index C EMPLOYEE BELONGS TO FK if exists(select 1 from sysindexes where id =object id(C EMPLOYEE) name =CHIEF FK indid>0 and indid <255) drop index C EMPLOYEE. CHIEF FK if exists(select 1 from sysobjects here id =object id(C EMPLOYEE drop table C EMPLOYEE A Table: C EMPLOYEE create table C EMPLOYEE( EMPNUM not null C E EMPNUM ID 管理科学与工程学科/共8页第5页
《数据库规划与设计》实验指导 /实验六 物理数据模型的创建及管理 5 管理科学与工程学科 / 共 8 页,第 5 页 where r.fkeyid = object_id('C_PROJECT') and o.name = 'FK_C_PROJEC_IS_RESPON_C_EMPLOY') alter table C_PROJECT drop constraint FK_C_PROJEC_IS_RESPON_C_EMPLOY go /* */ if exists (select 1 from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = 'F') where r.fkeyid = object_id('C_USED') and o.name = 'FK_C_USED_USED_C_EMPLOY') alter table C_USED drop constraint FK_C_USED_USED_C_EMPLOY go /* */ if exists (select 1 from sysindexes where id = object_id('C_EMPLOYEE') and name = 'BELONGS_TO_FK' and indid > 0 and indid < 255) drop index C_EMPLOYEE.BELONGS_TO_FK go /* */ if exists (select 1 from sysindexes where id = object_id('C_EMPLOYEE') and name = 'CHIEF_FK' and indid > 0 and indid < 255) drop index C_EMPLOYEE.CHIEF_FK go if exists (select 1 from sysobjects where id = object_id('C_EMPLOYEE') and type = 'U') drop table C_EMPLOYEE go /* */ /*==============================================================*/ /* Table: C_EMPLOYEE */ /*==============================================================*/ create table C_EMPLOYEE ( EMPNUM ID not null, C_E_EMPNUM ID null