*一点废话
前些天我分享一篇毕业后自学java与Oracle的文章,希望能给即将毕业或立志进入IT的人一点帮助。很多学弟发邮件问我应该怎么自学Oracle,趁现在项目进入尾期有点空闲时间的机会。复习一下Oralce的基础,同时做了点笔记,还望能给有需要的同仁杯水车薪。
同时申明一下:我这里所说的只是入门的基础知识,但只要学懂了也足以满足做项目的一般需要。如果你想朝DBA等方面发展,这只能说是万里长城的第一步。对技术我通常定义为:入门,理解,熟悉,精通。中国现在绝大数PG(当然更包括我)都处与入门与理解的边缘。真希望你们能后来者居上,不久的将来能在这方面我们能超过India,赶上America。
Oracle入门(一) 不可不知的专业术语
1:SQL(Structured Query Language) 结构查询语句.
2:事物(Transaction):指作为单个逻辑工作单元执行的一系列操作.且事务必须具有的四个特性:
<1>: 原子性 (atomic):事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行.
<2>:一致性 (consistent):事务在完成时,必须使所有的数据都保持一致状态.
<3>: 隔离性 (insulation):由并发所作事务的修改必须与任何其它并发所作事务的修改隔离
<4>: 持久性 (Duration):事务完成之后,它对于系统的影响是永久性的
2:DML,DDL,DCL,TCL操作(按SQL的功能的划分):
(1):数据库操作语句:DML (Data Manipulation Language) ——包括:SELECT, INSERT,UPDATE,DELETE,
MERGE,CALL,EXPLAIN PLAN,LOCK TABLE.
(2):数据库定义语句:DDL (Data Definition Language ) ——包括:CREATE, ALTER,DROP,TRUNCATE,
COMMENT,RENAME.
(3):数据库控制语句:DCL (Data Control Language)——包括:GRANT,REVOKE
(4):事务控制语句:TCL(Transaction Control)——包括:COMMIT,SAVEPOINT, ROLLBACK,
SET TRANSACTION。(有些书上会把TCL操作归入DML操作内).
3:数据库存储结构:物理存储结构与逻辑存储结构.
(1):物理存储结构主要分为:<1>扩展名为.DBF的数据文件(Data File);
<2>扩展名为>.LOG的日志文件(Redo Log File);
<3>扩展名为.CTL的控制文件(Control File);
(2):逻辑存储结构: 数据库块(DATA BLOCKS),盘区(EXTENT),段(SEGMENT),表空间(TABLE SPACES)。
数据库块:Oracle 用来管理存储空间的最基本单位,也是最小逻辑存储单元.
盘区:一系列上物理上连续的块构成的存储结构,它是磁盘最小单元。
段:是一个独立的逻辑存储结构,按特征可划分为:数据段,索引段,回退段,LOB段,临时段.
表空间:ORACLE中用户可使用的最大逻辑储存结构。
4:内存结构(SGA).
SGA 结构为:
数据高速缓冲区 重做日志缓冲区 共享池 大的共享池(可选)
数据字典缓冲区 其它数据缓冲区
5:Oracle的实例(instance):内存区域与进程合称为一个Oracle实例.其同样可以分为单进程实便与多进程实例(MTS).
6:数据字典(DATA DICTIONARY )是由Oracle中一系例的只读的基础表与视图组成,并保存了所有对像的基本信息。
7:范式(normal form)理论:1NF,2NF3NF,BCNF
第一范式(1NF):最简单定义就是无重复的列.
第二范式(2NF):简单定义就是属性完全依赖于主键。
第三范式(3NF):简单定义就是属性不依赖于其它非主属性。
BCNF范式(BCNF):3NF的变更,简单定义没有非主属性依赖于平凡函数。
这样讲可能有一部分的同仁除了第一,二范式能理解外,3NF,BCNF不能理解的可以去看一下书的实际例子。个人觉得只要掌握 1NF,与2NF就够了。在实际项目中很少有达到3NF与BCNF的,实际中我们常常会牺牲存储空间而去追求DML操作的效率与方便。
8: 脏(灰)数据块(Dirty data block)
存放在内存中的原始数据已被修改,而修改后的数据还未写入数据库中。
9:热数据块(Hot data block)
存放着那些经常被修改数据叫热数据块。
10:数据库基本数据对像(Data Object):表,视图,序列,同义词,触发器,数据库链及程序包,过程和函数
(1):表(Table)——DB中数据基本存储结构.
(2):视图(View)——视图是存储在数据库中的查询的SQL 语句,他产生原因:安全原因, 视图可以隐藏一些数据
(3):序列(Sequence)——列是用于产生唯一数码的数据库对象,序列创建时带有初始值,增量值,最大值等,最大可达38 位整数
(4):同义词(synonym)——是指向其它数据库表的数据库指针。他有两种类型:私有(private)和公共(public)。私有的同义词是在指定的模式中创建并且只创建者使用的模式访问。公共同义词是由public 指定的模式访问,所有数据库模式(用户)都可以访问它。
(5):触发器(trigger)——特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发(如DML操作)
(6):数据库链及程序包(database link)——是与远程数据库连接的存储定义,用于查询分布数据库环境的远程者
(7):过程(Procedure)——是一个 PL/SQL 语句块,它存储在数据字典中并可被应用程序调用,使用存储过程一个好处就是能够实施数据的安全性。可以使不授权用户直接应用程序中的一些表,而授权用户执行这些表的一个过程。
(8):函数(Function)——与过程一样,函数也带有参数,是存储在数据库中的代码块。其差别在于函数可以把值返回调用程序,可以在 SQL 语句中调用它们。
以上这些都是我们会经常听到的专业术语,学习Oracle我们必须得知道别人说"Segment,DDL操作等"指的是什么,要不会给人很业余的感觉。以至于以下这些我们能记住就记住,只要不是一些DBA类的人谈工作,一般是不会用的:
数据库写 (DBW0 或DBWn);日志写 (LGWR);检测点 (CKPT); 系统监视 (SMON);进程监视 (PMON);归档 (ARCn) ; 恢复 (RECO); 锁(LCK0);工作队列 (SNPn); 队列监视 (QMNn); 发布(Dispatcher Dnnn) 服务器 (Snnn); 脏的区(Dirty Buffers);自由区(Free Buffers);自由区(Free Buffers);保留区(Pinned Buffers)……
分享到:
相关推荐
Oracle学习笔记——day01 学习的好东西Oracle学习笔记——day01
Oracle学习笔记——day02 学习的好东西 Oracle学习笔记——day02
Oracle学习笔记——day04 学习的好东西 Oracle学习笔记——day04
Oracle学习笔记——day05 学习的好东西 Oracle学习笔记——day05
Oracle学习笔记——day03 学习的好东西 Oracle学习笔记——day03
Oracle SOA 套件——Oracle BPEL 流程管理器Oracle SOA 套件——Oracle BPEL 流程管理器
Oracle工作总结——日志文件切换频率的调整 Oracle工作总结——日志文件切换频率的调整
Oracle数据库教程——nbu恢复oracle数据库案例
Oracle 11g是最具代表性的高端关系型数据库管理系统,它在世界各地的大型商务数据库应用系统中被广泛应用。本书设计了大量的应用情景,介绍了数据库管理员和开发人员常用的管理、维护和优化Oracle 11g数据库的技术和...
Oracle应用项目——使用OracleEM创建表空间.pdf 学习资料 复习资料 教学资源
Oracle9.0入门——基础篇 Oracle9.0入门——安装篇 Oracle9.0入门——数据库服务器管理篇 Oracle9.0入门——SQL篇 Oracle9.0入门——集成环境管理篇 Oracle9.0入门——DBA日常维护篇 Oracle9.0入门——常用数据方案...
该资源是关于Oracle数据库的入门知识,内容不是很深入,非常适合初学者阅读,我自己也是初学者,我觉得还不错,希望能帮倒需要的朋友!
Oracle数据库技术——动态SQL。详细资料~
《Oracle11g从入门到精通》面向数据库管理人员和数据库开发人员,从实际角度出发,系统地...对于初学者,《Oracle11g从入门到精通》是一本很好的入门教程,对Oracle管理员和应用程序开发员,也有很好的学习和参考价值。
Oracle数据库教程——oracle常见的等待事件说明[参照].pdf
Oracle 数据库系统——基础与工具.pdf
oracle 数据库系统——管理与应用
Oracle缓存连接——Timesten体系结构 .docx 内存数据库技术