一、Oracle内部结构

1.表空间

表空间是数据库的逻辑划分,一个表空间只属于一个数据库,每个表空间由一个或多个数据文件组成,表空间中其他的逻辑结构的数据存储在这些数据文件中,一般oracle系统安装后,会自动建立多个表空间,

oarcle11g 的主要表空间  //附(10 g 也是一样的)

1).example :示例表空间,用于存放示例数据库的方案对象信息及其培训资料

2).system: 是系统表空间,用于存放oracle系统内部表和数据字典的数据,如表名,列名,用户名等,一般不赞成将用户创建的表,索引等存放在system表空间中

3).sysaux: 是辅助系统表空间,主要存放oracle系统内部的常用样例用户的对象,如存放cmr用户的表和索引等。从而减少系统表空间的负苛,它一般不存诸用户的数据,由oracle系统内部自动维护

4).undotbsi: 是重做表空间,存放数据库中有关重做的相关信息数据,当用户对数据表进行修改(insert,update,delete)。oracle系统自动用重做表空间来临时存放修改前的数据,当所做的修改完成并提交后,系统根据需要保留,修改前数据的时间长短来释放重做表空间的部分空间。

5).users: 是用户表空间,存放永久性用户对象的数据和私有信息,因此也称为数据表空间,每个数据库都应该有一个用户表空间,以便在创建用户时将其分配给用户。

除了oracle系统默认创建的表空间以外,用户可以根据应用系统的规模及其所要存放的对象的情况创建多个表空间,以区分用户数据和系统数据。

/* 以下略

2.表

存放用户数据的对象

3.约束条件

可以为表的一个列创建约束条件(Constraint)

1).主键约束

2).默认约束

3).检查

4).唯一

5).外键

4.分区 (Partition)

在非常大的数据库中,可以通过把一个大表的数据分成多个小表来简化数据库的管理,这些小表叫做分区,除了对表分区外,还可以对索引进行分区,分区不仅简化了数据库的管理,还改善了其应用性能,在oracle中,能够细分分区,创建子分区,例如,可以根据一组值分割一个表,然后再根据另外一种方法分割分区。
5.索引

为了能够找到数据,表中的每一行都要用一个RowID表标识,RowID告诉数据库这一行的准确位置,包扩所在的文件,该文件中的块和该块中行地址。

6.用户

用户账号虽然不是数据库中的一个物理结构,但它于数据库中的对象有着重要的关系,这是因为用户拥有数据对象,例如sys用户拥有数据字典表,用户system拥有访问数据字典表的视图

为数据库创建对象必须(例如表)必须在用户账号下进行,可以对每一个用户账号进行自定义,以便将一个特定的表空间做为它的默认表空间

7.方案

用户账号拥有的对象集称为用户的方案(Schmea)

8.同义词

为了给不同的用户使用数据库对象时提供一个简单的唯一标识数据库对象的名称,可以为数据库对象创建同义词,

9.权限及角色

10.段,盘区和数据块

依照不同的数据处理性质,可能需要在数据表空间内划分出不同的区域,以存放不同数据,这些区域称为段(Segment),例如,存放数据的区域称为"数据区段",存放索引的称为"索引区段",由于段是一个物理实体,所以必须它把分配到数据库的一个表空间中(放在表空间的一个数据文件中),而段其实就是由许多盘区(Exctent)给合而成的,当段中的空间用完时,该段就获得另外的盘区。数据块(Data Block) 是最小的存储单元,Oracle 数据库是操作系统块的倍数。

二、 Oracle外部结构

1.数据文件

每个oracle数据库都有一个或多个数据文件(dataFile),而一个数据文件只能属于一个表空间,数据文件创建后可以改变大小,创建新的表空间要创建新的数据文件,数据文件一旦加入表空间,就不能从这个表空间移走,也不能和其他表空间发生联系

2.重做日志文件 (Redo Log Files)

oracle保存所有数据库事务的日志,这些事务被记录在联机日志文件(OnLine Rodo Log FIle)中,数据破坏了可以用这些日志来恢复。一个数据库至少需要两个重做志文件,oracle以循环的形式向日志文件写入,第一个日志被添满后,就向第二个写入,然后依次类推,所有日志文件被写满后,又回到第一个,用新的事务的数据进行重写。

3.控制文件 (Control Files)

用以记录与描述数据库的外部结构,它包括

1) oracle数据库名称与建立时间

2) 数据文件与重置日志文件名称及所在位置

3) 日志文件记录序列码( log sequence Nmuber)

每当数据库被激活时,oracle会在实例激活后立刻读取控制文件内容,待所有数据库外部结构文件的在信息都收集完比,数据库才会启动,为避兔控制文件毁坏导致数据库系统停止,建议用户至少配置两个控制文件,并存放在不同的磁盘上。

三、Oracle 中的用户(这里是学习的重点)

--- sys 用户

超级用户,最有最高权限,具有sysdba 角色,数据字典的拥有者,超级权限拥有者(SYSDBA),它具有 createDatabase 权限(只有它有!)

初始密码是 change_on_install,此用户不能删除。

--- system 用户

管理操作员,权限非常大,具有sysopert 角色,但没有 createDatabase 权限

它默认的密码是 manager ,此用户不能被删除。

--- scott 用户

含有样例表 EMP 与 DEPT ,可以修改密码,用户可以被删除,在产品环境下,建议删除或锁定,它是一个普通用户。

默认密码是 tiget,默认是锁定的,可以将其解锁后使用。

解锁方式 :

使用 高权限用户登录, alter user scott account unlock;

与scott平级的还有:ADAMS/WOOD, JONES/STEEL, CLARK/CLOTH and BLAKE/PAPER.

--- outln用户

优化计划的存储大纲用户,密码是outln

建议创建后立即修改密码,此用户不能被删除。

--- HR/HR用户

(Human Resources), OE/OE (Order Entry), SH/SH (Sales History).

实验、测试用户,含有例表EMPLOYEES与DEPARTMENTS

可以修改密码,用户可以被删除,在产品环境建议删除或锁定。

--- DBSNMP用户

密码:DBSNMP

数据库中用于智能代理(Intelligent Agent)的用户,用来监控和管理数据库相关性能的用户,如果停止该用户,则无法提取相关的数据信息;可以改变密码,需要放置新密码到snmp_rw.ora文件,如果不需要Intelligent Agents,可以删除。

--- SYSMAN用户

是Oracle数据库中用于EM管理的用户,如果你不用该用户,也可以删除。(EM:enterprise manage 网页形式的 图形化 管理方式,类似SqlServer的企业管理器可以对oracle进行管理、优化等)

四、初始用户和表空间的创建

打开sqlplus

创建表空间,创建一个用户

1) 先在磁盘上创建目录   f:/my_oracle_data2

2) 创建临时表空间

SQL> create temporary tablespace user_temp   //临时表空间的名字(user_temp)是自己取的
tempfile 'f:\\my_oracle_data2\user_temp.dbf'
size 50m //初始大小
autoextend on //设置自增
next 50m maxsize 20480m //设置临时表空间 每次自增50兆 最大值是20480兆
extent management local; //表示表空间采用本地表空间管理 ,与之对应的是数据字典表空间管理(缺点多,9i以后废弃)

3) 创建表空间

create  tablespace user_data2
logging
datafile 'f:\\my_oracle_data2\user_data.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;

4) 创建用户,并指定了表空间

create user sa identified by "sa" default tablespace user_data2 temporary tablespace user_temp;
//创建用户的密码 指定用户是哪个表空间的 用户默认的临时表空

这里如果用这个用户登录 conn sa/sa 将出现如下错误

ORA-01045: user SA lacks CREATE SESSION privilege; logon denied 原因是没权限

授权  grant connect,resource to sa;

最后将会在指定的目录里找到我们创建的表空间:

附注: connect,resource 是角色名称,有了它们可以连接数据库,并在表空间中建表了

附:查询所有的表空间和数据文件对应情况

select * from DBA_DATA_FILES

输出如下:

SQL> conn system/aaaaaaaa as sysdba
已连接。
SQL> select * from DBA_DATA_FILES; FILE_NAME
--------------------------------------------------------------------------------
FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
F:\ORACLE\PRODUCT\10.2.\ORADATA\ORCL\USERS01.DBF
USERS AVAILABLE
YES 3.4360E+10
ONLINE FILE_NAME
--------------------------------------------------------------------------------
FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
F:\ORACLE\PRODUCT\10.2.\ORADATA\ORCL\SYSAUX01.DBF
SYSAUX AVAILABLE
YES 3.4360E+10
ONLINE FILE_NAME
--------------------------------------------------------------------------------
FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
F:\ORACLE\PRODUCT\10.2.\ORADATA\ORCL\UNDOTBS01.DBF
UNDOTBS1 AVAILABLE
YES 3.4360E+10
ONLINE FILE_NAME
--------------------------------------------------------------------------------
FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
F:\ORACLE\PRODUCT\10.2.\ORADATA\ORCL\SYSTEM01.DBF
SYSTEM AVAILABLE
YES 3.4360E+10
SYSTEM FILE_NAME
--------------------------------------------------------------------------------
FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
F:\ORACLE\PRODUCT\10.2.\ORADATA\ORCL\EXAMPLE01.DBF
EXAMPLE AVAILABLE
YES 3.4360E+10
ONLINE FILE_NAME
--------------------------------------------------------------------------------
FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
F:\MY_ORACLE_DATA\USER_DATA.DBF
USER_DATA AVAILABLE
YES 2.1475E+10
ONLINE FILE_NAME
--------------------------------------------------------------------------------
FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
ONLINE_
-------
F:\MY_ORACLE_DATA2\USER_DATA.DBF
USER_DATA2 AVAILABLE
YES 2.1475E+10
ONLINE 已选择7行。 SQL>

Java基础——Oracle(三)的更多相关文章

  1. Java基础:三步学会Java Socket编程

    Java基础:三步学会Java Socket编程 http://tech.163.com 2006-04-10 09:17:18 来源: java-cn 网友评论11 条 论坛        第一步 ...

  2. java 基础知识三 java变量

    java  基础知识 三 变量 1.作用域 {} 包围起来的代码 称之为代码块,在块中声明的变量只能在块中使用 2.常量 就是固定不变的量,一旦被定义,它的值就不能再被改变. 3.变量 变量必须在程序 ...

  3. java基础(三章)

    java基础(三章) 一.基本if结构 1.流程图 l  输入输出 l  判断和分支 l  流程线 1.1              简单的if条件判断 if(表达式){            //表 ...

  4. JAVA基础(三)—— 输入输出处理

    JAVA基础(三)-- 输入输出处理 1 输入解析 //Scanner获取输入 import java.util.Scanner; Scanner s = new Scanner(System.in) ...

  5. Java实习生常规技术面试题每日十题Java基础(三)

    目录 1.是否可以从一个static方法内部发出对非static方法的调用? 2.Integer与int的区别? 3.Overload和Override的区别.参数列表相同,返回值不同的方法,是否是重 ...

  6. java基础系列(三)---HashMap

    java基础系列(三)---HashMap java基础系列 java基础系列(一)---String.StringBuffer.StringBuilder java基础系列(二)---Integer ...

  7. Java 基础(三)| IO流之使用 File 类的正确姿势

    为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 File 类? java ...

  8. JAVA基础第三章-类与对象、抽象类、接口

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...

  9. 逻辑运算符,if、swtch语句(java基础知识三)

    1.逻辑运算符的基本用法 * A:逻辑运算符有哪些 &(逻辑与) |(逻辑或) !(逻辑非) ^(逻辑异或) &&(短路与) ||(短路或) * 注意事项: * a:逻辑运算符 ...

随机推荐

  1. Maven二

    1 回顾 1.1 Maven的好处 节省空间 对jar包做了统一管理 依赖管理 一键构建 可跨平台 应用在大型项目可提高开发效率 1.2 Maven安装部署配置 1.3 Maven的仓库 本地仓库 远 ...

  2. 学以致用十九-----shell脚本之引号

    shell脚本中引号也是有讲究的. 可以分为单引号‘ ’,双引号“ ”和 反引号 ` ` 具体区别来看一个例子 输出结果 可得出结论 1. 单引号括起来的字符都作为普通字符出现,如第4,7,10,13 ...

  3. hdmi中深度色彩像素打包

    4个色彩像素包模式:24- 30- 36- 48- 不同模式下tmds时钟与与像素的比是位宽与24的比值 . 24 bit mode: TMDS clock = 1.0 x pixel clock ( ...

  4. 系统性能--CPU

    对于cpu,目前比较关心的是cpu的利用率还有cpu的load,或者还有cpu运行队列. cpu利用率 cpu利用率分为sys,us.分别为操作系统和用户进程所占用的cpu利用率.sys的占用,一般是 ...

  5. hdu 4911 Inversion and poj2299 [树状数组+离散化]

    题目 题意:  给你一串数字,然后给你最多进行k次交换(只能交换相邻的)问交换后的最小逆序对个数是多少. 给你一个序列,每次只能交换相邻的位置,把他交换成一个递增序列所需要的最少步数 等于 整个序列的 ...

  6. Vuejs——(8)Vuejs组件的定义

    版权声明:出处http://blog.csdn.net/qq20004604   目录(?)[+]   本篇资料来于官方文档: http://cn.vuejs.org/guide/components ...

  7. BASH 正则表达式和文本处理工具

    本节内容 1.  什么是正则 2.  grep 3.  sed 4.  awk 5.  其他补充 一  什么是正则 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方 ...

  8. 关于SQL\SQL Server的三值逻辑

    在SQL刚入门的时候,我们筛选为某列值为NULL的行,一般会采用如下的方式: SELECT * FROM Table AS T WHERE T.Col=NULL 而实际上此种写法无法得到想要的结果.此 ...

  9. 9:集合collection

    第一 集合框架的概述 集合类的由来:  对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储.   集合和数组的区别: 数组虽然可以存储对象,但是长度是固定的:集合长度 ...

  10. Testing - 软件测试知识梳理 - 自动化测试

    软件开发的过程是一个持续集成和改进的过程,而每一次的改进都可能引进新bug,因此当软件的一部,或者全部修改时,都需要对软件产品重新进行测试. 其目的是要验证修改后的产品是符合需求的,而当没有自动化测试 ...