Cuando se tiene un manejador de base de datos, básicamente se tiene un repositorio de datos; de manera simple podemos decir que estos datos se almacenan en objetos lógicos (tablas) que a su vez se almacenan en objetos físicos (discos). Estos datos que se almacenan en las tablas, se distribuyen entre filas y columnas; y éstas poseen características específicas tales como: tipo de dato y dimensión de los datos que se pueden guardar.
Leer también: Validar Google Material Design con Dspec
En PostgreSQL se almacenan los datos en grupos de objetos lógicos, los cuales a groso modo se pueden expresar de la siguiente manera:
Como se observa, existen capas de grupos de objetos, estas capas proporcionan niveles de aislamiento que propician un nivel de granularidad muy detallado, como por ejemplo:
– Generar nombre de tablas repetidas en diferentes esquemas.
– Otorgar acceso a solo una tabla o a todas las tablas de un esquema, o hasta a todas las tablas de todos los esquemas de toda la base de datos.
– Crear esquemas para seccionar el negocio y concurrencia a la data.
– Se pueden definir objetos físicos (filesystem) diferentes para cada tablespace y para cada tabla.
– Es posible tener herencia entre objetos
Resumiendo, tenemos entonces que el contenedor principal es el cluster de PostgreSQL, en este contenedor se pueden tener muchas bases de datos (en teoría pueden ser 31.995 bases de datos por cluster; ya que cada base de datos es un directorio que reside dentro de un directorio base, y en EXT3 “https://es.wikipedia.org/wiki/Ext3” cada directorio puede tener hasta 31.995 sub-directorios). Ya dentro de la base, el siguiente contenedor son los esquemas, entre los cuales se puede navegar sin ningún modulo o paquete adicional; para consultar una tabla de un esquema específico se usa algo así: esquema.nombre_tabla; ahora bien, para consultar una tabla que está en otro esquema, en otra base de datos o hasta en otro cluster de base de datos, necesitamos un paquete adicional de nombre dblink “http://www.postgresql.org/docs/9.4/static/dblink.html” el cual permite de manera nativa el manejo interno de la comunicación entre estos objetos; en próximos artículos hablaremos en profundidad sobre dblink y su uso.
Donde el caos de la información es la ley, la adaptación es la supervivencia de cualquier sistema.
DesdeLaPlaza.com /Lennin Caro