Desarrollo de Sistemas de Información · los atributos y la clave principal. Claves candidatas,...

Preview:

Citation preview

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