您的当前位置:首页数据库报告

数据库报告

来源:锐游网


实验报告书写要求

实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。

实验报告书写说明

实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。

填写注意事项

(1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。

(3)尽量采用专用术语来说明事物。

(4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。

实验报告批改说明

实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。

实验报告装订要求

实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。

2

实验项目名称: SQL Server概述及体系架构 实验学时: 3 同组学生姓名: 实验地点: 1320

实验日期: 2015.3.6 实验成绩: 批改教师: 批改时间:

3

一、实验目的和要求

1、熟悉Microsoft SQL Server 2005系统环境,包括发展历史、版本与组件及新特性; 2、了解客户/服务器、浏览器/服务器体系结构;

3、掌握系统数据库对象及构成、SQL Server 2005的常用管理工具; 4、熟悉SQL Server 2005 Management Studio平台及组件。

二、实验设备、环境

奔腾计算机;装有WINDOWS 2000 SERVER或WINDOWS 2003 SERVER及以上版本、SQL Server 2005中文版。

三、实验步骤

1、根据题目要求熟悉Microsoft SQL Server 2005环境,包括发展历史、版本、组件、新特性; 2、熟悉客户机/服务器和浏览器/服务器;

3、掌握系统数据库对象及构成、SQL Server 2005的常用管理工具;

4、掌握通过SQL Server Management Studio、配置管理器和windows服务管理器三种方式对数据库服务器的管理方法;

5、做完实验后写出本实验的实验报告,并将相关电子文档资料保存在以自己学号命名的文件夹中。

四、实验内容

(一)教师重点讲解并演示Microsoft SQL Server 2005环境及使用 (二)学生自己使用Microsoft SQL Server 2005环境,完成以下工作 1.进入SQL Server 2005进行启动、暂停和退出; 2.查看系统数据库及其内容;

3.查看SQL Server 2005 Management Studio平台及组件等操作,掌握通过SQL Server Management Studio、配置管理器和windows服务管理器三种方式对数据库服务器的管理方法。

五、问题解答及实验结果

实验内容:

1.进入SQL Server 2005进行启动、暂停和退出。

答:(1)通过SQL Server Management Studio对服务器进行管理

启动顺序为【开始】→【程序】→【SQL Server 2005】→正确登录服务器→右击服务器,选择暂停或者停止服务器;

(2)通过SQL Server Configuration Manager配置管理器进行管理

启动顺序为【开始】→【程序】→【SQL Server 2005】→【配置工具】→【SQL Server Configuration Manager】→【SQL Server Server】选择暂停或停止制定服务;SQL Server 配置管理器(configuration manager)是一种工具,用于管理与 SQL Server 相关联的服务、配置 SQL Server 使用的网络协议以及从 SQL Server 客户端计算机管理网络连接配置。

4

(3)通过【控制面板】→【管理工具】→【服务】→【SQL Server(MSSQLSERVER)】选择暂停或者停止服务器;

配置SQL Server 2005服务器;配置【常规】选项卡:产品版本、操作系统、平台等; 配置【安全性】选项卡:服务器身份验证等;

配置【权限】选项卡:用于授予或撤销账户对服务器的操作权限。

2.查看系统数据库及其内容。

答:启动顺序为【开始】→【程序】→【SQL Server 2005】→正确登录服务器,选择自己所需要了解的内容。

3.查看SQL Server 2005 Management Studio平台及组件等操作,掌握通过SQL Server Management Studio、配置管理器和windows服务管理器三种方式对数据库服务器的管理方法。

答:(1)SQL Server Management Studio是一个集成的环境,用于访问、配置和管理所有SQL Server 组件。SQL Server Management Studio 组合了大量图形工具和丰富的脚本编辑器,是开发和管理SQL Server数据库对象的有力工具。利用SQL Server Management Studio可以完成对SQL Server 2005的管理,如创建服务器组、注册服务器、配置服务器选项、创建和管理各种数据库对象,并可以调用其他管理工具。 (2)SQL Server配置管理器是数据库管理员管理与 SQL Server 相关联的服务,包含了SQL Server2005服务、SQL Server2005网络配置和SQL Native Client配置3个工具,提供数据库管理人员做服务启动、停止与监控、服务器端支持的网络协议,用户用来访问SQL Server的网络相关设置等工作。默认情况下,全文搜索、SQL Server代理、集成服务都没有启动。

(3)所有 SQL Server 2005 的安装都需要 Microsoft Internet Explorer 6.0 SP1 或更高版本,因为 Microsoft 管理控制台 (MMC) 和 HTML 帮助需要它。只需 Internet Explorer 的最小安装即可满足要求,并且不要求 Internet Explorer 是默认浏览器。

然而,如果只安装客户端组件且不需要连接到要求加密的服务器,则 Internet Explorer 4.01(Service Pack 2)即可满足要求。

六、实验体会和收获

SQL Sever 2005是Microsoft公司推出的新一代数据库管理与商业智能平台,是企业级的关系型数据库管理系统。SQL Sever 2005 是用于大规模联机事务处理 (OLTP)、数据仓库和电子商务应用的数据库平台;也是用于数据集成、分析和报表解决方案的商业智能平台。SQL Server 2005集成了.Net Framework框架,它包含许多组件,每个组件提供特定的服务,包括数据库引擎、集成服务、分析服务、报表服务。

此外,我们还学习了C/S和B/S两种体系结构。B/S和C/S各有千秋,它们都是当前非常重要的系统架构。在适用Internet、维护工作量方面,B/S比C/S要强得多;但在运行速度、数据安全、人机交互方面,B/S远不如C/S。

5

实验项目名称: 安装SQL Server 系统 实验学时: 3 同组学生姓名: 实验地点: 1320

实验日期: 2015.3.13 实验成绩: 批改教师: 批改时间:

6

一、实验目的和要求

1、了解安装SQL Server 2005环境需求;

2、掌握安装规划、安装过程的使用,加深对验证安装结果的理解; 3、熟练掌握新建服务器组;

4、配置服务器选项,能够结合具体应用解决实际问题。

二、实验设备、环境

奔腾计算机;装有WINDOWS 2000 SERVER或WINDOWS 2003 SERVER及以上版本、SQL Server 2005中文版。

三、实验步骤

1、熟悉安装SQL Server 2005的环境需求 2、安装SQL Server 2005企业版步骤 3、创建服务器组 4、注册服务器的管理

5、做完实验后写出本实验的实验报告,并将相关电子文档资料保存在以自己学号命名的文件夹中

四、实验内容

(一)教师重点讲解并演示Microsoft SQL Server 2005环境及使用 (二)学生写出实验内容、出现问题及解决方案,完成以下工作 1.安装SQL Server 2005企业版的安装过程; 2.创建服务器组;

要求学生:在SQL Server Management Studio中创建一个新的SQL Server服务器组,名称为NewGroup。 3. 注册服务器的管理;

要求学生:假设本地计算机上有一个SQL Server实例,实例名为“SecondServer”,在上题创建的服务器组中注册此实例。

4.写出如:服务器注册失败、无法连接服务器等的解决方案。

五、问题解答及实验结果

实验内容:

1.安装SQL Server 2005企业版的安装过程。

(1)请将 SQL Server 2005 DVD 插入 DVD 驱动器。也可以选用虚拟光驱。 (2)在自动运行的对话框中,单击“服务器组件、工具、联机丛书和示例”。

(3)在“最终用户许可协议”页上,阅读许可协议,再选中相应的复选框以接受许可条款和条件。接受许可协议后即可激活“下一步”按钮。若要继续,单击“下一步”。若要结束安装程序,请单击“取消”。 (4)在“SQL Server 组件更新”页上,安装程序将安装 SQL Server 2005 的必需软件。

(5)在“系统配置检查”(SCC) 页上,将扫描安装计算机,看是否存在可能阻止安装程序运行的情况。

7

(6)在“注册信息”页上的“姓名”和“公司”文本框中,输入相应的信息。若要继续,请单击“下一步”。 (7)在“要安装的组件”页上,请选择要安装的组件。选择各个组件组时,“要安装的组件”窗格中会显示相应的说明。可以选中任意一些复选框。若要安装单个组件,请单击“高级”。否则,请单击“下一步”继续。

(8)在“实例名”页上,请为安装的软件选择默认实例或已命名的实例。

(9)在“服务账户”页上,为 SQL Server 服务账户指定用户名、密码和域名。可以对所有服务使用一个账户。

(10)在“身份验证模式”页上,选择要用于 SQL Server 安装的身份验证模式。还必须输入并确认用于登录的强密码。若要继续安装,请单击“下一步”。 如果可能,请使用 Windows 身份验证。

(11)在“排序规则设置”页上,指定 SQL Server 实例的排序规则。若要为 SQL Server 和 Analysis Services 设置单独的排序规则设置,请选中“为每个服务账户进行自定义”的复选框。 (12)在“错误报告”页上,可以清除复选框以禁用错误报告。

(13)在“准备安装”页上,查看要安装的 SQL Server 功能和组件的摘要。若要继续安装,请单击“安装”。

(14)在“安装进度”页上,可以在安装过程中监视安装进度。若要在安装期间查看组件的日志文件,请在“安装进度”页上单击产品或状态名称。

(15)如果得到重新启动计算机的指示,请立即进行此操作。完成安装后,阅读来自安装程序的消息是很重要的。如果未能重新启动计算机,可能会导致以后运行安装程序失败。

2.创建服务器组。要求学生:在SQL Server Management Studio中创建一个新的SQL Server服务器组,名称为NewGroup。

(1)启动SQL Sever Management Studio ,在“已注册的服务器”窗口中(可以通过“视图”菜单调出此窗口)选择相应的服务器类型,在此选择“数据库引擎”,右击“数据库引擎”,在快捷菜单中选择“新建”下的“服务器组”,弹出“新建服务器组”对话框。 (2)在“组名”框中,输入新建的服务器名称NewGroup。 (3)在“细说明”框中,输入服务器组的描述信息。

(4)选择新建服务器组的位置,可以使顶层组,或者是某一个服务器组的子组。在此使用默认值,即为顶层组。

(5)单击“确认”按钮,就成功地创建了一个服务器新组NewGroup。该组下面还没有数据库服务器。 3. 注册服务器的管理。

要求学生:假设本地计算机上有一个SQL Server实例,实例名为“SecondServer”,在上题创建的服务器组中注册此实例。

(1)打开SQL Server Management Studio,右击所建服务器组NewGroup,在弹出的快捷菜单中选择“新建”下的“服务器注册表”,弹出“新建服务器注册”对话框。

(2)在“服务器名称”框中输入服务器名或从下拉列表框中选择一个服务器。在此输入SecondServer作为服务器名称。

8

(3)在“身份验证”框中。选择“Windows 身份验证”。如果选择“SQL Sever身份验证”,需要填入用户名和密码。

(4)选择“连接属性”选项卡。在此可以设置默认情况下连接的数据库名称、连接到服务器时所使用的网络协议、连接超时等。在此都使用默认值。

(5)点击“测试”按钮,如果连接成功。单击“保存”按钮,注册服务器成功。 4.写出如:服务器注册失败、无法连接服务器等的解决方案。 (1)验证方式设置错误的故障

解决方法:在注册时和服务器一致,或更改服务器身份验证方式。 (2) Sa密码错误的故障

解决方法:修改Sa账户密码,或询问Dba有权限的账户及密码。 (3) SQL Server服务错误或者客户机参数错误的故障

解决方法:确保服务器正常启动,检查SQL Server 2005网络的配置参数是否一致。

六、实验体会和收获

SQL Server Management Studio用于访问、配置和管理所有SQL Server组件,它组合了大量图形工具和丰富的脚本编辑器,是开发和管理SQL Server数据库对象的有力工具。我们利用SQL Server Management Studio可以完成对SQL Server 2005的管理,如创建服务器组件、注册服务器、配置服务器选项、创建和管理各种数据库对象,并可以调用其他管理工具。

数据库管理员可以利用SQL Server配置管理器管理与SQL Server相关联的服务。在默认情况下,全文搜索、SQL Server代理、集成服务都没有启动成功。通过这个工具,管理员可以启动、暂停、恢复或停止这些服务。SQL Server配置管理器还可以配置SQL Server使用的网络协议以及从SQL Server客户端连接数据库服务器时的网络配置。

9

实验项目名称: 管理安全性--1 实验学时: 4 同组学生姓名: 实验地点: 1320

实验日期: 2015.3.20 实验成绩: 批改教师: 批改时间:

10

一、实验目的和要求

1、掌握管理和维护登录名技术; 2、掌握固定服务器角色的特点和管理; 3、熟练理解和掌握管理和维护数据库用户; 4、能够结合具体应用解决实际问题。

二、实验设备、环境

奔腾计算机;装有WINDOWS 2000 SERVER或WINDOWS 2003 SERVER及以上版本、SQL Server 2005中文版。

三、实验步骤

1、掌握管理和维护登录名技术; 2、固定服务器角色的特点和管理; 3、理解和掌握管理和维护数据库用户;

4、做完实验后写出本实验的实验报告,并将相关电子文档资料保存在以自己学号命名的文件夹中。

四、实验内容

(一)教师重点讲解并演示管理安全性

(二)学生写出实验内容、出现问题及解决方案,完成以下工作 1.设置Windows身份验证的操作; 2.设置SQL Server身份验证的操作;

3.使用SQL Server Management Studio添加Windows登录账户,再将该Windows用户设置为连接到SQL Server 的登录账户;

4.使用SQL Server Management Studio添加SQL Server登录账户;

创建一个SQL Server 登录,登录名为lisi并指定密码abcd。 5. 使用CREATE LOGIN命令创建一个SQL Server 登录;

创建一个登录,登录名为lisi并指定密码abcd,CREATE LOGIN lisi WITH PASSWORD = 'abcd ' 6.使用SQL Server Management Studio修改登录账户的属性; 7.使用ALTER LOGIN语句修改登录账户属性;

将lisi登录账户名称更改为lisi_new,再将lisi_new 登录账户的密码修改为“wang”。 8. 删除登录账户;

分别使用SQL Server Management Studio删除登录账户、使用DROP LOGIN 语句删除登录账户。 9.使用SQL Server Management Studio添加数据库用户; 10.使用CREATE USER语句添加数据库用户;

在stu数据库中创建数据库用户zh,其登录名为zhang。

11.使用SQL Server Management Studio将登录账户添加到固定服务器角色; 12.使用存储过程sp_addsrvrolemember添加登录账户,使其成为服务器角色的成员;

11

13. 使用SQL Server Management Studio将用户添加到固定数据库角色; 14.使用存储过程sp_addrolemember来添加用户,使其成为数据库角色的成员; 15. 使用SQL Server Management Studio创建用户自定义数据库角色; 16.使用CREATE ROLE语句创建数据库角色。

五、问题解答及实验结果

实验题:

1.设置Windows身份验证的操作。

答:当用户通过Windows用户账户进行连接时,SQL Server通过回叫Windows 以获得信息,重新验证账户名和密码,并在sys.syslogins系统视图中查找该账户,以确定该账户是否有权限登录。在这种方式下,用户不必提供登录名和密码让SQL server验证。 2.设置SQL Server身份验证的操作。

答:用户想操作SQL Server中某一数据库中的数据,必须满足以下3个条件:

首先,登录SQL Server服务器时必须通过身份验证;其次,必须是该数据库的用户或者是某一数据库角色的成员;最后,必须有执行该操作的权限。由此可看SQL Server数据库的安全性检查是通过登录名、用户、权限来完成的。

3.使用SQL Server Management Studio添加Windows登录账户,再将该Windows用户设置为连接到SQL Server 的登录账户。

答:混合验证模式使用户能够通过Windows身份验证或SQL Server身份验证与SQL Server实例连接。在SQL Server验证模式下,SQL Server在sys.syslogins系统视图中检测输入的登录名和密码。如果在sys.syslogins视图中存在该登录名,并且密码也是匹配的,那么该登录名可以登录到SQL Server;否则,登录失败。在这种方式下,用户必须提供登录名和密码,让SQL server验证。 4.使用SQL Server Management Studio添加SQL Server登录账户。 创建一个SQL Server 登录,登录名为lisi并指定密码abcd。

答:(1)打开SQL Server Management Studio的“对象资源管理器”,展开“服务器”节点。

(2)展开 “安全性”节点,右击“登录名”,然后单击快捷菜单中的“新建登录名”选项,弹出“登录名-新建”对话框。

(3)在“常规”选择页中,选择“SQL Server身份验证”。

(4)在“登录名”框中,输入SQL Server登录的名称,在“密码”和“确认密码”框中输入“abcd”。 (5)在“默认数据库”下拉列表框中,选择用户在登录到SQL Serve实例后所连接的默认数据库。在“默认语言”下拉列表框中,选择显示给用户的信息所用的默认语言。 (6)单击“确定”按钮,完成操作。

5. 使用CREATE LOGIN命令创建一个SQL Server 登录,创建一个登录,登录名为lisi并指定密码abcd

答:CREATE LOGIN lisi WITH PASSWORD = 'abcd ' 6.使用SQL Server Management Studio修改登录账户的属性。

答:在SQL Server Management Studio的“对象资源管理器”中,展开服务器下的“安全性”节点,展开

12

“登录名”,右击需要修改的登录名,在快捷菜单中选择“属性”,弹出“登录属性”对话框。在此对话框中进行相应的属性修改,如默认数据库、默认语言、密码等,还可以对账户的状态属性进行修改。 7.使用ALTER LOGIN语句修改登录账户属性,将lisi登录账户名称更改为lisi_new,再将lisi_new 登录账户的密码修改为“wang”。

答:ALTER LOGIN lisi WITH NAME=lisi_new ALTER LOGIN lisi_new WITH PASSWORD=’wang’ 8. 删除登录账户。

分别使用SQL Server Management Studio删除登录账户、使用DROP LOGIN 语句删除登录账户。 答:DROP LOGIN login_name

9.使用SQL Server Management Studio添加数据库用户。

答:(1)在SQL Server Management Studio 的“对象资源管理器”中,展开“服务器”下的“数据库”节点。

(2)展开要在其中创建新用户的数据库。

(3)右击“安全性”节点,从弹出的快捷单中选择“新建”下的“用户”选项,弹出“数据库用户-新建”对话框。

(4)在“常规”选择页的“用户名”框中输入新用户的名称。在“登录名”框中输入或选择要映射到数据库用户的Windows或SQL Server 登录名的名称。

(5)如果不设置“默认架构”,系统会自动设置dbo为此数据库用户的默认架构。 (6)单击“确定”按钮,完成数据库用户的创建。

10.使用CREATE USER语句添加数据库用户,在AdventureWorks数据库中创建数据库用户zhangsan,其登录名为zhangsan。 答:Use AdventureWorks Go

CREATE USER zhangsan FROM LOGIN zhangsan

11.使用SQL Server Management Studio将登录账户添加到固定服务器角色。

答:(1)在SQL Server Management Studio的“对象资源管理器”中,依次展开“服务器”、“安全性”、“服务器角色”节点,可以看到8个固定的服务器角色。

(2)双击需要添加登录账户的服务器角色,将弹出“服务器角色属性”对话框。 (3)单击“添加”按钮,选择要添加的登录名。 (4)单击“确定”按钮,完成操作。

12.使用存储过程sp_addsrvrolemember办法用来添加登录账户,使其成为服务器角色的成员。 答:其语法格式为: sp_addrolemember 'role' , 'security_account'

其中:role:当前数据库中的数据库角色的名称, security_account:是添加到该角色的用户。 13. 使用SQL Server Management Studio将用户添加到固定数据库角色。

答:(1)在SQL Server Management Studio的“对象资源管理器”中,依次展开“服务器”、“数据库”节

13

点,然后展开需要添加用户的数据库角色的数据库。

(2)再依次展开数据库下的“安全性”、“角色”、“数据库角色”节点,可以看到当前数据库的所有数据库角色。

(3)双击需要添加用户的数据库角色,弹出“数据库角色属性”对话框。 (4)单击“添加”按钮,选择要添加的用户。 (5)单击“确定”按钮,完成操作。

14.使用存储过程sp_addrolemember来添加用户,使其成为数据库角色的成员。 答:其语法格式为: sp_addrolemember 'role' , 'security_account'

其中:role:当前数据库中的数据库角色的名称。 security_account:是添加到该角色的用户。 15. 使用SQL Server Management Studio创建用户自定义数据库角色。

答:(1)在SQL Server Management Studio的“对象资源管理器”中,展开“服务器”下的“数据库”节点,然后展开需要添加用户的数据库角色的数据库。

(2)右击“安全性”,选择“新建”下的“数据库角色”选项,弹出“数据库角色-新建”对话框。 (3)在“常规”选择页的“角色名称”框中输入新角色的名称。若不指定“所有者”,则创建此角色的用户是其所有者。

(4)单击“添加”按钮,选择数据库用户或角色成为此角色的成员。 (5)单击“确定”按钮,完成操作。 16.使用CREATE ROLE语句创建数据库角色。

答:CREATE ROLE role_name [ AUTHORIZATION owner_name ] 其中:role_name:将创建的数据库角色名称。

六、实验体会和收获

本次实验课,我们学习了SQL Server安全性管理的相关内容。数据库中保存了大量数据,有些数据对企业是及其重要的,必须保证这些数据的安全性。数据库系统必须具备完整的完善、方便的安全管理机制。数据库安全性管理机制主要包括:身份验证机制、登录账户管理、用户管理、角色管理权限管理这些机制。

14

实验项目名称: 管理安全性--2 实验学时: 2 同组学生姓名: 实验地点: 1320

实验日期: 2015.3.27 实验成绩: 批改教师: 批改时间:

15

一、实验目的和要求

1、掌握Windows NT认证模式下数据库用户帐号的建立与取消方法; 2、掌握混合模式下数据库用户帐号的建立与取消方法; 3、掌握数据库用户权限的设置方法;

4、熟悉数据库数据库用户帐号的权限分配、回收等方法; 5、了解数据库角色的分类、作用及使用方法。

二、实验设备、环境

奔腾计算机;装有WINDOWS 2000 SERVER或WINDOWS 2003 SERVER及以上版本、SQL Server 2005中文版。

三、实验步骤

1、理解和掌握管理和维护数据库用户; 2、注册服务器的管理;

3、做完实验后写出本实验的实验报告,并将相关电子文档资料保存在以自己学号命名的文件夹中。

四、实验内容

(一)教师重点讲解并演示

(二)学生写出实验内容、出现问题及解决方案,完成以下工作

以系统管理员身份登录到SQL Server服务器,在SQL Server2005界面中实现以下操作,并独立写出部分题目的程序代码;

1. 在当前计算机中增加一个用户zhang,密码为secret。使此用户通过Windows验证模式登录SQL Server服务器,登录名为zhang;

2. 新建以SQL Server验证模式登录SQL Server服务器的登录名stu1、stu2和stu3,登录密码为secret,默认登录数据库为stu;

3. 为登录名zhang创建数据库stu的用户,用户名为zhang;

4. 在数据库stu中创建用户stu1、stu2和stu3,登录帐号分别为stu1、stu2和stu3; 5. 给数据库用户zhang赋予创建数据库的权限;

6. 给数据库用户stu1赋予对sc表进行插入、修改、删除操作权限;

7. 给数据库用户stu2和stu3赋予对student表、course表所有操作权限及查询sc的操作权限,并允许再授权给其他用户;

8. 收回数据库用户stu2对student表和course表的删除操作的权限;

9. 若一个小组共5个成员,他们对数据库stu具有相同的操作权限,具体权限如下: (1)对于student、course表只能进行数据查询; (2)只能对student表中sname进行更改; (3)对于sc表只能进行修改、删除或插入;

10.将登录帐号zhang、stu2和stu3加入到服务器角色sysadmin中;

16

11.使登录帐号stu1同时拥有服务器角色serveradmin 和 securityadmin的权限; 12.删除服务器角色sysadmin的成员stu2和stu3。

五、问题解答及实验结果

实验题:

1.在当前计算机中增加一个用户zhang,密码为secret。使此用户通过Windows NT模式下登录SQL Server服务器,登录名分别为zhang。 答:(1)打开“开始”菜单,点击 “设置”,选中 “控制面板”,在控制面板界面中,选择“管理工具”。 (2)选择“计算机管理”,点击进入界面,展开“本地用户和组”,选择“用户”,右击选择“新用户”。 (3)在新用户界面中,依次在“用户名”处填入zhang,在“密码”和“确认密码”处填入secret点击“创建”,zhang用户创建完成。

(4)打开数据库资源管理器-安全性-右击登录名-新建登录名,在登录名内输入zhang。 2.新建以混合模式登录SQL Server服务器的用户登录名为stu1、stu2和stu3,登录密码为secret,默认登录数据库为stu。 答:(1)打开“开始”菜单,点击 “设置”,选中 “控制面板”,在控制面板界面中,选择“管理工具”。 (2)选择“计算机管理”,点击进入界面,展开“本地用户和组”,选择“用户”,右击选择“新用户”。 (3)在新用户界面中,依次在“用户名”处填入stu1或stu2或stu3,在“密码”和“确认密码”处填入secret点击“创建”,用户创建完成。

(4)打开SQL Server Management Studio中的“对象资源管理器”,展开“服务器”节点。 (5)右击“数据库”,选择“新建数据库”,在 “数据库名称”中输入stu。点击“确定”,完成stu数据库创建。

(5)展开“安全性”节点,右击“登录名”,然后单击快捷菜单中的“新建登录名”选项,弹出“登录名-新建”对话框。

(6)在“常规”选项页中,选择“SQL Server或windows身份验证模式”。

(7)在“登录名”框中,输入zhang,也可以单击“登录名”框旁的“搜索”按钮,在弹出的对话框中选择zhang用户。

(8)在“默认数据库”下拉列表框中,选择stu。在“默认语言”下拉列表框中,选择显示给用户的信息所用的默认语言。

(9)单击“确定”按钮,完成登录名的创建。

3.将帐号zhang添加为数据库stu的用户,用户名为zhang。 答:(1)打开数据库资源管理器-右击数据库-新建数据库-数据库名称输入stu-确定完成创建。 (2)左击stu-安全性-右击用户-创建用户-输入用户名zhang

4.在数据库stu中创建用户stu1、stu2和stu3,登录帐号分别为stu1、stu2和stu3。 答;左击stu-安全性-右击用户-创建用户-输入用户名-输入用户名。 5.给数据库用户zhang赋予创建数据库的权限。 答:(1)数据库stu—安全性—右键单击数据库用户zhang—属性—安全对象—单击“添加”—特定类型的所有对象—确定。 (2)数据库—确定。

(3)在权限设置中在“Create database”后面的授予中打勾,确定。 6.给数据库用户stu1赋予对sc表进行插入、修改、删除操作权限。

答:对象资源管理器—数据库“Stu” —安全性—用户stu1—属性—安全对象—添加—特定类型的所有对象—确定—表—确定。选择表sc,在权限设置中在Delete Insert Update后面的授予中打勾—确定。 7.给数据库用户stu2和stu3赋予对student表、course表所有操作权限及查询sc的操作权限,并允许再授权给其他用户。

答:对象资源管理器—数据库“Stu” —安全性—用户stu2—属性—安全对象—添加—特定类型的所有对象—确定—表—确定。选择表student,在权限设置中所有的授予和具有授予权限中打勾;表course执行

17

相同的操作;对于表sc,在去权限设置Select的授予和授予权限中打勾;确定。 8.收回数据库用户stu2对student表和course表的删除操作的权限。

答:只要在用户的安全对象设置中把student stu表和course表的设置权限中的Delete中的授予中的对号去掉就可以了。

9.若一个小组共5个成员,他们对数据库stu具有相同的操作权限,具体权限如下: (1)对于student、course表只能进行数据查询; (2)只能对student表中sname进行更改; (3)对于sc表只能进行修改、删除或插入; 答:(1)先将登录名中的账号“zhang”的用户映射设置为数据库stu。

(2)然后执行对象资源管理器—数据库stu—安全性—角色—数据库角色—新建数据库角色—角色名称为 “NEW” ,所有者为“dbo” —角色成员—添加—浏览—选择五个数据库用户—确定—确定。 (3)数据库角色“NEW”—属性—安全对象—添加—特定类型的所有对象—确定—表—确定。 (4)对于表student和表course在权限设置中在“Selete”后面的授予中打勾。 (5)对于表sc在权限设置中在“Delete、Insert、Update”后面的授予中打勾;。

(6)同时在表student权限设置中在“Update” 后面的授予中打勾,然后点击“列权限”,在列Sname后面的授予中打勾,确定。

10.将登录帐号zhang、stu2和stu3加入到服务器角色sysadmin中;

答:安全性—服务器角色sysadmin—属性—角色成员添加—浏览—选择登录帐号zhang、stu1、stu2和stu3—确定—确定。

11.使登录帐号stu1同时拥有服务器角色serveradmin 和 securityadmin的权限;

答:登录名stu1—属性—服务器角色—选择服务器角色serveradmin和securityadmin—确定。 12.删除服务器角色sysadmin的成员stu2和stu3。

答:安全性—服务器角色sysadmin—属性—选择角色成员stu2—单击删除按钮—选择角色成员stu3—单击删除按钮—确定。

六、实验体会和收获

本次实验主要学习的是服务器登录账户、数据库用户、角色和权限的管理,加强了我们对身份验证机制、登录账户管理、用户管理、角色管理权限管理这些机制的认识,通过多个实验的操作,我们更加熟悉并掌握了SQL Server身份验证模式,创建登录账户、数据库用户的方法,使用角色实现数据库安全性的方法以及权限的分配,更加了解了安全性管理。

18

实验项目名称: 管理数据库文件、管理表-1 实验学时: 2 同组学生姓名: 实验地点: 1320

实验日期: 2015.4.3 [ 实验成绩: 批改教师: 批改时间: 一、实验目的和要求

1、掌握数据库的基本概念,包括熟悉数据库文件、数据库文件组、数据库的物理存储结构、SQL Server2005数据库的分类、数据库对象的结构;

2、熟练掌握创建数据库的两种方法,使用SQL Server Management Studio创建数据库及编辑数据库; 3、使用T-SQL语句创建及编辑数据库; 4、掌握数据库的管理方法。

二、实验设备、环境

奔腾计算机;装有WINDOWS 2000 SERVER或WINDOWS 2003 SERVER及以上版本、SQL Server 2005中文版。

三、实验步骤

1、熟练使用Management Studio界面方式创建及编辑数据库; 2、熟练使用T-SQL 语句创建及编辑数据库;

3、做完实验后写出本实验的实验报告,并将相关电子文档资料保存在以自己学号命名的文件夹中。

四、实验内容

(一)教师重点讲解并演示创建及编辑数据库的方法

(二)学生写出实验内容、出现问题及解决方案,完成以下工作 请分别使用Management Studio界面方式和T-SQL语句实现以下操作:

1.要求在本地磁盘F:\\创建一个学生数据库(名称为student),只有一个数据文件和日志文件,文件名称分别为stu和stu_log,初始大小都为3MB,增长方式分别为10%和1MB,数据文件最大为500MB,日志文件大小不受限制;

2.创建一个Company数据库,该数据库的主数据文件逻辑名称为Company_data,物理文件为Company_data.mdf,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的日志文件逻辑名称为Company_log,物理文件名为Company_log.ldf,初始大小为1MB,最大尺寸为50MB,增长速度为1MB; 3.创建数据库DB,具有2个数据文件,文件逻辑名分别为DB_data1和DB_data2,文件初始大小均为5MB,最大为100MB,按10%增长;只有一个日志文件,初始大小为3MB,按10%增长;

4.在数据库student中增加数据文件db2,初始大小为10MB,最大值为50 MB,按10%增长; 5.在数据库student中添加日志文件,初始大小为1MB,最大无限制,按照1MB增长;

19

6.修改数据库student主数据文件的大小,将主数据文件的初始大小修改为10MB,增长方式为20%; 7.修改数据库student辅助数据文件初始大小为15MB,最大为100MB,按照10%增长,名称为db; 8.缩小student数据库的大小,使得该数据库中的文件有20%的可用空间; 9.删除数据库student辅助数据文件和第二个日志文件; 10.删除数据库company和DB;

11.将数据库student所有物理文件移动到“D:\\”,并保证逻辑数据库不受影响,请详细描述解决办法; 12.将数据库student改名为studteacher。

五、问题解答及实验结果

实验题:

1.CREATE DATABASE [student] ON PRIMARY ( NAME = N'student', FILENAME = N'D:\\stu_data.mdf' , SIZE = 3072KB , MAXSIZE = 512000KB , FILEGROWTH = 10%) LOG ON

( NAME = N'student_log', FILENAME = N'D:\\stu_log.ldf' , SIZE = 3072KB , MAXSIZE = 2048GB , FILEGROWTH = 1024KB )

2.CREATE DATABASE [company] ON PRIMARY ( NAME = N'company', FILENAME = N'D:\\company.mdf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 10%) LOG ON

( NAME = N'company_log', FILENAME = N'D:\\company_log.ldf' , SIZE = 1024KB , MAXSIZE = 51200KB , FILEGROWTH = 1024KB ) 3.CREATE DATABASE [DB] ON PRIMARY

( NAME = N'DB_data1', FILENAME = N'D:\\ceshi\\DB_data1.mdf' , SIZE = 5120KB , MAXSIZE = 102400KB , FILEGROWTH = 10%),

( NAME = N'DB_data2', FILENAME = N'D:\\ceshi\\DB_data2.ndf' , SIZE = 5120KB , MAXSIZE = 102400KB , FILEGROWTH = 10%) LOG ON

( NAME = N'DB_log', FILENAME = N'D:\\ceshi\\DB_log.ldf' , SIZE = 3072KB , MAXSIZE = 2048GB , FILEGROWTH = 10%) 4.Alter database student Add file

( NAME = N'db2', FILENAME = N'D:\\db2.ndf' , SIZE = 10240KB , MAXSIZE = 51200KB , FILEGROWTH = 10%)

5.Alter database student Add file

( NAME = N'stu_log2', FILENAME = N'D:\\stu_log2.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 1024KB ), 6.Alter database student Modify file

(name=stu_data,size=10,filegrowth=20%)

7. Alter database student Modify file

20

(name=db,size=3.maxsize=100,filegrowth=10%)

8.Dbcc shrinkdatabase (student,20)

9.Alter database student

Remove file db2 Remove file stu_log2

10. Drop database company

Drop database DB

11.先将student数据库分离,将其所有物理文件移动到D:\\学号目录下,然后使用数据库附加,将student库添加进来

12.Sp_rename ‘student’,’studteacher’;

六、实验体会和收获

通过这次试验,我逐步了解了数据库文件、数据库文件组、数据库的物理存储结构、SQL Server2005 数据库的分类、数据库对象的结构,学习了创建数据库的两种方法——使用SQL Server Management Studio创建数据库及编辑数据库,也学习了使用T-SQL语句创建及编辑数据库,并且掌握了一定的数据库的管理方法。

21

实验项目名称: 管理数据库文件、管理表-2 实验学时: 4 同组学生姓名: 实验地点: 1320

实验日期: 2015.4.10 实验成绩: 批改教师: 批改时间:

22

一、实验目的和要求

1、掌握数据表的概念、特点;

2、熟练掌握创建数据库的两种方法,使用SQL Server Management Studio创建、编辑及删除数据表; 3、熟悉使用T-SQL创建、编辑、删除数据表及管理数据表数据; 4、掌握数据库的管理方法。

二、实验设备、环境

奔腾计算机;装有WINDOWS 2000 SERVER或WINDOWS 2003 SERVER及以上版本、SQL Server 2005中文版。

三、实验步骤

1、熟悉数据表的概念、特点;

2、熟悉在Management Studio中创建、编辑、删除数据表及管理数据表数据; 3、熟悉使用T-SQL创建、编辑、删除数据表及管理数据表数据;

4、做完实验后写出本实验的实验报告,并将相关电子文档资料保存在以自己学号命名的文件夹中。

四、实验内容

(一)教师重点讲解并演示创建、编辑及删除数据表的方法 (二)学生写出实验内容、出现问题及解决方案,完成以下工作 请分别使用Management Studio及T-SQL完成以下内容: 1.请在指定数据库内完成以下内容

1.1依据数据表的结构创建相对应的数据表,表结构如下所示 1.1.1学生信息表(student)

字段名称 Sno Sname Ssex Sage Sdept 1.1.2课程信息表(course) 字段名称 Cno Cname Cpno Ccredit 1.1.3选课信息表(sc)

23

字段类型及长度 Char(10) VarChar(8) Char(2) Int VarChar(20) 说明 学生学号 学生姓名 学生性别 学生年龄 学生所在院系 备注 主关键字 非空 可为空 可为空 可为空 字段类型及长度 Char(4) VarChar(20) Char(4) Int 说明 课程编号 课程名称 先行课 学分 备注 主关键字 非空 可为空 可为空 字段名称 Sno Cno Grade 字段类型及长度 Char(10) Char(4) Int 说明 学生学号 课程编号 成绩 备注 主关键字 主关键字 可为空 1.2在表student中增加新字段 “班级名称(sclass)”; 1.3在表student中删除字段“班级名称(sclass)”;

1.4修改表student中字段名为“sname”的字段长度由原来的6改为8; 1.5修改表student中字段“sdept”名称为“dept”,长度为20; 1.6修改表student中sage字段名称为sbirth,类型为smalldatetime; 1.7修改表student新名称为stu_info; 1.8删除数据表stu_info。

2.创建教师授课管理数据库JSSK,并完成以下内容 2.1在数据库JSSK中创建下列三张表 2.1.1表名:teachers

列名 Tno Tname Tsex Birthday Dept Sid 2.1.2表名: lessons

列名 Cno Cname Credit property 2.1.3表名:shouke 列名 Tno Cno Hours 数据类型 字符型,长度7 字符型,长度10 整数 说明 教师号 课程号 课时 备注 主键 主键 数据类型 字符型,长度10 字符型,长度20 短整型 说明 课程号 课程名 学分 备注 主键 非空 数据类型 字符型,长度7 字符型,长度10 字符型,长度2 小日期时间型 字符型,长度20 字符型,长度18 说明 教师号 姓名 性别 出生日期 所在部门 身份证号 备注 主键 非空 默认取值为“男” 允许空 允许空 字符型,长度为10 课程性质 2.2在shouke表里添加一个授课类别字段,列名为Type,类型为Char,长度为4; 2.3将shouke表的Hours的类型改为smallint; 2.4删除lessons表中的property列。

24

3.向各个数据表中插入如下记录 3.1学生信息表(student) Sno 200515001 200515002 200515003 200515004 200515005 200515006 200515007 200515008 200515009 200515010 3.2课程信息表(course)

Cno 1 2 3 4 5 6 7 8 9 3.3选课信息表(sc)

Sno 200515001 200515002 200515002 200515003 200515004 200515005 200515006 200515004 200515005

Sname 赵菁菁 李勇 张力 张衡 张向东 张向丽 王芳 王民生 王小民 李晨 Ssex 女 男 男 男 男 女 女 男 女 女 Sage 23 20 19 18 20 20 20 26 18 22 Sdept CS CS CS IS IS IS CS MA MA MA Cname 数据库 数学 信息系统 操作系统 数据结构 数据处理 PASCAL语言 大学英语 计算机网络 Cpno 5 Null 1 6 7 Null 6 Null Null Ccredit 4 2 3 3 4 2 1 4 3 Cno 1 1 3 1 1 5 1 2 2 25

Grade 75 85 53 86 Null 58 Null 46 89

200515007 200515008 200515009 200515010 200515001 4.将姓名为“李勇”的学生姓名改为“李咏”; 5.将选修课程“1”的同学成绩加5分;

2 2 8 8 4 72 76 62 Null 62 6.将选修课程“大学英语”的同学成绩加5分;

7.将学号为“200515010”的学生信息重新设置为“王丹丹、女、20、MA”; 8.修改学号为“200515002”的学生记录:将其年龄增加2岁; 9.删除数据表student中计算机(CS)系年龄大于20的学生记录; 10.删除数据表course中学分低于3学分的课程信息; 11.删除数据表sc中成绩为空的选课信息。

五、问题解答及实验结果

实验题:

1.1 CREATE TABLE [dbo].[student](

[Sno] [char](9) COLLATE Chinese_PRC_CI_AS NOT NULL, [Sname] [char](6) COLLATE Chinese_PRC_CI_AS NOT NULL, [Ssex] [char](2) COLLATE Chinese_PRC_CI_AS NULL, [Sage] [int] NULL,

[Sdept] [varchar](8) COLLATE Chinese_PRC_CI_AS NULL

) ON [PRIMARY]

1.2 CREATE TABLE [dbo].[student](

[Sno] [char](9) COLLATE Chinese_PRC_CI_AS NOT NULL, [Sname] [char](6) COLLATE Chinese_PRC_CI_AS NOT NULL, [Ssex] [char](2) COLLATE Chinese_PRC_CI_AS NULL, [Sage] [int] NULL,

[Sdept] [varchar](8) COLLATE Chinese_PRC_CI_AS NULL

) ON [PRIMARY]

1.3 CREATE TABLE [dbo].[sc]( (

[Sno] ASC, [Cno] ASC

[Sno] [char](9) COLLATE Chinese_PRC_CI_AS NOT NULL, [Cno] [char](4) COLLATE Chinese_PRC_CI_AS NOT NULL, [Grade] [int] NULL,

CONSTRAINT [PK_sc] PRIMARY KEY CLUSTERED

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY]

2. use xuyang

go

26

alter table student add sclass char(5) go

3. use xuyang

go

alter table student drop column sclass go

1.4修改表student中字段名为“sname”的字段长度由原来的6改为8; alter table student alter column Sname char(8) 1.5修改表student中字段“sdept”名称为“dept”,长度为20; alter table student

alter column sdept char(20)

EXEC sp_rename 'student.sdept','dept','column' go)

1.6修改表student中sage字段名称为sbirth,类型为smalldatetime; alter table student

alter column sage smalldatetime;

exec sp_rename 'student.sage','sbirth','column' ; go

1.7修改表student新名称为stu_info;

EXEC sp_rename 'student','stu_info','table' 1.8删除数据表student。

drop table studentinfo.dbo.student 2.1create table teachers (

Tno char(7) primary key not null, Tname char(10) not null, Tsex char(2) default('男'), Birthday smalldatetime null, Dept char(20) null, Sid char(18) )

2.2 create table lessons (

Cno char(10) primary key not null, Cname char(20) not null, Credit smallint, property char(10) )

2.3 create table shouke (

Tno char(7) not null,

Cno char(10) constraint Pk_shouke primary key(Tno,Cno) not null,

27

Hours int )

2.4 alter table shouke

add Type char(4)

2.5 alter table shouke

alter column Hours smallint

2.6 alter table lessons

drop column property

3.1 insert into student (Sno,Sname,Ssex,Sage,Sdept) VALUES('200515001','赵菁菁','

女',’23’,’cs’)

3.2 insert into student (Cno,Cname,Cpname,Ccreadit) values(‘1’,’数据库’,’5’,’4’) 3.3 insert into student (Sno,Cno,Grade)values(‘200515001’,’1’,’75’) 3.4 updata student set Sname=’李勇’ where Sdept=’CS’ and Sname=’李勇’ 3.5 update sc set Grade=Grade+5 where Cno=‘1’

3.6 update sc,course set Grade=Grade+5 where Cname=’大学英语’ and course.Cno=sc.Cno 3.7 update student set Sname=’王丹丹’ Sex=’女’ Sage=’20’ Sdept=’MA’ Where Sno=’20052010’

3.8 udpate student set Sage=Sage+2 where Sno=’20155002’

3.9 delete from student where Sdept=’cs’ and Sage>20,and sex=’男’ 3.10 delete from course where Ccredit<3 3.11 delete from sc where Grade=’Null’

六、实验体会和收获

通过这次实验,我更加了解了对于数据表的操作,不仅熟悉了在Management Studio中创建、编辑、删除数据表及管理数据表数据,而且还熟悉了使用T-SQL创建、编辑、删除数据表及管理数据表数据。还理解了SQLServer2005常用数据类型和表结构的设计方法;还理解了主键、外键含义,掌握了建立各表相关属性间参照关系的方法。

28

实验项目名称:数据库备份和还原、数据的导入和导出 实验学时: 3 同组学生姓名: 实验地点: 1320

实验日期: 2015.4.17 实验成绩: 批改教师: 批改时间:

29

一、实验目的和要求

1、理解备份和还原的原理和作用、掌握备份方法和备份策略; 2、理解还原前的准备工作和还原特点,掌握执行还原操作技术; 3、掌握导入和导出方法;

4、掌握分离数据库和附加数据库的使用方法;

二、实验设备、环境

奔腾计算机;装有WINDOWS 2000 SERVER或WINDOWS 2003 SERVER及以上版本、SQL Server 2005中文版。

三、实验步骤

1、熟悉数据表的概念、特点;

2、熟悉在Management Studio中创建、编辑、删除数据表及管理数据表数据; 3、熟悉使用T-SQL创建、编辑、删除数据表及管理数据表数据;

4、做完实验后写出本实验的实验报告,并将相关电子文档资料保存在以自己学号命名的文件夹中。

四、实验内容

(一)教师重点讲解并演示数据库备份和还原、数据的导入和导出、分离数据库和附加数据库的使用方法(二)学生写出实验内容、出现问题及解决方案,完成以下工作

以管理员帐号登录SQL Server Management Studio,以原有数据库student为基础,请使用Management Stuio界面方式或T-SQL 语句实现以下操作:

1. 针对数据库student创建完全数据库备份集stu.bak,目标磁盘为D:\\ user \\ stu.bak; 2. 在数据库student中新建数据表ceshi,内容自定,然后针对数据库student创建差异备份; 3. 向数据库student的数据表ceshi插入部分记录,然后针对数据库student创建事务日志备份; 4. 根据需要,将数据库恢复到数据库student的最初状态; 5. 根据需要,将数据库恢复到创建数据表ceshi后的状态; 6. 根据需要,将数据库恢复到在ceshi表插入记录后的状态;

7. 针对现有数据库创建完全文件和文件组备份集stu_file,目标磁盘为D:\\ user \\ stu_file.bak; 8. 在当前数据库中新建数据表ceshi2,然后针对数据库student创建差异文件和文件组备份;

9. 向数据库student的数据表ceshi2插入部分记录,然后针对该数据库创建事务日志文件和文件组备份; 10. 根据需要,将数据库以文件和文件组方式恢复到创建数据表ceshi2后的状态; 11. 根据需要,将数据库以文件和文件组方式恢复到数据表ceshi2插入记录后的状态; 12. 分离数据库student, 再附加student; 13. 数据库student中数据的导入和导出练习。

五、问题解答及实验结果

30

1. exec sp_addumpdevice 'disk','stu','f:\\stu.bak' backup database student to stu

with init

2. backup database student to stu with differential

3. backup log student to stu

4. restore database student from stu with norecovery 5. restore database student from stu with file=2 6. restore database student from stu with file=3

7. BACKUP DATABASE student FILE = 'stu', FILE = 'db2',

FILEGROUP = 'PRIMARY'

TO DISK='C:\\stu_file.bak'

8. USE student

CREATE TABLE ceshi2( testID int,

31

testName varchar(10)) GO

BACKUP DATABASE student FILE = 'stu', FILE = 'db2',

FILEGROUP = 'PRIMARY'

TO DISK='C:\\stu_file_differential.bak' WITH DIFFERENTIAL

9. USE student INSERT INTO ceshi2

SELECT '1','张三' UNION SELECT '2','李四' UNION SELECT '3','王五' GO

BACKUP LOG student

TO DISK='C:\\stu_file_log.bak'

10. USE master

RESTORE DATABASE student FILE = 'stu', FILE = 'db2',

FILEGROUP = 'PRIMARY'

FROM DISK='C:\\stu_file.bak' WITH REPLACE GO

USE master

RESTORE DATABASE student FILE = 'stu', FILE = 'db2',

FILEGROUP = 'PRIMARY'

FROM DISK='C:\\stu_file.bak' WITH REPLACE,NORECOVERY RESTORE DATABASE student FILE = 'stu', FILE = 'db2',

FILEGROUP = 'PRIMARY'

FROM DISK='C:\\stu_file_differential.bak'

11. USE master

RESTORE DATABASE student FILE = 'stu', FILE = 'db2',

FILEGROUP = 'PRIMARY'

FROM DISK='C:\\stu_file.bak' WITH REPLACE, NORECOVERY GO

RESTORE LOG student

FROM DISK='C:\\stu_file_log.bak'

12. 为数据库stu设置一个备份计划1(建议使用数据库维护计划向导,【服 务器】→【管理】→【维护计划】→【维护计划向导】) 13. 导入数据:

(1)打开SQL Server Management Studio的“对象资源管理器”,展开“服务器”。

(2)右击“student”数据库,从弹出的快捷菜单中选择“任务”下的“导入数据”选项,弹出“SQL Server导入和导出向导”的欢迎界面。

(3)单击“下一步”按钮,出现“选择数据源”对话框,在“数据源”下拉列表框中选择“Mircosoft Excel”,在“Excel文件路径”框中选择需要导入的文件,在“Excel版本”下拉列表框中选择“Mircosoft Excel 97-2005”。

32

(4)单击“下一步”,出现“选择目标“对话框”、。在“目标”下拉列表框中选择“SQL Native Client”;“服务器名称”是本地服务,在“数据库”下拉列表框中选择student。 (5)单击“下一步”,出现“指定表复制或查询”对话框,选中“复制一个或多个表或试图的数据”。 (6)单击“下一步”,出现“选择源表和源视图”对话框,选择需要复制的表和视图。 (7)单击“下一步”,出现“保存并执行包”对话框,选择“立即执行”复选框。 (8)单击“下一步”,出现“完成该向导”对话框。 (9)单击“完成”按钮,开始复制数据。 导出数据:

(1)打开SQL Server Management Studio的“对象资源管理器”,展开“服务器”。

(2)右击“student”数据库,从弹出的快捷菜单中选择“任务”下的“导入数据”选项,弹出“SQL Server导入和导出向导”的欢迎界面。

(3)单击“下一步”按钮,出现“选择数据源”对话框,在“数据源”下拉列表框中选择“Mircosoft Excel”,在“Excel文件路径”框中选择需要导入的文件,在“Excel版本”下拉列表框中选择“Mircosoft Excel 97-2005”。 (4)单击“下一步”,出现“指定表复制或查询”对话框,选中“复制一个或多个表或试图的数据”。 (5)单击“下一步”,出现“选择目标“对话框”、。在“目标”下拉列表框中选择“SQL Native Client”;“服务器名称”是本地服务,在“数据库”下拉列表框中选择student。 (6)单击“下一步”,出现“选择源表和源视图”对话框,选择需要复制的表和视图。 (7)单击“下一步”,出现“保存并执行包”对话框,选择“立即执行”复选框。 (8)单击“下一步”,出现“完成该向导”对话框。 (9)单击“完成”按钮,开始复制数据。

六、实验体会和收获

通过这次实验,我学习到了对数据库里面数据的备份,数据库在使用中或者使用结束的时候,数据的保存和备份是很重要的,对数据库里面的数据进行导入导出也是很重要的,数据库是网络层面的东西,某些方面我们需要书面上面的一些东西打印出来,这时候数据的导出就显得很重要了。同时我们需要将表格导入数据库,有了导入工具,表格的导入就很简单了。

33

实验项目名称: T-SQL程序设计 实验学时: 9 同组学生姓名: 实验地点: 1320

实验日期: 2015.4.23 实验成绩: 批改教师: 批改时间: 一、实验目的和要求

1、掌握SELECT语句的语法、掌握数据库查询的实现方式; 2、掌握查询条件表达式和使用方法; 3、掌握GROUP BY 子句的作用和使用方法; 4、掌握HAVING子句的作用和使用方法; 5、掌握ORDER BY子句的作用和使用方法;

6、了解连接查询、嵌套查询、集合查询等的表示及使用。

二、实验设备、环境

奔腾计算机;装有WINDOWS 2000 SERVER或WINDOWS 2003 SERVER及以上版本、SQL Server 2005中文版。

三、实验步骤

1、熟悉数据表的概念、特点;

2、熟悉在Management Studio中创建、编辑、删除数据表及管理数据表数据; 3、熟悉使用T-SQL创建、编辑、删除数据表及管理数据表数据;

4、做完实验后写出本实验的实验报告,并将相关电子文档资料保存在以自己学号命名的文件夹中。

四、实验内容

(一)教师重点讲解并演示数据库查询,了解数据库查询的实现方式的使用方法 (二)学生写出实验内容、出现问题及解决方案,完成以下工作 请使用T-SQL 语句实现以下操作:

1. 列出姓“张”且全名为2个汉字的学生; 2. 显示在1995年以后出生的学生的基本信息;

3. 查询出课程名含有“数据”字串的所有课程基本信息;

4. 查询选修了‘1’课程的男学生的姓名和成绩,按成绩的降序排列; 5. 查询CS系学生的姓名、选课课程名及成绩;

6. 列出年龄超过平均值的所有学生名单,按年龄的降序显示;

7. 按照出生年份升序显示所有学生的学号、姓名、性别、出生年份及院系,在结果集中列标题分别指定为“学号,姓名,性别,出生年份,院系”;

34

8. 显示所有院系(要求不能重复,不包括空值),并在结果集中增加一列字段“院系规模”,其中若该院系人数>=5则该字段值为“规模很大”,若该院系人数大于等于4小于5则该字段值为“规模一般”, 若该院系人数大于等于2小于4则该字段值为“规模稍小”,否则显示“规模很小”; 9. 按照课程号、成绩降序显示课程成绩在70-80之间的学生的学号、课程号及成绩;

10. 显示学生信息表中的学生总人数及平均年龄,在结果集中列标题分别指定为“学生总人数,平均年龄”; 11. 查询“数据库”课程的最高分、最低分、平均分; 12. 显示选修的课程数大于1的各个学生的学号和选修课程数;

13. 显示平均成绩大于“200515001”学生平均成绩的各个学生的学号、平均成绩; 14. 显示选修课程数最多的学号及选修课程数最少的学号;

15. 查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号; 16. 使用嵌套查询列出选修了“数据结构”课程的学生学号和姓名。

五、问题解答及实验结果

1. select sname from student where sname like '沈__'

2. select sno 学号,sname 姓名,出生年份=year(getdate()-sage) from student where year(GETDATE())>1985

3. select sno,sc.cno,cname,grade,ccredit from sc,course where cname like'数据%'and

course.cno=sc.cno

4. select student.sno,sname,grade from student,sc where Cno='1' order by Grade desc 5. select * from course order by cpno asc

6. select sname from student where sage>(select avg(sage) from student ) order by sage asc

7. select sno 学号,sname 姓名,ssex 性别,出生年份=year(GETDATE())-sage,sdept 院系 from student order by YEAR(GETDATE())-sage asc 8. select sdept, sdept= case

when COUNT(distinct sno)>=5then '规模很大'

when COUNT(distinct sno)>=4and COUNT(distinct sno)<5 then '规模一般' when COUNT(distinct sno)>=2and COUNT(distinct sno)<4 then '规模小' when COUNT(distinct sno)<2 then '规模很小' end from student group by sdept

9 select sno,cno,grade from sc where Grade>=70 and Grade<=80 order by Cno desc,Grade desc

10. select 学生总人数=COUNT(distinct sno),平均年龄=AVG(sage) from student

11. select sno,选修的课程数=COUNT(Cno) from sc group by sno having COUNT(Cno)>3

12. select sno,平均成绩=AVG(grade) from sc group by sno having AVG(Grade)>(select AVG(Grade) from sc where sno='200515001')

13.select sno,选课数= case

when MAX(Cno)=COUNT(Cno)then '课程数最多'

when MIN(Cno)=COUNT(Cno)then '课程数最少' end

from sc group by sno having MAX(Cno)=COUNT(Cno)or MIN(Cno)=COUNT(Cno)

14.select sc.sno 学号,sname 姓名,cno 课程号

from student,sc

where student.sno=sc.sno and sc.cno in( select sc.cno

35

from student,sc

where student.sno = sc.sno and student.sname='张力' ) and sname <>'张力'

15. select sno,sname

from student

where sno in (select sno from sc,course where cname='数据结构'and sc.Cno=course.cno)

六、实验体会和收获

通过这次实验,我掌握了SELECT语句的语法和数据库查询的实现方式,也掌握了一定查询条件表达式和使用方法,了解了GROUP BY 子句、HAVING子句、ORDER BY子句的作用和使用方法,熟悉了连接查询、嵌套查询、集合查询等的表示及使用。并且能在Management Studio中创建、编辑、删除数据表及管理数据表数据,也能使用T-SQL创建、编辑、删除数据表及管理数据表数据。

36

实验项目名称: 关系图、索引的使用 实验学时: 3 同组学生姓名: 实验地点: 1320

实验日期: 2015.4.30 实验成绩: 批改教师: 批改时间: 一、实验目的和要求

1、掌握关系图的概念、方法; 2、掌握关系图的创建和使用方法; 3、了解数据库引擎优化顾问的使用及作用; 4、理解索引的概念、索引的分类、查询优化的作用;

5、掌握创建索引的两种方式、索引的管理,学会运用索引的相关管理命令。

二、实验设备、环境

奔腾计算机;装有WINDOWS 2000 SERVER或WINDOWS 2003 SERVER及以上版本、SQL Server 2005中文版。

三、实验步骤

1、掌握关系图的创建和使用方法; 2、查看数据库引擎优化顾问的使用及方法;

3、理解索引的概念、优点、索引的创建和索引的管理; 4、灵活掌握各种使用索引的相关命令;

5、做完实验后写出本实验的实验报告,并将相关电子文档资料保存在以自己学号命名的文件夹中。

四、实验内容

(一)教师重点讲解并演示关系图的创建和使用,数据库引擎优化顾问,索引的概念、作用和使用方法 (二)学生写出实验内容、出现问题及解决方案,以实验student、MyDB数据库中数据为基础,请使用T-SQL 语句实现以下操作: 1.创建关系图

根据数据表的实际情况,为student数据库创建关系图,击右键,调出创建关系图的快捷菜单并进入其界面,然后选中表Student、Course、sc,选择表中相应的属性,找出对应主、外码间的对应关系,建立表间的关联关系图,对它进行保存、删除、重命名等操作。 2. 查看数据库引擎优化顾问的使用及方法 2.1数据库引擎优化顾问的启动

在 Windows 的“开始”菜单上,依次点击“所有程序”——Microsoft SQL Server 2005 ——“性能工具”——“数据库引擎优化顾问”。 也可以在打开的SSMS窗口中点击工具菜单下的数据库引擎优化顾问菜单项。

37

2.2在打开的数据库引擎优化顾问的布局下使用GUI方式的数据库引擎优化顾问的步骤

创建新会话,选择工作负荷;点击优化选项可以进行优化设置;点击工具栏上的“开始分析”按钮;根据优化分析结果调整数据库和表的分区或索引结构。 3. 索引的创建、查看、重命名和删除

3. 1为Student表创建一个基于姓名的唯一索引ix_xm。

3. 2为Student表创建一个基于性别和年龄的索引ix_sex_age,按性别升序排列,性别相同时按年龄降序排列,填充因子为80%。

3. 3 利用索引管理器查看表的各个索引。

3. 4 利用查询分析器的命令查看表的各个索引,重命名索引ix_xm,再删除之。 3. 5表述关系图的创建方法。 3. 6索引的优点、缺点?

3. 7数据库引擎优化顾问的作用是什么?

五、问题解答及实验结果

1

3.1 CREATE NONCLUSTERED INDEX idex_xh ON [dbo].student

( s DESC,

sno ASC)

WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON PRIMARY

3.2 CREATE NONCLUSTERED INDEX idex_cla_name ON dbo.student

( sdept ASC,

sname DESC )WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON PRIMARY

3.3 sp_helpindex student

3.4 sp_rename 'student.idex_xh','student.newidex_xh','index' drop index student.newidex_xh

3.5表述关系图的创建方法?

答:根据数据表的实际情况,为student数据库创建关系图,击右键,调出创建关系图的快捷菜单并进入其界面,然后选中表Student、Course、sc,选择表中相应的属性,找出对应主、外码间的对应关系,建立表间的关联关系图,对它进行保存、删除、重命名等操作。 3.6索引的优点、缺点?

答:创建索引可以大大提高系统的性能。

第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。

38

第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。

第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

第四,在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

也许会有人要问:增加索引有如此多的优点,为什么不对表中的每一个列创建一个索引呢?这种想法固然有其合理性,然而也有其片面性。虽然,索引有许多优点, 但是,为表中的每一个列都增加索引,是非常不明智的。这是因为,增加索引也有许多不利的一个方面。

第一,创建索引和维护索引要耗费时间,这种时间随着数据 量的增加而增加。

第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。

第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

3.7数据库引擎优化顾问的作用是什么?

答:创建新会话,选择工作负荷;点击优化选项可以进行优化设置;点击工具栏上的“开始分析”按钮;根据优化分析结果调整数据库和表的分区或索引结构。

六、实验体会和收获

通过这次实验,我掌握关系图的创建和使用方法,能够熟练地创建、删除关系表,同时,我也能熟练地创建索引、管理索引,能够灵活地使用索引的相关命令。创建关系图是找出对应主、外码间的对应关系,建立表间的关联关系图,对它进行保存、删除、重命名等操作。常用的索引类型有聚集索引、非聚集索引、唯一索引、复合索引、索引视图、全文索引、XML索引。

39

实验项目名称: 视图的使用、用户自义函数 实验学时: 3 同组学生姓名: 实验地点: 1320

实验日期: 2015.5.7 实验成绩: 批改教师: 批改时间: 一、实验目的和要求

1、掌握视图的创建和使用;

2、掌握系统内置函数的概念及其应用;

3、通过定义和使用用户自定义函数,掌握自定义函数的概念及其应用。

二、实验设备、环境

奔腾计算机;装有WINDOWS 2000 SERVER或WINDOWS 2003 SERVER及以上版本、SQL Server 2005中文版。

三、实验步骤

1、熟悉视图的创建、修改、删除、查询; 2、熟悉系统内置函数的概念及其应用;

3、熟悉用户自定义函数,掌握自定义函数的概念及其应用;

4、做完实验后写出本实验的实验报告,并将相关电子文档资料保存在以自己学号命名的文件夹中。

四、实验内容

(一)教师重点讲解并演示视图的使用,演示用户自义函数实现方式的使用方法

(二)学生写出实验内容、出现问题及解决方案,以上一个实验的数据库中数据为基础,请实现以下操作: 1、视图的创建、查询、修改和删除

(1)创建名为V_Stu的视图以显示学生的学号、姓名、性别和年龄等信息。

(2)创建一个名为V_grade的基于多表连接的视图,以显示“2”号课程的学生成绩信息,如学号、姓名、课程名称、成绩和学分等。

(3)分别利用视图V_Stu和V_grade作查询和更新操作。

(4)修改V_Stu视图的定义,为其增加一个条件,使得该视图只显示“CS”系学生的基本信息。 (5)删除名为V_Stu的视图。 2.自定义函数

2.1 自定义一个名为Sage_func函数,按出生年月计算年龄。然后从Student表中检索出含有年龄的学生信息。注:函数:datediff是常用的日期和时间函数,参数:(datepart,startdate,enddate ),功能:以datepart指定的方式,返回enddate与startdate之差。

2.2 定义一个名为grade_func的自定义函数,将成绩从百分制转化为五级记分制。将该用户定义函数用在查询每个学生的成绩中,给出五级记分制的成绩。

40

2.3创建自定义标量函数TOTAL()用来计算任意两数之和,并计算39与25的和。

五、问题解答及实验结果

(1) CREATE VIEW dbo.V_Stu

AS SELECT sno AS 学号, sname AS 姓名, ssex AS 性别, sage AS 年龄 FROM dbo.student

(2) CREATE VIEW dbo.V_grade

AS SELECT dbo.student.sno AS 学号, dbo.student.sname AS 姓名, dbo.course.cname AS 课程名称, dbo.sc.grade AS 成绩, dbo.course.ccredit AS 学分 FROM dbo.course INNER JOIN

dbo.sc ON dbo.course.cno = dbo.sc.cno INNER JOIN dbo.student ON dbo.sc.sno = dbo.student.sno

(3)select sno as 学号, sname as 姓名, ssex as 性别, (4) alter VIEW dbo.V_Stu

AS SELECT sno AS 学号, sname AS 姓名, ssex AS 性别, sage AS 年龄 FROM dbo.student

(5) drop view v_stu 2.1

create function Sage_func ( @vardate datetime , @curdate datetime ) returns tinyint

as begin return datediff ( yy , @vardate , @curdate ) end

select SNO as 学号, SName as 姓名,dbo.Sage_func(Birthday,getdate()) as 年龄 from Student

41

2.2

create function grade_func ( @Scorce int ) returns tinyint as begin return @Scorce/20 end

select SName as 姓名, dbo.grade_func(Scorce) as 五级分制 from Grade,Student where Grade.SNO=Student.SNO

2.3

CREATE FUNCTION TOTAL(@expr1 AS int,@expr2 AS int) RETURNS int BEGIN

DECLARE @my_total int

SELECT @my_total=@expr1+@expr2 RETURN @my_total END GO

六、实验体会和收获

通过这次试验,我学会了视图的创建、修改、删除、查询,了解了系统内置函数的概念及其应用,熟悉了用户自定义函数,也掌握了自定义函数的概念及其应用。利用视图可以简化数据操作,数据安全访问机制,自定义所需数据,从多个表中汇总数据,通过视图可以修改数据。

42

实验项目名称: 触发器 实验学时: 3 同组学生姓名: 实验地点: 1320

实验日期: 2015.5.14 实验成绩: 批改教师: 批改时间:

43

一、实验目的和要求

1、理解触发器的基本概念、功能、分类;

2、理解并掌握创建、查看、修改、删除触发器的方法; 3、灵活掌握触发器的应用。

二、实验设备、环境

奔腾计算机;装有WINDOWS 2000 SERVER或WINDOWS 2003 SERVER及以上版本、SQL Server 2005中文版。

三、实验步骤

1、理解触发器的基本概念、功能、分类;

2、理解并掌握创建、查看、修改、删除触发器的方法; 3、灵活掌握触发器的应用;

4、做完实验后写出本实验的实验报告,并将相关电子文档资料保存在以自己学号命名的文件夹中。

四、实验内容

(一)教师重点讲解触发器的功能、分类,并演示触发器的创建、查看、修改和删除的方法

(二)学生写出实验内容、出现问题及解决方案,以实验student数据库中数据为基础,请使用T-SQL 语句实现以下操作: 1 创建触发器

1.1创建一个触发器trig_1,当向表student中插入一条记录时,自动显示表student中的记录。 该触发器建立完毕后,当执行插入操作时将会显示数据表student中的全部记录。 1.2创建一个触发器trig_2,当修改student表记录时,自动显示‘学生记录已被修改’。

1.3创建触发器trig_3,实现如下功能:当在学生选课表(sc)中删除一条学生选课信息后,自动实现更新该学生在学生情况表(Student)中的总学分信息。

1.4创建触发器trig_4,实现当修改学生情况表(Student)中的某个学生的学号时,对应学生选课表(sc)中的学号也作修改。 2.修改触发器

对已创建的触发器trig_2进行修改,实现当修改学生(Student)中的数据时,显示提示信息“学生表中XXX号学生记录被修改了”。

3. 使用系统存储过程sp_help、sp_helptext、sp_depends和sp_helptrigger分别查看触发器trig_3的不同信息 4. 删除触发器trig_4。

五、问题解答及实验结果

CREATE TRIGGER trig_1 ON student FOR INSERT AS

SELECT * FROM student

该触发器建立完毕后,当执行如下操作时将会显示数据表student中的全部记录。

insert into student(Sno, Sname, Ssex, Sage, Sdept) values(‘200515013’,’李梅’,’

44

女’,23,’MA’)

1.2 CREATE TRIGGER trigger_update ON student FOR UPDATE AS Print ‘学生记录已被修改’

1.3 create trigger trigger_2

on Grade for delete as

update Student

set TotalCredit = (select sum(Credit) from Grade where Student.SNO = (select SNO from deleted)) 1.4

create trigger trigger_3 on Student after update as update Grade set SNO = deleted.SNO from updated

2 修改触发器

2.1 对已创建的触发器trig_2进行修改,实现当修改学生(Student)中的数据时,显示提示信息“学生表中XXX号学生记录被修改了”。

alter trigger trigger_1 on Student after update as

begin

declare @SNO varchar(8)

select @SNO = SNO from updated

print '学生情况表中'+@SNO+'号学生记录被修改' end

3. 使用系统存储过程sp_help、sp_helptext、sp_depends和sp_helptrigger分别查看触发器trig_3的不同信息

Sp_help trigger_3

sp_helptext trigger_3; sp_depends trigger_3; sp_helptrigger student

;

4. 删除触发器trig_4 Drop trigger trig_4

六、实验体会和收获

通过这次实验,我理解了触发器的基本概念、功能和分类,SQL Server 包括两大类触发器:DML 触发器和 DDL 触发器。DML触发器又分为三种类型:AFTER触发器、INSTEAD OF触发器和CLR触发器。也理解并掌握了创建、查看、修改、删除触发器的方法,而且还能灵活地掌握触发器的应用。

45

实验项目名称: 存 储 过 程 实验学时: 3 同组学生姓名: 实验地点: 1320

实验日期: 2015.5.21 实验成绩: 批改教师: 批改时间:

46

一、实验目的和要求

1、理解存储过程的基本概念、优点、分类; 2、掌握创建、执行存储过程的方法;

3、掌握对存储过程的查看、修改、重命名和删除操作。

二、实验设备、环境

奔腾计算机;装有WINDOWS 2000 SERVER或WINDOWS 2003 SERVER及以上版本、SQL Server 2005中文版。

三、实验步骤

1、理解存储过程的基本概念、优点、分类;

2、理解并掌握创建、执行、查看、修改、重命名和删除存储过程的方法; 3、灵活掌握各种存储过程的应用命令;

4、做完实验后写出本实验的实验报告,并将相关电子文档资料保存在以自己学号命名的文件夹中。

四、实验内容

(一)教师重点讲存储过程的基本概念、分类、优点,并演示存储过程的创建、执行、查看、修改、重命名和删除的方法

(二)学生写出实验内容、出现问题及解决方案,以实验student数据库中数据为基础,请使用T-SQL 语句实现以下操作: 1.创建与执行存储过程

1.1创建存储过程proc_1,要求实现如下功能:产生学分为4的课程学生选课情况列表,其中包括课程号、课程名、学分、学号、姓名、专业、性别等。并调用此存储过程,显示执行结果。

1.2创建存储过程proc_2,要求实现如下功能:输入专业名称,产生该专业学生的选课情况列表,其中包括专业、学号、姓名、课程号、课程名、成绩、学分等。并调用此存储过程,显示“CS”专业学生的选课情况列表。

1.3创建存储过程proc_3,要求实现如下功能:输入学生学号,根据该学生所选课程的总学分显示提示信息,如果总学分<7,则显示“此学生学分不足!”,否则显示“此学生学分已足!”,并调用此存储过程,显示“200515004”学生的总学分情况。 2.修改存储过程

2.1 对已创建的存储过程proc_1进行修改,要求在显示列表中增加年龄字段,即产生学分为“4”的课程学生选课情况列表,其中包括课程号、课程名、学分、学号、姓名、专业、性别、年龄。

2.2 对存储过程proc_2进行修改,要求实现如下功能:输入专业名称,产生该专业所有男生的选课情况列表,其中包括专业、学号、姓名、课程号、课程名、成绩、学分等。并调用修改后的存储过程,显示“CS”专业男生的选课情况列表。

2.3 对存储过程proc_3进行修改,要求实现如下功能:输入学生学号,根据该学生所选课程的总学分显示提示信息,如果总学分<7,则显示“此学生所选总学分为XXX,学分不足!”,否则显示“此学生所选总学

47

分为XXX,学分已足!”。并调用修改后的存储过程,显示“200515004”学生的总学分情况。 2.4重命名存储过程proc_3为proc_4 4.查看存储过程的类型

4.1使用sp_helptext查看proc_1存储过程的文本;

4.2分别使用sp_help、sp_depends查看proc_2、proc_4存储过程的文本情况。 5.删除存储过程

删除存储过程proc_1;

五、问题解答及实验结果

1. 1

create procedure proc_1 as select

Course.CNO,Course.CName,Grade.Credit,Student.SNO,Student.SName,Class.Specialty,Student.sex from Course,Class,Student,Grade where Grade.Credit = '4' and Student.SNO = Grade.SNO and Course.CNO =Grade.CNO;

exec proc_1;

1.2

create procedure proc_2 @Specialty varchar(16)

as select Class.Specialty,Student.SNO,Student.SName,Course.CNO,Course.CName, Grade.Scorce,Grade.Credit from Course,Class,Student,Grade

where Class.Specialty = @Specialty and Student.SNO = Grade.SNO and Course.CNO = Grade.CNO and Class.ClsNO = Student.ClsNO; exec proc_2 @Specialty='计算机应用'

1.3

create procedure proc_3 @SNO varchar(16) as begin

if (select sum(cast(Credit as int)) grade from Grade where SNO = @SNO)<9

print '此学生学分不足!' else

print '此学生学分已足!' end;

exec proc_3 '19920102'

48

2.1

alter procedure proc_1 as select

Course.CNO,Course.CName,Grade.Credit,Student.SNO,Student.SName,Class.ClsName,Class.Specialty,Student.sex from Course,Class,Student,Grade where Grade.Credit = '4'and Student.SNO = Grade.SNO and Course.CNO = Grade.CNO; exec proc_1

2.2 alter procedure proc_2 @Specialty varchar(16)

as select Class.Specialty,Student.SNO,Student.SName,Course.CNO,Course.CName, Grade.Scorce,Grade.Credit from Course,Class,Student,Grade

where Class.Specialty = @Specialty and Student.Sex = '男' and Student.SNO= Grade.SNO and Course.CNO = Grade.CNO and Class.ClsNO = Student.ClsNO; exec proc_2 @Specialty=‘计算机应用’;

2.3 alter procedure proc_3 (@SNO varchar(16),@SumCredit int)

as select @SumCredit = sum(Credit) from Grade where SNO = @SNO if (@SumCredit<9)

print '此学生学所选总学分为:'+str(@SumCredit)+',学分不足!' else

print '此学生学所选总学分为:'+str(@SumCredit)+',学分已足!'; select sum(Credit) from Grade where SNO ='19920102'; exec proc_3 @SNO ='19920102',@SumCredit=9; 4.1 exec sp_helptext byroyalty

4.2 exec sp_help proc_2 exec sp_help proc_4 exec sp_depends proc_2 exec sp_depends proc_4 5. drop procedure proc_1

六、实验体会和收获

通过本章,主要学习了存储过程的基本概念,创建存储过程的方法,执行存储过程以及对存储过程的查看、修改、重命名和删除操作。使用存储过程具有以下优点:实现模块化程序设计;存储过程内可引用其他存储过程,可以简化一系列复杂语句;可以减少网络通信流量;存储过程在创建时即在服务器上进行编译,具有对数据库立即访问的功能,使用存储过程可以加快程序的运行速度;可以提高数据库的安全性。

49

实验项目名称: 数据完整性 实验学时: 3 同组学生姓名: 实验地点: 1320

实验日期: 2015.5.28 实验成绩: 批改教师: 批改时间: 一、实验目的和要求

1、熟悉数据库完整性相关概念;

2、掌握默认的创建、绑定、解除绑定、删除的应用; 3、掌握规则的创建、绑定、解除绑定、删除的应用; 4、掌握主、外键约束及check约束的使用方法;

二、实验设备、环境

奔腾计算机;装有WINDOWS 2000 SERVER或WINDOWS 2003 SERVER及以上版本、SQL Server 2005中文版。

三、实验步骤

1、熟练使用默认的创建、绑定、解除绑定、删除的方法; 2、熟练使用规则的创建、绑定、解除绑定、删除的方法; 3、掌握主、外键约束及check约束的使用方法;

4、做完实验后写出本实验的实验报告,并将相关电子文档资料保存在以自己学号命名的文件夹中。

四、实验内容

(一)教师重点讲解数据库完整性相关概念,演示默认和规则的创建、绑定、解除绑定、删除,演示主、外键约束及check约束的使用方法

(二)学生写出实验内容、出现问题及解决方案,完成以下工作

以管理员帐号登录SQL Server Management Studio,以原有数据库student为基础,请使用Management Stuio界面方式或T-SQL 语句实现以下操作:

1.请用至少2种方法定义student 数据库中student表的主键sno;

2.将数据库student的表course的cno字段定义为主键,约束名称为cno_pk; 3.为表course中的字段cname添加唯一值约束;

4.将数据库student的表sc的sno及cno字段组合定义为主键,约束名称为sc_pk;

5.对于数据表sc的sno、cno字段定义为外码,使之与表student的主码sno及表course的主码cno对应,实现如下参照完整性:

(1)删除student表中记录的同时删除sc表中与该记录sno字段值相同的记录;

(2)修改student表某记录的sno时,若sc表中与该字段值对应的有若干条记录,则拒绝修改;

50

(3)修改course表cno字段值时,该字段在sc表中的对应值也应修改;

(4)删除course表一条记录时,若该字段在sc表中存在,则删除该字段对应的记录; (5)向sc表添加记录时,如果该记录的sno字段的值在student中不存在,则拒绝插入; 6.定义check约束,要求学生学号sno必须为10位数字字符,且不能以0开头,第二三位皆为0; 7.定义student数据库中student表中学生年龄值在16-25范围内; 8.定义student表中学生姓名长度在2-3之间;

14.定义student表中学生性别列中只能输入“男”或“女”; 15.定义student表中学生年龄值默认值为20;

16.修改student表学生的年龄值约束可以为15-30范围内; 17.删除上述唯一值约束、外键约束及check约束

18.定义规则对象asd1,用于保证course表中cno字段值为4个数字字符,即先定义规则asd1,后绑定到course表中cno字段中;最后解除该规则的绑定;

19. 定义默认对象asd2,设置student表学生的性别的默认值为“女”,即先定义默认asd2,后绑定到student表中Ssex字段中;最后解除该默认绑定; 20.删除规则对象asd1,删除默认对象asd2。

五、问题解答及实验结果

1. (1)create database stu; create table student (sno char(12) primary key ) (2) create database stu; create table student (sno char(12) primary key (sno) ) 2. alter table course add constraint cno_pk primary key(cno) 3. alter table course add constraint cname_pk unique (cname) 4. alter table sc add constraint sc_pk primary key (sno,cno)

5-10.alter table sc add constraint sc_fk foreign key (sno)references student(sno) on delete cascade on update no action,

foreign key (cno)references course(cno)on delete cascade on update cascade

11. alter table student add constraint sno_ck

check(sno like '[1-9]00[0-9][0-9][0-9][0-9][0-9][0-9]')

12. alter table student add constraint sage_ck check(sage between 16 and 25)

13. alter table student add constraint sname_ck check (len(sname) between 2 and 8) 14. alter table student add constraint ssex_ck check(ssex in ('男','女')) 15. alter table student add constraint s_age default 20 for sage 16.alter table student drop constraint sage_ck go

alter table student add constraint sage_ck check(sage>=15 and sage<=30) 17. alter table course drop constraint cname_pk go alter table sc drop constraint sc_fk go

alter table student drop constraint sno_ck,sage_ck,sname_ck,ssex_ck

18.create rule asd1 as @a like '[0-9] [0-9][0-9][0-9]' go exec sp_bindrule ' asd1','course.cno'

19. create default asd2 as‘女’ exec sp_bindefault ‘asd2’,‘student.Ssex’ sp_unbindefault asd2 ,‘student.Ssex’ 20.drop rule asd1 drop default asd2

51

六、实验体会和收获

通过这次试验我熟悉了数据库完整性相关概念,不仅掌握了默认的和规则的创建、绑定、解除绑定、删除的应用,而且掌握了主、外键约束及check约束的使用方法。实验过程中我了解在做任何事之前,我们都不能好高骛远。

52

实验项目名称: SQL Server 2005的并发性、报表服务实验学时: 3 同组学生姓名: 实验地点: 1320

实验日期: 2015.6.5 实验成绩: 批改教师: 批改时间:

53

一、实验目的和要求

1、熟悉SQL Server 2005的并发性概念和特点; 2、熟悉事务的概念、工作原理、事务的类型及管理;

3、熟悉报表服务管理的概念、特点、功能、报表服务的体系结构; 4、掌握报表服务配置的方法; 5、掌握创建报表的方法; 二、实验设备、环境

奔腾计算机;装有WINDOWS 2000 SERVER或WINDOWS 2003 SERVER及以上版本、SQL Server 2005中文版。

三、实验步骤

1、熟悉SQL Server 2005的并发性概念和特点;

2、熟悉报表服务管理的概念、特点、功能、报表服务的体系结构; 3、掌握报表服务配置的方法; 4、掌握创建报表的方法;

5、做完实验后写出本实验的实验报告,并将相关电子文档资料保存在以自己学号命名的文件夹中。

四、实验内容

(一)教师重点讲解SQL Server 2005的并发性、报表服务相关概念,演示创建报表的方法的使用方法; (二)学生写出实验内容、出现问题及解决方案,完成以下工作: 1.管理事务的命令分别是什么? 2.简述事务的工作原理; 3.简述锁的类型和其兼容性; 4.写出报表服务配置的方法; 5.写出创建报表的方法。

五、问题解答及实验结果

1.BEGIN TRANSACTION

BEGIN DISTRIBUTED TRANSACTION COMMIT TRANSACTION ROLLBACK TRANSACTION SAVE TRANSACTION SET IMPLICIT_TRANSACTION

2.事务确保数据的一致性和可恢复性。事务开始之后,事务所有的操作都陆续写到事务日志中。写到事务日志中的操作一般有两种:一种是针对数据的操作,一种是针对任务的操作。针对数据的操作如插入、删除和修改,这是典型的事务操作,这些操作的对象是大量的数据。有些操作是针对任务的,例如创建索引,这些任务操作在事务日志中记录一个标志,用于表示执行了这种操作。当取消这种事务时,系统自动执行

54

这种操作的反操作,保证系统的一致性。

系统自动生成一个检查点机制,这个检查点周期地发生。检查点的周期是系统根据用户定义的时间间隔和系统活动的频度由系统自动计算出来的时间间隔。检查点周期地检查事务日志,如果在事务日志中事务全部完成,那么检查点将事务日志中的该事务提交到数据库中,并且在事务日志中做一个检查点提交标记。如果在事务日志中事务没有完成,那么检查点将事务日志中的该事务不提交到数据库中,并且在事务日志中做一个检查点未提交标记。

3.锁定资源的方式有两种基本形式,一种形式是读操作要求的共享锁,另一种形式是写操作要求的排它锁。除了这两种基本类型的锁,还有一些特殊情况的锁,例如意图锁、修改锁和模式锁。在这些各种类型的锁中,某些类型的锁之间是可以兼容的,但大多数类型的锁之间是不兼容的。

4. (1)用鼠标点击“开始→程序”,然后选择“Microsoft SQL Server 2005”,接下来选择“配置工具”,然后选择报表服务配置。

(2)确定后点击连接即可进入到配置报表服务器窗口。

(3)点击左边功能选项中的第二项报表服务器虚拟目录配置选项,会出现配置选项界面。点击右面名称后面的新建按钮,则会出现创建新的虚拟目录配置选项对话框。

(4)点击数据库安装配置选项,则会出现数据库连接配置界面,点击服务器名称旁边的连接按钮,出现SQL Server连接对话框

(5)点击左边配置选项中的初始化配置选项。可以进入到初始化界面。确认以上的选项都配置好之后,点击界面上的初始化按钮即可将上述一系列的配置选项进行初始化成实例供报表项目发布使用。至此已经完成了最基本的报表服务配置。其余的几项均为可选配置,如有需要可以参考前面的功能配置说明进行相应的配置。

5. (1)点击开“开始→程序”。选择“Microsoft SQL Server 2005”,选择“SQL Server Business Intelligence Development Studio”,打开Microsoft Visual Studio开发环境,并且显示开发环境默认的起始页。点击菜单栏上的“文件”,然后选择“新建”,再选择“项目”。 (2)打开新建项目对话框。在左边的项目类型中选择“商业智能项目”,在右边的“模板”列表中选择“报表服务器项目”,然后在下面的名称框中输入报表项目的名称。点击右边“解决方案管理器”,可以显示的example项目的解决方案。

(3)在报表上单击右键弹出快捷菜单选择“添加”,选择“新建项”,出现添加新项的对话框。在模板中单击“报表”选项,在名称中输入报表模板的名称。点击添加按钮后系统将打开一个包含“数据”、“布局”和“预览”选项卡的视图。系统将在“数据”视图中打开此报表

(4)点击数据集旁边的下拉列表框,并选择“新建数据集”。此时,系统将显示 “数据源”对话框。点击连接字符串旁边的编辑按钮,则弹出连接属性选择框。

六、实验体会和收获

通过这节课的学习,我熟悉了SQL Server 2005的并发性概念和特点以及事务的概念、工作原理、事务的类型及管理;还了解了报表服务管理的概念、特点、功能、报表服务的体系结构;不仅掌握了报表服务配置的方法,而且还掌握了创建报表的方法。

55

因篇幅问题不能全部显示,请点此查看更多更全内容

Top