数据库上机实习内容.docx
- 文档编号:12834785
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:18
- 大小:23.74KB
数据库上机实习内容.docx
《数据库上机实习内容.docx》由会员分享,可在线阅读,更多相关《数据库上机实习内容.docx(18页珍藏版)》请在冰点文库上搜索。
数据库上机实习内容
上机实习内容
第一次实习内容:
1、根据上述要求构建E-R模型,并将该模型转换成表。
并进行分析,决定是否需要进行表的合并以及冗余表的删除。
在SQLServer2000企业分析器中构建你所得到的表。
表的构建中需要注意:
主码的设计(尤其注意多个属性共同构成主码的情况),外码的设计,默认值的设计,空值的设计,索引的设计等
2、在构建好的数据库中建立相应的关系图。
(参照英文书上P88的模式图,主要进行外码设计)
3、在建好的表中输入相应的有代表性的实验数据(需要考虑到特殊情况所对应的实验数据)
4、在查询分析器中进行SQL语句的查询:
(1)取出给工程J1和J2提供零件的供应商的供应号
(2)取出给上海或北京的任何工程提供零件的供应商的供应号
(3)取出上海的供应商给上海的工程提供零件的供应商的供应号
(4)取出北京的供应者不提供红色零件的供应商的供应号
(5)取出至少使用一种由S1提供的零件的工程号
(6)取出供应了全部零件的供应商的名字
(7)取出供应工程数超过15的供应商的供应号以及其供应的工程数
(8)找出姓名中带“灵”字的供应商情况
(9)找出至少提供了S1所提供零件的供应商号
(10)向供应商关系表中插入一行新数据
(11)删除零件表中颜色为红色的所有零件信息
(12)将供应关系表中的零件数量更新为增加原有零件数量的30%
5、导出数据存储在U盘中。
将U盘中存储的数据作为附加数据库进行数据库的导入
要求:
第4部分需要给出调试前的不正确的程序以及调试后的正确程序,并指出错误所在,以及进行后续修改的原因,并将两次代码和分析写在作业本上,完成后上交。
若未完成则自行找时间上机完成再上交。
若有抄袭现象或不交作业,实验课记分不及格。
第二次实习内容:
1、在查询分析器中用SQL语句构建银行管理数据库
2、在SQL中创建断言(英文课本P232-251)
(1)每个支行的贷款金额总和必须少于该支行帐户余额的总和
(2)每笔贷款的客户中至少有一人帐户余额不小于1000元
在SQL中创建触发器:
(1)银行中透支情况的处理
在SQL中创建存储过程:
在SQL中进行安全性的设置,并实现授权的实施
要求:
这次实习前需要进行资料的查阅,了解触发器,存储过程等编写的基本语法知识。
这是个提高部分,能学到多少知识靠个人的努力。
第三次实习内容:
1、运用你所构建的银行管理数据库通过ODBC连接方式实现与DELPHI的连接
2、在DELPHI中编写程序实现数据的输入,输出,和简单查询。
期望:
第三次实习后,不要间断数据库实习,可以着手开始进行寒假的数据库设计,寒假数据库实习基本要求请在邮箱中取出,根据你们在实验课程中学习的内容进一步的进行数据库的学习。
学习在DELPHI中编程进行数据库的操作。
尽量提高课程设计的质量,逐步完成课程设计的高要求。
《数据库原理》实验大纲
一、课程基本信息
课程:
数据库原理
适用专业:
信息安全专业本科生
实验学时:
8学时
二、实验教材及参考书
教材:
王恩波.网络数据库实用教程---SQLServer2000.高等教育出版社.2004年1月
闪四清.SQLServer实用简明教程.清华大学出版社.2002年2月
李伟红.SQLServer2000使用教程.中国水利水电出版社.2003年8月
王珊,萨师煊.数据库系统概论(第三版).高等教育出版社.2000年2月
三、实验教学目的和要求
本课程的实验,以数据库理论为指导,通过实际操作,加强学生对数据库原理的认识,使学生了解一个实际的数据库管理系统,掌握SQL语言,能够较好地完成一个数据库的设计与实现。
四、实验任务
第一次实习内容:
1、创建数据库
启动企业管理器,展开数据库树,单击鼠标右键,选择菜单中的“新建数据库”,输入数据库名称(成绩管理),单击“确定”按钮。
因为数据库在创建完成后,会有两个至少为1MB大小的文件,所以,选择数据文件和日志文件存放位置时,不能选择软盘A,只能选择硬盘或优盘。
2、创建表
数据库创建完成后,展开该数据库,点击“表”,在表项目列表中单击鼠标右键,或点击操作菜单,选择“新建表….”,创建表“教师”、“学生”、“课程”和“成绩”四个表。
4个表的结构分别为:
教师表:
列名
数据类型
长度
允许空
教师姓名
nvarchar
3
不允许
性别
bit
1
允许
照片
image
16
允许
简历
ntext
16
允许
工资
real
4
允许
成绩表:
列名
数据类型
长度
允许空
学号
nvarchar
13
不允许
课程代号
int
4
不允许
成绩
tinyint
1
允许
课程表:
列名
数据类型
长度
允许空
课程代号
int
4
不允许
课程名称
nvarchar
50
允许
课时
int
4
允许
学分
int
4
允许
认课教师
nvarchar
3
允许
学生表:
列名
数据类型
长度
允许空
学号
nvarchar
13
不允许
姓名
nvarchar
4
允许
年龄
tinyint
1
允许
性别
bit
1
允许
地址
nvarchar
255
允许
邮政编码
int
4
允许
工作电话
nvarchar
30
允许
家庭电话
nvarchar
30
允许
电子邮件
nvarchar
50
允许
生日
smalldatetin
4
允许
照片
image
16
允许
附住
ntext
16
允许
3、向表中输入数据
用鼠标右键单击数据库“成绩管理”中“表”下的学生,选择打开表中的“返回所有行”
,打开数据对话框,将光标置于第一个空行处,逐项输入数据,直到输入数据完成。
输入数据分别为:
学生表:
学号
姓名
年龄
性别
地址
邮政编码
工作电话
生日
2000A12345601
李里
21
男
北京市
100040
23456789
1983年12月30日
2000A12345602
李路路
21
女
甘肃省
730560
345678
1980年11月11日
2000A12345603
李里
女
北京市
100042
68876544
1980年5月19日
2000A12345604
王寄
男
天津市
201230
6677886
1981年6月1日
2000A12345605
路力利
女
北京市
100041
12345678
1985年9月15日
2000A12345606
伍区及
女
北京市
1982年12月12日
2000A12345607
吴计算
女
北京市
1982年12月25日
2000A12345608
齐寄
男
河北省
321701
563421
1978年10月22日
2000A12345701
李北方
女
北京市
1982年12月25日
2000A12345702
李工业
女
北京市
1982年12月25日
教师表:
教师姓名
性别
照片
简历
工资
李没有
女
5000.00
李水平
女
4500.00
刘姥姥
女
2000.00
陆悟
男
6500.00
王恩波
男
4000.00
课程表:
课程代号
课程名称
课时
学分
任课教师
1
数学
144
12
李没有
2
英语
144
12
刘姥姥
3
计算机基础
48
4
王恩波
4
数据库
56
5
王恩波
5
政治
80
8
陆悟
6
体育
64
6
陆悟
成绩表:
学号
课程代号
成绩
学号
课程代号
成绩
2000A12345601
1
100
2000A12345602
6
55
2000A12345601
2
0
2000A12345603
1
80
2000A12345601
3
55
2000A12345603
2
90
2000A12345601
4
70
2000A12345603
3
75
2000A12345601
5
40
2000A12345603
4
85
2000A12345601
6
50
2000A12345604
1
50
2000A12345602
1
50
2000A12345604
2
55
2000A12345602
2
80
2000A12345604
3
62
2000A12345602
3
55
2000A12345604
4
95
2000A12345602
4
80
2000A12345605
1
45
2000A12345602
5
50
2000A12345605
2
83
2000A12345608
2
60
2000A12345605
3
77
2000A12345607
4
50
2000A12345605
4
85
2000A12345608
1
65
2000A12345606
1
30
4、插入数据
插入三个学生数据:
打开查询分析器,在查询分析器中输入语句:
use成绩管理
insertinto学生(学号,姓名,年龄,性别,地址,生日)
values(‘2000A12345703’,’李大学’,’22’,’女’,’北京市’,’1982年12月25日’)
insertinto学生(学号,姓名,年龄,性别,地址,生日)
values(‘2000A12345704’,’刘担心’,’24’,’女’,’河北省’,’1982年12月25日’)
insertinto学生(学号,姓名,年龄,性别,地址,生日)
values(‘2000A12345705’,’柳弟兄’,’21’,’女’,’河北省’,’1982年12月25日’)
5、更新数据
假设过了一年之后,给所有学生的年龄进行更新,则是用如下语句:
use成绩管理
update学生set学生.年龄=[年龄]+1
6、创建和管理索引
教师表设“教师姓名”为主关键字;对于学生和课程两个表,分别将学号和课程代号设为主键;对于成绩表将学号和课程代号组合作为主关键字。
7、创建数据库关系图
选择数据库下的“关系图”,在关系图项目列表中,单击鼠标右键或单击操作菜单,选择其中的“新建数据库关系图”,在数据库关系图向导中,添加前面建立的4个表,4个表会出现在“新关系图”对话框中,在教师表的教师姓名前按下鼠标左键,拖动鼠标到课程,放开鼠标(即从主键字段拖向外键字段),弹出“创建关系对话框”,在对话框中,选择课程中的“任课教师”和教师表中的“教师姓名”相关联,接着用同样的方法创建课程表和成绩表之间通过课程代号关联的关系、学生和成绩之间通过学号关联的关系。
8、查询数据行
(1)查询学生名册
(2)查询个别学生的基本情况
查询姓名是“李里”的所有学生的学号、姓名、年龄、性别、地址和工作电话
(3)查询学生平均成绩
(4)查询学生的基本情况并按学生姓名排序
(5)查询全部姓李的学生的情况
(6)查询年龄在20~21岁之间的学生的姓名和年龄,并按照年龄排序输出
(7)查询年龄小于21岁的姓李的学生的名单
(8)查询成绩不合格的人次数
第二次实习内容:
1、备份
将学生成绩数据库备份到C盘。
方法一:
(1)用管理员账号登录SQLServer。
(2)运行SQLServer企业管理器。
(3)在控制台目录树中,展开服务器,展开“管理”文件夹,在“备份”上单击鼠标右键,选择“新建备份设备”。
填入名称后,点击“确定”按钮。
然后在新建的备份设备中,单击鼠标右键,选择备份数据库,在弹出的对话框中,选择要备份的数据库,然后单击“确定”按钮。
方法二:
选择要备份的数据库,单击鼠标右键,在所有任务菜单中选择备份数据库,在弹出的对话框中,选择要备份的数据库,然后点击“添加”。
再选择备份目的C盘,输入文件名,单击“确定”按钮后完成。
方法三:
使用命令BACKUP。
2、恢复
将学生成绩数据库恢复到数据库中。
方法一:
(1)用管理员账号登录SQLServer。
(2)运行SQLServer企业管理器。
(3)在控制台目录树中,展开服务器组和服务器,展开“管理”文件夹,在“备份”上单击鼠标右键,选择“新建备份设备”。
(4)选择菜单项“工具”,单击“还原数据库”。
(5)在弹出对话框有两个选项卡:
“常规”和“选项”。
在“常规‘选项卡中,选择要恢复的数据库及恢复的类型,单击“确定”按钮。
此后,系统将进行恢复,并显示恢复进度。
方法二:
使用RESTORE命令。
3、导入/导出
将学生成绩数据库的信息导出到文本文件中。
方法一:
(1)选择要导出的数据表。
(2)选择导出到文本文件。
(3)选择文本文件格式。
(4)选择导出目的C盘即可。
方法二:
选择“程序”,在选择“MicrosoftSQLServer”然后选择“导入和导出数据”。
方法三:
在SQLServer企业管理器对话框中选择菜单“工具”,再选择“数据转换服务”,然后选择“导入数据(或导出数据)”.
方法四:
在SQLServer企业管理器对话框中选择菜单“工具”,再选择“向导”,然后选择“数据转换服务”,最后选择“导出向导(或导入向导)”。
4、复制
将学生成绩数据库复制到另一个数据库中。
1>配置发布数据库
(1)单击企业管理器控制台上服务器,在“工具”菜单上选择“复制”,再选择“创建和管理发布”。
(2)在所出现的对话框中选择学生成绩数据库,单击“创建发布”按钮,将出现创建发布向导对话框。
(3)在所出现的创建发布向导对话框中单击“下一步”按钮。
(4)对话框中选择包含要发布数据的学生成绩数据库,单击“下一步”按钮。
(5)在对话框中选择发布类型为“快照发布”,单击“下一步”按钮。
(6)在对话框中选择订阅更新的类型为“即时更新”,单击“下一步”按钮。
(7)在对话框中指定订阅服务器的类型为“运行SQLServer2000的服务器”单击“下一步”按钮。
(8)在对话框中指定作为发布项目的数据库对象为学生成绩数据库的所有表,单击“下一步”按钮。
(9)在对话框指定添加惟一标识符列,单击“下一步”按钮。
(10)在对话框中指定发布名称和描述,发布名称为“学生成绩数据库”,单击“下一步”按钮.
(11)在对话框中选择自定义发布属性为“根据指定方式创建发布”,单击“下一步”按钮。
(12)在对话框中单击“完成”按钮,完成创建发布向导。
执行完成。
2>配置订阅数据库
(1)单击企业管理器控制台上服务器,在“工具”菜单上选择“复制”,再选择“配置发布、订阅服务器和分发”。
(2)在所示的对话框中选择“分发服务器”选项卡,输入连接密码并确定,单击“确定”按钮。
(3)设置分发服务器的属性,单击“确定”按钮。
3>进行复制
(1)在企业管理器中单击“服务器名”,选择“工具”,再选择“复制”,然后单击“请求订阅”选项。
(2)在对话框中选择学生成绩数据库,单击“请求新订阅”选项。
(3)在“请求订阅向导”对话框中单击“下一步”按钮。
(4)选择查看已注册服务器所做的发布,单击“下一步”按钮。
(5)在对话框中选择发布,单击USER1上的学生成绩数据库,单击“下一步”按钮。
(6)在所示的对话框中指定同步代理程序连接到发布和分发服务器的登录属性,选择“使用SQLServer身份验证”,单击“下一步”按钮。
(7)在所示的对话框中指定创建订阅的目的数据库,选择学生成绩数据库,单击“下一步”按钮。
(8)在所示的对话框中指定对订阅进行初始化,单击“下一步”按钮。
(9)在所示的对话框中指定快照文件的位置及在初始化订阅时访问快照文件的方式,单击“下一步”按钮。
(10)在所示的对话框中设置分发代理程序调度方式,将其设置为连续方式,单击“下一步”按钮。
(11)在所示的对话框中查看需要的服务是否已经启动,若没有启动,则选择启动它,单击“下一步”按钮。
(12)在所示的对话框中选择启动SQLServer代理服务的方式,将其指定为手工启动,单击“下一步”按钮。
(13)在所示的对话框中单击“完成”。
5、安全管理
修改SA用户的密码,给学生成绩数据库中添加一个用户名和密码。
在SQLServerEnterprisemanager主对话框中,从菜单中选择“Tools/Wizard/databases/CreateLoginWizard”命令,出现“CreateLoginWizard”的欢迎对话框。
在该欢迎对话框中单击“下一步”按钮,则出现“SelectAuthenticationModeforthislogin”对话框。
在该对话框中,有两个单选按钮:
“Windowsauthentication”和“SQLServerAuthentication”。
这里选择“SQLServerAuthentication认证模式”,表示创建一个SQLServer系统自己的登录帐号。
单击“下一步”按钮,则出现“AuthenticationWithSQLServer”对话框,有3个文本框:
login文本框、password文本框和confirmpassword文本框。
在这3个文本框中分别输入该登录帐号名称、口令和确定口令。
这里输入的登录帐号名称是liu。
然后,单击“下一步”按钮,则出现“GrantAccesstoSecurityRoles”对话框。
在该对话框中,可以选择该登录帐号所属的固定服务器角色。
不同的固定服务器角色就有不同的权限。
一个登录帐号可以同时是多个服务器角色的成员。
再单击“下一步”按钮,则出现“GrantAccesstoDatabase”对话框。
在该对话框的列表框中,列出了系统中所有的数据库,可以从中选择允许该登录帐号访问的数据库。
单击“完成”按钮,则完成该登录帐号的创建。
第三次实习内容:
1、创建视图
下面继续以第一次上级任务中的成绩管理系统为例,我们会发现,成绩表中只有课程编号和学号,而没有具体的课程名称和学生姓名,为了查询每个学生的各科成绩,就需要创建一个视图,创建视图的步骤如下:
(1)企业管理器中,展开试图树,在其中单击鼠标右键,或者单击“操作”菜单,选择其中的“新建视图”菜单项。
(2)在视图设计对话框中,在最上方区域单击鼠标右键,选择“添加表”,选择学生、课程和成绩3个表,再单击“确定”按钮。
(3)在各表中,在每个列名前的复选框中点击鼠标以选择输出该列。
(4)点击运行按钮,出现运行结果。
(5)单击保存按钮保存视图。
关闭视图设计对话框后,在视图项目对话框中,会出现保存的视图,双击该视图,会弹出视图的“查看属性”对话框,可以在其中对视图进行修改。
2、创建存储过程
在企业管理器中,展开数据库“成绩管理”中的“存储过程”树,在右侧的项目对话框中,单击鼠标右键或单击“操作”菜单,选择其中的“新建存储过程”菜单,弹出存储过程的属性对话框,在这里输入存储过程的内容。
假设要查询学生的计算机基础成绩,可以输入以下语句:
Createprocedure[owner].存储过程1As
Selecttop100percentdbo.学生.姓名,dbo.课程.课程名称,dbo.成绩.成绩
Fromdbo.成绩innerjoin
dbo.课程ondbo.成绩.课程代号=dbo.课程.课程代号innerjoin
dbo.学生ondbo.成绩.学号=dbo.学生.学号
where成绩.课程代号=(select课程代号from课程where课程名称=’计算机文化基础’)
3、执行存储过程
在查询分析器中,输入以下语句:
Use成绩管理
Execute存储过程1
观看运行结果。
4、创建触发器
企业管理器中,选中教师表,单击鼠标右键,选择“所有任务”,再选择“管理触发器”,打开触发器属性对话框,在其中输入如下内容:
Createtrigger触发器1on[dbo].[教师表]
Forinsert,update,delete
As
Print‘所做的操作已完成!
‘
Print‘请做好操作记录!
’
5、通过事件触发触发器
触发器是在外界对表的作用之后才触发执行的,所以,要检查触发器的执行效果,我们需要对表进行一个插入、修改或删除数据行的操作,在查询分析器中,编写以下语句并执行:
INSERTINTO教师表(教师姓名,性别,工资)VALUES(‘张露’,1,3000)
或者:
DELETEFROM教师表WHERE教师姓名=‘张露’
或者:
UPDATE教师表SET工资=工资+50WHERE性别=1
它们均可以触发触发器1,执行第一条语句的结果。
6、创建嵌套触发器
下面创建两个触发器,其中一个是创建在学生表中的,另一个是创建在成绩表中的。
成绩表中仅创建删除操作的触发器,在成绩表中删除某一学生之前,先要备份该学生成绩的数据资料,以备后面恢复时使用,这里需要先创建一个表,假设定义为成绩备份表,其结构和成绩表完全一样。
创建如下的触发器:
CREATETRIGGER触发器3ON[dbo].[成绩]
FORDELETE
AS
DECLARE@numbernvarchar(15)
SET@number=‘2000A12345602’
INSERTINTO成绩备份
SELECT学号,课程代号,成绩
FROMdeleted
WHERE学号=@number
PRINT‘删除完成!
’
成绩备份表的触发器:
CREATETRIGGER触发器4ON[dbo].[成绩备份]
FORINSERT,UPDATE
AS
PRINT‘成绩已完成备份!
’
7、触发嵌套触发器
若执行如下语句:
DELETEFROM学生WHERE学号=‘2000A12345601’
会触发嵌套触发器。
执行后发现,在成绩备份表中会出现在成绩表中已经删除的数据行。
第四次实习内容:
3、在查询分析器中用SQL语句构建银行管理数据库
4、在SQL中创建断言(英文课本P232-251)
(1)每个支行的贷款金额总和必须少于该支行帐户余额的总和
(2)每笔贷款的客户中至少有一人帐户余额不小于1000元
在SQL中创建触发器:
(2)银行中透支情况的处理
在SQL中创建存储过程:
在SQL中进行安全性的设置,并实现授权的实施
要求:
这次实习前需要进行资料的查阅,了解触发器,存储过程等编写的基本语法知识。
这是个提高部分,能学到多少知识靠个人的努力。
3、运用你所构建的银行管理数据库通过O
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 上机 实习 内容