Está en la página 1de 15

DISEO DE BASES DE DATOS

INTRODUCCIN
El proceso de trasladar un problema del mundo real a un ordenador, usando bases de datos, se denomina
modelado
!ara el modelado de bases de datos es necesario se"uir un procedimiento determinado !ero, cuando el
problema a modelar es sencillo, estaremos tentados a saltarnos pasos, # crear directamente bases de datos #
tablas Esto es un "ran error, siempre ser$ me%or se"uir todos los pasos del dise&o, esto nos a'orrar$ (con toda
se"uridad) muc'o tiempo m$s adelante
Adem$s, se"uir todo el proceso nos *acilitar$ una documentaci+n necesaria para re,isar o mantener la
aplicaci+n, #a sea por nosotros mismos o por otros administradores o pro"ramadores
-a primera *ase del dise&o de una aplicaci+n (la base de datos, "eneralmente, es parte de una aplicaci+n),
consiste en hablar con el cliente para saber .u/ .uiere, # .u/ necesita realmente
Esto es una tarea ardua # di*0cil 1eneralmente, los clientes no saben demasiado sobre pro"ramaci+n # sobre
bases de datos, de modo .ue normalmente, no saben .u/ pueden pedir
Los modelos conceptuales *acilitan una *orma clara de ,er el proceso en su totalidad, puesto .ue se trata de
una representaci+n "r$*ica Adem$s, los modelos conceptuales no est$n orientados a nin"2n sistema *0sico
concreto3 tipo de ordenador, sistema operati,o, S1BD, etc Ni si.uiera tienen una orientaci+n in*orm$tica
Adem$s de consultar con el cliente, una buena t/cnica consiste en obser,ar el *uncionamiento del proceso .ue
se .uiere in*ormati4ar o modelar 5er procesos # documentos .ue utili4an
Cuando los pro"ramas se crean sin un cliente concreto, #a sea por.ue se pretende crear un producto para uso
masi,o o por.ue s+lo lo ,amos a usar nosotros, el papel del cliente lo %u"aremos nosotros mismos
Una ,e4 reco"idos los datos, el si"uiente paso es crear un modelo conceptual El modelo m$s usado en bases
de datos es el modelo Entidad-Relacin, .ue es el .ue ,amos a e6plicar en este cap0tulo
-a si"uiente *ase es convertir el modelo conceptual en un modelo lgico E6isten ,arios modelos l+"icos,
pero el m$s usado, el .ue me%or se adapta a MySQL # el .ue por lo tanto e6plicaremos a.u0, es el modelo
Relacional -a con,ersi+n entre el modelo conceptual # el l+"ico es al"o bastante mec$nico
En el caso del modelo l+"ico relacional, e6iste un proceso .ue sir,e para ,eri*icar .ue 'emos aplicado bien el
modelo, # en caso contrario, corre"irlo para .ue sea as0 Este proceso se llama normalizacin, # tambi/n es
bastante mec$nico
El 2ltimo paso consiste en codificar el modelo lgico en un modelo fsico Este proceso est$ li"ado al DB7S
ele"ido, # es, se"uramente, la parte m$s sencilla de aplicar, aun.ue nos lle,ar$ muc'o m$s tiempo # espacio
e6plicarla, #a .ue en el caso del DB7S .ue nos ocupa (MySQL), se re.uiere el conocimiento del len"ua%e de
consulta S8-
Resumen de pasos para creacin una Base de Datos
9 :ase de An$lisis
!"# $nali%ar los datos &ue se necesitan y las relaciones entre ellos"
'"# (rear Modelo (onceptual ; <acer el Dia"rama Entidad Relaci+n Conceptual (DER conceptual)
9 :ase de Dise&o
)9 Con,ertir el 7odelo Conceptual en un 7odelo -+"ico ; <acer el Dia"rama Entidad Relaci+n -+"ico (DER
l+"ico) !ara esta con,ersi+n se puede reali4ar de = *ormas3
a) El !roceso de Normali4aci+n
b) !roceso An$lisis de las Relaciones # despu/s se comprueba si cumple las re"las de Normali4aci+n
9 :ase de construcci+n o implementaci+n
*9 Crear las Bases de Datos con al"2n 1estor de Bases de Datos
+9 7antenimiento de las Bases de Datos(Altas, Ba%as, 7odi*icaciones, Consultas, Administraci+n)

Objetos
del
Mundo
Real
Del
DER
Conceptua
l
DER
Lgico
Creacin
de la Base
de Datos
Normalizaci
n
D,R (-.(,/01$L
Un modelo entidad9relaci+n, describe las caracter0sticas principales de los datos del Sistema Esto se plasma en
un Dia"rama Entidad ; Relaci+n (DER)
$.2L3S3S ,.03D$D 4 R,L$(35.
El an$lisis entidad9relaci+n utili4a tres abstracciones principales para describir datos Esta son3
,ntidades ; Son ob%etos distin"uibles en la empresa E% Un producto, un cliente, un empleado, una *actura
Relaciones o 3nterrelaciones ; Son interacciones o asociaciones entre los ob%etos E% cliente pide producto
$tributos ; !ropiedades de las entidades # de las relaciones E% un productos puede tener3 tama&o, precio
-a idea del an$lisis entidad9relaci+n se ilustra en la si"uiente *i"ura -os ob%etos se a"rupan en con%untos de
entidades !or e%emplo todas las personas se 'an puesto en el con%unto de entidad !ERSONAS # todos los
pro#ectos en el con%unto de entidad !RO>ECTOS
-a relaci+n .ue e6iste entre !ERSONAS # !RO>ECTOS es .ue nos interesa saber .ue personas traba%an en
.ue pro#ectos A dic'a la relaci+n la denominamos TRABA?O El con%unto TRABA?O se modelan las
personas .ue traba%an en un pro#ecto
Dominio con%unto de ,alores posibles para un atributo
Una *ec'a de nacimiento o de matriculaci+n tendr$ casi siempre un dominio, aun.ue "eneralmente se usar$ el
de las *ec'as posibles !or e%emplo, nin"una persona puede 'aber nacido en una *ec'a posterior a la actual Si
esa persona es un empleado de una empresa, su *ec'a de nacimiento estar$ en un dominio tal .ue actualmente
ten"a entre @A # AB a&os (!or supuesto, 'a# e6cepciones)
1eneralmente, los dominios nos sir,en para limitar el tama&o de los atributos Supon"amos .ue una empresa
puede tener un m$6imo de @CCC empleados Si uno de los atributos es el n2mero de empleado, podr0amos decir
.ue el dominio de ese atributo es (C,@CCC)
Con nombres o te6tos, los dominios limitar$n su lon"itud m$6ima
Sin embar"o, los dominios no son demasiado importantes en el modelo E9R, nos preocuparemos muc'o m$s de
ellos en el modelo relacional # en el *0sico
6rado n2mero de con%untos de entidades .ue inter,ienen en una interrelaci+n
Si inter,ienen dos entidades, por lo .ue diremos .ue es de "rado = o binaria Tambi/n e6isten interrelaciones de
"rado D, E, etc !ero las m$s *recuentes son las interrelaciones binarias
!odemos establecer una interrelaci+n ternaria (de "rado tres) entre personas, de modo .ue dos personas sean
padre # madre, respecti,amente, de una tercera
E6isten adem$s tres tipos distintos de interrelaciones binarias, dependiendo del n2mero de entidades del primer
con%unto de entidades # del se"undo As0 'ablaremos de interrelaciones @3@ (uno a uno), @3N (uno a muc'os) #
N37 (muc'os a muc'os)
(-.(,/0-S (-.71.0- D, ,.03D$D 8 (-.71.0- D, R,L$(35.
(on9unto de entidades es la clase o tipo al .ue pertenecen entidades con caracter0sticas comunes A"rupaci+n
de entidades del mismo tipo .ue comparten los mismos atributos
Cada elemento, ocurrencia o instancia del con%unto TRABA?O es una persona .ue traba%a en un pro#ecto
As0 en la *i"ura 'a#3
dos con9untos de entidad3 !ERSONAS, !RO>ECTOS
un con9unto de relacin3 TRABA?O
En los DER no representamos todos los elementos de cada con%unto solo representamos3
El nombre del con%unto de entidad con un rect:ngulo
El nombre del con%unto de relaci+n con un rombo se"2n C'en ;si se usa metodolo"0a 7artin en ,e4 de
rombo seria solo una l0nea)
El DER conceptual se"2n la metodolo"0a C<EN
PERSONA
S
PROYECT
OS
TRAB
AJA
El mismo DER conceptual seria se"2n la metodolo"0a
7ARTIN

TRABAJO
PERSONAS
PROYECTOS
/$S-S ,. L$ (-.S0R1((35. D, L-S D3$6R$M$S ,.03D$D#R,L$(35.
!"# Distinguir los con9untos de entidades de una or"ani4aci+n o empresa # darles un nombre apropiado
-as m$s comunes son cosas *0sicas como productos, alumnos etc Al"unas pueden no ser tan ,isibles en las
entidades or"ani4ati,as como departamentos, presupuestos o cosas .ue suceden como pedidos, e6$menes etc
Una re"la importante es .ue solo se sit2an en el mismo con%unto de entidades las cosas u ob%etos .ue tienen las
mismas propiedades
'"# Se anali%an las relaciones de los con%untos de entidad # se modelan como con%untos de entidad
)"# Determinar los atributos o propiedades de los ob%etos de esos con%untos !or e%emplo F8u/ nos interesa
sobre las personasG !uede ser Nombre, Direcci+n o identi*icador 2nico ID9!ERSONA
Es opcional mostrar los atributos en el dia"rama en caso de mostrarlos 'a# ,arias *ormas de 'acerlo3
Situar los atributos en un c0rculo conectado al rect$n"ulo de la entidad correspondiente
-istar los atributos en una tabla a continuaci+n del dia"rama
Situar los atributos al lado del con%unto de entidad
*"# Seleccionar uno o ,arios atributos de cada con%unto de entidad de cada con%unto de relaci+n como
identificador o clave de la relaci+n -a cla,e o identi*icador aparecer$ subra#ada
PERSONA
S
PROYECT
OS
TRAB
AJA
Id_perso
na
Nombre
Direccin
Id_proyeco
Dia_comien!
o
Pres"p"eso
Id_persona
Id_proyeco
Tiempo cons"mido
Nombre
Direccin
PERSONA
S
PROYECT
OS
TRAB
AJA
/,RS-.$S < 3D#/,RS-.$ = .-MBR, = D3R,((35.
0R$B$7$< 3D#/,RS-.$ = 3D#/R-8,(0- = 03,M/-#(-.S1M3D-
/R-8,(0-S < 3D#/R-8,(0- = D3$#(-M3,.>- = /R,S1/1,S0-
+"# ,stablecer la cardinalidad de las relaciones
(-.(,/0- D, (L$?, - 3D,.03@3($D-R 8 03/-S
(lave o identificador
Es uno o ,arios atributos de la entidad, .ue permite identi*icar un0,ocamente cada una de las entidades
pertenecientes a un con%unto de entidad o a un con%unto de relaci+n
!or e%emplo dado un con%unto de alumnos el atributo Numero9matricula podr0a ser cla,e o identi*icador por.ue
cada alumno tiene un ,alor distinto ese atributo, as0 dando un Numero9matricula concreto nos re*erimos a un
solo alumno concreto
(lave candidata
Si en una entidad 'a# ,arios atributos .ue podr0an ser la cla,e, se les denomina identi*icadores o cla,es
candidatas
(lave primaria o principal
Es una cla,e candidata ele"ida para ser la cla,e primaria .ue se utili4ara para identi*icar un0,ocamente a las
entidades del con%unto de entidad
(lave a9ena o eAtran9era
Es un atributo o con%unto de atributos .ue no son cla,e primaria en esta entidad pero si lo es en otra
entidad relacionada
!or e%emplo dado un !edido .ue contiene el atributo c+di"o9cliente no es cla,e primaria en el
con%unto de pedidos pero si lo es en el con%unto clientes .ue est$ relacionado con el con%unto
pedidos
($RD3.$L3D$D D, 1.$ R,L$(35.
03/-S simplificado ;/oniendo solo el m:AimoB !#!, !#., .#M
Relaciones tipo !#! es decir ! como m:Aimo a los dos lados
,9emplo !#!
!ara poner la cardinalidad en el lado de la entidad <O7BRE siempre se empie4a con la *rase3 F Dado !
elemento del con9unto Mu9er con cuantos 'ombres como m$6imo est$ casadaG @ pues este @ se pone al lado
de <O7BRE Es decir dada @ mu%er esta casada con @ 'ombre
!ara poner la cardinalidad en el lado de la entidad 7U?ER siempre se empie4a con la *rase3 F Dado ! elemento
del con9unto C-MBR, con cuantas mu%eres como m$6imo est$ casadoG @ pues este @ se pone al lado de
7U?ER Es decir dado @ 'ombre esta casado con @ mu%er
Es decir para poner la cardinalidad en un lado de la relaci+n la *rase siempre es F Dado ! elemento del
con9unto del otro lado con cuantos elementos del lado .ue .uiero poner se relaciona como m$6imoG
#
# #
A
B
R
# #
Dado un elemento del con%unto B
se relaciona con @ solo elementro
del con%unto A
Dado un elemento del con%unto A
se relaciona con @ solo elementro
del con%unto B
#
#
MUER
!OMBRE
CA"A
DA
#
Relaciones tipo !#. es decir ! a un lado y varios en el otro lado
,9emplo !#.
!ara poner la cardinalidad en el lado de la entidad !EDIDO siempre se empie4a con la *rase3 F Dado ! cliente
cuantos pedidos puede reali4arG 5arios pues entonces ponemos N en el lado !EDIDO
!ara poner la cardinalidad en el lado de la entidad C-IENTE siempre se empie4a con la *rase3 F Dado ! pedido
de cuantos clientes esG @ pues este @ se pone al lado de C-IENTE
Relaciones tipo .#M es decir ?arios o . a los dos lados"
,9emplo .#M
!ara poner la cardinalidad en el lado de la entidad !RODUCTOS siempre se empie4a con la *rase3 F Dado !
pedido cuantos productos puede incluirG 5arios pues entonces ponemos N en el lado !ROCUTOS
#
A
B
R
# N
Dado un elemento del con%unto B
se relaciona con @ solo elementos
del con%unto A
Dado un elemento del con%unto A
se relaciona con ,arios elementos
del con%unto B
#
N
CL#EN$E
%ED#DO
%#DE
#
#
A
B
R
N N
Dado un elemento del con%unto B
se relaciona con N elementos del
con%unto A
Dado un elemento del con%unto A
se relaciona con ,arios elementos
del con%unto B
#
N
%ED#DO
%RODUC$O
"
#NCLU
&E
N
!ara poner la cardinalidad en el lado de la entidad !EDIDO siempre se empie4a con la *rase3 F Dado !
producto en cuantos pedidos puede aparecer o estar incluidoG N pues este N se pone al lado de !EDIDO
,D/R,S$.D- L$ ($RD3.$L3D$D ME.3M$ 8 M2D3M$
Si solo ponemos el m$6imo las posibilidades eran3 @ o N
-os m0nimos pueden ser C o @
-a cardinalidad se puede e6presar en un lado como mnimo m:Aimo
Entonces se puede poner3 C3@, @3@, C3N, @3N
No es distinto solo aportamos m$s in*ormaci+n A ,eces en los dia"ramas solo se e6presa la cardinalidad
m$6ima por.ue es la .ue m$s a*ectara en el dise&o # en la construcci+n de la Base de Datos
E%emplo3
Suponemos .ue puede 'aber clientes nue,os .ue toda,0a no 'an reali4ado pedidos Si suponemos .ue en el
*ic'ero C-IENTE solo est$n los .ue 'an 'ec'o pedidos la cardinalidad en el lado de !EDIDO ser0a @3N
Este e%emplo se considera relaci+n de tipo @9N por.ue para el tipo de cardinalidad de la relaci+n solo nos
interesa el 7$6imo
E%emplo3
Con el C3N en el lado !EDIDO estamos suponiendo puede 'aber !RODUCTOS nue,os .ue toda,0a no los 'an
pedido en nin"2n !EDIDO
#
$%N
CL#EN$E
%ED#DO
%#DE
#%
#
Dado un !EDIDO lo pidio @ cliente
como m0nimo # como m$6imo
Dado un C-IENTE puede .ue 'a#a
pedido C o ,arios pedidos
#
#%N
%N
%ED#DO
%RODUC$O
"
#NCLU
&E
$%
N
Dado un !RODUCTO puede estar
incluido en C o ,arios !EDIDOS
Dado un !EDIDO puede .ue
inclu#a @ o ,arios productos
D,R S,6F. L$ M,D-D-L-6E$ M$R03. son di*erentes en el "r$*ico pero no en el si"ni*icado
!ara e6presar la relaci+n no se pone el rombo solo la l0nea # el nombre de la relaci+n
!ara e6presar la cardinalidad no se utili4a C, @ o N (El cero es un circulito, el @ una ra#ita ,ertical, la N es un
$n"ulo abierto 'acia la entidad)
E%emplo3
-a cardinalidad de R en el lado A es C3N # la cardinalidad en el lado B es @3N
E%emplo3
E%emplo de la relaci+n !EDIDO !RODUCTO se"2n 7artin .uedar0a3
R
A B
/$R03(3/$(35. D, L$ R,L$(35. M-D,L$D$
-a participaci+n de entidades en un con%unto de relaci+n puede ser obli"atoria, opcional o condicional
Obli"atoria9 Si todas las entidades dadas deben aparecer, al menos, en una relaci+n del con%unto de relaci+n
Opcional9 Si al"unas entidad no necesitan aparecer en el con%unto de relaci+n
E%emplo3
USAH ID9!RO>ECTO I NO7BRE9 CONTRATISTA
CONTRATISTAS EJTERNOSH NO7BRE DE- CONTRATISTA I DIRECCIN9CONTRATISTA
-a participaci+n de !RO>ECTO en la relaci+n TRABA?A es obligatoria
-a participaci+n de !ERSONA en la relaci+n TRABA?A es opcional"
Si suponemos .ue un pro#ecto solo puede usar contratistas e6ternos se el ,alor del atributo Tipo para el
pro#ecto es Ke6ternoL -a participaci+n de !RO>ECTO en la relaci+n USA se dice .ue es opcional, es decir
depende de .ue se cumpla al"una condici+n
Id_perso
na
Nombre
Direccin
#%N
$%N
Id_proyeco
Dia_comien!
o
Pres"p"eso
Tipo
Id_persona
Id_proyeco
Tiempo cons"mido
Nombre
Direccin
$%N
#%
CONTRATIS
TA
E&TERNO
'SA
PERSONA
S
PROYECT
OS
TRAB
AJA
7ODE-O RE-ACIONA-
!ara con,ertir el dia"rama DER en un con%unto de relaciones se reempla4a cada con%unto del DER por una
tabla El nombre de los con%untos ser$ el nombre de la tabla o relaci+n # los atributos ser$n las columnas de la
tabla Cada *ila se denomina Tupla
!ropiedad 3 una relaci+n no puede tener = *ilas i"uales
ID(PERSONA NO)BRE DIRECCI*N
Per# J"an )adrid
Per+ Emilio Caceres
Per, )ar-aria )adrid
ID(PERSONA ID(
PROYECTO
TIE)PO(
CONS')IDO
Per# Proy# ,$
Per+ Proy# #.
Per, Proy+ /$
Per, Proy, ,$
ID(
PROYECTO
DIA(
CO)IEN0O
PRES'P'EST
O
Proy# $#1$+1+$$2 .$
Proy+ $#1$/1+$#$ ,$
Proy, $#1$21+$#$ 3$

También podría gustarte