数据库原理实验任务.docx
《数据库原理实验任务.docx》由会员分享,可在线阅读,更多相关《数据库原理实验任务.docx(13页珍藏版)》请在冰点文库上搜索。
数据库原理实验任务
数据库原理A实验任务说明
实验平台
操作系统:
Windows7或Windows8或WindowsXP。
数据库管理系统:
Oracle11g或Oracle12c。
注:
各位同学自备笔记本电脑,在自己的电脑上完成全部实验任务;在安排的时间到指定的实验室进行实验。
实验任务
上机任务分为三大部分
第一部分基本操作。
(要求菜单式方式,命令方式两种方式都会))
第二部分基于服务器端数据库系统实例练习。
第三部分数据库连接。
上机安排:
上机前自行完成实验1Oracle11g或Oracle12c的安装与使用
第一次:
实验2SQL数据定义、数据更新与数据查询
第二次:
实验3SQL数据完整性控制
实验4SQL数据安全性控制
实验5存储过程
第三次:
实验6触发器
实验7数据导入导出
第四次:
实验8基于服务器端开发的职工管理系统
(用PL/SQL编程实现,提交电子档作为上机作业。
)
实验9数据库连接
第一部分基本操作
实验1Oracle11g或Oracle12c的安装与使用(上机前自行完成)
实验目的:
1、通过安装某个数据库管理系统,初步了解Oracle11g或Oracle12c的运行环境。
2、了解Oracle11g或Oracle12c交互界面、图形界面与系统管理工具的使用。
3、搭建实验平台。
实验内容与要求:
1、根据某个Oracle版本的安装说明等文档,安装Oracle11g或Oracle12c。
2、了解Oracle11g或Oracle12c的用户管理。
3、熟悉交互界面的基本交互命令。
4、熟悉图形界面的功能与操作。
5、了解基本的Oracle11g或Oracle12c管理功能与操作。
6、熟悉在线帮助系统的使用。
实验2SQL数据定义与数据操纵等
实验目的:
1、掌握关系数据库语言SQL的使用。
2、使所有的SQL作业都能上机通过。
实验内容与要求:
1、建立数据库与表。
要求建立的数据库为SPJ数据库,S、P、J、SPJ个表,具体表中属性见教材第二章习题5。
2、数据定义:
表的建立/删除/修改;索引的建立/删除;视图的建立/删除
3、数据更新:
用insert/delete/update命令插入/删除/修改表数据。
4、数据查询:
单表查询,多表查询,嵌套子查询等。
5、视图操作:
通过视图的数据查询与数据修改
6、所有的SQL例题、习题及作业都上机通过。
表数据操作部分完成如下:
插入:
要求对建好的S、P表使用菜单的方式输入数据。
对J、SPJ表使用插入命令输入数据。
查询:
第二章习题5、第三章习题5
(1)到(8)。
更新:
第三章习题5(8)、(9)。
删除:
第三章习题5(10)。
视图的创建及使用部分完成:
第三章习题11。
索引的创建及使用部分完成:
对S、P、J、SPJ表进行分析建立唯一值索引,以及删除索引。
要求报告中给出菜单与命令两种实现方式。
上机调试运行课本第三章有关SQL语句的习题,练习巩固课堂学习的内容。
实验3SQL数据完整性控制
实验目的:
熟悉通过SQL进行数据完整性控制的方法。
实验内容与要求:
1、定义若干表,其中包括primarykey,foreignkey与check的定义。
2、让表中插入数据,考察primarykey如何控制实体完整性。
3、删除被引用表中的行,考察foreignkey中ondelete子句如何控制参照完整性。
4、修改被引用表中的行的primarykey,考察foreignkey中onupdate子句如何控制参照完整性。
5、修改或插入表中数据,考察check子句如何控制校验完整性。
6、定义一个asseration,并通过修改表中数据考察断言如何控制数据完整性。
7、*定义一个trigger,并通过修改表中数据考察触发器如何起作用。
实验4SQL数据安全性控制
实验目的:
熟悉通过SQL进行数据完整性控制的方法。
实验内容与要求:
1、建立表,考察表的生成者拥有该表的哪些权限。
2、使用SQL的grant与revoke命令对其她用户进行授权与权力回收,考察相应的作用。
3、建立视图,并把该视图的查询权限授予其她用户,考察通过视图进行权限控制的作用。
实验5存储过程
实验目的:
学会利用SQL进行存储过程的建立及使用。
实验内容与要求:
1、上机完成课堂存储过程例题
2、自行对学生、课程、选修表设计存储过程,如对S表设计一个存储过程,实现对S表插入数据。
实验6触发器
实验目的:
学会利用SQL进行触发器的建立及使用。
实验内容与要求:
1、上机完成课堂触发器例题
2、自行对学生、课程、选修表设计触发器,如对S表设计一个触发器。
实验7数据的导入导出
实验目的:
学会基本的数据导入导出。
实验内容与要求:
将数据表的数据导出到文本文件或EXCEL文件,设计文本文件与EXCEL文件并导入到库中。
第二部分基于服务器端数据库系统实例练习
(上机作业提交:
将每小问的命令语句及运行结果截图整理成电子文档doc)
题目:
职工管理系统(PL/SQL编程实现)
要求:
(1)创建独立用户EMP,为其用户授权,使其具备管理员角色及创建表、序列等数据对象的权限。
提示:
创建用户要求当前用户必须具有SYSDBA或SYSOPER身份登录,不能以普通用户连接,否则会出现“权限不足”的错误提示。
(2)创建基本表MYEMP,为简单起见,此处从SCOTT用户的EMP复制。
复制表参见如下语句:
CREATETABLEMYEMP
AS
SELECTEMPNO,ENAME,JOB,HIREDATE,SAL,DEPTNO
FROMSCOTT、EMP
也可以自己重新建立一遍并输入数据,上述命令就是直接从SCOTT用户的EMP表复制过来相关列与数据。
(3)根据职工编号查询姓名(创建存储过程EMP_PROC_SELECT)
通过用户输入的职工编号查询该职工的姓名,一般来说,PL/SQL语句中将该功能以存储过程的形式提供,用户只需调用并指定编号参数即可。
要求该过程通过DBMS_OUTPUT、PUT_LINE函数输出找到的对应编号的姓名,如果没有找到输出提示没有数据。
创建完后请执行瞧效果。
(4)根据用户输入插入记录
要求创建一个存储过程EMP_PROC_INSERT,调用该存储过程后向MYEMP表插入一行新记录(7999,’Lily’)。
完成后执行,然后查询该表瞧就是否完成插入操作。
(5)插入记录后返回提示信息
要求用户向表中插入一行新记录后,返回“您插入了一行信息”的提示信息。
提示:
创建一个语句级触发器实现该功能,当执行插入操作后,该触发器被触发。
(6)更新工资数据对比
为避免用户的误操作,通常在用户修改某个数据后将修改前后的数据显示在系统中,用以让用户确认该修改。
在职工管理系统中,工资列就是一个重要数据,因此有必要为其设计一个模块,当用户修改了某一职工的工资后,系统返回修改前后的工资提示信息。
提示:
创建一个行级触发器来实现更新前后对比数据的功能。
(7)根据编号删除职工信息
创建存储过程,接收用户调用时输入的职工编号,将该职工从数据表MYEMP中删除,同时返回删除信息。
第三部分数据库连接
(完成ODBC数据源配置,VC或VS连接数据库,该部分为课程设计奠定基础做准备。
)
要求实现与数据库的连接部分。
数据库的连接分为两种方式:
ODBC数据源与OLEDB的方式。
上机以ODBC与VC为例实现数据库的连接与简单客户端数据库系统开发程序。
主要就是体会基于客户端开发系统时知道如何连接数据库,如何利用SQL与数据库进行交互。
以邮件管理系统为例,步骤如下:
(1)连接数据库
(2)完成界面其她控件布局,最初风格显示。
(3)完成数据库数据显示到界面控件,即列表控件中显示出数据。
(4)对每部分设计添加、删除、修改功能。
配置数据库连接数据库部分:
ODBC配置数据源
以oracle11g为例,oracle12c情况类似。
利用配置与移植工具中的ODBC管理员配置,如下图1。
图1-ODBC管理员
点击之后进入ODBC数据源管理员器,界面如图2。
图2-ODBC数据源管理员器
选择系统DSN选项卡,如图3,按“添加”按钮,得到图4的对话框。
图3-添加系统DSN
图4为系统DSN添加数据源驱动程序
在图4“创建新数据源”名称中移动滑块,找到oracleinoradb11g_home1,如果就是12c对应的就就是oradb12c…、、,选择,再点击“完成”,出现图5。
在图5所示对话框中完成用户数据源的配置。
填写数据源名,TNS,用户信息,数据源名自己取,如orapm,数据源名在程序中连接数据库或者使用SQL-Dveloper开发工具连接数据库时都会用到。
TNS即安装oracle时全局数据库名,一般就是orcl。
用户名可以就是sys,system,也可以就是创建的某用户,如test用户。
图5-配置ORACLE数据源
填好后点击testConnection按钮,会要求输入用户名密码等,连接成功会弹出提示框。
ODBC数据源配置结束。
VC程序中连接数据库时利用ODBC连接实例:
(1)创建如下界面:
创建基于对话框的工程,工程名称为:
EmailManagement。
主界面创建一个组框,包括三个静态文本框,三个编辑框,两个命令按钮,如图6。
三个编辑框分别添加三个变量对应,m_strDBSource,m_strUserName,m_strPassword。
(2)如前所述配好ODBC数据源;
配置成功后,在CEmailManagementDlg类中创建类CDatabase的对象m_db,在StdAfx、h文件中引入文件#include。
(3)连接按钮编写代码。
图6-应用程序中的对话框
连接按钮代码:
voidCEmailManagementDlg:
:
OnBtnConn()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(!
UpdateData())return;
if(m_db、IsOpen())
{
AfxMessageBox("数据库已经连接");
return;
}
if(m_strDBSource、IsEmpty()||m_strUserName、IsEmpty()||m_strPassword、IsEmpty())
{
AfxMessageBox("数据库配置参数不能够为空");
return;
}
CStringstrConnect;
strConnect、Format("DSN=%s;UID=%s;PWD=%s",m_strDBSource,m_strUserName,m_strPassword);
TRY{
m_db、OpenEx(strConnect,CDatabase:
:
noOdbcDialog);
}
CATCH(CDBException,ex)
{
AfxMessageBox(ex->m_strError);
AfxMessageBox(ex->m_strStateNativeOrigin);
}
AND_CATCH(CMemoryException,pEx)
{
pEx->ReportError();
AfxMessageBox("memoryexception");
}
AND_CATCH(CException,e)
{
TCHARszError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox(szError);
}
END_CATCH
}
运行程序,数据库连接成功界面如图7。
图7-运行应用程序,成功连接数据库