当前位置:文档之家› 实验内容

实验内容

实验内容011)根据现实世界的组织和工作过程将其转化成E-R图描述。

其中一个员工属于一个部门,一个部门有多个员工;一个员工可同时参加多个项目,一个项目有多个员工一起开发。

①确定实体和实体的属性。

②确定员工和部门的联系、员工和项目间的联系,给联系命名并指出联系的类型。

③确定联系本身的属性。

④画出员工、部门、项目组成的E-R图。

2)将E-R图转换为关系表。

①将实体转化为关系表。

②将联系转化为关系表。

③写出表的关系模式并标明各自的主码和外码。

④确定主要属性的约束条件。

3)设计关系表中的模拟数据。

实体转化的表不少于8条记录,联系转化的表不少于15条记录。

4)设计对上述关系表的基本操作任务。

实验内容021)安装SQL Server 2005。

2)查看安装SQL Server 2005的目录结构。

3)注册服务器并和数据库连接。

4)查看设置安全认证模式①打开对象资源管理器。

②用右键单击要设置认证模式的服务器,从快捷菜单中选择“属性”选项,则出现SQL Server 属性对话框。

5)查询编辑器的使用。

①选择要执行的数据库“master”。

②在编辑器中输入以下语句,注意观察录入文本的颜色。

SELECT * FROM sysobjects WHERE name='sysrowsets'③使用查询菜单的“执行”命令,执行SQL脚本。

④将SQL脚本以文件名SQL02-01.SQL保存。

6)创建和使用链接服务器。

①在d:\samples上建立mysheet.xls文件,输入数据。

②在查询编辑器中输入【例2-2】的例子。

③用Windows本地用户定义登录映射。

④执行查询⑤用SQL Server本地用户定义登录映射。

⑥执行查询。

7)分离用户数据库,然后在附加进系统。

实验内容031)用对象资源管理器创建数据库数据库名:xmgl数据文件1的逻辑名为:xmgl1,物理名为:xmgl1.mdf,存放在“D:\xmgl”目录下,初始大小为:1 MB,增长方式为自动增长,每次增加1MB。

数据文件2的逻辑名为:xmgl2,物理名为:xmgl2.ndf,存放在与主数据文件相同的目录下;文件大小为3MB;增长方式为自动增长,每次增加10%。

日志文件1的逻辑名为:xmrz1,物理名为:xmrz1.ldf,存放在“D: \xmrz”目录下,初始大小为:1MB,增长方式为自动增长,每次增加10%。

①右击对象资源管理器中的“数据库”项;②在弹出的快捷菜单中选择“新建数据库”。

2)用对象资源管理器查看和修改数据库①在对象资源管理器里展开“数据库”;②选定“xmgl”数据库,右击即可进入“xmgl”数据库属性界面进行查看和修改。

3)用SQL命令创建数据库,数据库要求同上。

①进入查询编辑器②输入以下程序USE masterGOIF EXISTS(SELECT * FROM sysdatabases WHERE name='xmgl')DROP databanse xmglGOcreate database xmglon primary(name= xmgl1,filename='d:\xmgl\xmgl1.mdf',size=1,filegrowth=1),(name= xmgl2,filename='d:\xmgl\xmgl2.ndf',size=3,filegrowth=10%)log on(name= xmrz1,filename='d:\xmrz\xmrz1.ldf',size=1,filegrowth=10%)3)用SQL命令修改数据库。

在xmgl增加一个名为“xmgl3”的数据文件,在“F:\xmgl”目录下增加,文件名为“xmgl3.ndf”,初始大小为3MB,增长方式为自动增长,每次增加15%。

删除“xmgl2”。

①进入查询编辑器②输入以下程序alter database xmgladd file(name= xmgl3, filename='F:\xmgl\xmgl3.ndf',size=3,filegrowth=15%)将数据库“xmgl”中的文件xmgl2和刚增加的xmgl3删掉。

①进入查询编辑器②输入以下程序alter database xmgl remove file xmgl2alter database xmgl remove file xmgl34)删除数据库读者自己可以创建另外一个数据库,用企业管理器和SQL命令“DROP database 数据库名”分别练习。

实验内容041)创建表①使用对象资源管理器创建完成本书第1章五个表的创建,参看本章实例。

②使用T-SQL语句创建有一个项目管理(xmgl)数据库,现有四张表,分别是部门表(部门号,部门名,部门电话,部门地址,部门人数);员工表(员工号,姓名,性别,出生年月,技术职称,工资,所在部门号);项目表(项目编号,项目名称,所在地方,项目类型);员工参与项目(员工号,项目编号,职责)。

其中有下划线的字段为关键字,斜字的字段是外关键字。

除工资为数值类型、出生年月为日期类型外,其余字段均为字符类型。

2)从sysobjects、sysindexes和syscolumns,sysrefrences表中查看关于上述创建的表的信息。

3)使用对象资源管理器定义下面的约束。

①员工号是四位数字串,其中第一位和最后一位是取1-9之间的数字,其他是0-9。

②项目编号是以字母J开始的其它是数字的4位字符串。

③约束性别的取值为…男‟、…女‟,且非空,缺省是‘男’。

④约束电话号码的格式:以8892开始的,第5位取234中的一个,其它是任意数字的8位数字串。

4)使用SQL语言增加修改部分表及字段①在部门表中增加部门领导字段(注意和员工号同域);在项目表中增加项目主管字段(注意和员工号同域);并考虑相应的外键约束。

②在员工表中增加技术职称和工资字段,其中工资字段为数值类型。

③在项目表中增加开工日期和完工日期字段,类型为日期类型。

④增加约束工程开工日期小于计划完工日期。

⑤修改部门人数字段类型为整型。

⑥删除项目表中的项目类型字段。

实验内容051)调出第4章实验创建的四个表。

方法:附加XMGL数据库或运行创建4个表的SQL语句。

2)用SQL增加数据语句输入四个表中数据。

其中部门表不得少于5个,员工表不得少于10个,项目表不得少于10个,员工参与项目的情况表不得少于20个。

注意:输入数据时应先输入主表数据,再输入有外键的数据;同时注意各表已经定义约束条件。

3)设计查询语句并在查询编辑器中进行查询。

①求参加某个项目的员工姓名。

②查询某个职工所参加的项目的项目号,项目名称以及项目所在地方。

③查询参与了所有项目的员工姓名和员工所在的部门。

④查询没有参与任何一个项目的员工姓名和所在部门。

⑤查询所有部门都有员工参与的项目。

⑥查询参加了在上海的项目的所有职工的编号、姓名和所在部门。

⑦列出每个部门的平均工资、最高工资、最低工资,工资合计,以及整个单位职工的平均工资总计。

⑧对所有项目主管的工资增加10%。

实验内容061)使用对象资源管理器创建、管理索引①为员工表创建一个索引名为“emp_id”的唯一性非聚集索引,索引关键字是“员工号”,填充因子80 % 。

②重命名索引,将索引“emp_id”重命名为“员工表_员工号”。

③删除索引“员工表_员工号”。

2)使用T-SQL语句创建、管理索引①为员工表创建一个索引名为“emp_id”的唯一性非聚集索引,索引关键字是“员工号”,填充因子80 % 。

②重命名索引,将索引“emp_id”重命名为“员工表_员工号”。

③为员工参与项目表创建一个索引名为“员工_项目_index”的非聚集复合索引,索引关键字为“员工号”,升序,项目编号,降序,填充因子50%。

④删除索引“员工表_员工号”和“员工_项目_index”。

3)索引前后的执行计划①删除员工表中员工号上的主键。

按员工姓名和项目名称查询对应的职责,然后观察执行计划信息,计算总的I/O和CPU开销。

(员工表和员工参与项目表中的员工号都没有索引)②为员工参与项目表创建一个索引名为“员工参与项目_员工号”的非聚集索引,索引关键字为“员工号”,升序;按员工姓名和项目名称查询对应的职责,然后观察执行计划信息,计算总的I/O和CPU开销。

(员工表中员工号没索引,员工参与项目表中的员工号有非聚集索引)③重建员工表中员工号上的主键,删除“员工参与项目_员工号”的非聚集索引。

按员工姓名和项目名称查询对应的职责,然后观察执行计划信息,计算总的I/O和CPU开销。

(员工表中员工号有聚集索引,员工参与项目表中的员工号没有非聚集索引)④为员工参与项目表创建一个索引名为“员工参与项目_员工号”的非聚集索引,索引关键字为“员工号”,升序。

按员工姓名和项目名称查询对应的职责,然后观察执行计划信息,计算总的I/O和CPU开销。

(员工表中员工号有聚集索引,员工参与项目表中的员工号有非聚集索引)实验内容071)比较自动事务模式和显式事务模式执行SQL的不同。

①以自动事务模式执行下面SQL语句insert into员工表values ('2011','杨阳','男','1990-07-20', '销售员',3800,'1004')--注意部门号'1004'必须是部门表里有的部门号,即要满足外键约束。

select times=1,*from员工表update员工表set工资=4000 where员工号='2011'select times=2,*from员工表delete from员工表where员工号='2011'select times=3,*from员工表②以显式事务模式执行SQL语句--进入显式事务模式begin transaction--插入数据insert into员工表values ('2011','杨阳','男','1990-07-20', '销售员',3800,'1004')select times=4,*from员工表--执行提交操作commit transactiongoselect times=5,*from员工表begin transaction--修改数据update员工表set工资=4000 where员工号='2012'select times=6,*from员工表--执行回退操作rollback transactiongoselect times=7,*from员工表begin transaction--删除数据delete from 员工表where员工号='2012'select times=8,*from员工表--执行回退操作rollback transactiongoselect times=9,*from员工表2)对员工表结构进行修改,增加最高学历和毕业院校字段,如果成果提交,否则取消。

相关主题