DISEO LSICO DE uses de Dutos - Ob]etivo Principal: Tronsformor eI |squemo ConcepfuoI de Dofos en eI |squemo Logico de Dofos - Otros ob]etivos del Diseno Lgico: - Eliminar redundancias - Conseguir maxima simplicidad - Evitar cargas suplementarias de programacin para conseguir ... - una Estructura Lgica adecuada - un equilibrio entre los requisitos de usuario y la eficiencia - Diseno Lgico con la maxima POPTA8ILIDAD !ntroduccin tardia" del SGBD especifico - !mplementacin del Esquema Lgico sobre diferenfes SGBD comerciales - Migrocion entre versiones de un mismo SGBD Diseno Lgico de Bases de Datos - 2 |TAPAS deI DIS|MO LSICO ?Diseo Lgico Estndur {DLS} - Transformacin independiente del SGBD especifico - Se elige el NODELO DE DATOS, no el SGBD concreto Esquema Conceptual Esquema Lgico eStandar (ELS) - Uso de un Nodelo Lgico de datos eStandar (MLS) - Relacional - Red - Jerarquico - Orientado a Ob]etos ELS descrito mediante lengua]e estandar del modelo de datos - Diagrama de Estructura de Datos - SQL-92 en el Nodelo Relacional 2 Diseno Lgico de Bases de Datos - 3 |TAPAS deI DIS|MO LSICO @Diseo Lgico Especfico {DLE} - Se elige el SGBD especifico - Adaptacin del Esquema de BD a un SGBD concreto (comercial) Esquema Lgico Estandar Esquema Lgico Especifico (ELE) - Uso del Nodelo Lgico de Datos propio del SGBD elegido Informix, Oracle, DB2, Interbase,... ELE descrito mediante lengua]e DDL del SGBD especifico Diseno Lgico de Bases de Datos - + Diagrama de Estructura de Datos, DED Tcnica de representacin grfica de los esquemas lgicos de datos en los modelos convencionales (en particular, el modelo relacional) Notacin a medio camino entre los modelos E/R y Relacional Soportados por herramientas CASE (ej. System Architect) Uso del DED en la metodologa METRICA v.2.1 Fase 1: ARS 3.2: Diseo del Esquema Lgico Actual de Datos EFS 2.1: Construccin del Esquema Lgico de Datos EFS 2.2: Normalizacin del Esquema Lgico de Datos 3 Diseno Lgico de Bases de Datos - 5 Diagrama de Estructura de Datos, DED Caractersticas del DED: nicamente Interrelaciones Binarias (dos entidades) Slo permitidas las Interrelaciones 1:N Transformacin de Interrelaciones 1:1 Fusionar en una nica entidad, o mantener la interrelacin Transformacin de Interrelaciones M:N Creacin de una entidad auxiliar + Dos interrelaciones 1:N Ejemplo de Interrelacin N:1 EMPLEADO DEPARTAMENTO Pertenece Diseno Lgico de Bases de Datos - 6 Normalizacin del Diagrama de Estructura de Datos 1FN: atributos con valor atmico Evitar atributos multivalorados Evitar atributos compuestos 2FN: en toda entidad E, los atributos no identificadores dependen de manera total del identificador principal de E Ningn atributo (no identificador) de E depende slo 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 slo depende directamente de los identificadores. 4 Diseno Lgico de Bases de Datos - 7 DISEO LSICO ESTMDAk PegIos poro eI ModeIo 8osico Dominios Afribufos |nfidodes InferreIociones PegIos poro eI ModeIo |xfendido Jerorquos de |specioIi;ocion/SeneroIi;ocion Diseno Lgico de Bases de Datos - 8 DIS|MO LSICO |STAMDAP P|SLAS 8ASICAS Tipo de Entidad------------------- Relacin Tipo de !nterrelacin MM------ Relacin Tipo de !nterrelacin IM y II Propagacin de clave" o nueva Relacin II Perdido de semonfico ll 5 Diseno Lgico de Bases de Datos - 9 DOMIMIO Tipo de EMTIDAD - Relacin o tabla (se recomienda usar un nombre similar, o el mismo) Dominios y Tipos de |nfidod PERSONA direccin telfono dni numSS fechaNacimiento nombre nacionalidad altura PERSONA( dni PRIMARY KEY, numSS NOT NULL UNIQUE, nombre, direccion, telefono, fechaNacimiento, nacionalidad, altura) MER MR Diseno Lgico de Bases de Datos - 10 Afribufos {u} Atributo Identificudor y Mo Identificudor - Idenfificodor PrincipoI Clave Primaria (PRIMARY KEY) - Idenfificodor AIfernofivo Clave Alternativa (UNIQUE) - Atributo MO idenfificodor Columna Podra contener NULO si no se indica lo contrario {b} Atributo SimpIe y MonovuIuudo Columna 6 Diseno Lgico de Bases de Datos - 11 Afribufos {c} Atributo Compuesto del tipo de entidad E A) Eliminar" atributo compuesto y considerar todos sus componentes como ofribufos simpIes de la relacin R B) Eliminar" los componentes y considerar el atributo compuesto como un nico ofribufo de R Cuondo sero mos odecuodo ufiIi;or uno opcion u ofro7 Diseno Lgico de Bases de Datos - 12 Afribufos {d} Atributo MuItivuIorudo del tipo de entidad E - Nueva Relacin S, en la que el atributo multivalorado se representa como un atributo simple A - S contendra un atributo F, clave a]ena a la clave primaria de R - Clave Primaria de S = (F, A) PERSONA fechaNac dni direccion (1,n) nombre ||R'0N/(ca|, acmcre, |ec|aNac) D|R|CC|0N_||R'0N/(ca|, c|recc|ca) FK PERSONA DIRECCION PERSONA 7 Diseno Lgico de Bases de Datos - 13 InferreIocion 8inorio MM AMADIP UMA MU|VA P|LACIM R, que incluye atributos... - para cada clave primaria de R1 y de R2 - Claves a]enas a la clave primaria de R1 y R2, respectivamente - Su combinacin (concatenaci n) forma la clave primaria de R - para cada atributo simple (o componente simple de atributo compuesto) del tipo de interrelacin !R AUTOR LIBRO fechaFin (1,n) (1,m) titulo nomAutor codAutor isbn derechosAutor Escribe AUTOR(codAutor, nomAutor, ...) ESCRIBE(codAutor, isbn, fechaFin, derecAutor) LIBRO(isbn, titulo, ...) FK FK E1 E2 IR R1 R2 R [dMP93j Diseno Lgico de Bases de Datos - 1+ InferreIocion 8inorio MM - Especificacin de occiones disporodos por Infegridod PeferencioI 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 ); 8 Diseno Lgico de Bases de Datos - 15 InferreIocion 8inorio MM - Especificacin de Restricciones o Asertos - Para recoger CARD!NAL!DADES NN!NA y NAX!NA Un Iibro debe fener enfre I y 4 oufores 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)))); Diseno Lgico de Bases de Datos - 16 InferreIocion 8inorio II {u} Porficipocion TOTAL de ombos fipos de enfidod Los tipos de entidad NO participan en otros tipos de interrelacin UMA MICA P|LACIM R - Propagacin de claves en una u otra direccin (es indiferente) - Clave Primaria de R = clave primaria de R1 o de R2 (*si son disfinfos*) - La otra sera clave alternativa (UN!QUE) y ademas NOT NULL - Atributos simples de IR o componentes simples de atributos compuestos, tambien se incluyen como atributos de la relaci n R centroSalud (1,1) (1,1) fechaApertura nombre nss numHisto ... MEDICO HISTORIAL PACIENTE PACIENTE( nss, nombre, numHisto, fechaApertura, centrosalud, ...) ... AK, NN Tiene PK 9 Diseno Lgico de Bases de Datos - 17 InferreIocion 8inorio II {b} Porficipocion TOTAL de uno enfidod y PAPCIAL de Io ofro (b.I) Caso general PPOPASACIM D| CLAV| - La cIove de la enfidod con participacin porcioI se propaga" hacia la enfidod con participacin fofoI cIove ojeno EMPLEADO(codEmp, nomEmp, ...) DEPARTAMENTO(numDep, nomDep, codDire, fechaInic...) FK 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. E1 E2 IR R1 R2 (1,1) (0,1) DEPARTAMENTO EMPLEADO codEmp nomEmp nomDep numDep Dirige fechaInic [dMP93j Diseno Lgico de Bases de Datos - 18 InferreIocion 8inorio II (b.Z) Hay pocas instancias del tipo de interrelacin AMADIP UMA MU|VA P|LACIM R - Atributos de R: - uno(s) para cada clave primaria de R1 y de R2 - son cIoves ojenos (a la clave primaria de R1 y de R2, respectivamente) - son cIoves condidofos en R uno de ellos sera la CIove Primorio de R (la de participacin total, si existe) el otro sera CIove AIfernofivo de R (UNIQUE) y ademas NOT NULL - atributos simples (o componentes simples de atributos compuestos) de !R - Evita NULOS en los atributos propagados EMPLEADO(codEmp, nomEmp, ...) DIRIGE(codEmp, numDep, fechaInic) DEPARTAMENTO(numDep, nomDep,...) FK FK AK, NN 10 Diseno Lgico de Bases de Datos - 19 InferreIocion 8inorio II (b.3) Hay muchas instancias del tipo de interrelacin UMA MICA P|LACIM R - Atributos: todos (los del tipo de entidad y los del tipo de interrelaci n) - Clave Primaria: la de la entidad con participaci n PARC!AL (EMPLEADO) - Debe permitirse NULOS en los atributos propagados (empIeodos MO direcfores) - desde la entidad con participaci n TOTAL y - desde la interrelaci n EMPLEADO( codEmp ... PRIMARY KEY, nomEmp ... , ..., numDepDir ... NULL UNIQUE, nomDepDir ... NULL, ..., fechaInicDir ... NULL, ... ) Diseno Lgico de Bases de Datos - 20 InferreIocion 8inorio II {c} Porficipocion PAPCIAL de ombos fipos enfidod AMADIP UMA MU|VA P|LACIM R - R se construye exactamente igual que en el caso (b.2) - Evita los valores nulos que aparecerian si se propagara la clave de R1 a R2 o viceversa (caso (b.1)) (0,1) (0,1) MUJER HOMBRE nif nif Matrimonio Estndar fecha lugar HOMBRE(nif, ...) MATRIMONIO(nifEsposa, nifEsposo, fecha, lugar) MUJER(nif, ...) FK FK AK, NN Y... que ucciones dispurudus por Iu Integridud keferenciuI deberemos imponer poro (fodos Ios cosos de) Ios inferreIociones II7... 11 Diseno Lgico de Bases de Datos - 21 InferreIocion 8inorio IM {u} Coso generoI PPOPASACIM D| CLAV| - En R2 se incluyen nuevos ofribufos para contener valores de... - clave primaria de R1 - Clave a]ena en R2 hacia R1 (ojo con occiones disporodos por Infegridod PeferencioI) - atributos simples (o componentes simples de atributos compuestos) de !R (o.I) Porficipocion TOTAL u obIigoforio de |Z en IP cord(|Z)~(I,I) E1 E2 IR R1 R2 CIUDAD(nomCiudad, codProv, ...) PROVINCIA(codProv, nomProv, ...) FK: NULOS NO PERMITIDOS 1 N PROVINCIA CIUDAD (1,1) (1,n) nomProv codProv nombreCiudad Esta_en 1:N Diseno Lgico de Bases de Datos - 22 InferreIocion 8inorio IM (o.Z) Porficipocion PAPCIAL u opcionoI de |Z en IP cord(|Z)~(0,I) PINACOTECA CUADRO (0,1) (1,n) nomMuseo codCuadro CUADRO(codCuadro, titulo, pintor, nomMuseo, sala...) PINACOTECA(nomMuseo, ciudad, ...) Expone FK titulo pintor ciudad sala NULOS PERMITIDOS 12 Diseno Lgico de Bases de Datos - 23 InferreIocion 8inorio IM {b} Coso en eI que se cumpIe uno de esfos supuesfos - Hay pocas ocurrencias del tipo de interrelaci n - Se tendrian demasiados NULOS en la clave propagada, o - !R tiene varios atributos propios, o - Es probable que !R se transforme en un futuro en una interrelaci n N:N AMADIP UMA MU|VA P|LACIM R - R se construye exactamente igual que para interrelaciones 1:1 (coso b.Z) - Clave primaria: propagada desde la entidad cuyas instancias s lo participan una vez (o ninguna) en la interrelaci n ESTUDIANTE(nif, nombre, ...) PROPIEDAD(nifEstudiante, matricula) COCHE(matricula, modelo, ...) FK FK NN ESTUDIANTE COCHE (0,1) (0,n) nif matricula Propietario_de modelo nombre 1 : N Diseno Lgico de Bases de Datos - 2+ Dependencio en exisfencio e idenfificocion - Caso particular de !R 1:1 o 1:N con propogocion de cIove y porficipocion fofoI de E2 - (caso o.I) - clave a]ena F de R2 hacia R1 (propagacin de clave desde R1 a R2) no permite NULO - clave primaria de R2: - D|P|MD|MCIA |M |XIST|MCIA atributos clave primaria de R2 (identificador principal de E2) - D|P|MD|MCIA |M ID|MTIFICACIM combinacin de atributos: F y clave (parcial) de R2 - Actualizaciones y Borrados en R1 se transmiten en CASCADA hacia R2 E1 E2 IR R1 R2 13 Diseno Lgico de Bases de Datos - 25 Dependencio en exisfencio e idenfificocion FAMILIAR EMPLEADO (1,1) (0,n) EMPLEADO ( nifEmp, nomEmp, ...) FAMILIAR ( nifFam, nifEmp, ... ) FK E nulos no permitidos ON DELETE CASCADE ON UPDATE CASCADE nifFam nifEmp nomEmp VISITA MEDICA PACIENTE 1:N (1,1) (1,n) PACIENTE ( historial, nombre, ... ) VISITA_MEDICA ( historial,fecha,hora, ... ) FK ID nulos no permitidos ON DELETE CASCADE ON UPDATE CASCADE fecha historial nombre hora observaciones 1:N Tiene Acude Diseno Lgico de Bases de Datos - 26 Afribufo MuIfivoIorodo de InferreIocion MU|VA P|LACIM S, - El atributo multivalorado se representa como un atributo simple A - El resto de atributos simples de !R (si los hay) pasan a S E1 E2 IR R1 R2 R A (0,n) S(..., A) 14 Diseno Lgico de Bases de Datos - 27 Afribufo MuIfivoIorodo de InferreIocion Segun !R sea... - 1:1 - S incluye un atributo F, clave a]ena a la clave primaria de R1 o de R2 - Clave Primaria de S = {F, A) - 1:M { EZ es eI tipo entidud con curdinuIidud M } - S incluye un atributo F, clave a]ena a la clave primaria de R2 - Clave Primaria de S = {F, A) - M:M - S incluye dos atributos F1 y F2, claves a]enas a las claves primarias de R1 y R2, respectivamente - Clave Primaria de S = {F1, F2, A) Diseno Lgico de Bases de Datos - 28 PROFESOR(nifProf, ...) OFERTA_SEMINARIO(nifProf, codSeminario, maxNumAlumnos) SEMINARIO(codSeminario,...) SEMINARIO_OFERTADO(nifProfesor, codSemin, trimestre) FK FK FK FK R1 R R2 S A F2 F1 Afribufo MuIfivoIorodo de InferreIocion trimestre (1,3) PROFESOR SEMINARIO (1,m) (0,n) maxNumAlumnos nifProf Puede Ofertar codSeminario Coso MM PROFESOR SEMINARIO Seminario Ofertado Oferta Seminario 15 Diseno Lgico de Bases de Datos - 29 InferreIociones PefIexivos ( Solucin problemtica si puede haber muchos empleados sin jefe demasiados nulos ) EMPLEADO JEFE DE subordinado jefe nifEmp nomEmp EMPLEADO (nifEmp, nomEmp, ...) JEFE_DE(nifJefe, nifSubordinado, ...) Cuso M:M EMPLEADO ( nifEmp, nomEmp, ...) JEFE_DE ( nifJefe, nifSubordinado, ... ) Cusos 1:M EMPLEADO ( nifEmp, nomEmp, ..., nifJefe, ... ) - Relacin donde la clave primaria del tipo de entidad aparece referenciada DOS vECES - Nombrar esos atributos segun los roles del tipo entidad en la interrelaci n Diseno Lgico de Bases de Datos - 30 PRODUCTO(codigo, descripcion, ...) COMPONENTE(codAgregado, codComponente) --- un producfo es componenfe de un nico producfo, o de ninguno FK PRODUCTO (0,1) (0,n) descripcion codigo COMPUESTO_POR agregado componente 1 N FK PRODUCTO(codigo, descripcion, codProducto,...) FK: nulos permitidos (AI Producfo Agregodo o Compuesfo) Producfo o Componenfe InferreIociones PefIexivos (conf.) [EM97j 16 Diseno Lgico de Bases de Datos - 31 AMADIP UMA MU|VA P|LACIOM k que incluye atributos... - para cada clave primaria de R1, R2, R3... - Claves a]enas a la relaci n R i correspondiente - para cada atributo simple (o componente simple de atributo compuesto) de !R - Clave primaria de R: - Normalmente, es la combinaci n de todas las claves externas hacia R i - pero es posible que la PK de R sea un subconjunfo de esa superclave E1 E2 IR R1 R2 E3 R3 InferreIociones n-orios Diseno Lgico de Bases de Datos - 32 CLIENTE VENDEDOR (0,n) (0,m) nifCliente nifVendedor VENTA BANCO cifBanco COCHE matricula (0,1) (0,p) fechaVenta VENTA (matricula, nifVendedor, nifCliente, cifBanco, fechaVenta, ...) ^CuoI es Io supercIuve de esfo reIocion7 ^^y cuoI es su cIuve primuriu7 ^^^Como oseguror que no hoyo ventus sin cIienfe o sin coche o sin vendedor7 ^^^^Puede refIejorse Io exisfencio de venfos direcfos (sin bonco)7 InferreIociones n-orios 17 Diseno Lgico de Bases de Datos - 33 Jerorquos de |specioIi;ocion/SeneroIi;ocion {u} Tronsformocion Dirigido por eI Superfipo - Los subtipos se diferencian en pocos atributos - Interrelaciones establecidas con el supertipo o son las mismas para todos los subtipos - Se crea una nico reIocion R que contiene... - TODOS los atributos del supertipo P y de los subtipos S1 y SZ - un atributo nuevo -- atributo discriminonfe d de Io jerorquo - (posibles) nuevas resfricciones semonficos - La cIove primorio de R es el atributo correspondiente al A!P del supertipo P S2 S1
d Diseno Lgico de Bases de Datos - 3+ DOCUMENTO codigo LIBRO ARTCULO
titulo idioma aoEdicion nomEditorial tipo CREATE TABLE DOCUMENTO( codigo ... PRIMARY KEY, titulo... , idioma ... , tipo ... , nomEditorial ... NULL, aoEdicion ... NULL, ... CHECK (( tipo = ARTICULO AND nomRevista IS NOT NULL AND aoEdicion IS NULL AND nomEditorial IS NULL) OR ( tipo = LIBRO AND nomRevista IS NULL AND aoEdicion IS NOT NULL AND nomEditorial IS NOT NULL)) ); Afribufo DISCPIMIMAMT| Pesfricciones S|MAMTICAS nomRevista Jerorquo de |specioIi;ocion/SeneroIi;ocion 18 Diseno Lgico de Bases de Datos - 35 - Si la jerarqua es TOTAL, el discriminante no permite NULOS - Si la jerarqua es SOLAPADA, - Tratar el discriminante como un ATR!BUTO NULT!vALUADO, o - Anadir un atributo por cada subtipo (booleano que indica si o al subtipo) Venfojos e Inconvenienfes Acceso eficienfe o TODA Io informocion sobre uno enfidod concrefo (occeso o uno soIo reIocion) ^Aporicion de nuIos (ofribufos que proceden de subfipos poro enfidodes que no perfenecen o foIes subfipos) ^ Todo operocion sobre subfipos debe "buscor" Ios insfoncios de Ios subfipos en eI conjunfo compIefo (superfipo) de insfoncios Jerorquo de |specioIi;ocion/SeneroIi;ocion Diseno Lgico de Bases de Datos - 36 {b} Tronsformocion "TofoI" - Los subtipos se diferencian en muchos atributos - Se desea mantener los atributos comunes en una relacin separada - una reIocion P poro eI superfipo P - incluye atributos de P - la cIove primorio de R es el atributo correspondiente al A!P del supertipo - una reIocion P i poro codo subfipo S i - contiene atributos del subtipo S i y un atributo clave a]ena hacia la clave primaria de R - La cIove primorio de cada R i es el atributo clave a]ena a la clave primaria de R ^Funciono poro jerorquos de fodo fipo. Lo mejor desde eI pfo. de visfo semonfico ^Conviene si Ios operociones son esfricfomenfe "IocoIes" o Ios subfipos o bien oI superfipo (e.d. cosi nunco se occede o Io ve; o ofribufos de subfipo y superfipo) Menos eficienfe en eI occeso (^^Por que7^^) P S2 S1
d Jerorquo de |specioIi;ocion/SeneroIi;ocion 19 Diseno Lgico de Bases de Datos - 37 {c} Tronsformocion Dirigido por Ios Subfipos - Existen muchos atributos NO comunes (en los subtipos) - Existen pocos atributos comunes (en el supertipo) - Los accesos a datos de subtipos siempre afectan tambin a datos comunes - Se crea una reIocion P i poro codo subfipo S i - contiene atributos del subtipo S i y - atributos comunes (del supertipo) - La cIove primorio de cada R i es el atributo A!P del supertipo ^Conviene si eI concepfo que represenfo eI superfipo no se requiere en eI dis. Iogico ^Funciono poro jerorquos fofoIes y excIusivos ^Acceso muy eficienfe o fodo Io informocion (reunion yo "infegrodo" en eI esquemo) ^Con jerorquos soIopodos oporecen "repeficiones" ^Con jerorquos porcioIes surgen probIemos de "foIfo de represenfocion" ^Poro buscor uno ocurrencio deI superfipo, hoy que buscor en fodos Ios reIociones procedenfes de Ios subfipos. P S2 S1
d Jerorquo de |specioIi;ocion/SeneroIi;ocion Diseno Lgico de Bases de Datos - 38 DISEO LSICO ESPECFICO {DLE} - Conocimiento del SGBD Soporfo eI MLS7 Hosfo que punfo7 Como escribir eI |L| con Io sinfoxis propio deI SS8D7 - Estudiar la correspondencio entre concepfos del NLS y del SGBD Pueden darse dos cosos: 1. SGBD con soporfe fofoI del NLS sin restricciones - Transformacin (casi) directa al SQL propio del SGBD 2. SGBD no soporta oIgunos conceptos, o s lo hace pero con resfricciones - Uso de conceptos distintos alternativos - Programacin complementaria - La mayor parte del ELS sirve como ELE, asi que slo veremos los aspectos que necesitan transformaciones adicionales 20 Diseno Lgico de Bases de Datos - 39 DL| Dominios - Algunos productos comerciales slo ofrecen sintaxis de definici n de dominios, pero no implementan la semantica asociada - Segun Codd (1990) el uso de dominios tiene estas venta]as Declaracin 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 creacin de operadores y caractersticas propias de los dominios, Facilitar la definicin de comprobaciones del SGBD (menor/mayor que), Posible indexacin sobre el dominio, no sobre las columnas de las tablas, Simplificar operaciones complejas sobre varias columnas, haciendolas directamente sobre el dominio - La mayoria de SGBD NO ofrece ningun soporte para dominios Alternativa: - Definir tipo de datos, longitud, restricciones para cada atributo (columna) - Simulacin: - Tablas de Dominio y - Procedimientos de comprobacin de valores correctos (control de integridad) Diseno Lgico de Bases de Datos - +0 DL| CIuves Primurius - Si el SGBD no dispone de sintaxis para definici n de PK o slo ofrece la sintaxis para hacerlo, pero no implementa su semantica (como Oracle6)... - Especificar cada atributo componente de la PK como NOT NULL - Especificar que la combinacin de todos los componentes de la PK ha de tener valores unicos (y asegurar esto tras inserciones y actualizaciones) - Nantener la definicin de cada clave primaria como comenforio en el catalogo del SGBD o, si este lo soporta, incluir la definicion sinfocfico ^Mofo en eI esfondor SQLZ no es obIigoforio especificor Io PI de uno reIocion, y en Ios producfos comercioIes fompoco (por compofibiIidod con versiones onferiores) 21 Diseno Lgico de Bases de Datos - +1 DL| CIuves Agenus - Pocos productos soportan este concepto (Oracle7 si) - Algunos lo incluyen slo a nivel sintactico, pero no implementan la semantica asociada (Oracle6) - Otros permiten crear un procedimiento (almacenado en el cat alogo) que implementa cada clave a]ena - El mecanismo de !ntegridad Referencial penaliza los tiempos de respuesta del sistema - importante en consultas interactivas, sobre todo. - BorradosfActualizaciones en cascada. - !mplementacin de !ntegridad Referencial en diferido". Diseno Lgico de Bases de Datos - +2 DL| CIuves Agenus - La mayoria de productos NO soportan este concepto, entonces... - !ntroducir las restricciones de clave a]ena FK como requisifos de especificocion de programas - Especificar como NOT NULL los atributos de FK con nulos no permitidos - Nantener la definicion de cada clave a]ena como comenforio en el catalogo del SGBD o, si este lo soporta, incluir su definicion sinfocfico - Utilizar mecanismos de seguridad (GRANT, REVOKE) para prohibir operociones de ocfuoIi;ocion interactivas que pueden vioIor PI referencioI - Crear un procedimienfo que peridicamente compruebe y notifique posibIes vioIociones de la !ntegridad Referencial 22 Diseno Lgico de Bases de Datos - +3 DL| Ofros concepfos deI ModeIo PeIocionoI - Sera necesario crear procedimientos yfo disparadores ( triggers) que verifiquen las restricciones de integridud definidas en la fase de Diseo Lgico Estndar - Si el SGBD lo permite, se almacenaran en el cofoIogo deI SS8D - Si no, seran porfe de Ios progromos de opIicoci on - Pesfricciones de infegridod como especificuciones de procesos