数据库实验报告.docx
- 文档编号:23343614
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:13
- 大小:108.91KB
数据库实验报告.docx
《数据库实验报告.docx》由会员分享,可在线阅读,更多相关《数据库实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
数据库实验报告
学生学号
实验课成绩
学生实验报告书
实验课程名称
数据库原理
开课学院
指导教师姓名
学生姓名
学生专业班级
2011—2012学年第一学期
实验项目名称
SQL语言操作
实验成绩
实验者
专业班级
组别
同组者
实验日期
年月日
一、实验目的、意义
1.熟练掌握利用标准SQL语言进行数据定义的语句格式
2.熟练掌握利用标准SQL语言建立与删除索引的语句格式
3.熟练掌握利用标准SQL语言进行数据更新操作的语句与用法
4.熟练掌握利用标准SQL语言进行视图操作的语句与用法
5.熟练掌握利用标准SQL语言进行授权与收回权限操作的语句与用法
二、实验基本原理与方法
1.数据库的参照完整性
2.实体完整性
3.利用标准SQL语言进行数据更新,视图,控制
三、实验内容及要求
1、通过SQLSERVER2005或VFP建立三个关系数据库基本表student,course,sc,表结构详见教材P48,并输入数据
2、利用标准SQL语言进行数据定义(定义,删除,修改基本表)
3、利用标准SQL语言建立与删除索
4、了解SELECT语句的基本格式,利用三个基本表student,course,sc,使用SELECT语句进行单表查询,连接查询,嵌套查询,集合查询.
5、利用标准SQL语言进行数据更新与创建视图操作
6、利用标准SQL语言进行授权与收回权限操作
四、实验方案或技术路线(只针对综合型和设计型实验)
略……
五、实验原始记录(可附加页)
(程序设计类实验:
包括原程序、输入数据、运行结果、实验过程发现的问题及解决办法等;
分析与设计、软件工程类实验:
编制分析与设计报告,要求用标准的绘图工具绘制文档中的图表。
系统实施部分要求记录核心处理的方法、技巧或程序段;
其他实验:
包括实验输入数据,处理模型、输出数据及结果分析)
一.建立关系数据库基本表
1.1.通过SQLSERVER2005建立三个关系数据库基本表student,course,sc,
1.2.对三个关系数据库基本表输入数据
二.利用标准SQL语言进行数据定义
2.1打开SQL查询分析器。
(1)定义表:
新建一个学生信息表stu。
SQL命令为:
createtablestu(snochar(5)notnullunique,snamechar(20)unique,sexchar
(1),ageint
(1),sedptchar(8))
(2).修改表:
给学生表里添加一个入学日期。
SQL命令为:
altertablestudentaddscomedate
(3).删除表:
删除刚才新建的表stu。
SQL命令为:
droptablestu
(4).建立索引:
为表student建立一个唯一索引stusno:
SQL命令为:
createuniqueindexstusnoonstudent(学号)
(5).删除索引
删除刚才建立的索引stusno
SQL命令为:
dropindexstudent.stusno
三利用标准SQL语言进行数据查询
(1).单表查询。
查询student表中所有学生的学号,姓名:
SQL命令为:
select学号,姓名fromstudent
(2).连接查询
查询所有学生的学号,姓名,成绩
SQL命令为:
select学号,姓名,成绩fromstudent,scwherestudent.学号=sc.学号
(3).嵌套查询
查询与“刘晨”在同一个系的学生
SQL命令为:
select学号,姓名fromstudentwhere所在系in(select所在系fromstudentwhere姓名="刘晨")
(4).集合查询。
查询计算机系的学生及年龄不大于19岁的学生
SQL命令为:
select*fromstudentwhere所在系="CS"unionselect*fromstudentwhere年龄<=19
三.利用标准SQL语言进行数据更新,视图,控制
3.1.利用标准SQL语言进行数据更新操作
(1)插入数据
将一个新学生记录(学号:
95020;姓名:
陈东;性别:
男;所在系:
IS;年龄:
18岁)插入到student表中。
SQL命令为:
insertintostudentvalues('95020','陈东','男','IS',18)
(2)修改数据
将学生95001的年龄改为22岁
SQL命令为:
updatestudent
set年龄=22
where学号='95001'
(3)删除数据
删除学号为95002的学生记录
SQL命令为:
deletefromstudentwhere学号='95002'
3.2.,利用标准SQL语言创建与使用数据视图,
(1)定义视图
建立学生系学生的视图
SQL命令为:
createviewis_student
asselect学号,姓名,年龄
fromstudentwhere所在系='IS'
(2)查询视图
查询信息系学生视图中年龄小于20岁的学生
SQL命令为:
select学号,年龄fromis_studentwhere年龄<20
(3)更新视图
将信息系学生视图is_student中学号为95002的学生姓名改为”刘臣”
SQL命令为:
updateis_student
set姓名='刘臣'
where学号="95002"
(4)删除视图
删除信息系学生视图is_student
SQL命令为:
dropviewis_student
3.3.利用标准SQL语言进行授权与收回权限操作
(1)授权
把对表student的查询权限授予所有人
SQL命令为:
grantselectonstudenttopublic
(2)收回权限
收回所有用户对表student的查询权限
SQL命令为:
revokeselectonstudentfrompublic
六、实验结果与讨论
七、实验报告成绩(请按优,良,中,及格,不及格五级评定)
教师签字:
实验项目名称
关系模式规范化
实验成绩
实验者
专业班级
组别
同组者
实验日期
年月日
一、实验目的、意义
熟练掌握规范化理论的有关概念和方法,包括关系可能存在的插入、删除等异常问题和只管解决方法,函数依赖定义及其推理规则,各种范式及其相互关系,关系模式分解中存在的问题、分解的无损连接性和保持函数依赖性等。
了解关系数据库规范化理论及其在数据库设计中的重要意义。
二、实验基本原理与方法
函数依赖的推理规则,多值依赖,最小函数依赖集,无损连接和保持函数依赖性的分解,以及将一个关系模式分解为2NF、3NF模式集的算法。
三、实验内容及要求
1、充分了解SQLSERVER2000,ORACLE,Sybase,Informix,DB2,Ingers各种关系数据库产品各自的功能与特点,写出一份关系数据库产品的比较研究报告
2、熟练掌握三类关系完整性(实体完整性,参照完整性,用户定义完整性)
3、要求消除部分函数依赖
4、要求消除传递函数依赖
5、要求各人独立完成,操作过程中保持数据依赖,并无损连接性
6、要求各人独立完成,实验报告要有完整的操作过程
四、实验方案或技术路线(只针对综合型和设计型实验)
1.利用三个基本表student,course,sc,验证三类关系完整性(实体完整性,参照完整性,用户定义完整性)
2.给定一个1NF的基本表,将其分解为2NF(参见教材第四章例子)
3.给定一个2NF的基本表,将其分解为3NF(参见教材第四章例子)
4.给定一个具体的应用环境,要求根据具体情况创建数据库基本表,并规范化为3NF,
5.截取实验过程中的关键界面,写出实验报告
五、实验原始记录(可附加页)
(程序设计类实验:
包括原程序、输入数据、运行结果、实验过程发现的问题及解决办法等;
分析与设计、软件工程类实验:
编制分析与设计报告,要求用标准的绘图工具绘制文档中的图表。
系统实施部分要求记录核心处理的方法、技巧或程序段;
其他实验:
包括实验输入数据,处理模型、输出数据及结果分析)
一、利用三个基本表student,course,sc,验证三类关系完整性(实体完整性,参照完整性,用户定义完整性)
1.1实体完整性验证,以student表为例
把学号设置为主属性,当学号中不输入数据时,将显示:
1.2参照完整性验证以student,course,sc为例
当在sc表中输入一个不存在的学生学号或者课程号是,将显示:
1.3用户自定义完整性,以成绩表为例,规定成绩在0-100之间。
当输入一个学生的成绩为110时,将显示;
二、给定一个1NF的基本表,将其分解为2NF(参见教材第四章例子)
2.1分解原理:
对1NF关系进行投影,消除原关系中非主属性对码的函数依赖,
见1NF关系转换为若干个2NF关系。
2.2设某个基本表如表2-1所示:
(其中StuID,CourseID为联合主键)
表2-1某个数据表
显然,该表的所有属性都是不可分的基本数据项即满足1NF。
由于StuID
StuNam即StuNam部门依赖于主键(StuID,CourseID),所以该表不满足2NF。
从表2-2中可以看出,当某个学生选4门课时,其学生姓名就要重复4次,存在着数据冗余和操作异常问题。
将其分解成两个关系模式:
R1(StuID,CourseID,Score)和R2(StuID,StuNam),则R1和R2都满足2NF。
转化为2NF以后的两个表如下:
表2-2R1(StuID,CourseID,Score)
表2-3R2(StuID,StuNam)
三、给定一个2NF的基本表,将其分解为3NF(参见教材第四章例子)
3.1分解原理:
对2NF关系进行投影,消除关系中非主属性对码的传递函数依赖,从而产生一组3NF关系。
3.2设某个基本表如表3-1所示:
(StuID为主键)
表3-1
因为主键只包含一个字段,所以不存在部分依赖即满足2NF。
由于表中存在StuID
DeptID和DeptID
DeptNam即存在传递依赖,所以该表不满足3NF。
当某个专业有5个学生时,专业名(DeptID)就要重复5次,存在着数据冗余和操作异常问题。
将其分解成两个关系模式:
R1(StuID,DeptID)和R2(DeptID,DeptNam),则R1和R2都满足3NF。
转化为3NF以后的两个表如下:
表3-2R1(StuID,DeptID)
表3-3(DeptID,DeptNam)
四、给定一个具体的应用环境,要求根据具体情况创建数据库基本表,并规范化为3NF.
4.1规范化方法:
先对1NF关系进行投影,消除原关系中非主属性对码的函数依
赖,再对2NF关系进行投影,消除关系中非主属性对码的传递函数依赖,从而产生一组3NF关系。
4.2设关系模式R(StuID,CourseID,Score,TeacherID,TeacherAddr),其属性分别为:
学生学号,选修课程的编号,成绩,任课教师姓名,教师地址等。
规定:
每个学生每学一门课只有一个成绩;每门课只有一个老师任教;每个教师只有一个地址。
1)建立数据基本表R
2)试把R分解成3NF模式集。
根据R建立起来的数据表如表4-1所示(其中StuID,CourseID为主键):
表4-1
因TeacherID部分依赖于主键(StuID,CourseID),所以不符合2NF。
把R分解为:
R1(StuID,CourseID,Score)和R2(CourseID,TeacherID,TeacherAddr),则R1和R2都满足2NF,但是由CourseID
TeacherID和TeacherID
TeacherAddr知R2中存在传递依赖,即R2不满足3NF。
将R2分解成:
R3(CourseID,TeacherID)和R4(TeacherID,TeacherAddr),
则所有关系都满足3NF。
规范成3NF以后的数据表如下表所示:
表4-2R1(StuID,CourseID,Score)
表4-3R3(CourseID,TeacherID)
表4-4R4(TeacherID,TeacherAddr)
六、实验结果与讨论
七、实验报告成绩(请按优,良,中,及格,不及格五级评定)
教师签字:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 实验 报告