Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1 Tema Modelo Der
1 Tema Modelo Der
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-
) 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)
DER Conceptua l
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)
(-.(,/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
TRABAJO
PROYE CTOS
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
(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 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
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
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
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
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
%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
E%emplo3
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
TIE)PO( CONS')IDO ,$ #. /$ ,$
PRES'P'EST O .$ ,$ 3$