Archive for November 2012
Postgres 9.2.1 – Ejemplo de la creación de una base de datos usando arrays, herencia, tipos compuestos, otros.
Posted November 6, 2012
on:En esta nueva entrada mostraremos la creación de una base de datos utilizando los elementos de Array, tipos compuestos, tipos enumerados particionamiento, herencia e indices.
La base de datos a implementar consiste en un pequeño sistema para un liceo que almacena la información de los estudiantes, profesores y las materias que cursan. La calificación de las materias se realiza de manera cualitativa [Excelente, Muy bien, Bien y mejorable]. Adicionalmente, se registra de que año pertenece la materia. En esta academia se dictan los cursos desde 7mo grado o primer año a 5to año del ciclo diversificado, ademas se exige que cada estudiante tenga un representante.
Primeramente debemos crear un nuevo usuario en nuestra base de datos [Especificado en este tutorial]. Nuestro usuario se denomina “admin” y nuestra base de datos se denomina “tuto2”.
Modelo Relacional
Características de la base de datos.
Array
PostgreSQL permite que los campos de una tabla, esta se define con longitud variable. Los arrays pueden ser unidimencionales (vectores) o multidimensionales (Matrices). En este tutorial usaremos un array unidimencional en la tabla “Materias” para representar con vectores en el campo de turno (Mañana, tarde, noche). Las matrices de cualquier integrada o definida por el usuario tipo base, tipo de enumeración o tipo de compuesto puede ser creado. Las matrices de dominios no están todavía soportados.
Insert a la tabla de materias.
Herencia.
La herencia se refiere a que existen dos posibles tablas que posean la misma información solo que infiere por ciertos datos una a la otra. El ejemplo mas practico es el siguiente: Todas las personas poseen un nombre, apellido, cédula, entre otros datos. Un estudiante forma parte de una persona, pero adicionalmente posee representante y año de ingreso a esta institución. Un profesor también es una persona, pero este posee también fecha de contratación y titulo obtenido. Para estos casos se usa la herencia entre la tabla personas con la tabla profesor o con la tabla estudiantes.
Insert a la tabla de profesores.
Los tipos Enumerados.
Los tipos enumerados son utilizadas en un campo de una base de datos para generar un listado de opciones que puede contener dicha variable, pero solo se tomará una de las opciones. Se podría comparar con los check constraints, pero este comando es bastante útil cuando el campo posee varias opciones para escoger y el check constraint sería una opción un tanto tediosa para programar.
Insert a la tabla de Estudiantes_materias.
Tipos de compuestos
Una de las columnas posee una estructura con diferentes tipos de datos, las personas que poseen conocimientos medios de programación lo puede asociar con las struct existentes en Lenguaje C o C++. Para una mejor asociación es como un grupo de variables dentro de uno de los atributos de la tabla. En este tutorial se empleará para especificar en la tabla estudiantes el representante con los datos nombre, teléfono correo electrónico y dirección Esta información fácilmente puede almacenase en una nueva tabla, pero queremos mostrar la utilización de este tipo.
Insert a la tabla de estudiantes.
Inserciones adicionales.
Claves primarias, claves foráneas y claves únicas.
Modificación de las claves primarias de las tablas personas y estudiantes_materias.
Se le agrega una columna a la tabla materias [Esta será convertida en la clave primaria y para la foránea usaremos una clave única UK]
Generación de las claves foráneas.