Bases de datos

Necesidades

  • Persistencia en los datos
  • Independencia de datos y procesos
  • Reducir redundancia
  • Integridad y seguridad en los datos
  • Eficiencia


Bases de datos relacionales

Éste es el modelo utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente.


Permiten establecer interconexiones (relaciones) entre los datos (que están guardados en tablas), y a través de dichas conexiones relacionar los datos de ambas tablas, de ahí proviene su nombre: "Modelo Relacional"

Se utiliza como lenguaje a SQL

Bases de datos relacionales


Ejemplo del modelo de datos


Notar las claves primarias
Notar las claves foráneas
Notar los tipos de datos

Normalización de bases de datos


La normalización de bases de datos relacionales toma un esquema relacional y le aplica un conjunto de técnicas para producir un nuevo esquema que representa la misma información pero contiene menos redundancias y evita posibles anomalías en las inserciones, actualizaciones y borrados.


El proceso de normalización consiste en comprobar en secuencia si el esquema original está en 1ra Forma Normal, 2da Forma Normal y 3ra Forma Normal, analizando las dependencias funcionales en cada paso.

Ejemplo completo

Tenemos una empresa pública donde los puestos de trabajo están regulados por el Estado, de modo que las condiciones salariales están determinadas por el puesto. Se ha creado el siguiente esquema relacional

EMPLEADOS(dni, nombre, puesto, salario, emails) con dni como clave primaria.


Ejemplo completo


Tabla 1
dni nombre puesto salario emails
111 Juan Pérez Jefe de Área 3000 juanp@ecn.es; jefe2@ecn.es
222 José Sánchez Administrativo 1500 jsanchez@ecn.es
333 Ana Díaz Administrativo 1500 adiaz@ecn.es; ana32@gmail.com
... ... ... ... ...

Primera Forma Normal (1FN)

Una tabla está en 1FN si sus atributos contienen valores atómicos. En el ejemplo, podemos ver que el atributo emails puede contener más de un valor, por lo que viola 1FN.


Tenemos dos opciones:

  1. Duplicar los registros con valores repetidos
  2. Separar el atributo que viola 1FN en una tabla

Solución 1

Duplicar los registros con valores repetidos

Tabla 2
dni nombre puesto salario email
111 Juan Pérez Jefe de Área 3000 juanp@ecn.es
111 Juan Pérez Jefe de Área 3000 jefe2@ecn.es
333 Ana Díaz Administrativo 1500 ana32@gmail.com
... ... ... ... ...

La clave primaria ahora sería dni + email

Solución 2

Separar el atributo que viola 1FN en una tabla


Tabla 3
dni nombre puesto salario
111 Juan Pérez Jefe de Área 3000
222 José Sánchez Administrativo 1500
333 Ana Díaz Administrativo 1500
... ... ... ...


Solución 2

Separar el atributo que viola 1FN en una tabla

Tabla 4
dni email
111 juanp@ecn.es
111 jefe2@ecn.es
222 jsanchez@ecn.es
333 adiaz@ecn.es
333 ana32@gmail.com
... ...


Segunda Forma Normal (2FN)

Un esquema está en 2FN si:

  1. Está en 1FN.
  2. Todos sus atributos que no son de la clave principal tienen dependencia funcional completa respecto de todas las claves existentes en el esquema. En otras palabras, para determinar cada atributo no clave se necesita la clave primaria completa, no vale con una subclave.



Segunda Forma Normal (2FN)

1ra solución de 1FN

Nombre, puesto y salario dependen sólo de dni, no de email, por lo que email se puede sacar a otra tabla

Tabla 5
dni nombre puesto salario
111 Juan Pérez Jefe de Área 3000
222 José Sánchez Administrativo 1500
333 Ana Díaz Administrativo 1500
... ... ... ...

Segunda Forma Normal (2FN)

1ra solución de 1FN

la tabla derivada nos quedaría:

Tabla 6
dni email
111 juanp@ecn.es
111 jefe2@ecn.es
222 jsanchez@ecn.es
333 adiaz@ecn.es
333 ana32@gmail.com
... ...

Segunda Forma Normal (2FN)



Como vemos, la solución es la misma que la 2da solución de 1FN

Tercera Forma Normal (3FN)

Una relación está en tercera forma normal si, y sólo si:

  1. está en 2FN
  2. y, además, cada atributo que no está incluido en la clave primaria no depende transitivamente de la clave primaria.


Por lo tanto, a partir de un esquema en 2FN, tenemos que buscar dependencias funcionales entre atributos que no estén en la clave.

Es decir, datos repetidos que podemos colocar en otra tabla, y que se accedan a ellos por propiedad transitiva


Tercera Forma Normal (3FN)

Si en nuestro ejemplo asuminos que el salario depende del puesto, podemos normalizarlo así:

Tabla 7
nss nombre puesto
111 Juan Pérez Jefe de Área
222 José Sánchez Administrativo
333 Ana Díaz Administrativo
... ... ...

Tercera Forma Normal (3FN)

Nuestra tabla derivada:


Tabla 6
puesto salario
Administrativo 1500
Jefe de área
3000


Uso de id como clave primaria

Actualmente es mejor utilizar un id interno de la base de datos como clave primaria

  • Reduce potenciales problemas del mundo real (ej DNIs duplicados)
  • Aumenta la eficiencia de las bases de datos.
  • Reduce la complejidad del modelo de datos
  • Es la base de datos la que se encarga de resolver colisiones o problemas técnicos

Ejercicio

Dada la siguiente relación:

PRÉSTAMO_LIBROS (Colegio, ProfesorInfantil, Asignatura_Habilidades, Aula, Curso, Libro, Editorial, Fecha_Préstamo) que contiene información relativa a los préstamos que realizan las editoriales a los profesores de primaria de los colegios para su evaluación en alguna de las asignaturas/habilidades que imparten.


Resolver en las 3 Formas Normales

Ejercicio

Colegio Profesor
Asignatura Aula Curso Libro Editorial Préstamo
Cervantes Juan Pérez Pensamiento Lógico
1.A01 Aprender y enseñar en Educación Infantil Graó 9/9/2012
Cervantes Juan Pérez Escritura 1.A01 Preescolar Rubio, N6 Rubio
4/6/2013
Cervantes Juan Pérez Pensamiento Numérico
1.A01 Aprender y enseñar en Educación Infantil Graó 5/8/2012
Cervantes Alicia García
Pensamiento Espacial
1.B01 Educación Infantil N9 Prentice Hall
1/3/2014
Cervantes Alicia García Pensamiento Numérico
1.B01 Aprender y enseñar en Educación Infantil Graó 12/9/2010
Cervantes Andrés Fernández
Escritura 1.A01 Aprender y enseñar en Educación Infantil Graó 22/6/2014
Cervantes Andrés Fernández Inglés 1.A01 Saber Educar: Guía para Padres y Profesores
Temas de Hoy
20/1/2012
Quevedo Juan Méndez
Pensamiento Lógico 2.B01 Saber Educar: Guía para Padres y Profesores Temas de Hoy
8/3/2013
Quevedo Juan Méndez Pensamiento Numérico 2.B01 Aprender y enseñar en Educación Infantil Graó 6/5/2013

Documentación complementaria

http://www.lsi.upc.edu/~bcasas/docencia/pfc/NormalitzacioBD.pdf

http://es.wikipedia.org/wiki/Normalización_de_bases_de_datos

http://www.lsi.upc.edu/~bcasas/docencia/pfc/NormalitzacioBD.pdf


Ejercicios varios: http://www.slideshare.net/kemotox/gua-de-ejercicios-24995296


Modelo Entidad-Relación



Herramienta para el modelado de datos que permite representar las entidades relevantes de un sistema de información así como sus interrelaciones y propiedades.



  1.     Se elabora el diagrama (o diagramas) entidad-relación.
  2.     Se completa el modelo con listas de atributos.

Modelo Entidad-Relación


Entidad

Las entidades representan cosas u objetos (ya sean reales o abstractos), que se diferencian claramente entre sí.


Estas entidades se representan en un diagrama con un rectángulos, como los siguientes.

Relación

Es un vínculo que nos permite definir una dependencia entre varias entidades, es decir, nos permite exigir que varias entidades compartan ciertos atributos de forma indispensable.


La relación se representa con un rombo, uniendo entidades mediante líneas


Relación

Los datos del ejemplo anterior, en 3FN:

Empleados

Nombre DNI Cargo
Carlos Sánchez 45338600L 001
Pepe Sánchez 02405068K 002
Juan Sánchez 40588860J 002

Relación

Los datos del ejemplo anterior, en 3FN:

Cargo del empleado

ID del cargo Descripción
001 Jefe de taller
002 Mecánico

ATRIBUTO

Los atributos definen o identifican las características de entidad (es el contenido de esta entidad). Cada entidad contiene distintos atributos, que dan información sobre esta entidad.

En el ejemplo anterior, serían las columnas

Se representa como un listado de nombres de atributos dentro de la caja de la entidad

Relaciones de Cardinalidad

Podemos encontrar distintos tipos de relaciones según como participen en ellas las entidades. Es decir, en el caso anterior cada empleado puede tener un cargo, pero un mismo cargo lo pueden compartir varios empleados.


Esto complementa a las representaciones de las relaciones, mediante un intervalo en cada extremo de la relación que especifica cuantos objetos o cosas (de cada entidad) pueden intervenir en esa relación.

Uno a uno

Una entidad se relaciona únicamente con otra y viceversa



UNO A Muchos

determina que un registro de una entidad puede estar relacionado con varios de otra entidad, pero en esta entidad existir solo una vez. Como ha sido en el caso anterior del trabajador del taller.

1

1

1 N

UNO A Muchos

determina que un registro de una entidad puede estar relacionado con varios de otra entidad, pero en esta entidad existir solo una vez. Como ha sido en el caso anterior del trabajador del taller.

N

1

Muchos a muchos

 determina que una entidad puede relacionarse con otra con ninguno o varios registros y viceversa. Por ejemplo, en el taller un coche puede ser reparado por varios mecánicos distintos y esos mecánicos pueden reparar varios coches distintos.


Ejercicio

Referencias


http://es.wikipedia.org/wiki/Modelo_entidad-relaci%C3%B3n
http://www.genbetadev.com/bases-de-datos/fundamento-de-las-bases-de-datos-modelo-entidad-relacion
Made with Slides.com