',6(f2/Ð*,&2'(%DVHVGH'DWRV 2EMHWLYR3ULQFLSDO7UDQVIRUPDUHO(VTXHPD&RQFHSWXDOGH 'DWRVHQHO(VTXHPD/yJLFRGH'DWRV 2WURVREMHWLYRVGHO'LVHxR/yJLFR ± (OLPLQDUUHGXQGDQFLDV ± &RQVHJXLUPi[LPDVLPSOLFLGDG ± (YLWDUFDUJDVVXSOHPHQWDULDVGHSURJUDPDFLyQ SDUDFRQVHJXLU ± XQD(VWUXFWXUD/yJLFDDGHFXDGD ± XQHTXLOLEULRHQWUHORVUHTXLVLWRVGHXVXDULR\ODHILFLHQFLD 'LVHxR/yJLFRFRQODPi[LPD 3257$%,/,'$' ✌ ,QWURGXFFLyQ³WDUGtD´GHO6*%'HVSHFtILFR ± ,PSOHPHQWDFLyQGHO(VTXHPD/yJLFRVREUHGLIHUHQWHV6*%'FRPHUFLDOHV ± 0LJUDFLyQHQWUHYHUVLRQHVGHXQPLVPR6*%' 'LVHxR/yJLFRGH%DVHVGH'DWRV (7$3$6GHO',6(f2/Ð*,&2 c'LVHxR/yJLFR(VWiQGDU'/6 ± 7UDQVIRUPDFLyQLQGHSHQGLHQWHGHO6*%'HVSHFtILFR ± 6HHOLJHHO02'(/2'('$726QRHO6*%'FRQFUHWR (VTXHPD&RQFHSWXDOÖ(VTXHPD/yJLFRH6WiQGDUELS ± 8VRGHXQ0RGHOR/yJLFRGHGDWRVH6WiQGDUMLS 5HODFLRQDO 5HG -HUiUTXLFR 2ULHQWDGRD2EMHWRV – ELSGHVFULWRPHGLDQWHOHQJXDMHHVWiQGDUGHOPRGHORGHGDWRV 'LDJUDPDGH(VWUXFWXUDGH'DWRV 64/HQHO0RGHOR5HODFLRQDO 'LVHxR/yJLFRGH%DVHVGH'DWRV 1 (7$3$6GHO',6(f2/Ð*,&2 d'LVHxR/yJLFR(VSHFtILFR'/( ± 6HHOLJHHO6*%'HVSHFtILFR ± $GDSWDFLyQGHO(VTXHPDGH%'DXQ6*%'FRQFUHWR FRPHUFLDO (VTXHPD/yJLFR(VWiQGDUÖ(VTXHPD/yJLFR(VSHFtILFRELE ± 8VRGHO0RGHOR/yJLFRGH'DWRVSURSLRGHO6*%'HOHJLGR • Informix, Oracle, DB2, Interbase – ELEGHVFULWRPHGLDQWHOHQJXDMH''/GHO6*%'HVSHFtILFR 'LVHxR/yJLFRGH%DVHVGH'DWRV Diagrama de Estructura de Datos, DED • Técnica de representación gráfica de los esquemas lógicos de datos en los modelos convencionales (en particular, el modelo relacional) • Notación “a medio camino” entre los modelos E/R y Relacional • Soportados por herramientas CASE (ej. System Architect) • Uso del DED en la metodología METRICA v.2.1 – Fase 1: • ARS 3.2: Diseño del Esquema Lógico Actual de Datos • EFS 2.1: Construcción del Esquema Lógico de Datos • EFS 2.2: Normalización del Esquema Lógico de Datos 'LVHxR/yJLFRGH%DVHVGH'DWRV 2 Diagrama de Estructura de Datos, DED • Características del DED: – Únicamente Interrelaciones Binarias (dos entidades) – Sólo permitidas las Interrelaciones 1:N • Transformación de Interrelaciones 1:1 – Fusionar en una única entidad, o mantener la interrelación • Transformación de Interrelaciones M:N – Creación de una entidad auxiliar + Dos interrelaciones 1:N Ejemplo de Interrelación N:1 Pertenece EMPLEADO DEPARTAMENTO 'LVHxR/yJLFRGH%DVHVGH'DWRV Normalización del Diagrama de Estructura de Datos • 1FN: atributos con valor atómico – Evitar atributos multivalorados – Evitar atributos compuestos • 2FN: en toda entidad E, los atributos no identificadores dependen de manera total del identificador principal de E – Ningún atributo (no identificador) de E depende sólo de una parte de cualquier identificador (principal, alternativo) de E • 3FN: No existen dependencias funcionales transitivas entre los atributos de E. – Todo atributo no identificador sólo depende directamente de los identificadores. 'LVHxR/yJLFRGH%DVHVGH'DWRV 3 ',6(f2/Ð*,&2(67É1'$5 ♠5HJODVSDUDHO0RGHOR%iVLFR ♣'RPLQLRV ♣$WULEXWRV ♣(QWLGDGHV ♣,QWHUUHODFLRQHV ♠5HJODVSDUDHO0RGHOR([WHQGLGR ♣-HUDUTXtDVGH(VSHFLDOL]DFLyQ*HQHUDOL]DFLyQ 'LVHxR/yJLFRGH%DVHVGH'DWRV ',6(f2/Ð*,&2(67É1'$5 5(*/$6%É6,&$6 7LSRGH(QWLGDGÖ5HODFLyQ 7LSRGH,QWHUUHODFLyQ10Ö5HODFLyQ 7LSRGH,QWHUUHODFLyQ1\Ö³3URSDJDFLyQGHFODYH´RQXHYD5HODFLyQ /££3pUGLGDGHVHPiQWLFD 'LVHxR/yJLFRGH%DVHVGH'DWRV 4 'RPLQLRV\7LSRVGH(QWLGDG '20,1,2 7LSRGH(17,'$' ± 5HODFLyQRWDEODVHUHFRPLHQGDXVDUXQQRPEUHVLPLODURHOPLVPR dni numSS 0(5 05 nombre dirección PERSONA teléfono fechaNacimiento nacionalidad altura PERSONA( dni PRIMARY KEY, numSS NOT NULL UNIQUE, nombre, direccion, telefono, fechaNacimiento, nacionalidad, altura) 'LVHxR/yJLFRGH%DVHVGH'DWRV $WULEXWRV D$WULEXWR,GHQWLILFDGRU\1R,GHQWLILFDGRU ² ,GHQWLILFDGRU3ULQFLSDO Ö&ODYH3ULPDULDPRIMARY KEY ² ,GHQWLILFDGRU$OWHUQDWLYR Ö&ODYH$OWHUQDWLYDUNIQUE ± $WULEXWR12LGHQWLILFDGRU Ö&ROXPQD 3RGUiFRQWHQHU18/2VLQRVHLQGLFDORFRQWUDULR E$WULEXWR6LPSOH\0RQRYDOXDGR Ö&ROXPQD 'LVHxR/yJLFRGH%DVHVGH'DWRV 5 $WULEXWRV F$WULEXWR&RPSXHVWRGHOWLSRGHHQWLGDG( $³(OLPLQDU´DWULEXWRFRPSXHVWR\FRQVLGHUDUWRGRVVXVFRPSRQHQWHVFRPR DWULEXWRVVLPSOHVGHODUHODFLyQ5 %³(OLPLQDU´ORVFRPSRQHQWHV\FRQVLGHUDUHODWULEXWRFRPSXHVWRFRPRXQ ~QLFRDWULEXWRGH5 ¢&XiQGRVHUiPiVDGHFXDGR XWLOL]DUXQDRSFLyQXRWUD" 'LVHxR/yJLFRGH%DVHVGH'DWRV $WULEXWRV G$WULEXWR0XOWLYDORUDGRGHOWLSRGHHQWLGDG( ± 1XHYD5HODFLyQ6HQODTXHHODWULEXWRPXOWLYDORUDGRVHUHSUHVHQWDFRPR XQDWULEXWRVLPSOH$ ± 6FRQWHQGUiXQDWULEXWR)FODYHDMHQDDODFODYHSULPDULDGH5 ± &ODYH3ULPDULDGH6 )$ dni nombre PERSONA fechaNac direccion (1,n) PERSONA 3(5621$GQLQRPEUHIHFKD1DF DIRECCION PERSONA FK ',5(&&,21B3(5621$GQLGLUHFFLRQ 'LVHxR/yJLFRGH%DVHVGH'DWRV 6 ,QWHUUHODFLyQ%LQDULD01 IR E1 R1 ªª$f$',581$18(9$5(/$&,Ð15 R E2 R2 TXHLQFOX\HDWULEXWRV ± SDUDFDGDFODYHSULPDULDGH5\GH5 &ODYHVDMHQDVDODFODYHSULPDULDGH5\5UHVSHFWLYDPHQWH 6XFRPELQDFLyQFRQFDWHQDFLyQIRUPDODFODYHSULPDULDGH5 ± SDUDFDGDDWULEXWRVLPSOHRFRPSRQHQWHVLPSOHGHDWULEXWRFRPSXHVWR GHOWLSRGHLQWHUUHODFLyQ,5 derechosAutor codAutor isbn Escribe AUTOR (1,n) nomAutor >G03@ LIBRO (1,m) fechaFin titulo AUTOR(codAutor, nomAutor, ...) FK ESCRIBE(codAutor, isbn, fechaFin, derecAutor) LIBRO(isbn, titulo, ...) FK 'LVHxR/yJLFRGH%DVHVGH'DWRV ,QWHUUHODFLyQ%LQDULD01 (VSHFLILFDFLyQGHDFFLRQHVGLVSDUDGDVSRU,QWHJULGDG5HIHUHQFLDO CREATE TABLE ESCRIBE (codAutor Autores, codLibro Codigos, fechaFin DATE NOT NULL, derecAutor NUMBER(2) DEFAULT 20, PRIMARY KEY (codAutor, codLibro), FOREIGN KEY(codAutor) REFERENCES AUTOR(codAutor) ON DELETE RESTRICT ON UPDATE CASCADE, FOREIGN KEY(codLibro) REFERENCES LIBRO(isbn) ON DELETE CASCADE ON UPDATE CASCADE ); 'LVHxR/yJLFRGH%DVHVGH'DWRV 7 ,QWHUUHODFLyQ%LQDULD01 (VSHFLILFDFLyQGH5HVWULFFLRQHVR$VHUWRV ± 3DUDUHFRJHU&$5',1$/,'$'(60Ë1,0$\0È;,0$ 8QOLEURGHEHWHQHUHQWUH\DXWRUHV CREATE ASSERTION num_autores_por_libro CHECK ( (4>=(SELECT MAX(ocurrencias) FROM (SELECT COUNT(*) AS ocurrencias FROM ESCRIBE GROUP BY codLibro))) AND (1<=(SELECT MIN(ocurrencias) FROM (SELECT COUNT(*) AS ocurrencias FROM ESCRIBE GROUP BY codLibro)))); 'LVHxR/yJLFRGH%DVHVGH'DWRV ,QWHUUHODFLyQ%LQDULD D3DUWLFLSDFLyQ727$/GHDPERVWLSRVGHHQWLGDG /RVWLSRVGHHQWLGDG12SDUWLFLSDQHQRWURVWLSRVGHLQWHUUHODFLyQ ªª81$Ó1,&$5(/$&,Ð15 ± 3URSDJDFLyQGHFODYHVHQXQDXRWUDGLUHFFLyQHVLQGLIHUHQWH &ODYH3ULPDULDGH5 FODYHSULPDULDGH5 RGH5VLVRQGLVWLQWDV /DRWUDVHUiFODYHDOWHUQDWLYD81,48(\DGHP iV12718// ± $WULEXWRVVLPSOHVGH,5RFRPSRQHQWHVVLPSOHVGHDWULEXWRVFRPSXHVWRV WDPELpQVHLQFOX\HQFRPRDWULEXWRVGHODUHODFLyQ5 nss PACIENTE Tiene (1,1) nombre (1,1) HISTORIAL MEDICO ... ... numHisto fechaApertura centroSalud PACIENTE( nss, nombre, numHisto, fechaApertura, centrosalud, ...) PK AK, NN 'LVHxR/yJLFRGH%DVHVGH'DWRV 8 ,QWHUUHODFLyQ%LQDULD E3DUWLFLSDFLyQ727$/GHXQDHQWLGDG\3$5&,$/GHODRWUD E&DVRJHQHUDO IR E1 E2 ªª3523$*$&,Ð1'(&/$9( R1 ± /DFODYHGHODHQWLGDGFRQSDUWLFLSDFLyQSDUFLDO³VHSURSDJD´ KDFLDODHQWLGDGFRQSDUWLFLSDFLyQWRWDO→FODYHDMHQD codEmp EMPLEADO nomEmp R2 Un empleado de una empresa puede ser el gerente de un (único) departamento (desde cierta fecha, en la que fue nombrado como tal), o bien no dirigir ninguno. numDep (1,1) Dirige (0,1) DEPARTAMENTO EMPLEADO(codEmp, nomEmp, ...) >G03@ nomDep fechaInic FK DEPARTAMENTO(numDep, nomDep, codDire, fechaInic...) 'LVHxR/yJLFRGH%DVHVGH'DWRV ,QWHUUHODFLyQ%LQDULD E+D\SRFDVLQVWDQFLDVGHOWLSRGHLQWHUUHODFLyQ ªª$f$',581$18(9$5(/$&,Ð15 ± $WULEXWRVGH5 XQRVSDUDFDGDFODYHSULPDULDGH5\GH5 ± VRQFODYHVDMHQDVDODFODYHSULPDULDGH5\GH5UHVSHFWLYDPHQWH ± VRQFODYHVFDQGLGDWDVHQ5 ªXQRGHHOORVVHUiOD&ODYH3ULPDULDGH5 ODGHSDUWLFLSDFLyQWRWDOVLH[LVWH ªHORWURVHUi&ODYH$OWHUQDWLYDGH5UNIQUE\DGHPiVNOT NULL DWULEXWRVVLPSOHVRFRPSRQHQWHVVLPSOHVGHDWULEXWRVFRPSXHVWRVGH,5 ± (YLWD18/26HQORVDWULEXWRVSURSDJDGRV EMPLEADO(codEmp, nomEmp, ...) FK DIRIGE(codEmp, numDep, fechaInic) AK, NN FK DEPARTAMENTO(numDep, nomDep,...) 'LVHxR/yJLFRGH%DVHVGH'DWRV 9 ,QWHUUHODFLyQ%LQDULD E+D\PXFKDVLQVWDQFLDVGHOWLSRGHLQWHUUHODFLyQ ªª81$Ó1,&$5(/$&,Ð15 ± $WULEXWRVWRGRVORVGHOWLSRGHHQWLGDG\ORVGHOWLSRGHLQWHUUHODFL yQ ± &ODYH3ULPDULDODGHODHQWLGDGFRQSDUWLFLSDFL yQ3$5&,$/EMPLEADO ± 'HEHSHUPLWLUVH18/26HQORVDWULEXWRVSURSDJDGRV HPSOHDGRV12GLUHFWRUHV GHVGHODHQWLGDGFRQSDUWLFLSDFL yQ727$/\ GHVGHODLQWHUUHODFL yQ EMPLEADO( codEmp ... nomEmp ... , ..., numDepDir ... nomDepDir ... ..., fechaInicDir ... ... ) PRIMARY KEY, NULL UNIQUE, NULL, NULL, 'LVHxR/yJLFRGH%DVHVGH'DWRV ,QWHUUHODFLyQ%LQDULD F3DUWLFLSDFLyQ3$5&,$/GHDPERVWLSRVHQWLGDG ªª$f$',581$18(9$5(/$&,Ð15 ± 5VHFRQVWUX\HH[DFWDPHQWHLJXDOTXHHQHOFDVRE ± (YLWDORVYDORUHVQXORVTXHDSDUHFHUtDQVLVHSURSDJDUDODFODYHGH5D 5RYLFHYHUVDFDVRE lugar nif nif HOMBRE Matrimonio (0,1) Estándar (0,1) MUJER HOMBRE(nif, ...) FK MATRIMONIO(nifEsposa, nifEsposo, fecha, lugar) AK, NN FK MUJER(nif, ...) fecha <¢TXpDFFLRQHVGLVSDUDGDVSRUOD,QWHJULGDG 5HIHUHQFLDO GHEHUHPRV LPSRQHU SDUD WRGRV ORV FDVRVGHODVLQWHUUHODFLRQHV" 'LVHxR/yJLFRGH%DVHVGH'DWRV 10 ,QWHUUHODFLyQ%LQDULD1 E1 D&DVRJHQHUDO IR 1 N R1 ªª3523$*$&,Ð1'(&/$9( E2 R2 ± (Q5VHLQFOX\HQQXHYRVDWULEXWRVSDUDFRQWHQHUYDORUHVGH FODYHSULPDULDGH5 ± &ODYHDMHQDHQ5KDFLD5 RMRFRQDFFLRQHVGLVSDUDGDVSRU,QWHJULGDG5HIHUHQFLDO DWULEXWRVVLPSOHVRFRPSRQHQWHVVLPSOHVGHDWULEXWRVFRPSXHVWRVGH,5 D3DUWLFLSDFLyQ727$/XREOLJDWRULDGH(HQ,5FDUG( codProv 1:N PROVINCIA Esta_en nombreCiudad (1,1) CIUDAD (1,n) nomProv CIUDAD(nomCiudad, codProv, ...) FK: NULOS NO PERMITIDOS PROVINCIA(codProv, nomProv, ...) 'LVHxR/yJLFRGH%DVHVGH'DWRV ,QWHUUHODFLyQ%LQDULD1 D3DUWLFLSDFLyQ3$5&,$/XRSFLRQDOGH(HQ,5FDUG( nomMuseo codCuadro Expone PINACOTECA (0,1) ciudad CUADRO (1,n) titulo pintor sala NULOS PERMITIDOS CUADRO(codCuadro, titulo, pintor, nomMuseo, sala...) FK PINACOTECA(nomMuseo, ciudad, ...) 'LVHxR/yJLFRGH%DVHVGH'DWRV 11 ,QWHUUHODFLyQ%LQDULD1 E&DVRHQHOTXHVHFXPSOHXQRGHHVWRVVXSXHVWRV ± +D\SRFDVRFXUUHQFLDVGHOWLSRGHLQWHUUHODFL yQ 6HWHQGUtDQGHPDVLDGRV18/26HQODFODYHSURSDJDGDR ± ,5WLHQHYDULRVDWULEXWRVSURSLRV R ± (VSUREDEOHTXH,5VHWUDQVIRUPHHQXQIXWXURHQXQDLQWHUUHODFL yQ10 ªª$f$',581$18(9$5(/$&,Ð15 ± 5VHFRQVWUX\HH[DFWDPHQWHLJXDOTXHSDUDLQWHUUHODFLRQHV FDVRE &ODYHSULPDULDSURSDJDGDGHVGHODHQWLGDGFX\DVLQVWDQFLDVV yORSDUWLFLSDQ XQDYH]RQLQJXQDHQODLQWHUUHODFL yQ 1:N nif nombre matricula COCHE Propietario_de ESTUDIANTE (0,1) modelo (0,n) ESTUDIANTE(nif, nombre, ...) FK NN PROPIEDAD(nifEstudiante, matricula) FK COCHE(matricula, modelo, ...) 'LVHxR/yJLFRGH%DVHVGH'DWRV 'HSHQGHQFLDHQH[LVWHQFLDHLGHQWLILFDFLyQ E1 IR E2 &DVRSDUWLFXODUGH,5R1 R1 R2 FRQSURSDJDFLyQGHFODYH\SDUWLFLSDFLyQWRWDOGH( FDVRD FODYHDMHQD)GH5KDFLD5 SURSDJDFLyQGHFODYHGHVGH5D5 QRSHUPLWH18/2 FODYHSULPDULDGH5 ² '(3(1'(1&,$(1(;,67(1&,$ ª DWULEXWRVFODYHSULPDULDGH5LGHQWLILFDGRUSULQFLSDOGH( ² '(3(1'(1&,$(1,'(17,),&$&,Ð1 ª FRPELQDFLyQGHDWULEXWRV)\FODYHSDUFLDOGH5 $FWXDOL]DFLRQHV\%RUUDGRVHQ5VHWUDQVPLWHQHQ&$6&$'$ KDFLD5 'LVHxR/yJLFRGH%DVHVGH'DWRV 12 'HSHQGHQFLDHQH[LVWHQFLDHLGHQWLILFDFLyQ 1:N nifEmp nomEmp nifFam E EMPLEADO (1,1) Tiene FAMILIAR (0,n) EMPLEADO ( nifEmp, nomEmp, ...) FK FAMILIAR ( nifFam, nifEmp, ... ) nulos no permitidos ON DELETE CASCADE ON UPDATE CASCADE 1:N historial nombre PACIENTE (1,1) ID Acude (1,n) VISITA MEDICA fecha hora observaciones PACIENTE ( historial, nombre, ... ) FK VISITA_MEDICA ( historial,fecha,hora, ... ) nulos no permitidos ON DELETE CASCADE ON UPDATE CASCADE 'LVHxR/yJLFRGH%DVHVGH'DWRV $WULEXWR0XOWLYDORUDGRGH,QWHUUHODFLyQ ªª18(9$5(/$&,Ð16 ± (ODWULEXWRPXOWLYDORUDGRVHUHSUHVHQWDFRPRXQDWULEXWR VLPSOH$ ± (OUHVWRGHDWULEXWRVVLPSOHVGH,5VLORVKD\SDVDQD6 A (0,n) E1 IR E2 R1 R R2 S(..., A) 'LVHxR/yJLFRGH%DVHVGH'DWRV 13 $WULEXWR0XOWLYDORUDGRGH,QWHUUHODFLyQ 6HJ~Q,5VHD ² 6LQFOX\HXQDWULEXWR)FODYHDMHQDDODFODYHSULPDULDGH5RGH5 &ODYH3ULPDULDGH6 )$ ² 1(HVHOWLSRHQWLGDGFRQFDUGLQDOLGDG1 6LQFOX\HXQDWULEXWR)FODYHDMHQDDODFODYHSULPDULDGH5 &ODYH3ULPDULDGH6 )$ ² 10 6LQFOX\HGRVDWULEXWRV)\)FODYHVDMHQDVDODVFODYHVSULPDULDV GH5\5UHVSHFWLYDPHQWH &ODYH3ULPDULDGH6 ))$ 'LVHxR/yJLFRGH%DVHVGH'DWRV $WULEXWR0XOWLYDORUDGRGH,QWHUUHODFLyQ &DVR10 trimestre (1,3) nifProf maxNumAlumnos PROFESOR (1,m) Puede Ofertar SEMINARIO (0,n) codSeminario Oferta Seminario SEMINARIO PROFESOR Seminario Ofertado R1 PROFESOR(nifProf, ...) R OFERTA_SEMINARIO(nifProf, codSeminario, maxNumAlumnos) R2 SEMINARIO(codSeminario,...) S SEMINARIO_OFERTADO(nifProfesor, codSemin, trimestre) F1 F2 A FK FK FK FK 'LVHxR/yJLFRGH%DVHVGH'DWRV 14 ,QWHUUHODFLRQHV5HIOH[LYDV jefe nifEmp nomEmp JEFE DE EMPLEADO subordinado &DVR10 EMPLEADO ( nifEmp, nomEmp, ...) &DVRV1 EMPLEADO (nifEmp, nomEmp, ...) JEFE_DE ( nifJefe, nifSubordinado, ... ) JEFE_DE(nifJefe, nifSubordinado, ...) EMPLEADO ( nifEmp, nomEmp, ..., nifJefe, ... ) ( Solución problemática si puede haber muchos empleados sin jefe → demasiados nulos ) 5HODFLyQGRQGHODFODYHSULPDULDGHOWLSRGHHQWLGDGDSDUHFH UHIHUHQFLDGD'269(&(6 1RPEUDUHVRVDWULEXWRVVHJ ~QORVUROHVGHOWLSRHQWLGDGHQODLQWHUUHODFL yQ 'LVHxR/yJLFRGH%DVHVGH'DWRV ,QWHUUHODFLRQHV5HIOH[LYDVFRQW codigo (0,n) agregado 1 PRODUCTO (0,1) N componente >(1@ COMPUESTO_POR descripcion PRODUCTO(codigo, descripcion, ...) FK FK COMPONENTE(codAgregado, codComponente) XQSURGXFWRHVFRPSRQHQWHGHXQ~QLFRSURGXFWRRGHQLQJXQR $O3URGXFWR$JUHJDGRR&RPSXHVWR FK: nulos permitidos PRODUCTO(codigo, descripcion, codProducto,...) 3URGXFWRR&RPSRQHQWH 'LVHxR/yJLFRGH%DVHVGH'DWRV 15 ,QWHUUHODFLRQHVQDULDV E1 IR E2 R1 E3 R2 ªª$f$',581$18(9$5(/$&,215 TXHLQFOX\HDWULEXWRV R3 SDUDFDGDFODYHSULPDULDGH555 ± &ODYHVDMHQDVDODUHODFL yQ5LFRUUHVSRQGLHQWH SDUDFDGDDWULEXWRVLPSOHRFRPSRQHQWHVLPSOHGHDWULEXWRFRPSXHVWRGH,5 ± &ODYHSULPDULDGH5 1RUPDOPHQWHHVODFRPELQDFL yQGHWRGDVODVFODYHVH[WHUQDVKDFLD 5L SHURHVSRVLEOHTXHOD3.GH5VHDXQ VXEFRQMXQWRGHHVDVXSHUFODYH 'LVHxR/yJLFRGH%DVHVGH'DWRV ,QWHUUHODFLRQHVQDULDV matricula COCHE nifCliente (0,1) fechaVenta nifVendedor CLIENTE (0,n) VENTA VENDEDOR (0,m) (0,p) BANCO cifBanco VENTA (matricula, nifVendedor, nifCliente, cifBanco, fechaVenta, ...) ¢&XiOHVODVXSHUFODYHGHHVWDUHODFLyQ" ¢\FXiOHVVXFODYHSULPDULD" ¢&yPRDVHJXUDUTXHQRKD\DYHQWDVVLQFOLHQWHRVLQFRFKHRVLQYHQGHGRU" ¢3XHGHUHIOHMDUVHODH[LVWHQFLDGHYHQWDVGLUHFWDVVLQEDQFR" 'LVHxR/yJLFRGH%DVHVGH'DWRV 16 -HUDUTXtDVGH(VSHFLDOL]DFLyQ*HQHUDOL]DFLyQ D7UDQVIRUPDFLyQ'LULJLGDSRUHO6XSHUWLSR P /RVVXEWLSRVVHGLIHUHQFLDQHQSRFRVDWULEXWRV ,QWHUUHODFLRQHVHVWDEOHFLGDVFRQHOVXSHUWLSRR VRQODVPLVPDVSDUDWRGRVORVVXEWLSRV d S1 S2 ± 6HFUHDXQD~QLFDUHODFLyQ5TXHFRQWLHQH 72'26ORVDWULEXWRVGHOVXSHUWLSR3\GHORVVXEWLSRV 6\6 XQDWULEXWRQXHYRDWULEXWR GLVFULPLQDQWHGGHODMHUDUTXtD SRVLEOHVQXHYDVUHVWULFFLRQHVVHPiQWLFDV ± /DFODYHSULPDULDGH5HVHODWULEXWRFRUUHVSRQGLHQWHDO$,3 GHOVXSHUWLSR 'LVHxR/yJLFRGH%DVHVGH'DWRV -HUDUTXtDGH(VSHFLDOL]DFLyQ*HQHUDOL]DFLyQ CREATE TABLE '2&80(172( codigo ... PRIMARY KEY, DOCUMENTO titulo... , titulo $WULEXWR idioma ... , ',6&5,0,1$17( tipo ... , tipo nomEditorial ... NULL, añoEdicion ... NULL, ... CHECK (( tipo = “ARTICULO” AND LIBRO ARTÍCULO nomRevista IS NOT NULL AND añoEdicion IS NULL AND 5HVWULFFLRQHV nomEditorial IS NULL) 6(0É17,&$6 nomRevista añoEdicion nomEditorial OR ( tipo = “LIBRO” AND nomRevista IS NULL AND añoEdicion IS NOT NULL AND nomEditorial IS NOT NULL)) ); codigo idioma 'LVHxR/yJLFRGH%DVHVGH'DWRV 17 -HUDUTXtDGH(VSHFLDOL]DFLyQ*HQHUDOL]DFLyQ ± 6LODMHUDUTXtDHV727$/HOGLVFULPLQDQWHQRSHUPLWH18/26 ± 6LODMHUDUTXtDHV62/$3$'$ 7UDWDUHOGLVFULPLQDQWHFRPRXQ$75,%87208/7,9$/8$'2R $xDGLUXQDWULEXWRSRUFDGD VXEWLSRERROHDQRTXHLQGLFDVL ∈R∉DOVXEWLSR 9HQWDMDVH,QFRQYHQLHQWHV -$FFHVRHILFLHQWHD72'$ODLQIRUPDFLyQVREUHXQDHQWLGDGFRQFUHWDDFFHVR DXQDVRODUHODFLyQ /$SDULFLyQGHQXORVDWULEXWRVTXHSURFHGHQGHVXEWLSRVSDUDHQWLGDGHVTXH QRSHUWHQHFHQDWDOHVVXEWLSRV 7RGDRSHUDFLyQVREUHVXEWLSRVGHEH´EXVFDUµODVLQVWDQFLDVGHORVVXEWLSRV HQHOFRQMXQWRFRPSOHWRVXSHUWLSRGHLQVWDQFLDV 'LVHxR/yJLFRGH%DVHVGH'DWRV -HUDUTXtDGH(VSHFLDOL]DFLyQ*HQHUDOL]DFLyQ E7UDQVIRUPDFLyQ´7RWDOµ P /RVVXEWLSRVVHGLIHUHQFLDQHQPXFKRVDWULEXWRV 6HGHVHDPDQWHQHUORVDWULEXWRVFRPXQHVHQ XQDUHODFLyQVHSDUDGD S1 d S2 ± XQDUHODFLyQ5SDUDHOVXSHUWLSR3 LQFOX\HDWULEXWRVGH3 ODFODYHSULPDULDGH5HVHODWULEXWRFRUUHVSRQGLHQWHDO$,3GHO VXSHUWLSR ± XQDUHODFLyQ5LSDUDFDGDVXEWLSR6L FRQWLHQHDWULEXWRVGHOVXEWLSR6 L\ XQDWULEXWRFODYHDMHQDKDFLDODFODYHSULPDULDGH5 /DFODYHSULPDULDGHFDGD 5LHVHODWULEXWRFODYHDMHQDDODFODYHSULPDULDGH5 -)XQFLRQDSDUDMHUDUTXtDVGHWRGRWLSR/DPHMRUGHVGHHOSWRGHYLVWDVHPiQWLFR &RQYLHQHVLODVRSHUDFLRQHVVRQHVWULFWDPHQWH´ORFDOHVµDORVVXEWLSRVRELHQDO VXSHUWLSRHGFDVLQXQFDVHDFFHGHDODYH]DDWULEXWRVGHVXEWLSR\VXSHUWLSR /0HQRVHILFLHQWHHQHODFFHVR¢3RUTXp" 'LVHxR/yJLFRGH%DVHVGH'DWRV 18 -HUDUTXtDGH(VSHFLDOL]DFLyQ*HQHUDOL]DFLyQ F7UDQVIRUPDFLyQ'LULJLGDSRUORV6XEWLSRV ([LVWHQPXFKRVDWULEXWRV12FRPXQHVHQORVVXEWLSRV ([LVWHQSRFRVDWULEXWRVFRPXQHVHQHOVXSHUWLSR /RVDFFHVRVDGDWRVGHVXEWLSRVVLHPSUHDIHFWDQ WDPELpQDGDWRVFRPXQHV ± 6HFUHDXQD UHODFLyQ5LSDUDFDGDVXEWLSR6L FRQWLHQHDWULEXWRVGHOVXEWLSR6 L\ S1 DWULEXWRVFRPXQHVGHO VXSHUWLSR P d S2 ± /DFODYHSULPDULDGHFDGD 5LHVHODWULEXWR$,3GHOVXSHUWLSR -&RQYLHQHVLHOFRQFHSWRTXHUHSUHVHQWDHOVXSHUWLSRQRVHUHTXLHUHHQHOGLVOyJLFR )XQFLRQDSDUDMHUDUTXtDVWRWDOHV\H[FOXVLYDV $FFHVRPX\HILFLHQWHDWRGDODLQIRUPDFLyQUHXQLyQ\D´LQWHJUDGDµHQHOHVTXHPD /&RQMHUDUTXtDVVRODSDGDVDSDUHFHQ´UHSHWLFLRQHVµ &RQMHUDUTXtDVSDUFLDOHVVXUJHQSUREOHPDVGH´IDOWDGHUHSUHVHQWDFLyQµ 3DUDEXVFDUXQDRFXUUHQFLDGHOVXSHUWLSRKD\TXHEXVFDUHQWRGDVODVUHODFLRQHV SURFHGHQWHVGHORVVXEWLSRV 'LVHxR/yJLFRGH%DVHVGH'DWRV ',6(f2/Ð*,&2(63(&Ì),&2'/( &RQRFLPLHQWRGHO6*%' ¢6RSRUWDHO0/6"¢+DVWDTXpSXQWR" ¢&yPRHVFULELUHO(/(FRQODVLQWD[LVSURSLDGHO6*%'" (VWXGLDUODFRUUHVSRQGHQFLDHQWUHFRQFHSWRVGHO0/6\GHO6*%' 3XHGHQGDUVHGRVFDVRV 6*%'FRQVRSRUWHWRWDOGHO0/6VLQUHVWULFFLRQHV 7UDQVIRUPDFLyQFDVLGLUHFWDDO64/SURSLRGHO6*%' 6*%'QRVRSRUWDDOJXQRVFRQFHSWRVR VtORKDFHSHURFRQUHVWULFFLRQHV 8VRGHFRQFHSWRVGLVWLQWRVDOWHUQDWLYRV 3URJUDPDFLyQFRPSOHPHQWDULD /DPD\RUSDUWHGHO(/6VLUYHFRPR(/(DVtTXHVyORYHUHPRV ORVDVSHFWRVTXHQHFHVLWDQWUDQVIRUPDFLRQHVDGLFLRQDOHV 'LVHxR/yJLFRGH%DVHVGH'DWRV 19 '/('RPLQLRV $OJXQRVSURGXFWRVFRPHUFLDOHVV yORRIUHFHQVLQWD[LVGHGHILQLFL yQGH GRPLQLRVSHURQRLPSOHPHQWDQODVHP iQWLFDDVRFLDGD ± 6HJ~Q&RGGHOXVRGHGRPLQLRVWLHQHHVWDVYHQWDMDV • Declaración única de cada tipo de datos permitido en el esquema, • Soporte de integridad y coherencia entre dominios (operaciones compatibles como la UNION, INTERSECCION, etc.), • Posibilidad de creación de operadores y características propias de los dominios, • Facilitar la definición de comprobaciones del SGBD (menor/mayor que), • Posible indexación sobre el dominio, no sobre las columnas de las tablas, • Simplificar operaciones complejas sobre varias columnas, haciendolas directamente sobre el dominio /DPD\RUtDGH6*%'12RIUHFHQLQJ~QVRSRUWHSDUDGRPLQLRV $OWHUQDWLYD ± 'HILQLUWLSRGHGDWRVORQJLWXGUHVWULFFLRQHVSDUDFDGDDWULEXWRFROXPQD ± 6LPXODFLyQ 7DEODVGH'RPLQLR\ 3URFHGLPLHQWRVGHFRPSUREDFLyQGHYDORUHVFRUUHFWRV FRQWUROGHLQWHJULGDG 'LVHxR/yJLFRGH%DVHVGH'DWRV '/(&ODYHV3ULPDULDV 6LHO6*%'QRGLVSRQHGHVLQWD[LVSDUDGHILQLFLyQGH3.RVyORRIUHFHOD VLQWD[LVSDUDKDFHUORSHURQRLPSOHPHQWDVXVHPiQWLFDFRPR Oracle6 ± (VSHFLILFDUFDGDDWULEXWRFRPSRQHQWHGHOD3.FRPRNOT NULL ± (VSHFLILFDUTXHODFRPELQDFLyQGHWRGRVORVFRPSRQHQWHVGHOD3.KDGH WHQHUYDORUHV~QLFRV\DVHJXUDUHVWRWUDVLQVHUFLRQHV\DFWXDOL]DFLRQHV ± 0DQWHQHUODGHILQLFLyQGHFDGDFODYHSULPDULDFRPRFRPHQWDULRHQHO FDWiORJRGHO6*%'RVLpVWHORVRSRUWDLQFOXLUODGHILQLFLyQVLQWiFWLFD 1RWD HQ HO HVWiQGDU 64/ QR HV REOLJDWRULR HVSHFLILFDU OD 3. GH XQD UHODFLyQ \ HQ ORV SURGXFWRV FRPHUFLDOHV WDPSRFR SRU FRPSDWLELOLGDG FRQYHUVLRQHVDQWHULRUHV 'LVHxR/yJLFRGH%DVHVGH'DWRV 20 '/(&ODYHV$MHQDV 3RFRVSURGXFWRVVRSRUWDQHVWHFRQFHSWR Oracle7 Vt $OJXQRVORLQFOX\HQVyORDQLYHOVLQWiFWLFRSHURQRLPSOHPHQWDQOD VHPiQWLFDDVRFLDGDOracle6 2WURVSHUPLWHQFUHDUXQSURFHGLPLHQWRDOPDFHQDGRHQHOFDW iORJR TXHLPSOHPHQWDFDGDFODYHDMHQD (OPHFDQLVPRGH,QWHJULGDG5HIHUHQFLDOSHQDOL]DORVWLHPSRVGH UHVSXHVWDGHOVLVWHPD ± LPSRUWDQWHHQFRQVXOWDVLQWHUDFWLYDVVREUHWRGR ± %RUUDGRV$FWXDOL]DFLRQHVHQFDVFDGD ± ,PSOHPHQWDFLyQGH,QWHJULGDG5HIHUHQFLDO³HQGLIHULGR´ 'LVHxR/yJLFRGH%DVHVGH'DWRV '/(&ODYHV$MHQDV /DPD\RUtDGHSURGXFWRV12VRSRUWDQHVWHFRQFHSWRHQWRQFHV ± ,QWURGXFLUODVUHVWULFFLRQHVGHFODYHDMHQD).FRPR UHTXLVLWRVGH HVSHFLILFDFLyQGHSURJUDPDV ± (VSHFLILFDUFRPRNOT NULLORVDWULEXWRVGH).FRQQXORVQRSHUPLWLGRV ± 0DQWHQHUODGHILQLFLyQGHFDGDFODYHDMHQD FRPRFRPHQWDULRHQHO FDWiORJRGHO6*%' RVLpVWHORVRSRUWDLQFOXLUVX GHILQLFLyQVLQWiFWLFD ± 8WLOL]DUPHFDQLVPRVGHVHJXULGDGGRANT, REVOKESDUDSURKLELU RSHUDFLRQHVGHDFWXDOL]DFLyQLQWHUDFWLYDVTXHSXHGHQYLRODU5, UHIHUHQFLDO ± &UHDUXQSURFHGLPLHQWRTXHSHULyGLFDPHQWHFRPSUXHEH\QRWLILTXH SRVLEOHVYLRODFLRQHVGHOD,QWHJULGDG5HIHUHQFLDO 'LVHxR/yJLFRGH%DVHVGH'DWRV 21 '/(2WURVFRQFHSWRVGHO0RGHOR5HODFLRQDO 6HUiQHFHVDULRFUHDUSURFHGLPLHQWRV\RGLVSDUDGRUHV triggersTXH YHULILTXHQODVUHVWULFFLRQHVGHLQWHJULGDGGHILQLGDVHQODIDVHGH Diseño Lógico Estándar 6LHO6*%'ORSHUPLWHVHDOPDFHQDUiQHQHOFDWiORJRGHO6*%' 6LQRVHUiQSDUWHGHORVSURJUDPDVGHDSOLFDFL yQ ² 5HVWULFFLRQHVGHLQWHJULGDGFRPRHVSHFLILFDFLRQHVGHSURFHVRV 'LVHxR/yJLFRGH%DVHVGH'DWRV 22