数据库综合实验.doc

上传人:豆**** 文档编号:33584834 上传时间:2022-08-11 格式:DOC 页数:22 大小:560.50KB
返回 下载 相关 举报
数据库综合实验.doc_第1页
第1页 / 共22页
数据库综合实验.doc_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《数据库综合实验.doc》由会员分享,可在线阅读,更多相关《数据库综合实验.doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、如有侵权,请联系网站删除,仅供学习与交流数据库综合实验【精品文档】第 22 页数据库原理及应用- SQL Server 2000 陈学进 于 2010年三月实验指导书实验一 用E-R图设计数据库1. 实验目的1) 熟悉E-R模型的基本概念和图形的表示方法。2) 掌握将现实世界的事物转化成E-R图的基本技巧。3) 熟悉关系数据模型的基本概念。4) 掌握将E-R图转化成关系表的基本技巧。2. 实验内容1) 根据需求确定实体,属性和联系。2) 将实体,属性和联系转化为E-R图。3) 将E-R图转化为表。3. 实验步骤1) 设计能够表示出班级与学生关系的数据库。确定班级实体和学生实体的属性。确定班级和

2、学生之间的联系,给联系命名并指出联系的类型。确定联系本身的属性。画出班级与学生关系的E-R图。将E-R图转化为关系模式,写出各关系模式并标明各自的主码或外码。2) 设计能够表示出顾客与商品关系的数据库。确定顾客实体和商品实体的属性。确定顾客和商品之间的联系,给联系命名并指出联系的类型。确定联系本身的属性。画出顾客与商品关系的E-R图。将E-R图转化为关系模式,写出表的关系模式并标明各自的主码或外码。3) 设计能够表示学校与校长关系的数据库。确定学校实体和校长实体的属性。确定学校和校长之间的联系,给联系命名并指出联系的类型。确定联系本身的属性。画出学校与校长关系的E-R图。将E-R图转化为关系模

3、式,写出表的关系模式并标明各自的主码或外码。4) 设计能够表示出房地产交易中客户,业务员和合同三者之间关系的数据库。 确定客户实体,业务员实体和合同实体的属性。确定客户,业务员和合同三者之间的联系,给联系命名并指出联系的类型。确定联系本身的属性。画出客户,业务员和合同三者关系E-R图。将E-R图转化为关系模式,写出表的关系模式并标明各自的主码或外码。5) 学生之间相互交流各自设计的数据库。实验二 确定表中的关键字1. 实验目的1) 正确理解候选关键字,主关键字,组合关键字,外关键字的基本概念。2) 能够正确判断给定的表中各种类型的关键字。3) 在设计数据库时能正确指定各种类型的关键字,知道如何

4、实施数据完整性。2. 实验内容1) 复习候选关键字,主关键字,外关键字,组合关键字以及数据完整性的基本概念。2) 在给出的部门表和员工表中能正确标识出各种类型的关键字。3. 实验步骤1) 写出候选关键字,主关键字,组合关键字,外关键字,实体完整性,域完整性,参照完整性的定义。已知部门表和员工表分别见表2-1和表2-2 表2-1部门表部门代码部门名负责人地点0001生产部李华江浙江杭州0002销售部张丽浙江宁波0003市场部王欣浙江温州 表2-2员工表员工代码姓名家庭住址联系电话邮政编码部门代码200001王华杭州869609863100060001200002李想富阳8543876931001

5、00003200003张丽杭州678935423100170002200004李华江萧山8284987331010100012) 确定部门表和员工表中的候选关键字,并陈述理由。3) 选择部门表和员工表的关键字。4) 在部门表和员工表的结构中标注主关键字。5) 在员工表中确定可能的组合关键字,并陈述理由。6) 确定在部门表和员工表中共有的属性。7) 指出哪个表中的属性是外关键字。8) 确定哪个表是主表,哪个表是从表。9) 部门表和员工表是如何通过关键字实施数据完整性的。实验三 关系规范化1. 实验目的1) 了解函数依赖的基本概念。2) 能正确判断某一关系是属于第几范式。3) 掌握规范化范式的方法

6、。2. 实验内容1) 复习函数依赖,数据规范化,范式的基本概念以及各级范式的判别标准。2) 判断给定的表满足哪级范式的条件。3) 将给定的表转换成满足特定等级范式条件的表。3. 实验步骤1) 写出函数依赖,数据规范化,范式的定义以及各级范式的判别标准。2) 有表3-1所示的项目表1,判断其是否满足第一范式的条件,并说明理由。表3-1 项目表1项目代码职员代码部门累计工时间P27E101系统集成部90P51101P2060P27E305销售部109P2298P51E508行政办公室NULLP27723) 有表3-2所示的项目表2,判断其是否满足第二范式的条件,并说明理由。 表3-2 项目表2项目

7、代号职员代码部门累计工作时间P27E101系统集成部90P27E305财务部10P51E508行政办公室NULLP51E101系统集成部101P20E101系统集成部60P27E508行政办公室724) 有表3-3所示的职员表,判断其是否满足第三范式的条件,并说明理由。 表3-3 职员表职员代码部门部门负责人代码E101系统集成部E901E305财务部E909E402销售部E909E508行政办公室E908E607财务部E909E608财务部E9095) 有表3-4所示的项目表3,判断其是否满足第三范式的条件,并说明理由。 表3-4 项目表3项目代码职员代码职员姓名累计工作时间P2E1李华玉4

8、8P5E2陈家伟100P6E3张勤15P3E4谢成权2505P5E4谢成权75P5E1李华玉406) 将项目表1转换成满足第一范式条件的表。7) 将项目表2转化成满足第二范式条件的表。8) 将职员表转换成满足第三范式条件的表。9) 将项目表3转换成满足BCNF条件的表。10) 非规范化数据带来的不利影响是什么?实验四 创建SQL Server 2000数据库和表1. 实验的目的1) 熟悉企业管理器环境。2) 掌握创建数据库和表的操作。2. 实验内容1) 熟悉SQL Server 2000 企业管理器环境。2) 创建XSCJ数据库。3) 在XSCJ数据库中创建学生情况表XSQK,课程表KC,学生

9、成绩表XS_KC。4) 在XSQK、KC、XS_KC表中输入数据。3. 实验步骤1) 启动SQL Server企业管理器,打开“SQL Server Enterprise Mananger”窗口,并在左边的目录树结构中选择“数据库”文件夹。2) 选择“操作”菜单中的“新建数据库”命令,打开 “数据库属性” 对话框,并在 “名称”框内输入数据库名称XSCJ。3) 单击“确定”按钮,完成XSCJ数据库的创建。4) 打开刚才创建的 “XSCJ” 文件夹,并在“SQL Server Enterprise Mananger”窗口的右边窗口中选择“表”对象。5) 选择“操作”菜单中的“新建表”命令,打开S

10、QL Server的表编辑器窗口。6) 根据表4-1所示的表结构增加新列。 表4-1 学生情况表XSQK的结构列名数据类型长度是否允许为空值默认值说明学号Char6N主键姓名Char8N性别Bit1N男1,女0出生日期smalldatetime4N专业名Char10N所在系Char10N联系电话char11Y7) 点击快捷工具栏上的快捷按钮,在弹出的“选择名称”对话框中输入表名XSQK,然后单击“确定”按钮,关闭表编辑器窗口,完成新表的创建。8) 打开“表”对象,在“SQL Server Enterprise Manager”窗口的右边窗口中选择刚才创建的“XSQK”表。9) 选择“操作”菜单

11、中的“打开表”子菜单下的“返回所有行”命令,打开表的数据记录窗口。10) 输入的学生情况数据记录见表4-2。学号姓名性别出生日期专业所在系联系电话020101杨颖01980-7-20计算机应用计算机88297147020102方露露01981-1-15计算机应用计算机88297147020103俞奇军11980-2-20信息管理计算机88297151020104胡国强11980-11-7信息管理计算机88297151020105薛冰11980-7-29水利工程水利系88297152020201秦盈飞01981-3-10电子商务经济系88297161020202董含静01980-9-25电子商务

12、经济系88297062020203陈伟11980-8-7电子商务经济系88297171020204陈新江11980-7-20房建水利系88297171 表4-2 学生情况记录11) 同理建课程表KC,表的结构见表4-3所示,表的内容见表4-4所示。表4-3 课程表KC的结构列名数据类型长度是否允许为空值默认值说明课程号Char3N主键课程名Char20N教师Char10开课学期Tinyint1只能1-6学时Tinyint160学分Tinyint1N 表4-4 课程表记录课程号课程名教师开课学期学时学分101计算机原理陈红2453102计算方法王颐3453103操作系统徐格2604104数据库原

13、理及应用应对刚3755105网络基础吴江江4453106高等数学孙中文1906107英语陈刚1906108VB程序设计赵红韦370512) 同理建成绩表XS_KC,表的结构见表4-5所示,表的内容见表4-6所示。表4-5 成绩表XS_KC的结构列名数据类型长度是否允许为空值默认值说明学号Char6N外键课程号Char3N外键成绩Tinyint10-100之间表4-6 成绩表XS_KC的记录学号课程号成绩0201011018502010110287020101107880201021015802010210263020104107760202021035502020210880020203103

14、5702020410371实验五 查询数据库1实验目的1) 熟悉SQL Server 2000查询分析器环境。2) 掌握基本的SELECT查询及其相关子句的使用。3) 掌握复杂的SELECT查询,如多表查询、子查询、连接和联合查询。2实验内容1) 启动SQL Server 2000 查询分析器环境。2) 涉及多表的简单查询。3) 涉及多表的复杂查询。3. 实验步骤1) 启动SQL Server查询分析器,打开“SQL查询分析器”窗口。2) 在“SQL查询分析器”窗口中选择要操作的数据库,如“XSCJ”数据库。3) 在KC表中查询学分低于3的课程信息,并按课程号升序排列。 在查询命令窗口中输入以

15、下SQL查询命令并执行: SELECT * FROM KC WHERE KC.学分36) 按学号对不及格的成绩记录进行明细汇总。SELECT 学号,课程号,成绩 FROM XS_KCWHERE 成绩60ORDER BY 学号COMPUTE COUNT(成绩)BY 学号7) 分别用子查询和连接查询,求107号课程不及格的学生信息。用子查询:SELECT 学号,姓名,联系电话 FROM XSQKWHERE 学号 IN( SELECT 学号 FROM XS_KC WHERE 课程号=107AND 成绩60)用连接查询:SELECT 学号,姓名,联系电话 FROM XSQK JOIN XS_KC ON

16、 XSQK.学号=XS_KC.学号WHERE课程号=107AND 成绩608) 用连接查询在XSQK表中查询住在同一寝室的学生,即其联系电话相同SELECT A.学号,A.姓名,A.联系电话 FROM XSQK A JOIN XSQK BON A.联系电话=B.联系电话 WHERE A.学号!=B.学号请自已完成以下的查询:9) 查询XSQK表中所有的系名。10) 查询有多少同学选修了课程。11) 查询有多少同学没有选课。12) 查询与杨颖同一个系的同学姓名。13) 查询选修了课程的学生的姓名、课程名与成绩。14) 统计每门课程的选课人数和最高分。15) 统计每个学生的选课门数和考试总成绩,并

17、按选课门数的降序排列。实验六 创建和使用视图1实验目的1) 掌握视图的创建、修改和删除。2) 掌握使用视图来访问数据。2实验内容1) 创建一个简单的视图,查询101号课程不及格的学生信息。2) 修改简单视图,查询107号课程成绩介于70-90的学生信息。3) 使用视图访问数据。4) 删除所创建的视图。3实验步骤1) 启动SQL Server企业管理器,打开“SQL Server Enterprise Manager”窗口。2) 选择要创建视图的数据库文件夹,如“XSCJ”文件夹,并在右边的对象窗口中选择其中的“视图”对象。3) 选择“操作”菜单中的“新建视图”命令,打开SQL Server的视

18、图设计窗口。4) 在“数据源关系图窗口”中单击鼠标右键,打开“添加表”窗口,添加XSQK表和XS_KC表。5) 选择XSQK表的学号和姓名列,选择XS_KC表的课程号和成绩列,作为视图的显示列。6) 设置学号列的排序类型为升序。7) 设置查询条件:先在课程号行的“准则”列设置条件为“=101”,然后在成绩行的“准则”列设置条件为“=70”,并复制该行,去掉“输出”列中的复选,并修改“准则”列的条件为“=60观察一下显示出来的数据是否有序3) 使用索引优化向导优化索引。索引优化向导可以根据给定的工作负荷,通过使用查询优化器分析该工作负荷的查询。此时为数据库推荐最佳索引组合,而为了记录工作负荷,必

19、须使用SQL事件探查创建一个跟踪记录工作负荷。启动SQL Server事件探查器,打开“SQL事件探查”窗口。选择“文件“菜单中”新建“子菜单下的”跟踪“命令”打开“跟踪属性”对话框,新建一个跟踪。设置跟踪名为“INDEX_TRACE”,把跟踪保存为负荷文件“INDEX_TRACE”。然后单击运行按纽开始跟踪。切换到SQL查询分析器窗口,在其中的查询命令中输入以下SELECT查询语句: SELECT A.学号,A.姓名,D.课程名,C.成绩,A.联系电话FROM XSQK A JOIN XSQK B ON A.联系电话=B.联系电话JOIN XS_KC C ON A.学号=C.学号 JOIN

20、KC D ON D.课程号=C.课程号WHERE A.姓名=俞奇军 and B.姓名!=俞奇军切换回SQL事件探查起窗口,此时在窗口中列出了刚刚执行的查询语句的跟踪信息。单击快捷工具栏的快捷键按钮暂停跟踪。其中,注意列的含义如下:1CPU列:表示查询所占用的CPU时间,单位为毫秒。2Duration列:表示查询执行的时间 ,单位为毫秒。3Reads列:表示查询所引起服务器执行的物理磁盘读取次数。4Writes列:表示查询所引起服务器执行的物理磁盘写入次数。选择“工具”菜单中的“索引优化向导”命令,打开“索引优化向导”对话框。开始优化索引。切换到SQL事件探查窗口,然后点击快捷工具栏上的快捷按钮

21、继续跟踪。切换到SQL查询分析器窗口,再次执行刚才的SELECT查询语句。切换回SQL事件探查起窗口,此时在窗口中又列出了优化索引执行同样的查询语句的跟踪信息。我们可以看到,优化索引后,读盘次数减少了,执行时间变短了。比较图中两次查询的执行情况,很显然,经过索引优化后,查询性能有了很大的提高。如果全换成大型表,优化效果将更加明显。单击快捷工具栏上的快捷按钮停止跟踪,并关闭“SQL事件探查窗口”。实验八 创建并使用约束和默认值对象1. 实验目的1) 掌握约束的定义和删除操作。2) 掌握默认值对象的定义和删除。2实验内容1) 使用命令删除XSQK表中性别的约束,然后再创建。2) 使用界面方式创建默

22、认值对象,并绑定到列,然后再删除。3实验步骤1)删除并重建XSQK表中性别的约束。打开“SQL 查询分析器”窗口,选择要操作的数据库,如“XSCJ”数据库。在命令窗口中输入以下SQL命令并执行,删除XSQK表中性别列的约束。ALTER TABLE XSQKDROP CONSTRAINT CK_XSQK_性别在命令窗口中输入以下SQL命令并执行,查询创建刚才删除的性别列约束,使性别只能取值为1(表示男)或者0(表示女)。ALTER TABLE XSQK ADD CONSTRAINT CK_ XSQK_性别CHECK (性别=1 OR性别=0)2)定义新的默认值对象。启动SQL Server企业管

23、理器,打开“SQL Server Enterprise Manager”窗口。选择要创建默认值对象的数据库文件夹,如“XSCJ”文件夹,并在右边的对象窗口中选择其中的“默认”对象。选择“操作”菜单中的“新建默认”命令,打开“默认属性”对话框,并输入名称“DFO_出生日期”和值 1980-1-1注意:1980-1-1前后有单引号()括起来,表示其为日期类型。单击“确定”按钮,完成默认值对象的定义。3)将默认值对象绑定到XSQK表的出生日期列。打开“默认”对象,并选中刚才定义的默认值对象DFO_出生日期。选择“操作”菜单中的“属性”命令,打开“默认属性”对话框。单击“绑定列”按钮,打开“将默认值绑

24、定到列”的对话框。单击“确定”按钮,完成到列的绑定。4)使用值对象为新插入行的出生日期列设置值。在对象窗口中选择并打开其中的“表”对象,选中XSQK表。选择“操作”菜单中“打开表”子菜单下的“返回所有行”命令,打开表的数据记录窗口。在表中插入一行新记录,其中出生日期列不填,其值由刚才绑定的默认值对象设定。如果在设置默认值对象属性时,其值前后没有加单引号(),那么在插入出生日期列的默认值时,该值就不会是“1980-1-1”了。关闭数据记录窗口。5)取消绑定并删除默认值对象。选择并打开“默认”对象,选中“DFO_出生日期”默认对象。选择“操作”菜单中的“属性”命令,打开“默认属性”对话框。单击“绑

25、定列”按钮,打开“将默认值绑定到列”对话框。单击“确定”按钮,取消到列的绑定,关闭“默认属性”对话框。选择“操作”菜单中的“删除”命令,打开“除去对象”对话框。单击“全部除去”按钮,确定删除。实验九 实现数据完整性1实验目的1) 掌握域完整性的实现方法。2) 掌握实体完整性的实现方法。3) 掌握参照完整性的方法。2实验内容1) 使用界面方式创建规则对象,并绑定到列,实现域完整性。2) 为表添加一个标识列,实现实体完整性。3) 为两表建立关联,实现参照完整性。3实验步骤1) 实现域完整性启动SQL Server企业管理器,打开“SQL Server Enterprise Manager”窗口。选

26、择要创建规则对象的数据库文件夹,并在右边的对象窗口中选择其中的“规则”对象。选择“操作”菜单中的“新建规则”命令,打开“规则属性”对话框。设置形如“(区号)电话号码”的联系电话格式检查规则,单击“确定”按钮,完成规则对象的定义。打开“规则”对象,并选中刚才定义的规则对象RO_联系电话格式。选择“操作”菜单中的“属性”命令,打开“规则属性”对话框。单击“绑定列”按钮,打开“将规则绑定到列”对话框,完成到列的绑定,关闭“规则属性”对话框。在对象窗口中选择并打开其中的“表”对象,选中XSQK表并打开。在表中分别插入两行新记录,其中一行的联系电话格式为指定的格式,另一行的联系电话格式为非法格式。当插入

27、第一行时,系统成功地插入了新数据行,但无信息返回;而在插入第二行时系统提示错误信息,拒绝接受非法格式的联系电话,从而保证了域完整性。单击“确定”按钮,取消插入,并关闭表的数据记录窗口。2)实现实体完整性在对象窗口中选择并打开其中的“表”对象,选中KC表。选择“操作”菜单中的“设计表”命令,打开表编辑器窗口。添加一个标识列,种子值为1,递增量也为1。点击快捷工具拦上的快捷按钮,完成标识列的添加,然后关闭编辑窗口。选中KC表并打开表的数据记录窗口。可以看到,系统自动为每行的标识列填充了值,并从1开始,依次递增,这样,表中的每一数据行都可以由标识列唯一标识,实现了实体完整性。关闭表的数据记录窗口。3

28、)实现参照完整性在对象窗口中选择打开其中的“表”对象,选中XS_KC表。先择“操作”菜单中的“设计表”命令,打开表编辑器窗口。点击快捷工具拦上的快捷按钮,打开“属性”对话框的“关系”选项卡。为XSQK表和XS_KC表建立基于学号列的关系。选中XSQK表,并选择“操作”菜单中“打开表”子菜单下的“返回所有行”命令,打开表的数据记录窗口。将表中的值为“020101”的学号都修改为“020111”。由于XSQK表中不存在值为“020111”的学号,所以系统提示错误信息,拒绝接受不存在的学号,从而保证了参照完整性。单击“确定”按钮,取消修改,并关闭表的数据记录窗口。实验十 实现存储过程1实验目的1)

29、掌握用户存储过程的创建操作。2) 掌握用户存储过程执行操作。3) 掌握用户存储过程的删除操作。2实验内容1) 创建带输入参数的存储过程和嵌套调用的存储过程。2) 执行所创建的存储过程。3) 删除所有新创建的存储过程。3实验步骤1) 创建带输入参数的存储过程。启动SQL Server查询分析器,打开“SQL查询分析器”窗口。选择要操作的数据库,如“XSCJ”数据库。在查询命令窗口中输入创建存储过程的CREATE PROCEDURE语句。这里,我们创建一个带输入参数的存储过程proc_XSQK1,其中的输入参数用于接收课程号,默认值为“101”,然后在XS_KC表中查询该课成绩不及格的学生学号,接

30、着在XSQK表中查找这些学生的基本信息,包括学号、姓名、性别和联系电话信息,最后输出。点击快捷工具栏上的快捷铵钮,对输入的CREATE PROCEDURE 语句进行语法分析。如果有语法错误,则进行修改,直到没有语法错误为止。点击快捷工具拦上的快捷按钮,执行CREATE PROCEDURE语句。2) 创建带嵌套调用的存储过程。在查询命令窗口中输入创建存储过程的CREATE PROCEDURE语句。这里,我们创建一个带嵌套调用的存储过程proc_XSQK2。该存储过程也有一个输入参数,它用于接收授课教师姓名,默认值为“王颐”,然后嵌套调用存储过程proc_课程号,输出其所授课程的课程号,接着用此课

31、程号来完成上一部分实验中所创建的存储过程proc_XSQK1的功能。相应的CREATE PROCEDURE语句如下:DECLARE 课程号char(3)-嵌套调用存储过程proc_课程号EXECUTE proc_课程号 授课老师,课程号 OUTPUT-查询指定课程成绩不及格的学生的基本信息SELECT XSQK.学号,XSQK.姓名,XSQK.性别,XSQK.联系电话FROM XSQK ,XS_KCWHERE XS_KC.课程号=课程号AND XS_KC.成绩=0 AND成绩=100)在查询命令窗口中输入并执行以下UPDATE XS_KC语句,查看执行结果。UPDATE XS_KC SET成绩

32、=120WHERE 课程号=108在查询命令窗口中输入执行以下UPDATE XS_KC 语句,查看执行结果。UPDATE XS_KCSET成绩=90WHERE 课程号=108从这部分实验中,我们可以看到,约束优先于触发器起作用,它在更新前就生效,以对要更新的值进行规则检查。当检查到与现有规则冲突时,系统给出错误消息,并取消更新操作。如果检查没有问题,更新被执行,当执行完毕后,再激活触发器。4) 删除新创建的触发器在查询命令窗口中输入DROP TRIGGER 语句,删除新创建的触发器。DROP TRIGGER tri_UPDATE_DELETE_XS_KC点击快捷工具栏上的快捷按钮,删除触发器。*实验十二 实现事务和批1. 实验目的1) 了解事务的ACID属性。2) 掌握事务和批的工作原理。3) 了解事务处理与批处理。2. 实验内容1) 事务处理与批处理的关系。2) 如何把一个事务处理封闭在单个的批处理中。3) 用条件判断结构来实现。3. 实验步骤1) 把事务处理分散写进多个批处理通常不是一个好的设计思想。锁

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 家庭教育

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁