《数据库原理》实验指导书.docx
- 文档编号:6593761
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:17
- 大小:675.49KB
《数据库原理》实验指导书.docx
《《数据库原理》实验指导书.docx》由会员分享,可在线阅读,更多相关《《数据库原理》实验指导书.docx(17页珍藏版)》请在冰豆网上搜索。
《数据库原理》实验指导书
(数据库原理)
实验指导书(2005)
计算机学院
2014年2月
实验要求
《数据库原理》课程实验的目的是为了使学生在课程学习的同时,通过在一个实际数据库中的操作,对数据库理论的具体应用有一个初步的了解,使学生加深了解和更好地掌握《数据库原理》课程教学大纲要求的内容。
在《数据库原理》的课程实验过程中,要求学生做到:
(1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出现的情况提前作出思考和分析。
(2)认真书写实验报告。
实验报告包括实验题目、实验目的、实验要求,实验过程及实验体会,另外对于设计性实验,需要有设计说明。
(3)遵守机房纪律,服从辅导教师指挥,爱护实验设备。
(4)实验课程不迟到。
如有事不能出席,所缺实验一般不补。
实验的验收将分为两个部分。
第一部分是上机操作,包括检查程序运行和即时提问。
第二部分是提交书面的实验报告。
此外,实验将采用阶段检查方式,每个实验报告都应当在实验后七天内提交,过期视为未完成该实验,不计成绩。
希望同学们抓紧时间,合理安排,认真完成。
实验一SQLServer系统使用入门
一、实验目的
熟悉SQLServer图形化界面的基本操作。
二、实验要求
(1)掌握创建SQLServer服务组,注册SQLServer服务器,创建SQLServer服务账号,启动与停止SQLServer服务器。
(2)了解SQLServer的启动,熟悉如何在SQLServer图形化界面下建立数据库和表。
三、实验内容
1.启动数据库服务软件SQLServer2005:
启动,暂停和停止服务的方法很多,这里主要介绍SQLServer配置管理器完成这些操作,其操作步骤如下:
单击“开始”--“MicrosoftSQLServer2005”--“配置工具”,选择“SQLServerConfigurationManager”,打开SQLSetver配置管理器,如图1.1所示。
单击“SQLServer2005服务”选项,在右边的对话框里可以看到本地所有的SQLServer服务,包括不同实例的服务,如图1.2所示。
如果要启动、停止、暂停SQLServer服务的话,鼠标指向服务名称,单击右键,在弹出的快捷键菜单里选择“启动”、“停止”、“暂停”即可。
图1.1SQLServer配置服务管理器
(一)
图1.2SQLServer配置管理器
(二)
2.服务组管理和服务器注册
服务器注册主要为注册本地或者远程SQLServer服务器。
打开SQLServer2005下ManagementStudio,进行服务器注册。
本地SQLServer服务器系统会在安装时自动注册,用户只须注册要管理的远程服务器。
注册服务器时须要提供以下信息:
服务器的名称、登录服务器使用的安全模式、登录服务器的账号和口令、须要将服务器注册到哪个服务器组中。
注册步骤如下:
1)在视图菜单中单击“已注册的服务器”菜单选项显示出已注册的服务器,如图1.3所示。
图1.3已注册服务器
2)在右上角已注册的服务器中,选择注册类型进行相应服务类型注册。
3)在选定的服务类型的树型架构的根部单击鼠标右键,选择“新建”菜单下面的“服务器组”进行组的建立,如图1.4所示。
图1.4选择服务器组菜单
4)输入服务器组名称,单击保存即可,如图1.5所示。
图1.5新建服务器组
5)在新建的服务器组下面注册服务器,在新建服务器节点处单击鼠标右键,弹出菜单,选择新建选项下面的服务器注册选项,进行服务器注册,如图1.6所示。
填写服务器名称,选择相应的认证方式,输入用户名及密码,完成注册。
图1.6新建服务器注册
3.创建并管理数据库
1)打开“SQLServerManagementStudio”窗口,在“对象资源管理器”中展开服务器,鼠标右键单击“数据库”节点,单击“新建数据库”命令,会出现“新建数据库”对话框。
2)在对话框的“数据库名称”框内输入数据库名“xscj”后,单击“确定”按钮即可创建默认大小的数据库。
3)鼠标右键单击“xscj”数据库,在弹出的快捷菜单中选择“属性”命令,会出现“数据库属性”对话框;在对话框中单击“文件”选项卡,可以增加或删除数据库文件,单击“确定”按钮即可完成数据库的修改。
4)鼠标右键单击“xscj”数据库,在弹出的快捷菜单中选择“任务”→“分离”命令,会出现“分离数据库”对话框,单击“确定”按钮即可完成数据库的分离。
5)鼠标右键单击“数据库”,在弹出的快捷菜单里选择“附加”命令,会出现“附加数据库”对话框,在该对话框中单击“添加”按钮,会出现“定位数据库文件”对话框,在改对话框中,选择要附加的数据库文件(.mdf),单击“确定”按钮后,返回到“附加数据库”对话框,再单击“确定”按钮即可完成数据库的附加。
三、实验任务
1.用数据库SQLServer2005启动数据库服务;注册一个新的服务组testGroup和服务器testServer,创建一个新的登录账号test。
testServer为远程服务器,创建时注意防火墙中的端口1433是否允许。
2.用数据库SQLServer2005建立一个数据文件名为demodata、大小50M,日志文件名为demolog、大小25M的新数据库,该数据库名为xscj。
实验二数据库关系模式
一、实验目的
掌握在SQLServer服务器中,定义关系模式以及数据更新的方法。
二、实验要求
在图形化界面和查询分析器(应用SQL语言)两种环境下实现数据库关系模式设计:
创建、修改、查看表的结构,建立和修改表的主码、外码、索引及其它约束条件,对所创建的表进行插入、修改和删除元组的操作,删除所创建的表。
三、实验内容
1.使用企业管理器,创建表操作参照上章介绍,同时可以设置各种约束条件和索引。
等在Test数据库上建立表:
点击数据库Test前面的+号,打开数据库的各种属性,如图1-13所示:
图1-13
更新表中的数据,首先打开企业管理器,依次展开控制台根目录。
展开“test”数据库节点,单击“表”图标,在明细窗格中右键单击“学生”表。
在弹出的快捷菜单中选择“打开表->返回所有行”,则可以直接进行增加,删除,修改等数据更新操作。
2.从菜单启动“查询分析器”,在右侧的编写脚本窗口使用SQL命令来创建表和数据更新操作。
比如创建一个学生表,由以下属性组成:
学号SNO(INT型,主码),姓名SNAME(CHAR长度为8,非空唯一),性别SEX(CHAR型,长度为2),所在系DEPTNO(INT型)
CREATETABLESTUDENT(
SNOINTPRIMARYKEY,
SNAMECHAR(8)NOTNULLUNIQUE,
SEXCHAR
(2),
DEPTNOINT);
部分SQL语句如下:
1)创建表
CREATETABLE[数据库名.拥有者.]表名
(<字段定义>[,…n])
<字段定义>:
:
={字段名数据类型}
[[DEFAULT常量表达式]
|[IDENTITY[(种子,增量)]]]
[<字段约束>[…n]
2)修改表
ALTERTABLE表名
{[ALTERCOLUMN/*对现有字段属性进行修改*/
字段名新数据类型[(精度[,小数位数])]
[NULL|NOTNULL]
|ADD/*添加字段*/
{字段定义|字段名AS计算字段表达式}[,…n]
|DROPCOLUMN字段名[,…n]/*删除字段*/
|ADDCONSTRAINT约束名称/*添加约束*/
|DROPCONSTRAINT约束名称/*删除约束*/
3)用户定义的完整性是应用领域需要遵守的约束条件。
约束是SQLSERVER提供的自动强制数据完整性的一种方法,它是通过定义列的取值规则来维护数据的完整性。
●主键约束(PRIMARYKEY)---用来强制数据的实体完整性,唯一标识表中的每行记录。
特点:
每个表只能有一个主键,可以是一列或多列的组合。
主键值必须唯一并且不能为空。
●唯一约束(UNIQUE)---用来强制数据的实体完整性,限制表的非主键列中不允许输入重复值。
特点:
一个表中可以定义多个唯一约束,可以是一列或多列的组合。
空值可以出现在某列中一次。
●外键约束(FOREIGNKEY)---用来强制数据的参照完整性,维护相关联的表之间数据的一致性关系。
特点:
可以是一列或多列的组合,虽不是该表的主键,但却是另一个表的主键。
●检查约束(CHECK)---用来强制数据的域完整性。
特点:
使用逻辑表达式来限制表中的列可以接受哪些数据值。
●默认约束(DEFAULT)---用来强制数据的域完整性,为表中某列建立一个默认值。
特点:
使用默认约束可以提高输入记录的速度。
●自动编号标识(IDENTITY)---指定列是否是标识列。
特点:
‘标识’、‘标识种子’及‘标识递增量’用来设置字段的自动编号属性。
一个表只能创建一个标识列。
不能对标识列使用绑定默认值和DEFAULT约束。
必须同时指定种子和增量,或者两者都不指定。
默认值(1,1)。
能够成为标识列的数据类型有int、smallint、tinyint、numeric和decimal等系统数据类型;如果其数据类型为numeric和decimal,不允许出现小数位数。
★‘标识’为‘是’或‘否’。
★标识种子:
指定标识列的初始值。
★标识递增量:
指定标识列的增量值。
4)数据更新,采用Insertinto,update,delete等语句。
三、实验任务
分别采用企业管理器和查询分析器,完成以下内容:
1.创建三个基本表,表结构说明如下:
学生S(SNO,SNAME,AGE,SEX),其中SNO为主码,SNAME为非空字段。
选修SC(SNO,CNO,GRADE),其中SNO,CNO组合为主码;SNO为外码,参照S表的SNO字段;CNO为外码,参照C表的CNO字段;GRADE范围为0到100。
课程C(CNO,CNAME,TEACHER),其中CNO为主码,在TEACHER上创建索引。
2.修改表结构,向S表中增加一个字段ADDR,类行为变长字符串,长度为100;修改C表的CNAME字段,增加约束条件该字段为非空。
3.向三个表中分别填写一些测试数据,同时进行修改和删除的操作。
4.删除课程表。
实验三数据查询及视图设计
一、实验目的
熟悉并掌握SQL语言中视图设计和数据查询等功能。
二、实验要求
在查询分析器环境下应用SQL语言实现数据查询及视图设计:
简单查询、连接查询、嵌套查询、合并查询(选作)和视图的定义与查询。
三、实验内容
首先建好一个教师表。
然后在此基础上依次进行各种简单查询。
1.基本查询
打开查询分析器,从teacher表中分别检索出教师的所有信息,以及教工号、姓名和职称。
语句及查询结果如下:
select*fromteacher
select教工号,姓名fromteacher
2.查询时改变列标题的显示
从teacher表中分别检索出教师教工号、姓名、家庭住址信息并分别加上‘教师姓名’、‘教工号’、‘家庭住址’等标题信息,语句及查询结果如下:
3.基于WHERE语句进行数据查询
⑴基于比较条件。
从teacher表中查询出教工号小于2130的教师资料。
语句如下:
select*fromteacherwhere教工号<2130
⑵基于BETWEEN语句。
从teacher表中查询出教工号界于2100和2130之间的教师资料。
语句如下:
select*fromteacherwhere教工号between2100and2130
⑶基于IN子句的数据查询。
从teacher表中查询出职称为“教授”或“副教授”的教师的教工号、教师姓名、职称及家庭住址。
语句如下:
select教工号,姓名,家庭住址,职称fromteacher
where职称in('教授','副教授')
⑷基于LIKE子句的查询。
从teacher表中分别检索出姓伍的教师的资料,或者姓名的第2个字是寿或立的教师的资料。
语句如下:
select*fromteacherwhere姓名like'伍%'
select*fromteacherwhere姓名like'_[寿,立]%'
4.使用TOP关键字查询。
分别从teacher中检索出前2条及前面67%的教师的信息。
语句及查询结果如下:
selecttop2*fromteacher
selecttop67percent*fromteacher
5.使用DISTINCT关键字查询。
从teacher表中检索出教师的职称并且要求显示的职称不重复。
语句及查询结果如下:
selectdistinct职称fromteacher
6.用计算列查询。
将teacher表中各教师的姓名、教工号及工资按95%发放的信息,第2条语句将工资按95%发放后列名该为‘预发工资’。
语句如下:
select教工号,姓名,工资*0.95fromteacher
select教工号,姓名,工资*0.95AS预法工资fromteacher
7.使用ORDERBY语句对查询的结果进行排序
使用ORDERBY语句可以对查询的结果进行排序,ASC、DESC分别是升序和降序排列的关键字,系统默认的是升序排列。
从teacher表中查询工资大于2800的教师的教工号、姓名,并按升序排列,语句及查询结果如下:
select教工号,姓名fromteacher
where工资>2800orderby工资ASC
三、实验任务
1.定义一个视图V_SC(SNO,SNAME,CNAME,TEACHER,GRADE)。
2.在上次实验所创建的三个基本表和V_SC视图上在查询分析其中执行以下查询:
1)查询LIU老师教授的课程名及选修的学生名和成绩
2)检索LIU老师所授课程的课程号和课程名。
3)检索年龄大于23岁的男学生的学号和姓名。
4)检索至少选修LIU老师所授课程中一门课程的男学生姓名
5)检索至少选修两门课程的学生学号
6)检索WANG同学不学的课程的课程号。
7)统计有学生选修的课程门数。
8)求选修C4课程的学生的平均年龄。
9)求LIU老师所授课程的每门课程的学生平均成绩。
10)统计每门课程的学生选修人数(超过10人的课程才统计)。
要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
11)检索姓名以WANG打头的所有学生的姓名和年龄。
12)在SC中检索成绩为空值的学生学号和课程号。
13)求年龄大于女同学平均年龄的男学生姓名和年龄。
实验四SQLServer系统管理与维护
一、实验目的
初步掌握使用企业管理器进行系统管理和维护的方法。
二、实验要求
初步掌握数据库的创建、修改和删除,数据库备份与恢复,数据库的导入和导出,SQLServer安全结构与安全模式,用户帐号和权限的管理。
三、实验内容
一、数据库的备份和恢复
1)数据库的备份:
在SQLServerManagementStudio(简称SSMS)里选中要转移的数据库,按鼠标右键,选所有任务->备份数据库。
其中:
备份选数据库-完全,目的备份到按添加按钮,文件名 在SQLServer服务器硬盘下输入一个自定义的备份数据库文件名(后缀一般是bak),重写选重写现有媒体,最后按确定按钮。
2)恢复数据库:
目的SQLServer数据库如果还没有此数据库,先创建一个新的数据库;然后选中这个新创建的数据库,按鼠标右键,选所有任务->还原数据库。
其中还原->从设备->选择设备->磁盘->添加(找到要导入的备份数据库文件名)->确定,还原备份集->数据库-完全,最后按确定按钮。
完全的数据库导入成功了。
(如果在已经存在的SQLServer数据库上还原数据库可能遇到有还有其它人正在使用它而恢复操做失败,可以去看->管理->当前活动->锁/对象->找到数据库下锁的进程号->到查询分析器里用kill进程号杀掉这些锁,然后再做还原)
注意:
如果在原有的目的SQLServer数据库上从备份文件(*.bak)还原数据库会把已经存在的表、存储过程等数据库对象全部替换成最近这次导入的备份数据库里的内容。
二、数据库的导入和导出
1)导出表里的数据到文本文件
在SQLServerManagementStudio(简称SSMS)里选中目的数据库,按鼠标右键,选所有任务->导出数据->弹出数据转换服务导入/导出向导窗口->下一步->选数据源->数据源(用于SQLServer的MicrofostOLEDB提供程序)->服务器(可选择局域网内能访问到的所有SQLServer服务器)->选择使用windows身份验证还是使用SQLServe身份验证(输入数据库的用户名和密码)->数据库(可选择上面选中SQLServer服务器上所有权限范围内的数据库)->下一步->选择目的->目的(文本文件)->文件名(在自己的电脑硬盘中生成一个自定义的文本文件)->下一步->制定表复制或查询->选从源数据库复制表和视图(也可以选择用一条查询指定要传输的数据)->下一步->选择目的文件格式->源(选择要导出的表)->用默认的带分隔符->选第一行包含有列名称选项->下一步->保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动导出到文本文件,选调度DTS包以便以后执行)->保存(可以不选)->[保存DTS包(保存的时候要输入DTS的包名及详细描述)->下一步->]->完成
正在执行包->图形界面显示表到文本文件的步骤和状态->完成
2)文本文件数据导入到数据库表中
直接把文本文件导入目的SQLServer数据库里跟文本文件同名的新表名时,默认的会把所有字段类型都变成字符串。
所以我们要这样做:
在源SQLServer数据库上先生成创建表的sql语句
在SQLServerManagementStudio(简称SSMS)里->选中源数据库里表名->按右键->在新窗口中编写对象脚本->创建->复制下新窗口内创建表名的sql语句到目标SQLServer数据库上查询分析器里执行创建表名的sql语句,生成空表结构。
(如果已经存在这样的表名,修改建表的sql语句,在表名后面加上导入时间的年月信息,例如table_0113)
调用导入/导出工具->弹出数据转换服务导入/导出向导窗口->下一步->选数据源->数据源(文本文件)->文件名(已传到目的SQLServer数据库下要导入的文本文件,后缀可以不是*.txt,但是常规文本编辑器能打开的文件,文件类型选全部)->下一步->选择文件格式->用默认的带分隔符->选第一行包含有列名称选项->下一步->制定列分割符->逗号->下一步->选择目的->目的(用于SQLServer的MicrofostOLEDB提供程序)->服务器(可选择目标局域网内能访问到的所有SQLServer服务器)->选择使用windows身份验证还是使用SQLServe身份验证(输入数据库的用户名和密码)->数据库(可选择上面选中SQLServer服务器上所有权限范围内的数据库)->下一步->选择源表和视图->修改目的表名为刚才创建的表名->转换(在目的表中追加行)->下一步->保存、调度和复制包->时间->立即运行(如果要实现隔一段时间自动把文本文件导入,选调度DTS包以便以后执行)->保存(可以不选)->[保存DTS包(保存的时候要输入DTS的包名及详细描述)->下一步->]->完成
正在执行包->图形界面显示文本文件到表的步骤和状态->完成
如果要更改导入时间的年月信息的表名,例如table_0113到原来的表名,在企业管理器里把原来的表名改成table_old_0113,table_0113改名成table。
这会对应用程序里频繁访问的表照成一定的中断。
注意:
源表上的建的索引和主键约束不能用上面介绍的1和2方法转移过来,还需要手工来建索引和主键。
标志种子和notnull的约束可以继承过来。
导入视图时会把源视图里所有的真实数据导入成一个新表,而不是视图。
3、数据库安全
(1)在“安全性”里设置用户权限
1)打开“SQLServerManagementStudio”的“对象资源管理器”窗口。
2)选择“数据库实例名”—“安全性”—“登录名”选项,鼠标右键单击要修改权限的登录名,在弹出的快捷键菜单里选择“属性”选项。
3)弹出“登陆属性”对话框,在该对话框里选择“用户映射”选项。
也可以在添加登录名时,也可以在对话框里选择“用户映射”标签,进入选项卡。
4)在改对话框里可以设置此登陆帐户可以访问哪些数据库。
在“映射到此登录名的用户”区域里,显示查该数据库服务器里所以的数据库名,选中数据库前的复选框,则表示次登陆帐户可以登陆该数据库。
5)在选中数据库前的复选框之后,在“数据库角色成员身份”区域里的“public”复选框里会被自动选择上。
在每个数据库中,所以用户都会在public角色的成员,并且不能被删除。
(2)在数据库里设置用户权限
1)启动“SQLServerManagementStuido”,以sa用户或超级用户身份连上数据库实例。
在“对象资源管理器”里选择“数据库实例名”—“Northwind”—“安全性”—“用户”。
2)鼠标右键单击“userl”用户,在弹出的快捷菜单里选择“属性”选项,弹出“数据库用户”对话框,在改对话框里选择“安全对象”标签。
3)弹出对话框,单击“添加”按钮,弹出“添加对象”对话框,在改对话框里可以选择希望查看的对象类型的选择对话框。
4)弹出“选择对象”对话框,在该对话框里单击“对象类型”按钮。
5)弹出“选择对象类型”对话框,在该对话框里可以现在数据库表里的可在对象类型,在本例中选择“表”复选框,然后单击“确定”按钮
6)单击“浏览”按钮。
三、实验任务
采用企业管理器完成以下实验任务:
1)创建数据库test,在数据库内创建若干表,并插入一些测试数据。
2)备份和恢复数据库test。
3)导出和导入数据库test内的某些表。
4)创建一个登录用户user1,并为该用户分配权限。
5)采用user1登录查询分析器,测试权限分配是否合理。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库原理 数据库 原理 实验 指导书