数据库原理实验报告

发布时间 : 星期二 文章数据库原理实验报告更新完毕开始阅读

数学与计算机学院 数据库原理实验

课程编号:

课程名称:数据库原理实验 英文名称:Principle of Database 学分:1 学时:18

适用年级专业(学科类):计算机科学与技术、网络工程、软件工程、信息与计算等专业

一、课程概述

(一)课程性质

《数据库原理实验》是计算机科学与技术、网络工程、软件工程、信息与计算等专业的专业必修课程。《数据库原理》课程的实践环节。通过上机实验,使学生真正深层次了解数据库系统的体系结构,掌握数据库系统的基础理论、技术和方法,掌握主流数据库管理系统SQL Server 2000的应用技术及数据库应用系统的设计、开发能力。该课程的学习可以很好地帮助学生理解、掌握理论课所学的理论知识,提高学生处理实际问题的能力,培养并提高学生的专业素质。

本课程实验采用实验教学和学生实验相结合方式,使学生真正领会、理解、掌握理论课教学中讲解的数据库原理的基础知识和基本方法,正确灵活地运用学到知识,提高学生解决实际问题的能力。

(二)教学目标与要求

通过实践环节使学生理解、掌握课堂教学内容,重点理解并掌握数据库系统的基本概念、基本原理和基本方法。要求学生通过实验课程的学习,重点掌握构建信息管理系统的方法、步骤。培养学生应用所学知识处理具体问题的能力,为学生将来从事相关工作奠定坚实的基础。

(三)重点和难点 教学重点:

1. 数据库、表、视图、索引、主键的建立; 2. SELECT语句进行各种查询; 教学难点:触发器及存储过程。 (四)与其他课程的关系

本课程是计算机科学与技术等相关专业的专业程,要求有数据结构和程序设计等基础知识。 (五)教材及教学参考书

1. 《数据库系统概论》(第4版),萨师煊 王珊主编,高等教育出版社,2006; 2. 《数据库系统原理》,李建中,电子工业出版社,2004;

3. 《数据库系统原理教程》,王珊,陈红,清华大学出版社, 2005; 4. 《数据库系统教程》,施伯乐著,高等教育出版社,2003;

5. 《数据库系统原理与应用教程》,闪四清编著,清华大学出版社,2001。

1

二、学时分配 实验 1 2 3 4 5 6 SQL SERVER 2000的基本使用 SQL语言的基本操作 视图的创建及使用 数据完整性维护 触发器及存储过程 综合实验 实验题目 学时 2 6 2 2 2 4

三、实验内容

实验一 SQL SERVER 2000的基本使用

实验目的和要求:

通过本实验,使学生熟悉SQL SERVER 2000的工作环境,尤其是SQL SERVER 2000的企业管理器与查询分析器,熟悉对SQL SERVER 2000的各种操作。具体地,掌握表(关系)和索引的建立方法;掌握表结构(关系模式)的修改方法; 实验内容:

1. 在studentdb数据库中利用查询分析器创建以下3个表,同时完成数据完整性的定义(实体完整性、参照完整性和用户定义的域完整性): student(学生信息表): 主码 Pk 列名 sno sname ssex sage sdept 数据类型 char char char smallint char 宽度 5 10 2 15 小数位 空否 N N Y Y Y 取值范围 不小于12 备 注 学号 姓名 性别 年龄 系名

course(课程表): 主码 Pk 列名 cno cname cpno ccredit 数据类型 Char Char Char smallint 宽度 2 20 2 小数位 空否 N Y Y Y 备 注 课程号 课程名称 先行课号 学分

sc(学生选课表): 主码 Pk 2. 在spjdb数据库中利用查询分析器创建以下4个表,同时完成数据完整性的定义(实体完整性、参照完整性和用户定义的域完整性): S(供应商信息表):

列名 sno cno grade 数据类型 宽度 Char Char Decimal 5 2 5 小数 1 空否 N N Y 外码 Fk Fk 参照关系 student course 取值范围 0≤x≤100 备 注 学号 课程号 成绩 2

主码 Pk 列名 sno sname status city 数据类型 char char smallint char 宽度 2 10 10 小数位 空否 N N Y Y 取值范围 大于0 备 注 供应商号 供应商名称 供应商状态 所在城市

P(零件信息表): 主码 Pk 列名 pno pname color weight 数据类型 char char char smallint 宽度 2 10 2 小数位 空否 N N Y Y 取值范围 大于0 备 注 零件号 零件名称 颜色 重量

J(工程项目表): 主码 Pk

SPJ(供应情况表): 主码 Pk

3.修改表结构,具体要求如下:

(1) 将表course的cname列的数据类型改为varchar(40).

(2) 为表student增加一个新列: birthday(出生日期), 类型为datetime, 默认为空值. (3) 将表sc中的grade列的取值范围改为小于等于150的正数. (4) 为Student表的“Sex”字段创建一个缺省约束,缺省值为’男’

(5)为“Sdept”字段创建一个检查约束,使得所在系必须是’计算机’、’数学’或’信息’之一。 (6)为Student表的“Sname”字段增加一个唯一性约束 (7)为SC表建立外键,依赖于Student表的fk_S_c约束。

(8)禁止启用Student表的“Sdept”的CHECK约束ck_student。 4.分别建立以下索引(如果不能成功建立,请分析原因) (1) 在student表的sname列上建立普通降序索引. (2) 在course表的cname列上建立唯一索引. (3) 在sc表的sno列上建立聚集索引.

(4) 在spj表的sno(升序), pno(升序)和jno(降序)三列上建立一个普通索引. 主要教学环节的组织:

3

列名 jno jname city 数据类型 char char char 宽度 2 10 10 小数位 空否 N N Y 取值范围 备 注 工程项目号 工程项目名称 所在城市 列名 sno pno jno qty 数据类型 宽度 小数 Char Char Char smallint 2 2 2 空否 N N N Y 外码 Fk Fk Fk 参照关系 取值范围 S P J x>0 备 注 供应商号 零件号 工程项目号 成绩 教师首先讲解,然后指导学生自己操作。

实验二 SQL语言的基本操作

实验目的和要求:

掌握利用SQL语句完成各种查询操作的能力。重点掌握用SELECT语句进行各种查询; 掌握INSERT语句的用法。

实验内容:

用SQL语句完成一下的要求:

1.查询信息系(IS)的所有学生信息 2.查询选修了“数学”课的所有学生名单

3.查询至少选修了一门其直接先行课为5号课程的学生的姓名。 4.查询全体学生的姓名和出生年份。 5.查询所有姓王的学生。

6.查询选修了3号课程的学生姓名及成绩,并按成绩降序排序。 7.查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。 8.计算2号课程的平均成绩。

9.查询选修了2号课程的学生的最高成绩。 10.求各个课程号及相应的选课人数。

11.查询至少选修了3门课程以上的学生学号。 12.查询“数据库”的间接先行课。

13.查询平均成绩最高的学生的学号和姓名。 14.查询数学成绩最高的学生的学号和姓名。 15.查询出成绩最低学号最大的学生学号。 16.查询成绩高于学生平均成绩的记录。

17.查询至少选修了1号课程和3号课程的学生学号。 18.查询只选修了1号课程和3号课程的学生学号。 19.查询没有选修1号课程的学生姓名。 20.查询选修了全部课程的学生姓名。

21.查询至少选修了95002所选修的全部课程的学生学号。 22.查询没有不及格课程的学生的学号和姓名。 23.查询没有不及格学生的课程的课程号和课程名。

24.建立信息系学生视图,并从视图中查询年龄最大的学生记录。 主要教学环节的组织:

教师首先讲解,然后指导学生自己操作。

实验3 视图的创建及使用

实验目的和要求:

掌握视图的建立和使用,以及SQL的更新语句。掌握CREATE VIEW语句,能够运用该语句建立数据视图;掌握UPDATE语句的用法;掌握DELETE语句的用法。 实验内容:

1.建立视图IS_STUDENT显示“PL”系所有学生的学号、姓名、性别。 (1) 查询视图PL_STUDENT的所有信息。 (2) 查询视图PL_STUDENT的所有男生信息。

4

联系合同范文客服:xxxxx#qq.com(#替换为@)