Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Modelado Entidad-Relacin
El Modelo Entidad-Relacin es un concepto de modelado para bases de
datos, propuesto por Peter Chen en 1976, mediante el cual se pretende
'visualizar' los objetos que pertenecen a la Base de Datos como entidades (se
corresponde al concepto de objeto de la Programacin Orientada a Objetos) las
cuales tienen unos atributos y se vinculan mediante relaciones.
Etc.
Entidad
Representa una cosa u "objeto" del mundo real con existencia independiente,
es decir, se diferencia unvocamente de cualquier otro objeto o cosa, incluso
siendo del mismo tipo.
Ejemplos:
Una persona. (Se diferencia de cualquier otra persona, incluso siendo gemelos).
Un automovil. (Aunque sean de la misma marca, el mismo modelo,..., tendrn atributos
diferentes, por ejemplo el numero de motor).
Una casa (Aunque sea exactamente igual a otra, aun se diferenciara en su direccin).
Una entidad puede ser un objeto con existencia fsica (una persona, un animal,
un casa ...), o un objeto con existencia conceptual (Un puesto de trabajo, una
asignatura de clases, un nombre ...).
Ejemplos:
Todos los atletas que participan en los juegos olimpicos, comparten sus atributos: nombre,
numero de identificacin, edad, peso, categoria...
Todos los paises del mundo, comparten las caracteristicas: nombre, continente, area, lengua
principal, lengua secundaria, moneda...
Atributos
Los atributos son las propiedades que describen a cada entidad.
Ejemplos:
Para cada atributo, existe un dominio del mismo, este hace referencia al tipo
de datos que ser almacenado o a restricciones en los valores que el atributo
puede tomar (Cadenas de caracteres, nmeros, solo dos letras, solo nmeros
mayores que cero, solo nmeros enteros...).
Cuando una entidad no tiene un valor para un atributo dado, este toma el valor
nulo, bien sea que no se conoce, que no existe o que no se sabe nada al
respecto del mismo.
Relacin
Describe cierta dependencia entre entidades o permite la asociacin de las
mismas.
Ejemplo:
Dadas dos instancias de entidades "Habitacin 502" y "Mark", es posible relacionar que la
habitacion 502 se encuentra ocupada por el husped de nombre Mark.
Una relacin tiene sentido al expresar las entidades que relaciona. En el
ejemplo anterior, Un Husped (entidad), se aloja (relacin) en una habitacin
(entidad).
Clave
Es un subconjunto del conjunto de atributos comunes en una entidad, que
permite identificar unvocamente cada una de las ocurrencias pertenecientes a
dicha coleccin. As mismo, permiten distinguir entre si las relaciones de un
conjunto de relaciones.
Clave ajena. Cuando una entidad hereda la clave de otra entidad con la que se
relaciona.
Diagrama entidad-relacin
Formalmente, los diagramas E-R son un lenguaje grfico para describir
conceptos. Informalmente, son simples dibujos o grficos que describen la
informacin que trata un sistema de informacin y el software que lo
automatiza.
Ejemplo de diagrama E-R
Entidad
Se representa mediante un rectngulo o "caja" etiquetada en su interior
mediante un identificador. Ejemplos de entidades habituales en los sistemas
de informacin son: factura, persona, empleado, etc.
Atributo
Se representan mediante un crculo o elipse etiquetado mediante un nombre en
su interior. Cuando un atributo es identificativo (clave) de la entidad se suele
subrayar dicha etiqueta.
Relaciones
Se representa mediante un rombo etiquetado en su interior con un verbo. Este
rombo se debe unir mediante lneas con las entidades (rectngulos) que
relaciona.
Atributos en relaciones
Las relaciones tambin pueden tener atributos asociados. Se representan igual
que los atributos de las entidades. Un ejemplo tpico son las relaciones de tipo
"histrico" donde debe constar una fecha o una hora. Por ejemplo,
supongamos que es necesario hacer constar la fecha de emisin de una
factura a un cliente, y que es posible emitir duplicados de la factura (con
distinta fecha). En tal caso, el atributo "Fecha de emisin" de la factura debera
colocarse en la relacin "se emite".
Herencia
La herencia es un intento de adaptacin de estos diagramas al paradigma
orientado a objetos. La herencia es un tipo de relacin entre una entidad
"padre" y una entidad "hijo". La entidad "hijo" hereda todos los atributos y
relaciones de la entidad "padre". Por tanto, no necesitan ser representadas dos
veces en el diagrama. La relacin de herencia se representa mediante un
tringulo interconectado por lneas a las entidades. La entidad conectada por el
vrtice superior del tringulo es la entidad "padre". Solamente puede existir una
entidad "padre" (herencia simple). Las entidades "hijo" se conectan por la base
del tringulo.
Para cada entidad del esquema se crear una tabla con tantos campos
como atributos tenga la entidad. Ejemplo:
Tabla 'TRABAJADOR'
DNI NUM_SS nombre-apellidos ...
11111111 XXXXXXXXXXX Fulano de tal ...
22222222 YYYYYYYYYYY Mengano de cual ...
...... ...... ...... ......
Las relaciones 1-1 se pueden reflejar incluyendo en una de las dos tablas un
campo en el que poder colocar la clave del elemento de la otra tabla con el que
se est relacionado. Ese nuevo campo que se incluye en la tabla recibe el
nombre de clave ajena. Ejemplo:
Tabla 'HOMBRE'
DNI Nombre ...
11111111 ... ...
22222222 ... ...
... ... ...
Tabla 'MUJER'
DNI Nombre ... DNI-ESPOSO
33333333 ... ... 11111111
44444444 ... ... (nulo)
... ... ... ...
Donde el campo DNI-ESPOSO es clave ajena de la tabla HOMBRE. Aqu hay
que hacer notar que el campo DNI-ESPOSO puede tomar o bien un valor nulo,
en el caso de aquellas mujeres que no estn casadas, o bien el valor de alguno
de los DNI de la tabla HOMBRE, en el caso de las mujeres casadas; en este
segundo caso, ese DNI (la clave ajena) no se deber repetir en ningn otro
registro de la tabla MUJER.
Tabla 'EMPRESA'
CIF Nombre ...
XX-1111-AA ... ...
YY-2222-BB ... ...
... ... ...
Tabla 'TRABAJADOR'
DNI Nombre ... CIF
11111111 ... ... XX-1111-AA
22222222 ... ... YY-2222-BB
33333333 ... ... YY-2222-BB
44444444 ... ... XX-1111-AA
... ... ... ...
Para representar las relaciones n-n en tablas lo que se hace es crear una
nueva tabla solamente para la relacin. Esta nueva tabla tendr dos claves
ajenas y su propia clave estar formada por la unin de las claves ajenas.
Ejemplo:
Tabla 'ALUMNO'
DNI Nombre ...
11111111 ... ...
22222222 ... ...
... ... ...
Tabla 'ASIGNATURA'
COD-ASIGNATURA Nombre ...
01 ... ...
02 ... ...
... ... ...
Tabla 'MATRCULA'(esta es la relacin)
DNI COD_ASIGNATURA NOTA
11111111 01 7.5
11111111 02 6.25
22222222 01 5.5
22222222 02 8
... ... ...
En la tabla MATRCULA es donde se refleja la relacin. La clave de dicha
tabla est formada por los campos DNI y COD-ASIGNATURA ; y cada uno de
ellos es clave ajena, el primero de ALUMNO y el segundo de ASIGNATURA.
Hacer ver aqu que la tabla MATRICULAS puede tener ms campos adems
de los que son clave ajena como ocurre en el ejemplo; la tabla aade adems
un campo NOTA.
Ejemplos.
Relaciones N:M
Supongamos el siguiente modelo entidad-relacin.
En este caso la relacin compra se transforma en una nueva tabla cuya clave
primaria estar formada por los atributos dni, que es la clave primaria de
cliente, y cdigo, que es la clave primaria de producto. Adems tendr como
campo fecha compra, ya que este atributo forma parte de la relacin.
PRODUCTO(cdigo,descripcin)
COMPRAS(dni_cliente,cdigo_producto,fecha_compra)
Relaciones 1:N
Veamos ahora el caso de una relacin 1:N. En el siguiente modelo entidad-
relacin un empleado pertenece a un nico departamento (debe pertenecer a
uno obligatoriamente), y un departamento tiene 1 o ms empleados.
EMPLEADO(dni,nombre,salario,cdigo_departamento)
DEPARTAMENTO(cdigo,nombre,localizacin)
Relaciones 1:1
Veamos ahora el caso de una relacin 1:1 a travs del siguiente ejemplo. En el
siguiente modelo entidad-relacin un equipo de ftbol tiene a un nico
presidente y un presidente preside a un nico club de ftbol.
En este ejemplo, tal y como dicen las reglas, podemos propagar la clave de
cualquier tabla a la tabla resultante de la otra. Es decir, tenemos dos opciones,
o mover la clave de PRESIDENTE a EQUIPO o mover la clave de EQUIPO a
PRESIDENTE. El modelo relacional podra quedar de cualquiera de las dos
formas siguientes:
EQUIPO(cdigo,nombre,ao_fundacin)
PRESIDENTE(dni,nombre,cdigo_equipo)
EQUIPO(cdigo,nombre,ao_fundacin,dni_presidente)
PRESIDENTE(dni,nombre)
Relaciones reflexivas
Veamos ahora como quedara en el modelo relacional la siguiente relacin
reflexiva. En el siguiente modelo entidad-relacin un ALUMNO es delegado de
varios ALUMNOS y un ALUMNO tiene obligatoriamente un delegado y slo a
uno.
Como podemos observar en las reglas de transformacin, en este caso la
relacin reflexiva se trata como si fuera una relacin binaria con la
particularidad de que las dos entidades son iguales. Al tratarse de una relacin
1:N se propagar la clave de la entidad ALUMNO a la entidad ALUMNO,
quedando el modelo relacional de la siguiente forma:
ALUMNO(num_expediente,nombre,num_expediente_delegado)
Tabla Alumno
En una Universidad, si tenemos la entidad Alumno que definimos como:
Tabla ALUMNO(DNI, Nombre, Apellido1, Apellido2, Telefono, Calle, Ciudad, Provincia,
FNacimiento, EstadoCivil)
CP: DNI
Creando la tabla en vista "Diseo" obtenemos:
Tabla Asignatura
Y la entidad Asignatura definida como:
ASIGNATURA(Codigo, Nombre, Creditos, Dni_prof, Observaciones)
CP:Codigo
Tabla Matricula
Y sabiendo que un alumno se puede matricular de muchas asignaturas y que
una asignatura a su vez puede tener muchos alumnos matriculados, podemos
definir entre ambas entidades la relacin (n-m) matricula como:
Creacin de Relaciones
Seleccionamos la opcin Relaciones del men Herramientas:
En general, las primeras tres formas normales son suficientes para cubrir las
necesidades de la mayora de las bases de datos. El creador de estas 3
primeras formas normales (o reglas) fue Edgar F. Codd.[1]
Murray McGraw
1005 Estadstica Roca, Ren 16/04/2005
Spiegel Hill
Nancy
Oracle Oracle Garca Roque,
1006 Greenberg y 20/04/2005
University Corp. Luis
Priya Nathan
1NF
Por ejemplo, el ttulo es completamente identificado por el cdigo del libro, pero
el nombre del lector en realidad no tiene dependencia de este cdigo, por tanto
estos datos deben ser trasladados a otra tabla.
2NF
E.
1004 Visual Basic 5 Anaya
Petroustsos
Murray McGraw
1005 Estadstica
Spiegel Hill
McGraw
1007 Clipper 5.01 Ramalho
Hill
Gme
501 Prez Juan
z
Garc
504 Roque Luis
a
Hemos creado una tabla para contener los datos del lector y tambin tuvimos
que crear la columna CodLector para identificar unvocamente a cada uno. Sin
embargo, esta nueva disposicin de la base de datos necesita que exista otra
tabla para mantener la informacin de qu libros estn prestados a qu
lectores. Esta tabla se muestra a continuacin:
005
17/04/2
1004 502 005
16/04/2
1005 503 005
20/04/2
1006 504 005
18/04/2
1007 501 005
Para la Tercera Forma Normal (3NF) la relacin debe estar en 2NF y adems
los atributos no clave deben ser mutuamente independientes y dependientes
por completo de la clave primaria. Tambin recordemos que dijimos que esto
significa que las columnas en la tabla deben contener solamente informacin
sobre la entidad definida por la clave primaria y, por tanto, las columnas en la
tabla deben contener datos acerca de una sola cosa.
3NF
CodLibro Titulo
Variable
1001 compleja
Visual Basic
1004 5
1005 Estadstica
1006 Oracle
CodLibro Titulo
University
Murray
801 Spiegel
E.
802 Petroustsos
Nancy
803 Greenberg
Priya
804 Nathan
806 Ramalho
CodEditorial Editorial
McGraw
901 Hill
902 Anaya
Oracle
903 Corp.
Aunque hemos creado nuevas tablas para que cada una tenga slo
informacin acerca de una entidad, tambin hemos perdido la informacin
acerca de qu autor ha escrito qu libro y las editoriales correspondientes, por
lo que debemos crear otras tablas que relacionen cada libro con sus autores y
editoriales.
CodLibr codAuto
o r
1001 801
1004 802
1005 801
1006 803
1006 804
1007 806
CodLibr codEditori
o al
1001 901
1004 902
1005 901
1006 903
1007 901
Ejemplo 2 Normalizacin
usuarios
1FN
usuarios
Ahora diremos que nuestra tabla est en el primer nivel de F/N. Hemos
solucionado el problema de la limitacin del campo url. Pero sin
embargo vemos otros problemas....Cada vez que introducimos un nuevo
registro en la tabla usuarios, tenemos que duplicar el nombre de la
empresa y del usuario. No slo nuestra BD crecer muchsimo, sino que
ser muy facil que la BD se corrompa si escribimos mal alguno de los
datos redundantes. Aplicaremos pues el segundo nivel de F/N:
2 FN
usuarios
urls
1 1 abc.com
2 1 xyz.com
3 2 abc.com
4 2 xyz.com
usuarios
1 Joe 1
2 Jill 2
empresas
urls
1 1 abc.com
2 1 xyz.com
3 2 abc.com
4 2 xyz.com
Ahora mira las tablas en el ejemplo del Segundo Nivel de F/N. Nuestras
tablas permiten a un slo usuario tener asociadas varias urls. Esta es
una relacin uno-con-varios, el tipo de relacin ms comn, y hasta que
se nos present el dilema del Tercer Nivel de F/N. la nica clase de
relacin que necesitamos.
usuarios
2 Jill 2
empresas
urls
urlId url
1 abc.com
2 xyz.com
url_relations
1 1 1
2 1 2
3 2 1
4 2 2
Los valores almacenados en una columna deben ser del mismo tipo de
dato.
Todas las filas de una misma tabla poseen el mismo nmero de campos.
Elementos
Relaciones base y derivadas
En una base de datos relacional, todos los datos se almacenan y se acceden a
ellos por medio de relaciones. Las relaciones que almacenan datos son
llamados "relaciones base" y su implementacin es llamada "tabla". Otras
relaciones no almacenan datos, pero que son calculadas al aplicar operaciones
relacionales. Estas relaciones son llamadas "relaciones derivadas" y su
implementacin es llamada "vista" o "consulta". Las relaciones derivadas son
convenientes ya que expresan informacin de varias relaciones actuando como
si fuera una sola.
Restricciones
Una restriccin es una condicin que obliga el cumplimiento de ciertas
condiciones en la base de datos. Algunas no son determinadas por los
usuarios, sino que son inherentemente definidas por el simple hecho de que la
base de datos sea relacional. Algunas otras restricciones las puede definir el
usuario, por ejemplo, usar un campo con valores enteros entre 1 y 10.
Las restricciones proveen un mtodo de implementar reglas en la base de
datos. Las restricciones restringen los datos que pueden ser almacenados en
las tablas. Usualmente se definen usando expresiones que dan como resultado
un valor booleano, indicando si los datos satisfacen la restriccin o no.
Las restricciones no son parte formal del modelo relacional, pero son incluidas
porque juegan el rol de organizar mejor los datos. Las restricciones son muy
discutidas junto con los conceptos relacionales.
Dominios
Un dominio describe un conjunto de posibles valores para cierto atributo. Como
un dominio restringe los valores del atributo, puede ser considerado como una
restriccin. Matemticamente, atribuir un dominio a un atributo significa "todos
los valores de este atributo deben de ser elementos del conjunto especificado".
Clave nica
Cada tabla puede tener uno o ms campos cuyos valores identifican de forma
nica cada registro de dicha tabla, es decir, no pueden existir dos o ms
registros diferentes cuyos valores en dichos campos sean idnticos. Este
conjunto de campos se llama clave nica.
Pueden existir varias claves nicas en una determinada tabla, y a cada una de
stas suele llamrsele candidata a clave primaria.
Clave primaria
Una clave primaria es una clave nica elegida entre todas las candidatas, para
especificar los datos que sern relacionados con las dems tablas. La forma de
hacer esto es por medio de claves forneas.
Slo puede existir una clave primaria por tabla y ningn campo de dicha clave
puede contener valores NULL.
Clave fornea
Una clave fornea es una referencia a una clave en otra tabla. Las claves
forneas necesitan no ser claves nicas.
Clave ndice
Las claves ndice surgen con la necesidad de tener un acceso ms rpido a los
datos. Los ndices pueden ser creados con cualquier combinacin de campos
de una tabla. Las consultas que filtran registros por medio de estos campos,
pueden encontrar los registros de forma no secuencial usando la clave ndice.
Procedimientos almacenados
Un procedimiento almacenado es cdigo ejecutable que se asocia y se
almacena con la base de datos. Los procedimientos almacenados usualmente
recogen y personalizan operaciones comunes, como insertar un registro dentro
de una tabla, recopilar informacin estadstica, o encapsular clculos
complejos. Son frecuentemente usandos por un API por seguridad o
simplicidad.
Estructura
La base de datos se organiza en dos marcadas secciones; el esquema y los
datos (o instancia).
Manipulacin de la informacin
Para manipular la informacin utilizamos un lenguaje relacional, actualmente se
cuenta con dos lenguajes formales el lgebra relacional y el clculo relacional.
El lgebra relacional permite describir la forma de realizar una consulta, en
cambio, el clculo relacional slo indica lo que se desea devolver.
Al contrario del modelo relacional, el estndar SQL requiere que las columnas
tengan un orden definido, lo cual es fcil de implementar en una computadora,
ya que la memoria es lineal.
Es de notar, sin embargo, que en SQL el orden de las columnas y los registros
devueltos en cierto conjunto de resultado nunca est garantizado, a no ser que
explcitamente sea especificado por el usuario.
sin embargo, todo lo dicho es dicho y una base de datos relacional es utilizada
para la formacion de el ingreso de datos de forma sistematizada, "facil", y
ordenada
Ventajas y desventajas
Ventajas
Desventajas