diseño de bases de datos relacionales - uv.mx · pdf fileintroducción el...

23
DISEÑO DE BASES DE DATOS RELACIONALES Bases de Datos I MIS. Lizbeth Alejandra Hernández González

Upload: truongkhanh

Post on 08-Feb-2018

226 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

DISEÑO DE BASES DE DATOS RELACIONALES

Bases de Datos I

MIS. Lizbeth Alejandra Hernández González

Page 2: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

Introducción

El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales que nos permita almacenar la información sin redundancias innecesarias, pero que también nos permita recuperar fácilmente esa información.

Un enfoque es el diseño de esquemas que se hallen en una forma normal adecuada.

2

Page 3: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

Primera Forma Normal (1FN)

Un dominio es atómico si se considera que los elementos del dominio son unidades indivisibles.

Se dice que el esquema de una relación R está en la primera forma normal (1FN) si los dominios de todos los atributos de R son atómicos.

3

Page 4: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

Un conjunto de nombres es un ejemplo de valor no atómico.

Por ejemplo, si el esquema de la relación empleado incluyera el atributo hijos, los elementos de cuyo dominio son conjuntos de nombres, el esquema no se hallaría en la primera forma normal.

4

Page 5: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

Los enteros son atómicos, pero no el conjunto de ellos.

La nomenclatura para préstamos no es atómica

Pn

5

Page 6: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

Redundancia

Por ejemplo, en lugar de representar la relación entre las cuentas y los clientes como una relación independiente impositor, puede que un diseñador de bases de datos esté tentado a almacenar un conjunto de titulares con cada cuenta y un conjunto de cuentas con cada cliente.

6

Número-cuenta titular

001 José Omar

002 Jorge Omar

003 Diana

cliente cuenta

José Omar 001

José Omar 002

Page 7: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

No abusar

En muchos dominios en los que las entidades tienen una estructura compleja, la imposición de la representación en la primera forma normal representa una carga innecesaria para el programador de las aplicaciones, que tiene que escribir código para convertir los datos a su forma atómica.

Preguntarnos si los datos se pueden dividir en otros datos.

7

Page 8: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

Entre las propiedades indeseables que puede tener un mal diseño están:

Repetición de la información

Imposibilidad de la representación de determinada información

Esquema-empréstito = (nombre-sucursal, ciudad-sucursal, activo, nombre-cliente, número-préstamo, importe)

8

Page 9: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

(Navacerrada, Aluche, 1.700.000, Fernández, P-31, 1.500)

9

Page 10: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

Las actualizaciones resultan más costosas con el diseño alternativo que con el original.

Hay redundancia de información.

Para saber la información de una sucursal debería haber un préstamo y borrarlo cuando se haya pagado, perdiendo los valores de sucursal.

10

Page 11: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

Segunda Forma Normal (2FN) Dependencias Funcionales

Una dependencia funcional es un tipo de restricción que generaliza el concepto de clave.

Las dependencias funcionales nos permiten expresar las restricciones que no se pueden expresar con las superclaves.

Las dependencias funcionales son restricciones del conjunto de relaciones legales.

11

Page 12: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

Permiten expresar hechos sobre la empresa que se modela con la base de datos.

Sea R y sean α ⊆ R y β ⊆ R.

La dependencia funcional α →β

se cumple para el esquema R si, en cualquier relación legal r (R), para todos los pares de tuplas t1 y t2 de r tales que

t1 [α] = t2 [α], también ocurre que t1 [β] = t2 [β].

Se lee α determina funcionalmente a β

12

Page 13: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

Ejemplos

Esquema-info-préstamo = (número-préstamo, nombre-sucursal, nombre-cliente, importe)

número-préstamo → importe

número-préstamo → nombre-sucursal

Sin embargo, no se espera que se cumpla la dependencia funcional

número-préstamo → nombre-cliente

ya que, en general, cada préstamo se puede conceder a más de un cliente

13

Page 14: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

Las dependencias funcionales se utilizarán de dos maneras:

1. Para probar las relaciones y ver si son legales según un conjunto dado de dependencias funcionales.

Si una relación r es legal según el conjunto F de dependencias funcionales, se dice que r satisface F.

14

Page 15: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

Las dependencias funcionales se utilizarán de dos maneras:

2. Para especificar las restricciones del conjunto de relaciones legales.

Sólo habrá que preocuparse por las relaciones que satisfagan un conjunto dado de dependencias funcionales.

Si uno desea restringirse a las relaciones del esquema R que satisfagan el conjunto F de dependencias funcionales, se dice que F se cumple en R.

15

Page 16: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

¿Se cumple?:

AC

C →A

16

Page 17: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

AB → D

Por tanto, si t1 [AB] = t2 [AB],

debe ser que t1 = t2 y, por tanto, t1 [D] = t2 [D]

17

Page 18: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

Dependencias funcionales TRIVIALES Las dependencias funcionales son triviales

porque las satisfacen todas las relaciones.

A → A la satisfacen todas las relaciones que impliquen al atributo A.

AB →A

la satisfacen todas las relaciones que impliquen al atributo A. En general, una dependencia funcional de la forma α →β es trivial si β ⊆ α.

18

Page 19: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

Considerando el ejemplo del banco

19

La relación cliente. La relación préstamo.

La relación sucursal.

Page 20: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

¿Se cumplen?

Cliente

calle-cliente → ciudad-cliente

Préstamo

número-préstamo → importe

Sucursal

nombre-sucursal → activo

activo → nombre-sucursal

20

Page 21: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

Ejercicio

Enumeren la lista de dependencias funcionales obligatorias para los esquemas:

Sucursal

Cliente

Préstamo

Prestatario

Cuenta

Impositor

21

Page 22: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

Axiomas de Armstrong

Regla de la reflexividad. Si α es un conjunto de atributos y β ⊆α, entonces se cumple que α →β.

Regla de la aumentatividad. Si se cumple que α →β y γ es un conjunto de atributos, entonces se cumple que γα →γβ.

Regla de la transitividad. Si se cumple que α →β y también se cumple que β →γ, entonces se cumple que α →γ.

22

Page 23: DISEÑO DE BASES DE DATOS RELACIONALES - uv.mx · PDF fileIntroducción El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales

Cerradura de un conjunto de atributos Para un esquema R y un conjunto de atributos ,

si α R entonces es α superllave

para determinar lo anterior se puede encontrar α+, todos los atributos que dependen funcionalmente de α teniendo R(A,B,C,D,E)

23