DISEfO LÓGICO DE Bases de Datos ETAPAS del DISEfO LÐGICO

Anuncio
',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
Descargar