《Oracle数据库设计与 实现》 总结报告
成绩:-------------- 学号:-------------- 姓名:---------------- 班级:-------------
任课教师: -----------------
2014-12-21
2、内容要求:
1) 课程体系总结(总结一学期所收获的课堂知识—---按章节进行)
第一章:oracle简介
主要是对oracle进行了总体的介绍,首先介绍了一些关系数据库的理论基础知识,并对oracle数据库提供的网络技术进行了介绍。本章还对oracle的应用结构以及安装时的注意事项及常用的管理工具进行了讲解。
在关系数据库的基本理论中,我了解到了数据库系统经历了由层次模型到网状模型再由网状模型到关系模型的发展过程。关系数据库主要由三部分构成:数据结构,关系操作和完整性规则。在关系数据库的设计阶段,需要为它建立逻辑模型,关系数据库的逻辑模型可以通过实体和关系组成的图来表示,即E-R图。使用E-R图表示的逻辑模型就是E-R模型,一个完整的E-R模型主要由实体,联系和属性组成。这章中还介绍了关系数据库的设计规范和网格技术,网格计算是一种造价低廉而且数据处理能力超强的一种计算模式,它是随着互联网而发展起来的,实际上它也是分布式计算的一种,还介绍了oracle的网格体系结构。Oracle的应用结构比较常用的有多数据库的独立宿主结构,客户机/服务器结构和分布式结构,我们在安装部署oracle数据库时需要根据硬件平台和操作系统的不同采取不同的结构。最后了解到了Oracle的在Windows的安装与配置。
第二章:oracle的体系结构
在这章中主要学习了oracle数据库系统的体系结构和基本理论。数据库的体系结构是从某一角度来分析数据库的组成和工作过程,以及数据库如何管理和组织数据。通过本章的学习,我对oracle数据库的物理和逻辑储存方式有了一个基本的认识,理解了这两种储存方式的基本概念与组成结构,还了解了数据库的组成。完整的oracle数据库系统通常由实例和数据库组成,而数据库是一系列物理文件的集合,实例则是一组oracle后台进程/线程以及在服务器分配的共享内存区。逻辑储存结构是oracle数据库储存结构的核心内容,对oracle数据库的所有操作都会涉及到逻辑储存结构。还了解了oracle对逻辑储存结构和物理储存结构的管理是分别进行的,两者不直接影响,所以oracle的逻辑储存结构能够适用于不同的操作系统平台和硬件平台,而不需要考虑物理实现方式。物理储存结构相对简单并且更容易理解,物理储存结构主要包括3类物理文件:数据文件,控制文件和重做日志文件。还了解了实例的内存结构,实例的内存结构总体上分为两部分:系统全局区和程序全局区。系统全局区位于系统的共享内存段中,可以被所有的服务和后台进程共享。程序全局区中保存的是服务进程私有的数据和控制信息,它不是共享内存。实例的进程结构,在oracle系统工作过程中主要涉及3个进程:用户进程,服务器进程和后台进程。学到了一些常用的后台进程:数据写进程,日志写进程,检查点进程,归档进程,系统监视进程,进程监视进程,恢复进程,调度进程等等。最后学习了数据字典,数据字典是oracle数据库的核心组件,它是一系列对于用户而言是只读的基础表和视图组成,它保存了关于数据库本身以及储存所有对象的基本信息。
第三章:管理oracle数据库
本章主要介绍了对数据库的启动和关闭的过程。初始化参数用于设置实例和数据库的特征,通过设置初始化参数,不仅可以定义例程和数据库的特征,还可以定义许多其他特征。还了解到了一些常用的初始化参数,初始化参数文件以及如何创建初始化参数文件,显示和设置初始化参数文件。由于oracle数据库的启动过程是分步进行的,因此数据库有多种启动模式,
不同的启动模式之间能够相互切换。启动数据库的步骤主要是三步:创建并启动与数据库对应的实例,为实例加载数据库和将数据库设置为打开状态。还学习了如何使用startup语句启动数据库到各种启动模式,这几种模式主要是启动实例不加载数据库(nomount模式),加载数据但不大开数据库(mount模式),打开数据库(open模式),和强制启动数据库。还学习了如何用alterdatabase转换启动模式,它也分为四种:实例加载数据库,打开数据库,切换受限状态和切换只读状态,相应的语句就不一一写出了。最后学习了关闭数据库与实例,关闭数据库与启动数据库相对应,也分为三步:关闭数据,实例卸载数据库,最后终止实例。 关闭数据库也有几种方式:正常关闭方式,立即关闭方式,事务关闭方式和终止关闭方式。另外,数据库还有几种特殊状态,静默状态和挂起状态。静默状态只有管理员权限才能在数据库中查询,更新操作和运行PL/SQL,任何费管理员不能在数据库执行任何错误。挂起状态数据库所有物理文件的IO操作都被暂停。
第四章:SQL*PLUS命令
主要学习了sql*plus工具的特点,功能和用法还了解了设置sql*plus的运行环境,执行各种命令,格式化输出结果,定义和使用变量,编辑SQL命令等等。Sql*plus运行环境是sql*plus的运行方式和查询语句执行结果显示方式的总称。设置合适的SQL*plus运行环境,可以使SQL*plus能够按照用户的要求运行和执行各种操作。学习了set语句选项的使用,设置运行环境实例,主要是pause选项,pagesize选项,newpage选项,linesize选项和 numformat选项和timing选项。接下来就是介绍许多命令,help命令可以通过查询命令清单,describe命令可以返回对数据库所储存的对象的描述。Prompt命令可以在屏幕上输出一行数据,有助于在脚本文件中向用户传递相应的信息。Spool命令可以把查询结果保存到文件中或者发送到打印机中。SQL*PLUS还提供了大量命令用于格式化查询结果,使用这些命令可以对查询结果进行格式化,以产生用户需要的报表。Column命令可以对控制查询结果集中列的显示格式。Ttitle和btitle命令设置打印时每页的顶部和底部标题。
第五章:sql语句基础
主要介绍oracle所附带的用户模式,然后介绍通过select语句查询数据,通过insert,delete语句进行操作,最后介绍通过oracle提供的事务处理来控制SQL语句对数据库的操作。两种常用的模式为Scott模式和hr模式。还学习了数据的过滤和数据的排序以及多表检索。与其他编程语言一样,SQL提供了许多内置函数,使用这些函数大大提高计算语言的运算,判断功能。通过这些函数,用户可以对表中的数据按照自己的需要进行各种复杂的运算操作。比如字符函数,数学函数,时间日期函数,转换函数,统计函数。然后又学到了各种嵌套子查询,数据的操作即插入更新删除数据最后学习了事务的处理。
第六章:pl/sql编程基础
主要介绍了pl/sql程序设计的基础知识,包括pl/sql,SQL和SQL*plus的差异,pl/sql的基本结构,各种类型变量的使用,流程控制和pl/sql游标的使用,最后介绍了pl/sql程序的异常处理机制。学习了pl/sql条件判断语句,他的作用更具条件的变化选择执行不同的代码。循环语句的使用,包括loop--end loop循环,while循环,for循环。接着学习了游标的使用,静态游标包括隐式游标和显式游标。使用显示游标处理数据分四步:定义游标,打开游标,提取游标数据和关闭游标。最后学习了异常处理。
第七章:储存过程,触发器和程序包
学习了oracle的4种类型的可储存程序:过程,函数,触发器和程序包。它们都有自己的名字,以便随后可以重用。储存过程是已经编译好的代码,在调用的时候不必在编译,提高了程序的运行效率。储蓄过程包括3部分:声明部分,执行部分和异常处理部分。学习了oracle3种参数模式:in参数,out参数和in out参数。函数与过程类似,主要区别在于函数必须有返回值。触发器也类似于过程和函数,是一个表或数据库事件联系在一起,当特定事件出现
将自动执行触发器的代码块。最后学习了程序包,程序包包括两部分:规范和包主体。为程序包创建主题后就可以调用了。
第八章:管理表
主要学习了最基本最表,并对最表和约束的操作进行了详细的学习。数据库中的数据是以表的形式储存的,学习了表的结构表的列称为字段,字段数据类型有数值类型,字符类型,日期类型,lob类型和rowID类型。学习了如何创建表,表的特性包括储存参数,数据块管理参数和指定重做日志,指定缓存。当我们发现表的定义不满意时,还可以对表进行修改,这些操作包括增加删除表中的字段,改变表的储存参数设置以及对表进行增加删除重命名等操作。对于一个完整的数据库不仅要储存数据,还要保证数据的正确性与完整性,所以需要定义一些约束,比如非空约束,主键约束,唯一性约束,外键约束。一般情况约束创建就一直起作用,也可以根据具体情况,临时禁用莫个约束。当然可以定义就可以删除,当不需要冒个约束时就可以删除。最后学习了大对象数据类型的使用。
2) Oracle学习心得(通过课程学习得到的启发及思考,阐述个人对Oracle的认识和理
解包括学习方法等,也可以针对某一具体知识点做阐述)
今年我们学习了 oracle数据库这门课程,起初的我,对这个字眼是要多陌生有多陌生,后来上课的时候听一会老师讲课,接着再跟上上机课,渐渐的学会了不少东西,我自己的感觉就是对于这种操作性学科来说,动手自己做才是最好的学习方法,多实践可以加深对知识的理解。一个好的程序,必然联系着一个庞大的数据库网路...而对于oracle来说,它就是一个不错的数据库,它是一个值得我们学习的技术。
oracle的体系太庞大了,对于我们初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学不好,所以把学习心得分享一下。
看完理论的东西,自己静下心来想想,多问自己几个为什么,然后把所学和所想的知识点做个笔记;在想不通或有疑问的时候,就做做实验,想想怎么会这样,同样的,把实验的结果记下来。思考和做实验是为了深入的了解这个知识点。而做笔记的过程,也是理清自己思路的过程。学习的过程是使一个问题由模糊到清晰,再由清晰到模糊的过程。而每次的改变都代表着你又学到了一个新的知识点。 学习的过程也是从点到线,从线到网,从网到面的过程。当点变成线的时候,你会有总豁然开朗的感觉。当网到面的时候,你就是高手了
对于我们初学的人,碰到问题就可以拿到论坛上去问,当然在问之前,你应该先查下书,自己研究研究,由别人来回答你的问题,会让你在短时间内不费劲地弄懂这个知识点,然而通过自己的努力去研究它,不但会更深入的了解这个知识点,更重要的是在研究的过程会提高你解决问题和分析问题的能力。总的来说,没有钻研的学习态度,不管学什么东西,都不会成功的。
3) Oracle知识扩展(你所获得的课本上没有的知识,主要为平时上机实践收获及网上
获得信息)
随着时间长了我感觉,我学到的仍是一些皮毛而已,怀着疑惑和求知的心态,我在网上搜索了关于 oracle数据库的一些知识。
1.ORACLE的特点:
可移植性 ORACLE采用C语言开发而成,故产品与硬件和操作系统具有很强的独立性。从大型机到微机上都可运行ORACLE的产品。可在UNIX、DOS、Windows等操作系统上运行。可兼容性 由于采用了国际标准的数据查询语言SQL,与IBM的SQL/DS、DB2等均兼容。并提供读取其它数据库文件的间接方法。
可联结性 对于不同通信协议,不同机型及不同操作系统组成的网络也可以运行ORAˉCLE数据库产品。
2.ORACLE的总体结构
(1)ORACLE的文件结构 一个ORACLE数据库系统包括以下5类文件:
ORACLE RDBMS的代码文件。
数据文件 一个数据库可有一个或多个数据文件,每个数据文件可以存有一个或多个表、视图、索引等信息。
日志文件 须有两个或两个以上,用来记录所有数据库的变化,用于数据库的恢复。 控制文件 可以有备份,采用多个备份控制文件是为了防止控制文件的损坏。
参数文件 含有数据库例程起时所需的配置参数。
4.用户数据库对象
由用户建立的对象驻留在表空间中,含有真正的数据。数据库对象有表、视图、聚集、索引、伪列和序号生成器。
(1)聚集(Cluster) 聚集是存储数据的一种可选择的方法。聚集包括存储在一起的一组表,它们共享公共列并经常一起使用。由于内容相关并且物理地存储在一起,存取时间得到改进,存储空间可以减少。聚集是一种优化措施。
聚集对性能的改进,依赖于数据的分布和SQL操作的内容。特别是使用聚集对连接非常有利。可以明显地提高连接的速度。
(2)序号生成器 序号(SEQUENCE)生成器为表中的单列或多列生成顺序号。利用序号可自动地生成唯一主码。使用SQL语句定义序号,给出一些信息(如序号名、是升序或降序、每个序号间的间隔和其它信息)。所有序号存储在数据字典表中。
(3)伪列 伪列的行为像表的一列,但不真正存在于表中,在查询时可引用伪列,但伪列不能插入、删除或修改。
7.数据库系统的管理
ORACLE作为一个大型的数据系统,通常包含很多用户的数据。在应用开发过程中,有许许多多的各类人员进行开发和应用。所以必须要求有人对数据库系统进行临时管理,并进行数据的备份等工作。这种人被称为数据库管理员(Data Base Administrator)。他们必须理解数据库系统管理,清楚数据库包含的数据内容、运行状况等。
一般说来,DBA不是指具体的人,而是指对数据库可以行使DBA特权的用户。DBA具有如下责任:
(1)ORACLE服务器和客户工作站软件的安装和升级;
(2)创建基本的数据库存储结构(表空间);
(3)创建基本的数据库客体(表、视图、索引);
(4)修改数据库结构;
(5)给用户授权,维护系统安全;
(6)控制和管理用户对数据库的访问;
(7)监视和优化数据库的性能;
(8)计算数据库信息的后备和恢复;
(9)后备和恢复数据库;
(10)构造ORACLE服务器,如创建数据库链、客体同义词等。
而应用开发人员须完成:
(1)应用程序设计;
(2)应用的数据库结构设计和修改;
(3)为DBA提供必要的信息;
(4)完成应用程序的开发。
看了许多关于ORACLE的知识论坛,总算是对ORACLE有个整体的认识,不仅仅是拘泥于课堂上学习的知识而已,虽然自己对ORACLE学习并不是多么的透彻,但是总归多接触点新的东西总是好的。
4) Oracle的实际应用分析(例举现实生活中oracle 应用,描述其构架和实施方案,
比如某银行、某企业中数据库系统的实施方案、后台数据库的构架、 DBA的数据库管理模式等……)*该部分不是基于Oracle平台的应用程序开发设计!可以设计或包括(业务模式设计、数据库部署模式、逻辑模型设计、数据库物理存储结构设计、数据库工作方式设计、数据库安全体系设计、备份方案设计等等) 数据库系统面临的安全威胁
分析校园信息网络为教务管理带来便利的同时 ,也为数据库中信息存储、 访问和传输的安全带来了威胁.虽然 Oracle 公司在促销其数据库软件时提出的口号是 “只有 Oracle 能够做到绝对安全” ,但随着网络技术的发展和数据库应用的普及 ,基于 oracle 的数据库系统也面临了各种安全威胁。
,①来自数据库系统硬件环境 ,系统设计方面,管理方面,信息交换和数据通信 ,系统和软件平台 的安全威胁:
3 数据库系统安全防护措施
针对以上可能的数据库安全威胁形式 ,必须从以下几个方面入手解决成人教育教务管理系统数据库的安全问题.
●对数据完整性的保护:包括从硬件和软件两个方面保证数据库中数据的完整性; ●对数据库访问的身份认证:鉴别管理员和用户的身份是否合法;
●对数据库的访问控制:包括对数据库管理员的访问控制和对数据库中信息的访问控制; ●对敏感信息的加密:包括对数据库中存储数
●对数据操作的审计跟踪:监控非法操作和入侵;
●对数据库的应急响应和容灾备份:包括数据备份、 系统恢复等措施保证系统的抗毁生存能力.数据库的安全主要依靠密码学理论、 加密算法和安全协议来实现身份鉴别、 访问控制、 数据加密、数据完整性保护和数据操作的不可否认性等安全服务机制.对基于 Oracle 的成人教育教务管理系统数据库 ,可以采用以下安全手段:
1) 数据库的数据加密
基于 Oracle 的成人教育教务管理系统可以在 3个不同层次实现对数据库数据的加密 ,这 3 个层次分别是 OS层、 DBMS内核层和DBMS外层:
●在 OS层加密:在 OS层无法辨认数据库文件中的数据关系 ,从而无法产生合理的密钥 ,对密钥合理的管理和使用也很难.所以 ,对大型数据库来说 ,在 OS层对数据库文件进行加密很难实现.
●在DBMS内核层实现加密:这种加密是指数据在物理存取之前完成加/脱密工作.这种加密方式的优点是加密功能强 ,并且加密功能几乎不会影响DBMS的功能 ,可以实现加密功能与数据库管理系统之间的无缝耦合.其缺点是加密运算在服务器端进行 ,加重了服务器的负载 ,而且 DBMS 和加密器之间的接口需要DBMS开发商的支持.
●在DBMS外层实现加密:比较实际的做法是将数据库加密系统做成 DBMS的一个外层工具 ,根据加密要求自动完成对数据库数据的加/解密处理.采用这种加密方式进行加密 ,加/脱密运算可在客户端进行,它的优点是不会加重数据库服务器的负载且可以实现网上传输的加密 ,缺点是加密功能受到一些限制 ,与数据库管理系统之间的耦合性稍差.
2) 数据库的备份
数据库的备份是主要的数据保护措施.当计算机的软硬件发生故障时 ,利用备份进行数据库恢复 ,以恢复破坏的数据库文件或控制文件或其他文件.关于 Oracle 数据库的备份 ,有 3 种标准办法:导出/导入( Export / Import ) 、 冷备份、 热备份. 导出/导入是一种逻辑备份 ,冷备份和热备份是物理备份.
3) Oracle 数据库的角色管理这是保护数据库系统安全的重要手段之一.它通过建立不同的用户组和用户口令验证 ,可以有效地防止非法的 Oracle 用户进入数据库系统 ,造成不必要的麻烦和损坏;另外在 Oracle 数据库中 ,可以通过授权来对 Oracle 用户的操作进行限制 ,即允许一些用户可以对 Oracle 服务器进行访问 ,也就是说对整个数据库具有读写的权利 ,而大多数用户只能在同组内进行读写或对整个数据库只具有读的权利.在此 ,特别强调对 SYS和 SYSTEM 两个特殊账户的保密管理.Oracle 用户所有.为了加强数据库在网络中的安全性 ,对于远程用户 ,应使用加密方式通过密码来访问数据库,加强网络上的 DBA 权限控制 ,如拒绝远程的DBA 访问等.Oracle 数据库系统在利用角色管理数据库安全性方面采取的基本措施有:
●通过验证用户名称和口令 ,防止非 Oracle 用户注册到 Oracle 数据库 ,对数据库进行非法存取操作;
●授予用户一定的权限 ,限制用户操纵数据库的权力;
●授予用户对数据库实体的存取执行权限 ,阻止用户访问非授权数据;
●提供数据库实体存取审计机制 ,使数据库管理员可以监视数据库中数据的存取情况和系统资源的使用情况;
●采用视图机制 ,限制存取基表的行和列集合.
4 结 语
成人教育教务管理信息系统利用 Oracle 数据库技术、 Web 技术 ,以 Internet 网络为基础 ,以信息化管理的方式取代传统的手工管理 ,减少管理层次 ,缩短工作流程 ,提高管理效率 ,在所有与教学相关的人员中实现数据分层次的共享 ,促进成人教育教务管理向规范化、 信息化方向发展. 在正常情况下 ,Oracle 数据库会保证数据的安全、 稳定 ,为用户提供
正确的数据 ,但由于各种安全威胁会影响数据库系统的操作 ,影响数据库中数据的正确性 ,甚至可能破坏数据库 ,使数据库中全部或部分数据丢失 ,整个系统都将处于瘫痪状态. 因此 ,如何保证 Oracle 数据库的安全就成为设计数据库过程中一个至关重要的问题.