Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/05/2012, 16:47
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: duda con esquema

La respuesta de jc3000 ya es correcta, solo comento lo mismo con diferentes palabras.

1. Diferencia entre objeto y segmento, un objeto es cualquier cosa que se pueda crear en la base de datos y un segmento es un objeto que ocupa espacio en la base de datos, es decir, una vista, procedimiento o package son objetos pero no segmentos, y una tabla o índice son objetos y también segmentos.

2. Relación usuario / esquema, el usuario es el propietario de los objetos y el esquema es una agrupación lógica de dichos objetos, esto parece redundante en Oracle donde cada usuario solo puede tener un esquema, pero en términos teóricos (y también prácticos como SQL Server o DB2) un usuario puede tener varios esquemas asociados, lo que es útil, por ejemplo, en un sistema ERP para agrupar las tablas por módulos.

Código:
create database user ERP;
create schema COMPRAS for user ERP;
create schema CONTABILIDAD for user ERP;

create table compras.facturas;
create table contabilidad.cuentas;

select * from compras.facturas;
select * from contabilidad.cuentas;
En este caso, el propietario es el usuario ERP y puede realizar cualquier operación DDL o DML sobre las tablas, y los esquemas COMPRAS y CONTABILIDAD son una forma de agrupar las tablas para dar mejor legibilidad y orden.

3. Relación esquema / tablespace, la relación es ninguna, los segmentos (tablas, índices, etc) de un mismo esquema pueden estar almacenados en diferentes tablespaces y los segmentos almacenados en un mismo tablespace pueden pertenecer a diferentes esquemas, la única consideración son los permisos que tenga el usuario para utilizar un tablespace.

Saludos