Está en la página 1de 8

Claves candidatas y primarias

Una clave candidata para una relacin R es un


subconjunto C de los atributos de R tales que se
cumplen las siguientes propiedades:
Propiedad de unicidad. No existen dos tuplas de R con
los mismos valores para C.
Propiedad de irreducibilidad. No existe un subconjunto
de C que cumpla con la propiedad de unicidad.

Diseo de Bases de
Datos
Franco Guidi Polanco
Escuela de Ingeniera Industrial
Pontificia Universidad Catlica de Valparaso, Chile
fguidi@ucv.cl

Consecuencia: debido a que una relacin no puede


tener tuplas duplicadas, esta debe contener al
menos una clave candidata.

Revisin: 7 de Junio de 2005


Franco Guidi Polanco

Claves candidatas y primarias

Clave primaria y claves alternas

Es posible que una relacin tenga ms de una


clave candidata.

Cuando existe ms de una clave candidata, a una


de ellas se le llama clave primaria, y a las
restantes, claves alternas.

Una clave candidata puede componerse de ms de


un atributo.

Si existe solo una clave candidata, esta debe ser la


clave primaria.

Clave simple: compuesta por un atributo.


Clave compuesta: compuesta por ms de un atributo.

Si existe ms de una clave candidata, se


determina cul de ellas ser clave primaria slo en
funcin de la simplicidad.

Franco Guidi Polanco

Franco Guidi Polanco

Clave primaria y claves alternas: ejemplos

Claves forneas

Relacin ESTUDIANTE
Rut

Nombre

Fecha
nacimiento

Ciudad
nacimiento

15.332.241-5

Nicanor Neruda

12/03/1984

Talca

14.102.999-3

Violeta Paz

01/05/1983

16.290.412-k

Vicente Parra

25/10/1985

17.221.332-8

Marcela Huidobro

01/12/1985

Carrera

ao
ingreso

Orden
ingreso

515056-5

77

2003

12

Iquique

532292-1

77

2003

122

Linares

497642-3

25

2002

Castro

Rol UCV

500023-4

54

2001

Colegio

15

Claves:
- Rut
- Rol UCV
- Carrera + ao ingreso + orden ingreso
- Nombre + fecha nacimiento + ciudad nacimiento
Franco Guidi Polanco

Supongamos que existe una tabla Colegio en la que se registran los


colegios con sus datos (nombre_colegio, direccion, telefono, etc.) y
una tabla Alumno en que se registran datos de alumnos
(nombre_alumno, direccion, colegio_origen, etc.).
Es claro que el atributo colegio_origen de la tabla alumnos slo
puede tomar un valor si este existe en la tabla colegios.

Claves forneas
definicin

Direccin

Telfono

Nombre_alumno

Direccin

Colegio_origen

Escuela agrcola
Piggley Winks

Camino
Internacional
1000

877767

Pedro Unamuno

Los Almendros
1222

Clifford School

Clifford School

Av. Dos 234

332120

Luis Prez

Los Espinos
2653

Liceo Tcnico
Bob el
Constructor

Liceo Tcnico Bob


el Constructor

Calle Tres 3000

554536

Angel Picapiedra

El Sauce 1010

Clifford School

Franco Guidi Polanco

Claves forneas: ejemplo

Sea R2 una relacin. Una clave fornea en R2 es un


subconjunto Fk de atributos de R2, tal que:

Relacin productos

Existe una relacin R1 (con R1 no necesariamente distinto a R2)


con una clave candidata Ck, y
En todo momento, cada valor de Fk en R2 es idntico al valor de Ck
en alguna tupla en R1.

En otras palabras, cada valor de una clave fornea debe


aparecer como valor de la clave candidata correspondiente
en otra relacin.

Franco Guidi Polanco

Alumno

Nombre_colegio

cdigo

descripcion

costo

unidad_medida

06421654-5
52464646-4
63446345-8

Cable cobre
Poste
Interruptor

500
50.000
300

Metro
Pieza
Pieza

Relacin ventas

Franco Guidi Polanco

Clave fornea

nro_venta

cdigo

fecha

cantidad

1
2
3

52464646-4
52464646-4
06421654-5

10/05/1999
12/06/1999
12/06/1999

200
4
25

Representacin de asociaciones generadas por


claves forneas

Ms sobre claves forneas


Pueden existir claves forneas compuestas (la
clave candidata correspondiente tambin debe ser
compuesta).

ventas.codigo

ventas

productos

Las claves forneas y su correspondiente clave


candidata deben estar definidas sobre el mismo
dominio.

En este caso, codigo es clave fornea en


ventas, para acceder a los datos de
productos.

El valor de una clave fornea representa una


referencia a la tupla que contiene la clave
candidata asociada (tupla referenciada o tupla
objetivo).

Se suele decir que las referencias de clave


fornea a clave candidata son el pegamento
que mantiene unida a la base de datos.

Franco Guidi Polanco

Integridad referencial

Franco Guidi Polanco

Ejemplo de falla en integridad referencial

El problema de asegurar que la BD no contenga


algn valor invlido de clave fornea se denomina
problema de integridad referencial.

Tabla productos

Integridad referencial: la BD no debe contener


algn valor de clave fornea no existente en la
relacin de destino.

Franco Guidi Polanco

10

cdigo

descripcion

costo

unidad_medida

06421654-5
52464646-4

Cable cobre
Poste

500
50.000

Metro
Pieza

Tabla ventas

11

Franco Guidi Polanco

ERROR

nro_venta

cdigo

fecha

cantidad

1
2
3

52464646-4
94615886-4
06421654-5

10/05/1999
12/06/1999
12/06/1999

200
4
25

12

Cmo asegurar la integridad referencial?

Dependencias funcionales

Restriccin. Rechazar cualquier operacin que,


de ser ejecutada, deje a la base de datos en un
estado ilegal.

Restriccin de integridad que describe vnculos de


tipo funcional entre atributos de una relacin.
Ejemplos:

Cascada. Aceptar la operacin, y efectuar ciertas


acciones compensatorias para asegurar que la
base de datos se mantenga en un estado legal.

Franco Guidi Polanco

Rut Nombre_persona
Patente Marca, Modelo, Ao
RolUcv ClaveCurso Nota

13

14

Ejemplo: abastecimiento de una empresa


importadora

Diseo de bases de datos relacionales


Diseo de B.D.: Dado un conjunto de datos a ser
representados en una B.D., decidir la estructura
lgica ms adecuada para estos datos.
En otras palabras, se trata de decidir que tablas
(relaciones) deben existir, que campos (atributos)
deben tener, y las asociaciones entre estos
elementos (claves primarias y forneas).

Franco Guidi Polanco

Franco Guidi Polanco

15

Una empresa importadora es abastecida por un


conjunto de proveedores. Cada uno de los proveedores
tiene un cdigo, que los identifica, un nombre y una
direccin. Los artculos se identifican tambin con un
cdigo, y tienen una descripcin. Los pedidos se
identifican con un nmero correlativo y se registra la
fecha en la que son realizados, y el proveedor al que
van dirigidos. Cada pedido consta de la solicitud de
uno o ms artculos, con sus respectivas cantidades.

Franco Guidi Polanco

16

Documento utilizado en la empresa

Diseando la base de datos


El modelo relacional exige que todo sea
expresado en trminos de tablas.
Una primera aproximacin podra ser:

Pedido
N del pedido: 1

Nombre del proveedor:

Fecha del pedido: 10/03/1999

Direccin del proveedor: Calle 4, n...

ABC

Cdigo del proveedor: 5645462-8


Cdigo del
Nombre del articulo
articulo

Cantidad
pedida

685431-4
878795-7

50
48

LAPIZ
TIJERAS

Franco Guidi Polanco

N del
pedido

17

Cul es el diseo correcto para la B.D.?

Cdigo del
proveedor

Nombre del
proveedor

Direccin del
proveedor

Cdigo del
articulo

Nombre del Cantidad


articulo
pedida

10/03/1999 5645462-8

ABC

Calle 4, n...

685431-4
878795-7

LAPIZ
TIJERAS

50
48

11/03/1999 6353134-4

MSF

Av. 9, n...

468624-8

AGENDA

500

11/03/1999 8545432-8

FGP

Calle 6, n...

556546-3
878795-7

CD-ROM
TIJERAS

10
12

Franco Guidi Polanco

18

Normalizacin

El diseo recin presentado presenta redundancia.

Es el proceso de identificacin y eliminacin de


ciertas propiedades indeseables en el diseo de
una B.D.

Adems los datos poseen estructura interna (no


son escalares).

Franco Guidi Polanco

Fecha del
pedido

Se definen un conjunto de formas normales, y se


dir que una tabla est en una cierta forma
normal, si satisface un conjunto predefinido de
condiciones.

19

Franco Guidi Polanco

20

Niveles de Normalizacin

Primera forma normal (1NF)


Una relacin est en primera forma normal si
cumple el requisito de contener valores escalares
solamente.
En nuestro ejemplo, la siguiente relacin est en
1NF.

1 NF
2 NF
3 NF
3 BC NF
4 NF
5 NF

N del
pedido

Franco Guidi Polanco

21

Problemas con 1FN

Fecha del
pedido

Cdigo del
proveedor

Nombre del
proveedor

Direccin del
proveedor

Cdigo del
articulo

Nombre del Cantidad


articulo
pedida

10/03/1999 5645462-8

ABC

Calle 4, n...

685431-4

LAPIZ

10/03/1999 5645462-8

ABC

Calle 4, n...

878795-7

TIJERAS

50
48

11/03/1999 6353134-4

MSF

Av. 9, n...

468624-8

AGENDA

500

11/03/1999 8545432-8

FGP

Calle 6, n...

556546-3

CD-ROM

10

11/03/1999 8545432-8

FGP

Calle 6, n...

878795-7

TIJERAS

12

Franco Guidi Polanco

22

Ejemplos de anomalas de actualizacin en 1FN

La redundancia en 1FN llevan a la existencia de


una serie de anomalas de actualizacin, esto
es, dificultades con las operaciones de
actualizacin (adicin, eliminacin o modificacin
registros).

No se pueden agregar los datos de un nuevo


artculo, a menos que exista un pedido asociado
a ste.
Si elimina un pedido y este es el nico asociado a
un artculo, se eliminan tambin los datos del
artculo.
Como los datos de un artculo se pueden repetir
en diferentes registros de la tabla, si se desea
actualizar los datos de un artculo, deben
actualizarse todos los registros que tienen el dato
(riesgo de inconsistencia).

Franco Guidi Polanco

23

Franco Guidi Polanco

24

Anlisis de dependencias funcionales en 1FN

Segunda forma normal (2FN)


Una tabla est en 2FN si y solo si est en 1FN y
todos los atributos no claves dependen
irreduciblemente de la clave primaria (no
dependen solo de parte de ella).

Fecha del
pedido
Clave primaria

Cdigo del
proveedor

N del
pedido

Direccin del
proveedor
Nombre del
proveedor

En el caso de nuestro ejemplo, esto implicar


separar la tabla en tres partes...

Cantidad
pedida
Cdigo del
articulo

Nombre del
articulo

Las flechas en este diagrama indican dependencias


funcionales entre atributos, es decir que el valor de
un atributo est determinado por el valor de otro.
Franco Guidi Polanco

25

Base de datos de abastecimiento en 2FN


Tabla 1

Tabla 2

(Pedido-artculo)

(Pedido)

Clave primaria
N del
pedido

Cantidad
pedida

N del
pedido

Cdigo del
articulo

Con este nuevo diseo se pueden ingresar datos


de artculos aun cuando no existan pedidos
asociados a ellos.

Cdigo del
proveedor

Se pueden eliminar todos los pedidos de un


artculo, sin que esto implique eliminar los datos
del artculo.

Direccin del
proveedor
Nombre del
proveedor

Cada artculo tiene sus datos en un solo registro,


lo que facilita la actualizacin.

Tabla 3
(Artculo)
Clave primaria
Cdigo del
articulo

Franco Guidi Polanco

26

Pros y contras de 2FN

Fecha del
pedido

Clave primaria

Franco Guidi Polanco

Sin embargo, las anomalas subsisten con los


proveedores.

Nombre del
articulo

27

Franco Guidi Polanco

28

Tercera forma normal (3FN)

Base de datos de abastecimiento en 3FN

Una tabla est en 3FN si y solo si est en 2FN, y


cada atributo no clave depende no transitivamente
de la clave primaria.

Se requiere dividir la tabla 2 en dos partes:


Tabla 2
(Pedido)

Fecha del
pedido

Clave primaria

Dependencia
transitiva a travs del
cdigo del proveedor

Tabla 2
(Pedido)

Fecha del
pedido

Clave primaria
N del
pedido

N del
pedido

Direccin del
proveedor
Nombre del
proveedor

Cdigo del
proveedor
Direccin del
proveedor

Tabla 2.1

Tabla 2.2

(Pedido)

(Proveedor)

Clave primaria

Franco Guidi Polanco

29

Direccin del
proveedor

Cdigo del
proveedor

Cdigo del
proveedor

Nombre del
proveedor

Franco Guidi Polanco

Esquema relacional final de la base de datos de


abastecimiento

30

Ejemplos de tablas de la B.D.

Artculo

Cdigo del artculo


Nro del pedido

Pedido-artculo

Tabla pedido-artculo

Tabla pedido

N del
pedido

Cdigo del
articulo

Cantidad
pedida

N del
pedido

685431-4

50

10/03/1999 5645462-8

878795-7

48

11/03/1999 6353134-4

468624-8

500

11/03/1999 8545432-8

556546-3

10

878795-7

12

Cdigo del proveedor

Proveedor

Franco Guidi Polanco

Clave primaria

Fecha del
pedido

N del
pedido

Nombre del
proveedor

Pedido

Cdigo del
proveedor

31

Franco Guidi Polanco

Fecha del
pedido

Tabla artculo
Cdigo del
articulo

Nombre del
articulo

685431-4

LAPIZ

Cdigo del
proveedor

Tabla proveedor
Cdigo del
proveedor

Direccin del
proveedor
Calle 4, n...

878795-7

TIJERAS

5645462-8

468624-8

AGENDA

6353134-4

Av. 9, n...

556546-3

CD-ROM

8545432-8

Calle 6, n...

32

También podría gustarte