Está en la página 1de 6

Object 1

BASES DE DATOS

Bases de datos relacionales


Una base de datos relacional es básicamente un conjunto de tablas, similares a las tablas de una
hoja de cálculo, formadas por filas (registros) y columnas (campos).

Los registros representan cada uno de los objetos descritos en la tabla y los campos los atributos
(variables de cualquier tipo) de los objetos.

En el modelo relacional de base de datos, las tablas comparten algún campo entre ellas. Estos
campos compartidos van a servir para establecer relaciones entre las tablas que permitan
consultas complejas.

La idea básica de las bases de datos relacionales es la existencia de entidades (filas en una tabla)
caracterizadas por atributos (columnas en la tabla). Cada tabla almacena entidades del mismo tipo
y entre entidades de distinto tipo se establecen relaciones.

Las tablas comparten algún campo entre ellas, estos campos compartidos van a servir para
establecer relaciones entre las tablas.

Una de las principales características de la base de datos relacional es evitar la duplicidad de


registros y a su vez garantizar la integridad referencial, es decir, que si se elimina uno de los
registros, la integridad de los registros restantes no será afectada. Además, gracias a las claves se
puede acceder de forma sencilla a la información y recuperarla en cualquier momento.

Así mismo, no pueden existir dos tablas con el mismo nombre y la relación entre una tabla padre y
una tabla hija se lleva a cabo a través de claves primarias (son la clave principal de un registro
dentro de una tabla) y claves ajenas (se colocan en la tabla hija y contienen el mismo valor que la
clave primaria del registro padre).

Para poder almacenar, administrar, consultar y recuperar los datos guardado en la base de datos
relacional es necesario emplear un software específico, denominado sistema de gestión de bases
de datos relacionales (RDBMS).

Estructura
La base de datos está dividida en dos secciones: el esquema y los datos. A través del esquema se
define la estructura de la base de datos relacional, que almacena los siguientes datos:

•El nombre de cada tabla (o relación): es el conjunto de tuplas que comparten los mismos
atributos, es decir, un conjunto de filas y columnas.

•El nombre de cada columna (atributo o campo): es un elemento etiquetado de una tupla
(como por ejemplo, el número de la seguridad social de un empleado).

•El tipo de dato de cada columna.


•La tabla a la que pertenece cada columna.

•La fila (tupla o registro): es el conjunto de datos que representa un objeto simple.

Esta sería la estructura básica de una tabla de una base de datos relacional:

Así, una tabla con los datos de los empleados de una empresa podría verse así:

A cada empleado se le asigna un ID (o registro), que a su vez contiene información sobre cada
empleado individual.
Elementos de una base de datos relacional

Los datos se organizan en relaciones compuestas por tuplas de atributos. Si convertimos esta


definición a tablas tenemos que los datos se organizan en tablas compuestas por filas (registros)
y columnas (campos).

A cada tabla se le asigna un nombre único.

Una tabla tiene 0 o más filas, y cada fila contiene la información de un determinado ‘sujeto’ de la
relación.

Las filas en un principio están desordenadas.

La lista de los atributos dispuestos en un orden específico de izquierda a derecha y que forman la
definición de una tabla se denomina esquema de la tabla, mientras que los valores concretos de
los datos que están almacenados en la tabla se llaman ocurrencias.

Por ejemplo, tenemos estas dos tablas:

 
El esquema de la tabla Piezas está compuesto por las columnas
(Codigo, Denominación, Precio, Fabricante, Codigo_según_fab).

Codigo es el código de la pieza, Denominacion el nombre de la pieza, Fabricante el código del


fabricante que nos suministra la pieza y Código_según_fab el código que utiliza ese fabricante para
identificar la pieza en su sistema de gestión.
Una ocurrencia de fila de la tabla Piezas sería:1, Taburete 3 patas, 25, Fab1, T123-34.

Todos los valores de una columna determinada tienen el mismo tipo de datos, y éstos están
extraídos de un conjunto de valores legales llamado dominio de la columna. Muchas veces el
dominio se corresponderá con un tipo de datos estándar del sistema.
Por ejemplo en la tabla Piezas la columna Codigo está definida sobre el dominio de los enteros.

A parte de los valores del dominio, la columna puede contener un valor especial, el valor nulo. El
valor nulo (NULL) es importante porque representa la ausencia de valor en el campo y no es lo
mismo que el valor cero “0” o la cadena vacía o espacios en blanco. De hecho es un valor tan
especial que no funciona como los demás valores, por ejemplo no podemos comparar (con el
operador de comparación =) un campo con el valor nulo, tenemos que utilizar un operador
especial (IS NULL). Incluso se han tenido que redefinir los operadores lógicos para tener en cuenta
el valor nulo.
Ej. En la tabla Fabricantes el campo dirección de la primera fila contiene el valor nulo (null) esto
significa que este fabricante no tiene dirección (al menos conocida).
En una tabla cada columna tiene un único nombre y éste no se puede utilizar para nombrar otra
columna de la misma tabla pero sí de otra tabla.

Por ejemplo en la tabla Piezas no se pueden definir dos columnas llamadas Codigo, por eso el
segundo código lo hemos llamado Codigo_segun_fab. Pero en la tabla Fabricantes la
columna IdFab se podía haber llamado Codigo sin problema.
En una tabla no se admiten dos filas con los valores coincidentes en todos sus campos.
Esta regla nos dice que por ejemplo en la tabla Fabricantes no pueden haber dos filas con los
valores Fab1, Muebles la Madera, null.
Realmente sería información redundante, por eso la existencia de esta regla.
Toda tabla debe tener una clave principal (clave primaria).
Una clave primaria es cualquier columna (o combinación de columnas) que permite identificar de
forma unívoca cada una de las filas de la tabla. Para que pueda cumplir su cometido, la clave
primaria no puede contener valores nulos ni valores duplicados (no podrá haber dos filas con el
mismo valor en este campo). Hay SGBD que incluyen el concepto de clave primaria pero no la
hacen obligatoria, por lo que en estos sistemas se pueden definir tablas sin clave primaria.

En una tabla pueden existir más de una columna que permita identificar las filas de la tabla, si
queremos utilizar tales columnas como identificadores las definiremos como
claves secundarias (alternativas).
Una clave secundaria tiene las mismas restricciones que una clave primaria, pero como no
podemos definir dos claves primarias, definimos la que se vaya a utilizar más frecuentemente
como clave primaria y la otra (u otras) como secundarias.

Por ejemplo en la tabla Piezas la clave primaria es el campo Codigo ya que no hay ni puede haber
dos piezas con el mismo código. Este campo realmente sirve para identificar las filas de la tabla,
sabiendo un valor de código (por ejemplo el 2) sabremos que nos referimos a la fila de la mesa
ovalada. 

En esta misma tabla tenemos una posible clave alternativa, la formada por los
campos Fabricante y Codigo_segun_fab ya que en la tabla Piezas es imposible tener dos filas con la
misma combinación de valores en estos campos (el código_segun_fab es el código que utiliza el
fabricante para identificar sus piezas).
Otro concepto muy importante, fundamental en las bases de datos relacionales, es la clave
ajena (externa o foránea).

Una clave ajena es un campo (o combinación de campos) que contiene la referencia a una fila de
otra tabla, también puede referirse a la misma tabla. En otras palabras, es un campo que señala a
un registro de otra tabla, contiene un valor que identifica un registro de la otra tabla. Son los
campos que se utilizan para relacionar las tablas entre sí.

Una tabla puede tener 0, una o varias claves ajenas (externas, foráneas).


Una clave ajena puede contener valores duplicados y valores nulos.

Siguiendo el ejemplo anterior, en la tabla Piezas tenemos la clave ajena Fabricante ya que en este


campo nos guardamos un valor que señala a una fila de la tabla Fabricantes, en este campo
tenemos el código del fabricante que nos suministra la pieza y este código nos lleva al fabricante
correspondiente en la tabla Fabricantes.

Por ejemplo la pieza 3 es servida por el fabricante Fab2, valor que señala al fabricante Maderas
Asociados.
El SGBD deberá velar por la integridad de los datos, para ello incluye varias reglas de integridad
que se comprobarán de forma automática sin necesidad de la intervención externa de los usuarios
o de los programas de aplicación.

Existen distintos tipos de reglas de integridad:


La integridad de entidades (integridad de claves): “Toda tabla debe tener una clave primaria que
permite identificar unívocamente los registros que contiene, por lo tanto no puede contener el
valor nulo ni valores duplicados”.

En el ejemplo anterior si intentamos insertar una nueva pieza con el código 2, el sistema no nos
dejará porque ya hay una pieza con este mismo código en la tabla.
La integridad referencial: “En una clave ajena no puede haber un valor no nulo que no exista en la
tabla de referencia”. Para que no existan errores de integridad referencial en la base de datos, el
sistema comprueba automáticamente que los valores introducidos en las claves ajenas existan en
el campo de referencia en la otra tabla, si no existe, no nos dejará insertar el registro.
Volviendo al ejemplo anterior, si intentamos insertar una pieza con un código de fabricante que no
existe en la tabla de fabricantes, el sistema no nos dejará.
A nivel de control sobre los datos, el SGBD debe de proporcionar herramientas para poder definir
restricciones de dominio que se comprobarán de forma automática (se comprueba que el valor
introducido en una columna pertenece al dominio de la columna, al tipo de datos), y reglas de
negocio, que son reglas específicas sobre los datos, en este tipo de reglas entran las reglas de
validación y reglas definidas a nivel superior que veremos más adelante.
Una regla de validación sería por ejemplo que el precio no pueda ser inferior a 10 euros, y una
regla de negocio, que no pueda haber más de 20 fabricantes.
Un SGBD relacional sigue la arquitectura de tres niveles en la que tenemos en el nivel externo
las vistas, en nivel conceptual el esquema conceptual con la definición de todas las tablas,
columnas que las componen y relaciones entre ellas, en el nivel interno tenemos la definición física
de la base de datos.

Las relaciones que se establecen entre los diferentes elementos de dos tablas en una base de
datos relacional pueden ser de tres tipos distintos:
•Relaciones uno a uno, se establecen entre una entidad de una tabla y otra entidad de otra
tabla.

•Relaciones
uno a varios, se establecen entre varias entidades de una tabla y una entidad de otra tabla.

•Relaciones varios a varios, se establecen entre varias entidades de cada una de las tablas.

También podría gustarte