Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

duda con esquema

Estas en el tema de duda con esquema en el foro de Oracle en Foros del Web. Hola. tengo la siguiente duda a ver si alguien me la puede aclarar Un esquema, es una coleccion de objetos que estan (por decirlo de ...
  #1 (permalink)  
Antiguo 07/05/2012, 17:17
Avatar de Porlachucha  
Fecha de Ingreso: noviembre-2008
Ubicación: Santiago
Mensajes: 172
Antigüedad: 15 años, 5 meses
Puntos: 5
duda con esquema

Hola. tengo la siguiente duda a ver si alguien me la puede aclarar

Un esquema, es una coleccion de objetos que estan (por decirlo de alguna forma) granteados a un usuario creado en la BD
dichos objetos, pueden ser tablas, indices, constraints, etc. loc cuales a su ves pueden estar en diferentes tablespaces.
la pregunta es: un esquema, puede tener objetos de diferentes tablespaces? por ejemplo. existen 2 tablespaces, uno llamado HR, y otro llamado BANCO. cada tablespace tiene sus propuias tablas. entonces.. un esquema, podria tener tablas de los diferentes tablespaces mencionados?

espero se entienda mi pregunta
saludos y gracias
__________________
Nada mas patetico que "detestar" a Intel o Microsoft o Windows o Apple ... apuesto que eres el tipico teton espinilluo y pajero que usa Linux para sentirse capo ...
  #2 (permalink)  
Antiguo 08/05/2012, 12:01
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: duda con esquema

No, un esquema es un usuario de BBDD y los objetos que pertenecen a ese usuario y en los tablespaces solo pueden residir tablas.

Un tablespace es el espacio "logico" donde se meten las tablas. Y los tablespaces residen en un espacio "fisico" en el filesystem que son los datafiles y si mal no recuerdo, un datafile solo puede contener un tablespace.

A partir de ahí la respuesta a tu pregunta es que un tablespace puede tener tablas de N usuarios ( o en este caso esquemas ) siempre y cuando el USUARIO en cuestión tenga permisos para escribir en esos tablespaces.

No se si te he aclarado algo o te he liado mas.
  #3 (permalink)  
Antiguo 11/05/2012, 16:47
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 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
  #4 (permalink)  
Antiguo 13/05/2012, 11:51
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: duda con esquema

Bien explicado, Matanga, me olvidé de los índices, je je je.


Última edición por jc3000; 13/05/2012 a las 11:58
  #5 (permalink)  
Antiguo 16/05/2012, 10:46
Avatar de Porlachucha  
Fecha de Ingreso: noviembre-2008
Ubicación: Santiago
Mensajes: 172
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: duda con esquema

me quedo super claro.
muchas gracias por la explicacion
saludos
plch
__________________
Nada mas patetico que "detestar" a Intel o Microsoft o Windows o Apple ... apuesto que eres el tipico teton espinilluo y pajero que usa Linux para sentirse capo ...
  #6 (permalink)  
Antiguo 28/05/2012, 11:58
 
Fecha de Ingreso: mayo-2012
Mensajes: 1
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: duda con esquema

Hola, perdon que haga una pregunta aqui. Soy nuevo y todavia no se como hacer una pregunta correctamente. La hago aqui porque tiene que ver con el tema. El tema es asi:

Tengo 3 esquemas E1, E2, E3. En E1 y E2 tengo tablas con el mismo nombre (Ej: E1.casas y E2.casas).
Genere tambien 2 roles R1 y R2, R1 tiene permisos sobre las tablas de E1 y R2 sobre las tablas de E2. Y a E1 le hice grant de ambos roles.
Puedo conectarme a E1 y hacer un select * from casas (sin especificar si es E1.casas o E2.casas) y que vea una tabla u otra dependiendo del set role?
Mil gracias !!!
Saludos.-
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:04.