Bases de Datos - Apuntes - TEORÍA BD20142015 PDF

Title Bases de Datos - Apuntes - TEORÍA BD20142015
Course Bases de Datos
Institution Universidade da Coruña
Pages 22
File Size 983 KB
File Type PDF
Total Downloads 161
Total Views 212

Summary

BASE DE DATOS MODELO 1. Atributos. Los atributos pueden ser: Simples: Compuestos: Monovaluado: Solo tener un valor en la BD Multivaluado: tener de un valor en la BD Almacenado: Se encuentra en la BD Derivado: Deriva de un posible a partir de otros datos de la BD Nota: Se pueden encontrar en una cuan...


Description

BASE DE DATOS MODELO ENTIDAD-RELACIÓN

1. Atributos. Los atributos pueden ser:  Simples:



Compuestos:



Monovaluado: Solo podrá tener un valor en la BD



Multivaluado: Podrá tener más de un valor en la BD



Almacenado: Se encuentra en la BD



Derivado: Deriva de un posible cálculo a partir de otros datos de la BD

Nota: Se pueden encontrar en una relación, cuando va a tener un valor distinto para cada entidad

1

2. Tipos de entidad (a) Entidades fuertes: Son las entidades más comunes y que se definen a sí mismas con un identificador o clave primaria.

(b) Entidades débiles: Este tipo de relación se da cuando una entidad no puede identificarse por sí misma y debe apoyarse en otra para poder hacerlo. Suelen tener carnalidad 1:N

En el caso del autobús no puedo identificar un asiento con su número ya que, por ejemplo, todos los autobuses tienen un asiento nº 12. Recordemos pues la restricción de entidades: todo tipo de entidad debe tener un tipo de identificador.

1. Saber de quién es débil. 2. Marcarla con doble línea tanto la entidad como la relación. 3. Subrayar discontinuamente el discriminador, aquel de la entidad débil que funcionara para identificarla.

2

3. Tipos de relación Dos tipos de relación: (a) Binaria

(b) Ternaria

3

(c ) Ciclica: La cardinalidad es lo más difícil de situar en este tipo de relación, por eso ponemos un rol a cada lado.

4. Máximos y mínimos. Anotación: (min,max)

Se lee de la siguiente manera: -Un empleado trabaja como mínimo en un departamento y como máximo en un departamento. -Un departamento está formado como mínimo en por un trabajador y como máximo por N trabajadores. La cardinalidad de una relación se mide por sus máximos:

4

Ejemplo Modelo ER:

La empresa está organizada en departamentos. Cada departamento tiene un nombre único, un número único y siempre tiene un empleado que lo dirige. Nos interesa la fecha en que dicho empleado comenzó a dirigir el departamento. Un departamento puede estar distribuido en varios lugares. Cada departamento controla un cierto número de proyectos, cada uno de los cuales tienen un nombre y número únicos, y tiene un presupuesto. Un departamento puede no estar involucrado en proyectos. Almacenaremos el nombre, número de seguridad social, direcci´on, salario, sexo y fecha de nacimiento de cada empleado. Todo empleado está asignado a un departamento, pero puede trabajar en varios proyectos, que no necesariamente estarán controlados por el mismo departamento. Nos interesa el número de horas por semana que un empleado trabaja en cada proyecto, y también quien es supervisor directo de cada empleado. No todo empleado es supervisor. Queremos mantenernos al tanto de las bajas de cada empleado dado que la empresa solo paga parte del salario cuando se está en esa situación. De cada baja almacenaremos la fecha de inicio, la de fin y una descripción con el motivo

5

Nota: Para representar históricos solemos usar entidades débiles.

Existen dos problemas que es posible que aparezcan en los ER denominadas trampas de conexión. Hay dos tipos:  La trampa del abanico o trampa multiplicativa  La trampa del sumidero o trampa de corte

Ejemplo trampa del sumidero:

Ejemplo trampa del sumidero solucionado:

6

MODELO RELACIONAL Tomaremos como ejemplo el ejercicio hecho anteriormente.

Pasos a seguir para pasar un modelo E-R a Relacional: 1. Entidades fuertes: Una tabla por cada entidad fuerte, con todos sus atributos.

(a) Los atributos derivados se omiten. (b) Los atributos compuestos se colocan en la tabla como un atributo más. (c) Para los atributos multivaluados crearemos una nueva tabla. i.

Para identificar las tablas de los atributos multivaluados se coge la clave de la entidad fuerte y el propio atributo. Ambas son claves. Si alguno de sus claves, es primaria en otra tabla, entonces se denominará como una clave foránea, partiendo siempre una flecha de la clave foránea a la clave primaria. Ejemplo de la LOCALIZACIÓN.

7

2. Entidades débiles: Se crea una nueva tabla por cada entidad débil con todos sus atributos, identificada por la clave primaria de la entidad débil y la primaria de su entidad fuerte, por lo que ambas se subrayan. La clave primaria de su fuerte que hemos puesto en la nueva tabla, será clave foránea, que irá con una flecha desde la clave de la entidad débil hasta la fuerte. Ejemplo de BAJA.

8

3. Relación binaria 1:1 : Escogemos la que tenga una participación total, es decir, una (1,1), y se añade en su tabla una clave foránea que haga referencia a la clave primaria de la entidad con la que se relaciona, por lo tanto, la flecha irá desde la (1,1) a la otra. Ejemplo de DEPARTAMENTO con EMPLEADO.

4. Relación binaria 1:N : Identificamos el lado que tiene la participación N. Metemos la clave primaria del lado N como clave foránea en la otra entidad. En el caso de que exista algún atributo de la relación se introducirá en la entidad cuya participación es N.

9

5. Relación binaria M:N : Para cada relación M:N creamos una nueva tabla. Las claves foráneas serán las claves primarias de las entidades que se relacionan y funcionarán como identificadores, por lo que se subrayan. En caso de existir algún atributo de la relación, se añadirá a la nueva tabla creada.

10

El objetivo de la normalización es: -Minimizar la redundancia -Minimizar anomalías Los atributos pueden ser: A.N.P (atributos no primos): No forman parte de ninguna clave candidata A.P (atributos primos): Forman parte de una clave candidata. Las formas de normalización son:    

1FN 2FN 3FN FNBC- Forma Normal de Boyce Code

1 FN Siempre supondremos que trabajamos en 1FN, donde todo atributo es simple (monovaluado) y no tiene repetidos.

2 FN Debe de estar en 1FN. No existen dependencias funcionales (df) para los atributos no primos A.N.P

3 FN Si está en 2FN y ningún A.N.P depende transitivamente de una clave candidata (CC). No puede haber dependencias transitivas y se cumple:  

X-->Y trivial X superclave, debe de estar en la CC



Y debe de ser A.P

11

FNBC Se tiene que cumplir que:   

Todas las df son CCX XY trivial X superclave

Ejemplo: DEPT(DEPTNO, DNAME, LOC) F= {DEPTNO DNAME , DNAMEDEPTNO}

**Siempre que queramos definir una FN tendremos que saber el conjunto de CC. CC: {LOC, DEPTNO}, {LOC, DNAME} En cada conjunto tenemos que poder llegar a TODO lo que está en la F En la F vemos que a través del DEPTNO hayamos el DNAME y viceversa. 1FN Está en 1FN 2FN Para saber si está en 2FN, anteriormente, supusimos demás, realmente partimos que solo de DEPTNO podemos haya DNAME. F= {DEPTNO DNAME} CC: {LOC, DEPTNO} A.P : DEPTNO,LOC A.N.P : DNAME DEPTNO sólo es subconjunto, no toda la CC. Recordemos que para estar en 2FN los ANP deben de depender de toda la clave candidata y aquí solo lo hace de una parte, de DEPTNO, no de LOC, por lo que la dependencia es parcial, es decir, no está en 2FN.

12

Ejemplo2: R(A, B, C, D, E, K) F1= {KD, EDC, ABE} CC: {ABK} 1FN Está en 1FN 2FN A.N.P : E,… A.P : A,B, K Vemos que ya con el atributo E, podríamos determinar que, al solo depender de parte de la CC y no de toda ella (faltaría que dependiese de K), no está en 2FN.

F2= {ABC, CD, DEK, ABK} CC: {A} 1FN Está en 1FN 2FN A.N.P : B,C,D,E,K A.P : A Vemos que todos los ANP, o bien depende de toda la CC, o no dependen de ella, por lo que al no existir dependencias parciales podremos decir que está en 2FN. 3FN No está en 3FN porque C no es superclave (no está en la CC) y D es un ANP, y para estar en 3FN debe de ser un A.P.

13

Ejemplo3: F= {{Modelo}{Marca, Potencia, Peso}, {Matricula}{Modelo, Color}} CC:  

{Matricula}{Modelo} {{Modelo}{Potencia}

Potencia es un ANP. Es transitiva por lo que no puede estar en 3FN.

Ejemplo4: F= {CDE, CA,AB, EC} Con los atributos de una letra. Df+= D no es CC, ya que solo D no llego a ninguna otra, y empiezo porque ninguna da D Con los atributos de dos letras con D ADf+=ADB BDf+= DB CDf+= CDEAB, llego a todas, es clave candidata EDf+= EDCAB, llego a todas, es clave candidata Con los atributos de tres letras, con D y que no sean supercojuntos de las claves candidatas ABDf+=ABD CC= CD, ED ANP= A, B 1FN Está en 1FN 2FN Los ANP deben depender de toda la CC, como vemos, A depende de C pero no de D, así que existiría una dependencia parcial, por lo que no podría estar en 2FN. Ejemplo5: F2= {ABE, ABC, ABD, CDA, CDB} Con los atributos de una letra. 14

Todos tienen dos letras de antecedentes, los de una no serán CC.

ABf+=ABECD CDf+= CDABE, llego a todas, es clave candidata Si escogemos más CC de conjuntos de dos siempre van a ser el propio atributo, no aplican. CC= AB, CD 1FN Está en 1FN 3FN Y FNBC Está en 3FN y en FNBC ya que todos los antecedentes son CC.

Ejemplo6: F= {DAC, DAB, BE, CD} Con los atributos de una letra. Af+= A no es CC, ya que solo A no llego a ninguna otra, y empiezo porque ninguna da A Con los atributos de dos letras con A ABf+=ABE ACf+= ACDBE, llego a todas, es clave candidata ADf+= ADCBE, llego a todas, es clave candidata AEf+=AE Con los atributos de tres letras, con A y que no sean supercojuntos de las claves candidatas ABEf+=ABE, no é CC, non aplica. CC= AC, AD 1FN Está en 1FN

15

2FN ANP: B, E Los ANP no dependen parcialmente de ninguna de las CC, ya que B depende totalmente de AD, y no hay ninguna dependencia con AC por lo que estaría en 2FN. 3FN Existen dependencias transitivas: DAB , BE . B no es superclave E no es un ANP. No está en 3FN. Ejemplo7: F= {ACB, ACD, CE, EC} Con los atributos de una letra. Af+= A no es CC, ya que con solo A no llego a ninguna otra, y empiezo porque ninguna da A Con los atributos de dos letras con A ABf+=AB ACf+= ACBDE, llego a todas, es clave candidata ADf+= AD AEf+=AECDB, llego a todas, es clave candidata Con los atributos de tres letras, con D y que no sean supercojuntos de las claves candidatas ABDf+=ABD, no é CC, non aplica.

CC=AC, AE 1FN Está en 1FN 2FN ANP: B, D Los ANP no dependen parcialmente de ninguna de las CC, ya que B depende totalmente de AC y D depende totalmente de AC por lo que está en 2FN.

16

3FN Está en 3FN FNBC Non está en 3FN

17

Ejercicio Hospital R= (NHC, NOMEP, AP1P, AP2P, TLF, NSS, NOMEM, AP1M, AP2M, DATA CITA, HORA CITA, LUGAR, MEDICAMENTO, DOSE, DURACIÓN) F= {NHCNOMEMP, AP1P, AP2P, TLF NSSNOMEM, AP1M, AP2M NSS, DATA, HORA NHC, LUGAR NSS, DATA, HORA, MEDICAMENTO DOSE, DURACIÓN}

**No todos los atributos tienen que estar en los consecuentes, sino que deben de estar en la CC. CC:{NSS, DATA, HORA, MEDICAMENTO}

1FN Está en 1FN 2FN NSS determina NOMEM, el cual es un ANP, por lo que hay dependencia parcial. Non está en 2FN. Por lo tanto, al no poder descomponer la relación universal R en FNBC, tendremos que descomponer. 1. NHCNOMEMP, AP1P, AP2P, TLF 2. NSSNOMEM, AP1M, AP2M 3. NSS, DATA, HORA NHC, LUGAR 4. NSS, DATA, HORA, MEDICAMENTO DOSE, DURACIÓN 1. R1 (NHC, NOMEMP, AP1P, AP2P, TLF) [Hemos cogido la primera df, se escribe toda] Resto1 (NHC, NSS, NOMEM, AP1M, AP2M, DATA CITA, HORA CITA, LUGAR, MEDICAMENTO, DOSE, DURACIÓN) Resto1 consistirá en toda la relación universal quitándole los atributos de la R1, dejando NHC, que determina lo que borro. F1= {NHCNOMEMP, AP1P, AP2P, TLF} Está en FNBC ya que la CC determina toda la F1, pero no está en 2FN, por lo que tenemos que continuar.

18

A partir de aquí ya no uso 1. 2. NSSNOMEM, AP1M, AP2M 3. NSS, DATA, HORA NHC, LUGAR 4. NSS, DATA, HORA, MEDICAMENTO DOSE, DURACIÓN 2. R2 (NSS, NOMEM, AP1M, AP2M) [Hemos cogido la primera df, se escribe toda] Resto2 (NHC, NSS, DATA CITA, HORA CITA, LUGAR, MEDICAMENTO, DOSE, DURACIÓN) Resto2 consistirá en toda la relación universal quitándole los atributos de la R2, dejando NSS, que determina lo que borro. F2= {NSSNOMEM, AP1M, AP2M} Está en FNBC ya que la CC determina toda la F2, pero sigue sin estar en 2FN, por lo que tenemos que continuar. A partir de aquí ya no uso 2. 3. NSS, DATA, HORA NHC, LUGAR 4. NSS, DATA, HORA, MEDICAMENTO DOSE, DURACIÓN 3. R3 (NSS, DATA, HORA, NHC, LUGAR) [Hemos cogido la primera df, se escribe toda] Resto3 (NSS, DATA CITA, HORA CITA, MEDICAMENTO, DOSE, DURACIÓN) Resto3 consistirá en toda la relación universal quitándole los atributos de la R3, dejando NSS, DATA CITA, HORA CITA que determina lo que borro. F2= {NSS, DATA, HORA NHC, LUGAR} Está en FNBC ya que la CC determina toda la F2, pero sigue sin estar en 2FN, por lo que tenemos que continuar. A partir de aquí ya no uso 3. 4. NSS, DATA, HORA, MEDICAMENTO DOSE, DURACIÓN 4. R4 (NSS, DATA CITA, HORA CITA, MEDICAMENTO, DOSE, DURACIÓN) [Hemos cogido la primera df, se escribe toda] [Nos fijamos que ahora R4, es igual a R3, y que está en FNBC, por lo que cumple todas las condiciones de las FN y podremos determinar la solución]

SOLUCIÓN: R1, R2, R3, R4 (resto 3)

19

Ejercicio Corruptos R= (CCASO, NCASO, DATAD, DICT, DNI, NOME, AP1, AP2, PATRI, SIGPART, NOMPART, TLFSEDE, ENDSEDE, CARGO, VERED, SENT, MULT) F= {CCASO NCASO, DATAD, DICT NCASO CCASO, DATAD, DICT [sacado de la última frase del enunciado] DNI NOME, AP1, AP2, PATRI, SIGPART, NOMPART SIGPART NOMPART, TLFSEDE, ENDSEDE NOMPART SIGPART, TLFSEDE, ENDSEDE CCASO, DNI, CARGO VERED, SENT, MULT NCASO, DNI, CARGO VERED, SENT, MULT}

**No todos los atributos tienen que estar en los consecuentes, sino que deben de estar en la CC. CC:{ CCASO, DNI, CARGO}, {NCASO, DNI, CARGO}

1FN Está en 1FN 2FN El CCASO determina DICT, que es un ANP, por lo que no está en 2FN. Por lo tanto, al no poder descomponer la relación universal R en FNBC, tendremos que descomponer. 1. CCASO NCASO, DATAD, DICT 2. NCASO CCASO, DATAD, DICT [sacado de la última frase del enunciado] 3. DNI NOME, AP1, AP2, PATRI, SIGPART, NOMPART 4. SIGPART NOMPART, TLFSEDE, ENDSEDE 5. NOMPART SIGPART, TLFSEDE, ENDSEDE 6. CCASO, DNI, CARGO VERED, SENT, MULT 7. NCASO, DNI, CARGO VERED, SENT, MULT

1. R1 (CCASO, NCASO, DATAD, DICT) [Hemos cogido la primera df, se escribe toda] Resto1 (CCASO, DNI, NOME, AP1, AP2, PATRI, SIGPART, NOMPART, TLFSEDE, ENDSEDE, CARGO, VERED, SENT, MULT) Resto1 consistirá en toda la relación universal quitándole los atributos de la R1, dejando CCASO, que determina lo que borro. F1= {CCASO NCASO, DATAD, DICT} {NCASO CCASO, DATAD, DICT} CC: CCASO, NCASO Está en FNBC y determina todo.

20

A partir de aquí ya no uso 1, tampoco la 2 porque la aplique en Resto1, y desaparece la 7 porque el NCASO, DNI no aplica ni en R1, ni en Resto1, ni en otra df. 1. CCASO NCASO, DATAD, DICT 2. NCASO CCASO, DATAD, DICT [sacado de la última frase del enunciado] 3. DNI NOME, AP1, AP2, PATRI, SIGPART, NOMPART 4. SIGPART NOMPART, TLFSEDE, ENDSEDE 5. NOMPART SIGPART, TLFSEDE, ENDSEDE 6. CCASO, DNI, CARGO VERED, SENT, MULT 2. R2 (SIGPART, NOMPART, TLFSEDE, ENDSEDE) Empiezo por la 4, porque según el algoritmo de descomposición, no podemos coger df que tengan consecuentes que son antecedentes en otro lado, por lo que en la 3, tengo de consecuente SIGPART, y está de antecedente en 4. Resto2 (CCASO, DNI, NOME, AP1, AP2, PATRI, SIGPART, CARGO, VERED, SENT, MULT) Resto2 consistirá en toda la relación universal quitándole los atributos de la R2, dejando SIGPART, que determina lo que borro. Está en FNBC ya que la CC determina toda la F2, pero no está en 2FN, por lo que tenemos que continuar. A partir de aquí ya no uso 4 ni 5, aplicadas en R2. En 3 tengo que quitar NOMPART, que ha desaparecido junto con 5 1. CCASO NCASO, DATAD, DICT 2. NCASO CCASO, DATAD, DICT [sacado de la última frase del enunciado] 3. DNI NOME, AP1, AP2, PATRI, SIGPART, NOMPART 4. SIGPART NOMPART, TLFSEDE, ENDSEDE 5. NOMPART SIGPART, TLFSEDE, ENDSEDE 6. CCASO, DNI, CARGO VERED, SENT, MULT 3. R3 (DNI, NOME, AP1, AP2, PATRI, SIGPART) [Hemos cogido la primera df, se escribe toda] Resto3 (CCASO, DNI, CARGO, VERED, SENT, MULT) Resto3 consistirá en toda la relación universal quitándole los atributos de la R3, dejando DNI, que determina lo que borro.

21

A partir de aquí ya no uso 3. 1. CCASO NCASO, DATAD, DICT 2. NCASO CCASO, DATAD, DICT [sacado de la última frase del enunciado] 3. DNI NOME, AP1, AP2, PATRI, SIGPART, NOMPART 4. SIGPART NOMPART, TLFSEDE, ENDSEDE 5. NOMPART SIGPART, TLFSEDE, ENDSEDE 6. CCASO, DNI, CARGO VERED, SENT, MULT 4. R4 (CCASO, DNI, CARGO, VERED, SENT, MULT) [Hemos cogido la primera df, se escribe toda] [Nos fijamos que ahora R4, es igual a R3, y que está en FNBC, por lo que cumple todas las condiciones de las FN y podremos determinar la solución]

SOLUCIÓN: R1, R2, R3, R4 (resto 3)

22...


Similar Free PDFs