1、2.能够使用PowerDesigner在CDM中定义和使用继承。3.能够合理的进行数据库物理设计并确定数据库的存储结构。4.能够创建和使用区分表。实验内容:1、定义并使用域1.打开概念数据模型SIM 选择FileOpen命令,打开实验2中创建的概念数据模型SIM。2.打开List of Domains窗口 选择ModelDomains命令,出现List of Domains窗口,如图所示,如果已经定义了域,则会显示出来。 3.创建一个域单击Add a Row按钮,第一个空行处开始出现一个箭头,Name和Code中都被赋予了默认值。设置Name为Sex,Code与Name相同即可,单击Apply
2、按钮,确认新创建的域,如图:4.打开域的属性设置窗口选择sex域,单击工具栏上的Properties按钮,打开域的属性窗口,如图所示:5.指定域的数据类型和长度单击Data Type下拉列表框后面的三个点按钮,将显示Standard Data Types对话框,在该对话框中指定应用到sex域的数据类型为characters,长度为2,然后单击ok按钮,如图所示:6.设置业务规则选择Rules选项卡,再单击工具栏上的Create an Object按钮,出现业务规则属性设置窗口,在General选项卡中设置Name为sex_r。Code与name一致即可。在Expression选项卡中设置规则表
3、达式,单击确定按钮,如图所示:7.在模型对象浏览区查看域 在模型对象浏览区展开Domains选项,可以查看新建的sex域。8.实体属性关联到域在CDM中,双击实体student,出现实体属性设置框口,选择Attributes选项卡,单击Ssex所在行的Domain列,从下拉列表中选择sex域,单击“应用”按钮,这是,Ssex所在的行的Data Type和Length将显示sex域的相应特性值,并且变为灰色,如图所示:参照前面的操作,把实体teacher的Tsex关联到sex域上。把实体student的Ssex域。Teacher的Tsex域关联到sex域上后,约束Ssex_r和 Tsex_r就可
4、以删除了。保存修改后的CDM,然后转换为PDM。二、定义继承(概括)学生是一个实体型,本科生、研究生也是实体型。本科生、研究生均是学生的子集,学生为超类,本科生、研究生为学生的子类。本科生、研究生继承了学生类型的属性,并可以增加自己的特殊属性。学生实体型的属性有学号、姓名、性别、出生日期、院系和专业,学号为主键。本科生实体型的特殊属性有班级;研究生实体型的特殊属性有研究方向,导师。1.创建实体型参照实验2,新建一个CDM,命名为student;创建三个实体型,分别命名为student、u_student和postgradute,依次代表学生,本科生和研究生实体型,如图所示:创建student实
5、体创建u_student实体创建postgradute实体型2.创建继承单击设计元素面板上的Inheritance工具,将光标至于实体postgradute,然后把光标拖动到student上,在两个实体之间出现一个继承联系。继承联系在中间有一个半圆和一个指向实体student的箭头,表示student为父实体,postgradute为子实体。如图所示:Student与postgradute之间的继承联系将光标置于u_student实体,然后拖到上图的半圆上,如图:Student与u_student之间的继承联系3.设置继承的属性单击设计元素面板上的Pointer工具,双击半圆,出现继承的属性设
6、置窗口。(1)在General选项卡中,设置Name为different_student,Code与Name一致即可。确认Parent为student。(2)选择Children选项卡,确认Child Entity为postgradute和u_student。(3)选择Generation选项卡,设置生成模式。生成模式定义了继承的物理实现,即描述了继承联系中的哪些实体到PDM中应该生成相应的表。下面分别设置为三种不同的方式,并转换为PDM,观察PDM中表结构。生成模式1:选择Generate parent复选框,同时选择Generate children复选框,并进一步选择Inherit on
7、ly primary attributes单选按钮,如图所示:生成模式1单击确定“按钮”。打开Tools菜单,选择Generate Physical Data Model命令,创建PDM,设置DBMS为Microsoft SQL Server 2008,设置Name为student_pdm1,单击“确定”按钮。下图显示了PDM,观察三个表的结构。由生成模式1生成的PDM生成模式2:不选择Generate parent复选框,只选择Generate children复选框,并进一步选择Inherit all attributes单选按钮,如图所示:生成模式2 单击“确定”按钮。打开Tools菜单
8、,创建PDM,将Name名设为student_pdm2,观察两个表结构,并与生成模式1进行对比。由生成模式2生成的PDM生成模式3:选择Generate parent复选框,不选择Generate children复选框,在Specifying attributes下面的属性列表中添加一个属性,Name为tag,Code与Name一致即可,类型为integer。这种情况下,只生成一个表,而tag的作用是区分每个子实体的实例。Specifying attributes只有在选择Generate parent复选框后,才能进一步设置。创建PDM,观察表结构,与生成模式1和2对比。生成模式3由生成模
9、式3生成的PDM3、数据库的文件与文件组1.了解数据库文件和文件组文件主要有三种类型:主要文件/主文件,次要文件/辅助文件,事务日志。文件组:每个数据库必须而且只能有一个主要文件组,此文件组包含主要数据文件和未放入其他文件组的所有次要文件。可以创建用户定义的文件组,用于将数据文件集合起来,以便于管理,数据分配和放置。2.创建包含多个文件,文件组的数据库创建数据库,数据库名称为mydb,主文件逻辑名称采用默认值,即mydb,主文件物理名称和位置也采用默认值。分别在两个磁盘驱动器上创建文件Data1.ndf和Date2.ndf,然后将特们分配给文件组FG_1。接下来,可以明确的在FG_1上创建一个
10、表,那么对表中数据的查询将分散到两个磁盘上,从而提高性能。具体实现过程如下:进入“新建数据库”窗口,设置数据库名称为mydb,主文件和日志文件相关属性默认即可。设置数据库名称以及主文件,日志文件相关属性接下来单击一个添加按钮,增加一个数据文件,逻辑名称为Data1,路径为D:Data,默认物理文件名为Data1.ndf。该文件所属文件组为默认的PRIMARY,单击PRIMARY,则出现下拉列表框,在下拉列表框中选择“”选项,则出想新建文件组对话框,如图所示,设置新文件组名称为“FG_1”,单击“确定”按钮。设置新文件组的名称按照同样的方法再添加一个Data2数据文件,设置完毕后如图:次要文件设
11、置单击工具栏中“脚本”按钮旁边的下三角按钮,从中选择“将操作脚本保存到新建查询窗口选项”,则对应的SQL语句和命令将出现在Management Studio的查询编辑器中。单击确定,完成数据库的创建。3.在文件组FG_1上创建表新建一个表,选择“视图”“属性”命令,在打开的“属性”窗口设置“Text/Image文件组”和“文件组或分区方案名称”均为FG_1,然后制定表的属性及类型并保存即可。如图:4、区分表1.添加多个新的文件和文件组给mydb数据库添加两个文件组:FG_I_M和 FG_N_Z。创建数据文件FIle_I_M到文件组FG_I_M中,创建数据文件FIle_I_Z到文件组FG_N_Z
12、中,SQL语句和命令如下所示,在Management Studio中新建查询,并执行这段代码。USE MasterALTER DATABASE mydb ADD FILEGROUP FG_I_MGOALTER DATABASE mydbADD FILE(NAME=NFILE_I_M,FILENAME=D:D:ProgramFilesMicrosoftSQLServerMSSQL10_50.MSSQLSERVERMSSQLDATAFile_I_M.ndf)TO FILEGROUP FG_I_MALTER DATABASE mydb ADD FILEGROUP FG_N_ZProgramFiles
13、MicrosoftSQLServerMSSQL10_50.MSSQLSERVERMSSQLDATAFile_N_Z.ndfTO FILEGROUP FG_N_Z2.创建分区函数下面的分区函数可以获得三个分区:AH,IM,NZ。CREATE PARTITION FUNCTION StaffNameRangePen(varchar(100)ASRANGE LEEF FOR VALIES (H,M)3.创建分区SchemeUSE mydbCREATE PARTITION FUNCTION StaffNamePSchemePARTITION StaffNameRangePenTO (primary,F
14、G_I_M,FG_N_Z)4.创建分区表IF OBJECT_ID(NStaff) IS NOT NULLDROP TABLE dbo.Satff;CREATE TABLEdbo.StaffStaffName varchar(100) NOT NULLON StaffNamePScheme(StaffName)CREATE CLUSTERED INDEX IX_StaffName ON Staff(StaffName)5.插入一些测试数据INSERT INTO dbo.StaffSELECT FirestName FROM mydb.Person.Contact6.查看数据分布情况运行下面的代码,看看数据的分布情况,三个分区的数据量都差不多。5、索引的使用和使用原则1.认识索引 数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引分为聚簇索引和非聚簇索引两种,聚簇索引 是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1