《数据库原理》实验指导书oracle版2012_第1页
《数据库原理》实验指导书oracle版2012_第2页
《数据库原理》实验指导书oracle版2012_第3页
《数据库原理》实验指导书oracle版2012_第4页
《数据库原理》实验指导书oracle版2012_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

0Principles of Database System数据库原理实验讲义(Oracle 版)马力 龚安 时念云中国石油大学(华东)计算机科学系2011 年 12 月数据库原理实验讲义(Oracle 版)1前 言数据库原理课程是计算机相关专业的一门专业课程。随着面向对象程序设计技术应用领域越来越广泛,给数据库原理课程的教学提出了新的更高的要求。开设数据库系统原理实验,目的就是为了学生能够更好的掌握数据库的应用,使课堂教学应该与实践环节紧密结合。为了给学生提供更好的试验环境,在院系领导大力支持下,我们筹建了数据库原理的教学实验环境。这个实验环境为同学提供了基本实验的操作和验证功能。我们编写了实验指导书,调整了实验安排,加大了实践力度。希望同学们能够充分利用实验条件,认真完成实验,从实验中体会数据库基本理论的深切含义。希望同学们在使用本实验指导书及进行实验的过程中,能够帮助我们不断地发现问题,并提出建议。数据库原理实验讲义(Oracle 版)2实验要求数据库原理课程实验的目的是为了使学生在课程学习的同时,通过在一个多媒体实验环境中的实际操作,对数据库理论的具体应用有一个初步的了解,使学生加深了解和更好地掌握数据库原理课程教学大纲要求的内容。在数据库原理的课程实验过程中,要求学生做到:(1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出现的情况提前作出思考和分析。(2)认真书写实验报告。实验报告包括实验目的和要求,实验情况及其分析。对需编程的实验,写出程序设计说明,给出源程序框图和实验结果。(3)遵守机房纪律,服从辅导教师指挥,爱护实验设备。(4)实验课程不迟到。如有事不能出席,所缺实验一般不补。实验的验收将分为两个部分。第一部分是上机操作,包括检查程序运行和即时提问。第二部分是提交书面的实验报告。此外,针对以前教学中出现的问题,网络实验将采用阶段检查方式,每个实验都将应当在规定的时间内完成并检查通过,过期视为未完成该实验,不计成绩。以避免期末集中检查方式产生的诸多不良问题,希望同学们抓紧时间,合理安排,认真完成。数据库原理实验讲义(Oracle 版)3目 录实验安排 5实验一 文件管理 6一、实验目的 6二、基础知识 6三、实验内容 8四、实验报告 9实验二 Oracle 10g 的安装、卸载及认识 10一、实验目的 10二、基础知识 10三、实验内容 10四、实验报告 22实验三 SQL 练习 I 23一、实验目的 23二、基础知识 23三、实验内容 26四、实验报告 29实验四 SQL 练习 II.31一、实验目的 31二、基础知识 31三、实验内容 33四、实验报告 34实验五 SQL 练习 III.35一、实验目的 35二、基础知识 35三、实验内容 38四、实验报告 39实验六 其它数据库对象的管理 41一、实验目的 41二、基础知识 41三、实验内容 44四、实验报告 46实验七 安全机制 47一、实验目的 47二、基础知识 47三、实验内容 48四、实验报告 48实验八 数据库应用编程 49一、实验目的 49二、基础知识 49三、实验内容 49数据库原理实验讲义(Oracle 版)4四、实验报告 49数据库原理实验讲义(Oracle 版)5实验安排序号 实验内容 学时数1 实验一:文件管理 12 实验二:Oracle 10g 的安装、卸载及认识 33 实验三:SQL 练习 I 14 实验四:SQL 练习 II 35 实验五:SQL 练习 III 26 实验六:其它数据库对象的管理 37 实验七:安全机制 18 实验八:数据库应用编程 2合 计 166实验一 文件管理一、实验目的1了解数据管理技术之文件系统管理数据的特点;2掌握应用程序存取数据文件的方法;3实现一个小型的文件管理系统管理数据,感受其操作的复杂性,为后面体会数据库系统管理数据的优点打基础。二、基础知识1、ANSI C 流式文件操作这种方式的文件操作有一个重要的结构 FILE,FILE 在 stdio.h 中定义如下:typedef struct int level; /* fill/empty level of buffer */unsigned flags; /* File status flags */char fd; /* File descriptor */unsigned char hold; /* Ungetc char if no buffer */int bsize; /* Buffer size */unsigned char _FAR *buffer; /* Data transfer buffer */unsigned char _FAR *curp; /* Current active pointer */unsigned istemp; /* Temporary file indicator */short token; /* Used for validity checking */ FILE; /* This is the FILE object */FILE 这个结构包含了文件操作的基本属性,对文件的操作都要通过这个结构的指针来进行,此种文件操作常用的函数见下表 函数 功能 fopen() 打开流 fclose() 关闭流 fputc() 写一个字符到流中 fgetc() 从流中读一个字符fseek() 在流中定位到指定的字符 数据库原理实验讲义(Oracle 版)7fputs() 写字符串到流 fgets() 从流中读一行或指定个字符 fprintf() 按格式输出到流 fscanf() 从流中按格式读取 feof() 到达文件尾时返回真值ferror() 发生错误时返回其值 rewind() 复位文件定位器到文件开始处 remove() 删除文件 fread() 从流中读指定个数的字符 fwrite() 向流中写指定个数的字符 tmpfile() 生成一个临时文件流tmpnam() 生成一个唯一的文件名 2、ANSI C 直接 I/O 文件操作这是 C 提供的另一种文件操作,它是通过直接存/取文件来完成对文件的处理,而上篇所说流式文件操作是通过缓冲区来进行;流式文件操作是围绕一个FILE 指针来进行,而此类文件操作是围绕一个文件的“ 句柄”来进行,什么是句柄呢?它是一个整数,是系统用来标识一个文件(在 WINDOWS 中,句柄的概念扩展到所有设备资源的标识)的唯一的记号。此类文件操作常用的函数如下表,这些函数及其所用的一些符号在 io.h 和 fcntl.h 中定义,在使用时要加入相应的头文件。函数说明 open() 打开一个文件并返回它的句柄 close() 关闭一个句柄 lseek() 定位到文件的指定位置read() 块读文件 write() 块写文件 eof() 测试文件是否结束 filelength() 取得文件长度 rename() 重命名文件数据库原理实验讲义(Oracle 版)8chsize() 改变文件长度 三、实验内容设有一个学生-课程数据库,包括学生表 student,课程表 course 和选修表sc,如下表所示:表 1 Student学号(string)姓名(String)性别(bool)年龄(int)所在系(string)12001 李勇 男 20 CS12002 刘晨 女 19 IS12003 王敏 女 18 MA12004 张立 男 19 IS表 2 Course课程号(int)课程名(string)先行课(int)学分(float)1 数据库 5 42 数学 23 信息系统 1 44 操作系统 6 35 数据结构 7 46 数据处理 27 PASCAL 语言 6 4表 3 SC学号(string)课程号(int)成绩(float)95001 1 9295001 2 8595001 3 8895002 2 9095002 3 80用 C 或 C+语言实现。建立 3 个数据文件分别保存学生信息、课程信息和选修信息,并且完成以下任务:1编写数据插入功能模块,将以上各个数据表的数据分别插入到对应的数据文件中,并显示输出各个数据表的数据信息;2编写数据修改功能模块,将所有学生的年龄增加 1 岁,并显示输出所有学生的信息;数据库原理实验讲义(Oracle 版)93编写数据删除功能模块,删除学号为 95004 的学生记录,并显示输出所有学生的信息。4编写数据查询功能模块,查询选修了课程名为“信息系统” 的学生学号和姓名。四、实验报告提交源程序(加必要的注释)和数据文件,并将程序的每个任务的输出结果附上。实验报告必包含如下内容:实验步骤、做好本实验需要把握的关键环节、完成实验的自我评价。数据库原理实验讲义(Oracle 版)10实验二 Oracle 10g 的安装、卸载及认识一、实验目的1、了解 Oracle 10g 的基本安装环境2、掌握 Oracle 10g 的安装与卸载3、掌握 Oracle 10g 客户端配置方法4、掌握 Oracle 10g 中 SQL*Plus 的登录和退出方法5、熟悉企业管理器与 SQL*Plus 的功能,了解创建数据库、基本表的过程和方法6、了解常用 SQL*PLUS 常用命令(如 set 命令)二、基础知识1、SQL*PLUS 常用命令2、安装环境三、实验内容1、Oracle 10g 的安装(1)安装前的准备A、设置固定的 Ip 地址。如果要安装计算机不是固定的 IP 地址,则可查找到网络连接的本地连接,选择本地连接,右键下拉菜单的状态,弹出状态窗口,选择支持页,即可读取本机自动获取的 IP 地址,将该地址设置为固定 IP 地址。B、改变本地安全设置。方法:控制面板管理工具本地安全策略 用户权利指派 作为批处理作业登陆 本地安全设置页中点击添加用户或组来添加本机用户(如 Administrator) 。(2)安装过程虚拟光驱软件 daemon 打开 Oracle 10g for Windows.ISO 文件,双击setup.exe 文件。出现如下界面数据库原理实验讲义(Oracle 版)11图 欢迎使用 Oracle Database 10g 安装单击下一步,出现指定文件位置界面。确定 Oracle 安装的路径,特别是目标路径的确定,要考虑磁盘空间的因素。图 指定文件位置单击下一步,出现选择安装类型界面,我们选择企业版。数据库原理实验讲义(Oracle 版)12图 选择安装类型下一步,选择数据库配置,我们选择创建通用的启动数据库。图 选择数据库配置数据库原理实验讲义(Oracle 版)13图 指定数据库配置选项图 选择数据库管理选项图 指定数据库文件存储选项数据库原理实验讲义(Oracle 版)14图 指定备份和恢复选项图 指定数据库方案的口令图 安装概要数据库原理实验讲义(Oracle 版)15安装过程等待安装完成之后,进行数据库配置。通过口令管理,解锁 scott 账户。图 口令管理安装完成之后,记录 iSQL*Plus 以及 OEM 的地址以便访问数据库。图 安装结束数据库原理实验讲义(Oracle 版)16(3)安装后登陆 OEM在浏览器中输入 OEM 地址。然后根据提示输入用户名,口令,如 :SYS 用户,以及身份为 SYSDBA。注意,SYSTEM 用户登陆,身份默认为NORMAL。图 OEM 登陆界面第一次登陆 OEM,还需要您阅读许可授权信息,并同意。图 OEM 登陆许可证信息界面进入 OEM 管理界面,现在您就可以进行 Oracle 10g 数据库的管理了。数据库原理实验讲义(Oracle 版)17图 OEM 界面2、Oracle 10g 的卸载Oracle 的安装必须要有一个干净的环境,如果以前安装的软件不能删除干净,再次安装便会出错。而 Oracle 本身的卸载软件又不能卸载干净,所以要用手动删除的方法。 首先利用卸载软件卸载所安装的 Oracle 软件(开始菜单中找到 Oracle Universal Installer 窗口,选择卸载产品,根据弹出的窗口选择要卸载的内容即可完成用软件卸载产品) 。软件卸载产品后,再进行手动删除,具体步骤如下:运行 regedit 进入注册表 删除 HKEY_LOCAL_MACHINE/SOFTWARE/Oracle 目录 删除 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services 中所有以 Oracle 或 OraWeb 为开头的键 删除HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Application 中以 Oracle 开头的键 删除 HKEY_CLASSES_ROOT 目录下所有以 Ora、Oracle 、Orcl 或EnumOra 为前缀的键 删除HKEY_CURRENT_USER/SOFTWARE/Microsoft/windows/CurrentVersion/Explorer/MenuOrder/Start Menu/Programs 中所有以 oracle 开头的键。 删除 HKDY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI中除 Microsoft ODBC for Oracle 注册表键以外的所有含有 Oracle 的键。数据库原理实验讲义(Oracle 版)18 其中有些注册表项可能已经在卸载 Oracle 产品时被删除。关闭 regedit.在我的电脑中删除环境变量中带 oracle 字样的 path 项, (属性-高级-环境变量) 删除 c:documents and settings All user .winnt开始菜单 程序中所有带oracle 字样的目录 删除 c:Program FilesOracle 目录,重启计算机重启后,删除原已安装 oracle 目录,重新安装即可。 3、Oracle 10g 客户端配置1)开机进入 windows server 系统2)从开始菜单找到 oracle-oraclient10g_home1“配置和移植工具”“net manager”(或者“net configuration assistance”) ,即可打开 oracle 网络管理器。图 打开 Oracle 网络管理器Oracle 网络管理器是帮助用户配置和管理 oracle 网络环境的一种工具。使用 Oracle 网络管理器可对下列 Oracle 网络特性和组件进行配置和管理: 服务命名:可以创建或修改 tnsnames.ora 文件或目录服务器中数据库服务的网络说明,称做连接描述符的网络描述被映射到连接标识符(在数据库连接期间,客户机在它们的连接字符串中使用连接标识符) 监听程序:可以创建或修改监听程序,时服务器上的接收和响应数据库服务的客户机连接请求的进程(服务器端需要配置监听程序) 概要文件:可以创建或修改概要文件,它是确定客户机如何连接到数据库原理实验讲义(Oracle 版)19Oracle 网络的参数的集合3)在 oracle 网络管理器界面,选中 “服务命名” 项,单击“编辑”菜单下的“创建” (或者左侧绿色“+” ) ,进入服务命名创建向导。图 Oracle 网络管理器首界面4)服务命名向导第 1 页如下图所示,在“网络服务名”中输入“连接描述符” ,该描述符用于以后的数据库连接。输入完成后单击“下一步”按钮,进入第 2 页,选择“协议” ,取默认项即可,继续单击“下一步”按钮,进入第 3 页“协议设置”项,操作如下图所示(说明:主机名:输入监听程序驻留的计算机的主机名或 IP 地址;服务器 IP 地址为 121.249.147.243;端口号:监听程序配置在端口 1521 接收请求) ;上一步配置完成后,接着单击“下一步”按钮,进入第 4 页“服务”项(说明:服务名:输入标识数据库服务的名称,服务名通常是全局数据库名;服务器服务名为 orcl) ,完成该步操作后继续单击“下一步”按钮,进入第 5 页“测试”项,在该页中单击“测试”按钮,若配置正确,则测试成功,若测试不成功,可以单击“更改登录”重新测试或者重新配置直到配置成功为止。数据库原理实验讲义(Oracle 版)20图 服务名向导第 1 页图 协议图 协议设置数据库原理实验讲义(Oracle 版)21图 服务图 测试图 连接测试4、SQL*Plus 的登录和退出方法1)以图形化界面形式使用 SQL*Plus。数据库原理实验讲义(Oracle 版)22单击【所有程序】oracle_XX_home1应用程序开发SQL Plus 命令,即可打开 SQL*Plus,随后弹出一个【登录】对话框,如下图所示,在该对话框中填入用户名和密码以及主机字符串即可登录成功。图 13 SQL Plus 登录2)在 windows 平台上的命令提示符环境下使用 SQL*Plus。命令格式如下: sqlplus 用户名/密码 服务命名3)在浏览器中输入 iSQL*Plus 地址,输入用户名和密码以及主机字符串登陆 iSQL*Plus。4)退出 SQL*Plus 的命令: exit、quit 。四、实验报告根据实验内容,完成 Oracle10g 的安装卸载与配置,熟悉企业管理器以及 SQL*Plus 的使用方法,提交实验过程中遇到的问题以及解决的办法的总结文档。数据库原理实验讲义(Oracle 版)23实验三 SQL 练习 I一、实验目的1掌握 SQL*Plus 中基本表的定义;2掌握 SQL*Plus 中插入、修改和删除数据语句的常用形式。二、基础知识1、基本表定义语法格式: CREATE TABLE schema. table_name(column_name datatype DEFAULT expression column_constraint,n)PCTFREE integerPCTUSED integerINITRANS integerMAXTRANS integerTABLESPACE tablespace_nameSTORGE storage_clauseCLUSTER cluster_name(cluster_column,n)ENABLE | DISABLE AS subquery 其中:table_name:表名称。schema:新表所属的用户方案。column_name:指定表的一个列的名字。 datatype:该列的数据类型。 PCTFREE:指定表或者分区的每一个数据块为将来更新表行所保留的空间百分比。 PCTUSED:指定 Oracle 维持表的每个数据块已用空间的最小百分比。 数据库原理实验讲义(Oracle 版)24INITRANS:指定分配给表的每一数据块中的事务条目的初值。 MAXTRANS:指定可更新分配给表的数据块的最大并发事务数。 TABLESPACE:指定新表存储在由 tablespace_name 指定的表空间中。column_constraint:定义一个完整性约束作为列定义的一部分。column_constraint 子句的语法的基本格式为:CONSTRAINT constraint_nameNOT NULLUNIQUEPRIMARY KEYREFERENCES schema. table_name(column_name)CHECK(condition) STORGE:指定表的存储特征。STORGE 子句的基本格式为:STORAGE(INITIAL integer K | integer MNEXT integer K | integer MMINEXTENTS integerMAXEXTENTS integer | UNLIMITEDPCTINCREASE integerFREELISTS integerFREELIST GROUP integer )其中:INITIAL 指定为表分配的第一个区的大小;NEXT 指定第一个扩展区的大小;MINEXTENTS 为创建段时已分配的总区数;MAXEXTENTS 表示Oracle 数据库可以分配给该对象的总区数;PCTINCREASE 指定每个区相对于上一个区的增长百分比;FREELISTS 指定表、簇或索引的每个空闲列表组的空闲列表量;FREELIST GROUP 指定表、簇或索引的空闲列表组的数量。CLUSTER:指定该表是命名为 cluster_name 的簇的一部分。AS subquery:表示将由子查询返回的行插入到所创建的表中。使用 AS subquery数据库原理实验讲义(Oracle 版)25子句时,要注意以下事项: 表中的列数必须等于子查询中的表达式数。 列的定义只能指定列名、缺省值和完整性约束,不能指定数据类型。 不能在含有 AS subquery 的 CREATE TABLE 语句中定义引用完整性。相反,必须先创建没有约束的表,然后再用 ALTER TABLE 语句来添加约束。Oracle 从子查询中推导出数据类型和长度。Oracle 也遵循下列完整性约束规则: 如果子查询选择列而不是包含列的表达式,Oracle 自动地为新表中的列定义任何 NOT NULL 约束,该列与被选表中的列相一致。 如果 CREATE TABLE 语句同时包含 AS subquery 和 CONSTRAINT 子句,Oracle 就忽略 AS subquery。如果任何行违反了该约束,Oracle 就不创建表并返回一个错误信息。 如果子查询中的全部表达式是列而不是表达式,则在表定义中可完全忽略这些列。在这种情况下,表的列名和子查询中的列名相同。 2、插入数据语法格式:INSERT INTO table_namecolumn_listVALUES(constant1,constant2,)该语句的功能是向由 table_name 指定的表中加入一行,由 VALUES 指定的各列值。(1) 在插入时,列值表必须与列名表顺序和数据类型一致。 (2) VALUES 中描述的值可以是一个常量、变量或一个表达式。 (3) 如果列值为空,则值必须置为 NULL。如果列值指定为该列的默认值,则用 DEFAULT。 (4) 在对表进行插入行时,若新插入的行中所有可取空值的列值均取空值,则就可以在 INSERT 语句中通过列表指出插入的行值中所包含非空的列,而在VALUES 中只要给出这些列的值即可。3、删除数据语法格式:数据库原理实验讲义(Oracle 版)26DELETE FROM table_nameview_nameWHERE condition该语句的功能为从 table_name 指定的表或 view_name 指定的视图中删除满足 condition 查询条件的行,若省略该条件,表示删除所有的行。4、修改数据UPDATE table_nameview_nameSET column_name=expression,nWHERE condition该语句 table_name 指定的表或 view_name 指定的视图中满足 condition 查询条件的记录中由 SET 指定的各列的列值设置为 SET 指定的新值。若不使用WHERE 子句,则更新所有记录的指定列值。三、实验内容1以 SCOTT 用户或者是自己创建的用户(实验七内容) ,登陆SQL*PLUS 或 iSQL*PLUS。完成以下要求:记录某采油厂对油/水井实施作业时所消耗的成本。 (作业:为保证油水井正常生产所实施的工程项目) 成本的消耗分为预算、结算、入账三个状态。预算:采油队向管理部门提出作业申请,并经管理部门批准后,由管理部门负责录入。结算:某次作业施工结束后,由管理部门与施工单位共同核算各种成本,由管理部门负责录入。入账:结算后,财务部门将成本计入采油厂账目,由财务部门录入。 预算状态时需要录入的数据:(:字符型 货币型 日期型)单据号:某一作业项目的编号预算单位:指需要对油水井实施作业的采油队代码井号:需要实施作业的油水井预算金额 预算人 预算日期 结算状态时需要录入的数据:(:字符型 货币型 日期型 数据库原理实验讲义(Oracle 版)27数值型)调出某条预算记录,录入以下数据:开工日期 完工日期 施工单位 施工内容材料费(要求另外单独记录材料消耗的明细)ZCLFB物码 消耗数量 单价人工费 设备费 其它费用结算金额(材料费+人工费+设备费+其它费用)结算人 结算日期 入账状态时需要录入的数据:(:字符型 货币型 日期型)调出某条结算记录,录入以下数据:入账金额 入账人 入账日期 为了避免出现数据的不一致和方便数据录入,要求定义以下基础表:(:字符型)单位代码表:单位代码 单位名称油水井表:井号 井别:油井/水井 单位代码 (表示某口井由哪个单位负责管理)施工单位表:施工单位名称物码表:物码 名称规格 计量单位2根据以上要求,在 SQL*PLUS 中用建表语句定义所需的数据表。3在 SQL*PLUS 中用数据插入语句录入以下数据:单位代码表:ZDWDMB1122 采油厂112201 采油一矿 112202 采油二矿112201001 采油一矿一队 112201002 采油一矿二队112201003 采油一矿三队112202001 采油二矿一队 112202002 采油二矿二队油水井表:ZYSJB(y001 油井 112201001) (y002 油井 112201001)(y003 油井 112201002) (s001 水井 112201002)数据库原理实验讲义(Oracle 版)28(y004 油井 112201003) (s002 水井 112202001)(s003 水井 112202001) (y005 油井 112202002)施工单位表:ZSGDWB作业公司作业一队 作业公司作业二队作业公司作业三队物码表:ZWMBwm001 材料一 吨 wm002 材料二 米wm003 材料三 桶 wm004 材料四 袋4利用 SQL*PLUS 录入以下数据:某作业项目编号 zy2011001预算单位:112201001 井号:y001 预算金额:10000.00预算人:张三 预算日期:2011-5-1 开工日期:2011-5-4完工日期:2011-5-25 施工单位:作业公司作业一队施工内容:堵漏 材料费:7000.00(其中材料一:2000.00材料二:2000.00 材料三:2000.00 材料四:1000.00)人工费:2500.00 设备费:1000.00 其它费用:1400.00结算金额:11900.00 结算人:李四 结算日期:2011-5-26入账金额:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论