Esquemas y tablespaces oracle

En la empresa utilizamos OAS10G y ORACLE 11G. Mi pregunta es la siguiente:
Cuando se comenzó con la implementación, se crea un esquema que almacenería todas las tablas del mismo. Adicionalmente este mismo esquema almacena las tablas genéricas que se utilizarían para todos los programas futuros. Las tablas se diferencian en el mismo esquema por el final del nombre en ellas, por ejemplo:
Esquema: sisemp
Tablas generales: USUARIOS_PRIN, UBIGEO_PRIN
Tablas de un programa VENTAS : ARTICULOS_VEN, UNIDAD_MEDIDA_VEN
Posteriormente, otra persona se hace responsable de la administración y desarrollo. Esta persona, prefiere trabajar los programas posteriores con un Esquema diferente cada uno. Es decir que las tablas únicas para cada programa tienen su propio esquema, y dentro del programa, se llama al otro esquema para las tablas generarles. Es así que ahora se tiene más esquemas, cada uno con sus tablas, y un esquema principal que aún almacena tablas de otros programas y tablas generales.
Mi pregunta es, ¿qué es lo más óptimo? Cuál sería la mejor práctica para este caso, puesto que ahora hemos decidido estandarizar y manejar todo como debería ser y no como a cada uno nos parezca.
Me enredo un poco con lo que es tablespace y el esquema... Sé que el esquema es aquel que se crea con el usuario, y dentro de éste se almacenan las tablas... El tablespace se me queda fuera de la figura. No sé si podrías poner algún ejemplo.
Respuesta
2
El Tablespace es una unidad lógica de almacenamiento dentro de la BBDD, estos están compuestos por datafiles que son los ficheros físicos donde realmente está la información.
Un usuario puede tener asignado un tablespace por defecto, pero el almacenamiento se asigna a los objetos, si no se le asigna al objeto ninguno toma el que el usuario tiene por defecto. Un usuario pude tener objetos en varios tablespaces, pero se pueden establecer cuotas y limites al uso de los tablespaces por parte de los usuarios.
Lo optimo sería utilizar esquemas diferentes para tablas de programas diferentes o tablas de deferente naturaleza, así se pudría por ejemplo establecer más fácilmente seguridad de acceso dependiendo del usuario y programa y no que todos los usuarios de diferentes aplicaciones puedan acceder a todo. También gestionar el almacenamiento (Tablespaces), por esquema etc.
En definitiva una gestión más ordenada de la BBDD.
Hola nuevamente, gracias por tu pronta respuesta. Me gustaría confirmar lo que entendí.
Nosotros tenemos un sólo tablespace para todas las aplicaciones. Lo que me recomiendas, ¿es qué cada aplicación tenga su tablespace?
Ahora si es que las tablas que tenemos, que se utilizan en todos los programas se encuentran en un tablespace, ¿se puede llamar fácilmente tablas entre tablespaces? O habría que hacer alguna modificación en este tema, ¿tanto dentro de la programación cómo dentro de la BD?
Si deseo realizar este cambio, qué tan complicado es, y qué debería tomar en cuenta, tanto dentro de los programas y dentro de la BD.
Gracias por tu ayuda.
Saludos,
Maripili :)
Abría que migrar los objetos a los diferentes tablespaces y una vez hecho esto las aplicaciones no tendrían que funcionar sin modificación alguna. La aplicación accede al objeto y le da igual en que tablespace esté.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas