Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de...
Transcript of Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de...
![Page 1: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/1.jpg)
BasesdeDatos
JoséAntonioCamarenaIbarrola
![Page 2: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/2.jpg)
PANORAMAGENERAL– Introducción– ¿QueesunsistemadeBasedeDatos?
• Datos• Hardware• SoGware• Usuarios
– ¿QuéesunaBasedeDatos?• DatosPersistentes• EnIdadesyVínculos• Propiedades• DatosyModelosdeDatos
¿PorqueunaBasedeDatos?• AdministracióndeDatosyAdministracióndeBasesdeDatos• BeneficiosdelenfoquedeBasedeDatos
– LaindependenciadelosDatos– LosSistemasRelacionalesyotrosSistemas
![Page 3: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/3.jpg)
ModelosdeDatos• Introducción• LostresnivelesdelaarquitecturadelossistemasdeBasesdeDatos.
• ElNivelExterno• ElNivelConceptual.• ElNivelInterno• Transformaciones.• ElAdministradordeBasedeDatos• ElSistemadeAdministracióndeBasedeDatos• ElAdministradordeComunicacionesdeDatos• ArquitecturaCliente–Servidor• ElProcesamientoDistribuido
![Page 4: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/4.jpg)
LALOGICACOMOUNMODELODEDATOS
• IntroducciónalasBasesdeDatosRelacionales• Unamiradainformalalmodelorelacional• RelacionesyVariablesdeRelación• QuesignificanlasRelaciones• InformacióndeDescriptores• VariablesdeRelaciónBaseyVistas• Transacciones• BasedeDatosEjemplo
![Page 5: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/5.jpg)
LENGUAJESDECONSULTARELACIONALES
• IntroducciónaSQL• Generalidades• EsquemadeInformación• Vistas• SQLIncrustado
– ConsideracionesPrevias
![Page 6: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/6.jpg)
ORGANIZACIÓNFÍSICADELOSDATOS• Introducción• Dominios
– LosvaloresIenenTipo– DefinicióndeTipos– RepresentacionesPosibles– DefinicióndeOperadores– ConversióndeTipos– Conclusiones
• ValoresdeRelación– ConsideracionesPrevias– PropiedadesdelasRelaciones– AtributosconValordeRelación– LasRelacionesysuInterpretación
• VariablesdeRelación– DefinicióndevarrelBase– Actualizacióndevarrels
• PropiedadesdeSQL– Dominios– TablasBase
![Page 7: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/7.jpg)
TEORÍADEDISEÑOPARABASESDEDATOSRELACIONALES
• DependenciasFuncionales• DefinicionesBásicas• DependenciasTrivialesyNoTriviales• CierredeunConjuntodeDependencias• CierredeunConjuntodeAtributos• ConjuntosdedependenciasIrreducibles• NormalizaciónAdicional
– FormasNormales• LaDescomposiciónsinPérdidaylasDependencias
Funcionales• Primera,SegundayTerceraFormasNormales• ConservacióndelaDependencia
![Page 8: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/8.jpg)
LENGUAJESPARABASESDEDATOSORIENTADASAOBJETOS
• Introducción– UnEjemplo
• Objetos,Clases,MétodosyMensajes– UnPanoramadelaTecnologíadeObjetos– VariablesdeEjemplar– IdenIdaddeObjetos
• Ejemplo– DefinicióndeDatos– PoblacióndelaBasedeDatos– OperacionesdeRecuperación– OperacionesdeActualización
![Page 9: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/9.jpg)
PROTECCIONDELABASEDEDATOSFRENTEAUSOSINDEBIDOS
• Introducción• ControldeAccesoDiscrecional
– ModificacióndelaPeIción– RegistrosdeAuditoria
• ControldeAccesoObligatorio– SeguridaddemúlIplesniveles
• CifradodeDatos– ElEstándardeCifradodeDatos– CifradodeClavePública
• PropiedadesdeSQL– LasVistasylaSeguidad– GRANTyREVOKE
![Page 10: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/10.jpg)
Introducción • Considereunaaerolinea,llevaIempoalmacenandodatosacercade:• Pasajeros• Vuelos• Aeronaves• Personal
– Laaerolinearequiereexplotaresainformaciónparacontestarpreguntascomo:• ¿Quépasajerosreservaronasientoenelvuelo2345?• ¿Quétripulaciónseasignaráalvuelo2345?• ¿Cuandoselediómantenimientoalaaeronavequese
uIlizaráenelvuelo2345?
![Page 11: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/11.jpg)
¿Que es un sistema de Base de Datos?
• ElsoGwarequepermiteaunaoamuchaspersonasusar
y/omanipularlosdatosesdenominado“SistemadeAdministracióndeBasesdeDatos”(DBMSporDatabaseManagementSystem)• Permitequelosusuarios“vean”losdatosdemaneraabstracta
despreocupándosedecomoestossonalmacenados• Seguridad• Integridad• Sincronización• Recuperación
![Page 12: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/12.jpg)
Componentesdeunsistemadebasededatos
• Datos• Integrados.Almacenadosenunaoenvariascomputadoras• ComparIdos.Accesadosporunsolousuariooporvarios
simultaneamente• Hardware
• Volúmenesdealmacenamiento,Iposdeprocesadores,memoria• SoGware
• EntrelabasededatosmsicaylosusuariosexisteunsoGwaredenominado“SistemadeadministracióndelaBasedeDatos”queprotejealosusuariosdelosdetallesdealmacenamientodelosdatosysumanipulaciónabajonivel
• Usuarios• Usuarioprogramador• Usuariofinal• UsuarioAdministradordelaBasededatos
![Page 13: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/13.jpg)
¿QuéesunaBasedeDatos?
• UnacoleccióndedatospersistentesuIlizadosporlasaplicacionesdeunaempresa(AnIntroducIontoDatabaseSystemsC.J.Date)
• Datosalmacenadosdeunamaneramasomenospermanentementeenunacomputadora(PrinciplesofDatabaseSystemsJeffreyUllman)
![Page 14: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/14.jpg)
DatosPersistentes
• Selesdenominadatospersistentesaaquellosdatosnoemmeros,losdatosemmerospuedenser:– Datosdeentradaaúnnovalidados– Datosdesalidanoalmacenadosperoderivadosdelosdatospersistentes
– Engeneralinformacióndenaturalezatransitoria(Ejdecontrol)
![Page 15: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/15.jpg)
EnIdadesyRelaciones(oVínculos)
![Page 16: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/16.jpg)
Propiedades
• LasenIdadesIenenpropiedades,porejemplo:
• LosautomóvilesIenen:Marca,modelo,etc• LosempleadosIenenedad,domicilio,nombre
• LaspropiedadespuedensercomplejasodeIpossimplescomofechas,numérica,texto
![Page 17: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/17.jpg)
DatosyModelosdeDatos
![Page 18: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/18.jpg)
¿PorquéunaBasedeDatos?
• Espacio(Nohaynecesidaddevoluminososarchivosdepapel)
• Rapidezalbuscarinformación• SinerrorporfaIgaportrabajotedioso• Datosactualizadosalmomento• Controlcentralizadodelainformación
![Page 19: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/19.jpg)
AdministracióndeDatosyAdministracióndeBasesdeDatos
• EladministradordeDatos(DA)eslapersonaresponsabledelosdatos,enIendelosdatosylasnecesidadesdelaempresa.DecidequedatosdebenseralmacenadosyquepolíIcaseguirrespectoadichosdatos.Ejquiénpuedeaccederalosdatos.NormalmentenoIeneformacióndeIngenieroenSistemas
• ElAdministradordelabasededatos(DBA)eselIngenieroenSistemasencargadodeimplementarlasdecisionesdelDA.– CrealaBasedeDatoseimplementacontrolesqueasegurenlapolíIcadelDArespectoalosdatos
– Esresponsabledequeelsistemaopereconundesempeñoadecuado
![Page 20: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/20.jpg)
BeneficiosdelenfoquedeBasedeDatos
• Sereducelaredundancia• Seevitalainconsistencia• Secompartenlosdatos• Serefuerzanlosestandares(Entreempresas)• Sepuedenaplicarrestriccionesdeseguridad• Sepuedemantenerlaintegridaddelosdatos• Sepuedenbalancearconflictosderequerimientos
![Page 21: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/21.jpg)
Independencia física de los Datos
• Lasaplicacionesnodebenmodificarsesoloporquelaimplementacióndelesquemaconceptualporelesquemamsicohacambiado
• Formadealmacenamientodelosdatosnuméricos(Entero,real,deprecisióndobleocomocadenas)
• Códigosdecaracteres(ASCII,EBCDIC)• Unidadesnuméricas(Pulgadas,cenImetros)• Codificacióndelosdatos(2=Rojo,0=Negro,..)• Cambioenlaestructuradelosregistros• Cambioenlaestructuradelosarchivos
![Page 22: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/22.jpg)
IndependencialógicadelosDatos
• Lasaplicacionesnodebenmodificarseporqueelesquemaconceptualsemodifiqueamenosquelamodificaciónimpliqueeliminacióndeinformación.
• LasvistasimplementanunIpodeindependencialógicadedatos.
• EjsupongaqueaunaaerolinealesolicitaninformaciónrelaIvaalasemisionescontaminantesdesusaeronaves
![Page 23: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/23.jpg)
LosSistemasRelacionalesyotrosSistemas
• El“Modelorelacional”eseldesarrollomasimportanteenlahistoriadelasbasesdedatos
• PracIcamentetodoslosproductosdebasesdedatosactualmentesebasanenelenfoquerelacional
• Enunsistemarelacional:– Losdatossealmacenanen“tablas”– LosoperadoresqueseuIlizanconlastablasproducenasuveztablas
![Page 24: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/24.jpg)
Otrossistemas
• SistemasJerárquicos.Enestossistemaslosdatosserepresentanmedianteárboles.Losoperadoresrecibenapuntadoresyregresanapuntadoresaárbolesoasubárboles.EjSistemaIMSdeIBM
• SistemasderedtambiénllamadosSistemasCODASYL(COnferenceonDAtaSYstemsLanguage)osistemasDBTG(DataBaseTaskGroup).ElmejorejemploeselsistemaIDMSdeComputerAssociatesInternaIonalInc.
![Page 25: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/25.jpg)
ModelosdeDatos• Introducción(DellibrodeJeffreyUllman)
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � �� � � � � � � � � � � � � � �� � � � �� � � � � � � � � � �� � � � � �� � � � � � � � � � � � �� � � � � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � � � � �� � � � � � � � � � � � � �� � � � � � � � � �� � � � � � � � � � � � � � � �� � � � � � � �� � � � � � � � � � � � �� � � � � � � � � � � � � �� � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � �� � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �
![Page 26: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/26.jpg)
LostresnivelesdelaarquitecturadelossistemasdeBasesdeDatos.
• Elnivelinterno.Concierneaestenivellamaneraenquelosdatossonalmacenadosmsicamente
• Elnivelexterno.Concierneaestenivellamaneraenquelosdatossonvistosporlosusuariosindividuales.
• Elnivelconceptual.ConcierneaestenivellamaneraenquelosdatossonvistosporlosusuariosdemaneracolecIva.
• Existenvariasvistasexternasperosolounavistaconceptual.
![Page 27: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/27.jpg)
ArquitecturadelSistema(LibrodeC.J.Date)
![Page 28: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/28.jpg)
Elnivelexterno• ConcierneaestenivellamaneracomolosdatossonvistosporlosIposdeusuariosindividuales
• Unusuarioindividualpuedeserfinaloprogramador• ParaunIpodeusuarioindividualsedefineuna“vistaexterna”tambiénllamadasubesquemao“esquemaexterno”
• ElDSL(DataSubLanguage)esunsublenguajeparainteractuarconlosobjetosdelabasededatos.Incluyeunsublenguajedemanipulacióndedatos(DML)yunsublenguajededefinicióndedatos(DDL)
• UnexitosoDSLqueessoportadoporlossistemasrelacionaleseselSQL(StructuredQueryLanguage)
• EnelcasodelosusuariosprogramadoreselDSLestáembebidoenunlenguajedepropósitogeneral
![Page 29: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/29.jpg)
Elnivelconceptual
• La“vistaconceptual”oesquemaconceptualesunmodelodetodalainformacióndelabasededatosynosolodelapartequeusuariosindividualespueden“ver”
• Elesquemaconceptualesunaabstraccióndelabasededatosmsicaobienlabasededatosmsicaesunaimplementacióndelesquemaconceptual.
• ParaimplementarelesquemaconceptualseuIlizaelDDLyotrosublenguajedelDSLdenominadoDCL(DataControlLanguage)
![Page 30: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/30.jpg)
Elnivelinterno
• La“vistainterna”oesquemainternoesunarepresentacióndebajoniveldelabasededatosmsica
• Notanbajocomoparaconsiderardetallescomocilindrosopistas
• ELesquemainternosedefinemedianteotrosublenguajedenominadoDDLinterno.
![Page 31: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/31.jpg)
Transformaciones
• Unmapeodelnivelconceptualalnivelinternodefinelacorrespondenciaentreelesquemaconceptualylabasededatosmsica.
• Siserealizauncambioenlaestructuradelabasededatosmsica,elmapeoconceptual/internodebemodificarsedemaneraqueelesquemaconceptualpermanezcaintancto
• UnmapeodelnivelconceptualalnivelexternodefinelacorrespondenciaentrecadaparIcularvistaexterna(subesquema)yelesquemaconceptual.Porejemplo,losIposdeloscampospuedencambiarolosnombresdeestosperoelmapeopermitequeestoscambiosseantransparentesalnivelexterno.
![Page 32: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/32.jpg)
ElAdministradordeBasedeDatos
• Defineelesquemaconceptual• Defineelesquemainterno• Laboresdeconsultoría• Establececontrolesdeseguridad• Establececontrolesdeintegridad• Estableceprocedimientosderespaldosyrecuperación
• Monitoreaeldesempeñoyrealizacambiosala“sintonizacióndelabasededatos”
![Page 33: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/33.jpg)
ElSistemadeAdministracióndeBasedeDatos
1. Unusuariorequiereaccesarlosdatosmedianteunsublenguaje(Ej.SQL)
2. ELDBMSinterceptalasolicitudylaanaliza3. ElDBMSinspeccionaelesquemaexternodeese
usuario,sucorrespondientemapeoexterno/conceptual,elmapeoconceptual/internoyladefinicióndelaestructuradelalmacenamientomsico
4. ElDBMSrealizalasoperacionesnecesariasalabasededatos
![Page 34: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/34.jpg)
ElSistemadeAdministracióndeBasedeDatos
• AdicionalmenteelDBMSdebemonitorearlosrequerimientosdelosusuariosyrechazarlosintentosdeviolarlaseguridady/olaintegridaddeacuerdoalodefinidoporelDBA
• UncomponentedelDBMSdenominadomanejadordetransaccionesproveecontrolparapermiIrrecuperacióndefallasasícomomanejodelaconcurrencia
• ElDBMSmanIeneelDiccionariodedatos• ELDBMSproveéfuncionesquepermitenalDBAadministrareldesempeñodelsistema
![Page 35: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/35.jpg)
ElAdministradordeComunicacionesdeDatos
• LassolicitudesdeununusuariodelabasededatossontransmiIdasdelaterminal(posiblementeremota)delusuarioaalgunaaplicaciónydeahíalDBMSenlaformademensajes
• LasrespuestasdelDBMSalaaplicaciónyluegoalusuariotambiénviajanenmensajes.
• Dichosmensajessetransmitenbajolasupervisióndeunsistemadenominado“Administradordecomunicacionesdedatos”oDCmanager
• ElDCmanagernoformapartedelDBMSperotrabajaenharmoníaconelDBMS
![Page 36: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/36.jpg)
ArquitecturaCliente–Servidor
• Unsistemadebasededatossepuedevisualizarcomoconsistentededospartes– ServidoroBackend,esbásicamenteelDBMS– ClientesoFrontends,sonlasaplicacionesquefuncionanenlaúlImacapa.
• Programasdesarrolladosporelusuario• ProgramasprovistosporelmismodesarrolladordelDBMSoporuntercero.(herramientasCASE)
– Reporteadores(CrystalReportsdeSeagate,SQLReportsdeOracle)
– Compiladores(ProC,SQLFormsdeOracle)
![Page 37: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/37.jpg)
UIlerias
• ProgramasdesarrolladosparaayudaralDBAensusdiferentesfunciones– Cargadores(EjSQL-loader)– Analizadores– Reorganizadores(Defragmentadores)– Herramientasderespaldo(EjImport-Export)
![Page 38: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/38.jpg)
ElProcesamientoDistribuido
• Elprocesamientoparalelosepuedeimplementardevariasmaneras– Programasclientescorriendoendiferentescomputadorasyelservidorcorriendoenunacomputadoracentral
– Unareddecomputadorasenlasquecadacomputadoraesalavezclienteyservidor(Basededatosdistribuida)
– ServidormulIprocesador
![Page 39: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/39.jpg)
IntroducciónalasBasesdeDatosRelacionales
• Aspectosdelmodelorelacional– Aspectoestructural.Losdatossepresentanalusuariocomotablas
– AspectoIntegridad.LastablassaIsfacenciertasrestriccionesdeintegridad
– AspectomanipulaIvo.LosoperadoresqueseuIlizanparamanipularlastablasregresanasuveztablas.
![Page 40: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/40.jpg)
EjemplosdeoperadoresRelacionales
![Page 41: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/41.jpg)
IntroducciónalasBasesdeDatosRelacionales• Unsistemarelacionalrequierequelabasededatosseapercibidacomotablas
• Lastablassonlaestructuralógicanolaestructuramsica
• Elsistemaeslibredealmacenarinformacióndecualquiermanera,Ejarchivossecuenciales,Tablashash,árboles,etc
• Lasbasesdedatosrelacionalessebasanenelprincipiodeinformación:Todalainformacióncontenidaenlabasededatosestárepresentadadeunaysolounamanera,encolumnasderenglonesdetablas.
• HayunaconexiónentreelregistroD1delatablaDEPTyelregistroE1delatablaEMPperolaconexiónnoserepresentaporunapuntadorsinoporlapresenciadelcampoD1enelregistroE1delatablaEMP.Encambioensistemasjerárquicosudegrafos,laconexiónsedáporunapuntadorqueesvisiblealusuario
![Page 42: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/42.jpg)
Unamiradainformalalmodelorelacional• Aspectosdeintegridaddebasesdedatos
– Sepuedenestablecerrangosdevaloresvalidosparaciertoscampos
– LastablaspuedentenercamposqueconsItuyenclavesprimarias
– LastablaspuedentenerllavesforáneasquedebenexisIrenotrastablascomollavesprimarias
– Sepuedendefinirrestriccionesmascomplejascondisparadores
![Page 43: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/43.jpg)
Unamiradainformalalmodelorelacional• ElmodelorelacionalIene5componentes
1. UnconjuntodeIpossimplesincluyendoelIpobooleano
2. UngeneradordeIposderelaciones3. FacilidadesparadefinirvariablesdelIpode
relación(alosqueserefiereelpuntoanterior)4. Unaoperacióndeasignaciónparaasignar
valoresadichasvariablesrelación5. Unacoleccióndeoperadoresdelalgebra
relacional
![Page 44: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/44.jpg)
RelacionesyVariablesdeRelación• RelacionessoneltérminomatemáIcopara
referirseaunatabla• Informalmentetablaessinónimoderelación• Elmodelorelacionalsebasaenteoríadeconjuntosylógicadepredicados
• Elmodelorelacionalfueen1970porE.F.Codd,unmatemáIcotrabajandoparaIBMquequizoinyectarrigoryprincipiosmatemáIcossólidosalcampodelasbasesdedatos
![Page 45: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/45.jpg)
RelacionesyVariablesdeRelación
• EnelmodelorelacionalnoseuIlizaeltérminoregistro,ensulugarseusaeldetuplaparareferirseaunrenglóndeunatabla
• EnlugardeltérminocamposeuIlizaeldeatributoparareferirseaunacolumnadeunatabla
![Page 46: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/46.jpg)
RelacionesyVariablesdeRelación
Conceptualmente,elvalorrelaciónanteriordelavariablerelaciónEMPhasidoreemplazadoenbloqueporunvalorrelacióncompletamentenuevo.Paraevitarconfusióncuandodigamosrelaciónloquequeremosdeciresunvalorrelaciónynounavariablerelación(relvar)
![Page 47: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/47.jpg)
QuésignificanlasRelaciones
• LascolumnasdelastablasIenenIpos• TalesIpossondominios• LosusuariospuedendefinirsuspropiosIpos,porejunnúmerodeplacaIeneletrasynumeros
• Asociadaaunarelaciónhayunpredicado,esdecirunafunciónbooleanaquerecibeunconjuntodeparámetros(queinstancianalpredicado)
• EjElempleadoEMP#sellamaENAME,trabajaeneldepartamentoDEPT#yganaSALARYdesueldo.
• Elpredicadoesverdaderocuandoseinstanciaconvaloresdelatabla
![Page 48: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/48.jpg)
QuésignificanlasRelaciones
• LosIpossonlosconjuntosdecosasdelasquepodemoshacerafirmaciones
• Lasrelacionessonlosconjuntosdecosasquedecimos
• LosIpossonalasrelacionesloquelossujetossonalasoraciones
![Page 49: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/49.jpg)
QuésignificanlasRelaciones
• Tiposyrelacionessonambosnecesarios,sinIposnotenemosalgoacercadequedecir,sinrelacionesnotenemosalgoquedecir
• Tiposyrelacionessonsuficientes.Nonecesitamosnadamasentérminosdelógicasuficiente
• CadarelaciónIeneunpredicadoasociado,inclusoaquellasquesederivandeotrasmedianteoperacionescomolasjuntas
• LasvariablesrelacióntambiénIenespredicadosasociados.
![Page 50: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/50.jpg)
InformacióndeDescriptores• ElCATALOGO,tambiénllamado“Diccionariodedatos”,“Informacióndedescriptores”osimplemente“metadatos”conIenelainformacióndeobjetosdelabasededatosydelsistemamismo.
• Indices,tablas,restricciones,usuarios,permisos,informacióndedesempeñodelabasededatos,etc
![Page 51: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/51.jpg)
InformacióndeDescriptores
![Page 52: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/52.jpg)
VariablesdeRelaciónBaseyVistas
• Lasvariablesderelaciónquecorrespondenatablasexistentesenlabasededatossonllamadas“Variablesderelaciónbase”obaserelvarsyasusvalores“Relacionesbase”.
• DeesamaneralasdiferenciamosdelasvariablesderelaciónqueseobIenenmediantealgunaexpresiónrelacional(usandooperadores)
• Lasvariablesderelaciónbasetambiensonconocidascomo“variablesderelaciónreales”orealrelvars
![Page 53: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/53.jpg)
VariablesdeRelaciónBaseyVistas• Lossistemasrelacionalesdebenproveermediosparacrearlasvariablesderelaciónbase
• EnSQL:CreatetableEMP…;• Lossistemasrelacionalessoportanotraclasedevariablederelaciónllamadaconnombrefijo,sellamanVISTASysuvalorenuninstantedadoeseldeunarelaciónderivada
• EnSQL:CreateviewTOPEMPasselect*fromEMPwheresalary>30000;
• Cuandoestasentenciaseejecuta,ladefinicióndelavistasimplementesealmacena,perolaexpresiónasociadanoseevalua.
• Unavezcreadalavista,elusuariolapuedeusarcomosifueraunavariablederelaciónbase.
![Page 54: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/54.jpg)
Transacciones• Unatransacciónesunaunidadlógicadetrabajoquenormalmenteinvolucravariasoperacionesdebasededatos
![Page 55: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/55.jpg)
Transacciones• ElDBMSgaranIzaquelastransaccionesseanatómicas
• UnavezqueseejecutaCOMMITlatransacciónsehacepersistente
• ROLLBACK• Lastransaccionessonindependienteunasdeotras
• Lastransaccionessonserializables
![Page 56: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/56.jpg)
BasedeDatosEjemplo• Labasededatosdeproveedoresypartes
![Page 57: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/57.jpg)
IntroducciónaSQL• SQLesellenguajeestandardelossistemasrelacionales
• DesarrolladoenIBMen1970• SQLusaeltérminotabalparareferirsetantoarelacionescomoavariablesrelaciónyusalostérminosrenglónycolumnaparareferirsealastuplasyalosatributosrespecIvamente
• SQLnoesunlenguajerelacionalperfectoperoesunestándaryessoportadoporprácIcamentetodoslossistemas
![Page 58: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/58.jpg)
Generalidades• SQLincluyetantounDMLcomounDDL
![Page 59: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/59.jpg)
IntroducciónaSQL
![Page 60: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/60.jpg)
IntroducciónaSQL
![Page 61: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/61.jpg)
EsquemadeInformación• Elesquemadeinformacióno“Catalogo”consistedeladescripcióndeunabasededatosqueperteneceaunusuarioindividual
• Puedehabercualquiernúmerodecatálogos,unoporcadabasededatos,cadacatalogoincluyecualquiernúmerodesubesquemas.
• CadacatalogorequiereunysolounesquemallamadoINFORMATION_SCHEMAydesdelaperspecIvadelusuarioeseseesquemaelquedesempeñalafunciónnormaldelcatalogo
• ElEsquemadeinformaciónconsistedeunaseriedetablasconlainformaciónprecisadetodoslossubesquemasdelcatalogoencuesIón
![Page 62: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/62.jpg)
EsquemadeInformación
• Laimplementaciónvariadeunproductoaotroperoesrequeridoquesoportealgúnesquemadedefiniciónyquesoportevistasdedichoesquemadedefinición
![Page 63: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/63.jpg)
Vistas
EquivalenteasusItuirladefinicióndelavistaenlaconsulta
Massimplesinlavistaenestecaso
![Page 64: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/64.jpg)
SQLIncrustado– LassentenciasdeSQLsepuedenejecutardemaneradirecta,interacIvamentedesdeunaterminalobiencomopartedeunprograma(Java,C,etc..)dondedichassentenciaspuedenestarincrustadas(oempotradas)
– Principiodelmododual:Cualquiersentenciaquesepuedaejecutardirectamentesepuedeempotrarenunprograma(nosepuededecirlomismoalreves)
![Page 65: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/65.jpg)
SQLIncrustado• LassentenciasdeSQLempotradasIenenelprefijoEXECSQL
• AlgunassentenciasprecedidasporEXECSQLnosonrealmenteejecutablessinopuramentedeclaraIvasparadeclararvariables,cursores,etc
• LassentenciasSQLpuedenincluirreferenciasavariablesdelprogramaanfitrión(DeclaradasdespuésdeEXECSQLBEGINDECLARESECTION),aestasvariablesselesponeelprefijo“:”paradiferenciarlasdelosnombresdecolumnasdetablas
![Page 66: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/66.jpg)
SQLIncrustado
![Page 67: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/67.jpg)
Operacionesquenorequierencursores
![Page 68: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/68.jpg)
SQLIncrustado• Cuandounaconsultaregresaunnúmeroarbitrarioderenglonesenlugardesolouno,serequieredeunmecanismoparaaccesarlosrenglonesunoporuno
![Page 69: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/69.jpg)
SQLDinámico
• ConSQLdinámico,lassentenciasdeSQLsepuedenconstruirenIempodeejecución
![Page 70: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/70.jpg)
LosvaloresIenenTipo• UnIpoesalavezundominio,esdecirunconjuntodevalores,porejelIpoINTeselconjuntodelosnúmerosenteros
• CadavariablesedeclaraserdeunIpo• Cadaatributodecadavariablerelación(Relvar)esdeclaradoserdeunIpo
• LosoperadoressoncerradosrespectoalosIpos(conjuntos)alosqueseaplican
• EngenerallasexpresionesdevuelvenelIporelacionadoaloperadormasexternoinvolucrado
• Algunosoperadoressonpolimórficos
![Page 71: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/71.jpg)
Tiposyrepresentaciones• ParaimplementarelmanejodeIposnecesitamosunmodelo,esdecir,unarepresentaciónmsica
• LadiferenciaentreunIpoysurepresentaciónmsicaradicaenelconceptodeindependenciadedatos
• LosIpossonescalaresono-escalares– UnIpono-escalaresunIpocuyosvaloresIenencomponentesalosquesepuedeaccederdirectamente.EnestesenIdo,losIposdelasvariablesrelaciónsonno-escalarespuestoquesontuplas
– UnIpoescalaresunIpoatómicoyencapsulado,dehechoatómicoyencapsuladosonuIlizadoscomosinónimosdeescalar
![Page 72: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/72.jpg)
RepresentacionesPosibles• LosIposescalaressonatómicosyencapsulados,enese
senIdoelusuarionopuedeaccederaloscomponentesdesurepresentaciónmsica
• UnaexcepcióndeIposescalaresdondeloscomponentesdeIposescalaressonvisiblesalusuarioloconsItuyenlas“representacionesposibles”(POSSREP)definidosen“TutorialD”,unlenguajerelacionalacadémico
• Lasrepresentacionesposiblesrequieren:– UnoperadorselectorparapermiIralusuarioelegirunodelasrepresentacionesposibles
– UnconjuntodeoperadoresTHE_,unoporcadacomponentedecadarepresentaciónposibleparaaccederalcomponenteencuesIón
![Page 73: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/73.jpg)
RepresentacionesPosibles• EjemplosdeinvocacionesaselectoresyoperadoresTHE_
![Page 74: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/74.jpg)
RepresentacionesPosibles• ElimplementadordelIpoderepresentacionesposibleshaceusodeciertosoperadoresaltamenteprotegidosqueelsistemaprovee
![Page 75: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/75.jpg)
RepresentacionesPosibles• AlternaIvamente,ladefinicióndePOLARsepuedehacerdirectamente,esdecirsinhacerusodelselectorCARTESIAN
![Page 76: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/76.jpg)
RepresentacionesPosibles• TambiénhayqueimplementarlosoperadoresTHE_
UnavezquesehadefinidoelIpoPOINTsepuedendefinirotrosIposquelouIlicen,Ej
![Page 77: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/77.jpg)
Definicióndeoperadores• Enellenguajerelacional“tutorialD”ademásdedefinirIpossepuedendefinirlosoperadoresasociadosalosIposdefinidosporelusuario
![Page 78: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/78.jpg)
ConversióndeIpos• LosoperadoresTHE_sepuedenusarparaconverIrIposporejemploenladefinicióndelIpoWEIGHT
SiWesdel3poWEIGHT,entonceslaexpresiónTHE_D(W)convierteel3poWEIGHTal3poDECIMAL(5,1),locualresultaconvenientesiporejemploqueremosconstruirunaexpresióndondedebehabercongruenciaentrelos3pos.PorEj.…whereTHE_D(W)=78.5enlugarde…whereW=78.5quepodríaocasionarerrordecompilaciónNota:Denuevoloanteriorsebasaenellenguaje“tutorialD”perosiempresepuedenusarconversiones3pocast,porEjenPL/SQL:selectCAST('22-Aug-2003'ASvarchar2(30))fromdual;
![Page 79: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/79.jpg)
ConversióndeIpos• Conversiónimplícita:EnOraclelosIposCHARyVARCHAR2seconviertenautomáIcamente,porejemplolossiguientesqueriessonequivalentes:SELECTemployee_id,first_name,salaryFROMemployeesWHEREsalary>15000;SELECTemployee_id,first_name,salaryFROMemployeesWHEREsalary>‘15000’;• Conversiónexplícita:EnOracleexistenfuncionescomoTO_CHAR,TO_DATEoTO_NUMBER.EjSELECTTO_DATE('January15,1989,11:00A.M.','Monthdd,YYYY,HH:MIA.M.','NLS_DATE_LANGUAGE=American’)FROMDUAL;
![Page 80: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/80.jpg)
Valoresderelación• Unvalorderelaciónosimplementerelaciónconsistedeunencabezadoydeuncuerpodonde:
• Elencabezadoesunatupladenombresdeatributosconlamismaaridadquelarelación
• Elcuerpoesunconjuntodetuplasconlamismaaridadqueelencabezadoyconvaloresquecorrespondenalosatributosespecificadosenelencabezado
![Page 81: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/81.jpg)
Propiedadesdelasrelaciones
• Larelacionesestánnormalizadas.ElhechodequecadatupleIeneexáctamenteunvalorparacadaatributogaranIzaquecumpleconlaprimeraformalnormal(1NF)
• CadatuplaIeneunvalorporcadaatributo• Nohayordendeizqaderechadelosatributos• Nohayordendearribaabajodelastuplas• Nohaytuplasduplicadas
![Page 82: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/82.jpg)
AtributosconValordeRelación• Podemosteneratributoscuyosvaloressonasuvezrelaciones(relacionesanidadas)
• Históricamenteestaposibilidadhasidoconsideradacomoinválida
![Page 83: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/83.jpg)
Diferenciasentrerelacionesytablas• LosIposdelosatributosseomitenenlastablas• LascolumnasIenenunordenenlastablas• LosrenglonesdeunatablaIenenunorden• Unatablapuedetenerduplicados• LastablasIenealmenosunacolumnamientrasquelasrelacionespuedennotenerningúnatributo
• LastablaspuedentenerincluirvaloresnulosApesardedichasdiferencias,lastablassonaceptablescomorepresentaciónderelaciones
![Page 84: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/84.jpg)
Variablesrelación• Tambiénllamadasrelvars(ovarrelsenespañol)sondedosIpos:“varrelsbase”(tambiénllamadasvarrelsreales)yvistas(tambienllamadasvarrelsvirtuales)
• Paradefinirunavarrelbaseusamoslasiguientesintaxis:
![Page 85: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/85.jpg)
ActualizacióndeVarrels• ELmodelorelacionalincluyelaoperacióndeasignaciónparaasignarvalores,esdecir,paraactualizarvariablesderelación(relvarsovarrels)
• Lasintaxisen“TutorialD”yejemplos;
![Page 86: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/86.jpg)
FacilidadesdeSQL• SibienSQLnosoportatuples,sisoportarows
• SibienSQLnosoportarelacionessísoportatablasaunqyeeltérminotablaenSQLsignificaalaveztablavalorytablavariable
BehaviorpuedeserCASCADEoRESTRICT,CASECADEeliminaràtablasdependientesYRESTRICTsoloeliminarálatablasiestanoestáenuso
![Page 87: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/87.jpg)
Dependenciasfuncionales• Unadependenciafuncionalesunarelacióndemuchosaunodel
conjuntodeatributosaotroconjuntodeatributosdentrodeunaVarReldada.
• Porejemplohayunadependenciafuncionaldelconjuntodeatributos{S#,P#}alconjuntodeatributos{QTY},locualsignifica:– PorcadapardevalorescorrespondienteaS#yP#existesoloun
correspondientevalorparaelatributoQTY– DiferentesparejasdevaloresdeS#yP#puedentenerelmismovalor
correspondientedeQTY
![Page 88: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/88.jpg)
Definicionesbásicas
• HayquedisInguirclaramenteentre:– a)ElvalordeunaVarRelenunmomentodado– b)ElconjuntodetodoslosposiblesvaloresquelaVarRelpuedetenerendiferentesmomentos
• UsaremoscomoejemplolaVarRelSCP
![Page 89: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/89.jpg)
Dependenciafuncionalparaelcaso(a)Searunarelación,yXyYsubconjuntosarbitrariosdelconjuntodeatributosder.DecimosqueYesfuncionalmentedependientedeX(denotadox→y)siysolosicadaXvalorenrIeneasociadounvalorYenr,porejemplodelarelaciónSCPpodemosdecir:{S#}→{CITY}Alaparteizqlellamamosdeterminanteyaladerechadependiente,otrasdependenciasfuncionalesdelejemplo:
![Page 90: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/90.jpg)
Dependenciafuncionalparaelcaso(b)SeaRunaVarRel,yXyYsubconjuntosarbitrariosdelconjuntodeatributosdeR.DecimosqueYesfuncionalmentedependientedeXoquexdeterminafuncionalmenteay(x→y)siysolosiencadaposiblevalorlegaldeR,cadavalorXIeneasociadounvalorY.EnotraspalabrassiemprequedostuplasconcuerdanensuvalorX,tambiénconcuerdanenuvalorY.porejemplodelarelaciónSCP:
ElcasobeselquemasnosinteresapuesnodependedelvalorquelaRelVarTieneenunmomentodadosinoqueesunadependenciaválidaparatodosLosvaloresposible
![Page 91: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/91.jpg)
Dependenciasfuncionales
• ComosevioenelejemploelconjuntodedependenciasfuncionalesSpuedesergrande
• Loquequisiéramosesencontrarlamaneradereducirelconjuntodedependenciafuncionales
• LasdependenciasfuncionalesrepresentanciertasrestriccionesdeintegridadyqueremosqueelDBMSlasrefuerce
• EsdeseableencontrarunconjuntodedependenciasfuncionalesT,maspequeñoqueSyquetengalapropiedaddequecadadependenciafuncionalenSquedeimplicadaporlasdependenciasfuncionalesenT
![Page 92: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/92.jpg)
Dependenciastrivialesynotriviales
• Undependenciaestrivialsiysolosielladoderechodeladependenciaesunsubconjuntodelladoizquierdo.Ej{S#,P#}→S#
• Unadependenciatrivialnopuedenocumplirse,deahíelnombre
• Lasquerealmentenosinteresansonlasdependenciasnotrivialespuessonlasquecorrespondenaverdaderasrestriccionesdeintegridad
![Page 93: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/93.jpg)
Cerraduradeunconjuntodedependencias
• Unasdependenciaspuedenimplicarotras• EjlaDependencia{S#,P#}→{CITY,QTY}• Implicalassiguientes
– {S#,P#}→{CITY}– {S#,P#}→{QTY}
• SupongaqueseIenenlasDFsA→ByB→C• EntoncesportransiIvidadtendremosA→C• ElconjuntodetodaslasDFsimplicadasporunconjuntoSdeDFsseconocecomocerraduradeSysedenotaporS+
![Page 94: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/94.jpg)
AxiomasdeArmstrong1. EnlosAxiomasdeArmstrongABsignificaAUB2. Reflexividad:SiBesunsubconjuntodeAentonces
A→B3. Aumentación:SiA→B,entoncesAC→BC4. TransiIvidad:SiA→ByB→C,entoncesA→C5. Autodeterminación:A→A6. Descomposición;SiA→BC,entoncesA→ByA→C7. Unión:SiA→ByA→C,entoncesA→BC8. Composición:SiA→ByC→D,entoncesAC→BD• AdicionalmenteDarwenañadeelTeoremadeUnificaciónGeneral:
SiA→ByC→D,entoncesAU(C-B)→BD
![Page 95: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/95.jpg)
Cerraduradeunconjuntodedependencias• Ejemplo,supongaqueunaVarRelRIeneatributosA,B,C,D,EyFyDFs:§ A→BC§ B→E§ CD→EFPorejA:Numdeempleado;B:NumdeDepto;C:NumdeJefedelDepto;D:numdeproyecto;ENombredelDepto;F:PorcentajedeIempodedicadoporeljefealproyectoDemostraremosqueAD→F:1. A→BC (Dado)2. A→C (1,descomposición)3. AD→CD (2,aumentación)4. CD→EF (Dado)5. AD→EF (3,4,transiIvidad)6. AD→F (5,descomposición)
![Page 96: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/96.jpg)
Cerraduradeunconjuntodeatributos
• EnprincipiopodríamosencontrarS+aparIrdeSmedianteelalgoritmo:RecursívamenteapliquelosaxiomasdeArmstrongoelteoremadeunificaciónparaqueseproduzcannuevasDFshastaqueyanosepuedanproducirmas
• EsonoseríaeficienteninecesarioenrealidadpuesnonecesitamosenrealidaddeterminarS+
• EnlugardeesopodemosdeterminarunsubconjuntodeS+consistentedeDFsqueIenendelladoizquierdounconjuntoZdeatributoscuyacerraduraZ+consItuyeelconjuntodetodoslosatributosquesonfuncionalmentedependientes
![Page 97: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/97.jpg)
AlgoritmoparadeterminarZ+
• ParadeterminarZ+,esdecir,lacerraduradeZbajounconjuntoSdeDFs
![Page 98: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/98.jpg)
Ejemplo• Determinar{A,B}+bajoelconjuntodeDFs
– A→BC– E→CF– B→E– CD→EF
• InicializamosCIERRE[Z,S]={A,B}• IteramosporcadaelemdeS
– DeA→BC,comoAperteneceaCIERRE[Z,S]agregamosCyahoraCIERRE[Z,S]={A,B,C}
– DeE→CFcomoEnoperteneceaCIERRE[Z,S]nohacemosnada– DeB→EcomoBperteneceaCIERRE[Z,S]agregamosE,ahoraCIERRE[Z,S]={A,B,C,E}
– DeCD→EF,como{C,D}noesunsubconjuntodeCIERRE[Z,S]nohacemosnada
• Conesoterminaunaiteración,luegode4iteracionesCIERRE[Z,S]={A,B,C,E,F}
![Page 99: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/99.jpg)
Cerraduradeunconjuntodeatributos
• DadounconjuntoSdeDFs,X→YseinfieredeSsiysolosiYesunsubconjuntodeX+bajoS(CIERRE[X,S])
• DeesamanerapodemossabersialgunaFDX→YperteneceaS+sintenerquedeterminarS+
![Page 100: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/100.jpg)
ConjuntosdedependenciasIrreducibles• SeanS1yS2dosconjuntosdeDFs• SicadaDFpertenecienteaS1esunaDfquesepuede
inferirdeS2,decimosentoncesqueS2esunacoverturadeS1
• SiS1+=S2+entoncesS1yS2sonequivalentes• DefinimosunconjuntodeDFscomoIRREDUCTUBLEsii
saIsfacelassigs3propiedades– Elladoderecho(Eldependiente)decadaDFenSconsistedesolounatributo
– Elladoizquierdo(Eldeterminante)decadaDFenSesirreducIbleenelsenIdodequeningunodesusatributossepuedendescartarsinalterarS+(DecimosdetalDFqueesizquierda-irreducIble)
– NingunaDFenSpuededescartarsesinalterarS+• NoesnecesariodeterminarS+parasabersisealteraal
descartaralgo,porej,sialgunadependenciasepuedeinferirdelasdemás,entoncesladependencianoserequiere(noalteraS+)
![Page 101: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/101.jpg)
Ejemplo• ElsiguienteconjuntodeDFsesirreducIblemientrasquelossiguientes3noloson
![Page 102: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/102.jpg)
ConjuntosdedependenciasIrreducibles
• PorcadaconjuntodeDFsSexistealmenosunconjuntodeDFsequivalentequeesirreducIble
• Porlaregladedescomposición,podemosasumirquecadaDFenSIeneunladoderechodeunsoloatributo
• ExaminamoscadaatributoAdelaparteizquierdadecadaDFfenS,SieliminarAdelladoizquierdodefnoIeneningúnefectoenS+,entoncesborramosAdelladoizqdef
• FinalmenteexaminamosparacadafenSsisueliminaciónalteraS+,sino,borramosfdeS
![Page 103: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/103.jpg)
Ejemplo• SeaelconjuntoSdeDFs
• ComoprimerpasoexpresamosSdemaneraquedelladoderechosolotengaunatributo
• ComolaDFA→Bquedóduplicadaeliminamosuna• Enseguida,elatributoCpuedesereliminadodelaDFAC→Dpuesto
queexisteA→CyporaumentaciónA→ACycomoAC→Destáincluida,entoncesportransiIvidadA→D
• LuegoAB→CpuedesereliminadapuestoqueaparIrdeA→CyporaumentaciónAB→CBentoncesAB→Cpordescomposición
• FinalmenteA→CsepuedeinferiraparIrdeA→ByB→CportransiIvidad• ElconjuntoirreducIble
quedaentonces:
![Page 104: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/104.jpg)
Normalizaciónadicional• Comosedijoantes,elsolohechodealmacenarlainformaciónentablasproveeungradodenormalización,específicamentelaprimeraformanormalabreviada(1NF)
• ElobjeIvodelanormalizaciónadicionaleslaformalizacióndeideassimplescomo:“onefactinoneplace”,evitarredundancia.
• FormasNormales:1NF,2NF,3NF,BCNF,4FN,5FN
• Eldiseñadordeunabasededatosporlogeneralaspiraala3NF
![Page 105: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/105.jpg)
LaDescomposiciónsinpérdidaylasDependenciasFuncionales
• Lanormalizaciónesunprocesoqueinvolucradescomponerrelacionesenvariasrelaciones,peroesteprocesodebeserreversible,esdecirdebeserunprocesodondenosepierdainformación
• Observeunadescomposiciónsinpérdida(a)yunaconpérdida(b)dondeyanopodemossabercualproveedorestárelacionadoconcualciudad
![Page 106: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/106.jpg)
LaDescomposiciónsinpérdidaylasDependenciasFuncionales
• Eloperadorclaveparalanormalizacióneslaproyecciónmientrasquelaoperaciónclaveparalarecomposicióneslajunta.
• Lapreguntaes,siR1yR2sonproyeccionesdeRyentreambasincluyentodoslosatributosdeR,entonces¿QuécondicionessedebensaIsfacerparagaranIzarqueR1yR2permitanlareconstruccióndeR?
• Larespuestaresideenlasdependenciasfuncionales• Enelejemplodelaláminaanterior,laVarRelSsaIsfaceelconjuntodeFDsirreducIble:– S#→STATUS– S#→CITY
• NoescasualidadquelaVarRelSseaigualalaoperaciónJOINdesusproyeccionesen{S#,STATUS}y{S#,CITY}
![Page 107: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/107.jpg)
TeoremadeHeath
• SeaR{A,B,C}unaVarReldondeA,ByCsonconjuntosdeatributos.SiRsaIsfacelaDFA→B,entoncesResigualalajuntadesusproyeccionesen{A,B}y{A,C}
• Ej.DelarelaciónSdelejemploanteriordigamosqueAesS#,BesSTATUSyCesCITY
![Page 108: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/108.jpg)
Izquierda-reducibilidad
• DecimosqueunaDFesizquierda-irreducIblesisuparteizquierda“noesdemasiadogrande”,porejemplolaVarRelSCPsiguientesaIsfacelaDF{S#,P#}→CITY
• SinembargoelatributoP#delladoizquierdoesredundanteparapropósitosdedependenciafuncional,encambioDFS#→CITYquetambiénsaIsfaceSCPesIzquierda-irreducIble
![Page 109: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/109.jpg)
DiagramasDF• SeaRunaVarReleIunconjuntoirreducIblededeDFsqueR
saIsface• EnundiagramaDFunadelascosasúIlesesquelasflechas
salendeunconjuntodeatributosquefuncionancomollavescandidatasyquecasisiempreseeligencomollavesprimarias
• Escuandohayflechasquenosalendellavescandidatasquelosproblemascomienzan
• Porlotanto,losprocedimientosdenormalizaciónsecaracterizanporeliminarflechasquenosalendellavescandidatas
![Page 110: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/110.jpg)
UnaDFesunanociónsemánIca
• LasFDssonenrealidadIposespecialesderestriccionesdeintegridad,sonpartedelpredicadoquedefineunarelación,sonpartedelprocesodeentendimientodeloquelosdatossignifican,porEjlaDFS#→CITYsignificaquecadaproveedorestáubicadoenunaciudad(esoesunarestricción!)
• ComoespartedelasemánIcadelabasededatoslarestriccióndebeserobservada
• Paraasegurarsedequeseaobservadasedebeespecificarenladefinicióndelabasededatos
• LamaneradeespecificarlarestricciónesdeclararlaDF
![Page 111: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/111.jpg)
Primera,SegundayTerceraFormasNormales
• Unamuyinformaldefiniciónpreliminardela3NF:UnaVarRelestáenla3NFsilosatributosquenoformanpartedelallaveprimariason:– Mutuamenteindependientes– IrreducIblementedependientesdelallaveprimaria
• Unadefiniciónaunmasinformaldela3NF:UnaVarRelestáenla3NFsicadatupleconsistedeunallaveprimariaqueidenIficaaalgunaenIdadjuntoconceroomasatributosmutuamenteindependientesquedescribenadichaenIdad
![Page 112: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/112.jpg)
1NF• UnaVarRelestáenla1NFsiysolosicadaatributodecadatuplaconIeneexáctamenteunvalor.
• ConestadefiniciónpodemosdecirquelasVarRelssiemprecumplenconla1NF
• SinembargocuandoseaseguraqueunaVarRelestáenla1NFseimplicaquenocumpleniconla2NFniconla3NF
• EjsupongaquelaVarRelFIRSTIeneladependenciaCITY->STATUS
![Page 113: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/113.jpg)
Dificultadesocasionadasporla1NF• Redundancia• “Anomalías”
– DeInsert:Nopodemosinsertarlainformación(EjCITY)relacionadaaunproveedorhastaquenosvendaalgo
– DeDelete:Alborrar(porunacancelación)unacompraaunproveedorborramostambiénlainformacióndelproveedor(encasodequeeralaúnicacomprahechaaeseproveedor)
– DeUpdate:Siunproveedorsecambiadeciudad,tenemosquehacermuchoscambiosennuestraVarRelbajoelriesgodedejaralgunainconsistencia
![Page 114: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/114.jpg)
2NF• UnaVarRelestáenla2NFsiysolosiestáenla1NFycadaatributoquenoformapartedelallaveprimariaesirreducIblementedependientedelallaveprimaria
• EstadefiniciónesválidaparaVarRelsconunaúnicallavecandidataqueeslallaveprimaria
• LosproblemasmencionadosenlaláminaanteriorsesolucionancambiandolaVarRelPRIMERAporlassiguientesdosVarRels:– SECOND{S#,STATUS,CITY}– SP{S#,P#,QTY}
![Page 115: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/115.jpg)
2NF• AmbasSECONDySPestánenla2NF,elprocesoparaobtenerlasconsiste
enrealizarproyeccionesparaeliminardependenciasfuncionalesnoirreducIblestalesquealrealizarlaoperaciónJOINdeestasdosVarRelsserecuperelaVarRelFIRST.
• DadaunaVarRelR{A,B,C,D}PRIMARYKEY{A,B}/*asumirA->D*/• ReemplazarRporR1yR2:
– R1{A,D}PRIMARYKEY{A}– R2{A,B,C}PRIMARYKEY{A,B}FOREIGNKEY{A}REFERENCESR1
• VarRelSPessaIsfactoria,dehechocumpletambiéncon3FNperoSECONDaúncausaproblemaspuestoquesufredefaltadeindependenciamutuaentrelosatributosqueconformanlallaveprimaria.ObservecomoeldiagramadeDFsesmascomplejodelosimplequeexigela3FN
• Anomalías:– Insert.NopodemosalmacenarelconocimientodequeunaciudadIeneun
ciertostatus(EjRomaIeneelstatus50)hastaqueestaquetengamosunproveedorubicadoendichaciudad
– Delete.Siborramosunproveedordeunaciudadpodemosborrarelstatusdelaciudadsieseeraelúnicoproveedorqueteníamosenesaciudad
– Update.Elstatusdeunaciudadaparecevariasveces(redundancia)ysitenemosquecambiarelstatusdeunaciudaddebemoshacerloentodoslostuplesdedichaciudadconelriesgodeperderintegridad
![Page 116: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/116.jpg)
3NF• UnaVarRelestáenla3NFsiysolosicadaatributoquenoforma
partedelallaveprimariaesdependientenotransiIvamentedelallaveprimaria
• EstadefiniciónesválidaparaVarRelsconunaúnicallavecandidataqueeslallaveprimaria
• ElquenohayadependenciastransiIvasimplicaquenohayadependenciasmutuas
• ElprocesodenormalizaciónparaR{A,B,C}PRIMARYKEY{A}/*asumiendoqueB->C*/consisteenreemplazarRporR1yR2donde:– R1{B,C}PRIMARYKEY{B}– R2{A,B}PRIMARYKEY{A}FOREIGNKEY{B}REFERENCESR1
![Page 117: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/117.jpg)
ConservacióndelaDependencia• EsfrecuentequeunaVarRelsepuedadescomponersinpérdidaenmas
deunamanera.PorejSECONDsepuededescomponeren1. SC{S#,CITY},CS{CITY,STATUS}2. SC{S#,CITY},SS{S#,STATUS}
• Ambasdescomposicionessonsinpérdida,inclusoambasquedanenla3NF
• SinembargolasegundamaneranoesmuysaIsfactoriapuesmanIenelaanomalíadeinsertdenoserposibleinsertarelstatusdeunaciudadhastaquetengamosunproveedordeesaciudad.
• ElproblemaesqueenlasegundadescomposiciónladependenciafuncionalCITY→STATUSseconvirIóenunarestricciónqueinvolucradosVarRels,locualimplicaenlosproductosdebasesdedatosactualesquedicharestriccióntendráquesermantenidamediantecódigoproceduralescritoporelusuario
• PorejsiseinsertauntupleenSCyotrocorrespondienteenSSconlainformacióndeunproveedor,setendráquecuidarquecuandoseinserteotrotupleenSCysucorrespondienteenSSconlainformacióndeotroproveedordelamismaciudad,concódigosedeberádecuidarqueelstatusdelaciudadseaelmismoenamboscasos.
![Page 118: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/118.jpg)
Conservacióndeladependencia• Enlaprimeradescomposición,lasVarRelsresultantesdelas
proyecciones(SCyCS)sonindependientesenelsenIdodequesepuedemodificarcualquieradeellassinpreocuparsedelaotra.
• Elconceptodeproyeccionesindependientespermiteseleccionarunamaneradedescomponerunatablacuandosepuedehacerdemasdeunamanera
• DecimosquelasproyeccionesR1yR2deunaVarRelRsonindependientessisecumplenlassigsdoscondiciones– CadaDependenciafuncionaldeResunaconsecuencialógicadelas
dependenciasfuncionalesdeR1yR2– LosatributoscomunesdeR1yR2conformanunallavecandidataenal
menosunadelasdos• Porejenlaprimeradescomposicióndelejemplo,elatributocomún
deCSySCesCITYyCITYseríalallaveprimariaenCS.AdemáscadadependenciafuncionaldelaVarRelSECONDapareceenCSoenSCoesunaconsecuencialógicadelasDFsdeCSySC
• EncambioenlasegundadescomposiciónsibienelatributocomúndeSCySS(S#)esunallavecandidataenambas,laDFCITY→STATUSnosepuedededucirdelasDFsdeSCySSporlotantolasproyeccionesSCySSnosonindependientes.
![Page 119: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/119.jpg)
Algoritmode9pasosparadescomponervarRelRsinpérdidademaneraquesepreserveladependencia
• InicializarDcomoconjuntovacío• SeaLunacoverturairreducIbleparaS(DFsdeR)• SeaXelconjuntodeatributosqueaparecendelladoizquierdo
dealgunaDFX→YenL• SeaelconjuntocompletodeDFsenLconladoizqX:
X→Y1,X→Y2,…,X→Yn• SeaZlaunióndeY1,Y2,…,Yn• ReemplaceDporlaunióndeDylaproyeccióndeRsobreXyZ• Repitalospasosde4a6porcadadisIntaX• SeanA1,A2,…AnlosatributosdeRqueaunnosetomanen
cuenta(noincluidosenningunaVarRelenD).RemplaceDporlaunióndeDylaproyeccióndeRsobreA1,A2,…,An
• SiningunaVarRelenDincluyeunallavecandidatadeR,reemplaceDporlaunióndeDylaproyeccióndeRsobrealgunallavecandidatadeR
![Page 120: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/120.jpg)
Introducción• LasBasesdedatosorientadasaobjetosfuerondegraninterésenlos
años90s.SepronosIcabaqueibanaserfuertescompeIdoresdelasbasesdedatosrelacionales.Hoydíapocosconcuerdanconeso.
• CiertascaracterísIcasqueparecenconvenientesparalasDBMShanexisIdodesdehaceañosenloslenguajesorientadoaobjetos,esnaturalinvesIgarlaideadeincorporarlasalosDBMS
• Porejemplo,enlugardepensarentérminosdetuplesdeunaVarRelDEPTydelostuplescorrespondientesenunaVarRelEMPdondeunallaveforáneahacereferenciaaunallaveprimariadeDEPT,elusuariodeberíapoder“contratar”unobjetoempleadoenelobjetodepartamento(elobjetodepartamento“sabe”comocontratarempleados).DichodeotramaneralaideaesELEVARELNIVELDEABSTRACCIÓN
• CiertamenteelparadigmadeobjetoshasidoexitosoenelevarelniveldeabstracciónenelcampodelenguajesdeprogramaciónysuaplicaciónensistemascomplejoscomolosCAD,CAMoCASE
![Page 121: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/121.jpg)
EjemplomoIvacional• SupongaqueunaherramientaCADoCAMuIlizaunabasededatos
derectángulos.CadarectánguloindividualseidenIficapordosparejasdecoordenadas(x1,y1)y(x2,y2)quecorrespondenasuesqinf-izqylasup-derrespecIvamente.
• Considerelaconsulta:Obtenertodoslosrectángulosquesetraslapenconelrectángulodecoordenadas(0,0)y(1,1)
![Page 122: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/122.jpg)
EjemplomoIvacional• Lasiguienteconsultaresuelveelproblemamuchomasrápidamente
• Lapreguntaes¿PodríaelsistemadebasededatoshaberopImizadolaconsultaporsisoloaparIrdelaversiónineficiente?
• ProblemascomoestemuestranqueproductosSQLclásicossoninadecuadosenciertosaspectospueslassolicitudessondimcilesdeexpresaryseejecutanconmaldesempeño
![Page 123: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/123.jpg)
Objetos,Clases,MétodosyMensajes• DisInguimosprimerodeobjetosmutablesdelosinmutables:Ejsde
objetosinmutablesson:Enterosinmutablescomo5,40;Cadenasinmutablescomo“Mozart”o“Beethoven”.EjsdeObjetosmutables:Empleado,Departamento.
• Enterminologíatradicionaldebasesdedatosrelacionales,losobjetosinmutablescorrespondenconlosvaloresylosobjetosmutablesconlasvariables
• Losobjetossondeunaclase,omejordicholosobjetossoninstanciasdeclases,eltérminoclasecorrespondealdeIpoenterminologíadebasesdedatosrelacionales
• Losobjetossoncapacesdeejecutarmétodos,porejemplolosmétodosdelosobjetosdelaclaseDEPTpudieranserHIRE_EMP,FIRE_EMP,CUT_BUDGET,etc.Losmétodosreemplazanalosoperadores
![Page 124: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/124.jpg)
Objetos,Clases,MétodosyMensajes• Losobjetosestánencapsulados,esdecir,laestructurainternade
unobjetonoesvisiblealosusuariosdelobjetoloscualessolopuedenmanipularadichosobjetosatravésdesusmétodos.
• DecirqueunobjetoestáencapsuladoIenesuanalogíaenbasesdedatosrelacionalesconelconceptodeIposescalaresloscualesnoIenencomponentesvisiblesalusuario.Elencapsulamientoprovee“independenciamsicadedatos”
• LosobjetosencapsuladosIenenmemoriaprivadaeinterfazpública.Lamemoriaprivadaalmacenavariables(atributos)cuyosvaloresdefinenelestadodelobjeto.LainterfazpúblicaestáconsItuidaporlosmétodosdelaclasecuyocódigoestáocultoalusuario.
• Losmétodosseinvocanmediantemensajes,porejemplounmensajeparaeldepartamentoDdondeselepidequecontratealempleadoE,pudieraser:D.HIRE_EMP.EnlaprácIcalosclasesbásicasenlossistemasorientadosaobjetosincluyenmetodos,porEjINTEGERIenemétodos+,-,>,etcCHARincluye=,Substr,etc
![Page 125: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/125.jpg)
Variablesdeunainstancia(deunejemplar)• Unobjetoesunainstanciadeunaclase,podríamosdecir
unejemplarysusvariables(atributos)enteoríadeberíanestarocultosdelusuario,sinembargolamayoríadelossistemasnosonpurosenesesenIdo,porlotantodebemosdisInguirentrevariablesprivadasyvariablespúblicas.
• Lasvariablesprivadasestánverdaderamenteocultasalusuarioylasvariablepúblicasnoloestán
• SupongaqueexisteunaclaseLINEyqueIenedosvariablespúblicasBEGINyEND,elusuariopuedeporejcrearelobjetolinyaccederaesasvariablescomolin.BEGINylin.END
• SupongaahoraquelarepresentaciónmsicadelosobjetosdelaclaseLINEcambiademaneraqueahoralasvariablessonMIDPOINT,LENGHTySLOPE
• Entoncescualquiercódigodeprogramaconexpresionesqueincluyanlin.BEGINolin.ENDfallarándeahoraenadelante.SEHAPERDIDOLAINDEPENDECIADEDATOS
![Page 126: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/126.jpg)
Variablesdeunainstancia(deunejemplar)• Nosonnecesariaslasvariablespúblicasdeinstancias,sepuedencrearmétodoscomoGET_BEGIN(),GET_END(),GET_MIDPOINT(),GET_LENGHT()yGET_SLOPE()
• Deesamaneranoimportacualsealarepresentaciónmsicadelaslíneas
• Algunossistemassoportanunavariantedelasvariablesprivadas,denominadasvariablesprotegidas,lascualessonvisiblessoloalcódigoqueimplementamétodosdeesaclaseyalcódigoqueimplementemétodosdesubclases(clasesquedesciendendelaclase)
![Page 127: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/127.jpg)
IdenIdaddeObjetos• CadaobjetoIeneuniden3ficadorúnicooOID(objectid),los
objetosinmutables(Ejelentero42)seidenIficanasimismos.• LosobjetosmutablesIenendireccionesconceptualesqueusan
comosusOIDs.Lasdireccionesmsicasnosonaccesiblesparaelusuario.
• DosobjetospuedenseridénIcosentodossusatributosysinembargoserdosobjetosindependientes,esdecir,dosinstanciasdelamismaclasequeunoesunacopiadelotroperopodemossaberquesondosobjetosporqueIenendiferentesOIDs
• LasbasesdedatosrelacionalesuIlizanllaves(primariasy/oforáneas)controladasporelusuarioyprohibenelusodeapuntadoresesIloOIDsperorecomiendanelusodellavesproporcionadasporelsistemalascualesadiferenciadelosOIDssonvisiblesalusuarios
• ElusodeOIDsnocancelalanecesidaddellavesquedetodosmodosserequierenenelmundoreal
• OIDssonfuentedecríIcasllamandolealsistemaorientadoaobjetos“Codasylrecalentado”
![Page 128: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/128.jpg)
Ejemplo• SupongaquedefinimoslaclaseDEPTylaclaseEMP,yquelasclasesMONEYyJOByaseteníandefinidasademásdelaclaseCHARqueformapartedelsistema
![Page 129: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/129.jpg)
Ejemplo• AunquelaclaseEMPnotengaunavariablequeseaunOID
deDEPT(paraquefuncionaracomollaveforánea)síseríaposibleaveriguarcadaempleadoaquédepartamentoestáasignado
• Ladefinicióndecadaclaseincluyeladefinicióndesusmétodos
![Page 130: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/130.jpg)
Ejemplo• Enunmasaltonivelde
abstraccióncomounajerarquíadecontenedores
• EstediagramanoaclaraquelosobjetossemanejanconOIDs(apuntadores)
• OtraconfusiónqueestediagramasugiereesquepareceríaqueSmithIenedostrabajos
• ExponeralasBDsorientadasaobjetoscomojerarquíaslashaceobjetodelascríIcasnormalmentehechasalmodelojerárquico
• Perolosobjetosnosonjerarquíassinotuplescuyoscomponentespuedenserobjetosmutables,objetosinmutablesoconjuntos,listas,arreglos,…
![Page 131: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/131.jpg)
Ejemplodelacunahastalatumba• LaBasededatosdecursosdecapacitaciónparaempleadosconIeneinformaciónacercadelaofertadecursos,quienesseinscribenalcursoyquiénloimparte
Laversiónparaunabasededatosrelacionalsería
![Page 132: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/132.jpg)
Definicióndedatos• OPALesunDDLyDMLbasadoenSmalltalkhechopor
GemStoneSystemsInc.• LasdefinicionesenOPALparalaclaseEMPsería
EMPseráentoncesunasubclasedelaclasegenéricaOBJECTTodaslasvariablessoprivadas,esdecirsolopuedenseraccedidasPorlosmétodosdelaclase,comoGET_EMPySET_EMP:
![Page 133: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/133.jpg)
Definicióndedatos• LadefinicióndelaclaseCOURSE
LavariableprivadadeinstanciaOFFERINGScontendráelOIDdelaclaseOSET(definidamasadelante)puestoqueseestámodelandolarelaciónCOURSE/OFFERINGScomounajerarquíadecontenedoresenlaquelasofertasdecursos(OFFERINGS)estánconceptualmentecontenidasdentrodelcursocorrespondiente.
![Page 134: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/134.jpg)
LadefinicióndelaclaseOFFERINGyENROLLMENT
• ENROLLMENTScontendráelOIDdeunobjetodelaclaseNSETpuesOFFERING“contendrá”todoslosenrolamientos(inscripciones)quehaganlosempleadosparalaoferta(offering)decursoencuesIón,también“contendrá”elconjuntodemaestrosqueparIciparánendichaofertadecurso
• LavariabledeinstanciaEMPcontendráelOIDdeunobjetodelaclaseEMP.SeestáusandounajerarquíadecontenedoresperoconuntratamientodisIntopueslarelaciónempleados-ofertasesdemuchosamuchos
![Page 135: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/135.jpg)
DefinicióndeclasesTEACHER,ESET,CSET,OSETyTSET
• LaclaseTEACHERsedefinecomosubclasedelaclaseEMP(Teacher“Isa”Emp),porlotantounmaestro,alsertambiénunempleado“Hereda”losatributosEMP#,ENAMEyPOSITION.SeleagregaaestosatributosheredadoselatributoCOURSESquecontendráunOIDdelaclaseCSETpuestoqueunmaestropuedeimparIrvarioscursos(Jerarquíadecontenedores).UnobjetodelaclasemaestrotambiénheredalosmétodosdelaclaseEMP.
• LaclaseESETsedefinecomosubclasedelaclaseSET,específicamentecomounconjuntodeempleados.Lasdefinicionesparaconjuntosdecursos,demaestros,etc,son:
![Page 136: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/136.jpg)
Poblandolabasededatos• Paracomenzaraagregarempleadosprimerodebemosdecrearun
objetodelaclaseESETpuestoquenodebemosolvidarquevamosanecesitarcoleccionarsusOIDs
• OID_OF_SET_OF_ALL_EMPS:=ESETNEW.• CadavezquecreemosunobjetodelaclaseEMPdebemosagregar
suOIDalconjuntoESET,definimosunmétododelaclaseESETparahacereso
• EnOPALlosmétodosnoIenennombre,usan“firmas”paradecidircualmétodosedebeejecutar
Paraagregarunempleado:
![Page 137: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/137.jpg)
Poblandodecursos• Agregarempleadosessimplepuesnoesunobjetocontenedor.ParaCOURSESdebemosprocederdelasig.Manera:1. UsarelmétodoNEWconlaclaseCSETparatenerun
conjuntovacíodetodosloscursos2. DefinirunmétodoparacrearunobjetoCOURSEy
agregarsuOIDalconjuntodetodosloscursos.DichométodotomarálosargumentosCOURSE#yTITLEycrearáunobjetoCOURSE,luegousaráelmétodoNEWparacrearunobjetodelaclaseOSETparacrearunconjuntovacíodeOIDsdeOFERINGsyloasignaráalavariabledeinstanciaOFERINGS
3. Invocardichométodoporcadacurso
![Page 138: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/138.jpg)
Poblandodeofertasdecursos1. DefinirunmétodoparacrearunobjetoOFFERINGconlos
argumentosOFF#,ODATEyLOCATION,elmétodo:– UsaráelmétodoNEWparacrearunobjetodelaclaseNSET(unconjuntovacíodeOIDsdeENROLLMENTSs)yloasignaráalavariabledeinstanciaENROLLMENTdelobjetoOFFERING
– UsaráelmétodoNEWparacrearunobjetodelaclaseTSET(unconjuntovacíodeOIDsdeTEACHERS)yloasignaráalavariabledeinstanciaTEACHERSdelobjetoOFFERING.
2. UIlizandoelargumentoCOURSE#– LocalizaráelobjetoCOURSE– AgregaráelOIDdelnuevoobjetoOFFERINGalconjuntode
ofertasdelobjetoCOURSE3. Invocarelmétodoreciéndefinidoporcadaofertade
cursoqueexista
![Page 139: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/139.jpg)
PoblandodeInscripciones• DefinirunmétodoparacrearunobjetoENROLLMENT,elmétodotomarácomoargumentosCOURSE#,OFF#,EMP#yGRADEycrearáunobjetoENROLLMENTconelvalorGRADEyademás:– UsarálosvaloresCOURSE#yOFF#paralocalizarelcorrespondienteobjetoOFFERING
– AgregaráelOIDdelnuevoobjetoENROLLMENTalconjuntodeenrolamientos(variabledeinstanciaENROLLMENTS)delobjetoOFFERING
– UsaráelargumentoEMP#paralocalizarelobjetoEMPyasignaráelOIDdelobjetoEMPenlavariabledeinstanciaEMPdelnuevoobjetoENROLLMENT
• Invocarelmétodoporcadaenrolamiento(inscripción)
![Page 140: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/140.jpg)
Poblandodemaestros• LaparIcularidadaquíesqueTEACHEResunasubclasede
laclaseEMP• DefinirunmétodoparacrearunnuevoobjetoTEACHER
uIlizandolosargumentosCOURSE#,OFF#yEMP#– UsarEMP#paralocalizaralobjetoEMP#– CambiarlaclaseespecíficadelobjetoEMPaTEACHER– UsarlosvaloresCOURSE#yOFF#paralocalizarelobjetoOFFERING
– AgregarelOIDdelnuevoobjetoTEACHERalconjuntodemaestros(variabledeinstanciaTEACHERS)delobjetoOFFERING
– UsarelvalorCOURSE#paralocalizarelobjetoCOURSE,– AgregarelOIDdelobjetoCOURSEalconjuntodecursosqueimparteelmaestro(variabledeinstanciaCOURSESdelnuevoobjetoTEACHER)
• Invocarelmétodoporcadamaestro
![Page 141: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/141.jpg)
Operacionesderecuperación• OPALnoesunlenguajequetrabajaconobjetos(oregistros)ynocon
conjuntosporloquenormalmentehayqueescribiralgodecódigoprocedural
• Ej.RecuperarlasofertasdelcursoC001enlaciudaddeNuevaYork
• Lalínea1declaravariablesparaalmacenarlosOIDsdelCursoC001,OfertasdelCursoC001yOfertasdelcursoC001enNY(larespuesta)
• Enlíneas2-3semandaunmensajealobjetoOOSOAC(coleccióngenérica)paraqueuseelmétodoDETECTybusqueelcursoC001
• Enlíneas4-5seasignaaC001_OFFSelOIDdelconjuntodeofertasdelcursoC001
• Enlíneas6-8seusaelmétodoSELECTparaquebusqueTODOSloscursosofrecidosenNY(DETECTsolohubieradevueltoelprimero)
![Page 142: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/142.jpg)
OperacionesdeActualización• Enláminasanterioresyaseexplicócomohacerinsertar
registros(objetos)enlabasededatos• Lasoperacionesdeactualizaciónsehacendelamisma
maneraquelasderecuperaciónexceptoqueenlugardemétodosGET_seusanmétodosSET_
• Encuantoaoperacionesdeeliminación,cuandounobjetonopuedeseryareferenciadopuestodaslasreferenciashaciaelhansidoborradasOPALloeliminaautomáIcamentemedianteel“recolectordebasura”.
• PorEjparaeliminaralempleadoE001
![Page 143: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/143.jpg)
Introducción
• Seguridadsignificaprotegeralosdatoscontrausuariosnoautorizados
• Integridadsignificaprotegeralosdatoscontrausuariosautorizados!
• Enamboscasoselsistemadebesabercualessonlasrestricciones,estasdebenserdeclaradas
![Page 144: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/144.jpg)
Introducción
• Aspectosdelaseguridad:– LegalyéIco.QuienIenederechoalainformación?– ControlFísico.(Terminalesresguardadas?)– PolíIca.Quiéndecide?– Problemasoperacionales.Ejcadacuandoseexigequesecambieunapassword?
– ControlesdeHardware.ElservidorIenellaves(literalmente)?
– ControlesdelSistemaOperaIvo.– ControlesdelDBMS!
![Page 145: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/145.jpg)
Introducción
• EnfoquesdelDBMS– Controldeaccesodiscrecional.LosusuariosIenendiferentesprivilegiosdeaccesoalosdiferentesobjetosdelabasededatos
– Controldeaccesomandatorio.CadaobjetodelabasededatosIeneunniveldeclasificaciónylosusuariosIenenunniveldeautoridad
![Page 146: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/146.jpg)
Introducción
• LasdecisionesrelaIvasalaseguridaddebendarseaconoceralsistemayestassealmacenaneneldiccionariodedatos
• ElsubsistemadeseguridaddelDBMSeselencargadodeconcederoprohibirdeterminadaoperaciónendeterminadoobjetoporpartededeterminadousuario
• LosusuariosdebenautenIcarse.Passwords,disposiIvosbiométricos(HuelladacIlar,reIna,idenIficadordevoz)oTokens,tarjetas,etc
• Elsistemanormalmentesoportagruposdeusuariosoroles.
![Page 147: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/147.jpg)
Controldeaccesodiscrecional• EsteeselsistemaquesoportanlamayoríadelosDBMS• Serequieredeunsublenguajeparadefinirlosprivilegios
(DCLenUllman)• EnunhipotéIcolenguajeconlasigsintaxisparadefinir
privilegioslasintaxisyunejemplo:
![Page 148: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/148.jpg)
Controldeaccesodiscrecional• TambiénserequierepoderreIrarprivilegios• DROPAUTHORITY<authority_name>• Normalmentealeliminarunobjetoseeliminanlosprivilegiosasociadosael
• Paraverun“subconjuntoverIcal”:
• SiLSesunavistaqueseleccionaalosproveedoresdeLondres(LondonSupliers)entonceslossiguientessonprivilegiosparaun“subconjuntohorizontal”
![Page 149: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/149.jpg)
ModificacióndelapeIción• LaUniversidadIngresdesarrollóunprotoIpodelenguajedeconsultadenominadoQUELdondeseadoptaunenfoqueinteresante
• CadapeIciónesmodificadaantesdesuejecucióndemaneraquenovioleningunarestriccióndeseguridad
• EjSupongaqueelusuarioUIenepermisopararevisarpartes(refacciones)almacenadasenLondressolamente.
• SupongaqueelusuarioUrealizalasiguientepeIción
• ElsistemaautomáIcamentemodificaestapeIciónquedando:
![Page 150: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/150.jpg)
ModificacióndelapeIción• LasintaxisenQUELparadefinirpermisos
• Porejemplo
• APPENDyREPLACEeselequivalentedeINSERTyUPDATE
![Page 151: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/151.jpg)
Registrosdeauditoría• Nodebemosasumirqueunsistemadeseguridades
perfecto.• UnhackermoIvadopodráviolarlaseguridad.• Porlotantosilosdatossonmuysensiblesesnecesarioque
existanregistrosdetodaslasoperacionesrealizadasconlabasededatos
• Deesamaneraunaauditoríasobretalesarchivosbitácorapuedeayudaradescubrirelproblema
• NormalmentelossistemasdebasesdedatosdemaneraautomáIcallevanregistrodetodaslasoperacionesrealizadasportodoslosusuarios– Operaciónrealizada– Terminaldesdelacuallaoperaciónserealizó– Usuarioquerealizólaoperación– Fechayhoradelaoperación– VarRels,tuplesyatributosafectados– Valoresanterioresyvaloresnuevos
![Page 152: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/152.jpg)
Controldeaccesomandatorio• EsteIpodecontrolesaplicabledondeexisteunarígida
estructurajerárquicacomoenelejercitoyenalgunasáreasdelgobierno
• CadaobjetoIeneunniveldeseguridad(Supersecreto,secreto,confidencial,etc.
• CadausuarioIeneunniveldeaccesoodeautoridad• ElusuarioiIeneaccesoalobjetojsielniveldeautoridad
deiesmayoroigualalniveldeseguridaddej(Propiedaddeseguridadsimple)
• Elusuarioipuedemodificaelobjetojsielniveldeautoridaddeiesigualalniveldeseguridaddelobjeto(Lapropiedad“estrella”).ParaentenderestareglaconsiderequecualquiercosaqueunusuarioescribaautomáIcamenteadquierecomoniveldeaccesoelniveldeautoridaddelusuario.Sielporejemplocopiainformacióndeunarchivosecretoaunarchivodemenorclasificación,esteúlImoseconviertetambiénensecreto.
![Page 153: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/153.jpg)
Clasesdeseguridad• ProteccióndiscrecionaloClaseC.Sedivideendos
subclases– SubclaseC1.DisIngueentrepropiedadyacceso.SoportaelconceptodedatoscomparIdosypermiteausuariostenerdatosdesupropiedad
– SubclaseC2.IgualqueC1peroademásrequierellevarregistrosdeauditoríayaislamientoderecursos(masseguroqueC1)
• ProtecciónmandatoriaoClaseB.Sedivideen3subclases:– SubclaseB1requierequecadaobjetoseaeIquetadoconunniveldeseguridad(secreto,confidencial,etc)
– SubclaseB2comoB1peroademásrequierequecanalesencubiertosseandescubiertosyeliminados.EnuncanalencubiertoseinfiereinformaciónsecretaaparIrdeinformaciónno-secretaporejporelIempoquetardalarespuesta.
– SubclaseB3Requiereademasdeauditoría,soportederecuperacionyun“AdminsitradordeSeguridad”
• ProtecciónverificadaoClaseA.Eslamássegura.RequierededemostraciónautomáIcadequeelmecanismodeseguridadsoportalapolìIcadeseguridadespecificada.
![Page 154: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/154.jpg)
SeguridaddemúlIplesniveles• Laideadecontroldeaccesomandatoriosepuedeaplicar
nosoloalniveldeVarRelssinoalniveldetuplesindividuales,entoncescadatupledebesereIquetadoconsuniveldeseguridad(Ej4=Topsecret,3=secret,2=confidencial,etc)
• Entoncessiporejemplounusariosrealizaunaconsultaporejemplo….wherecity=‘London’elsistemalacambiaríaporunacon…wherecity=‘London’andlevel<=user.clearence
• Yunaoperacióndeinsert,elsistemalacompletaríaconelniveldelusuarioquerealizaelinsert
• Consideracionessimilaresparalasoperacionesupdateydelete
![Page 155: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/155.jpg)
Encriptacióndedatos
• ParaprevenirlaintercepcióndeuncanaldecomunicaciónodelrobodeundiscoocopiadodearchivoslainformacióndeberíadealmacenarseytransmiIrseencriptada.
• Untextonoencriptadosedenomina“textoplano”yalencriptado“textocifrado”.
• Paraencriptaruntextoplanoserequieredelalgoritmodeencriptamientoydelallavedeencriptamiento
• Paradesencriptarloserequierentambiénambascosas• Noimportasielalgoritmodeencriptamientosehacepublicomientrasseprotejalallavedeencriptamiento
![Page 156: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/156.jpg)
Ejemplo• SeaeltextoplanoASKINGFISHERSCATCHFIRE• SealallavedeencriptamientoELIOT• Yelalgoritmodeencriptamiento:
1. Dividaeltextoplanoenbloquesdeltamañodelallavedeencriptamiento
AS+KINGFISHERS+CATCH+FIRE2. ReemplacecadacarácterporunnúmeroA=0,B=1,…,Z=26,Blank=00011900110914070609190805181900030120030800060918053. Repitaelpaso2paralallavedeencriptamiento05120915204. Porcadabloquereemplacecadacarácterporelmodulo27delasuma
desucodificaciónenteraylacodificaciónenteradelcarácterdelamismaposiciónenlallavedeencriptamiento
0119001109140706091908051819000301200308000609180505120915200512091520051209152005120915200512091520060409260219191524121317000720081302180105181806255. Reemplacecadaenteroporsucarácterequivalentedeacuerdoala
codificacióndelpaso4FOIZBSSOXLMQ+GTHMBRAERRFY
![Page 157: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/157.jpg)
ElEstandardeencriptamientodedatos
• ElejemploanteriorfueunprocedimientoclásicodeSUSTITUCIONdondecadacarácterdeltextoplanofuesusItuidoporotrocarácter
• ElotroprocedimientoclásicodeencriptamientoeseldePERMUTACIÓNdondeloscaracteresdeltextoplanosonsimplementerearreglados
• NingunodeestosdosprocedimientosesparIcularmenteseguroperolosalgoritmosquecombinanambasestrategiasproveenunaltogradodeseguridad
• UnodeestosalgoritmoseselestandardeencriptamientodedatosoDES(DataEncrypIonEstándar)desarrolladoporIBMen1977
![Page 158: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/158.jpg)
ElEstandardeencriptamientodedatos• Eltextoplanosedivideenbloquesde64bits• Cadabloqueesencriptadousandounallavede64bits(56bitsmas
8bitsdeparidad)porloquehay2^56llavesposibles• Cadabloqueesencriptadoaplicándoleunapermutacióninicial,
sujetandoluegoalbloqueaunasecuenciade16pasosdesusItuciónyfinalmenteaplicándoleotrapermutación(lainversadelapermutacióninicial)
• LasusItucióneneliésimopasonosedeterminaconlallavedeencriptamientoKoriginalsinoconunallaveKideterminadaconKei
• DESIenelapropiedaddequeelalgoritmodedesencriptamientoesidénIcoaldeencriptamientoexceptoquelasllavesKisonaplicadasenordeninverIdo
• DebidoalaumentoenlavelocidaddelascomputadoraselgobiernofederaldeUSAadoptóunestándarnuevo,elAES(AdvancedEncripIonStandar)queusallavesde128,192o256bitsenlugardelasllavesde56bitsdelestándaroriginal.SiexisIeraunacomputadoratanrápidacomoparacraquearDESenunsegundo,lellevaría149trillonesdeañoscraquearlaAESde128bits
![Page 159: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/159.jpg)
Encriptamientodellavepública• Tantoelalgoritmocomolallavedeencriptamientoson
públicosdemaneraquecualquierapuedeconverIrtextoplanoatextocifrado
• LallavedeencriptamientonoeslamismaqueladedesencriptamientoyestaúlImasemanIeneensecretodemaneraquenisiquieraelencriptadorpuededesencriptarsinoseleautoriza
• Elalgoritmodeencriptamientodellavepúblicaseconocecomo“EsquemaRSA”porsusautores(Rivest,ShamiryAdleman)ysebasaendoshechos– Existeunalgoritmoconocidoyrápidoparadeterminarsiunnúmeroesprimo
– Noseconoceunalgoritmorápidoparadescomponerunnúmeronoprimoenfactoresprimos
Enunexperimentodeterminarsiunnúmerode130dígitoseraprimotomó7minutosmientrasquedeterminarlosdosfactoresprimosde63dígitostomaría40cuadrillonesdeaños(unquadrillón=1,000,000,000,000,000)
![Page 160: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/160.jpg)
ElesquemadeRSA• Elijaalazardosnúmerosprimospyqycalculesuproductor=pq• Elijaalazarunenterograndeequenotengafactoresencomúncon
(p-1)(q-1),dichoenteroeeslallavedeencriptamiento.Elegireesfácil,cualquierenteroprimomayorquepyqfunciona
• TomelallavededesencriptamientodcomoelinversomulIplicaIvodeemodulo(p-1)(q-1),esdecir• d*e=1modulo(p-1)(q-1)
• Publiquelosenterosryeperonod• ParaencriptaruntextoplanoP(porsimplicidadasumimosqueeltexto
planoesunenteromenorquer)reemplacePporeltextocifradoCmedianteC=P^emodulor
• ParadesencriptarunapiezadetextocifradoCreempláceloporeltextoplanoPmedianteP=C^dmodulor
• Determinardconociendosolorye(ynopoq)noesposible,entoncescualquierapuedeencriptarperosololosqueconozcandpuedendesencriptar
![Page 161: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/161.jpg)
Ejemplo
• Seap=3yq=5,entoncesr=15y(p-1)(q-1)=8• Seae=11(unenteroprimomayorqueambospyq)• Entoncesd*11=1modulo8portantod=3puestoque33mod8=1
• SieltextoplanoPfueraelentero13• EltextocifradoseríaC=P^emodulor
• C=13^11modulo15=1,792,160,394,037mod15=7• EltextoplanooriginalPsepuedeobtenerhaciendo:
• P=C^dmodr=7^3mod15=343mod15=13
![Page 162: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/162.jpg)
FacilidadesdeSQL• SQLsolosoportacontroldeaccesodiscrecional• Dosmecanismosindependientesestáninvolucrados– Mecanismodevistas– Subsistemadeprivilegios
CreateviewLSasselectsname,status,cityFromSwherecity=‘London’GrantselectonLSToDan
![Page 163: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso](https://reader033.fdocumento.com/reader033/viewer/2022042011/5e727ac7ca5e99044e222550/html5/thumbnails/163.jpg)
FacilidadesdeSQL
• Grant<listadeprivilegios>on<objeto>to<user>[withgrantopIon]
• Revoke<listadeprivilegios>on<objeto>from<usuario>[cascade]
• LaopcióncascadeocasionacuandoselereIraunprivilegioaunusuarioselereIreeseprivilegioalosusuariosquedichousuariolesconcedió
• BorrarunatablaocasionalaeliminaciónautomáIcadetodoslosprivilegiosasociadosadichatabla