Desarrollo de Sistemas de Información · los atributos y la clave principal. Claves candidatas,...
Transcript of Desarrollo de Sistemas de Información · los atributos y la clave principal. Claves candidatas,...
Tema3.DiseñoLógico
DesarrollodeSistemasdeInformación
MartaElenaZorrillaPantaleónDPTO.DEMATEMÁTICAS,ESTADÍSTICAY
COMPUTACIÓN
EstetemasepublicabajoLicencia:CreaIveCommonsBY‐NC‐SA3.0
REPASO MODELO RELACIONAL
MartaZorrilla
Universidadde
Cantabria
2
UC‐MartaZorrilla
3
NOMBRE PROFESION LOCALIDAD
Pedro
Luis
María
Ana
profesor
estudiante
estudiante
estudiante
Santander
Santander
LasPalmas
Madrid
Personal
NOMBRE LOCALIDAD Luis
María
Ana
Santander
LasPalmas
Madrid
SELECTNOMBRE,LOCALIDADFROMPersonalWHEREPROFESION=‘estudiante’
Losdatosseconcibenagrupadosenformadetablas
Cadafilaestableceunarelaciónentreunconjuntodevalores
Losoperadoresdeconsultagenerannuevastablas
EL MODELO RELACIONAL
UC‐MartaZorrilla
4
ENTIDAD NOMBRE
POBLACION DIRECCION
0893 Santander
0059 Popular
3428 BBVA
5632 Banesto
BANCOS
OFICINAS
0893 001 Madrid Castellana,73
3428 022 LasPalmas Triana,21
0893 022 Gáldar R.Moreno,3
5632 213 Oviedo Uría,43
0893 300 Barcelona Diagonal,435
• Toda tabla Iene una columna o conjunto decolumnas que permiten idenIficar cada una de susfilas; éstas componen la llamada clave principal(PrimaryKey,PK)delatabla.
• LosvaloresdelaclaveprincipalnosepuedenrepeIr(EnIdad en Bancos, y la pareja EnIdad‐Codigo_Oficina enOficinas).
• Unastablasserefierenaotrasmediante vínculos de Ipojerárquico.
• Este vínculo de referenciaentre dos tablas se establecemediante columnas de igualIpodedatoenlasdostablasyse denomina clave ajena oForeignKey(FK).
• LareferenciadeunafiladeunatablaaotradelaotratablaseproducecuandoambasIenenelmismovalor(columnaEnIdadenOficinasconrelaciónaEnIdadenBancos).
ENTIDAD CODIGO_OFICINA
EL MODELO RELACIONAL (Y 2)
UC‐MartaZorrilla
5
Cadenadecaracteres(char).
Numérico(numeric).
Fecha(date)yhora(dateIme).
Objetogrande(largeobject,LOB).
Tiposdefinidosporelusuario.
Cadacarácterrequiereunbyteparasualmacenamiento.
Enteros:Cortos(smallint).Largos(integer).
Decimales:definidosporsuprecisiónyescala(decimal)Notacióncienjfica:Simpleprecisión(smallfloat)
Dobleprecisión(float)
Diferentesopcionessegúnniveldeprecisión.
Binarylargeobject(blob).Characterlargeobject(clob).
TIPOSDEDATOS:cadacolumnadeunatablaIeneasociadounIpodedato.ExistenunsubconjuntoestándarperohayotrosdependientesdelgestorqueseuIlice
EL MODELO RELACIONAL (Y 2)
UC‐MartaZorrilla
6
• Realizarbúsquedasmáságilesenlastablas….
aunquesuponenunasobrecargapararealizarlasactualizacionesdedatos
ej:campo“jtulo”enunatablaquerecojaloslibrosdisponiblesenunabiblioteca.SejusIficaporserelcamposobreelqueserealizanmásconsultas
ConvienedefinirlossobrelascolumnasconFK
• EstablecerrestriccionesdeunicidadnopermiIrrepeIcionesdeunvalorenlacolumnaocolumnasafectadasporelíndice
ej:campo“ISBN”enunatablaquerecojaloslibrosdisponiblesenunabiblioteca
ÍNDICES:estructurasdedatosadicionalesquepermiten
EL MODELO RELACIONAL (Y 4)
UC‐MartaZorrilla
EJEMPLO 7
DISEÑO LÓGICO: DEL MODELO ER AL MODELO RELACIONAL
MartaZorrilla
Universidadde
Cantabria
UC‐MartaZorrilla
9 GESTIÓN DOCENTE
nombrePROFESORNroPersonal
Apellido_1
DPTO
pertenece
CodDptonombre
dirige
ALUMNOS CodAlunombre
ASIGNATURA
CodAsig
GRUPO
CodGrupo
Max‐alum
imparte
dnirealiza
IeneID
(1:1)
(1:n)
(1:1)
(1:1)
(0:n)
(0:1)
(1:1)
(0:n)
(1:1)
NombreCréditosCarácterCurso
capacidadAULASCodAula
clase
(1:n)
(0:n)
díahora
constaCalificación
Convocatoria(1..2)
MATRICULA
(0:n)
(0:n)
CursoAcadCodMatr
(1:1)
UC‐MartaZorrilla
10 ENTIDADES
ENTIDADESTABLAS Seconservanlosatributosylaclaveprincipal. Clavescandidatas,establecerrestriccióndeunicidad. Atributoscompuestosuncampoporatributo Atributosderivadoscolumnascalculadas AtributosmulIvaluadosnuevatabla Restriccionessobreatributoslenguajelógico
Ej:Asignatura(CodAsig,nombre,créditos,carácter,curso)
Alumno(CodAlu,nombre,dni)
Aula(CodAula,capacidad)
Profesor(NroPersonal,nombre,apellido_1)
Dpto(CodDpto,nombre)
Matricula(CodMatr,cursoAcad)
UC‐MartaZorrilla
11 ENTIDADES DÉBILES
ENTIDADESDÉBILESTABLAS
ConservatodossusatributosyseañadelaclaveprincipaldelaenIdadfuertedelaquedepende.
SilarelaciónesdeidenIficación,laclaveprincipallaformaalgúnatributodelaenIdaddébilylaclaveprincipaldelaenIdadfuerte.
Silarelaciónesdeexistencia,tendrásupropiaclave,peroseestableceráborradoyactualizaciónencascadaconrespectolaenIdadfuerte(tambiénsepodríarestringir).
Ej:
Grupo(CodAsig,CodGrupo,max_alum)
UC‐MartaZorrilla
12 RELACIONES
RELACIONESTABLAS
LatablaalaquedalugartendrácomoatributoslasclavesprincipalesdelasenIdadesqueseconectanylosatributosdelarelación.
Laeleccióndelaclaveprincipaldependedelacardinalidaddelarelación
M:N LaPKestaráformada,almenos,porlasPKdelasenIdadesquerelaciona.Dimensióntemporal.
CONSTA(CodMatr,CodAsig,CodGrupo,Convocatoria,calificación)
1:N LaPKestaráformadaporlaPKdelaenIdadqueparIcipaconcardinalidadN
PERTENECE(CodProf,CodDpto)
1:1LaPKestaráformadaporunadelasPKdelasenIdadesquerelaciona.Laotraactuarácomoclavecandidata.
DIRIGE(CodProf,CodDpto)
UC‐MartaZorrilla
13 ESQUEMA OBTENIDO Asignatura(CodAsig,nombre,créditos,carácter,curso)
Alumno(CodAlu,nombre,dni)
Aula(CodAula,capacidad)
Profesor(NroPersonal,nombre,apellido_1)
Dpto(CodDpto,nombre)
Matricula(CodMatr,cursoacad)
Grupo(CodAsig,CodGrp,max_alum)
CONSTA(CodMatr,CodAsig,CodGrupo,Convocatoria,calificación)
PERTENECE(NroPersonal,CodDpto)
DIRIGE(NroPersonal,CodDpto)
IMPARTE(CodAsig,CodGrupo,NroPersonal)
CLASE(CodAsig,CodGrupo,CodAula,hora,dia)
REALIZA(NumMatr,CodAlum)
N:Ntodoclavesimásdeungrupoenaulaonosequierenrecogerhuecoslibres
UC‐MartaZorrilla
14 ESQUEMA OBTENIDO: REDUCCIÓN DE TABLAS
Asignatura(CodAsig,nombre,creditos,carácter,curso)
Alumno(CodAlu,nombre,dni)
Aula(CodAula,capacidad)
Profesor(NroPersonal,nombre,apellido1)
Dpto(CodDpto,nombre)
Matricula(CodMatr,cursoacad)
Grupo(CodAsig,CodGrp,max_alum)
CONSTA(CodMatr,CodAsig,CodGrp,Convocatoria,calificación)
PERTENECE(NroPersonal,CodDpto)
DIRIGE(NroPersonal,CodDpto)
IMPARTE(CodAsig,CodGrupo,NroPersonal)
CLASE(CodAsig,CodGrupo,CodAula,hora,dia)
REALIZA(CodMatr,CodAlu)
Dpto(CodDpto,nombre,CodProfDirige)
Profesor(NroPersonal,nombre,apellido1,CodDpto)
Grupo(CodAsig,CodGrp,max_alum,NroPersonal)
Matricula(CodMatr,cursoacad,CodAlu)
UC‐MartaZorrilla
15 ESQUEMA DEFINITIVO
Dpto(CodDpto,nombre,CodProfDirige)
Profesor(NroPersonal,nombre,apellido1,CodDpto)
Alumno(CodAlu,nombre,dni)
Matricula(CodMatr,cursoacad,CodAlu)
CONSTA(CodMatr,CodAsig,CodGrupo,Convocatoria,calificación)
Grupo(CodAsig,CodGrupo,max_alum,NroPersonal)
Asignatura(CodAsig,nombre,créditos,carácter,curso)
CLASE(CodAsig,CodGrupo,CodAula,hora,dia)
Aula(CodAula,capacidad)
U:CD:NoacWonCodDptonotnull
U:CD:notacWonCodProfDirigenotnull
U:CD:NoacWonCodAlunotnull
U:CD:C
U:CD:NotacWon
U:CD:C
U:CD:Setnull
U:CD:NotacWon
U:CD:NotacWonNroPersonalnotnull
UC‐MartaZorrilla
16 ESQUEMA DEFINITIVO
CREATEASSERTIONconvocatoriasCHECKnotexists(selectcount(*)fromCONSTAgroupbyCodmatr,CodAsig,CodGrphavingcount(*)>2)
CREATEASSERTIONmaxAlumAulaCHECKnotexists(selectcount(*)fromCLASEc,AULAa,GRUPOgwherec.codAula=a.CodAulaandc.CodAsig=g.CodAsigandc.CodGrupo=g.CodGrupoandmax_alum>capacidad)
CREATEASSERTIONdirige_dptoASCHECKnotexists(SELECT*FROMDptoWHERECodProfDirigeNOTIN(SELECTNroPersonalFROMProfesorwhereProfesor.CodDpto=Dpto.CodDpto))
UC‐MartaZorrilla
17 RELACIONES UNARIAS
a)
persona(Codper,nombre,…,codper_madre)
b)
persona(Codper,nombre,…)
madre(Codper,codper_madre)
PERSONA
maternidad
hijomadre
Borrado:nullModificación:cascada
BorradoyModificación:cascadaonotacIon
1:1
0:N
NulosnopermiIdos
UC‐MartaZorrilla
18 GENERALIZACIÓN
CrearunatablaporcadaenIdadqueparIcipa
CrearunatablaparacadacasoparIcular,eliminandolaenIdaddenivelsuperior.Nofrecuente.
Crearunsolarelación
ELEMENTO(codElem,Coef,cc)
LOCAL(CodElem,Ipo_comercio,horario)
OFICINA(codElem,acIvidad)
VIVIENDA(codElem,numHab)
LOCAL(CodElem,Ipo_comercio,horario,Coef,cc)
OFICINA(codElem,acIvidad,Coef,cc)
VIVIENDA(codElem,numHab,Coef,cc)
ELEMENTO(CodElem,Ipo,horario,Ipo_comercio,acIvidad,numhab,Coef,cc)
Wpo
UC‐MartaZorrilla
19 RESTRICCIONES SEMÁNTICAS
Totalidad/parcialidad:
SecontrolalatotalidadprohibiendolainserciónenelsuperIpodirectamente,seharácuandoseinserteenlossubIpos(disparadores)
Laparcialidadnorequieredisparadores
Exclusividad/solapamiento
Serequiereunaserto(otrigger)quecompruebequesiunejemplarestáenunsubIponopuedeestarenotro
UC‐MartaZorrilla
20 AGREGACIÓN
REALIZADO(dni,codpru,fecha)
ATENDIDO(dni,codpru,fecha,nrp)
nombreENFERMO Codpru
tipoPRUEBArealizado
atendido
MEDICO
nombredni
especialidadnrp
fecha
1:1
1:n
UC‐MartaZorrilla
21 AGREGACIÓN
COCHE
CHASIS MOTOR RUEDA
(1:1)(1:1) (4:4)
COCHE(Idcoche,fechafabr,…,idchasis,idmotor)
coche_ruedas(idcoche,idrueda)
CHASIS(idchasis,nroserie,lon,anchura,…)
MOTOR(idmotor,nroserie,rpm,…)
RUEDA(idrueda,modelo,…)
obligatorios
UC‐MartaZorrilla
22 RELACIONES N-ARIAS
Noesdirecto,unarelaciónpuedetenervariasinterpretacionesytodasellasválidas.
Dependedelacardinalidad:
N:M:S,laPKelconjuntodelasPKdecadarelación
N:M:1,laPKseráelconjuntodelasPKconcardinalidaddisIntade1
N:1:1,probablementesedividiráendosrelaciones1:n
UC‐MartaZorrilla
23 DISTINTAS INTERPRETACIONES
N:M:SSUMINISTRO(CodProv,CodPieza,CodTrab)
N:M:1SUMINISTRO(CodProv,CodPieza,CodTrab)
N:1:1SUM1(CodPieza,CodProv)
SUM2(CodPieza,CodTrab)
PROVEEDOR
PIEZAsuministroTRABAJON
M
S
UC‐MartaZorrilla
24 A TENER EN CUENTA
ExistenrestriccionesdelmodeloERquedebentransformarsealmodelorelacionalmediantecheck,asertosodisparadores
CardinalidadesmínimasenrelacionesN:My1:N(cuandonosecontrolaconNOTNULL)
Cardinalidadesmáximas
Restringirelvalordeundeterminadocampo
Condiciónquehandecumplirloscamposdeunadeterminadatabla
Exclusividadeinclusividadentrerelaciones
Exclusividadengeneralizaciones
Insertadoyborradoengeneralizaciones
Atributosderivados(cuandonoescampocalculado)
UC‐MartaZorrilla
Curso2010‐2011
25 EJ: TRANSFORMACIÓN DE RESTRICCIONES
©Pia}nietal.
REGLAS DE TRANSFORMACIÓN UML A RELACIONAL. PERFIL UML
UC‐MartaZorrilla
Análisis Diseño
Diseño Físico
Implementación
ImplementaciónenProductoconOpImización
EspecificaciónenProducto
UML+
EstereoIposProductoUML+
EstereoIposSQL :2008
EspecificaciónSQL:2008
Diseño Lógico Estándar Diseño Lógico Específico
UMLDiagramadeClases
ETAPAS DEL DISEÑO 27
UC‐MartaZorrilla
ESTEREOTIPOS PARA EL DISEÑO DE BD RELACIONALES
ElementoBD ElementoUML EstereoWpo
Basededatos Componente <<Database>>
Esquema Paquete <<Schema>>
Tabla Clase <<Table>>
Vista Clase <<View>>
Índice Clase <<Index>>
Columna Atributo <<Column>>
Claveppal Atributo <<PK>>
Claveajena Atributo <<FK>>
ClavealternaWva Atributo <<AK>>
Atrib.MulWevaluado Atributo <<MA>>
Atrib.derivado Atributo <<DA>>
Atrib.Compuesto Atributo <<CA>>
Requerido Atributo <<NOTNULL>>
Único Restricción <<UNIQUE>>
Restr.Dominio Restricción <<CHECK>>
Reglanegocio Restricción <<TRIGGER>>
28
UC‐MartaZorrilla
EJEMPLO
UnestudiodearquitecturadeseacrearunabasededatosparagesIonarsusproyectos.
CadaproyectoIeneuncódigoyunnombre.UnproyectoIeneunoysolounjefedeproyectoyunjefedeproyectosólopuedeestarinvolucradoenunproyectooenninguno.
Decadajefedeproyectosedeseanrecogersusdatospersonales(código,nombre,direcciónyvariosteléfonos).UnjefedeproyectoseidenIficaporuncódigo.Nohaydosnombresdejefedeproyectoiguales.
Unproyectosecomponedeunaseriedeplanos,peroéstossequierenguardardemodoindependientealproyecto.Esdecir,sienunmomentodadosedejaradetrabajarenunproyecto,sedeseamantenerlainformacióndelosplanosasociados.
DelosplanossedeseaguardarsunúmerodeidenIficación,lafechadeentregayundibujodelplanogeneralconinformaciónacercadelnúmerodefigurasqueconIene.AdemásseindicaránlosdelineantesqueparIcipanensuconfección.
LosplanosIenenfiguras.Decadafigurasedeseaconocer,elidenIficador,elnombre(único),elcolor,eláreayelperímetro.Algunasdelasfigurassonpolígonosydeestossedeseaconocersiestánrellenosono,elnúmerodelíneasqueIenenylaslíneasqueloforman.
Decadalíneaqueformapartedeunpolígonosedeseaconocerelpuntodeorigenyeldefin(segúnsuscoordenadas,XeY),asícomolalongitud.CadalíneaIeneunidenIficadorquepermitediferenciarlodelresto.LalongituddelalíneasepuedecalcularaparIrdesuspuntosorigenyfinal.
Todosloscamposseestablecencomorequeridos
29
UC‐MartaZorrilla
1..*
Linea<<persistent>>
<<PK>>Linea_id<<DA>>Longitud<<NotNull>><<CA>>Origen:{EjeX,EjeY}<<NotNull>><<CA>>DesIno:{EjeX,EjeY}Longitud():integer
Poligono<<persistent>>
<<DA>>Num_Lineas<<NotNull>>RellenoNumLineas():integer
Figura
<<PK>>Figura_Id<<AK>>NombreColor
Plano<<persistent>>
<<PK>>Plano_id<<NotNull>>Fecha_Entrega<<NotNull>>Dibujo_Plano<<DA>>Num_Figuras
NumFiguras():integer
Proyecto<<persistent>>
<<PK>>Proyecto_id<<NotNull>>Nombre
JefeProyecto<<persistent>>
<<PK>>Cod_JefeProyecto<<AK>>Nombre<<NotNull>><<CA>>Direccion:{Tipo_Via,Nombre_Via,Poblacion,CP,Provincia}<<NotNull>><<MA>>Telefono
1 0..1
1..*
0..* 1..1
dirige►
◿Wene
Figura<<persistent>>
<<PK>>Figura_id<<AK>>Nombre<<NotNull>>Color<<DA>>area<<DA>>perimetroArea():realPerimetro():real
EJEMPLO EN PERFIL UML
Delineante<<persistent>>
<<PK>>Delineante_Id<<NotNull>>Nombre
0..n 1..n
dirige►
30
UC‐MartaZorrilla
1.Cadaclase(noafectadaporjerarquía)mapeaentabla
CREATETABLEPlano(Plano_Id INTEGER,Fecha_Entrega DATE,Dibujo_Plano BLOB);
SQL:2008Plano_IdFecha_EntregaDibujo_Plano
<<udt>>
<<persistent>> Plano<<persistent>>
REGLAS DE TRANSFORMACIÓN: CLASES 31
UC‐MartaZorrilla
REGLAS DE TRANSFORMACIÓN: CLASES-ATRIBUTOS
PERFILUML SQL:2008
Atributo AtributodelIpo
<<PK>> PKenlatabla
<<AK>> UNIQUEenlatabla
<<CA>> Uncampoparacadaatributoenlatabla
<<MA>> Tabla
<<DA>> Campocalculado‐función/
Campo�sicoactualizadopordisparador Nivelesdevisibilidad ‐‐‐
<<Método>> Función/Procedimiento
32
UC‐MartaZorrilla
SQL:2008
Figura<<persistent>>
<<PK>>Figura_Id<<AK>>NombreColor
CREATETABLEFigura(Figura_Id INTEGERNOTNULL,Nombre VARCHAR(30)NOTNULL,Color VARCHAR(15),PRIMARYKEY(Figura_Id),UNIQUE(Nombre));
REGLAS DE TRANSFORMACIÓN: CLASES-CLAVES PRINCIPALES Y ALTERNATIVAS
33
UC‐MartaZorrilla
Linea<<persistent>>
<<PK>>Linea_Id<<NotNull>><<CA>>Origen<<NotNull>><<CA>>DesIno
CREATETABLELinea(Linea_Id INTEGERNOTNULLPRIMARYKEY,OrigenEjeX INTEGERNOTNULL,OrigenEjeY INTEGERNOTNULL,DesInoEjex INTEGERNOTNULL,DesInoEjeY INTEGERNOTNULL);
SQL:2008
REGLAS DE TRANSFORMACIÓN: CLASES-ATRIBUTOS COMPUESTOS
34
UC‐MartaZorrilla
SQL:2008CREATETABLEJefeProyecto(Cod_JefeProyectoINTEGERNOTNULL,Nombre CHAR(20)NOTNULL);
CREATETABLEJefe_�nos(Cod_JefeProyecto INTEGERNOTNULL,Telefono CHAR(20)NOTNULL,UNIQUE(Cod_JefeProyecto,Telefono),FOREIGNKEY(Cod_JefeProyecto)REFERENCESJefeProyecto(Cod_JefeProyecto));
REGLAS DE TRANSFORMACIÓN: CLASES-ATRIBUTOS MULTIVALUADOS
JefeProyecto<<persistent>>
<<PK>>Cod_JefeProyecto<<AK>>Nombre<<NotNull>><<MA>>Telefono
35
UC‐MartaZorrilla
Linea<<persistent>>
<<PK>>Linea_Id<<CA>>Origen<<CA>>Final<<DA>>Longitud
CREATETABLELinea(Linea_Id INTEGERPRIMARYKEY,OrigenEjeX INTEGER,OrigenEjeY INTEGER,DesInoEjex INTEGER,DesInoEjeY INTEGER,LongitudASCalc_Longitud(OrigenEjeX,OrigenEjeY,DesWnoEjeX,DesWnoEjeY);
CREATE FUNCTION Calc_Longitud (OrigenEjeX int,OrigenEjeY,DesWnoEjeX,DesWnoEjeY)RETURNSINTEGERBEGIN.....END;
SQL:2008
Calc_Longitud()
REGLAS DE TRANSFORMACIÓN: CLASES-ATRIBUTOS DERIVADOS
36
UC‐MartaZorrilla
Proyecto<<persistent>>
<<PK>>Cod_JefeProyectoNombre
1..1 0..1
JefeProyecto<<persistent>>
<<PK>>Cod_JefeProyecto<<AK>>Nombre
REGLAS DE TRANSFORMACIÓN: ASOCIACIÓN
Dirigido_Por Dirige
CREATETABLEProyecto(Proyecto_IdINTNOTNULLPRIMARYKEY,Nombre VARCHAR(30),Dirigido_PorINTNOTNULL,FOREIGNKEYDirigido_PorREFERENCESJefeProyecto(Cod_JefeProyecto));
CREATETABLEJefeProyecto(Cod_JefeProyectoINTNOTNULLPRIMARYKEY,Nombre VARCHAR(30)NOTNULL,UNIQUE(Nombre));
SQL:2008
37
UC‐MartaZorrilla
SQL:2008
CREATETABLEFigura(Figura_Id INTEGERNOTNULLPRIMARYKEY,Nombre VARCHAR(30)NOTNULLUNIQUE,ColorVARCHAR(10)NOTNULL,Plano_Pert INTEGERNOTNULLFOREINGKEYREFERENCESPlano(Plano_id));
CREATETABLEPlano(Plano_Id INTEGERNOTNULLPRIMARYKEY,FechaEntregaDATENOTNULL);
Figura<<persistent>>
<<PK>>Figura_Id<<NotNull>><<AK>>Nombre<<NotNull>>Color
Plano<<persistent>>
<<PK>>Figura_Id<<NotNull>>FechaEntrega1..*
1..1
REGLAS DE TRANSFORMACIÓN: ASOCIACIÓN
Tiene_fig
Plano_pert
38
UC‐MartaZorrilla
SQL:2008
CREATETABLEDelineante(Delineante_idINTEGERNOTNULLPRIMARYKEY,NombreCHAR(20)NOTNULL);
CREATETABLEPlano(Plano_Id INTEGERNOTNULLPRIMARYKEY);
Delineante<<persistent>>
<<PK>>Delineante_Id<<NotNull>>Nombre
Plano<<persistent>>
<<PK>>Figura_Id0..N
REGLAS DE TRANSFORMACIÓN: ASOCIACIÓN
Pinta
Pintado_por
CREATETABLEDelineante_Plano(Plano_Id INTEGERNOTNULL,Delineante_idINTEGERNOTNULL,PRIMARYKEY(Plano_id,Delineante_id),FOREINGKEY(Plano_id)REFERENCESPlano(Plano_id),FOREINGKEY(Delineante_id)REFERENCESDelineante(Delineante_id));
1..N
39
UC‐MartaZorrilla
Poligono<<persistent>>
<<NotNull>>Relleno
Figura<<persistent>>
<<PK>>Figura_Id<<AK>>Nombre<<NotNull>>Color
CREATETABLEFigura(Figura_IdINTEGERNOTNULLPRIMARYKEY,NombreVARCHAR(30)NOTNULLUNIQUE,ColorVARCHAR(10)NOTNULL);
CREATETABLEPoligono(Figura_IdINTEGERPRIMARYKEY,RellenoBOOLEANNOTNULL,FOREIGNKEY(Figura_id)REFERENCESFigura(Figura_id));
SQL:2008
REGLAS DE TRANSFORMACIÓN: GENERALIZACIÓN
40
UC‐MartaZorrilla
CREATETABLEProyecto(Proyecto_Id INTEGERNOTNULLPRIMARYKEY,Nombre VARCHAR2(30));
CREATETABLEPlano(Plano_id INTEGERPRIMARYKEY,Proyecto_id INTEGERNOTNULLFOREIGNKEYREFERENCESProyecto(Proyecto_id);
1..*<<PK>>Proyecto_IdNombre
<<PK>>Plano_Id
Proyecto<<persistent>>
Plano<<persistent>>
SQL:2008
REGLAS DE TRANSFORMACIÓN: AGREGACIÓN
41
UC‐MartaZorrilla
CREATETABLEPoligono(Figura_IDINTEGERNOTNULLPRIMARYKEY,RellenoBOOLEANNOTNULL);
CREATETABLELinea(Linea_ID INTEGERNOTNULLPRIMARYKEY,Figura_idINTEGERNOTNULLFOREIGNKEYREFERENCESPoligono(Figura_Id)ONDELETECASCADEONUPDATECASCADE);
SQL:2008
1..*<<NotNull>>Relleno <<PK>>Linea_Id
Poligono<<persistent>>
Linea<<persistent>>
REGLAS DE TRANSFORMACIÓN: COMPOSICIÓN
42