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

DER Conceptua l

DER Normalizaci n Lgico

Creacin de la Base de Datos

Del

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 mismo DER conceptual seria se"2n la metodolo"0a 7ARTIN
PERS ONAS

El DER conceptual se"2n la metodolo"0a C<EN


PERSONA S

TRAB AJA PROYECT OS

TRABAJO

PROYE CTOS

/$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
Id_perso na Nombre Direccin Id_persona Id_proyec o Tiempo cons"mido PROYECT OS Nombre Direccin Id_proyec o Dia_comien! o Pres"p"es o PROYECT OS
/,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-

PERSONA S

PERSONA S

TRAB AJA

TRAB AJA

*"# 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

+"# ,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
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

A
,9emplo !#!

MU ER #

CA"A DA

!OMBRE

!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

Relaciones tipo !#. es decir ! a un lado y varios en el otro lado


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

A
,9emplo !#.

CL#EN$E#

%#DE

%ED#DO

!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"


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

A
,9emplo .#M

%ED#DO #

#NCLU &E

%RODUC$O "

!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

!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

Dado un !EDIDO lo pidio @ cliente como m0nimo # como m$6imo

Dado un C-IENTE puede .ue 'a#a pedido C o ,arios pedidos

CL#EN$E #

#% #

%#DE

$%N

%ED#DO

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

Dado un !RODUCTO puede estar incluido en C o ,arios !EDIDOS

Dado un !EDIDO puede .ue inclu#a @ o ,arios productos

%ED#DO #

$% N

#NCLU &E

#%N %N

%RODUC$O "

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

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

/$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"atoria 9 Si todas las entidades dadas deben aparecer, al menos, en una relaci+n del con%unto de relaci+n Opcional 9 Si al"unas entidad no necesitan aparecer en el con%unto de relaci+n E%emplo3
Id_perso na PERSONA S #%N TRAB AJA $%N PROYECT OS $%N 'SA #% CONTRATIS TA Nombre Direccin

Id_persona Id_proyec o Tiempo cons"mido Nombre Direccin Id_proyec o Dia_comien! o Pres"p"es o Tipo

E&TERNO

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

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 Per# Per+ Per,

NO)BRE J"an Emilio )ar-ari a

DIRECCI*N )adrid Caceres )adrid

ID(PERSONA Per# Per+ Per, Per,

ID( PROYECTO Proy# Proy# Proy+ Proy,

TIE)PO( CONS')IDO ,$ #. /$ ,$

ID( PROYECTO Proy# Proy+ Proy,

DIA( CO)IEN0O $#1$+1+$$2 $#1$/1+$#$ $#1$21+$#$

PRES'P'EST O .$ ,$ 3$

También podría gustarte