1、学 生 实 验 报 告(理工类)课程名称:数据库应用开发 专业班级: 14软件工程(2) 学生学号: 学生姓名: 所属院部: 软件工程学院 指导教师: 20 15 20 16 学年 第 2 学期 金陵科技学院教务处制实验报告书写要求实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。实验报告书写说明实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。(3
2、)尽量采用专用术语来说明事物。(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。实验项目名称:Oracle11g的下载、安装、配置与删除 实验学时: 4学时 同组学生姓名: 实验地点: 1318 实验日期: 2016/4/20 实验成绩: 批改教师
3、: 批改时间: 一、实验目的和要求(1)掌握Oracle11g的下载;(2)掌握Oracle11的安装与配置;(3)掌握如何如何通过注册表彻底删除Oracle数据库;(4)掌握用户密码的重置与scott用户的解锁;二、实验仪器和设备 主流 PC 机一套,要求安装 windows 操作系统和网络畅通三、实验过程在实际生产环境中,Oracle数据库主要是运行在UNIX/Linux系统上,但是实际培训中一般是基于Windows系统的,导致在生产应用中还得有一段适应过程,所以决定实验在Linux系统上完成。实验环境:虚拟机软件:VMware Workstation 12Linux:Red Hat En
4、terprise Linux 7步骤:(一) 安装与配置Oracle11g 1. 检查和更新所需软件包需要用到的软件包在Oracle的用户指南中有说明,参考自官方文档Oracle官方文档中确定要安装的包如下: binutils-2.17.50.0.6 compat-libstdc+-33-3.2.3 compat-libstdc+-33-3.2.3 (32 bit) elfutils-libelf-0.125 elfutils-libelf-devel-0.125 gcc-4.1.2 gcc-c+-4.1.2 glibc-2.5-24 glibc-2.5-24 (32 bit) glibc-c
5、ommon-2.5 glibc-devel-2.5 glibc-devel-2.5 (32 bit) glibc-headers-2.5 ksh-20060214 libaio-0.3.106 libaio-0.3.106 (32 bit) libaio-devel-0.3.106 libaio-devel-0.3.106 (32 bit) libgcc-4.1.2 libgcc-4.1.2 (32 bit) libstdc+-4.1.2 libstdc+-4.1.2 (32 bit) libstdc+-devel 4.1.2 make-3.81 numactl-devel-0.9.8.x86
6、_64 sysstat-7.0.2 注:(1)安装glibc-2.17-106.el7_2.6.i686.rpm时,因为依赖包相互依赖,需要与依赖包同时安装: rpm -ivh glibc-2.17-55.el7_2.6.i686.rpm nss-softokn-freebl-3.15.4-2.el77_2.6.i686.rpm (2)RHEL7中缺少包compat-libstdc+-33,可以在RHEL6中找到. (3)在Oracle数据库软件安装时,ksh实际是用的pdksh,但ksh也是可以使用的,只是安装时会有警告,pdksh是一个早期的软件包.以root身份登录Linux后执行以下命
7、令检查软件包是否都已安装: # rpm -q binutils compat-libstdc+-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c+ glibc glibc-common glibc-devel # rpm -q glibc-headers ksh libaio libaio-devel libgcc libstdc+ libstdc+-devel make numactl-devel sysstat如果系统有软件包没有安装,可以在RHEL 7.0的光盘Package目录中找到,安装这些包。2. 验证系统要求系统环境需求 内存:
8、最小1GB,推荐2GB或以上 交换空间: 内存大小是1-2GB时,交换空间是内存的1.5倍,内存大小2-16GB时,交换空间等于内存大小,内存大小16G以上时,交换空间为16GB. 需要选择以下组件:GNOME桌面、编辑器、开发工具、开发库等。查看内存大小# grep MemTotal /proc/meminfoMemTotal: 1868660 kB查看交换空间# grep SwapTotal /proc/meminfoSwapTotal: 2097148 kB查看磁盘空间,Oracle 11g R2 x64企业版的磁盘空间要求4.35GB以上。# df -h文件系统 容量 已用 可用 已用
9、% 挂载点/dev/mapper/rhel_promote-root 18G 4.9G 13G 28% /devtmpfs 898M 0 898M 0% /devtmpfs 913M 156K 913M 1% /dev/shmtmpfs 913M 9.0M 904M 1% /runtmpfs 913M 0 913M 0% /sys/fs/cgroup/dev/sda1 497M 158M 340M 32% /boot.host:/ 138G 4.4G 133G 4% /mnt/hgfstmpfs 183M 28K 183M 1% /run/user/10003. 创建Oracle组和用户帐户#
10、 groupadd oinstall# groupadd dba# useradd -g oinstall -G dba oracle# passwd oracle 并设置用户oracle的密码4. 配置内核参数以root身份登录系统,根据用户指南配置以下参数:修改文件/etc/sysctl.conf,添加以下内容:# /etc/sysctl.conf# for oraclefs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152# 官方文档kernel.shmmax = 536870912,实际软件中需要kerne
11、l.shmmax = 980742144kernel.shmmax = 980742144kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048586执行以下命令时参数生效:# /sbin/sysctl -p注: 内核参数设置可以在安装Oracle时
12、产生的脚本修复。修改文件/etc/security/limits.conf,添加以下内容:# /etc/security/limits.conf# for oracleoracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536oracle soft stack 102405. 创建Oracle Base目录:# mkdir -p /u01/app/# chown -R oracle:oinstall /u01/app/# chmod -R 775 /u01/app/6.
13、 编辑Oracle用户环境,编辑.bash_profile文件# su - oracle$ vi .bash_profile编辑.bash_profile文件,添加以下内容# For Oracleexport DISPLAY=:0.0export TMP=/tmp;export TMPDIR=$TMP;export ORACLE_BASE=/u01/app/oracle;export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1;export ORACLE_SID=orcl;export ORACLE_TERM=xterm;export PATH=/
14、usr/sbin:$PATH;export PATH=$ORACLE_HOME/bin:$PATH;export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;7. 安装Oracle数据库Oracle软件(11.2.0.4版本)11gR2以oracle用户身份登录系统安装Oracle,为避免出现中文乱码,装装前可以执行export LANG=,显示英文,$ export LANG=$ cd dat
15、abase$ ./runInstaller在安装时选择只安装Oracle软件。安装时提示: Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed connect / as sysdbaSQL shutdown immediateSQL exit2.停止Listener$ lsnrctl stop3.停止HTTP服务# service httpd stop4.用su或者重新登录到root(如想重新安装
16、可以保留oracle用户,省得输入环境变量了)5.将安装目录删除# rm -rf /u01/app/oracle/6.将/usr/bin下的文件删除# rm /usr/local/bin/dbhome# rm /usr/local/bin/oraenv# rm /usr/local/bin/coraenv7.将/etc/oratab删除# rm /etc/oratab8.将/etc/oraInst.loc删除# rm /etc/oraInst.loc9.将oracle用户删除(若要重新安装,可以不删除)# userdel r oracle10.将用户组删除(若要重新安装,可以不删除)# gro
17、updel oinstall# groupdel dba11.将启动服务删除# chkconfig -del dbora到此为止重启后,Linux系统下的Oracle数据库已完全删除了。如果要再次安装, 最好先做一些备份工作。包括用户的登录脚本,数据库自动启动关闭的脚本,和Listener自动启动的脚本。要是有可能连创建数据库的脚本也保存下来。(三) 解锁scott用户oraclepromote 桌面$ sqlplus /nologSQL*Plus: Release 11.2.0.1.0 Production on Sun May 29 18:36:47 2016Copyright (c) 1
18、982, 2009, Oracle. All rights reserved.SQL conn / as sysdba;Connected to an idle instance.SQL startup;ORACLE instance started.Total System Global Area 764121088 bytesFixed Size 2217264 bytesVariable Size 461376208 bytesDatabase Buffers 297795584 bytesRedo Buffers 2732032 bytesDatabase mounted.Databa
19、se opened.SQL alter user scott account unlock; User altered.四、实验结果与分析实验结果Oracle安装和配置SUCCESSOracle 卸载SUCCESSScott账号解锁SUCCESS分析:在rhel下安装Oracle 11gR2遇到很多问题,这些问题与系统接口参数配置修改、软件包安装的依赖关系、编译连接过程、网络配置、协议选择等有关。做软件、调试测试也得考虑很多因素,不过Linux下的软件安装比Windows复杂很多。五、实验心得在rhel下安装Oracle 11gR2遇到很多问题,这些问题与系统接口参数配置修改、软件包安装的依赖
20、关系、编译连接过程、网络配置、协议选择等有关,使我对不同平台的系统和软件又有了更深一层的理解和体会。一个软件安装如此复杂,如果我不知道Oracle是个大的数据库,具有优越的性能,如果是一个一般的软件,也行我一遇到问题就换其他软件了。软件安装,这也既是售后要提供的服务,但是也要为用户考虑,不能讲安装过程弄得这么复杂!实验项目名称: 网上购物系统分析、数据库设计与实现 实验学时: 4学时 同组学生姓名: 实验地点: 1318 实验日期: 2016/4/27 实验成绩: 批改教师: 批改时间: 一、实验目的和要求(1)掌握表的创建命令使用;(2)掌握Oracle中常用的数据类型;(3)掌握Oracl
21、e中各个约束的创建、修改、删除与查询; (4) 掌握项目的数据库分析与设计流程。二、实验仪器和设备 主流 PC 机一套,要求安装操作系统和Oracle数据库;三、实验过程/*5.4.1*/CONN SCOTT/tiger;- 用户注册表CREATE TABLE T_USER( UIID CHAR(6) PRIMARY KEY, UNAME VARCHAR2(20) NOT NULL, UBIRTHDAY DATE, USEX CHAR(1) CHECK (UPPER(USEX) in (F,M), -给一个字符,并约束范围 表示男,女 UADDRESS VARCHAR2(50), UTELPH
22、ONE VARCHAR2(20);-判断表是否存在,如果存在则删除declare num number; begin select count(1) into num from all_tables where TABLE_NAME = T_TYPE and OWNER=SCOTT; if num=1 then execute immediate drop table EMP; end if; end; /- 商品类型表CREATE TABLE T_TYPE( GTID CHAR(6) PRIMARY KEY, GTNAME VARCHAR2(20) NOT NULL);/*建立备份: CRE
23、ATE TABLE T_GOODS_BACKUP AS SELECT * FROM T_GOODS; 删除表格 DROP TABLE T_GOODS; 导入数据: INSERT INTO T_GOODS SELECT * FROM T_GOODS_BACKUP;*/- 商品信息表CREATE TABLE T_GOODS( GID CHAR(6) PRIMARY KEY, GNAME VARCHAR2(20) NOT NULL, GTID CHAR(6) REFERENCES T_TYPE(GTID), - ORACLE 外键 不需要声明 FORENGN KEY 列检查约束条件无法引用其他列 G
24、PRICE NUMBER(12,3) CHECK(GPRICE 0), GDISCOUNT NUMBER(5,2), GSTOCKS NUMBER(7,2) CHECK(GSTOCKS0), GMAXSTOCKS NUMBER(7,2) CHECK(GMAXSTOCKS=0), GMINSTOCKS NUMBER(7,2) CHECK(GMINSTOCKS=0), GMEMO VARCHAR2(50) PARTITION BY LIST (GTID) - 根据商品类型 进行列表分区 。 分区要包含所有类型( PARTITION p_t001 values(T00001), PARTITION
25、p_t002 values(T00002), PARTITION p_t003 values(T00003), PARTITION p_t004 values(T00004), PARTITION p_t005 values(T00005);-供应商信息表CREATE TABLE T_SUPPLIER( SID CHAR(6) PRIMARY KEY, SNAME VARCHAR2(20) NOT NULL, SCONTACT VARCHAR2(20), SPHONE VARCHAR2(15), SMEMO VARCHAR2(50);-采购单主表CREATE TABLE T_MAIN_PROC
26、URE( PMID CHAR(12) PRIMARY KEY, PID CHAR(6) REFERENCES T_SUPPLIER(SID), PDATE DATE DEFAULT SYSDATE, PAMOUNT NUMBER(12,3), PSTATE CHAR(1) CHECK(PSTATE IN(1,2), PMEMO VARCHAR2(50);- 采购明细表CREATE TABLE T_PROCURE_ITEMS( PMID CHAR(12) REFERENCES T_MAIN_PROCURE(PMID), PID CHAR(6) REFERENCES T_SUPPLIER(SID)
27、, PPRICE NUMBER(8,2) CHECK(PPRICE 0), PNUM NUMBER(8,2) CHECK(PNUM 0), PMONEY NUMBER(12,2) CHECK(PMONEY 0), PEMEMO VARCHAR2(50);-建立备份CREATE TABLE T_PROCURE_ITEMS_BACKUP AS SELECT * FROM T_PROCURE_ITEMS;-订单主表CREATE TABLE T_MAIN_ORDER( OMID CHAR(12) PRIMARY KEY, UIID CHAR(6) NOT NULL REFERENCES T_USER(
28、UIID), ODATE DATE DEFAULT SYSDATE, -订单日期 OAMOUNT NUMBER(12,3), OSTATE CHAR(1) CHECK(OSTATE IN (1,2,3,4)PARTITION BY RANGE (ODATE)( PARTITION p_d001 VALUES LESS THAN(TO_DATE(20160701,yyyymmdd), PARTITION p_d002 VALUES LESS THAN(TO_DATE(20160801,yyyymmdd), PARTITION p_d003 VALUES LESS THAN(TO_DATE(201
29、60901,yyyymmdd), PARTITION p_d004 VALUES LESS THAN(TO_DATE(20161001,yyyymmdd), PARTITION p_d005 VALUES LESS THAN(MAXVALUE);-订单明细表CREATE TABLE T_ODRER_ITEMS( OMID CHAR(12) PRIMARY KEY, GID CHAR(16) REFERENCES T_GOODS(GID), OPRICE NUMBER(8,2) CHECK(OPRICE 0), ONUM NUMBER(8,2) CHECK(ONUM 0), OMEMO CHAR
30、(50);- 建立备份 T_ODRER_ITEMS_BACKUPCREATE TABLE T_ODRER_ITEMS_BACKUP AS SELECT * FROM T_ODRER_ITEMS;-评价表CREATE TABLE T_USER_EVALUATION( UEID NUMBER(8) PRIMARY KEY, OMID CHAR(12) REFERENCES T_MAIN_ORDER(OMID), GID CHAR(6) REFERENCES T_GOODS(GID), UEDATE DATE DEFAULT SYSDATE, UETYPE CHAR(1) CHECK(UETYPE
31、IN(A,B,C), UECONTENT VARCHAR2(50) PARTITION BY LIST(UETYPE)( PARTITION p_e001 values (A), PARTITION p_e002 values (B), PARTITION p_e003 values (C);- 添加备注列ALTER TABLE T_USER ADD UMEMO VARCHAR2(50);- 修改商品表列ALTER TABLE T_GOODS MODIFY GNAME VARCHAR2(40); - 删除列ALTER TABLE T_PROCURE_ITEMS DROP COLUMN PMON
32、EY;四、实验结果与分析根据可视化工具SQL Developer,查看实验后,结果的表结构五、实验心得之前使用过mysql和sql server,使用Oracle创建表和管理表,都基本简单,这些数据库产品都是对SQL 标准的实现,所以感到很熟悉。数据库设计要从需求出发。概念设计阶段,根据书上描述的问题的情景,抽象出E-R图,实体关系模型,一些数据流图、数据字典,从而方便了表的设计。逻辑设计阶段,通过关系的规范化理论,终于将表设计成实验中的3范式的要去。同时,表的创建中和管理中,我熟悉了Oracle常用的数据类型,如:在对比CHAR()和VARCHAR()的区别中,学会如何根据具体的需求变动,选
33、择好数据类型也是设计好数据库表的一环。实验项目名称:使用Java技术实现对用户表的CRUD操作 实验学时: 4学时 同组学生姓名: 实验地点: 1318 实验日期: 2016/5/4 实验成绩: 批改教师: 批改时间: 一、实验目的和要求(1)掌握JDBC数据库连接技术;(2)掌握 mysql或oracle数据库的安装与配置;(3)掌握 常用的SQL语句; (4)掌握Connection、DriverManager、Statement、PreparedStatement、CallableStetement、ResultSet、ResultSetMetaData等接口类的使用。二、实验仪器和设备 主流 PC 机一套,要求安装 windows 操作系统和JDK及Eclipse开发工具软件、Oracle数据库及驱动;