




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、XX实验报告学号 : 系别专业班级姓 名课程名称课程类型学时数实验名称域、继承、文件、分区表、索引的使用实验目的:1. 能够使用PowerDesigner在PDM中定义和使用域。2. 能够使用PowerDesigner在CDM中定义和使用继承。3. 能够合理的进行数据库物理设计并确定数据库的存储结构。4. 能够创建和使用区分表。实验内容:1、 定义并使用域1. 打开概念数据模型SIM 选择FileOpen命令,打开实验2中创建的概念数据模型SIM。2. 打开List of Domains窗口 选择ModelDomains命令,出现List of Domains窗口,如图所示,如果已经定义了域,
2、则会显示出来。 3.创建一个域单击Add a Row按钮,第一个空行处开始出现一个箭头,Name和Code中都被赋予了默认值。设置Name为Sex,Code与Name相同即可,单击Apply按钮,确认新创建的域,如图: 4. 打开域的属性设置窗口选择sex域,单击工具栏上的Properties按钮,打开域的属性窗口,如图所示: 5. 指定域的数据类型和长度单击Data Type下拉列表框后面的三个点按钮,将显示Standard Data Types对话框,在该对话框中指定应用到sex域的数据类型为characters,长度为2,然后单击ok按钮,如图所示:6. 设置业务规则选择Rules选项卡
3、,再单击工具栏上的Create an Object按钮,出现业务规则属性设置窗口,在General选项卡中设置Name为sex_r。Code与name一致即可。在Expression选项卡中设置规则表达式,单击确定按钮,如图所示:7. 在模型对象浏览区查看域 在模型对象浏览区展开Domains选项,可以查看新建的sex域。8. 实体属性关联到域在CDM中,双击实体student,出现实体属性设置框口,选择Attributes选项卡,单击Ssex所在行的Domain列,从下拉列表中选择sex域,单击“应用”按钮,这是,Ssex所在的行的Data Type和Length将显示sex域的相应特性值,
4、并且变为灰色,如图所示:参照前面的操作,把实体teacher的Tsex关联到sex域上。 把实体student的Ssex域。Teacher的Tsex域关联到sex域上后,约束Ssex_r和 Tsex_r就可以删除了。保存修改后的CDM,然后转换为PDM。二、定义继承(概括)学生是一个实体型,本科生、研究生也是实体型。本科生、研究生均是学生的子集,学生为超类,本科生、研究生为学生的子类。本科生、研究生继承了学生类型的属性,并可以增加自己的特殊属性。学生实体型的属性有学号、姓名、性别、出生日期、院系和专业,学号为主键。本科生实体型的特殊属性有班级;研究生实体型的特殊属性有研究方向,导师。1.创建实
5、体型参照实验2,新建一个CDM,命名为student;创建三个实体型,分别命名为student、u_student和postgradute,依次代表学生,本科生和研究生实体型,如图所示:创建student实体创建u_student实体创建postgradute实体型2. 创建继承单击设计元素面板上的Inheritance工具,将光标至于实体postgradute,然后把光标拖动到student上,在两个实体之间出现一个继承联系。继承联系在中间有一个半圆和一个指向实体student的箭头,表示student为父实体,postgradute为子实体。如图所示:Student与postgradute
6、之间的继承联系将光标置于u_student实体,然后拖到上图的半圆上,如图:Student与u_student之间的继承联系3. 设置继承的属性单击设计元素面板上的Pointer工具,双击半圆,出现继承的属性设置窗口。(1) 在General选项卡中,设置Name为different_student,Code与Name一致即可。确认Parent为student。(2) 选择Children选项卡,确认Child Entity为postgradute和u_student。(3) 选择Generation选项卡,设置生成模式。生成模式定义了继承的物理实现,即描述了继承联系中的哪些实体到PDM中应该
7、生成相应的表。下面分别设置为三种不同的方式,并转换为PDM,观察PDM中表结构。生成模式1:选择Generate parent复选框,同时选择Generate children复选框,并进一步选择Inherit only primary attributes单选按钮,如图所示: 生成模式1单击确定“按钮”。打开Tools菜单,选择Generate Physical Data Model命令,创建PDM,设置DBMS为Microsoft SQL Server 2008,设置Name为student_pdm1,单击“确定”按钮。下图显示了PDM,观察三个表的结构。 由生成模式1生成的PDM生成模式
8、2:不选择Generate parent复选框,只选择Generate children复选框,并进一步选择Inherit all attributes单选按钮,如图所示: 生成模式2 单击“确定”按钮。打开Tools菜单,创建PDM,将Name名设为student_pdm2,观察两个表结构,并与生成模式1进行对比。 由生成模式2生成的PDM生成模式3:选择Generate parent复选框,不选择Generate children复选框,在Specifying attributes下面的属性列表中添加一个属性,Name为tag,Code与Name一致即可,类型为integer。这种情况下,
9、只生成一个表,而tag的作用是区分每个子实体的实例。Specifying attributes只有在选择Generate parent复选框后,才能进一步设置。创建PDM,观察表结构,与生成模式1和2对比。 生成模式3 由生成模式3生成的PDM3、 数据库的文件与文件组1. 了解数据库文件和文件组文件主要有三种类型:主要文件/主文件,次要文件/辅助文件,事务日志。文件组:每个数据库必须而且只能有一个主要文件组,此文件组包含主要数据文件和未放入其他文件组的所有次要文件。可以创建用户定义的文件组,用于将数据文件集合起来,以便于管理,数据分配和放置。2. 创建包含多个文件,文件组的数据库创建数据库,
10、数据库名称为mydb,主文件逻辑名称采用默认值,即mydb,主文件物理名称和位置也采用默认值。分别在两个磁盘驱动器上创建文件Data1.ndf和Date2.ndf,然后将特们分配给文件组FG_1。接下来,可以明确的在FG_1上创建一个表,那么对表中数据的查询将分散到两个磁盘上,从而提高性能。具体实现过程如下:进入“新建数据库”窗口,设置数据库名称为mydb,主文件和日志文件相关属性默认即可。如图所示:设置数据库名称以及主文件,日志文件相关属性接下来单击一个添加按钮,增加一个数据文件,逻辑名称为Data1,路径为D:Data,默认物理文件名为Data1.ndf。该文件所属文件组为默认的PRIMA
11、RY,单击PRIMARY,则出现下拉列表框,在下拉列表框中选择“<新建文件组>”选项,则出想新建文件组对话框,如图所示,设置新文件组名称为“FG_1”,单击“确定”按钮。 设置新文件组的名称按照同样的方法再添加一个Data2数据文件,设置完毕后如图:次要文件设置单击工具栏中“脚本”按钮旁边的下三角按钮,从中选择“将操作脚本保存到新建查询窗口选项”,则对应的SQL语句和命令将出现在Management Studio的查询编辑器中。单击确定,完成数据库的创建。3. 在文件组FG_1上创建表新建一个表,选择“视图”“属性”命令,在打开的“属性”窗口设置“Text/Image文件组”和“文
12、件组或分区方案名称”均为FG_1,然后制定表的属性及类型并保存即可。如图: 4、 区分表1. 添加多个新的文件和文件组给mydb数据库添加两个文件组:FG_I_M和 FG_N_Z。创建数据文件FIle_I_M到文件组FG_I_M中,创建数据文件FIle_I_Z到文件组FG_N_Z中,SQL语句和命令如下所示,在Management Studio中新建查询,并执行这段代码。USE MasterALTER DATABASE mydb ADD FILEGROUP FG_I_MGOALTER DATABASE mydbADD FILE(NAME=NFILE_I_M,FILENAME=D:D:Progr
13、amFilesMicrosoftSQLServerMSSQL10_50.MSSQLSERVERMSSQLDATAFile_I_M.ndf)TO FILEGROUP FG_I_MGOALTER DATABASE mydb ADD FILEGROUP FG_N_ZGOALTER DATABASE mydbADD FILE(NAME=NFILE_I_M,FILENAME=D:D:ProgramFilesMicrosoftSQLServerMSSQL10_50.MSSQLSERVERMSSQLDATAFile_N_Z.ndf)TO FILEGROUP FG_N_ZGO2. 创建分区函数下面的分区函数可
14、以获得三个分区:AH,IM,NZ。CREATE PARTITION FUNCTION StaffNameRangePen(varchar(100)ASRANGE LEEF FOR VALIES (H,M)GO3. 创建分区SchemeUSE mydbCREATE PARTITION FUNCTION StaffNamePSchemeASPARTITION StaffNameRangePenTO (primary,FG_I_M,FG_N_Z)GO4. 创建分区表USE mydbIF OBJECT_ID(NStaff) IS NOT NULLDROP TABLE dbo.Satff;CREATE
15、TABLEdbo.Staff(StaffName varchar(100) NOT NULL)ON StaffNamePScheme(StaffName)GOCREATE CLUSTERED INDEX IX_StaffName ON Staff(StaffName)GO5. 插入一些测试数据INSERT INTO dbo.StaffSELECT FirestName FROM mydb.Person.Contact6. 查看数据分布情况运行下面的代码,看看数据的分布情况,三个分区的数据量都差不多。5、 索引的使用和使用原则1. 认识索引 数据库索引好比是一本书前面的目录,能加快数据库的查询速
16、度。索引分为聚簇索引和非聚簇索引两种,聚簇索引 是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引、主键索引和聚集索引。(1)唯一索引:唯一索引是不允许其中任何两行具有相同索引值的索引。当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在employee表中职员的姓(lname)上创建了唯一索引,则任何两个员工都不能同姓。(2)主键索引:数据库表经常有一列或多列组合,其值唯一标
17、识表中的每一行。该列称为表的主键。在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。(3)聚集索引:在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。(4)索引列:可以基于数据库表中的单列或多列创建索引。多列索引可以区分其中一列可能有相同值的行。 如果经常同时搜索两列或多列或按两列或多列排序时,索引也很有帮助。例如,如果经常在同一查询中为姓和名两列设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 暑期教师家访工作总结模版
- 医疗领域中医院感染控制的创新策略
- led屏幕施工合同范例
- 区块链技术在智慧城市中的安全应用建议
- 代理审计合同范例
- 医院感染控制与医疗安全风险管理
- 模式识别II-考试题A-2024-答案
- 临时护工合同范例
- 专利交易合同范例
- 人工智能在医学教育中的角色及其道德和法规责任
- 学校体育学(第三版)ppt全套教学课件
- 住建部《建筑业10项新技术(2017版)》解读培训课件
- 基于深度学习的问题链讲座课件(44张PPT)
- 水文学习题和答案解析
- 高效课堂新授课评价量化表
- 西安交通大学赵进全模拟电子技术基础第8-9章
- 维修手册震旦218现场
- 画法几何与阴影透视复习题(DOC)
- 青岛市失业人员登记表
- 单片机端口扩展的方法
- 安全隐患自查自纠及整改台账
评论
0/150
提交评论