*一点废话
前些天我分享一篇毕业后自学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入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据...
- **15天精讲精练_Android核心技术**:快速掌握Android开发基础知识,包括UI布局、Activity生命周期、数据存储、网络通信等。 - **Android从入门到实战**:从零开始学习Android开发,最终完成一个完整的项目,巩固所...
《在21天内自学SQL》一书是学习SQL编程语言的理想指南,旨在通过系统而深入的教学计划,帮助读者在三周时间内掌握SQL的核心概念与实际应用技能。本书分为三个阶段,每一周涵盖一系列关键主题,从基础到高级,循序渐...
1. **20天横扫Java基础**:适合Java初学者,通过20天的学习掌握Java基础语法。 2. **尚硅谷Java基础实战——Bank项目**:通过实际项目加深对Java基础知识的理解和应用。 3. **Oracle、SQL、PLSQL视频教程**:数据库...
**Day2:查询入门——SELECT语句** - **SELECT语句**:用于从一个或多个表中检索数据。 - **基本语法**:`SELECT column1, column2 FROM table_name;` - **示例**:`SELECT name, age FROM users;` **Day3:表达式...
- **预约时间:** 考生需要提前至少15天进行考试预约。 **报名条件:** - **个人证件要求:** 参加考试时需携带两种有效的个人证件,例如身份证和驾照、学生证或工作证等。 - **无其他限制:** 华为认证考试报名...