Una base de datos es un conjunto de información interrelacionada que representa un sistema de información particular, y está compuesta por relaciones, o más comúnmente tablas, que almacenan los datos referentes a un objeto o a una interrelación entre objetos.
Así, si queremos mantener mediante un gestor de bases de datos información docente, lo que haremos (en este caso en particular) será crear una base de datos que englobe tres tablas: PROFESORES, ASIGNATURAS e IMPARTE. Cada tabla tendrá sus columnas, que representan los correspondientes atributos de la entidad o claves ajenas que permiten relacionar varias tablas entre sí. La BD que gestione esta información se llamará Ejemplo, y las tablas contenidas en ella se presentan en el siguiente cuadro.
PROFESORES (
dni : varchar(10),
nombre : varchar(40),
categoria : char(4),
ingreso : date )
Clave primaria: dni
ASIGNATURAS (
codigo : char(5),
descripcion : varchar(35),
creditos : number(3,1),
creditosp : number(3,1) )
Clave primaria: codigo
IMPARTE (
dni : varchar(10),
asignatura :
char(5) )
Clave primaria: (dni, asignatura)
Clave ajena: dni → PROFESORES
Clave ajena: asignatura → ASIGNATURAS
PROFESORES
IMPARTE
ASIGNATURAS
MySQL utiliza el concepto de base de datos como contenedores independientes, de tal forma que para acceder a una tabla en particular se pueden usar dos alternativas:
Acompañar al nombre de tabla con la base de datos a la que pertenece: select * from ejemplo.profesores
Seleccionar la base de datos: use ejemplo
La opción 2 permite realizar las consultas sin especificar la base de datos en la que están definidas las tablas.
En general, la utilización de varias tablas necesita que ellas se puedan relacionar por una columna común, en este caso dni de profesor, para la relación entre imparte y profesor, y código de asignatura, para la relación entre asignatura e imparte. Nótese, sin embargo, que en la tabla imparte el código de asignatura se llama asignatura y en la tabla asignaturas código. En realidad, tales atributos son “comunes” porque el dominio es el mismo para ambos y se pueden comparar. Los dominios vienen definidos por los tipos de datos que ofrece el SGBD.
Los tipos de datos que acompañan en el esquema de BD a cada columna en cada tabla determinan los valores que pueden tomar éstas. Son de capital importancia a la hora de relacionar tablas en una sentencia select, puesto que sólo podremos comparar columnas con idéntico tipo de datos, o a la hora de manipular datos, dado que, como veremos en próximas sesiones, cada tipo de datos presenta unos requisitos específicos para su manipulación.
Algunos de los tipos de datos que nos podemos encontrar en MySQL son:
VARCHAR(x): cadena de caracteres de longitud variable con un máximo de x (1<=x<=4000). Los valores varchar deben manejarse encerrados entre comillas simples.
CHAR(x): cadena de caracteres de longitud fija de longitud n (1<=x<=2000). Los valores char deben manejarse encerrados entre comillas simples.
INT, INTEGER: números enteros
DECIMAL(p,s): números con precisión p y escala s (1<=p<=38) (-84<=s<=127)
DATE: datos de tipo fecha, con la forma yyyy-mm-dd (año, mes y día). Los valores date deben manejarse encerrados entre comillas simples.