Tema 3 - Bases de Datos

87 

Loading.... (view fulltext now)

Loading....

Loading....

Loading....

Loading....

Texto completo

(1)

Bases de Datos

Bases de Datos

Bloque III

Bloque III

Informá

Informá

tica Básica - Curso 2014/20

tica Básica - Curso 2014/20

15

15

Oscar Pedreira, Susana Ladra Oscar Pedreira, Susana Ladra

(2)

Contenidos y bibli

Contenidos y bibli

ogra

ogra

fía

fía

Contenidos

Contenidos

3.1. Introduc

3.1. Introducción a las bases ción a las bases de datosde datos 3.2. Modelo relacional

3.2. Modelo relacional 3.3. Introducc

3.3. Introducción al diseño ión al diseño de BDde BD

Bibliografía

Bibliografía

 – 

 –  Elmasri, R.; Navathe, S. (2007). Elmasri, R.; Navathe, S. (2007). FundamenFundamentos de Sistemas detos de Sistemas de

Bases de

Bases de Datos. Addison-WDatos. Addison-Wesleyesley

 – 

 –  A. Silberschatz; H. Korth; S. Sudarshan (2006). Fundamentos deA. Silberschatz; H. Korth; S. Sudarshan (2006). Fundamentos de

Bases de Datos. Mc

(3)

3.1. Introducción a las bases de datos

3.1. Introducción a las bases de datos

Bloque III – Bases de Datos

(4)

Bases de datos

Bases de datos

¿Qué son las bases de datos?

¿Qué son las bases de datos?

 – 

 –  Muchas de Muchas de nuestras actividades cotidianas implican una consultanuestras actividades cotidianas implican una consulta

o un cambio en una base de datos. o un cambio en una base de datos.

Ej.: trámite bancario, reservar un libro en la biblioteca, ... Ej.: trámite bancario, reservar un libro en la biblioteca, ...

Definición de Base de Datos (BD)

Definición de Base de Datos (BD)

 – 

 –  UnaUna base de datosbase de datos es una es una colección de datos relacionados.colección de datos relacionados.  – 

 –  UnUn datodato es  es un hecho conocido que se puede registrar y queun hecho conocido que se puede registrar y que

tiene un

(5)

Bases de datos

Bases de datos

Definición de Base de Datos (BD)

Definición de Base de Datos (BD)

 – 

 –  Una base de Una base de datos almacena datos de un determinadodatos almacena datos de un determinado dominiodominio

de interés. de interés.

 – 

 –  Algunos ejemplos:Algunos ejemplos: •

• Centro deportivo (abonados, actividades, material …)Centro deportivo (abonados, actividades, material …) •

• Universidad (alumnos, asignaturas, profesores …)Universidad (alumnos, asignaturas, profesores …) •

• Empresa (empleados, clientes, pedidos, facturas …)Empresa (empleados, clientes, pedidos, facturas …)

5

(6)

Bases de datos

Bases de datos

Ejemplo:

Ejemplo:

 base de datos con información de los clientes de una

 base de datos con información de los clientes de una

empresa

empresa

Ejemplo: Tabla “Clientes” Ejemplo: Tabla “Clientes”

DNI/N

DNI/NIF IF Nombre Nombre Dirección Dirección TTeléfonoeléfono

11.222.333-A Francisco

11.222.333-A Francisco Pérez Pérez C/. C/. MayorMayor, , 1 1 600 600 200300200300 22.111.333-B Antonio

22.111.333-B Antonio García García C/. C/. MayorMayor, , 2 2 600 600 400500400500 33.222.111-C

(7)

Bases de datos

Bases de datos

Definición de Base de Datos (BD)

Definición de Base de Datos (BD)

 – 

 –  Principales operPrincipales operaciones sobre una base aciones sobre una base de datos:de datos: • • ConsultarConsultar • • InsertarInsertar • • ActualizarActualizar • • EliminarEliminar 7 7

(8)

Sistemas de gestión de bases de datos

Sistemas de gestión de bases de datos

Sistema de Gestión de Bases de Datos (SGBD)

Sistema de Gestión de Bases de Datos (SGBD)

 – 

 –  Conjunto de programas que permiten a los usuarios crear yConjunto de programas que permiten a los usuarios crear y

manipular (consulta, inserción, actualización y borrado) bases de manipular (consulta, inserción, actualización y borrado) bases de datos.

datos.

 – 

 –  Software de propósito generalSoftware de propósito general  Permite crear bases de datos Permite crear bases de datos

para cualquier dominio. para cualquier dominio.

(9)

Creación y manipulación de una BD

Creación y manipulación de una BD

Enfoque con ficheros:

Enfoque con ficheros:

 – 

 –  Podríamos implementar un programa que almacene los datos dePodríamos implementar un programa que almacene los datos de

la BD en ficheros la BD en ficheros

 – 

 –  Tendríamos que programarlo todo (complejo)Tendríamos que programarlo todo (complejo)

Sistema de Gestión de Bases de Datos (SGBD):

Sistema de Gestión de Bases de Datos (SGBD):

 – 

 –  Conjunto de programas que nos permiten crear y manipularConjunto de programas que nos permiten crear y manipular

bases de datos bases de datos

 – 

 –  Hace la mayor parte del trabajo por nosotros y Hace la mayor parte del trabajo por nosotros y nos oculta losnos oculta los

detalles de bajo nivel detalles de bajo nivel

9

(10)

Inconvenientes del enfoque con ficheros

Inconvenientes del enfoque con ficheros

Redundancia e inconsistencia

Redundancia e inconsistencia

 – 

 –  La misma información puede estar duplicada en diferentesLa misma información puede estar duplicada en diferentes

lugares, y puede haber contradicciones. lugares, y puede haber contradicciones.

Dificultad en el acceso a los datos

Dificultad en el acceso a los datos

 – 

 –  Tendríamos que programar todas las operaciones sobre la baseTendríamos que programar todas las operaciones sobre la base

de datos de datos

Pepe

Pepe C/. C/. Real, Real, 1 1 981 981 10 10 20 20 3030 Pepe

Pepe C/. C/. Real, Real, 2 2 981 981 10 10 20 20 3131

Inconsistencias

Inconsistencias

Redundancia

(11)

Inconvenientes del enfoque con ficheros

Inconvenientes del enfoque con ficheros

Acceso concurrente:

Acceso concurrente:

 – 

 –  Posibles inconsisPosibles inconsistencias cuando varios usuarios tencias cuando varios usuarios acceden deacceden de

forma

forma concurrenteconcurrente a un  a un mismo datomismo dato

11

11

Nº de de cuenta cuenta Saldo Saldo ClienteCliente

2222

(12)

Inconvenientes del enfoque con ficheros

Inconvenientes del enfoque con ficheros

Seguridad y recuperación ante fallos

Seguridad y recuperación ante fallos

 – 

 –  Seguridad: Ej. no queremos que todos los usuarios puedanSeguridad: Ej. no queremos que todos los usuarios puedan

acceder a todos los

acceder a todos los datosdatos

 – 

 –  Recuperación ante fallos: Ej. pérdida de un fichero, errores de losRecuperación ante fallos: Ej. pérdida de un fichero, errores de los

usuarios, … usuarios, …

Problemas de integridad referencial

Problemas de integridad referencial

 – 

 –  Los datos de la Los datos de la BD está relacionados entre síBD está relacionados entre sí  – 

 –  Tendríamos que controlar también la integridad de esasTendríamos que controlar también la integridad de esas

relaciones (ej. el código de depto. de un empleado tiene que ser relaciones (ej. el código de depto. de un empleado tiene que ser de un departamento que existe).

(13)

Ventajas de los SGBD

Ventajas de los SGBD

Independencia entre los programas y los datos

Independencia entre los programas y los datos

 – 

 –  Nuestros programas no acceden directamente a los datos.Nuestros programas no acceden directamente a los datos.  – 

 –  El SGBD gestiona la El SGBD gestiona la BD por nosotros, ocultando los detalles deBD por nosotros, ocultando los detalles de

bajo nivel, y nuestros programas se comunican con él. bajo nivel, y nuestros programas se comunican con él.

13 13 SGBD SGBD Programa Programa (C, Pascal, (C, Pascal, Java, …) Java, …) Petición Petición Datos Datos Cliente

(14)

Ventajas de los SGBD

Ventajas de los SGBD

Contr

Control

ol de redundancia

de redundancia

 – 

 –  Cada dato (como el nombre o la fecha de nacimiento de unCada dato (como el nombre o la fecha de nacimiento de un

cliente) se almacena en un solo lugar de

cliente) se almacena en un solo lugar de la BD.la BD.

Control del acceso concurrente

Control del acceso concurrente

 – 

 –  El SGBD incluye mecanismos para controlar el accesoEl SGBD incluye mecanismos para controlar el acceso

concurrente de varios usuarios a los mismos datos concurrente de varios usuarios a los mismos datos

Control de integridad referencial

Control de integridad referencial

 – 

 –  El SGBD nos proporciona mecanismos para controlar la integridadEl SGBD nos proporciona mecanismos para controlar la integridad

referencial de los datos relacionados entre sí referencial de los datos relacionados entre sí

(15)

Ventajas de los SGBD

Ventajas de los SGBD

Administración centralizada de los datos

Administración centralizada de los datos

 – 

 –  PermitPermite al e al administradministrador de la ador de la base de base de datos establecer políticasdatos establecer políticas

de acceso y

de acceso y seguridad, mecanismos de recuperaciseguridad, mecanismos de recuperación, etc.ón, etc.

 – 

 –  Los datos y su administración están en el SGBD,Los datos y su administración están en el SGBD,

independientemente de cuántos programas accedan a ellos independientemente de cuántos programas accedan a ellos

Facilidad de acceso a los datos con SQL

Facilidad de acceso a los datos con SQL

 – 

 –  Lenguaje declarativLenguaje declarativo: le o: le decimos al sistema lo decimos al sistema lo que queremos, noque queremos, no

cómo hay que hacerlo. cómo hay que hacerlo.

SELECT nombre FROM alumnos; SELECT nombre FROM alumnos;

15

(16)

3.2. Modelo

3.2. Modelo relacion

relacional

al

Bloque III – Bases de Datos

(17)

Modelos de datos

Modelos de datos

¿Cómo organizamos los datos en la BD?

¿Cómo organizamos los datos en la BD?

 – 

 –  UnUn modelo de datosmodelo de datos establece la forma en que se estructuran losestablece la forma en que se estructuran los

datos y qué

datos y qué operaciones podemos realizoperaciones podemos realizar sobre ellos.ar sobre ellos.

Modelo de datos

Modelo de datos

 – 

 –  Colección de herramientas conceptuales que sirven para describirColección de herramientas conceptuales que sirven para describir

la estructura de la base de

la estructura de la base de datosdatos

• Estructura de los datosEstructura de los datos • • RestriccionesRestricciones • • Operaciones en la BDOperaciones en la BD 17 17

(18)

Modelo relacional

Modelo relacional

De forma simplificada, podemos decir que el modelo relacional

De forma simplificada, podemos decir que el modelo relacional

organiz

organiza los

a los datos en tablas

datos en tablas

 – 

 –  EstructurEstructura de a de los datos: los datos: relaciones (tablas)relaciones (tablas)  – 

 –  Restricciones: clave primaria, clave foránea, etc.Restricciones: clave primaria, clave foránea, etc.  – 

(19)

Caract

Caract

erísticas del modelo

erísticas del modelo

relacional

relacional

Modelo relacional

Modelo relacional

 – 

 –  Fue introducido por Edgar Codd (IBM Research, 1970)Fue introducido por Edgar Codd (IBM Research, 1970)  – 

 –  La mayoría de los SGBD actuales se basan en este modeloLa mayoría de los SGBD actuales se basan en este modelo

Principales características

Principales características

 – 

 –  Es un modelo simpleEs un modelo simple •

• Organiza los datos en tablas, de forma simple e intuitivaOrganiza los datos en tablas, de forma simple e intuitiva  – 

 –  Fundamentos matemáticosFundamentos matemáticos •

• El modelo se El modelo se apoya en una base matemática formalapoya en una base matemática formal  – 

 –  FlexibilidadFlexibilidad •

• Facilita el diseño de BD de forma sencilla en la mayoría de losFacilita el diseño de BD de forma sencilla en la mayoría de los

dominios dominios

19

(20)

Modelo relacional

Modelo relacional

Un primer ejemplo:

Un primer ejemplo:

NIF

NIF Nombre Nombre ……

12.345.657

12.345.657 Pepe Pepe …… Clientes Clientes

Código Nombre Precio

Código Nombre Precio

1293

1293 Portátil Portátil 700 700 €€ Productos Productos

NIF-cliente Cod-Prod Uds.

NIF-cliente Cod-Prod Uds.

12.345.657

12.345.657 1293 1293 22 Pedidos Pedidos

(21)

3.2.1 Relaciones

3.2.1 Relaciones

Bloque III – Bases de Datos

(22)

Relaciones

Relaciones

Concepto de relación

Concepto de relación

 – 

 –  El modelo relacional define la relación como la estructura paraEl modelo relacional define la relación como la estructura para

almacenar los datos de la BD almacenar los datos de la BD

 – 

 –  Una relación se parece a una tabla (aunque no es Una relación se parece a una tabla (aunque no es lo mismo)lo mismo)  – 

 –  La relación es el La relación es el conceptconcepto formal del modelo relacional de lo queo formal del modelo relacional de lo que

para nosotros son las tablas de la

para nosotros son las tablas de la base de datosbase de datos

 – 

(23)

Relaciones

Relaciones

Si vemos una relación como una tabla

Si vemos una relación como una tabla

 – 

 –  Cada fila representa hechos que se Cada fila representa hechos que se correspondcorresponden con unaen con una

entidad del mundo real entidad del mundo real

 – 

 –  El nombre de la tabla y El nombre de la tabla y los nombres de las columnas ayudan alos nombres de las columnas ayudan a

interpretar el significado de los valores que están en cada fila interpretar el significado de los valores que están en cada fila

 – 

 –  Como veremos, una fila es unaComo veremos, una fila es una tuplatupla, el , el nombre de una columnanombre de una columna

es un

es un atributoatributo y la  y la tabla se denominatabla se denomina relaciónrelación

23

(24)

Relaciones

Relaciones

Concepto de relación

Concepto de relación

 – 

 –  UnaUna relaciónrelación almacena determinadosalmacena determinados atributosatributos de entidades de entidades

reales del mismo tipo reales del mismo tipo

• Ejemplo: la relaciónEjemplo: la relación Alumnos Alumnos almacena los atributosalmacena los atributos DNIDNI,,

nombre

nombre yy titulacióntitulación de todos los alumnosde todos los alumnos

 – 

 –  Un atributo admite valores de un determinadoUn atributo admite valores de un determinado dominiodominio, que es, que es

un conjunto de valores atómicos un conjunto de valores atómicos

• Ejemplo: el dominio DNI admite números de 8 Ejemplo: el dominio DNI admite números de 8 cifrascifras  – 

 –  Denotamos el dominio de un atributoDenotamos el dominio de un atributo A A porpor dom(A)dom(A) •

(25)

Relaciones

Relaciones

Esquema de relación

Esquema de relación

 – 

 –  UnUn esquema de relaciónesquema de relación RR, denotado por, denotado por R(AR(A11 , A , A22 ,  , …, …, AAnn ) )  está  está

compuesto por un nombre de relación

compuesto por un nombre de relación RR y una lista de atributos y una lista de atributos

A

A11, A, A22, …, A, …, Ann

 – 

 –  El esquema de una relación la describe, mediante su nombre y laEl esquema de una relación la describe, mediante su nombre y la

lista de sus

lista de sus atributosatributos

• Ejemplo:Ejemplo: Alumnos(DNI,  Alumnos(DNI, nombre, titulacinombre, titulación)ón)

 – 

 –  GradoGrado de una relación: número de atributosde una relación: número de atributos

25

(26)

Relaciones

Relaciones

Definición de relación

Definición de relación

 – 

 –  UnaUna relaciónrelación r r  del esquema de  del esquema de relaciónrelación R(AR(A11 , A , A22 , …, A , …, Ann ) ), denotado, denotado

por

por r(R)r(R), es un conjunto de tuplas, es un conjunto de tuplas r =r = {t{t11, t, t22, …, t, …, tmm}.}.

 – 

 –  CadaCada tuplatupla es una lista ordenada de n valores tes una lista ordenada de n valores tii = (v = (v11, v, v22, …, v, …, vnn),),

donde cada

donde cada valorvalor vv j jes un elemento del dominioes un elemento del dominio dom(Adom(A j  j  ) ) o bien o bien

es un

es un valor nulovalor nulo

 – 

 –  UnaUna relaciónrelación r(R)r(R) es un subconjunto del producto cartesiano de es un subconjunto del producto cartesiano de

los dominios de los

los dominios de los atributos:atributos:

(27)

Relaciones

Relaciones

• •

Ejemplo:

Ejemplo:

27 27 Alumnos Alumnos DNI

DNI Nombre Nombre TitulaciTitulaciónón

32555111

32555111 Pedro Pedro GIIGII 76112113

76112113 Ana Ana ETIXETIX 76555111

76555111 Alberto Alberto GIIGII Nombre de la relación Nombre de la relación Atributos Atributos Tuplas Tuplas

(28)

Relaciones

Relaciones

La BD es una colección de relaciones

La BD es una colección de relaciones

 – 

 –  Ejemplo: Alumnos(DNI, Ejemplo: Alumnos(DNI, nombre, titulación), Asignatura(nombrnombre, titulación), Asignatura(nombre,e,

curso, cuatrimestre), Profesor(DNI, nombre, departamento), etc. curso, cuatrimestre), Profesor(DNI, nombre, departamento), etc.

Preguntas

Preguntas

 – 

 –  ¿Una tabla puede tener filas repetidas?¿Una tabla puede tener filas repetidas? •

• SíSí  – 

 –  ¿Una relación puede tener filas ¿Una relación puede tener filas repetidas?repetidas? •

• No, porque es un conjunto.No, porque es un conjunto.  – 

 –  ¿Hay orden entre las tuplas de una relación?¿Hay orden entre las tuplas de una relación?

No, porque no hay orden entre los elementos de un conjunto. No, porque no hay orden entre los elementos de un conjunto.

(29)

Esquema y estado de una BD

Esquema y estado de una BD

Esquema y estado de una relación

Esquema y estado de una relación

 – 

 –  Esquema o intensión de una relaciónEsquema o intensión de una relación: la : la definición de la relación,definición de la relación,

es decir, su nombre y lista de atributos

es decir, su nombre y lista de atributos R(AR(A11 , A , A22 , …, A , …, Ann ) )

 – 

 –  Estado o extensión de una relaciónEstado o extensión de una relación: conjunto de tuplas de la: conjunto de tuplas de la

relación r(R)

relación r(R) ⊂⊂ dom(A dom(A11) x dom(A) x dom(A22) ) x x . . . x x dom(Adom(Ann))

Esquema y estado de una base de datos

Esquema y estado de una base de datos

 – 

 –  Esquema o intensión de una BDEsquema o intensión de una BD: definición de las relaciones que: definición de las relaciones que

forman la base de datos forman la base de datos

 – 

 –  Estado o extensión de una base de datosEstado o extensión de una base de datos: conjunto de tuplas: conjunto de tuplas

conten

contenidos en las idos en las relaciones que la formanrelaciones que la forman

29

(30)

Esquema y estado de una BD

Esquema y estado de una BD

Es decir:

Es decir:

 – 

 –  Esquema: definición de la estructurEsquema: definición de la estructura de la a de la base de datosbase de datos  – 

 –  Estado: contenidoEstado: contenido

Estado de una relación

Estado de una relación

 – 

 –  De todas De todas las posibles combinaciones (el producto cartesianlas posibles combinaciones (el producto cartesiano), uno), un

estado de una relación en un momento dado, el

estado de una relación en un momento dado, el estado actual deestado actual de la relación

la relación, refleja sólo , refleja sólo las tuplas las tuplas válidas que represenválidas que representan untan un

estado específico del mundo

(31)

Valores nulos

Valores nulos

Un valor nulo representa ausencia de información

Un valor nulo representa ausencia de información

 – 

 –  Porque desconocemos esa informaciónPorque desconocemos esa información •

• Ejemplo: no conocemos el número de teléfono de un alumnoEjemplo: no conocemos el número de teléfono de un alumno  – 

 –  Porque no procedePorque no procede •

• Ejemplo: un valor nulo en el Ejemplo: un valor nulo en el atributo comiatributo comisión de unsión de un

empleado represen

empleado representa que el ta que el empleado no tiene empleado no tiene derecho aderecho a comisión y que, por tanto, no procede almacenar su valor comisión y que, por tanto, no procede almacenar su valor

31

(32)

3.2.2 Restricciones

3.2.2 Restricciones

Bloque III – Bases de Datos

(33)

Restricciones

Restricciones

Restricción de dominio

Restricción de dominio

 – 

 –  El valor de cada atributoEl valor de cada atributo A A debe ser un valor debe ser un valor atómicoatómico del dominio del dominio

dom(A) dom(A)

 – 

 –  Es decir, el valor de un atributo de una relación debe ser un valorEs decir, el valor de un atributo de una relación debe ser un valor

único y pertenecer al

único y pertenecer al dominio de dicho atributodominio de dicho atributo

 – 

 –  Ejemplo:Ejemplo:

33

33

DNI

DNI Nombre Nombre TTeléfonoeléfono

23444111 23444111 Pepe Pepe 677 677 129846129846 65273081 Juan 65273081 Juan 623 982346623 982346 645 871839 645 871839 Violación de la

(34)

Restricciones

Restricciones

Restricción de clave

Restricción de clave

 – 

 –  Una relación se define como un conjunto de tuplas. Por tanto,Una relación se define como un conjunto de tuplas. Por tanto,

todas las tuplas de

todas las tuplas de la relación deben ser distintas.la relación deben ser distintas.

 – 

 –  Por lo regular, existen subconjuntos de atributos (Por lo regular, existen subconjuntos de atributos (SC SC ) de un) de un

esquema de relación

esquema de relación RR tal que para dos tuplas cualesquiera en untal que para dos tuplas cualesquiera en un

estado de relación r de

estado de relación r de RR, t, t11 y t y t22, se cumple:, se cumple:

tt

11

[[

SC SC 

]]

≠ t≠ t

22

[[

SC SC 

]]

 – 

(35)

Restricciones

Restricciones

Restricción de clave

Restricción de clave

 – 

 –  Una superclaveUna superclave SCSC especifica una restricción de unicidad en laespecifica una restricción de unicidad en la

relación, que significa que no puede haber dos tuplas con los relación, que significa que no puede haber dos tuplas con los mismos valores en los atributos de

mismos valores en los atributos de SCSC

 – 

 –  Ejemplo: Dada la Ejemplo: Dada la relaciónrelación Alumnos(DN Alumnos(DNI, nombre, tituI, nombre, titulación)lación)¿son¿son

superclaves? superclaves?

• SCSC = {DNI, nombre, titulación}= {DNI, nombre, titulación} •

• SCSC = {DNI, titulación}= {DNI, titulación} •

• SCSC = {nombre}= {nombre} •

• SCSC = {nombre, titulación}= {nombre, titulación}

35

(36)

Restricciones

Restricciones

Restricción de clave

Restricción de clave

 – 

 –  Un subconjunto de atributosUn subconjunto de atributos KK dede RR es unaes una claveclave si es una si es una

superclave mínima superclave mínima

 – 

 –  Una superclaUna superclave no es mínima si ve no es mínima si al eliminar alguno de susal eliminar alguno de sus

atributos sigue siendo una superclave atributos sigue siendo una superclave

 – 

 –  Ejemplo: Dada la Ejemplo: Dada la relaciónrelación Alumnos(DN Alumnos(DNI, nombre, titI, nombre, titulación)ulación)¿son¿son

claves? claves?

• KK = {DNI, = {DNI, nombre, titulación}nombre, titulación} •

• KK = = {nombre, titulación}{nombre, titulación} •

(37)

Restricciones

Restricciones

Clave primaria y claves candidatas

Clave primaria y claves candidatas

 – 

 –  En general, un esquema de En general, un esquema de relaciónrelación RR puede tener más de unapuede tener más de una

clave. En este caso, también se las denomina

clave. En este caso, también se las denomina claves candidatasclaves candidatas

 – 

 –  Una de las claves candidatas del esquema de relación se eligeUna de las claves candidatas del esquema de relación se elige

como

como clave primariaclave primaria de la relaciónde la relación

 – 

 –  LaLa clave primariaclave primaria de una relación es el subconjunto de atributosde una relación es el subconjunto de atributos

que utilizamos para identificar de forma unívoca las tuplas de esa que utilizamos para identificar de forma unívoca las tuplas de esa relación

relación

 – 

 –  Notación: subrayamos los atributos que forman la clave primariaNotación: subrayamos los atributos que forman la clave primaria •

• Ejemplo: Alumnos(DNI, nombre, titulación)Ejemplo: Alumnos(DNI, nombre, titulación)

37

(38)

Restricciones

Restricciones

Restricción de integridad de entidad

Restricción de integridad de entidad

 – 

 –  Ningún valor de la clave primaria puede ser un valor nuloNingún valor de la clave primaria puede ser un valor nulo  – 

 –  Ejemplo:Ejemplo:

Alumnos

Alumnos

DNI

DNI Nombre Nombre TitulaciTitulaciónón

32555111

32555111 Pedro Pedro GIIGII

NULL Ana ETIX

NULL Ana ETIX

76555111

76555111 Alberto Alberto GIIGII ¿Cómo identificamos a Ana? ¿Cómo identificamos a Ana?

(39)

Restricciones

Restricciones

Restricción de integridad referencial

Restricción de integridad referencial

 – 

 –  Un conjunto de atributosUn conjunto de atributos CFCF en el esquema de en el esquema de relaciónrelación RR11 es unaes una

clave foránea

clave foránea (o clave externa) de(o clave externa) de RR11 si se  si se satisfacsatisfacen las dosen las dos

reglas siguientes: reglas siguientes:

• Los atributos deLos atributos de CFCF tienen el mismo dominio que los tienen el mismo dominio que los atributosatributos

de la

de la clavclave primariae primaria CPCP de otro esquema de relaciónde otro esquema de relación RR22. Se. Se

dice que los atributos

dice que los atributos CFCF hacen referencia o se refieren a lahacen referencia o se refieren a la

relación relación RR22..

• Un valor deUn valor de CFCF en una tupla ten una tupla t11 del estado actual del estado actual r r 11(R(R11 ) ) ocurre ocurre

como valor de CP en alguna tupla t

como valor de CP en alguna tupla t22 del estado actual del estado actual r r 22(R(R22 ) ) o o

bien es nulo. bien es nulo.

• En el primer caso tEn el primer caso t11[[CF CF ] = t] = t22[[CPCP], y decimos que la tupla t], y decimos que la tupla t11

hace referencia a la tupla t hace referencia a la tupla t22..

39

(40)

Restricciones

Restricciones

Restricción de integridad referencial

Restricción de integridad referencial

 – 

 –  UnaUna clave foráneaclave foránea es  es conjuntconjunto de atributos de una relacióno de atributos de una relación RR11

que para cada tupla identifican a otra tupla

que para cada tupla identifican a otra tupla de una relaciónde una relación RR22

con la que está relacionada. con la que está relacionada.

 – 

 –  Las utilizamos para relacionar las tuplas de Las utilizamos para relacionar las tuplas de una relación conuna relación con

tuplas de otras

(41)

Restricciones

Restricciones

Restricción de integridad referencial

Restricción de integridad referencial

41

41

NIF

NIF Nombre Nombre ……

12.345.657

12.345.657 Pepe Pepe …… Clientes Clientes

Código Nombre Precio

Código Nombre Precio

1293

1293 Portátil Portátil 700 700 €€ Productos Productos

NIF-cliente Cod-Prod Uds.

NIF-cliente Cod-Prod Uds.

12.345.657

12.345.657 1293 1293 22 Pedidos Pedidos Identifica al cliente que realizó el pedido

Identifica al cliente que realizó el pedido

Identifica qué producto compró Identifica qué producto compró

(42)

Restricciones

Restricciones

(43)

Restricciones

Restricciones

Borrados y actualizaciones con claves foráneas

Borrados y actualizaciones con claves foráneas

 – 

 –  Cuando eliminamos o actualizo una fila de una tabla referenciadaCuando eliminamos o actualizo una fila de una tabla referenciada

por otra, tenemos dos opciones: por otra, tenemos dos opciones:

• Poner un valor nulo en la clave foránea. Ejemplo: cuandoPoner un valor nulo en la clave foránea. Ejemplo: cuando

borro un depto., el código de depto. de sus

borro un depto., el código de depto. de sus empleados esempleados es NULL

NULL

• Propagar en cascada el borrado/actualización a la clavePropagar en cascada el borrado/actualización a la clave

for

foránea. Ejemplo: si ánea. Ejemplo: si borro la fila borro la fila de un departamento, borrode un departamento, borro también las filas

también las filas de los de los empleados que le empleados que le refreferencian.erencian.

43

(44)

Restricciones

Restricciones

Deptno

Deptno Dname Dname LocLoc

10

10 Research Research CoruñaCoruña Dept

Dept

Empno

Empno … … deptnodeptno

10 10 … … 1010 Emp Emp Borrado/Actualización Borrado/Actualización

(45)

3.2.3 Ejercicios

3.2.3 Ejercicios

Bloque III – Bases de Datos

(46)

Ejercicio 1

Ejercicio 1

Dada la siguiente tabla: Dada la siguiente tabla:

a)

a) ¿E¿Es us una na rrelelacacióión? n? ¿P¿Por or ququé?é? b)

b) ¿Qu¿Qué reé restrstricciccioniones des del mel modeodelo rlo relaelaciocional nal no se cno se cumpumplenlen??

Nombre Edad Idioma Nivel

Nombre Edad Idioma Nivel

Luis

Luis 18 18 Inglés Inglés BienBien

Ana 23

Ana 23 InglésInglés Francés Francés Bien Bien Regular Regular Jaime

Jaime 19 19 Alemán Alemán MalMal María

(47)

Ejercicio 2

Ejercicio 2

Dadas las siguientes tablas: Dadas las siguientes tablas:

a)

a) ¿R¿Repepreresesentntan lan la mia mismsma rea relalaciciónón? ¿P? ¿Por quor qué?é?

Nombre Edad Idioma Nivel Nombre Edad Idioma Nivel

Luis

Luis 18 18 Inglés Inglés BienBien Ana

Ana 23 23 Inglés Inglés BienBien Jaime

Jaime 19 19 AleAlemán mán MalMal María

María 42 42 Italiano Italiano BienBien

Nombre Edad Idioma Nivel Nombre Edad Idioma Nivel

Jaime

Jaime 19 19 AleAlemán mán MalMal María

María 42 42 Italiano Italiano BienBien Luis

Luis 18 18 Inglés Inglés BienBien Ana

(48)

Ejercicio 3

Ejercicio 3

Dado el siguiente esquema de base de datos relacional:

Dado el siguiente esquema de base de datos relacional:

Pueblo (id_pbl, nombre, provincia, num_hab) Pueblo (id_pbl, nombre, provincia, num_hab)

Monumento (cod_mon, nombre, época, tipo, id_pbl) Monumento (cod_mon, nombre, época, tipo, id_pbl) Ruta (id_ruta, nombre,

Ruta (id_ruta, nombre, transporttransporte, e, duraciduración, longitud)ón, longitud) Pasa_por (id_ruta, id_pbl, orden)

Pasa_por (id_ruta, id_pbl, orden)

a)

a) Ind

Indic

ica las

a las cla

clave

ves pri

s primar

marias y f

ias y for

oráne

áneas. R

as. Repr

eprese

esent

ntaa

gráfic

(49)

Ejercicio 3

Ejercicio 3

b)

b) In

Intr

trod

oduc

uce en la

e en las ta

s tabl

blas l

as la si

a sigu

guie

ient

nte in

e inffor

ormac

mació

ión

n

“Roteiro dos castiñeiros (5 km de lonxitude, para facer a pe en 1 hora). Pasa “Roteiro dos castiñeiros (5 km de lonxitude, para facer a pe en 1 hora). Pasa por A Balada,

por A Balada, Neixón e Comba (nesta orde) todos eles pobos pequenos Neixón e Comba (nesta orde) todos eles pobos pequenos dede 1000 habitant

1000 habitantes e da es e da provincia da Coruña”provincia da Coruña”

“Roteiro dos petroglifos (20 km de lonxitude, para facer en coche en 2 horas). “Roteiro dos petroglifos (20 km de lonxitude, para facer en coche en 2 horas). Pasa por Neixón, Cespón, Agüeiros (nesta orde) e acaba de novo en Neixón. Pasa por Neixón, Cespón, Agüeiros (nesta orde) e acaba de novo en Neixón. Son pobos da provincia da coruña que (excepto Neixón) teñen 2500

Son pobos da provincia da coruña que (excepto Neixón) teñen 2500 habitant

habitantes. En Cespón es. En Cespón pódese ver apódese ver a Capela do LoretoCapela do Loreto, unha capela que data do, unha capela que data do

século XII” século XII”

(50)

Ejercicio 4

Ejercicio 4

Dado el siguiente esquema de base de datos relacional:

Dado el siguiente esquema de base de datos relacional:

Empresa(CIF, nombre, dirección, ciudad) Empresa(CIF, nombre, dirección, ciudad)

Inversor (NIF, nombre, apellidos, dirección, teléfono, NIF_asesor) Inversor (NIF, nombre, apellidos, dirección, teléfono, NIF_asesor) Asesor (NIF, nombre, teléfono, email, experiencia)

Asesor (NIF, nombre, teléfono, email, experiencia)

Invierte_en (NIF_inversor, CIF_empresa, participación) Invierte_en (NIF_inversor, CIF_empresa, participación)

a)

a) Ind

Indic

ica las

a las cla

clave

ves pri

s primar

marias y f

ias y for

oráne

áneas. R

as. Repr

eprese

esent

ntaa

gráfic

(51)

Ejercicio 4

Ejercicio 4

b)

b) In

Intr

trod

oduc

uce en la

e en las ta

s tabl

blas l

as la si

a sigu

guie

ient

nte in

e inffor

ormac

mació

ión

n

“Polo de agora só recompilamos datos de dúas empresas: “Polo de agora só recompilamos datos de dúas empresas:

Empresa1

Empresa1, ten o seu enderezo fiscal na Rúa de Arteixo, 5, 15008, A Coruña, e o seu CIF, ten o seu enderezo fiscal na Rúa de Arteixo, 5, 15008, A Coruña, e o seu CIF

é B6000000J. é B6000000J.

Empresa2

Empresa2, domiciliada na Rúa da Univer, domiciliada na Rúa da Universidade, 10, 08009, Barcelona, e o seu CIF sidade, 10, 08009, Barcelona, e o seu CIF éé

B0000005J. B0000005J.

Por outra banda, os inversores son: Por outra banda, os inversores son:

Manuel Iglesias (NIF. 47668432R), vive en na rúa de Monforte nº 120, no 28088 de Manuel Iglesias (NIF. 47668432R), vive en na rúa de Monforte nº 120, no 28088 de

Madrid. Está dispoñíbel no teléfono 91 555 2

Madrid. Está dispoñíbel no teléfono 91 555 2 3 47. Manuel ten invertid3 47. Manuel ten invertido 3000 € eno 3000 € en Empresa1, a recomendación de Xoan Neira (

Empresa1, a recomendación de Xoan Neira (xoan.neira@meumail.comxoan.neira@meumail.com, 649888888), 649888888) que leva xa dous anos traballando niso.

que leva xa dous anos traballando niso.

Alexandra Montoto (NIF. 33556874X), está domiciliada na rúa Almirante, 67, no 36001 Alexandra Montoto (NIF. 33556874X), está domiciliada na rúa Almirante, 67, no 36001

de Pontevedra. O seu teléfono móbil é 649 87 25 11. Ten invertidos 2000 € en de Pontevedra. O seu teléfono móbil é 649 87 25 11. Ten invertidos 2000 € en

Empresa2 e outro tanto en Empresa1. Alexandra confía plenamente no seu asesor Empresa2 e outro tanto en Empresa1. Alexandra confía plenamente no seu asesor Ánxel García. É un home q

Ánxel García. É un home que leva xa 10 anosue leva xa 10 anos traballando nisto e que está sempretraballando nisto e que está sempre dispoñíbel tanto por mail (

(52)

Ejercicio 5

Ejercicio 5

Dado el siguiente esquema de base de datos relacional:

Dado el siguiente esquema de base de datos relacional:

Cliente(DNI, nombre, dirección) Cliente(DNI, nombre, dirección)

Coche (matrícula, marca, modelo, pagado, dni) Coche (matrícula, marca, modelo, pagado, dni) Taller (cif, nombre, dirección)

Taller (cif, nombre, dirección)

Accidente (cod_acc, dni, matricula, cif, fecha, coste) Accidente (cod_acc, dni, matricula, cif, fecha, coste)

a)

a) Ind

Indic

ica las

a las cla

clave

ves pri

s primar

marias y f

ias y for

oráne

áneas. R

as. Repr

eprese

esent

ntaa

gráfic

gráficamente este esquema

amente este esquema relacional.

relacional.

b)

b) Pa

Para

ra cada

cada cla

clave

ve for

foránea,

ánea, decid

decidir y

ir y just

justific

ificar s

ar si de

i debe ad

be admitir

mitir

valores nulos, y los modos de borrado y actualización más

valores nulos, y los modos de borrado y actualización más

(53)

Ejercicio 6

Ejercicio 6

Dada la siguiente base de

Dada la siguiente base de datos relacional, detecta las posibles

datos relacional, detecta las posibles

violaciones de las restricciones de dominio, integridad de entidad

violaciones de las restricciones de dominio, integridad de entidad

e integridad referencial.

e integridad referencial.

DNI

DNI Nombre Nombre DirecciónDirección

13 Juan

13 Juan Real, 3Real, 3 Mayor, 5 Mayor, 5 Pedro

Pedro Real, Real, 1010 18

18 Gonzalo Gonzalo MayorMayor, , 77 20

20 Agustín Diagonal, Agustín Diagonal, 22

Matrícula

Matrícula Marca Marca DNIDNI

1010 AAA 1010 AAA 1010AAA

1010AAA SeatSeat

13 13 18 18 2020 2020 BBB BBB BMW BMW 2121 3030 3030 CCC CCC AudiAudi 3031CCD 3031CCD Opel Opel 1313 Clientes Clientes Vehículos Vehículos

(54)

Ejercicio 7

Ejercicio 7

La base de

La base de datos de una empresa contiene las siguientes tablas:datos de una empresa contiene las siguientes tablas:

Persona (dni, nombre, dirección, telefono) Persona (dni, nombre, dirección, telefono) Empleado (dni,

Empleado (dni, fecha-alta, fecha-consolidación, salario, departamento, jefe)fecha-alta, fecha-consolidación, salario, departamento, jefe) Departament

Departamento o (#dep, nombre, (#dep, nombre, presupuespresupuesto)to)

Indica como modificarías/completarías este esquema para que Indica como modificarías/completarías este esquema para que contemple las siguientes restricciones:

contemple las siguientes restricciones: a)

a) No pNo pueuede de hahabeber dor dos ps perersosonanas cs con eon el mil mismsmo DNo DNI.I. b)

b) TTododo eo empmpleleadado eo es us una na peperrsonsona.a. c)

c) No pNo pueuede hde hababer der dos eos empmpleleadados cos con eon el mil mismsmo noo nombmbrere.. d)

d) TTododa pea persrsonona tia tienene une una dia direreccccióión.n. e)

e) Un eUn empmplealeado sdo solo olo puepuede pde perterteneenecer cer a un a un depdepartartameamentnto.o. f)

(55)

3.3. Introducción al diseño de BD

3.3. Introducción al diseño de BD

Bloque III – Bases de Datos

(56)

Problemas en el diseño

Problemas en el diseño

Dificultades en el diseño de BD

Dificultades en el diseño de BD

 – 

 –  Hasta ahora hemos pensado directamentHasta ahora hemos pensado directamente en e en las tablas quelas tablas que

necesitamos en la base de

necesitamos en la base de datosdatos

 – 

 –  Diseñar la BD Diseñar la BD de esta forma puede dar lugar a problemas en elde esta forma puede dar lugar a problemas en el

diseño resultante diseño resultante

• Información redundanteInformación redundante •

• Inconsistencias en los datosInconsistencias en los datos •

(57)

Problemas en el diseño

Problemas en el diseño

57 57 Coche_mod Coche_mod Matrícula

Matrícula Marca Marca Modelo Modelo Color Color Potencia Potencia PesoPeso 5634HJI

5634HJI Seat Seat Córdoba Córdoba Rojo Rojo 100 100 10201020 2312FGT

2312FGT Seat Seat Ibiza Ibiza VVerde erde 100 100 10901090 1233HJT

1233HJT Peugeot Peugeot 206 206 VerVerde de 70 70 10201020 8954ERT

8954ERT Seat Seat Córdoba Córdoba Azul Azul 100 100 11201120 9876ERT

9876ERT Seat Seat IbiIbiza za Rojo Rojo 90 90 10801080

Ejemplo: Suponiendo que un modelo tiene una única potencia

Ejemplo: Suponiendo que un modelo tiene una única potencia

y un único peso, ¿qué problemas puede tener esta relación?

y un único peso, ¿qué problemas puede tener esta relación?

(58)

Problemas en el diseño

Problemas en el diseño

Libros

Libros

ID

ID Autor Autor Título Título Editorial Editorial PáginasPáginas 10

10 Juan Juan Bases Bases de de datos datos A A 623623 20

20 Pedro Pedro Sistemas Sistemas Operativos Operativos B B 234234 30

30 Juan Juan Bases de Bases de Datos Datos A A 523523

Ejemplo: Suponiendo que hay una única edición de

Ejemplo: Suponiendo que hay una única edición de cada libro,

cada libro,

¿qué problemas puede tener

(59)

Problemas en el diseño

Problemas en el diseño

59 59 Copia Copia ID ISBN ID ISBN 1 10 1 10 2 20 2 20 3 10 3 10 Libros Libros ISBN

ISBN Autor Autor Título Título Editorial Editorial PáginasPáginas 10

10 Juan Juan Bases Bases de de datos datos A A 623623 20

20 Pedro Pedro Sistemas Sistemas Operativos Operativos B B 234234

Los problemas de la relación anterior se podrían solucionar así:

Los problemas de la relación anterior se podrían solucionar así:

(60)

Proceso de diseño de una BD

Proceso de diseño de una BD

Proceso de diseño e implementación de una BD

Proceso de diseño e implementación de una BD

 – 

 –  No se piensa directamente en las tablas de la BDNo se piensa directamente en las tablas de la BD  – 

(61)

Proceso de diseño de una BD

Proceso de diseño de una BD

61 61 Análisis de Análisis de requisitos requisitos Modelo Modelo conceptual conceptual Modelo lógico Modelo lógico Implementación Implementación Dominio de Dominio de interés interés

(62)

Proceso de diseño de una BD

Proceso de diseño de una BD

Análisis de Análisis de requisitos requisitos Modelo Modelo conceptual conceptual Modelo lógico Modelo lógico Dominio de Dominio de interés

interés ••

Análisis de requisitos de la BD

Análisis de requisitos de la BD

 – 

 –  Normalmente, no conocemos losNormalmente, no conocemos los

detalles del dominio de interés detalles del dominio de interés

 – 

 –  Conocer y analizar las expectativas de losConocer y analizar las expectativas de los

usuarios y los usos que se

usuarios y los usos que se piensa dar a lapiensa dar a la base de datos

(63)

Proceso de diseño de una BD

Proceso de diseño de una BD

63 63 Análisis de Análisis de requisitos requisitos Modelo Modelo conceptual conceptual Modelo lógico Modelo lógico Implementación Implementación Dominio de Dominio de interés

interés ••

Modelo conceptual

Modelo conceptual

 – 

 –  Descripción conceptual del dominio deDescripción conceptual del dominio de

interés interés

 – 

 –  Se crea un modelo independiente delSe crea un modelo independiente del

SGBD en el que se

SGBD en el que se vayvaya a hacer laa a hacer la implementación de la BD

implementación de la BD

 – 

(64)

Proceso de diseño de una BD

Proceso de diseño de una BD

Análisis de Análisis de requisitos requisitos Modelo Modelo conceptual conceptual Modelo lógico Modelo lógico Dominio de Dominio de interés

interés ••

Modelo lógico

Modelo lógico

 – 

 –  Se crea un modelo que se Se crea un modelo que se corresponcorrespondada

con la

con la estructurestructura lógica específica dela lógica específica del SGBD en el

SGBD en el que se implementará la BDque se implementará la BD

 – 

 –  En BD En BD relacionalesrelacionales •

• MODELO RELACIONALMODELO RELACIONAL

 – 

(65)

Proceso de diseño de una BD

Proceso de diseño de una BD

65 65 Análisis de Análisis de requisitos requisitos Modelo Modelo conceptual conceptual Modelo lógico Modelo lógico Implementación Implementación Dominio de Dominio de interés

interés ••

Implementación

Implementación

 – 

 –  Se implementan las tablas en el SGBDSe implementan las tablas en el SGBD  – 

 –  Ejemplo SQL:Ejemplo SQL:

CREATE TABLE alumno ( CREATE TABLE alumno (

cod NUMERIC(5), cod NUMERIC(5), nombre VARCHAR(50), nombre VARCHAR(50), titulacion VARCHAR(3), titulacion VARCHAR(3),

CONSTRAINT pk_alum PRIMARY KEY (cod)); CONSTRAINT pk_alum PRIMARY KEY (cod));

(66)

3.1 Modelo Entidad/Relación

3.1 Modelo Entidad/Relación

Bloque III – Bases de Datos

(67)

Modelado conceptual

Modelado conceptual

¿Qué es un modelo?

¿Qué es un modelo?

 – 

 –  Esquema o representación abstracta de un sistema o realidadEsquema o representación abstracta de un sistema o realidad

compleja que se elabora para facilitar su comprensión y el compleja que se elabora para facilitar su comprensión y el estudio de su comportamiento.

estudio de su comportamiento.

Modelo conceptual de datos

Modelo conceptual de datos

 – 

 –  Un esquema de alto nivel de las necesidades de informaciónUn esquema de alto nivel de las necesidades de información •

• ¿De qué entidades del dominio hay que almacenar¿De qué entidades del dominio hay que almacenar

información? información?

• ¿Qué información hay que almacenar para cada entidad?¿Qué información hay que almacenar para cada entidad? •

• ¿Cómo se relacionan entre si las entidades?¿Cómo se relacionan entre si las entidades?

67

(68)

Modelo entidad relación (E/R)

Modelo entidad relación (E/R)

Modelo entidad relación (E/R)

Modelo entidad relación (E/R)

 – 

 –  Modelamos el dominio de interés como un conjunto deModelamos el dominio de interés como un conjunto de

entidades

entidades entre las que existenentre las que existen relacionesrelaciones

• ¿De qué entidades hay que almacenar información?¿De qué entidades hay que almacenar información? •

• ¿Qué información hay que almacenar para cada entidad?¿Qué información hay que almacenar para cada entidad? •

(69)

Entidades

Entidades

Entidades

Entidades

 – 

 –  UnaUna entidadentidad es una “cosa” u “objeto” del mundo real,es una “cosa” u “objeto” del mundo real,

distinguib

distinguible de le de los demás objetoslos demás objetos

• Ejemplo: empleados, departamentos, proyectos, …Ejemplo: empleados, departamentos, proyectos, …  – 

 –  Cada entidad tiene Cada entidad tiene propiedades específicpropiedades específicas, llamadasas, llamadas atributosatributos,,

que las describen que las describen

• Ejemplo empleados: código, nombre, salario, comisión, …Ejemplo empleados: código, nombre, salario, comisión, …  – 

 –  UnUn tipo de entidadtipo de entidad define una colección de entidades quedefine una colección de entidades que

poseen los mismos atributos poseen los mismos atributos

69

(70)

Entidades

Entidades

Representación gráfica

Representación gráfica

 – 

 –  Tipo de Tipo de entidad: Empleadoentidad: Empleado  – 

 –  AtributAtributos: código de os: código de empleado, nombre, salario y empleado, nombre, salario y comisióncomisión  – 

 –  La clave primaria se subrayaLa clave primaria se subraya

Empleado Empleado código código nombre nombre salario salario comisión comisión

(71)

Relaciones

Relaciones

Relaciones

Relaciones

 – 

 –  Dos entidades pueden estarDos entidades pueden estar relacionadasrelacionadas entre si entre si •

• Ejemplo: el empleado 7369 trabaja en el Ejemplo: el empleado 7369 trabaja en el departamentdepartamento 20o 20  – 

 –  UnUn tipo de relacióntipo de relación representa un conjunto de relaciones entrerepresenta un conjunto de relaciones entre

entidades de dos tipos de

entidades de dos tipos de entidadentidad

71 71 Empleado Empleado código código nombre nombre salario salario comisión comisión Departamento Departamento código código nombre nombre localidad localidad trabaja trabaja en en

(72)

Relaciones

Relaciones

Cardinalidad y participación, notación (min, max)

Cardinalidad y participación, notación (min, max)

 – 

 –  Un empleado trabaja como mínimo e 1 departamento, y comoUn empleado trabaja como mínimo e 1 departamento, y como

máximo en 1 máximo en 1

 – 

 –  En un departamento trabajan como mínimo 0 empleados, En un departamento trabajan como mínimo 0 empleados, yy

como máximo n como máximo n Empleado Empleado código código nombre nombre salario salario comisión comisión Departamento Departamento código código nombre nombre localidad localidad trabaja trabaja en en (1,1) (1,1) (0,n)(0,n)

(73)

Relaciones

Relaciones

73 73 Empleado Empleado código código nombre nombre salario salario comisión comisión Departamento Departamento código código nombre nombre localidad localidad trabaja trabaja en en (1,1) (1,1) (0,n)(0,n)

(min, max)

(min, max)

Participación

Cardinalidad

Participación

Cardinalidad

(74)

Relaciones

Relaciones

Cardinalidad de las relaciones

Cardinalidad de las relaciones

 – 

 –  Uno a uno (1:1)Uno a uno (1:1) •

• Un empleado dirige uno y solo Un empleado dirige uno y solo un departamentun departamento (0,1), y o (0,1), y unun

departament

departamento es dirigido por o es dirigido por solo un empleado (1,1)solo un empleado (1,1)

 – 

 –  De uno a muchos (1:N)De uno a muchos (1:N) •

• Un empleado trabaja en uno y Un empleado trabaja en uno y solo un departamento (1,1) ysolo un departamento (1,1) y

en un departamento trabajan de 0 a n

en un departamento trabajan de 0 a n empleados (1,n)empleados (1,n)

 – 

 –  De muchos a muchos (M:N)De muchos a muchos (M:N) •

• Un alumno estudia de 1 a n asignaturas (1,m), y en unaUn alumno estudia de 1 a n asignaturas (1,m), y en una

asignatur

(75)

Relaciones

Relaciones

Participación en las relaciones

Participación en las relaciones

 – 

 –  TotalTotal: cada entidad tiene que estar relacionada con otra: cada entidad tiene que estar relacionada con otra •

• Ejemplo: cada empleado tiene que trabajar en unEjemplo: cada empleado tiene que trabajar en un

departament

departamento o (1,1)(1,1)

 – 

 –  ParcialParcial: cada entidad no tiene que : cada entidad no tiene que estar relacionadestar relacionada con otraa con otra •

• Ejemplo: un empleado no tiene que Ejemplo: un empleado no tiene que estar asignado a unestar asignado a un

departamen

departamento to (0,1)(0,1)

75

(76)

Ejemplo -

(77)

3.2 Paso a modelo relacional

3.2 Paso a modelo relacional

Bloque III – Bases de Datos

(78)

Transformación modelo E/R a modelo relacional

Transformación modelo E/R a modelo relacional

Transformación de modelo E/R a modelo relacional

Transformación de modelo E/R a modelo relacional

 – 

 –  Transformamos el esquema entidad-relación de la BD en unTransformamos el esquema entidad-relación de la BD en un

conjunto de relaciones con claves primarias y claves foráneas conjunto de relaciones con claves primarias y claves foráneas

 – 

(79)

Transformación modelo E/R a modelo relacional

Transformación modelo E/R a modelo relacional

Regla 1: tipos de entidad

Regla 1: tipos de entidad

 – 

 –  Cada tipo de entidad en el esquema E/R se Cada tipo de entidad en el esquema E/R se convieconvierte en unarte en una

relación en el esquema

relación en el esquema relacionalrelacional

 – 

 –  La clave primaria de la relación es la La clave primaria de la relación es la clavclave primaria del tipo dee primaria del tipo de

relación relación

Regla 2: tipos de relación 1:1

Regla 2: tipos de relación 1:1

 – 

 –  Cada tipo de entidad que participa en el tipo de relación se haCada tipo de entidad que participa en el tipo de relación se ha

transformado en una relación (regla 1) transformado en una relación (regla 1)

 – 

 –  La clave primaria de una La clave primaria de una de las de las dos relaciones correspondidos relaciones correspondientes aentes a

los tipos de entidad se incluye como clave foránea en la otra los tipos de entidad se incluye como clave foránea en la otra relación

relación

79

(80)

Transformación modelo E/R a modelo relacional

Transformación modelo E/R a modelo relacional

Regla 3: tipos de relación 1:N

Regla 3: tipos de relación 1:N

 – 

 –  Cada tipo de entidad que participa en el tipo de relación se haCada tipo de entidad que participa en el tipo de relación se ha

transformado en una relación (regla 1) transformado en una relación (regla 1)

 – 

 –  La clave primaria de la La clave primaria de la relación corresporelación correspondientndiente al e al tipo detipo de

entidad del lado N se convierte en una clave foránea en la entidad del lado N se convierte en una clave foránea en la relación corr

relación correspondientespondiente al e al tipo de tipo de entidad del lado 1entidad del lado 1

Regla 4: tipos de relación N:M

Regla 4: tipos de relación N:M

 – 

 –  Se crea una nueva relación en la que se incluyen como clavesSe crea una nueva relación en la que se incluyen como claves

foráneas las claves primarias de las relaciones correspondientes a foráneas las claves primarias de las relaciones correspondientes a los tipos de entidad

(81)

Transformación modelo E/R a modelo relacional

Transformación modelo E/R a modelo relacional

Ejemplo

Ejemplo

81

(82)

Transformación modelo E/R a modelo relacional

Transformación modelo E/R a modelo relacional

Ejemplo

Ejemplo

Regla 1 (tipo de entidad

(83)

Transformación modelo E/R a modelo relacional

Transformación modelo E/R a modelo relacional

83

83

Empleado(código

Empleado(código, nombre,

, nombre, salario)

salario)

Departamento(c

Departamento(código, nombre,

ódigo, nombre, localidad)

localidad)

Proyecto(código, nombre, presupuesto)

Proyecto(código, nombre, presupuesto)

(84)

Transformación modelo E/R a modelo relacional

Transformación modelo E/R a modelo relacional

Ejemplo

Ejemplo

Regla 3 (tipo de relación 1:N

(85)

Transformación modelo E/R a modelo relacional

Transformación modelo E/R a modelo relacional

85

85

Empleado(código

Empleado(código, nombre,

, nombre, salario, deptno)

salario, deptno)

Departamento(c

Departamento(código, nombre,

ódigo, nombre, localidad)

localidad)

Proyecto(código, nombre, presupuesto)

Proyecto(código, nombre, presupuesto)

(86)

Transformación modelo E/R a modelo relacional

Transformación modelo E/R a modelo relacional

Ejemplo

Ejemplo

Regla 4 (tipo de relación N:M

(87)

Transformación modelo E/R a modelo relacional

Transformación modelo E/R a modelo relacional

87

87

Empleado(código

Empleado(código, nombre,

, nombre, salario, deptno)

salario, deptno)

Departamento(c

Departamento(código, nombre,

ódigo, nombre, localidad)

localidad)

Proyecto(código, nombre, presupuesto)

Proyecto(código, nombre, presupuesto)

Participa(cod_proyecto, cod_depto)

Participa(cod_proyecto, cod_depto)

Figure

Actualización...

Referencias

Actualización...

Related subjects :