Inicio‎ > ‎SQL‎ > ‎Lecciones SQL‎ > ‎

P00 Concepto de Base de Datos y Relación

Concepto de Base de Datos y Relación


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.


Base de Datos: Ejemplo

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



Extensiones de Ejemplo:

PROFESORES
dni nombre categoria ingreso
21111222 EVA GOMEZ TEU 1993-10-01
21222333 MANUEL PALOMAR TEU 1989-06-16
21333444 RAFAEL ROMERO ASO6 1992-06-16

ASIGNATURAS
codigo descripcion creditos creditosp
DGBD DISEÑO Y GESTION DE BASES DE DATOS 6.0 3.0
FBD FUNDAMENTOS DE LAS BASES DE DATOS 6.0 1.5
FP FUNDAMENTOS DE LA PROGRAMACION 9.0 4.5
HI HISTORIA DE LA INFORMATICA 4.5  null
PC PROGRAMACION CONCURRENTE 6.0 1.5

IMPARTE
dni asignatura
21111222 DGBD
21111222 FBD
21333444 PC

Elección de la BD de trabajo

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:

  1. Acompañar al nombre de tabla con la base de datos a la que pertenece: select * from ejemplo.profesores
  2. 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.



Tipos de datos

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)
  • CHAR(x): cadena de caracteres de longitud fija de longitud n (1<=x<=2000)
  • 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.