数据库应用实验教程.docx
- 文档编号:6825782
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:23
- 大小:236.73KB
数据库应用实验教程.docx
《数据库应用实验教程.docx》由会员分享,可在线阅读,更多相关《数据库应用实验教程.docx(23页珍藏版)》请在冰豆网上搜索。
数据库应用实验教程
实验1通过E-R图设计关系数据模型
【实验目的】
1)熟悉E-R模型的基本概念和图形的表示方法。
2)掌握将现实世界的事物转化成E-R图的基本技巧。
3)熟悉关系数据模型的基本概念。
4)掌握将E-R图转化成关系表的基本技巧。
【实验环境】
Sqlserver2005
【实验重点及难点】
1)根据需求确定实体、属性和联系。
2)将实体、属性和联系转化为E-R图。
3)将E-R图转化为表。
【实验内容】
(1)为体育部门建立的数据库中要存储运动队、运动员、运动项目以及运动员参加运动队和运动项目比赛情况,其中运动队、运动员、运动项目应包含如下信息:
●运动队:
队名、主教练。
队名唯一标识运动队
●运动员:
运动员编号、姓名、性别、年龄,运动员编号唯一标识运动员
●运动项目:
项目编号、项目名、所属类别、项目编号唯一标识项目
规定每个运动队有多名运动员,每名运动员只属于一个运动队;每名运动员可以参加多个项目,每个项目可以有多个运动员参加;系统记录每名运动员参加每个项目所得名次和成绩以及比赛日期。
请根据以上叙述,为体育部门建立E-R模型。
1)确定运动队实体、运动员实体、运动项目实体的属性和码。
2)确定实体之间的联系,给联系命名并指出联系的类型。
3)确定联系本身的属性。
4)画出运动队、运动员、运动项目关系的E-R图。
5)将E-R图转化为表,写出表的关系模式并标明各自的主键或外键。
实验2确定表中的关键字
【实验目的】
1)正确理解候选键、主键、组合键、外键的基本概念。
2)能够正确判断给定表中各种类型的键。
3)在设计数据库时能正确指定各种类型的键,知道如何实施数据的完整性。
【实验环境】
Sqlserver2005
【实验重点及难点】
1)复习候选键、主键、外键、组合键以及数据完整性的基本概念。
2)在给出的部门表和员工表中能正确标识出各种类型的键。
【实验内容】
1)写出候选键、主键、组合键、外键、实体完整性、域完整性、参照完整性的定义。
2)已知部门表和员工表如下所示:
部门表
部门代码
部门名
负责人
地点
0001
生产部
李华江
重庆荣昌县
0002
销售部
张丽
重庆渝中区
0003
市场部
王欣
重庆江北区
员工表
员工代码
姓名
家庭住址
联系电话
邮政编码
部门代码
王华
重庆
0001
李想
成都
0003
张丽
上海
0002
李江华
重庆
0001
3)确定部门表和员工表中的候选键,并陈述理由。
4)在候选键中确定部门表和员工表的主键。
5)确定部门表和员工表中的共有属性。
6)指出哪个表中的哪个属性时外键。
7)确定哪个表是主表,哪个表是从表。
8)回答问题:
部门表和员工表是如何通过关键字实施数据完整性的?
实验3服务器的启动、暂停和停止
【实验目的】
1)熟悉SQLServer2005配置管理器。
2)掌握服务器的启动方法。
3)掌握服务器的暂停方法。
4)掌握服务器的停止方法。
【实验环境】
Sqlserver2005
【实验重点及难点】
利用SQLServer配置管理器实现服务器的启动、暂停和停止。
【实验内容】
实训1服务器管理
启动,暂停和停止服务的方法很多,这里主要介绍SQLServer配置管理器完成这些操作,其操作步骤如下:
1)单击“开始”---“MicrosoftSQLServer2005”-----“配置工具”,选择“SQLServerConfigurationManager”,打开SQLSetver配置管理器,如图2-52所示。
单击“SQLServer2005服务”选项,在右边的对话框里可以看到本地所有的SQLServer服务,包括不同实例的服务,如图2-53所示。
2)如果要启动、停止、暂停SQLServer服务的话,鼠标指向服务名称,单击右键,在弹出的快捷键菜单里选择“启动”、“停止”、“暂停”即可。
实训2服务器注册
服务器注册主要为注册本地或者远程SQLServer服务器。
打开SQLServer2005下ManagementStudio,进行服务器注册。
注册步骤如下:
图2-52SQLServer配置服务管理器
(一)
图2-53SQLServer配置管理器
(二)
1)在视图菜单中单击“已注册的服务器”菜单选项显示出已注册的服务器,如图2-54所示。
图2-54已注册服务器
2)在右上角已注册的服务器中,选择注册类型进行相应服务类型注册。
3)在选定的服务类型的树型架构的根部单击鼠标右键,选择“新建”菜单下面的“服务器组”进行组的建立,如图2-55所示。
图2-55选择服务器组菜单
4)输入服务器组名称,单击保存即可,如图2-56所示。
图2-56新建服务器组
5)在新建的服务器组下面注册服务器,在新建服务器节点处单击鼠标右键,弹出菜单,选择新建选项下面的服务器注册选项,进行服务器注册,如图2-57所示。
填写服务器名称,选择相应的认证方式,输入用户名及密码,完成注册。
图2-57新建服务器注册
实验4创建并管理数据库
【实验目的】
1)熟悉SQLServerManagementStudio窗口。
2)掌握创建数据库、数据表的方法。
3)掌握数据输入和修改的操作
【实验环境】
Sqlserver2005
【实验内容】
1)打开“SQLServerManagementStudio”窗口,在“对象资源管理器”中展开服务器,鼠标右键单击“数据库”节点,单击“新建数据库”命令,会出现“新建数据库”对话框。
2)在对话框的“数据库名称”框内输入数据库名“XSCJ”后,单击“确定”按钮即可创建默认大小的数据库。
3)在xscj数据库中分别创建学生情况表xsqk,课程表kc,学生与课程表xs_kc,并表结构分别如下所示:
●学生情况表xsqk:
列名
数据类型
长度
属性
约束
学号
Char
6
是否允许为空置
默认值
标识符
主键
否
无
姓名
Char
8
否
无
唯一
性别
Bit
1
否
1
0或1
出生日期
Smalldatetime
4
否
无
所在系
Char
10
否
无
专业名
Char
10
否
无
联系电话
Char
11
是
无
6为数字
总学分
Tinyint
1
是
无
0~200
备注
Text
30
是
无
●课程表kc
列名
数据类型
长度
属性
约束
是否允许为空值
默认值
标识列
序号
Int
4
初始值增量为1
课程号
Char
3
否
无
主键
课程名
Char
20
否
无
授课教师
Char
8
无
开课学期
Tinyint
1
否
1
只能为1~6
学时
Tinyint
1
无
学分
Tinyint
1
无
●学生与课程表xs_kc
列名
数据类型
长度
属性
约束
是否允许为空
默认值
学号
Char
6
否
无
外键,参照XSQK表
组合为主键
课程号
Char
3
否
无
外键,参照cK表
成绩
Tinyint
1
无
0~100
学分
Tinyint
1
无
4)分别向XSQK,KCXS_KC表中输入数据,其内容由用户自定义
以下实验内容选作:
1)打开“SQLserverManagementStudio”窗口,单击在’标准”工具栏中“新建查询”按钮,会出现SQL编辑器界面
2)在“SQL编辑器”工具栏中,单击“可用数据库”右边的下拉按钮,将当前数据库切换成”XSCJ”库
3)在查询窗口中,输入如下的命令
CREATETABLEXSQK
(学号CHAR(6)NOTNULL,
姓名CHAR(8)NOTNULL,
性别BITNOTNULLDEFAULT1,
生日SMALLdATETIMENOTNULL,
专业CHAR(10)NOTNULL,
所在系CHAR(10)NOTNULL,
联系电话CHAR(11),
总学分TINYINT,
备注TEXT,
CONSTRAINTPK_XSQK_XHPRIMARyKEY(学号),
CONSTRAINTUQ_XSQK_DHUNIQUE(姓名),
CONSTRAINTCK_XSQK_XBCHECK(姓名=1OR姓名=0),
CONSTRAINTCK_XSQK_DHCHECK(联系电话LIKE'[1-9][1-9][1-9][1-9][1-9][1-9]'),
CONSTRAINTCK_XSQK_ZXFCHECK(总学分<=0AND总学分<=200))
GO
CREATETABLEKC
(序号INT,
课程号CHAR(3)NOTNULLPRIMARYKEY(课程号),
课程名CHAR(20)NOTNULL,
授课教师CHAR(8),
开课学期TINYINTNOTNULLDEFAULT1,
学时TINYINTNOTNULL,
学分TINYINT,
CONSTRAINTCK_KC_XQCHECK(开课学期>=1AND开课学期<=6))
GO
CREATETABLEXS_KE
(学号CHAR(6)NOTNULLREFERENCESXSQK(学号),
课程号CHAR(3)NOTNULL,
成绩TINYINTCHECK(成绩>=0AND成绩<=100),
学分TINYINT,
PRIMARYKEY(学号,课程号),
FOREIGNKEY(课程号)REFERENCESKc(课程号))
4)在“SQL编辑器’工具栏中,单击”执行上述SQL命令。
创建成功后,在结果窗口会出现成功提示。
5)在“对象资源管理器“中展开数据库“XSCJ”鼠标右键单击“表”节点,在弹出的快捷菜单中单击”刷新“命令,可看到创建好的3张表。
6)将创建好的三张表的表结构截图到实验报告中
实验5规范化数据
【实验目的】
1)了解函数(数据)依赖的基本概念。
2)能正确判断某一关系属于第几范式。
3)掌握规范化数据的方法。
【实验环境】
Sqlserver2005
【实验重点及难点】
1)复习函数(数据)依赖、数据规范化、范式的基本概念以及各级范式的判别标准。
2)判断给定的表满足哪级别范式的条件。
3)将给定的表转换成特定等级的范式条件的表。
【实验内容】
1)写出函数(数据)依赖、数据规范化、范式的定义以及各级范式的判别标准。
2)项目表1,判断是否满足第一范式的条件并说明理由。
项目表1
项目代码
职员代码
部门
累计工作时间
P27
P51
P20
E101
系统集成部
90
101
60
P27
P22
E305
销售部
109
98
P51
P27
E508
行政办公室
NULL
72
3)项目表2,判断是否满足第二范式的条件并说明理由。
项目表2
项目代码
职员代码
部门
累计工作时间
P27
E101
系统集成部
90
P51
E101
系统集成部
101
P20
E101
系统集成部
60
P27
E305
销售部
109
P22
E305
销售部
98
P51
E508
行政办公室
NULL
P27
E508
行政办公室
72
4)职员表,判断其是否满足第三范式的条件并说明理由。
职员表
职员代码
部门
部门负责人代码
E101
系统集成部
E901
E305
财务部
E309
E402
销售部
E909
E508
行政办公室
E908
E607
财务部
E909
E608
财务部
E909
5)项目表3,判断其是否满足BCNF的条件并说明理由。
项目表3
项目代码
职员代码
职员姓名
累计工作时间
P2
E1
李华玉
48
P5
E2
陈家伟
100
P6
E3
张勤
15
P3
E4
谢成全
250
P5
E4
谢成全
75
P5
E1
李华玉
40
6)将项目表1转换成满足第一范式条件的表。
7)将项目表2转换成满足第二范式条件的表。
8)将职员表转换成满足第三范式条件的表。
9)将项目表3转换成满足BCNF条件的表。
10)回答问题:
规范化数据带来的不利影响是什么?
实验6用T-SQL创建数据库表
【实验目的】
4)熟悉SQLServerManagementStudio窗口。
5)掌握创建数据库、数据表的方法。
6)掌握数据输入和修改的操作
【实验环境】
Sqlserver2005
【实验内容】
1)打开“SQLServerManagementStudio”窗口,在“对象资源管理器”中展开服务器,鼠标右键单击“数据库”节点,单击“新建数据库”命令,会出现“新建数据库”对话框。
2)在对话框的“数据库名称”框内输入数据库名“XSCJ”后,单击“确定”按钮即可创建默认大小的数据库。
3)打开“SQLserverManagementStudio”窗口,单击在’标准”工具栏中“新建查询”按钮,会出现SQL编辑器界面
4)在“SQL编辑器”工具栏中,单击“可用数据库”右边的下拉按钮,将当前数据库切换成”XSCJ”库或者使用命令USEXSQK
5)在查询窗口中,输入如下的命令
CREATETABLEXSQK
(学号CHAR(6)NOTNULL,
姓名CHAR(8)NOTNULL,
性别BITNOTNULLDEFAULT1,
生日SMALLdATETIMENOTNULL,
专业CHAR(10)NOTNULL,
所在系CHAR(10)NOTNULL,
联系电话CHAR(11),
总学分TINYINT,
备注TEXT,
CONSTRAINTPK_XSQK_XHPRIMARyKEY(学号),
CONSTRAINTUQ_XSQK_DHUNIQUE(姓名),
CONSTRAINTCK_XSQK_XBCHECK(姓名=1OR姓名=0),
CONSTRAINTCK_XSQK_DHCHECK(联系电话LIKE'[1-9][1-9][1-9][1-9][1-9][1-9]'),
CONSTRAINTCK_XSQK_ZXFCHECK(总学分<=0AND总学分<=200))
GO
CREATETABLEKC
(序号INT,
课程号CHAR(3)NOTNULLPRIMARYKEY(课程号),
课程名CHAR(20)NOTNULL,
授课教师CHAR(8),
开课学期TINYINTNOTNULLDEFAULT1,
学时TINYINTNOTNULL,
学分TINYINT,
CONSTRAINTCK_KC_XQCHECK(开课学期>=1AND开课学期<=6))
GO
CREATETABLEXS_KE
(学号CHAR(6)NOTNULLREFERENCESXSQK(学号),
课程号CHAR(3)NOTNULL,
成绩TINYINTCHECK(成绩>=0AND成绩<=100),
学分TINYINT,
PRIMARYKEY(学号,课程号),
FOREIGNKEY(课程号)REFERENCESKc(课程号))
6)在“SQL编辑器’工具栏中,单击”执行上述SQL命令。
创建成功后,在结果窗口会出现成功提示。
7)在“对象资源管理器“中展开数据库“XSCJ”鼠标右键单击“表”节点,在弹出的快捷菜单中单击”刷新“命令,可看到创建好的3张表。
实验7使用Select语句查询数据
(一)——简单查询
【实验目的】
掌握SELECT语句的使用和简单查询方法。
【实验环境】
Sqlserver2005
【实验重点及难点】
1)启动SQLServer2005查询环境。
2)涉及单表的简单查询。
【实验内容】
1)打开“SQLServerManagementStudio”窗口。
2)单击“标准”工具栏的“新建查询”按钮,打开“查询编辑器”窗口
3)在窗口中输入以下SQL查询命令并执行:
a.在KC表中,查询第2学期开课的课程、授课教师
select课程名,授课教师,开课学期
fromkc
where开课学期=2
b.在XSQK表中,查询女同学的姓名和电话号码
select姓名,性别,联系电话
fromxsqk
where性别=0
c.在XS_KC表中,查询成绩在80分以上的学号、课程号和成绩
select学号,课程号,成绩
fromxs_kc
where成绩>=80
d.在XS_KC表中,查询在80以上和不及格学生的信息
select学号,课程号,成绩
fromxs_kc
where成绩>=80or成绩<60
e.在XSQK表中,查询不在1980年7、8、9月出生的学生信息
select学号,姓名,出生日期
fromxsqk
where出生日期notbetween‘1980-07-07’and‘1980-09-30’
f.在XSQK表中,擦汗寻陈姓且单名的信息
select*
fromxsqk
where姓名like‘陈_’
g.在XSQK表中,查询学号中含有1的记录信息
select*
fromxsqk
where学号like‘%1%’
h.在XSQK表中,查询电话号码第7位为4和6的记录信息
select*
fromxsqk
where联系电话like‘______[46]_’
i.在KC表中,查询第一、三、五学期开设的课程信息
select*
fromkc
where开课学期in(1,3,5)
j.查询XSQK表,输出学号、姓名、出生日期、并使查询结构按出生日期升序排列
select学号,姓名,出生日期
fromxsqk
orderby出生日期
实验8使用Select语句查询数据
(二)——汇总查询
【实验目的】
掌握数据汇总查询及其相关子句的使用。
【实验环境】
Sqlserver2005
【实验重点及难点】
1)启动SQLServer2005查询环境。
2)涉及单表的汇总查询。
【实验内容】
1)打开“SQLServerManagementStudio”窗口。
2)单击“标准”工具栏的“新建查询”按钮,打开“查询编辑器”窗口
3)在窗口中输入以下SQL查询命令并执行:
a.在KC表中,统计每学期的总分数
select开课学期,sum(学分)as各学期的学分合计
fromkc
groupby开课学期
b.在XS_KC表中统计每个学生的选修课程的门数
select学号,count(*)as每个学生选修的课程门数
fromxs_kc
groupby学号
c.统计KC表中的总学分,并显示明细信息
select课程名称,开课学期,学分
fromkc
computesum(学分)
d.按开课学期统计KC表中各期的学分,并显示明细信息
select课程名称,开课学期,学分
fromkc
orderby2
computesum(学分)by开课学期
e.将XS_KC表中的数据记录按学号分类汇总,输出学号和平均分
select学号,avg(成绩)as学生的平均分
fromxs_kc
groupby学号
f.查询平均分大于70且小于80的学生学号和平均分
select学号,avg(成绩)as学生的平均分
fromxs_kc
groupby学号
havingavg(成绩)between70and80
g.查询XS_KC表,输出学号、课程号、成绩,并使查询结果首先按照课程号的升序排列,当课程号相同时再按照成绩降序排列,并将查询结果保存到新表TEMP_KC中
select学号,课程号,成绩
intotemp_kc
fromxs_kc
orderby课程号,成绩desc
h.查询选修了“101”课程的学生的最高分和最低分
selectmax(成绩)as101课程的最高分,min(成绩)as101课程的最低分
fromxs_kc
where课程号=’101’
i.统计每个学期所开设的课程门数
select开课学期,count(*)as每学期开设的课程门数
fromkc
groupby开课学期
j.查询各专业的学生人数
select专业名,count(专业名)as各专业人数
fromxsqk
groupby专业名
实验9使用Select语句查询数据(三)——连接查询和子查询
【实验目的】
1)掌握内连接的查询方法。
2)了解子查询的查询方法。
【实验环境】
Sqlserver2005
【实验重点及难点】
1)启动SQLServer2005查询环境。
2)涉及多表的复杂查询。
【实验内容】
1)打开“SQLServerManagementStudio”窗口。
2)单击“标准”工具栏的“新建查询”按钮,打开“查询编辑器”窗口
3)在窗口中输入以下SQL查询命令并执行:
a.查询不及格学生的学号、课程名、授课教师、开课学期的信息
select学号,xs_kc.课程号,授课教师,开课学期,成绩
fromkc,xs_kc
wherekc.学号=xs_kc.学号and成绩<60
b.按学号分组汇总总分高于100的学生记录,并按总分的降序排列
select学号,sum(成绩)as各学生的总分
fromxs_kc
groupby学号
havingsum(成绩)>=100
orderbysum(成绩)desc
c.使用子查询求恰好有两门课程不及格的学生信息
select学号,姓名
fromxsqk
where(sel
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 应用 实验 教程
![提示](https://static.bdocx.com/images/bang_tan.gif)