A pesar de que lo he estado leyendo aun no me queda claro el concepto schema, namespaces y tablespaces, lo que yo entiendo es: schema se crea cada que un usuario es creado es una caja grandota donde agrupa objetos propiedad del usuario creado tales como tablas vistas indices namespace ?? Tablespace donde se alojan todas las tablas, en si los datos físicos se alojan aquí ojala puedas darme una mejor explicación ya que aun no me queda muy claro
1 respuesta
Respuesta de jalvaradog
4
4
jalvaradog, Javier Alvarado Especialista en infraestructura, servidores...
Un Schema(Esquema) son el conjunto de objetos que le pertenecen a un usuario, por ejemplo, teniendo al usuario HR todos los objetos que este crea (tablas, indices, vistas, procedimientos almacenados, trigers) le pertenecen a el y unicamente a el, esto es le pertenecen al schema HR, cualquier otro usuario puede tener acceso a estos objetos siempre y cuando el usuario HR se los otorgue y podrá utilizarlos anteponiendo el nombre del schema ejemplo. select * from HR.employees Si no coloca el nombre del schema, ORACLE interpretara que esta buscando la tabla employees en el schema de este tercer usuario. Namespace (espacio de nombres) es la definicion del grupo de tipos de objetos (tablas, indices, vistas, paquetes, procedimientos almacenados, triggers) de tal manera que, existiendo la tabla employees bajo el schema HR, el usuario SCOTT puede crear una tabla llamada employees en la misma base de datos sin recibir ninguna advertencia o error, si el usuario HR creara una tabla nueva llamada employees el error diria, tabla o vista existe, si el usuario SCOTT crea una tabla employees no se genera ningun error ya que el namespace es SCOTT.employees, que no tiene nada que ver con el objeto HR.employees. Un Tablespace es a nivel Oracle el segundo nivel de almacenamiento, a primer nivel de almacenamiento de datos se encuentra las tablas(ejemplo employees), un tablespace se refiere a un nivel del tipo Oracle Operating system si así lo pudiéramos llamar, este a su vez esta constituido a nivel Sistema operativo como tal (ya sea Linux, Unix o windows) por uno o más datafiles, que son archivos visibles al usuario con extensión .DBF, un tablespace almacena, a nivel instancia de oracle, objetos pertenecientes al sistema en si mismo u objetos que un usuario genera, estos objetos pueden ser una vez más tablas, vistas, indices, procedimientos almacenados etc. Los objetos propios del sistema se almacenan en los tablespaces system y sysaux, existe un tablespace para guardar las transacciones que no han recibido un commit llamada UNDO, por default existe un tablespace llamada USERS donde por default cualquier usuario creado (a menos que se especifique lo contrario) generara sus objetos y por ultimo un tablespace llamado TEMP que su nombre lo indica todo...