oracle数据库对象

oracle数据库对象:
	tablespace and datafile(表空间和数据文件)
	table(表)
	constraints(约束)
	index(索引)
	view(视图)
	sequence(序列)
	synonyms(同义词,又称别名)
	procedure(存储过程)
	function(函数)
	trigger(触发器)
	package(包)
	db-link(数据库链路)

1、表空间:是一个或多个数据文件的逻辑集合
    表空间逻辑存储对象:永久段-->如表与索引
                        临时段-->如临时表数据与排序段
                        回滚段-->用于事物回滚或闪回内存的撤销数据
    表空间分类:系统表空间(system、sysaux),非系统表空间
    一个表空间至少包含一个数据文件,一个数据文件只能属于一个表空间。

    不可或缺的几个表空间:
    SYSTEM --->字典表空间,不能被损坏
    UNDO    --->dml,dql把数据快照到此,数据提交即消失(用于恢复)
    SYSAUX  --->10g 高并发系统繁忙时,会造成system争用,将工具放到SYSAUX,减轻system的压力,SYSAUX不影响系统(影响性能)
    TEMP    --->临时数据相关的内容
    USERS   --->10g  用户数据从system拨离出来

    Oracle的存储结构
    1.Schema: 用户--->创建相关对象、表、视图、序列、函数、存储过程、包等
    2.逻辑结构:database数据库--->tablespace表空间---> segment段--->extent区间----> block块
            逻辑结构是Oracle内部管理数据库中对象的方式
    3.物理结构:OS  block --->datafile 物理结构通常是一系列数据文件
2、表:
    逻辑上存储了数据库的所有数据
    一个表的数据可以存储在一个或多个表空间上
    
    表类型:
    1堆组织表(heap organized table):这些就是“普通”的标准数据库表。数据以堆的方式管理。
    2索引组织表(index organized table):这些表按索引结构存储。
    3索引聚簇表(index clustered table):聚簇(cluster)是指一个或多个表组成的组,这些表物理地存储在相同的数据库块上,有相同聚簇键值的所有行会相邻地物理存储。
    4散列聚簇表(hash clustered table):这些表类似于聚簇表,但是不使用B*树索引聚簇键来定位数据,散列聚簇将键散列到聚簇上,从而找到数据应该在哪个数据库块上。
    5有序散列聚簇表(sorted hash clustered table):这种表类型是Oracle 10g中新增的,它结合了散列聚簇表的某些方面,同时兼有IOT的一些方面。
    6嵌套表(nested table):嵌套表是Oracle对象关系扩展的一部分。它们实际上就是系统生成和维护的父/子关系中的子表。
            嵌套表与子表的主要区别是:嵌套表不像子表(如EMP)那样是“独立”表。
    7临时表(temporary table):这些表存储的是事务期间或会话期间的“草稿”数据。
3、约束:
   not null
   unique
   primary key
   foreign key
   check
4、索引
   索引类似于一本书的目录,我们通过查询目录就可以找到指定数据所在的具体位置,
   而不需要翻越整本书。索引在检索数据方面具有高效性,尤其是从存储了大量数据的表中查询数据时。
   索引是一种树状结构,可以分为两类:
      1.从逻辑设计
          单列索引,组合索引,唯一性索引,非唯一性索引,基于函数的索引...
      2.从物理实现
          分区索引,非分区索引,b树索引,正向索引,反向索引,位图索引,位图联接索引...
      oracle提供了这么多索引,常用到的如下:
         ·B*树索引
             ·索引组织表
             ·B*树聚簇索引
             ·降序索引
             ·反向键索引
         ·位图索引
         ·位图联结索引
         ·基于函数的索引
         ·应用域索引
5、视图
   视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表。
   视图是存储在数据字典里的一条select语句。 通过创建视图可以提取数据的逻辑上的集合或组合。
   视图的优点:
       1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。
       2.用户通过简单的查询可以从复杂查询中得到结果。
       3.维护数据的独立性,试图可从多个表检索数据。
       4.对于相同的数据可产生不同的视图。
   视图分为简单视图和复杂视图:
      简单视图只从单表里获取数据
      复杂视图从多表
      简单视图不包含函数和数据组
      复杂视图包含
      简单视图可以实现DML操作
      复杂视图不可以(但是在用了INSTEAD OF 触发器后就可以).
6、序列
   Sequence是数据库系统按照一定规则自动增加的数字序列。这个序列一般作为代理主键(因为不会重复),没有其他任何意义。
   Sequence是数据库系统的特性,有的数据库有Sequence,有的没有。比如Oracle、DB2、PostgreSQL数据库有 Sequence,MySQL、SQL Server、Sybase等数据库没有Sequence。
7、同义词
   同义词:同义词是一个对象的替代名称
   作用:利用同义词可以很方便地操纵不同用户模式下的对象。
   通过select user from dual查看当前使用的用户。
   访问其它用户模式下的表:
   select * from scott.dept; 表示查看scott用户模式下的dept表数据。
   同义词分为private 和 public,private仅创建的用户可以使用。public则所有用户都可以使用。
   语法:
   CREATE SYNONYN DEPT FOR SCOTT.DEPT;
   表示将scoot用户下的dept表,创建为当前用户的同义词。默认为private
   通过drop synonym dept删除。
   create public synonym dept for scott.dept;表示创建一个公共的,在其它用户模式下也同样的进行查询。
8、过程、函数、包
   PL/SQL程序块可背独立编译并存储在数据库中,任何与数据库相连接的应用程序都可以访问这些存储的PL/SQL程序块。ORACLE提供了四种类型的可存储的程序:
   过程和函数
 过程和函数都以编译后的形式存放在数据库中,函数可以没有参数也可以有多个参数并有一个返回值。过程有零个或多个参数,没有返回值。函数和过程都可以通过参数列表接收或返回零个或多个值

,函数和过程的主要区别不在于返回值,而在于他们的调用方式。过程是作为一个独立执行语句调用的:
  pay_involume(invoice_nbr,30,due_date);
 函数以合法的表达式的方式调用:
  order_volumn:=open_orders(SYSDATE,30);
  包是一种将过程、函数和数据结构捆绑在一起的容器;包由两个部分组成:外部可视包规范,包括函数头,过程头,和外部可视数据结构;另一部分是包主体(package body),包主体包含了所有被捆绑

的过程和函数的声明、执行、异常处理部分。
 触发器是一种自动执行响应数据库变化的程序。可以设置为在触发器事件之前或之后触发或执行。能够触发触发器事件的事件包括下面几种:
 DML事件
 DDL事件
 数据库事件


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值