Es la estructura más utilizada actualmente. En ella los datos están estructurados en tablas:
- Cada fila es un registro o entidad.Esta estructura es similar al concepto matemático de relación, por ello ha tenido tanto auge, ya que todas las teorías y reglas matemáticas sobre relaciones son aplicables, lo que hace que sea fácil de formalizar.
- Cada columna es un campo de ese registro.
A la tabla se le llama relación, y a cada fila tupla; a cada columna de una tupla se le llama atributo, es en esto en lo que se diferencia del modelo matemático.
- Los nombres de relaciones siempre en minúsculas.
- Cada tupla se puede representar por una variable de tupla.
- Cada atributo se representa por su nombre.
- Cardinalidad = Nº de tuplas de una relación.
- Grado = Nº de atributos de la relación.
- Cada atributo puede tomar valores dentro de su dominio de atributo (Conjunto de valores posibles)
- El esquema de una relación se representa en letras mayúsculas: r(R) donde r sería el nombre de la relación y R el nombre del esquema.
- Formato de un esquema: Nom_esquema=(lista de atributos con sus dominios). Ejemplo:
- Esquema = Definición global y general de una relación.
- Instancia de una relación = Información que contiene una relación en un momento determinado.
Alumnos = (dni: dom_dni; nombre: dom_nombre; edad: dom_edad).
Obsérvese que la primera letra de Alumnos es mayúscula (es un esquema).
Claves en el Modelo Relacional
Debe existir un atributo o conjunto de atributos que identifique de un modo único a una tupla; a ese atributo se le llamaría superclave (puede ser el conjunto formado por todos los atributos), al menos hay uno siempre.
Para una r(M) diremos que un subconjunto de atributos (K) del esquema será clave de la relación si para toda tupla t1 ≠ t2 se cumple que t1[k] ≠ t2[k] (es decir, dadas dos tuplas diferentes el valor de la clave también lo es).
Dentro de las superclaves, llamaremos claves candidatas a las superclaves más pequeñas (aquellas superclaves que carecen de subconjuntos propios que sean también superclaves).De entre todas las que haya, es el usuario el que decide cual es la primaria, las demás se llaman alternativas.
Reglas de Integridad:
- Integridad de Identidad:La clave primaria de una relación no puede contener valores nulos.
- Integridad de Referencia:Cuando en una relación hay un atributo que hace referencia a una clave primaria de otra relación, el atributo debe tener un valor coincidente con alguno de la clave primaria o como mucho ser nulo (es decir, no puede tener un valor que no exista entre los valores de la clave primaria en la primera relación).
Propiedades
Miden su grado de bondad/aproximación al modelo real matemático por una serie de "formas normales", según se sube en las formas se dice que la relación está mejor diseñada. Al menos debe estar en la primera forma normal (1NF) y para ello debe cumplir:- No hay duplicación de tuplas.
- No hay orden entre las tuplas.
- No hay orden entre los atributos (se accede a través de su nombre).
- No existen atributos que no sean atómicos (una casilla un dato). Es decir, no existe la posibilidad de tener una tabla como la siguiente:
Alumno | Asignatura |
José | Cálculo |
Algebra | |
Física |
Alumno | Asignatura |
José | Cálculo |
José | Algebra |
José | Física |
Ejemplo: Alumno = (nombre: dom_nombre; nº: entero)
Asignatura = (nº: entero; asignatura:dom_asignatura).
En este caso el campo común entre las relaciones es el campo nº: Asignatura = (nº: entero; asignatura:dom_asignatura).
Nombre | Núm. |
José | 15 |
Antonio | 17 |
Pedro | 18 |
Num. | Asignatura |
15 | Cálculo |
15 | Algebra |
15 | Física |
Los podemos dividir en dos tipos: Lenguajes Formales y Lenguajes Comerciales. Los lenguajes formales están basados en el álgebra relacional o en elcálculo relacional. Solamente se han descrito para consulta a Bases de Datos (existen lenguajes comerciales que además de consulta permiten otras operaciones).
El álgebra relacional tiene procedimientos (procedimental), mientras que los lenguajes basados en el cálculo relacional son aprocedimentales. Dentro del cálculo relacional se distingue entre cálculo relacional orientado a tuplas y cálculo relacional orientado a dominios.
Los lenguajes comerciales, en su mayoría usan enfoques tanto procedimentales como aprocedimentales, o lo que es lo mismo, no son lenguajes puros como los formales. De esta manera hacen su sintaxis más amigable al usuario.
El álgebra relacional tiene procedimientos (procedimental), mientras que los lenguajes basados en el cálculo relacional son aprocedimentales. Dentro del cálculo relacional se distingue entre cálculo relacional orientado a tuplas y cálculo relacional orientado a dominios.
Los lenguajes comerciales, en su mayoría usan enfoques tanto procedimentales como aprocedimentales, o lo que es lo mismo, no son lenguajes puros como los formales. De esta manera hacen su sintaxis más amigable al usuario.