2012春数据库实验指导—SQL Server 2000

更新时间:2024-03-06 22:03:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

梁文娟

目录

实验1 SQL Server的安装及管理工具的使用 ......................... 3 实验2 交互式SQL ..................................................................... 3 实验3 实验4 实验5 实验6 数据完整性和安全性管理 ........................................... 38 触发器和存储过程实验 ............................................... 38 数据库备份与恢复 ....................................................... 49 数据库设计综合应用 ................................................... 50

实验1 SQL Server的安装及管理工具的使用

一、实验目的

? 掌握SQL Server 2000的安装

? 了解SQL Server 2000的组织结构和操作环境 ? 熟悉SQL Server 2000的基本使用方法

二、背景知识

SQL Server 2000是Microsoft公司推出的高性能的客户端/服务器结构的关系数据库管理系统,它继承了SQL Server 7.0版本的高性能、可靠性、易用性和可扩充性的优点,同时又增加了一些新的特性,使其成为一种领先的数据库管理系统,可用于联机事务处理(OLTP)、数据仓库及电子商务等。

三、实验内容

1.安装Microsoft的数据库服务软件SQL Server 2000

运行服务器目录SQL2000下的可执行文件autorun.exe,进行SQL Server 2000的安装。安装主界面如图1-1所示。

图1-1

选择安装SQL Server 2000组件,出现组件安装界面,如图1-2所示。

图1-2

选择安装数据库服务器,进入SQL Server 2000的安装向导,如图1-3所示。

图1-3

点击“下一步”,到计算机名称对话框,如图1-4所示。

图1-4

“本地计算机”是默认选项,本地计算机的名称就显示在上面,点击“下一步”,出现安装选择对话框,如图1-5所示。

图1-5

选择“创建新的SQL Server实例,或安装客户端工具”,点击“下一步”,出现用户信息对话框,如图1-6所示。

图1-6

输入姓名和公司名称后,点击“下一步”,出现软件许可协议,如图1-7所示。

图1-7

点“是”按钮,出现安装定义对话框,如图1-8所示。

图1-8

选择“服务器和客户端工具”,点击下一步,出现实例名对话框,如图1-9所示。

图1-9

系统提供了“默认”复选框,点击下一步,出现安装类型选择框,如图1-10所示。

图1-10

选择典型,点击“下一步”,出现服务帐户对话框,如图1-11所示。

图1-11

接受系统的缺省值,点击“下一步”,出现身份验证模式窗口,如图1-12所示。

图1-12

接受系统的缺省值,点击“下一步”,出现开始拷贝文件窗口,如图1-13所示。

图1-13

点击“下一步”,开始将文件拷贝到选择的目录中,如图1-14所示。

图1-14

文件拷贝完成后,出现安装结束界面,如图1-15所示。

图1-15

点击“完成”按钮,完成SQL Server 2000的安装。

安装完毕后,单击“开始”->“程序”->“Microsoft SQL Server”,看到如图1-16所示的SQL Server 2000程序组内容。

图1-16

2. SQL Server 2000的文件目录

SQL Server数据库系统中的所有文件可以分为三种:系统文件、程序文件和数据文件。 ① 系统文件只能安装在主机的系统目录下,系统文件位置无法更改。

② 默认情况下,共享工具安装在 \\Program Files\\Microsoft SQL Server\\80\\Tools目录中。此文件夹包含由所有 SQL Server 2000 实例(默认实例和命名实例)共享的文件。这些工具包含 SQL Server 联机丛书、开发工具和其它组件。

③ 对于 SQL Server 的默认实例,程序和数据文件的默认目录是 \\Program Files\\Microsoft SQL Server\\Mssql。可以为程序文件和数据文件指定默认路径以外的文件路径。

④ SQL Server 程序文件位于 \\Program Files\\Microsoft SQL Server\\Mssql\\Binn 目录中。程序文件的位置是安装程序创建文件夹所在的根目录,而这些文件夹包含程序文件以及通常

在使用 SQL Server 时不会更改的文件。尽管这些文件不是只读文件,但是文件夹不包含数据、日志、备份文件或复制数据,因此,当使用 SQL Server 时这些文件的空间需求不会增加。

⑤ SQL Server 数据文件位于 \\Program Files\\Microsoft SQL Server\\Mssql\\Data 目录中。数据文件的位置是安装程序创建文件夹(其中包含数据库和日志文件)所在的根目录,以及系统日志、备份和复制数据所在的目录。安装程序为 master、model、tempdb、msdb、pubs 和 Northwind 数据库创建数据库和日志文件。SQL Server 数据文件路径应该位于有足够空间供这些文件增大的驱动器上。

3. 启动和停止SQL Server服务

应用程序在使用 SQL Server 数据库之前,必须连接到一个SQL Server实例,如:LWHNOTE。SQL Server服务的启动和停止由SQL Server 2000程序组中的“服务管理器”来管理。下面介绍四种方法来启动和停止SQL Server服务。

方法1:使用服务管理器启动和停止SQL Server服务。

单击“开始”->“程序”->“Microsoft SQL Server”->“服务管理器”,弹出如图1-17所示的“SQL Server服务管理器”窗口,选择服务器(如:LWHNOTE)和服务选项(如:SQL Server),若没有启动,按下

,即可启动SQL Server服务,若已经启动,按下

即可停止SQL Server服务。若选中了复选框“当启动OS时自动启动服务”,则下次开机时系统即可自动启动SQL Server。

图1-17 SQL Server服务管理器

启动SQL Server服务后,在Windows任务栏的右边会显示正在运行的SQL Server,如图1-18所示,表示SQL Server正在运行。

图1-18 SQL Server在状态栏中的状态

方法2:用操作系统控制面板中的服务管理程序启动和停止SQL Server服务。 单击“开始”->“设置”->“控制面板”->“管理工具”->“服务”,弹出如图1-19所示的“服务”对话框。

图1-19 Windows服务

在“服务”对话框中,用鼠标右击要启动的服务器名称,即:MSSQLSERVER,弹出菜单后,选择“启动”菜单项,就可启动SQL Server服务了。图1-20表示MSSQLSERVER服务已启动。

图1-20 MSSQLSERVER服务已启动

采用类似的方法,也可以停止SQL Server。

方法3:用命令方式启动和停止SQL Server服务。

采用net start mssqlserver命令启动SQL Server。如图1-21所示。

图1-21 使用命令方式启动SQL Server服务

采用net stop mssqlserver命令启动SQL Server。如图1-22所示。

图1-22 使用命令方式停止SQL Server服务

方法4:使用企业管理器启动和停止SQL Server服务。

单击“开始”->“程序”->“Microsoft SQL Server”->“企业管理器”,弹出如图1-23所示的企业管理器窗口,图中所示的SQL Server服务处于停止状态。

图1-23 SQL Server企业管理器(SQL Server服务已停止)

在企业管理器中所要启动的服务器上(如:LWHNOTE)鼠标右击,从快捷菜单中选择“连接”即可启动SQL Server服务,如图1-24所示。

图1-24 SQL Server企业管理器(SQL Server服务已启动)

类似的方法,可以停止SQL Server。

4. 使用企业管理器

在企业管理器中几乎能实现所有对SQL Server的操作,操作的主要手段是在企业管理器界面中不同对象上通过快捷菜单来进行。企业管理器是一个对初学者来说最重要的管理工具,在以后的内容会经常使用。

5. 使用查询分析器

在SQL Server程序组中,查询分析器也是最常用的管理工具之一。单击“开始”->“程序”->“Microsoft SQL Server”->“查询分析器”,弹出如图1-22所示的“连接到SQL Server服务器”对话框。用户输入SQL Server服务器的名称和身份验证后,即可进入查询分析器。注:身份验证可以使用“Windows身份验证”或“SQL Server身份验证”。图1-25选择的是“SQL Server身份验证”方式,图1-26选择的是“Windows身份验证”方式。

图1-25 采用Windows身份验证连接到SQL Server服务器

图1-26 采用SQL Server身份验证连接到SQL Server服务器

登录成功后,即可进入如图1-27所示的查询分析器中。在查询分析器中可以输入并执行各种SQL 命令,例如,在查询分析器工具栏上数据库组合框中选择pubs数据库,在查询窗口中输入“select * from authors”命令,再单击查询分析器工具栏上的“执行查询”按钮(或按F5键),执行后查询窗口分为上下两部分,下部分显示了查询执行结果。

图1-27 查询分析器

还可以在查询器中查询目前使用的SQL Server的版本,输入SQL查询语句“SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')”,则在下部分可以显示当前使用的软件的版本信息。

注:以后很多命令操作均可在查询分析器中完成,如:各种查询命令实验、SQL文件编写、存储过程和触发器文件的编写等。

6. 使用联机丛书

有三种方式可以启动SQL Server联机丛书:使用帮助菜单、帮助按钮或按“F1”键,如图1-28所示。

1-28 启动SQL Server联机丛书的三种方式

打开SQL Server联机丛书后,按如下方式输入要查找的关键字,如图1-29所示,输入查找关键字“CREATE DATABASE”。

图1-29 输入查找关键字

然后按下“回车”键,显示与查询关键字相关的查询主题,双击查询主题,如图1-30所示。

图1-30 选择查询主题

即可在窗口的右边显示相关查询主题的使用参考,如图1-31所示。

图1-31 相关查询主题的参考

四、实验报告要求

1、给出安装过程中出现的错误及解决方法。

2、根据你所了解的SQL Server 2000工具,写出部分主要组件(如企业管理器、查询分析器、服务管理器等)的功能。

实验2 交互式SQL

任务1 用企业管理器创建数据库及表

一、实验目的

SQL Server 2000的启动和管理工作由服务管理器和企业管理器来实现。

本次实验了解SQL Server 2000的启动,熟悉如何使用企业管理器建立数据库和表,并加深对于完整性的理解。

二、背景知识

在使用数据库的过程中,接触最多的就是数据库中的表。表是数据存储的地方,是数据库中最重要的部分,管理好表也就管理好了数据库。

表是由行和列组成的。创建表的过程主要就是定义表的列的过程。表的列名在同一个表中具有唯一性,同一列的数据属于同一种数据类型。除了用列名和数据类型来指定列的属性外,还可以定义其它属性:是否为空、默认值、标识符列、全局唯一标识符列等。

约束是SQL Server提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件。在SQL Server中有5种约束:主关键字约束(Primary Key Constraint)、外关键字约束(Foreign Key Constraint)、惟一性约束(Unique Constraint)、检查约束(Check Constraint)和默认约束(Default Constraint)。

三、实验内容

1.启动数据库服务软件SQL Server 2000:

在程序菜单中选择Microsoft SQL Server,如图2-1所示:

图2-1

再选中服务管理器,如图2-2所示:

图2-2

点击服务管理器后,出现SQL Server服务管理器,如图2-3所示:

图2-3

点击“开始/继续”按钮,启动SQL Server 2000数据库服务。

启动成功后,在时钟旁边出现一个符号,如图2-4所示。

图2-4

2.在SQL Server 2000中建立数据库:

在程序菜单中选择Microsoft SQL Server,如图2-5所示:

图2-5

再选中企业管理器,如图2-6所示:

图2-6

点击企业管理器后,出现企业管理器的主界面,如图2-7所示:

图2-7

点击左边树状控制栏的+/-号可以打开和关闭SQL Server组中的本地服务项目,在选中数据库服务项目后,单击鼠标右键,出现数据库的菜单,如图2-8所示:

图2-8

点击新建数据库,出现新建数据库窗口,如图2-9所示:

图2-9

输入数据库名称:Test,点击数据文件选项卡,如图2-10所示:

图2-10

在数据文件中,你可以设定数据文件的名称,所在目录以及文件的大小等信息。完成后点击事务日志选项卡,如图2-11所示:

图2-11

事务日志中,你可以设定日志文件的名称,所在目录以及文件的大小等信息。 接受系统的缺省值,点击确定按钮,完成数据库的新建,如图2-12所示。

图2-12

3.在Test数据库上建立表:

点击数据库Test前面的+号,打开数据库的各种属性,如图2-13所示:

图2-13

选中“表”的属性,单击鼠标右键,出现表的菜单,如图2-14所示:

图2-14

点击新建表按钮,出现新建表窗口,如图2-15所示:

图2-15

输入列名,数据类型,长度等信息,点击示:

图标,出现选择表名窗口,如图2-16所

图2-16

输入表名,点击确定按钮,将新建的表存盘。

四、实验任务

1.用数据库SQL Server 2000的服务管理器启动数据库服务;

2.用数据库SQL Server 2000的企业管理器建立一个新数据库Test(可任意取名)。

3.在数据库Test中,建立如下所示的三个表: Employee表 列名 EmployeeID Name Birthday Sex Address Zip PhoneNumber EmailAddress DepartmentID Departments表 列名 DepartmentID DepartmentName Note Salary表 列名 EmployeeID Income OutCome 数据类型 Char Float Float 长度 6 8 8 是否允许为空 否 否 否 说明 员工编号,外键 收入 支出 数据类型 Char Char Text 长度 3 20 16 是否允许为空 否 否 是 说明 员工部门号,主键 部门名 备注 数据类型 Char Char Datetime Bit Char Char Char Char Char 长度 6 10 8 1 20 6 12 30 3 是否允许为空 否 否 否 否 是 是 是 是 否 说明 员工编号,主键 姓名 出生日期 性别 地址 邮编 电话号码 电子邮件地址 员工部门号,外键 4.对三张表输入数据(可任意输入,但注意要符合完整性要求,否则会出错) 五、实验报告要求

1、要求给出在企业管理器中如何创建表间的外键关联; 2、画出这三个表的关系图;

3、举例说明如何操作会违背完整性(实体完整性、参照完整性)。

任务2 使用查询分析器

一、实验目的

SQL Server 2000的查询分析器是一种特别用于交互式执行SQL语句和脚本的极好的工具。

本次实验了解SQL Server 2000查询分析器的启动,熟悉如何在SQL Server 2000查询分析器中建表、插入记录、查询记录。

二、预计实验时间:上机二~三次

三、实验内容

1.启动数据库服务软件SQL Server 2000的查询分析器: 在程序菜单中选择Microsoft SQL Server,如图3-1所示:

图3-1

再选中查询分析器,如图3-2所示:

图3-2

点击查询分析器后,出现连接到SQL Server窗口,如图3-3所示:

图3-3

选择本地服务(Local),点击确定按钮。

再点击连接到SQL Server窗口的确定按钮。出现SQL查询分析器主界面,如图3-5所示。

图3-5

选择查询菜单,点击更改数据库,如图3-6所示。

图3-6

出现选择数据库窗口,如图3-7所示。

图3-7

选择在上次实验中建立的数据库Test,点确定按钮。 2.在查询分析器中建立表:

在查询分析器的查询窗口中输入SQL语句,如图3-8所示。

图3-8

点击按钮,执行该SQL语句,在查询窗口下部出现一个输出窗口,如图3-9所示。

图3-9

提示命令成功完成,或者报告出错信息。 3.查询分析器中向表添加数据:

在查询分析器的查询窗口中输入SQL语句,如图3-10所示。

图3-10

点击按钮,执行该SQL语句,在查询窗口下部出现一个输出窗口,如图3-11所示。

图3-11

从表中查询数据:

在查询分析器的查询窗口中输入SQL语句,如图3-12所示。

图3-12

点击按钮,执行该SQL语句,在查询窗口下部出现一个输出窗口,如图3-13所示。

图3-13

四、实验任务

1.打开数据库SQL Server 2000的查询分析器,用SQL语言建立实验二中给出的三张表,要求建表时给出主外键约束、唯一约束、取空值约束、用户自定义的约束等。 2.练习使用SQL语句向三张表中插入部分数据。 3.练习下面简单的查询语句:

a) 查询每个雇员的所有信息 b) 查询每个雇员的地址和电话

c) 查询EmployeeID为000001的雇员的地址和电话。 d) 查询女雇员地址和电话,并用AS子句将结果中各列的标题分别指定为“地址”和“电话”。

e) 计算每个雇员的实际收入。 f) 找出所有姓王的雇员的部门号。

思考:找出所有地址中含有“中山”的雇员的号码和部门号。

五、实验报告要求

1、写出建表的SQL语句(包含各种约束);

2、从实验任务3中规定的六条查询里任选三条,写出其SQL语句; 3、并记录在使用SQL语句过程中遇到的问题及解决办法。

任务3 DML的数据查询

一、实验目的

DML的数据查询指对数据库中的数据查询、统计、分组、排序等操作。查询语句可以分为简单查询、连接查询、嵌套查询和组合查询。

本次实验了解DML语言的SELECT语句对数据的查询,学会SQL Server 2000的查询分析器中用DML语言对表中的数据进行连接查询和嵌套查询。

二、预计实验时间:一~二次上机

三、实验内容

1.启动数据库服务软件SQL Server 2000的查询分析器,用SELECT语句对表进行简单查询操作,整个查询过程只涉及到一个表,是最基本的查询语句。 语法格式如下:

Select <目标列组> From <数据源> [Where <元组选择条件>] [Group by <分组列> [Having <组选择条件>]] [Order by <排序列1> <排序要求> [, …n]]

2.用SELECT语句对表进行连接查询操作,连接查询涉及被连接和连接两个表,所以数据源一般为多个表。用来连接两个表的条件称为连接条件,一般格式为: [<表名1>.]<列名1> <比较运算符> [<表名2>.]<列名2> 其中比较运算符主要有:=、>、<、>=、<=、!=。

3.用SELECT语句对表进行嵌套查询操作,一个Select…From…Where语句称为一个查询块,将一个查询块嵌套在另一个查询块的Where子句或Having短语的条件中的查询,就是嵌套查询。主要有使用In操作符、使用比较运算符的嵌套查询方式。

四、实验任务 Departments表: DepartmentID 1 2 3 Employee表 EmployeeID Name Birthday Sex Address Zip 1001 1002 1003 2001 2002 2003 3001 3002 Salary表

DepartmentName 财务部 研发部 人力资源部 Note 财务部 研发部 人力资源部 PhoneNumber EmailAddress ly@henu.edu.cn lc@henu.edu.cn zl@henu.edu.cn ly@henu.edu.cn zm@henu.edu.cn xj@henu.edu.cn zj@henu.edu.cn DepartmentID 1 1 2 2 2 3 3 李勇 王敏 刘晨 张立 刘毅 张玫 徐静 赵军 78-3-12 80-11-2 78-6-22 78-8-1 82-1-23 81-3-15 76-8-12 79-2-19 0 1 0 0 0 1 1 0 河南 河南 河南 河南 河南 河南 河南 河南 475001 3880378 475002 0378311 475003 0378322 475004 0378333 475005 0378344 475006 0378355 475007 0378366 475008 0378377 wm@henu.edu.cn 1

EmployeeID 1001 1002 1003 2001 2002 2003 3001 3002 Income 3600 3300 3700 4000 3800 3800 4200 4100 OutCome 1500 1000 1200 1600 1800 1500 2000 1800 1.下列查询任务用来练习多表连接查询。

a) 查询每个雇员的情况及工资情况(工资=Income - Outcome) b) 查询财务部工资在2200元以上的雇员姓名及工资情况 c) 查询研发部在1966年以前出生的雇员姓名及其工资详情 d) 查询人力资源部雇员的最高和最低工资 e) 将各雇员的情况按工资由低到高排列 f) 求各部门的雇员数 Select count(*)

From Employee E, Department D

Where E. DepartmentId =D. DepartmentId Group by E. DepartmentId

g) 找出所有在财务部和人力资源部工作的雇员的编号

2.下列查询任务用来练习嵌套查询。

h) 统计人力资源部工资在2500以上雇员的人数 Select count(*) From Employee

Where DepartmentId in (select ) i) 求财务部雇员的总人数 j) 求财务部雇员的平均工资

k) 查找比所有财务部的雇员工资都高的雇员的姓名

l) 查找财务部年龄不低于研发部所有雇员年龄的雇员的姓名 m) 查找在财务部工作的雇员的情况

3.将课本P104-108 [例38]~~[例43]用带EXISTS谓词的子查询来做等价替换,写出相应的查询语句。

五、实验报告要求 写出与上述查询任务相对应的SQL查询语句,并记录在实验过程中遇到的问题、解决办法及心得体会。

任务4 视图的定义和操作

一、实验目的:

理解视图的概念,掌握视图的使用方法。

二、预计实验时间:上机一次

三、实验过程

1. 参照前面实验中完成的查询,按如下要求自行设计视图:

1)基于单个表按投影操作定义视图。

举例:定义一个视图用以查看所有员工的编号、姓名和出生日期。 2)基于单个表按选择操作定义视图。

举例:定义一个满足sex=1的员工的所有信息的视图。 3)基于单个表按选择和投影操作定义视图。

举例:定义一个视图用以查看部门号码为‘2’的所有员工的姓名、电话和邮件地址。 4)基于多个表根据连接操作定义视图。

举例:定义一个视图用以查看所有员工的姓名、部门名及工资。 5)基于多个表根据嵌套查询定义视图。

举例:定义一个视图用以查看各部门的雇员的平均工资。 Creat view v5(DepartmentID ,EmployeeID, salary) As

select DepartmentID, Employee .EmployeeID ,Income-OutCome as salary from Employee,Salary

where Employee.EmployeeID=Salary.EmployeeID

select DepartmentID,avg(salary) from v5

group by DepartmentID 或者

Create view v5(AvgSalary) As

Select avg(Income-OutCome) From salary

Where DepartmentID in

(select DepartmentID

From Employee

group by DepartmentID)

6)定义含有虚字段(即基本表中原本不存在的字段)的视图。 举例:定义一个视图用以查看所有雇员的编号、姓名、年龄。 Creat view v6(EmployeeID, Name,Age) As

Select EmployeeID, Name, datediff(year, Birthday,getdate()) /* 2009-datepart(yy,birthday)

From Employee

2. 分别在定义的视图上进行查询、插入、更新和删除操作,分情况(查询、更新)讨论哪些操作可以成功完成,哪些不能成功完成,并分析原因。

四、实验报告要求:

1、在实验报告中要给出具体的视图定义要求;

2、分情况讨论那些操作可以成功完成,哪些不能成功完成。 查询操作:举出一个进行查询操作的例子。

更新操作:更新操作包含插入、更新、删除,针对不能成功完成更新操作的情况举出两个例子,并分析原因。

实验3 数据完整性和安全性管理

任务1 数据库完整性管理

一、实验目的

1.掌握域完整性的实现方法。 2.掌握实体完整性的实现方法。 3.掌握参照完整性的方法。 二、实验内容

1.使用界面方式创建规则对象,并绑定到列,实现域完整性。 2.为表添加一个标识列,实现实体完整性。 3.为两表建立关联,实现参照完整性。 三、实验步骤 1.实现域完整性

①启动SQL Server企业管理器,打开“SQL Server Enterprise Manager”窗口。

②选择要创建规则对象的数据库文件夹,并在右边的对象窗口中选择其中的“规则”对象。选择“操作”菜单中的“新建规则”命令,打开“规则属性”对话框。 ③设置形如“(区号)电话号码”的联系电话格式检查规则,单击“确定”按钮,完成规则对象的定义。

④打开“规则”对象,并选中刚才定义的规则对象RO_联系电话格式。选择“操作”菜单中的“属性”命令,打开“规则属性”对话框。

⑤单击“绑定列”按钮,打开“将规则绑定到列”对话框,完成到列的绑定,关闭“规则属性”对话框。

⑥在对象窗口中选择并打开其中的“表”对象,选中student表(以教材中学生选课数据库sc为例,假如该表中有相关属性列)并打开。

⑦在表中分别插入两行新记录,其中一行的联系电话格式为指定的格式,另一行的联系电话格式为非法格式。

当插入第一行时,系统成功地插入了新数据行,但无信息返回;而在插入第二行时系统提示错误信息,拒绝接受非法格式的联系电话,从而保证了域完整性。

⑧单击“确定”按钮,取消插入,并关闭表的数据记录窗口。 2.实现实体完整性

①在对象窗口中选择并打开其中的“表”对象,选中course表。 ②选择“操作”菜单中的“设计表”命令,打开表编辑器窗口。 ③添加一个标识列,种子值为1,递增量也为1。

④点击快捷工具拦上的快捷按钮,完成标识列的添加,然后关闭编辑窗口。

⑤选中course表并打开表的数据记录窗口。

可以看到,系统自动为每行的标识列填充了值,并从1开始,依次递增,这样,表中的每一数据行都可以由标识列唯一标识,实现了实体完整性。

⑥关闭表的数据记录窗口。 3.实现参照完整性

①在对象窗口中选择打开其中的“表”对象,选中sc表。

②先择“操作”菜单中的“设计表”命令,打开表编辑器窗口。

③点击快捷工具拦上的快捷按钮,打开“属性”对话框的“关系”选项卡。 ④为student表和sc表建立基于学号列的关系。

(此图只是列举了一个例子和本实验中用到的表名称不一致)

⑤选中student表,并选择“操作”菜单中“打开表”子菜单下的“返回所有行”命令,打开表的数据记录窗口。

⑥将表中的值为“020101”的学号都修改为“020111”。

由于student表中不存在值为“020111”的学号,所以系统提示错误信息,拒绝接受不存在的学号,从而保证了参照完整性。 ⑦单击“确定”按钮,取消修改,并关闭表的数据记录窗口。

任务2 实现数据库安全管理

一、实验目的

1.了解SQL Server 2000 的身份验证方法。 2.掌握合法登录帐户的设置。 3.掌握数据库用户的设置。 4.掌握数据库角色的设置。 5.掌握用户的权限管理方法。 二、实验内容

1.Windows和SQL Server2000身份验证的比较。 2.设置登录帐户。 3.设置数据库用户。 4.设置数据库角色。 5.设置数据库用户权限。 三、实验步骤

1.使用企业管理器选择和设置身份验证模式

① 打开企业管理器,在“树”窗口中展开一个服务器组,然后选择希望设置身份验证模式的服务器。

② 在该服务器上单击鼠标右键,在弹出的菜单中选择命令“属性”,打开“属性”对话框。

③ 在属性对话框中选择“安全性”选项卡,在“身份验证”区域中选择下列身份验证模式之一。

? SQL Server和Windows:指定用户可以使用SQL Server身份验证和

Windows身份验证连接到SQL Server。

? 仅Windows:指定用户只能使用Windows身份验证连接SQL Server。 ④ 单击“确定”按钮,即可完成身份验证模式的选择和设置。

2.使用企业管理器创建登录账户

⑤ 打开企业管理器,展开希望创建新的登录的服务器。 ⑥ 展开文件夹“安全性”,在登录节点上单击鼠标右键。 ⑦ 从弹出的菜单中选择“新建登录”,打开“新建登录”窗口。 ⑧ 在“新建登录”窗口的“常规”选项卡中进行如下配置: ? 在“名称”文本框中输入一个SQL Server登录的账号名。 ? 选择一种登录模式。 ? 在“默认设置”区选择连接时默认的数据库和语言。

⑨ 在“新建登录”窗口的“数据库访问”选项卡,选择允许登录账户访问的数据库和分配给登录账户的数据库角色。 ⑩ 单击“确定”按钮,完成登录模式的创建。

3.使用企业管理器新建数据库用户

? 打开企业管理器,在树形目录中展开指定的数据库节点。 ? 选中该数据库节点的下一级节点“用户”,单击鼠标右键,在弹出的菜单中选择“新建数据库用户”。

4.使用企业管理器创建数据库角色

? 打开企业管理器,在树形目录中展开指定的数据库节点。 ? 选中该数据库节点的下一级节点“角色”,单击鼠标右键,在弹出的菜单中选择“新建数据库角色”。

? 在弹出的“数据库角色属性-新建角色”对话框中,进行如下操作: ? 输入名称:输入新建数据库角色的名称 ? 选择角色类型:选择标准角色 ? 添加用户:单击“添加”按钮向角色中添加用户 ? 单击“确定”按钮,完成数据库角色的创建。 ? 设置该数据库角色的权限。

5.使用企业管理器管理对象权限

? 打开企业管理器,展开指定的数据库节点。

? 选中需要查看或修改权限的数据库对象,展开该库对象,在其中某一张表上单击鼠标右键,选择菜单命令“属性”,打开“表属性”对话框。 ? 在“表属性”对话框中单击“权限”按钮,打开权限选项卡,选择相应的访问权限。

? :授予权限,表示允许某个用户或角色对一个对象执行某种操作。 ? :禁止权限,表示在不撤销用户访问权限的情况下,禁止某个用户

或角色对一个对象执行某种操作。

空:剥夺权限,表示不允许某个用户或角色对一个对象执行某种操作。

21 还可以单击一个特定的用户或角色,然后单击“列”按钮,打开“列权限”对话框,将权限控制到字段的级别。

22 单击“确定”按钮,完成对象权限的设置。

实验4 触发器和存储过程实验

任务1 触发器实验

一、实验目的

? 掌握触发器的创建、修改和删除操作。 ? 掌握触发器的触发执行。 ? 掌握触发器与约束的不同。

二、实验要求

1.创建触发器。

2.触发器执行触发器。

3.验证约束与触发器的不同作用期。 4.删除新创建的触发器。

三、实验内容

(一)示例

1.创建触发器

①启动SQL Server 查询编辑器,选择要操作数据库,如“sc(学生选课)”数据库。 ②在查询命令窗口中输入以下CREATE TRIGGER语句,创建触发器。

为sc(学生选课)表创建一个基于UPDATE操作和DELETE操作的复合型触发器,当修改了该表中的成绩信息或者删除了成绩记录时,触发器被激活生效,显示相关的操作信息。

--创建触发器

CREATE TRIGGER tri_UPDATE_DELETE_sc ON sc

FOR UPDATE,DELETE AS

--检测成绩列表是否被更新 IF UPDATE(成绩) BEGIN

--显示学号、课程号、原成绩和新成绩信息 SELECT INSERTED.课程号,DELETED.成绩AS原成绩, INSERTED.成绩AS新成绩 FROM DELETED ,INSERTED

WHERE DELETED.学号=INSERTED.学号 END

--检测是更新还是删除操作 ELSE IF COLUMNS_UPDATED( )=0 BEGIN

--显示被删除的学号、课程号和成绩信号

SELECT 被删除的学号=DELETED.学号,DELETED.课程号, DELETED.成绩AS原成绩 FROM DELETED END ELSE

--返回提示信息 PRINT ‘ 更新了非成绩列!’

③点击快捷工具栏上的快捷按钮,完成触发器的创建。 2.触发触发器

①在查询命令窗口中输入以下UPDATE sc语句,修改成绩列,激发触发器。

UPDATE sc

SET成绩=成绩+5

WHERE 课程号=’101’

②在查询命令窗口中输入以下UPDATE sc语句修改非成绩列,激发触发器。

UPDATE sc

SET 课程号=’113’ WHERE 课程号=’103’

③在查询命令窗口中输入以下DELETE sc 语句,删除成绩记录,激发触发器。

DELETE sc

WHERE 课程号=’102’

3. 比较约束与触发器的不同作用期

①在查询命令窗口中输入并执行以下ALTER TABLE 语句,为sc表添加一个约束,使得成绩只能大于等于0且小于等于100。

ALTER TABLE sc

ADD CONSTRAINT CK_成绩

CHECK(成绩>=0 AND成绩<=100)

②在查询命令窗口中输入并执行以下UPDATE sc语句,查看执行结果。

UPDATE sc SET成绩=120

WHERE 课程号=’108’

③在查询命令窗口中输入执行以下UPDATE sc语句,查看执行结果。

UPDATE sc SET成绩=90

WHERE 课程号=’108’

从这部分实验中,我们可以看到,约束优先于触发器起作用,它在更新前就生效,以对要更新的值进行规则检查。当检查到与现有规则冲突时,系统给出错误消息,并取消更新操作。如果检查没有问题,更新被执行,当执行完毕后,再激活触发器。

4. 删除新创建的触发器

①在查询命令窗口中输入DROP TRIGGER 语句,删除新创建的触发器。

DROP TRIGGER tri_UPDATE_DELETE_sc

②点击快捷工具栏上的快捷按钮,删除触发器。 (二)练习

1.在Student表中编写insert的触发器,假如每个班的学生不能超过30个,如果低于

此数,添加可以完成;如果超过此数,则插入将不能实现。

2.在SC表上编写update触发器,当修改SC表中的grade字段时将其修改前后的信息保存在SC_log表中。

四、实验报告要求

1、写出与上述任务相对应的SQL语句

2、并记录在实验过程中遇到的问题、解决办法及心得体会。

任务2 存储过程实验

一、实验目的

? 掌握用户存储过程的创建操作。 ? 掌握用户存储过程的执行操作。 ? 掌握用户存储过程的删除操作。

二、实验内容

1、创建带输入参数的存储过程的存储过程。 2、执行所创建的存储过程。 3、删除所有新创建的存储过程。

三、实验步骤

对应于student数据库

(1) 创建一个无参存储过程StuScoreInfo,查询以下信息:学号,姓名,性别,课程名称,考试成绩. (2) 创建一个带参数的存储过程stu_info,该存储过程根据传入的学生编号在student表中查询此学生的信息.

(3) 创建一个带参数的存储过程StuScoreInfo2,该存储过程根据传入的学生编号和课程名称查询以下信息:姓名,课程名称,考试成绩.

(4) 编写带参数的存储过程,根据传入的课程名称统计该课程的平均成绩.

(5) 编写存储过程,根据传入的课程名统计这门课的成绩分布情况,即按照各分数段统计人数.

四、实验报告要求

1、写出与上述任务相对应的SQL语句

2、并记录在实验过程中遇到的问题、解决办法及心得体会。

实验5 数据库备份与恢复

一、实验目的

? 熟悉数据库备份及恢复机制;

? 了解SQL Server的数据备份和恢复机制;

? 掌握SQL-Server中数据库备份和恢复的方法。

二、实验内容

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

1. 针对数据库stu创建完全数据库备份集stu.bak,目标磁盘为D:\\ user \\ stu.bak; 2. 在数据库stu中新建数据表ceshi,内容自定,然后针对数据库stu创建差异备份; 3. 向数据库stu的数据表ceshi插入部分记录,然后针对数据库stu创建事务日志备

份;

4. 根据需要,将数据库恢复到数据库stu的最初状态; 5. 根据需要,将数据库恢复到创建数据表ceshi后的状态; 6. 根据需要,将数据库恢复到在ceshi表插入记录后的状态; 7. 针对现有数据库stu创建完全文件和文件组备份集stu_file,目标磁盘为D:\\ user

\\ stu_file.bak;

8. 在当前数据库中新建数据表ceshi2,然后针对数据库stu创建差异文件和文件组

备份;

9. 向数据库stu的数据表ceshi2插入部分记录,然后针对数据库stu创建事务日志

文件和文件组备份;

10. 根据需要,将数据库以文件和文件组方式恢复到创建数据表ceshi2后的状态; 11. 根据需要,将数据库以文件和文件组方式恢复到数据表ceshi2插入记录后的状态;

三、思考

? 说明数据库的备份和恢复的基本步骤;

? SQL Server中的完全备份、事务日志备份和增量备份形式的功能特点;

四、实验报告要求

1、写出与上述任务相对应的SQL语句

2、并记录在实验过程中遇到的问题、解决办法及心得体会。

实验6 数据库设计综合应用

一、实验任务与要求

目的与任务:

1. 掌握数据库设计和实现的基本过程

2. 掌握数据库模式设计、分析和实现的方法 3. 了解数据库应用系统软件开发的一般过程。 实验基本要求:

(1)学习相关的预备知识

(2)按照数据库设计与实现过程完成数据库的设计,应用程序的开发,上机调试、运行 (3)写出课程设计报告

二、课程设计基础知识

数据库设计与实现的基本过程包括需求分析、概念结构设计、逻辑结构设计、数据库的物理设计以及数据库的实施和维护等内容。需求分析确定系统的数据需求和处理需求;概念结构设计通过对用户需求的综合、归纳和抽象,形成一个独立的概念模型;逻辑结构设计则将概念模型转换为具体的数据库管理系统所支持的数据模型;数据库的物理设计结合应用确定数据模型的存储结构和存取方式。在这些工作完成之后,就可以建立数据库并开始调试运行了,在数据库的运行过程中必须对其进行维护——包括数据库的备份与恢复、性能分析与改进等等。

1. 概念结构设计——ER图

概念模型是用户需求的抽象,通常用实体关系图(Entity Relationship Diagram,即ER图)来表示。设计ER图的出发点是数据流图层次的选择,一般选择中层的数据流图作为分析设计的依据。在得到各个局部ER图后,需要将它们合并成一张总的ER图。首先是简单的合并,协调各个局部ER之间不一致的地方;然后再对得到总ER图消除冗余,可通过分析数据字典中数据项之间的逻辑关系加以消除。

2. 逻辑结构设计——ER图向关系模型的转换

关系数据库的数据模型(即关系模型)由一组关系模式组成,因而ER图向关系模型的转换实际上就是将实体(包括实体的属性)和联系转换为关系模式,一般遵循以下基本原则: 1. 一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。

2. 一个1:X(X为1或n)联系通常与某一端的关系模式合并,其中1:n的联系需要与n端对应的关系模式合并。需要在合并的关系模式的属性中加入另一个关系模式的码和联系本身的属性。

3. 一个m:n联系转换为一个关系模式。与该关系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。

4. 三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体的码的组合。

5. 具有相同码的关系模式可合并。 3. 数据库设计过程

本文来源:https://www.bwwdw.com/article/p4ra.html

Top