实验数据库原理Word文档下载推荐.docx
《实验数据库原理Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验数据库原理Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
bookid-图书编号,bookname-图书名称,author-作者,price-单价,pubcompany-出版社,csl-藏书量
Readers(rno,rname,rsex,spet,dept,bday)
rno-读者编号,rname-读者姓名,rsex-性别,spet-专业,dept-系别,bday-出生日期
L_R(rno,bookid,lenddate,limitdate,returndate,fine)
rno-读者编号,bookid-图书编号,lenddate-借书时间,limitdate-限定还书日期,returndate-还书时间,fine-罚金
要求:
在创建表的过程中为每张表设置主码。
6、ALTERTABLE语句练习。
在已建好的三张表中,增加新的列、修改已有的列,删除列。
*在books中增加列classid(分类号)
*修改books中classid的数据类型
*删除books中的列classid
7、分别在Books、Readers、L_R表中创建索引(创建索引的字段可任意)。
8、删除模式Lib。
思考:
1、在模式Lib中创建表有哪些方法?
2、第8题是否可以直接删除成功,如果不能要怎么做才能删除成功?
**五、设置默认模式
1、创建登录名s1。
设置该登录名的密码,默认数据库:
Library。
2、在Library创建用户s1。
3、以登录名s1登陆数据库服务器
4、为用户s1创建一个模式ST。
5、将模式ST设置为默认模式
ALTERUSERs1WITHDEFAULT_SCHEMA=ST;
6、再次创建readers表。
7、查看readers属于哪个模式?
六、实验要求
在每次实验前,学生必须根据实验指导书设计出实验方案(程序和实验步骤);
在实验过程中要求独立进行程序调试和排错,学会使用在线帮助来解决实验中遇到的问题,同时运用理论的知识来分析问题和解决问题,记录下实验过程和结果。
上机结束后写出实验报告,并对实验过程进行分析和总结。
实验二、关系数据库标准语言SQL-数据查询语言
1、理解Select查询语句中各个子句在查询中的基本作用。
2、通过多种类型查询的设计,掌握Select语句各子句的功能和使用方法。
设计型
三、实验内容及步骤
1、利用数据库jxgl完成下列查询。
(在SQLSERVER2005上附加数据库jxgl)
安装好的SQLServer2005没有用户数据库,如果磁盘上有数据库文件,可以将其附加到数据库服务器中。
操作:
在“对象资源管理器”窗口中,选择数据库服务器,右击“数据库”在弹出菜单中单击“附加”命令,打开“附加数据库”对话框。
图2-1选择附加操作窗口
图2-2“附加数据库”窗口
图2-3“定位数据库文件”对话框
点击“确定”后,回到“附加数据库”对话框。
图2-4“附加数据库”对话框
(1)查询03物流1学生的详细信息
(2)查询“入学成绩”在350到400分之间的学生的姓名和班级(用两种方法)
(3)查询students表中现有的班级(要求班级名称不要重复)
(4)查询具有“教授”或“副教授”职称的教师的教师编号和姓名(用两种方法)
(5)查询姓“陈”,且籍贯是“宁波”的学生的姓名,出生日期,入学成绩
(6)查询students表中“09级”的学生信息
(7)查询姓名中包含“菲”字的学生的学号、姓名、性别、班级
(8)查询教师上课情况表中还没有安排好上课教师的班级和对应的课程号
(9)查询全体学生情况,查询结果按所在班级名升序排列,同一班级中的学生按出生日期降序排列
(10)统计03物流1学生“入学成绩”的平均分、最高分、最低分
(11)统计students表中的学生人数
(12)统计各个班级的学生人数,按统计结果做降序排列
(13)统计各门课程的平均成绩,结果显示课程号和平均成绩
(14)查询平均成绩80以上的课程编号
(15)查询平均成绩75分以上的学生的学号
(16)查询教师人数在5人以上的部门,查询结果显示部门名称和教师人数,查询结果按教师人数作降序排列
四、实验要求
实验三、关系数据库标准语言SQL-数据操纵语言
1、深入理解连接查询和嵌套查询的语句格式、执行过程,掌握它们的使用方法。
2、理解数据操纵语言INSERT、UPDATE、DELETE语句的格式和作用,掌握它们的使用方法和应用范围。
3、理解视图的概念,掌握其定义方法和应用方法。
1、在SQLSERVER2005上附加数据库jxgl。
2、在jxgl中完成下列查询
(1)查询选修了课程学生的学号、姓名、所选课程号、课程名称以及取得的成绩
(2)查询选修了‘计算机基础’这门课程的学生的学号、姓名、班级、成绩
*(3)查询每一门课程及其先修课程,查询结果显示课程号、课程名和先修课程名
(4)查询和“刘涛”在一个班级的学生的信息
(5)查询没有选修过任何课程的学生的信息(学号、姓名、班级)
该查询可用几种方法实现?
(6)查询“姚明”给哪些个班级上课?
(7)查询“姚明”给上哪些课程?
(8)查询学号为“0311102”学生选修课程的学分总和
(9)查询其他班中比“03计算应用1”所有学生入学成绩高的学生的姓名和入学成绩
(10)查询既选修了“计算机基础”又选修了“C语言基础”的学生的学号
(11)查询既选修了“计算机基础”或者选修了“C语言基础”的学生的学号
*(12)查询每个学生超过该门课程平均成绩的课程号(查询结果显示学号和课程号)
3、在jxgl中完成下列数据更新
(1)向course表添加一个新的元组。
(元组的可自定义)
(2)将“0301102”学生所选的“0000002”课程的成绩改为100,绩点改为2
(3)修改“黄圣依”所选的“0000002”课程的成绩,在原成绩上减去10分
(4)删除
(1)在course表中添加的元组
(5)统计每门课程的平均成绩并将统计结果存入到jxgl数据库中
注意:
先建表,再将查询结果添加到表中
4、定义视图V_TC,该视图包含教师的编号、姓名、上课的课程号、课程名称及班级。
5、在第4题定义的视图V_TC中完成下列查询
(1)查询“姚明”所上课程名称和班级。
(2)统计每一位教师上课的数量
五、实验要求
实验四、数据库的完整性
1、理解数据库完整性的内容以及各类约束的作用。
2、掌握设置数据表中的各类约束的SQL语句。
2、根据要求为数据表设计数据类型、完整性约束实现数据库的完整性,设计数据验证各类约束的效果,并根据数据库管理系统的提示分析各种出现违反完整性约束的情况。
理解以下几张表的内容,根据实际情况设计属性名、数据类型、及各种完整性约束(primarykey、foreignkey、notnull、unique、check),用数据定义语言实现,然后设计实验数据验证约束的效果,当操作违反了完整性约束条件时,数据库管理系统是如何处理的。
1、创建数据库S_T。
2、新建一张学生信息表,该表至少包含学号,姓名,性别,出生年月datetime,专业号,身份证号,联系方式等属性,数据类型根据实际情况选择。
在建表的过程中选择合适的属性设置主码(primarykey),唯一约束(unique),为性别设置检查约束(check)使该属性只能取“男”或“女”。
3、新建一张专业信息表,该表至少包含专业号,专业名称,专业负责人,专业简介等属性,数据类型根据实际情况决定。
在建表的过程中选择合适的属性设置主码(primarykey),唯一约束(unique)。
4、新建一张课程信息表,该表至少包含课程号,课程名称,学分,开课学期等属性,数据类型根据实际情况决定。
在建表的过程中选择合适的属性设置主码(primarykey),为学分设置约束使该属性取值范围为1到10之间的整数。
可以设置唯一约束的属性有哪些?
5、新建一张选课信息表,该表至少包含学号,课程号,成绩,基点等属性,数据类型根据实际情况决定。
在建表的过程中选择合适的属性设置主码(primarykey),为成绩设置约束使该属性取值范围为0到100之间的整数。
为基点设置约束使该属性取值为0或者大于等于1的值。
*思考:
设置一个约束使得基点在成绩小于60时取0,大于等于60时取大于等于1的值。
6、修改学生信息表,为该表添加外码,实现表间数据的参考完整性。
7、修改选课信息表,为该表添加外码,实现表间数据的参考完整性。
要求允许级联更新,但不允许级联删除。
该表可以设置几个外码?
分别是什么?
8、用insert语句分别向这四张数据表添加元组来检验已经建立的各类约束在实现数据完整性方面的作用(既要设计正确的元组也要设计错误的元组)。
在实验结果与分析中记录下测试的元组数据,如果出错分析错误原因。
记录如下:
示例:
向专业信息表添加数据
1)insertinto专业values(…..)执行成功
2)再次执行insertinto专业values(…..)提示出错,错误原因是违反了实体完整性规则。
每张表填写2-3条以上的数据;
每个类型的完整性约束至少测试一次正确的数据和一次错误的数据。
实验五、数据库的安全性
1、了解SQLServer2005的安全性机制。
理解登陆账户、用户账户、角色之间的关系。
2、理解并掌握使用SQL进行自主存取控制实现数据库的安全性。
四、背景知识
1、SQLServer2005数据库中的数据必须经过三个级别的认证过程:
1)第一个认证过程是Windows级别,即Windows身份验证,需通过登录账户来标识用户。
身份验证只验证用户是否具有连接到SQLServer数据库服务器的资格。
2)第二个级别的认证是SQLServer级别的认证,该认证过程是当用户访问数据库时,必须具有对具体数据库的访问权,即验证用户是否是数据库的合法用户。
3)第三个级别是数据库级,该级别是指当用户操作数据库中的数据对象时,必须具有相应的操作权,即验证用户是否具有操作权限。
2、用户身份认证类别
SQLServer的用户有两种类型:
1)Windows授权用户:
来自于Windows的用户或组。
2)SQL授权用户:
来自于非Windows的用户,称其为SQL用户。
五、实验内容及步骤
附加数据库S_T
1、建立SQLServer登录账户。
要求创建登录账户S1,S2,S3
创建步骤如下:
第一步:
鼠标右键点击安全性中的登录名,在弹出的快捷菜单中选择新建登录名。
图1-1新建登录名
第二步:
在展开的新建登录名对话框之中的常规选项页里面,键入登录名为S1,选择SQLServer身份认证,并输入密码和确认密码,将强制实施密码策略的选项去掉。
最后在状态选项中确定授权都已经授权和启用后,点击确定建立S1登陆账户。
图1-2创建登录账户对话框
第三步:
测试,用该登陆账户连接SQLSERVER。
2、建立数据库用户账户。
要求在S_T创建登录账户U1,U2,U3分别关联登录账户S1,S2,S3
在S_T数据库的安全性,点击鼠标右键选择新建用户名如图1-3所示
图1-3新建用户
打开新建用户对话框,填写用户名和关联的登录名,如图1-4所示。
点击确定完成新建用户账户。
测试,用新建的登录名(S1)和用户名(U1)登陆SQLSERVER,查看是否能访问数据库S_T。
为什么?
图1-4新建用户账户对话框
3、使用grant和revoke进行授权和权力收回。
操作完成后查看已授权的用户是否真正具有授予的数据操作权力了;
收回权力后的用户是否丧失了收回的数据操作的权力。
1)以Administration身份登录SQLSERVER,为U1授予查询student表的权力,同时允许U1将该权利授予其他用户。
为U3授予更新SC表中grade值的权力。
以S1登录SQLSERVER,测试用户U1是否有权力查询S_T数据库中的Student表?
以S3登录SQLSERVER,测试用户U3是否有权力更新SC表中grade的值?
执行如下两个语句:
Updatescsetgrade=0wheresno=‘0301101’
Updatescsetgrade=0
那个语句可以执行成功?
根据系统提示,思考原因。
2)U1为U2授予查询student表的权力,但不允许U2将该权力授予他人。
以S2登录SQLSERVER,测试用户U2是否有权力查询S_T数据库中的Student表?
测试用户U2是否有为U3授予查询Student表的权力?
3)收回U1,U2查询student表的权力
4)收回U3修改SC表中grade的权力。
以什么身份登陆SQLSERVER才能收回U1,U2,U3的权力?
如何测试用户U1,U2,U3的权限是否收回?
*5)为U1授予在S_T数据库中创建表的权力。
测试U1是否具有在S_T数据库中创建表的权力?
6)要使用户u2只具有查询、增删改student表中’cs’系学生信息的权力,该如何实现?
7)收回用户u2查询、增删改student表中’cs’系学生信息的权力,该如何实现?
4、应用角色来简化授权过程
1)以Administration身份登录数据库服务器,创建登录账户S4及用户账号U4,角色R1(数据库角色)。
2)为角色R1授予查询student,向student表插入记录的权力。
3)将角色R1授权给用户U4。
execsp_addrolemember'
r1'
'
u4
以S4登陆SQLSERVER,测试U4是否有权力查询student、向student表插入记录?
4)从角色R1中收回向student表插入记录的权力。
测试U4还有哪些权力?
5)收回U4的R1角色
execsp_droprolemember'
u4'
实验六、数据库设计
1、理解数据库设计的基本步骤,初步掌握小型数据库应用系统数据库设计的基本方法。
2、培养学生根据系统的功能要求分析问题,通过查找资料、讨论等多种方法解决问题的能力以及团队协作精神。
综合型
1、系统的需求分析。
仔细查看选定系统的功能要求,结合实际情况,通过小组内部讨论和查找资料来进一步细化系统需求,要求根据系统功能分析实现这些系统功能需要用到哪些数据。
注意:
系统的功能不需要实现,但是要根据这些功能需求,分析需要的数据。
2、数据库的概念结构设计。
根据需求分析的结果,确定该系统的概念模型。
即根据分析出的功能需求提炼需要的实体、属性和联系,画出局部和整体的ER图。
ER图的绘制一定要结合系统的功能要求来确定。
3、数据库逻辑结构设计。
根据概念设计的结果,确定该系统的逻辑模型,应用规范化的原理对整个逻辑模型进行优化。
分析关系模式中每个属性的含义,选择合理的数据类型,标识出每个关系模式的主码。
分析表间关系,标识出关系模式的外码。
这部分工作的内容比较多,一步一步完成。
4、数据库实现。
根据逻辑结构的设计结果,用SQL语言在SQLServer2005中实现该数据库,注意实现数据完整性。
5、建立必要的视图。
6、将整个需求分析、数据库设计、数据库实现的过程写成实验报告。
五、实验报告内容和格式要求
《XXXXX系统》数据库设计报告
一、需求分析
文字描述
二、概念结构设计
ER图
三、逻辑结构设计
转化后的关系模式(用表格的形式表示)
如:
产品(Products)
属性(列名)
数据类型
是否允许为空
完整性要求
产品号
char(10)
否
主码
产品名
char(20)
……..
四、数据库实现
创建数据表、定义约束的SQL语句
向数据表添加数据的SQL语句
建立视图的SQL语句
五、心的体会
完成本次实验的心得体会(100字以上)
六、备选系统介绍
1、图书销售管理系统
调查新华书店图书销售业务,设计的图书销售管理系统主要包括图书管理、进货、销售、统计功能。
具体说明如下:
(1)图书管理:
用户通过该系统能够对图书详细信息进行维护,包括添加、修改、删除。
对所有的图书进行分类,类别信息可以增加、修改、删除。
每个类别有多种图书,每种图书属于一个类别。
顾客可以通过该系统自主查询在库的图书信息。
(2)进货:
根据某种书籍的库存量及销售情况确定进货数量,填写进货单,每张进货单对应一个供应商,同一供应商也可以出现在不同的进货单中,一份进货单可包含多种图书,每种图书会出现在多份进货单中,保存进货单成功后,系统会自动修改图书库存量。
(3)销售:
输入顾客要买书籍的信息,自动显示此书的库存量,假如可以销售,生成销售单,一份销售单中包含多种图书,每种图书会出现在多份销售单中。
保存销售单时自动修改图书库存量。
(4)供应商管理:
通过该系统可以对书店的供应商信息进行管理,包括供应商信息的添加、修改、删除。
(5)统计:
根据销售情况输出统计的报表。
一般内容为每月的销售总额、销售总量及排行榜。
2、仓库物资管理系统
调查仓库管理的业务流程,设计的仓库物资管理系统包含以下功能:
(1)仓库物资基本信息管理。
用户通过该系统对仓库中现有的物资详细信息进行维护,主要包括物资信息的增加、修改、维护。
用户随时可以查看物资的基本信息和库存量。
(2)物资类别信息管理。
对所有物资进行分类,每种物资都属于某一类别,每个类别下有多种物资。
通过系统可以对这些类别信息进行维护。
(3)仓库信息管理。
所有的物资存放在仓库中,一个仓库可以存放多种物资,每种物资只能存放在一个仓库中。
因此需要对仓库的基本信息进行维护。
(4)物资的出入库管理。
每种物资的库存量变化是通过入库、出库操作来进行的。
系统对每个入库操作均要求用户填写入库单,对每个出库操作均要求用户填写出库单。
每张入库单、出库单都可以包含一种或多种物资,每种物资也可以出现在出、入库单中。
所有的出、入单都需要保存到系统的数据库中,在保存出库单的过程中减少物资库存量,在保存入库单的过程中增加物资库存量。
每月根据出入库单统计每种物资的出、入库总量。
3、班级网站
调查班级网站功能需求,设计的班级网站管理系统包含以下功能:
(1)学生登录:
班级中的学生通过输入学号和密码登录网站,进行个人信息的编辑,进入论坛。
(2)学生信息展示:
每个学生可以将个人信息上传至网站进行的展示,包括个人的基本信息、照片、兴趣爱好等内容。
(3)班级活动展示:
网站管理员可以将每次班级活动的相关信息上传至网站,供其他学生浏览。
管理员还可以对这些活动信息进行修改、删除。
(4)班级公告:
网站管理员可以将与班级相关的公告新闻上传至网站,重要的新闻可置顶。
管理员还可以对这些公告进行修改、删除。
(5)班级论坛:
登陆到网站的学生可以进入论坛,发表关于某一主题的帖子、也可以对其他学生发表的帖子回复。
论坛的帖子根据最新的回复时间进行排序。
网站管理员可以对所有发表的帖子、回复的内容进行管理(置顶、删除、禁止回复)
(6)管理员登录:
网站管