Está en la página 1de 15

Bases de Datos Relacionales.

Conceptos y consideraciones para su uso.

Eduardo Mora

Departamento de Matemática Aplicada y Ciencias de la Computación

Universidad de Cantabria
Bases de Datos. Finalidad

Base de Datos:
Datos colección organizada de datos, relativa a un problema concreto,
que puede ser compartida por un conjunto de usuarios/aplicaciones.

ALMACENAR

CONTROLAR

CONSULTAR

INFORMACIÓN

ACTUALIZAR

Sistema Gestor de Bases de Datos:


Datos
DATOS programa o conjunto de programas
RELACIONES
que sirve para mantener bases de datos
RESTRICCIONES
y responder consultas sobre ellas.
Niveles de abstracción

Programa 1 Programa 2 Programa n

Vista A

Sistema
Nivel Lógico Gestor de
Bases de Datos
(SGBD)

Nivel Interno
Bases de Datos. Justificación

• Flexibilidad de adaptación a cada problema.


• Optimización en la gestión de la información.
• Independencia física y lógica de los datos.
• Control de la integridad de los datos.
• Garantía sobre la consistencia de la información.
• Facilidad de acceso concurrente.
• Protección ante fallos del sistema.
• Seguridad ante accesos restringidos.
Modelo Relacional I

Personal
NOMBRE PROFESION LOCALIDAD Los datos se conciben agrupados en forma de tablas
Pedro profesor Santander
Cada fila establece una relación entre un conjunto
Luis estudiante Santander
de valores
María estudiante Las Palmas
Ana estudiante Madrid
Operadores generan nuevas tablas

SELECT NOMBRE, LOCALIDAD FROM Personal


WHERE PROFESION = ”estudiante”

NOMBRE LOCALIDAD
Luis Santander
María Las Palmas
Ana Madrid
Modelo Relacional II

BANCOS
ENTIDAD NOMBRE
• Toda tabla tiene una columna o conjunto de columnas
0893 Santander
que permiten identificar cada una de sus filas; éstas
0059 Popular
componen la llamada clave principal de la tabla.
3428 Bilbao Vizcaya
5632 Banesto
• Los valores de la clave principal no se pueden repetir.

OFICINAS
ENTIDAD CODIGO_OFICINA POBLACION DIRECCION

• Unas tablas se refieren a otras 0893 001 Madrid Castellana, 73

mediante vínculos de tipo 3428 022 Las Palmas Triana, 21


jerárquico. 0893 022 Gáldar R. Moreno, 3

5632 213 Oviedo Uría, 43


• Este vínculo de referencia
entre dos tablas se establece 0893 300 Barcelona Diagonal, 435

mediante columnas de idénticos


tipos de datos en las dos tablas.
•La referencia de una fila de una tabla a otra de la otra
tabla se produce cuando ambas tienen el mismo valor.
Tipos de datos

Tipos de datos
Cadena de caracteres (character string).
Cada carácter requiere un byte para su almacenamiento.
Numérico (numeric).
Enteros: Cortos (ocupan 2 bytes).
Largos (ocupan 4 bytes).
Decimales: definidos por su precisión y escala.
Notación científica: Simple precisión (ocupan 4 bytes).
Doble precisión (ocupan 8 bytes).
Fecha y hora (datetime).
Diferentes opciones según nivel de precisión.
Objeto grande (large object).
Binary large object.
Character large object.
Otros.
Índices

PEDIDOS LÍNEAS_DE_PEDIDO ARTÍCULOS


Fecha_ped Num_ped Cod_art Versión Descripción
Num_ped Num_lin Cod_art Versión Unidades
5-7-2002 742 WRD 97 Word-97
10-8-2002 849 742 1 ACC 2002 50 ACC 97 Access-97
11-8-2002 860 742 2 EXC 2000 30 EXC 2000 Excel-2000
... ... 742 3 WRD 97 4 ACC 2002 Acces-2002
849 1 ACC 2002 30 ... ... ...
... ... ... ... ...

Índice de unicidad ARTÍCULOS


Cod_art Versión Cod_art Versión Descripción
ACC 97 WRD 97 Word-97
ACC 2002 ACC 97 Access-97
EXC 2000 EXC 2000 Excel-2000
WRD 97 ACC 2002 Acces-2002
... ... ... ... ...

Índice con repeticiones LÍNEAS_DE_PEDIDO


Cod_art Versión Num_ped Num_lin Cod_art Versión Unidades
ACC 2002 742 1 ACC 2002 50
ACC 2002 742 2 EXC 2000 30
EXC 2000 742 3 WRD 97 4
WRD 97 849 1 ACC 2002 30
... ... ... ... ... ... ...
El problema del diseño I
Ejemplo aclaratorio
PROPIETARIOS: DNI LOCALES: CODIGO
NOMBRE UBICACION
DIRECCION SUPERFICIE

Primera alternativa
Locales_propietarios
CODIGO UBICACION SUPERFICIE DNI NOMBRE DIRECCION

Problemas del diseño


 Repetición de información
 Posibilidad de contradicciones en los datos
 Problemas en inserciones
 Pérdida de información al borrar
El problema del diseño II

Propietarios
Segunda alternativa
DNI NOMBRE DIRECCION

Locales
CODIGO UBICACION SUPERFICIE

Problemas del diseño


 Pérdida de dependencias funcionales
El problema del diseño III

Tercera alternativa
Propietarios
DNI NOMBRE DIRECCION

Locales
DNI CODIGO UBICACION SUPERFICIE

Problemas del diseño


 Sólo un propietario para cada local
El problema del diseño IV

La referencia entre tablas siempre es una relación “de 1 a n” o “de n a 1”

Un propietario Tercera
Cuartaalternativa
alternativa
Propietariospuede tener varios locales (n) mientras
Propietarios
que un local sólo puede ser de un propietario (1).
DNI NOMBRE DIRECCION
DNI NOMBRE DIRECCION

Propiedad Locales Locales


DNI CODIGO DNI CODIGO UBICACION
CODIGO SUPERFICIE
UBICACION SUPERFICIE

Si se desea que un propietario pueda tener varios locales y, al mismo tiempo, que un
local pueda se de varios propietarios, la relación es simétrica, es “de n a n” y no
puede ser resuelta con sólo dos tablas. Para conseguirlo, es necesario introducir una
tabla auxiliar que tenga relaciones de “de n a 1” con las de propietarios y locales.
El lenguaje SQL I

SQL (Structured Query Language)


Lenguaje declarativo de acceso a los datos.
Estándar para las bases de datos relacionales.
Incluye la capacidad de actuar tanto sobre la estructura de la base
de datos como sobre sus propios datos.
Desarrollado en el San José Research Center (IBM)
Fue utilizado por primera vez en 1970.
En 1986: ANSI (American National Standards Institute) e
ISO (International Standards Organization)
publicaron las normas SQL/ANSI y SQL-86.
Ésta tuvo dos actualizaciones: SQL-89 y SQL-92
En la actualidad, se trabaja con el SQL:1999 (parte del SQL3)
y se está elaborando el SQL4
El lenguaje SQL II
Definición de datos. Ejemplo:
CREATE DATABASE GESTION;

CREATE TABLE PROPIETARIOS


(DNI CHAR(10) NOT NULL CONSTRAINT pk_prop PRIMARY KEY,
NOMBRE CHAR(25) NOT NULL,
DIRECCION CHAR(30));

CREATE TABLE LOCALES


(CODIGO CHAR(5) NOT NULL CONSTRAINT pk_loc PRIMARY KEY,
DNI CHAR(10) NOT NULL,
UBICACION CHAR(30) NOT NULL,
SUPERFICIE DEC(8,2) NOT NULL,
CONSTRAINT fk_loc FOREIGN KEY ( DNI ) REFERENCES PROPIETARIOS ( DNI ));

PROPIETARIOS
DNI NOMBRE DIRECCION

LOCALES
CODIGO DNI UBICACION SUPERFICIE
El lenguaje SQL III
Manipulación de datos. Ejemplos:

Insertar una nueva fila en la tabla PROPIETARIOS


INSERT INTO PROPIETARIOS (DNI, NOMBRE, DIRECCION)
PROPIETARIOS VALUES (‘13234567R‘, ‘Sanz, Luis‘, ‘Gran Vía 26‘)
DNI
NOMBRE
Encontrar los locales con superficie mayor que 200 y su propietario
DIRECCION
SELECT CODIGO, UBICACION, NOMBRE, DIRECCION
FROM LOCALES, PROPIETARIOS
WHERE LOCALES.DNI = PROPIETARIOS.DNI AND
LOCALES SUPERFICIE > 200
CODIGO
DNI
Resultado
UBICACION Modificar la dirección del propietario cuyo D.N.I. es 20333444F
CODIGO UBICACION NOMBRE DIRECCION
SUPERFICIE
L-31UPDATE PROPIETARIOS
Alta 236 Sanz, Luis Gran Vía 26
L-234
SET Bailén
DIRECCION
46
=‘Alta 87’
Laso, Ana Isabel II 38
WHERE DNI = ‘20333444F‘
L-9 Cuesta 2 Sanz , Luis Gran Vía 26
L-302 Becedo 10 Fe, Pedro
Borrar el local de código L-234
DELETE FROM LOCALES
WHERE CODIGO = ‘L-234‘

También podría gustarte