Oracle数据库管理系统实习总结

时间:2024.3.15

Oracle数据库管理系统实习总结

学习完oracle数据库后,我们进行了一次大实习,实习是分组进行的,我们组根据老师的安排,采用Oracle数据库技术建立员工工资及其个人所得税管理系统。小组成员主要是xx,xx和xxx。xx:整体设计,数据展现层操作,代码整合;xxx:数据库概念结构、逻辑结构、物理结构设计,增删改查sql语句的编写;xx:税值计算函数编写,系统测试,调试,相关文档的整理及编写。

通过对需要完成任务的整体分析,我得出需要做的工作包括这么几条:

1.根据需要创建自己的用户(注意起名规范,参见下述要求:对象含义_姓名首字母_学号后三位)和相关数据库表(比如类似在Hr Schema中的employees及departments表等)

2.编写一个函数(函数名需带姓名首字母及学号后三位),查出给定员工号的员工工资及佣金的每月应纳税额:注:个人所得税算法如下:扣除标准:工薪所得扣除标准提高到3500元,计算个人所得税税率表 :工资、薪金所得适用。

3.用Java作一个界面C/S,通过JDBC/ODAC/ADO调用oracle数据库对象,采用友好易用的用户界面:

? 实现员工基本信息(含工资、奖金等)的增删改查;要求员工表主键是自增

长字段,使用sequence和触发器或存储过程实现自增长。

? 实现员工工资及奖金和需缴纳的个人所得税等员工工资条信息的查询与(可

选的)Excel输出;

? 通过调用存储过程实现各部门员工工资及其年收入的分析报表(具体分析需

求自定,如分析一下各部门员工中比本部门员工平均年收入高出30%的员工(可简称“高薪员工”)姓名、所在部门名和年收入金额、个人所得税等;)。 接着我们的工作开始了。在开始的时候我们各做各的去了,很多意见和想法没有去及时沟通,所以各自盲目地做着,有些时候做不下去了也不知道去沟通,而是一个人呆着苦闷或是干脆不做了。所以在开始的时候大家对于怎么合作完成一个实习任务是不清楚的。因为每一个环节都不可能是孤立的,我们在每一步都需要去了解互相的进展和需要,比如李杨负责数据库的与平台的链接,我负责数据库的操作和结构设计,如果不去及时沟通,总不能知道我做成什么样让他能更好地操作,甚至我做好了数据库,他还不清楚,这时候其实是可以提前拿过去测试一下的。正如这种例子经常在我们前期工作的时候出现。经过我们前两天的工作,我们后来一起讨论了下下一步怎么配合。所以在后期我们都能很好地合作,顺利地完成了任务。

本学期oracle数据库的学习对于我了解数据库又有了进一步的理解和进一步加强了数据库的操作能力。对数据的更删改查更熟悉了,对用户的创建和管理有了进步。Oracle的学习,开始是在自己电脑上安装了软件,然后对软件的操作有了了解。在老师的讲解和学习中,学会了数据库的各种操作,创建了自己的永华和数据表,使用了oracle内置函数、调用存储过程和函数。学会使用PL/SQL的顺序、循环和分值结构。前面学习过数据库原理,通过这学期Oracle的课程觉得Oracle在用户的划分上要比SQL Server好很多,划分了多种用户级别,数据库也是以用户划分,这对于管理员和用户都是很有用的。Oracle的学习对于以后各种数据处理工作有很大的帮助,相信以后的学习中也会经常运用到oracle,我也将会不断加深对oracle的理解。

总结这些天的学习和工作,我感触颇深。我们课程设计采用了Asp.net技术,制作了一个B/S的员工工资及其个人所得税管理系统。我主要负责数据库结构、逻辑结构、物理结构设计,增删改查sql语句的编写。对数据库结构和逻辑结构、物理结构有了更熟悉的理解和运用,对数据库增删改查的aql语句进一步熟练。而且学数据库原理的时候已经做过一个自动求职系统,所以对数据库的连接和数据操作等都已经比较熟悉了,但oracle和SQL server还是有不一样的地方,例如这次用到自增id号,SQL server可以自增,而oracle要使id自增只有定义一个自增值。此次大作业以实践的方式操作Oracle数据库,觉得自己的技术得到了提升,包括切实参加一个系统设计的能力、与组员分工合作的能力、解决问题的能力等等。相信这份经验会对自己以后Oracle的学习有很重要的影响。


第二篇:oracle数据库索引的理解与总结


 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。

  例如这样一个查询:SELECT * FROM TABLE1 WHERE ID = 44。如果没有索引,必须遍历整个表,直到ID等于44的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),直接在索引里面找44(也就是在ID这一列找),就可以得知这一行的位置,也就是找到了这一行。可见,索引是用来定位的。

  建立索引的目的是加快对表中记录的查找或排序。为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。

  虽然建立索引能加快对表中记录的查询或者排序速度,但是并不是索引建得越多越好,这就需要我们了解使用索引过程中,索引的一些优点以及缺陷:

  使用索引的好处:

创建索引可以大大提高系统的性能:

第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。

第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。

第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

  使用索引的一些不足:

第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。

第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。

第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

  索引是建立在数据库表中的某些列的上面。在创建索引的时候,应该考虑在哪些列上可以创建索引,在哪些列上不能创建索引。一般来说,应该在这些列上创建索引:

·         在经常需要搜索的列上,可以加快搜索的速度;在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;

·         在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;

·         在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;

·         在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;

·         在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。

  同样,对于有些列不应该创建索引。一般来说,不应该创建索引的的这些列具有下列特点:

·         对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。

·         对于那些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。

·         对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。

·         当修改性能远远大于检索性能时,不应该创建索引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索引。

  在表上创建索引需要综合考虑使用索引所带来的好处以及其影响,只有合理有效的使用索引才能利用索引提高数据的查询或者排序性能。

B 树索引用于在可比较大小的字段上创建索引,能享受索引好处的表达式形式应是基于关系操作符’<’、‘>’、’=’ 、‘>=’、‘=’、‘<=’的关系表达式,以及非通配符开始的LIKE 表达式(其形式为columnLIKE ‘xxx%’),B 树索引允许创建复合索引,即索引键字段数可以超过1 个,复合索引发挥作用的条件为:索引键字段的中的最前面的一个或连续多个字段的表达式应作为“与”式的因子出现在条件表达式中,例如:假定在表的字段f1,f2,f3 上创建了复合索引,则语句…WHERE f1=?? And f2=??可以享受索引的好处,而语句…WHERE f2=?? Andf3=??则不能享受索引带来的好处,原因是最前面的f1 字段未出现在条件表达式中。

  R树索引只针对空间数据类型,而且只能针对单个字段,即不能创建R树复合索引或B树与R树的混合复合索引。在以空间关系作为条件的查询中,除了"相离"(DISJOINT)关系不能享受R树索引带来的好处外,其余空间关系基本都能从R树索引中得到好处。

  全文索引只针对文本类数据类型如:CHAR,VARCHAR,以及大对象中的文本等,若没有全文索引,则这类数据只能使用B 树索引,B树索引能发挥作用的条件为:条件表达式中与索引字段相关的子表达式应是基于关系操作符’<’、‘>’、’=’ 、‘>=’、‘=’、‘<=’的关系表达式,以及非通配符开始的LIKE 表达式(其形式为column LIKE ‘xxx%’),但在对文本进行检索时,通常会以文本中包含有哪些关键词作为检索的条件,传统关系表达式中只有形式为column LIKE ‘%xxx%’的关系表达式能表达查询的意图,并能得到预想的结果。但以该形式的表达式为条件表达式的查询只能使用顺序扫描,即对全表进行扫描,而且在对全表的每一记录的文本字段进行测试时,还应对文本字段的全部进行关键词匹配扫描,显然,涉及到的数据量和运算强度都非常大,对于巨型表而言,经常性地全文搜索查询会使系统不堪重负。针对以上应用情况,DBMS 采用全文索引解决查询性能问题。

  位图索引主要针对大量相同值的列而创建(例如:类别,操作员,部门ID,库房ID等)。位图索引可以提高基数比较小的表的查询速度,这主要是因为在创建位图索引的时候,数据库往往会对整个表进行扫描,并为索引列的每个取值建立一个位图(位图索引的名字也由此而来)。在这个位图中,为表中的每一行使用一个位元来表示该行是否包含该位图的索引列的取值。位元到行的ROWID的对应关系通过位图索引中的应收函数来完成。如此的话,位图索引就能够以一种完全不同的内部机制来完成与B树索引相同的功能。

更多相关推荐:
Oracle数据库学习总结

Oracle数据库学习总结1setlinesizexx设置行间距常用数值有1002003002setpagesizexx设置每页显示行数3edx表示新建一个xsql文件通过文件编辑SQL语句然后用x命令可以调用...

oracle数据库学习总结(一)

oracle数据库学习总结基础一ORACLE中字段的数据类型1字符型1char范围最大20xx个字节定长char1039张三39后添空格6个把10个字节补满39张三39性别char239男392varchar2...

有关Oracle学习总结

表xyzabc1mhj1mhjk1njk2uwe2uwert3qs4ads4adsaa怎么删掉第158条记录字段ab相同的几条记录只留一条留下字段C较短的一条DELETEFROMLIANXIWHERELENGT...

oracle数据库个人小结

OracleSQL4GL第四代语言struncturedquerylanguage结构化的查询语言将数据放入Database数据库数据库对象tableSQLDDLdatadefinitionlanguage数据...

Oracle数据库知识总结

Oracle笔记1在安装Oracle过程中Oracle将会创建3个默认的用户sys数据库管理员具有最高权限相当于sqlserver20xx中的sa用户system数据库操作员具有较高权限scott数据库演示员用...

大学oracle数据库总结(考试必备)

1下列选项中关于序列的描述哪一项不正确任何时1完成以下PLSQL块功能是使用游标显示销售报表假设当前用户为SYSTEM创建用户user口令为abc候都可以使用序列的伪列CURRVAL返回当前序列2oracle中...

Oracle数据库总结

一Oracle数据库中常用的数据类型varchar2长度可变长字符串char长度定长number表示整数或者浮点数number8number82clog字符的大对象blog二进制的大对象二数据库查询1SELEC...

学习Oracle数据库-Linux操作系统心得体会 腾科 杭州

最初开始接触Oracle数据库是在20xx年刚上大一的时候,因为当时所学的专业偏向于数据库方向。学的第一门课是数据建模,接着是SQL语言,然后是Oracle数据库管理。当然大学这几年间不止是学习数据库,我们还学…

Oracle数据库知识点总结

Oracle数据库实例启动不了怎么办文件主要分为参数文件跟踪文件警告文件数据文件临时文件控制文件重做日志文件密码文件修改跟踪文件闪回日志文件转储文件数据泵文件datapump平面文件主要说参数文件与警告文件参数...

Oracle数据库知识点总结,复习必备资料-3

66RDBMSrelationshipdatabasemanagementsystem关系型二维表数据库管理系统是数据库软件中用来操纵和管理数据库的部分用于建立使用和维护数据库它对数据进行统一的管理和控制以保证...

达内学习心得:oracle数据库笔记

达内学员oracle数据库笔记获奖学员王梓祺所获奖项三等奖内容前言这份资料是结合老师笔记课堂案例TTS60课件以及个人的理解整理时间仓促如有纰漏敬请原谅Oracle数据库语法顺序selectfromonwher...

Oracle数据库学习中的六条经验总结

Oracle数据库学习中的六条经验总结以下的文章主要是介绍在Oracle数据库学习中的六条经验总结其实想学好Oracle数据库并不是一件很困难的事情很多人都认为Oracle数据库的体系过于庞大在学习的过程中摸不...

oracle数据库学习总结(27篇)