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
Diseo de Bases de los mismos valores para C.
Datos Propiedad de irreducibilidad. No existe un subconjunto
de C que cumpla con la propiedad de unicidad.
Franco Guidi Polanco
Escuela de Ingeniera Industrial
Pontificia Universidad Catlica de Valparaso, Chile Consecuencia: debido a que una relacin no puede
fguidi@ucv.cl tener tuplas duplicadas, esta debe contener al
menos una clave candidata.

Revisin: 7 de Junio de 2005


Franco Guidi Polanco 2

Claves candidatas y primarias Clave primaria y claves alternas

Es posible que una relacin tenga ms de una Cuando existe ms de una clave candidata, a una
clave candidata. 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 simple: compuesta por un atributo. clave primaria.
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 3 Franco Guidi Polanco 4


Clave primaria y claves alternas: ejemplos Claves forneas

Relacin ESTUDIANTE Supongamos que existe una tabla Colegio en la que se registran los
colegios con sus datos (nombre_colegio, direccion, telefono, etc.) y
Rut Nombre Fecha
nacimiento
Ciudad
nacimiento
Rol UCV Carrera ao
ingreso
Orden
ingreso
una tabla Alumno en que se registran datos de alumnos
(nombre_alumno, direccion, colegio_origen, etc.).
15.332.241-5 Nicanor Neruda 12/03/1984 Talca 515056-5 77 2003 12
Es claro que el atributo colegio_origen de la tabla alumnos slo
14.102.999-3 Violeta Paz 01/05/1983 Iquique 532292-1 77 2003 122 puede tomar un valor si este existe en la tabla colegios.

16.290.412-k Vicente Parra 25/10/1985 Linares 497642-3 25 2002 4


Colegio Alumno
Nombre_colegio Direccin Telfono Nombre_alumno Direccin Colegio_origen
17.221.332-8 Marcela Huidobro 01/12/1985 Castro 500023-4 54 2001 15

Escuela agrcola Camino 877767 Pedro Unamuno Los Almendros Clifford School
Piggley Winks Internacional 1222
Claves: 1000
Luis Prez Los Espinos Liceo Tcnico
- Rut Clifford School Av. Dos 234 332120 2653 Bob el
Constructor
- Rol UCV
Liceo Tcnico Bob Calle Tres 3000 554536 Angel Picapiedra El Sauce 1010 Clifford School
- Carrera + ao ingreso + orden ingreso el Constructor
- Nombre + fecha nacimiento + ciudad nacimiento

Franco Guidi Polanco 5 Franco Guidi Polanco 6

Claves forneas
Claves forneas: ejemplo
definicin
Sea R2 una relacin. Una clave fornea en R2 es un Relacin productos
subconjunto Fk de atributos de R2, tal que:
Existe una relacin R1 (con R1 no necesariamente distinto a R2) cdigo descripcion costo unidad_medida
con una clave candidata Ck, y 06421654-5 Cable cobre 500 Metro
En todo momento, cada valor de Fk en R2 es idntico al valor de Ck 52464646-4 Poste 50.000 Pieza
en alguna tupla en R1. 63446345-8 Interruptor 300 Pieza

En otras palabras, cada valor de una clave fornea debe Clave fornea
aparecer como valor de la clave candidata correspondiente Relacin ventas
en otra relacin. nro_venta cdigo fecha cantidad
1 52464646-4 10/05/1999 200
2 52464646-4 12/06/1999 4
3 06421654-5 12/06/1999 25

Franco Guidi Polanco 7 Franco Guidi Polanco 8


Representacin de asociaciones generadas por
Ms sobre claves forneas
claves forneas
Pueden existir claves forneas compuestas (la
clave candidata correspondiente tambin debe ser ventas
ventas.codigo
productos
compuesta).

Las claves forneas y su correspondiente clave En este caso, codigo es clave fornea en
candidata deben estar definidas sobre el mismo ventas, para acceder a los datos de
dominio. productos.
El valor de una clave fornea representa una
referencia a la tupla que contiene la clave Se suele decir que las referencias de clave
candidata asociada (tupla referenciada o tupla fornea a clave candidata son el pegamento
objetivo). que mantiene unida a la base de datos.

Franco Guidi Polanco 9 Franco Guidi Polanco 10

Integridad referencial Ejemplo de falla en integridad referencial

El problema de asegurar que la BD no contenga


algn valor invlido de clave fornea se denomina Tabla productos
problema de integridad referencial.
cdigo descripcion costo unidad_medida
06421654-5 Cable cobre 500 Metro
Integridad referencial: la BD no debe contener 52464646-4 Poste 50.000 Pieza

algn valor de clave fornea no existente en la


relacin de destino. Tabla ventas ERROR

nro_venta cdigo fecha cantidad


1 52464646-4 10/05/1999 200
2 94615886-4 12/06/1999 4
3 06421654-5 12/06/1999 25

Franco Guidi Polanco 11 Franco Guidi Polanco 12


Cmo asegurar la integridad referencial? Dependencias funcionales

Restriccin. Rechazar cualquier operacin que, Restriccin de integridad que describe vnculos de
de ser ejecutada, deje a la base de datos en un tipo funcional entre atributos de una relacin.
estado ilegal.
Ejemplos:
Cascada. Aceptar la operacin, y efectuar ciertas
Rut Nombre_persona
acciones compensatorias para asegurar que la
Patente Marca, Modelo, Ao
base de datos se mantenga en un estado legal.
RolUcv ClaveCurso Nota

Franco Guidi Polanco 13 Franco Guidi Polanco 14

Ejemplo: abastecimiento de una empresa


Diseo de bases de datos relacionales
importadora
Diseo de B.D.: Dado un conjunto de datos a ser Una empresa importadora es abastecida por un
representados en una B.D., decidir la estructura conjunto de proveedores. Cada uno de los proveedores
tiene un cdigo, que los identifica, un nombre y una
lgica ms adecuada para estos datos.
direccin. Los artculos se identifican tambin con un
cdigo, y tienen una descripcin. Los pedidos se
En otras palabras, se trata de decidir que tablas identifican con un nmero correlativo y se registra la
fecha en la que son realizados, y el proveedor al que
(relaciones) deben existir, que campos (atributos)
van dirigidos. Cada pedido consta de la solicitud de
deben tener, y las asociaciones entre estos uno o ms artculos, con sus respectivas cantidades.
elementos (claves primarias y forneas).

Franco Guidi Polanco 15 Franco Guidi Polanco 16


Documento utilizado en la empresa Diseando la base de datos

El modelo relacional exige que todo sea


Pedido expresado en trminos de tablas.
N del pedido: 1 Nombre del proveedor: ABC Una primera aproximacin podra ser:
Fecha del pedido: 10/03/1999 Direccin del proveedor: Calle 4, n...
Cdigo del proveedor: 5645462-8
N del Fecha del Cdigo del Nombre del Direccin del Cdigo del Nombre del Cantidad
Cdigo del Cantidad pedido pedido proveedor proveedor proveedor articulo articulo pedida
Nombre del articulo
articulo pedida
685431-4 LAPIZ 50
685431-4 LAPIZ 50 1 10/03/1999 5645462-8 ABC Calle 4, n...
878795-7 TIJERAS 48
878795-7 TIJERAS 48
2 11/03/1999 6353134-4 MSF Av. 9, n... 468624-8 AGENDA 500

556546-3 CD-ROM 10
3 11/03/1999 8545432-8 FGP Calle 6, n...
878795-7 TIJERAS 12

Franco Guidi Polanco 17 Franco Guidi Polanco 18

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

El diseo recin presentado presenta redundancia. Es el proceso de identificacin y eliminacin de


ciertas propiedades indeseables en el diseo de
Adems los datos poseen estructura interna (no una B.D.
son escalares).
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.

Franco Guidi Polanco 19 Franco Guidi Polanco 20


Niveles de Normalizacin Primera forma normal (1NF)

1 NF Una relacin est en primera forma normal si


2 NF cumple el requisito de contener valores escalares
3 NF solamente.
3 BC NF En nuestro ejemplo, la siguiente relacin est en
4 NF 1NF.
5 NF
N del Fecha del Cdigo del Nombre del Direccin del Cdigo del Nombre del Cantidad
pedido pedido proveedor proveedor proveedor articulo articulo pedida

1 10/03/1999 5645462-8 ABC Calle 4, n... 685431-4 LAPIZ 50


1 10/03/1999 5645462-8 ABC Calle 4, n... 878795-7 TIJERAS 48
2 11/03/1999 6353134-4 MSF Av. 9, n... 468624-8 AGENDA 500
3 11/03/1999 8545432-8 FGP Calle 6, n... 556546-3 CD-ROM 10
3 11/03/1999 8545432-8 FGP Calle 6, n... 878795-7 TIJERAS 12

Franco Guidi Polanco 21 Franco Guidi Polanco 22

Problemas con 1FN Ejemplos de anomalas de actualizacin en 1FN

La redundancia en 1FN llevan a la existencia de No se pueden agregar los datos de un nuevo


una serie de anomalas de actualizacin, esto artculo, a menos que exista un pedido asociado
es, dificultades con las operaciones de a ste.
actualizacin (adicin, eliminacin o modificacin
registros). 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)

Fecha del
pedido
Una tabla est en 2FN si y solo si est en 1FN y
Clave primaria
Cdigo del todos los atributos no claves dependen
proveedor
irreduciblemente de la clave primaria (no
N del
pedido
Direccin del
proveedor dependen solo de parte de ella).
Nombre del
proveedor

En el caso de nuestro ejemplo, esto implicar


Cantidad
pedida separar la tabla en tres partes...
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 Franco Guidi Polanco 26

Base de datos de abastecimiento en 2FN Pros y contras de 2FN

Tabla 1 Tabla 2 Con este nuevo diseo se pueden ingresar datos


(Pedido-artculo) (Pedido)
Fecha del
de artculos aun cuando no existan pedidos
Clave primaria
pedido asociados a ellos.
Clave primaria Cdigo del
N del N del
proveedor
Se pueden eliminar todos los pedidos de un
artculo, sin que esto implique eliminar los datos
pedido pedido Direccin del
Cantidad
pedida proveedor
Cdigo del
articulo Nombre del
del artculo.
proveedor

Cada artculo tiene sus datos en un solo registro,


Tabla 3
(Artculo)
lo que facilita la actualizacin.
Clave primaria
Cdigo del Nombre del Sin embargo, las anomalas subsisten con los
articulo articulo
proveedores.

Franco Guidi Polanco 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 Se requiere dividir la tabla 2 en dos partes:
cada atributo no clave depende no transitivamente Tabla 2
de la clave primaria. (Pedido)
Fecha del
pedido

Clave primaria Cdigo del


proveedor
N del
pedido Direccin del
Dependencia
Tabla 2 transitiva a travs del
proveedor

(Pedido) cdigo del proveedor Nombre del


Fecha del proveedor
pedido

Clave primaria Cdigo del Tabla 2.1 Tabla 2.2


proveedor (Pedido) (Proveedor)
N del
pedido Direccin del Clave primaria Fecha del Clave primaria
proveedor Direccin del
pedido proveedor
N del Cdigo del
Nombre del pedido
proveedor Cdigo del proveedor
Nombre del
proveedor proveedor

Franco Guidi Polanco 29 Franco Guidi Polanco 30

Esquema relacional final de la base de datos de


Ejemplos de tablas de la B.D.
abastecimiento

Tabla pedido-artculo Tabla pedido


N del Cdigo del Cantidad N del Fecha del Cdigo del
Artculo pedido articulo pedida pedido pedido proveedor

1 685431-4 50 1 10/03/1999 5645462-8


1 878795-7 48 2 11/03/1999 6353134-4
Cdigo del artculo
2 468624-8 500 3 11/03/1999 8545432-8
Nro del pedido 3 556546-3 10
Pedido Pedido-artculo
3 878795-7 12
Tabla artculo
Tabla proveedor
Cdigo del proveedor Cdigo del Nombre del
articulo articulo Cdigo del Direccin del
proveedor proveedor
685431-4 LAPIZ
Proveedor 878795-7 TIJERAS 5645462-8 Calle 4, n...
468624-8 AGENDA 6353134-4 Av. 9, n...
556546-3 CD-ROM 8545432-8 Calle 6, n...

Franco Guidi Polanco 31 Franco Guidi Polanco 32

También podría gustarte