人人范文网 范文大全

数据库原理_实验教学讲稿

发布时间:2020-03-04 00:01:43 来源:范文大全 收藏本文 下载本文 手机版

邯 郸 学 院

实验教学讲稿

2013~2014学年 第一学期

分院(系、部): 教 研 室: 课 程 名 称: 授 课 班 级: 主 讲 教 师: 职

称: 使 用 教 材:

信息工程学院 网络工程 数据库原理

网络工程2011级本科班

李 娜 讲师

《数据库系统概论》

邯郸学院制

实验1 认识DBMS系统、数据库及数据库表的建立实验

一、实验目的

本实验的目的是使学生熟悉SQL Server Management Studio的使用方法,熟悉SQL SERVER的常用数据类型,加深对SQL语言的数据定义语句的理解。熟练掌握数据库及数据库表的创建、修改和删除。

二、实验时数:

2学时

三、实验内容

分别使用SQL语言和对象资源管理器完成以下操作:

1.创建数据库

创建数据库名为COMPANY1 ,主数据文件的逻辑名称为COMPANY_DATA,操作系统文件的名称为D:\\MSSQL\\DATA\\COMPANY.MDF,大小为20MB,最大为50MB,以25%的速度增长。日志文件的逻辑名称为COMPANY_LOG,操作系统文件的名称为D:\\MSSQL\\DATA\\COMPANY.LDF,大小为3MB,最大为10MB,以1MB的速度增长。 2.修改数据库

(1)将数据库COMPANY1的主数据文件的初始分配空间大小扩充到40MB.(2) 将数据库COMPANY1改名为COMPANY 3.创建表

在名为COMPANY数据库中创建以下四个表: (1)部门表,表名DEPA 列名 DNO 数据类型 DECIMAL(2)

描述

部门编号 部门名称 部门地址 DNAME VARCHAR(16) ADDR VARCHAR(20) (2)雇员表,表名EMPL 列名 ENO 数据类型 DECIMAL(4)

描述

员工编号 员工姓名 出生日期 ENAME CHAR(8) BIRTHDATE DATETIME

SALARY DECIMAL(7,2) DNO DECIMAL(2)

工资

所在部门编号

(3)项目表,表名PROJ 列名 PNO 数据类型 DECIMAL(3)

描述

项目编号 项目名称 PNAME VARCHAR(24) (4)工作表,表名JOB 列名 ENO PNO DAYS 数据类型 DECIMAL(4) DECIMAL(3) INT

描述

员工编号 项目编号

工作天数

4.修改表结构

1)修改部门表DEPA,添加一列部门电话,列名Telephone,数据类型VARCHAR(15)。 2)为项目表PROJ添加Begindate和Enddate列,数据类型为DATETIME。 3)删除项目表PROJ中的Enddate列。 5.删除表

1)删除项目表PROJ。

6、添加记录:

1)向DEPA表添加14号部门,客户中心,地址为开发区紫光路2号。 2)向DEPA表添加 15号部门,技术支持部,地址未详。 3)向DEPA表添加 13号部门,财务部,地址未详。

„„

4)向EMPL表添加1401号员工,张山,出生日期1977年9月1日,工资4050元,14号部门。

5)向EMPL表添加1402号员工,何宜,生日不祥,工资不祥,15号部门。 „„

6)向PROJ表添加103号项目,历史学院档案库管理系统。 7)向PROJ表添加104号项目,ATM机管理系统。 „„

8)向JOB表添加1401号员工,参与了104号项目35天。 9)向JOB表添加1402号员工,参与了103号项目20天。 „„

7、修改记录:

1)把DEPA表中’客户中心’的地址改为’大连甘井子区红岭路’; 2)把DEPA表中15号部门的地址用沈阳东郊路120号填充。

3)把EMPL表中何宜的生日、工资用1981年12月20日,3000元填充。 4)把EMPL表中张山的部门号改为15号。 5)把JOB表中参与104号项目的每人增加5天。 6)把JOB表中参与103号项目的每人天数乘以系数0.8。

8、删除记录:

1)删除地址为空的部门。

2)删除JOB表中参与104号项目的员工。 3)删除JOB表中天数低于25天的员工。

4)删除生于1980年后,且工资低于4000的员工。 5)删除属于14号部门的员工。 6)删除15号部门的信息。

9.使用对象资源管理器分离和附加数据库COMPANY

实验2 数据库的单表查询、分组查询与聚集函数的使用

一、实验目的

本实验的目的是使学生熟悉SQL Server Management Studio的使用方法。加深对SQL语言的查询语句的理解。熟练掌握数据库的单表查询(包括投影、选择条件表达,数据排序,模糊查询等), 熟练掌握数据库的分组、统计、计算和集合的操作方法。

二、实验时数

2学时

三、实验内容 1.简单的SELECT查询

1)查询雇员表Empl中所有员工的详细信息,并且列名用汉字表示。 2)查询项目表Proj中所有项目的详细信息,并且列名用汉字表示。 2.使用WHERE子句进行查询

1)查询雇员表Empl中李强的员工编号。

2)查询项目表Proj中项目编号为“101”的项目名称。 3.使用DISTINCT关键字去掉重复行

1)查询雇员表Empl中出现的所有部门编号,要求无重复。

2)查询工作表Job中参与过项目开发的所有员工编号,要求无重复。 4.使用ORDER BY子句对查询结果进行排序

1)查询雇员表Empl中所有员工的详细信息,结果按员工姓名降序排列。 2)查询工作表Job中的工作信息,结果按工作天数升序排列。 5.使用LIKE子句进行模糊查询

1)查询所有姓王的员工的编号及姓名,并且以员工编号及员工姓名作为列名。 2)查询雇员表Empl中姓名以“伟”字结尾的员工信息。 6.使用聚集函数MIN、MAX进行查询

1)查询雇员表Empl中员工的最低工资,并且列名用“最低工资”表示。 2)查询雇员表Empl中员工的最高工资,并且列名用“最高工资”表示。 7.使用聚集函数COUNT进行查询

1)查询雇员表Empl中所有员工的总人数,并且列名用“员工总数”表示。 2)查询14号部门的人数,并且列名用“客户中心部人数”表示。

8.使用分组子句GROUP BY与聚集函数MIN、MAX进行查询 1)查询每个部门中年龄最大的员工,显示部门编号和出生日期。

2)分别统计雇员表Empl中各部门员工的最高工资,并且列名分别用“部门编号”及“最高工资”表示。

9.使用分组子句GROUP BY与聚集函数SUM、AVG进行查询

1)分别统计雇员表Empl中各部门员工的工资总额,并且列名分别用“部门编号”及“各部门工资总额”表示。

2)分别统计雇员表Empl中各部门员工工资的平均数,并且列名分别用“部门编号”及“各部门工资平均数”表示。

10.使用分组子句GROUP BY与聚集函数COUNT进行查询

1)统计员工人数多于4人的部门信息,并且列名分别用“部门编号”及“员工人数”表示。

2)分别统计工作表Job中各项目的参与开发的员工人数,并且列名分别用“项目编号”及“员工人数”表示。

实验3 数据库的多表连接和子查询

一、实验目的

本实验的目的是使学生加深对SQL和SQL语言的查询语句的理解。熟练掌握数据库的多表连接查询和子查询。

二、实验时数

2学时

三、实验内容 ㈠多表连接查询:

1.对两张数据表使用内连接进行查询

1)查询姓名为“王一伟”的员工所在部门的名称,并且列名用汉字表示。 2)查询编号为“1002”的员工姓名及该员工所在部门的名称,并且列名用汉字表示。

2.对多张数据表使用内连接进行查询

1)查询姓名为“陈晨”的员工参与过的所有项目的名称,并且列名用汉字表示。 2)查询编号为“1202”的员工姓名及该员工参与过的所有项目的名称,并且列名用汉字表示。

3.对两张数据表使用左连接进行查询

1)使用左连接查询所有员工的基本信息及参与项目开发情况,如果某员工参与过项目开发,则列出该员工所参与的所有项目的编号,否则该项以空值表示。 2)使用左连接查询所有员工的基本信息及所在部门名称,如果某员工尚未分配到任何部门,则该员工的部门名称项以空值表示。 4.对两张数据表使用右连接进行查询

1)使用右连接查询所有员工的基本信息及参与项目开发情况,如果某员工参与过项目开发,则列出该员工所参与的所有项目的编号,否则该项以空值表示。 2)使用右连接查询所有员工的基本信息及所在部门名称,如果某员工尚未分配到任何部门,则该员工的部门名称项以空值表示。 ㈡子查询: 1.多表单值子查询

1)查询编号为1001的员工的部门名。

2)查询‘客户中心’部门的员工数。 3)查询陈晨所在的项目编号。 2.多表多值子查询

1)查询1985年以后出生的员工在所在项目的工作天数。 2)查询参与项目天数超过40天的员工姓名。 3)查询工资低于2000的员工的所属部门。 3.多层嵌套子查询

1)查询‘客户中心\'部门中,收入高于平均工资的员工。 2)查询“开发系统”项目的参与部门。

3)查询\'宣传\'部门雇员参加的项目名称。 4.相关子查询

1)查询参与两个项目以上的员工姓名。 2)查询所有未参与项目的员工姓名。

实验4 数据库的视图与索引定义

一、实验目的

本实验的目的是使学生掌握索引与视图的定义与维护操作,加深对索引与视图在关系数据库中的作用的理解。

二、实验时数

2学时 [相关知识] 建立索引是加快查询速度的有效手段。用户可以根据应用环境的需要,在基本表上建立一个或多个索引,以提供多个存取路径,加快查找速度。

视图是根据子模式建立的虚拟表。一个视图可以由一个表构造,也可以由多个表构造。查看和修改视图就如同对表的操作一样,非常容易。

三、实验内容 ㈠索引 1.创建索引

1)为PROJ表的PNAME列创建非聚集索引Pindex。

2)为DEPA表的DNAME(降序),ADDR两列创建唯一非聚集索引Dindex。 3)在PROJ表的PNAME列上创建唯一非聚集索引Pindex,若该索引已存在则删除后重建。 2.查看索引

1)查看DEPA表的索引信息。

2)查看数据库COMPANY索引使用的空间信息 3.索引更名

1)将DEPA表的索引Dindex名更改为Dindex1。 4.删除索引

1)删除DEPA表的索引Dindex1。 ㈡视图 1.创建视图

1)创建14号部门员工的视图EMPL_14(ENO,ENAME,SALARY)。 2) 创建包含项目名与员工名及工作天数的视图Prjemp。

3)在视图EMPL_14上创建工资在3000以上的员工的视图EMPL_14H3。 4)创建每个部门的平均工资的视图E_AVG(DNO,SAVG)。 2.查询视图

1)根据视图Prjemp查询做\'设计系统\'项目的所有员工及工作天数。 2)根据视图E_AVG查询‘客户中心’的平均工资。 3.更新视图

1)在视图EMPL_14中将1042号员工的姓名改为‘李立春’。 2)向视图EMPL_14中插入一条新记录(1050,‘赵英’,3500)。 3)删除视图EMPL_14中1042号员工的记录。 4.删除视图

1)删除视图Prjemp。

实验5 数据库的安全性控制

一、实验目的

本实验的目的是通过实验使学生加深对数据安全性的理解,并掌握SQL Server中有关用户,角色及操作权限的管理方法。

二、实验时数

2学时

三、实验内容

分别使用SQL语言和对象资源管理器完成以下操作:

1.建立数据库登录帐户S1和D1,密码均为1234,登录帐户S1默认数据库分别为COMPANY,其它保持默认值。

2.将S1映射为COMPANY数据库的同名数据库用户。

3.将D1映射为COMPANY数据库的数据库用户,数据库用户名为S2。 3. 对数据库用户授予权限

1)授予S1对EMPL表插入数据的权限,并验证该权限(方法:通过登录帐户S1登录SQL Server,然后插入一条数据来验证该权限)。

2)授予S2创建表的权限,并验证该权限(方法:通过登录帐户D1登录SQL Server,然后创建-张表来验证该权限)。

3)收回S1对EMPL表插入数据的权限,并验证该权限(方法:通过登录帐户S1登录SQL Server,然后插入一条数据来验证该权限)。 4.创建用户角色

1)在COMPANY数据库中创建角色MYROLE,授予该角色查询和修改EMPL表的权限。

2)将S1添加为角色MYROLE的成员,并验证s1是否能够查询EMPL表。 3)将S2添加为角色MYROLE的成员,并验证s2是否能够修改EMPL表。 5.收回数据库用户权限

1)采用用户角色方法收回S1和S2修改EMPL表的权限,并验证S1是否还能修改EMPL表。

2)拒绝S2查询 EMPL表的权限,并验证S2是否还能查询EMPL表。

实验6 数据完整性

一、实验目的

本实验的目的是通过实验使学生加深对数据完整性的理解,掌握数据完整性的约束条件,学会创建和使用触发器。

二、实验时数

2学时 [相关知识] SQL Server实现数据完整性的具体方法有4种:约束、缺省、规则和触发器。触发器是实施复杂完整性的特殊类型的存储类型。触发器不需要专门语句调用,当对它所保护数据进行修改时自动激活,以防止对数据进行不正确,未授权或不一致的修改。

三、实验内容

1.创建包含非空约束字段的表

创建一个员工联系信息表Contact,一共有3个字段: 雇员号(Eno)数据类型为4位长定长字符串; 电话(Tel)数据类型为8位长定长字符串; 地址(Addr)数据类型为20位变长字符串; 要求雇员号和电话不能为空。 2.创建包含唯一约束字段的表

创建员工邮箱表Mail,一共有2个字段: 雇员号(Eno)数据类型为4位长定长字符串; 邮箱地址(Mail)数据类型为20位变长字符串; 要求雇员号非空,邮箱地址唯一。 3.创建包含主码约束字段的表

创建一个员工卡信息表Card,一共有3个字段: 雇员号(Eno)数据类型为4位长定长字符串; 卡号(Cno)数据类型为8位长定长字符串; 开卡日期(Startday)日期格式; 要求雇员号和卡号联合做主键。

4.创建包含检查约束字段的表

创建项目进度表Proce,一共有3个字段: 项目号(Pno)数据类型为4位长定长字符串; 完成百分比(Percentage)数据类型为DECIMAL(3,2); 已用费用(Pem)数据类型为INT;

要求:⑴完成百分比用小数表示且数值小于1;

⑵已用费用的取值为0-100000(用规则实现)。 5.创建包含默认值约束字段的表

创建通勤表Commudity,一共有2个字段: 雇员号(Eno)数据类型为4位长定长字符串; 通勤标志(Flag)数据类型为1位定长字符串; 要求通勤标志默认为‘Y’。 6.创建包含外码约束字段的表

1) 创建部门经理表Mgr,一共有2个字段:

部门号(Dno)数据类型为4位长定长字符串 经理员工号(Eno)数据类型为4位长定长字符串 要求部门号是主键(用CONSTRAINT 约束实现) 2) 创建部门收支表CHARGE,一共有2个字段:

部门号(Dno)数据类型为4位长定长字符串 收支(CHARGE)数据类型为DECIMAL(7,2) 要求部门号是外键 7.创建触发器

在表EMPL上创建一个触发器EMPL_date,当更改员工编号时同步更改Job表中对应的员工编号。

实验7 数据库设计

一、实验目的

使学生能够对给定的实际需求,选择一种编程语言或开发工具,完成数据库设计,并实现数据的查询等操作,从而掌握数据库应用系统的设计方法和步骤。 熟悉大型数据库管理系统的结构与组成; 熟悉数据库应用系统的设计方法和开发过程;

掌握一种大型数据库管理系统(SQL SERVER或ORACLE)的应用技术和开发工具的使用;

熟悉数据库设计工具的使用; 熟悉数据库安全的相关知识和技术; 熟悉数据库系统的管理和维护。

二、实验时数

4学时

三、实验内容

完整实践数据库应用系统设计的工程过程:需求分析\\概念设计\\逻辑设计\\物理设计\\实施\\编写应用程序:

(1)需求分析:选定一个应用,对所设计的数据库系统有一定的调研分析,其结果应该以简单的需求分析说明书\\数据字典和数据流图(2级数据流即可)表示; (2)概念分析:使用E-R图作为描述工具.描述出局部和全局的E-R图; (3)逻辑设计:将E-R图转化为相应的关系模式,并根据范式理论进行优化分析,关系模式不少于3个;

(4)物理设计:根据需要设计必要的索引等结构;

(5)实施:以某种DBMS为工具创建出完整的数据库.在数据库中要表现出的知识点包括: ①设置数据完整性(参照完整性、实体完整性、自定义完整性(包括触发器)。 ②设置用户,并相应设计用户的权限和角色(用户设计至少3个,有不同的权限) 。

③建立存储过程完成相关操作至少2个,以文件方式保存。④

(6) 编写应用程序:利用开发工具C++、JAVA、.NET平台或其它动态网页开发工具编写应用程序;

(7)以上内容,请详细描述,并有必要抓图; (8) 提交系统的源码程序、设计性实验报告。

实验8 数据库的备份与恢复

一、实验目的

本实验的目的是通过实验使学生了解SQL Server的数据备份和恢复机制,掌握SQL Server中数据库备份和恢复的方法。

二、实验时数 2学时

三、实验内容

分别使用SQL语言和对象资源管理器完成以下操作: 1.创建备份设备

创建一个名为company_dev的磁盘备份设备,其对应的文件是D:\\company_dev.bak,该备份设备用于COMPANY数据库的备份。写出创建该备份设备的SQL语句。 2.对数据库进行完全备份

对COMPANY数据库进行一次完全备份,备份到company_dev备份设备中。并且写出完成完全备份的SQL语句。 3.对数据库进行差异备份

对COMPANY数据库完成完全备份后,往EMPL表中添加两条新记录。然后对COMPANY数据库进行差异备份,并且写出完成差异备份的SQL语句。 4.对数据库进行事务日志备份

对COMPANY数据库完成差异备份后,执行SQL语句修改数据库的内容。然后对COMPANY数据库进行事务日志备份,并且写出完成事务日志备份的SQL语句。 5.模拟数据库故障发生

模拟用户不小心删除了COMPANY数据库,从而需要使用备份恢复数据库。 6.恢复最近的完全数据库备份

作为恢复的第一步,使用完全备份恢复COMPANY数据库。 7.恢复完全备份之后的最近的差异数据库备份

利用差异备份恢复COMPANY数据库,并写出相应的SQL语句。 8.恢复完全或差异备份之后的数据库事务日志备份

利用事务日志备份恢复COMPANY数据库,并写出相应的SQL语句。

数据库原理 实验教学讲稿(邯院版)

数据库原理及应用实验教学指导书

实验教学讲稿

数据库原理实验报告

数据库原理复习

数据库原理总结

数据库原理实验报告

数据库原理教案

数据库原理实验教案

数据库原理实验指导书

数据库原理_实验教学讲稿
《数据库原理_实验教学讲稿.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档