Download Presentacion para el Curso de Bases de Datos
Document related concepts
Transcript
BasesdeDatos JoséAntonioCamarenaIbarrola PANORAMAGENERAL – Introducción – ¿QuéesunsistemadeBasedeDatos? • • • • Datos Hardware SoGware Usuarios – ¿QuéesunaBasedeDatos? • • • • DatosPersistentes EnIdadesyVínculos Propiedades DatosyModelosdeDatos ¿PorquéunaBasedeDatos? • AdministracióndeDatosyAdministracióndeBasesdeDatos • BeneficiosdelenfoquedeBasedeDatos – LaindependenciadelosDatos – LosSistemasRelacionalesyotrosSistemas ModelosdeDatos • Introducción • Lostresnivelesdelaarquitecturadelossistemas deBasesdeDatos. • ElNivelExterno • ElNivelConceptual. • ElNivelInterno • Transformaciones. • ElAdministradordeBasedeDatos • ElSistemadeAdministracióndeBasedeDatos • ElAdministradordeComunicacionesdeDatos • ArquitecturaCliente–Servidor • ElProcesamientoDistribuido LALOGICACOMOUNMODELODE DATOS • • • • • • • • IntroducciónalasBasesdeDatosRelacionales Unamiradainformalalmodelorelacional RelacionesyVariablesdeRelación QuésignificanlasRelaciones InformacióndeDescriptores VariablesdeRelaciónBaseyVistas Transacciones BasedeDatosEjemplo LENGUAJESDECONSULTA RELACIONALES • • • • • IntroducciónaSQL Generalidades EsquemadeInformación Vistas SQLIncrustado – ConsideracionesPrevias 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 TEORÍADEDISEÑOPARABASESDEDATOS RELACIONALES • • • • • • • DependenciasFuncionales DefinicionesBásicas DependenciasTrivialesyNoTriviales CierredeunConjuntodeDependencias CierredeunConjuntodeAtributos ConjuntosdedependenciasIrreducibles NormalizaciónAdicional – FormasNormales • LaDescomposiciónsinPérdidaylasDependencias Funcionales • Primera,SegundayTerceraFormasNormales • ConservacióndelaDependencia LENGUAJESPARABASESDEDATOSORIENTADASAOBJETOS • Introducción – UnEjemplo • Objetos,Clases,MétodosyMensajes – UnPanoramadelaTecnologíadeObjetos – VariablesdeEjemplar – IdenIdaddeObjetos • Ejemplo – DefinicióndeDatos – PoblacióndelaBasedeDatos – OperacionesdeRecuperación – OperacionesdeActualización PROTECCIONDELABASEDEDATOS FRENTEAUSOSINDEBIDOS Introducción • • ControldeAccesoDiscrecional – ModificacióndelaPeIción – RegistrosdeAuditoria • ControldeAccesoObligatorio – SeguridaddemúlIplesniveles • CifradodeDatos – ElEstándardeCifradodeDatos – CifradodeClavePública • PropiedadesdeSQL – LasVistasylaSeguidad – GRANTyREVOKE Introducción • Considereunaaerolinea,llevaIempoalmacenando datosacercade: • • • • Pasajeros Vuelos Aeronaves Personal – Laaerolinearequiereexplotaresainformaciónpara contestarpreguntascomo: • ¿Quépasajerosreservaronasientoenelvuelo2345? • ¿Quétripulaciónseasignaráalvuelo2345? • ¿Cuandoselediómantenimientoalaaeronavequese uIlizaráenelvuelo2345? ¿Qué es un sistema de Base de Datos? • ElsoGwarequepermiteaunaoamuchaspersonasusar y/omanipularlosdatosesdenominado“Sistemade AdministracióndeBasesdeDatos”(DBMSporDatabase ManagementSystem) • Permitequelosusuarios“vean”losdatosdemaneraabstracta despreocupándosedecomoestossonalmacenados • Seguridad • Integridad • Sincronización • Recuperación Componentesdeunsistemadebase dedatos • Datos • Integrados.Almacenadosenunaoenvariascomputadoras • ComparIdos.Accesadosporunsolousuariooporvarios simultaneamente • Hardware • Volúmenesdealmacenamiento,Iposdeprocesadores,memoria • SoGware • EntrelabasededatosmsicaylosusuariosexisteunsoGware denominado“SistemadeadministracióndelaBasedeDatos”que protejealosusuariosdelosdetallesdealmacenamientodelosdatos ysumanipulaciónabajonivel • Usuarios • Usuarioprogramador • Usuariofinal • UsuarioAdministradordelaBasededatos ¿QuéesunaBasedeDatos? • UnacoleccióndedatospersistentesuIlizados porlasaplicacionesdeunaempresa(An IntroducIontoDatabaseSystemsC.J.Date) • Datosalmacenadosdeunamaneramaso menospermanentementeenuna computadora(PrinciplesofDatabaseSystems JeffreyUllman) DatosPersistentes • Selesdenominadatospersistentesaaquellos datosnoemmeros,losdatosemmerospueden ser: – Datosdeentradaaúnnovalidados – Datosdesalidanoalmacenadosperoderivados delosdatospersistentes – Engeneralinformacióndenaturalezatransitoria (Ejdecontrol) EnIdadesyRelaciones(oVínculos) Propiedades • LasenIdadesIenenpropiedades,por ejemplo: • LosautomóvilesIenen:Marca,modelo,etc • LosempleadosIenenedad,domicilio, nombre • Laspropiedadespuedensercomplejasode Ipossimplescomofechas,numérica,texto DatosyModelosdeDatos ¿PorquéunaBasedeDatos? • Espacio(Nohaynecesidaddevoluminosos archivosdepapel) • Rapidezalbuscarinformación • SinerrorporfaIgaportrabajotedioso • Datosactualizadosalmomento • Controlcentralizadodelainformación AdministracióndeDatosy AdministracióndeBasesdeDatos • EladministradordeDatos(DA)eslapersonaresponsable delosdatos,enIendelosdatosylasnecesidadesdela empresa.Decidequedatosdebenseralmacenadosyque políIcaseguirrespectoadichosdatos.Ejquiénpuede accederalosdatos.NormalmentenoIeneformaciónde IngenieroenSistemas • ElAdministradordelabasededatos(DBA)eselIngeniero enSistemasencargadodeimplementarlasdecisionesdel DA. – CrealaBasedeDatoseimplementacontrolesqueasegurenla políIcadelDArespectoalosdatos – Esresponsabledequeelsistemaopereconundesempeño adecuado BeneficiosdelenfoquedeBasede Datos • • • • • • • Sereducelaredundancia Seevitalainconsistencia Secompartenlosdatos Serefuerzanlosestandares(Entreempresas) Sepuedenaplicarrestriccionesdeseguridad Sepuedemantenerlaintegridaddelosdatos Sepuedenbalancearconflictosde requerimientos Independencia física de los Datos • Lasaplicacionesnodebenmodificarsesolo porquelaimplementacióndelesquema conceptualporelesquemamsicohacambiado • Formadealmacenamientodelosdatos numéricos(Entero,real,deprecisióndobleo comocadenas) • Códigosdecaracteres(ASCII,EBCDIC) • Unidadesnuméricas(Pulgadas,cenImetros) • Codificacióndelosdatos(2=Rojo,0=Negro,..) • Cambioenlaestructuradelosregistros • Cambioenlaestructuradelosarchivos IndependencialógicadelosDatos • Lasaplicacionesnodebenmodificarseporque elesquemaconceptualsemodifiqueamenos quelamodificaciónimpliqueeliminaciónde información. • LasvistasimplementanunIpode independencialógicadedatos. • Ejsupongaqueaunaaerolinealesolicitan informaciónrelaIvaalasemisiones contaminantesdesusaeronaves LosSistemasRelacionalesyotros Sistemas • El“Modelorelacional”eseldesarrollomas importanteenlahistoriadelasbasesdedatos • PracIcamentetodoslosproductosdebases dedatosactualmentesebasanenelenfoque relacional • Enunsistemarelacional: – Losdatossealmacenanen“tablas” – LosoperadoresqueseuIlizanconlastablas producenasuveztablas Otrossistemas • SistemasJerárquicos.Enestossistemaslosdatos serepresentanmedianteárboles.Losoperadores recibenapuntadoresyregresanapuntadoresa árbolesoasubárboles.EjSistemaIMSdeIBM • SistemasderedtambiénllamadosSistemas CODASYL(COnferenceonDAtaSYstems Language)osistemasDBTG(DataBaseTask Group).ElmejorejemploeselsistemaIDMSde ComputerAssociatesInternaIonalInc. ModelosdeDatos • Introducción(DellibrodeJeffreyUllman) Lostresnivelesdelaarquitecturade lossistemasdeBasesdeDatos. • Elnivelinterno.Concierneaestenivellamanera enquelosdatossonalmacenadosmsicamente • Elnivelexterno.Concierneaestenivellamanera enquelosdatossonvistosporlosusuarios individuales. • Elnivelconceptual.Concierneaestenivella maneraenquelosdatossonvistosporlos usuariosdemaneracolecIva. • Existenvariasvistasexternasperosolounavista conceptual. ArquitecturadelSistema(LibrodeC.J.Date) Elnivelexterno • Concierneaestenivellamaneracomolosdatosson vistosporlosIposdeusuariosindividuales • Unusuarioindividualpuedeserfinaloprogramador • ParaunIpodeusuarioindividualsedefineuna“vista externa”tambiénllamadasubesquemao“esquema externo” • ElDSL(DataSubLanguage)esunsublenguajepara interactuarconlosobjetosdelabasededatos.Incluye unsublenguajedemanipulacióndedatos(DML)yun sublenguajededefinicióndedatos(DDL) • UnexitosoDSLqueessoportadoporlossistemas relacionaleseselSQL(StructuredQueryLanguage) • EnelcasodelosusuariosprogramadoreselDSLestá embebidoenunlenguajedepropósitogeneral Elnivelconceptual • La“vistaconceptual”oesquemaconceptuales unmodelodetodalainformacióndelabasede datosynosolodelapartequeusuarios individualespueden“ver” • Elesquemaconceptualesunaabstraccióndela basededatosmsicaobienlabasededatosmsica esunaimplementacióndelesquemaconceptual. • Paraimplementarelesquemaconceptualse uIlizaelDDLyotrosublenguajedelDSL denominadoDCL(DataControlLanguage) Elnivelinterno • La“vistainterna”oesquemainternoesuna representacióndebajoniveldelabasede datosmsica • Notanbajocomoparaconsiderardetalles comocilindrosopistas • ELesquemainternosedefinemedianteotro sublenguajedenominadoDDLinterno. Transformaciones • Unmapeodelnivelconceptualalnivelinternodefine lacorrespondenciaentreelesquemaconceptualyla basededatosmsica. • Siserealizauncambioenlaestructuradelabasede datosmsica,elmapeoconceptual/internodebe modificarsedemaneraqueelesquemaconceptual permanezcaintancto • Unmapeodelnivelconceptualalnivelexternodefine lacorrespondenciaentrecadaparIcularvistaexterna (subesquema)yelesquemaconceptual.Porejemplo, losIposdeloscampospuedencambiarolosnombres deestosperoelmapeopermitequeestoscambios seantransparentesalnivelexterno. ElAdministradordeBasedeDatos Defineelesquemaconceptual Defineelesquemainterno Laboresdeconsultoría Establececontrolesdeseguridad Establececontrolesdeintegridad Estableceprocedimientosderespaldosy recuperación • Monitoreaeldesempeñoyrealizacambiosala “sintonizacióndelabasededatos” • • • • • • ElSistemadeAdministracióndeBase deDatos 1. Unusuariorequiereaccesarlosdatosmediante unsublenguaje(Ej.SQL) 2. ELDBMSinterceptalasolicitudylaanaliza 3. ElDBMSinspeccionaelesquemaexternodeese usuario,sucorrespondientemapeoexterno/ conceptual,elmapeoconceptual/internoyla definicióndelaestructuradelalmacenamiento msico 4. ElDBMSrealizalasoperacionesnecesariasala basededatos ElSistemadeAdministracióndeBase deDatos • AdicionalmenteelDBMSdebemonitorearlos requerimientosdelosusuariosyrechazarlos intentosdeviolarlaseguridady/olaintegridad deacuerdoalodefinidoporelDBA • UncomponentedelDBMSdenominado manejadordetransaccionesproveecontrolpara permiIrrecuperacióndefallasasícomomanejo delaconcurrencia • ElDBMSmanIeneelDiccionariodedatos • ELDBMSproveéfuncionesquepermitenalDBA administrareldesempeñodelsistema ElAdministradordeComunicaciones deDatos • Lassolicitudesdeununusuariodelabasededatos sontransmiIdasdelaterminal(posiblementeremota) delusuarioaalgunaaplicaciónydeahíalDBMSenla formademensajes • LasrespuestasdelDBMSalaaplicaciónyluegoal usuariotambiénviajanenmensajes. • Dichosmensajessetransmitenbajolasupervisiónde unsistemadenominado“Administradorde comunicacionesdedatos”oDCmanager • ElDCmanagernoformapartedelDBMSperotrabaja enharmoníaconelDBMS ArquitecturaCliente–Servidor • Unsistemadebasededatossepuede visualizarcomoconsistentededospartes – ServidoroBackend,esbásicamenteelDBMS – ClientesoFrontends,sonlasaplicacionesque funcionanenlaúlImacapa. • Programasdesarrolladosporelusuario • Programasprovistosporelmismodesarrolladordel DBMSoporuntercero.(herramientasCASE) – Reporteadores(CrystalReportsdeSeagate,SQLReportsde Oracle) – Compiladores(ProC,SQLFormsdeOracle) UIlerias • ProgramasdesarrolladosparaayudaralDBA ensusdiferentesfunciones – Cargadores(EjSQL-loader) – Analizadores – Reorganizadores(Defragmentadores) – Herramientasderespaldo(EjImport-Export) ElProcesamientoDistribuido • Elprocesamientoparalelosepuede implementardevariasmaneras – Programasclientescorriendoendiferentes computadorasyelservidorcorriendoenuna computadoracentral – Unareddecomputadorasenlasquecada computadoraesalavezclienteyservidor(Base dedatosdistribuida) – ServidormulIprocesador IntroducciónalasBasesdeDatosRelacionales • Aspectosdelmodelorelacional – Aspectoestructural.Losdatossepresentanal usuariocomotablas – AspectoIntegridad.LastablassaIsfacenciertas restriccionesdeintegridad – AspectomanipulaIvo.Losoperadoresquese uIlizanparamanipularlastablasregresanasu veztablas. EjemplosdeoperadoresRelacionales IntroducciónalasBasesdeDatosRelacionales • Unsistemarelacionalrequierequelabasededatos seapercibidacomotablas • Lastablassonlaestructuralógicanolaestructura msica • Elsistemaeslibredealmacenarinformaciónde cualquiermanera,Ejarchivossecuenciales,Tablas hash,árboles,etc • Lasbasesdedatosrelacionalessebasanenelprincipio deinformación:Todalainformacióncontenidaenla basededatosestárepresentadadeunaysolouna manera,encolumnasderenglonesdetablas. • HayunaconexiónentreelregistroD1delatablaDEPT yelregistroE1delatablaEMPperolaconexiónnose representaporunapuntadorsinoporlapresenciadel campoD1enelregistroE1delatablaEMP.Encambio ensistemasjerárquicosudegrafos,laconexiónsedá porunapuntadorqueesvisiblealusuario Unamiradainformalalmodelorelacional • Aspectosdeintegridaddebasesdedatos – Sepuedenestablecerrangosdevaloresvalidos paraciertoscampos – LastablaspuedentenercamposqueconsItuyen clavesprimarias – Lastablaspuedentenerllavesforáneasque debenexisIrenotrastablascomollavesprimarias – Sepuedendefinirrestriccionesmascomplejascon disparadores Unamiradainformalalmodelorelacional • ElmodelorelacionalIene5componentes 1. UnconjuntodeIpossimplesincluyendoelIpo booleano 2. UngeneradordeIposderelaciones 3. FacilidadesparadefinirvariablesdelIpode relación(alosqueserefiereelpuntoanterior) 4. Unaoperacióndeasignaciónparaasignar valoresadichasvariablesrelación 5. Unacoleccióndeoperadoresdelalgebra relacional RelacionesyVariablesdeRelación • RelacionessoneltérminomatemáIcopara referirseaunatabla • Informalmentetablaessinónimoderelación • Elmodelorelacionalsebasaenteoríade conjuntosylógicadepredicados • Elmodelorelacionalfueen1970porE.F. Codd,unmatemáIcotrabajandoparaIBM quequizoinyectarrigoryprincipios matemáIcossólidosalcampodelasbasesde datos RelacionesyVariablesdeRelación • EnelmodelorelacionalnoseuIlizael términoregistro,ensulugarseusaeldetupla parareferirseaunrenglóndeunatabla • EnlugardeltérminocamposeuIlizaelde atributoparareferirseaunacolumnadeuna tabla RelacionesyVariablesdeRelación Conceptualmente,elvalorrelaciónanteriordelavariablerelaciónEMP hasidoreemplazadoenbloqueporunvalorrelacióncompletamente nuevo.Paraevitarconfusióncuandodigamosrelaciónloquequeremos deciresunvalorrelaciónynounavariablerelación(relvar) QuésignificanlasRelaciones • LascolumnasdelastablasIenenIpos • TalesIpossondominios • LosusuariospuedendefinirsuspropiosIpos,porejun númerodeplacaIeneletrasynumeros • Asociadaaunarelaciónhayunpredicado,esdeciruna funciónbooleanaquerecibeunconjuntode parámetros(queinstancianalpredicado) • EjElempleadoEMP#sellamaENAME,trabajaenel departamentoDEPT#yganaSALARYdesueldo. • Elpredicadoesverdaderocuandoseinstanciacon valoresdelatabla QuésignificanlasRelaciones • LosIpossonlosconjuntosdecosasdelasque podemoshacerafirmaciones • Lasrelacionessonlosconjuntosdecosasque decimos • LosIpossonalasrelacionesloquelossujetos sonalasoraciones QuésignificanlasRelaciones • Tiposyrelacionessonambosnecesarios,sinIpos notenemosalgoacercadequedecir,sin relacionesnotenemosalgoquedecir • Tiposyrelacionessonsuficientes.No necesitamosnadamasentérminosdelógica suficiente • CadarelaciónIeneunpredicadoasociado, inclusoaquellasquesederivandeotras medianteoperacionescomolasjuntas • LasvariablesrelacióntambiénIenespredicados asociados. InformacióndeDescriptores • ElCATALOGO,tambiénllamado“Diccionario dedatos”,“Informacióndedescriptores”o simplemente“metadatos”conIenela informacióndeobjetosdelabasededatosy delsistemamismo. • Indices,tablas,restricciones,usuarios, permisos,informacióndedesempeñodela basededatos,etc InformacióndeDescriptores VariablesdeRelaciónBaseyVistas • Lasvariablesderelaciónquecorrespondena tablasexistentesenlabasededatosson llamadas“Variablesderelaciónbase”obase relvarsyasusvalores“Relacionesbase”. • Deesamaneralasdiferenciamosdelasvariables derelaciónqueseobIenenmediantealguna expresiónrelacional(usandooperadores) • Lasvariablesderelaciónbasetambienson conocidascomo“variablesderelaciónreales”o realrelvars VariablesdeRelaciónBaseyVistas • Lossistemasrelacionalesdebenproveermediospara crearlasvariablesderelaciónbase • EnSQL:CreatetableEMP…; • Lossistemasrelacionalessoportanotraclasede variablederelaciónllamadaconnombrefijo,sellaman VISTASysuvalorenuninstantedadoeseldeuna relaciónderivada • EnSQL:CreateviewTOPEMPasselect*fromEMP wheresalary>30000; • Cuandoestasentenciaseejecuta,ladefinicióndela vistasimplementesealmacena,perolaexpresión asociadanoseevalua. • Unavezcreadalavista,elusuariolapuedeusarcomo sifueraunavariablederelaciónbase. Transacciones • Unatransacciónesunaunidadlógicade trabajoquenormalmenteinvolucravarias operacionesdebasededatos Transacciones • ElDBMSgaranIzaquelastransaccionessean atómicas • UnavezqueseejecutaCOMMITla transacciónsehacepersistente • ROLLBACK • Lastransaccionessonindependienteunasde otras • Lastransaccionessonserializables BasedeDatosEjemplo • Labasededatosdeproveedoresypartes IntroducciónaSQL • SQLesellenguajeestandardelossistemas relacionales • DesarrolladoenIBMen1970 • SQLusaeltérminotabalparareferirsetantoa relacionescomoavariablesrelaciónyusalos términosrenglónycolumnaparareferirsea lastuplasyalosatributosrespecIvamente • SQLnoesunlenguajerelacionalperfectopero esunestándaryessoportadopor prácIcamentetodoslossistemas Generalidades • SQLincluyetantounDMLcomounDDL IntroducciónaSQL IntroducciónaSQL EsquemadeInformación • Elesquemadeinformacióno“Catalogo”consistedela descripcióndeunabasededatosqueperteneceaun usuarioindividual • Puedehabercualquiernúmerodecatálogos,unopor cadabasededatos,cadacatalogoincluyecualquier númerodesubesquemas. • Cadacatalogorequiereunysolounesquemallamado INFORMATION_SCHEMAydesdelaperspecIvadel usuarioeseseesquemaelquedesempeñalafunción normaldelcatalogo • ElEsquemadeinformaciónconsistedeunaseriede tablasconlainformaciónprecisadetodoslos subesquemasdelcatalogoencuesIón EsquemadeInformación • Laimplementaciónvariadeunproductoaotro peroesrequeridoquesoportealgúnesquemade definiciónyquesoportevistasdedichoesquema dedefinición Vistas EquivalenteasusItuirladefinicióndelavistaenlaconsulta Massimplesinlavistaenestecaso SQLIncrustado – LassentenciasdeSQLsepuedenejecutarde maneradirecta,interacIvamentedesdeuna terminalobiencomopartedeunprograma(Java, C,etc..)dondedichassentenciaspuedenestar incrustadas(oempotradas) – Principiodelmododual:Cualquiersentenciaque sepuedaejecutardirectamentesepuede empotrarenunprograma(nosepuededecirlo mismoalreves) SQLIncrustado • LassentenciasdeSQLempotradasIenenel prefijoEXECSQL • AlgunassentenciasprecedidasporEXECSQLno sonrealmenteejecutablessinopuramente declaraIvasparadeclararvariables,cursores,etc • LassentenciasSQLpuedenincluirreferenciasa variablesdelprogramaanfitrión(Declaradas despuésdeEXECSQLBEGINDECLARESECTION), aestasvariablesselesponeelprefijo“:”para diferenciarlasdelosnombresdecolumnasde tablas SQLIncrustado Operacionesquenorequieren cursores SQLIncrustado • Cuandounaconsultaregresaunnúmero arbitrarioderenglonesenlugardesolouno, serequieredeunmecanismoparaaccesarlos renglonesunoporuno SQLDinámico • ConSQLdinámico,lassentenciasdeSQLse puedenconstruirenIempodeejecución LosvaloresIenenTipo • UnIpoesalavezundominio,esdecirun conjuntodevalores,porejelIpoINTesel conjuntodelosnúmerosenteros • CadavariablesedeclaraserdeunIpo • Cadaatributodecadavariablerelación(Relvar) esdeclaradoserdeunIpo • LosoperadoressoncerradosrespectoalosIpos (conjuntos)alosqueseaplican • EngenerallasexpresionesdevuelvenelIpo relacionadoaloperadormasexternoinvolucrado • Algunosoperadoressonpolimórficos Tiposyrepresentaciones • ParaimplementarelmanejodeIpos necesitamosunmodelo,esdecir,una representaciónmsica • LadiferenciaentreunIpoysurepresentación msicaradicaenelconceptodeindependenciade datos • LosIpossonescalaresono-escalares – UnIpono-escalaresunIpocuyosvaloresIenen componentesalosquesepuedeacceder directamente.EnestesenIdo,losIposdelas variablesrelaciónsonno-escalarespuestoqueson tuplas – UnIpoescalaresunIpoatómicoyencapsulado,de hechoatómicoyencapsuladosonuIlizadoscomo sinónimosdeescalar RepresentacionesPosibles • LosIposescalaressonatómicosyencapsulados,enese senIdoelusuarionopuedeaccederaloscomponentesde surepresentaciónmsica • UnaexcepcióndeIposescalaresdondeloscomponentes deIposescalaressonvisiblesalusuarioloconsItuyenlas “representacionesposibles”(POSSREP)definidosen “TutorialD”,unlenguajerelacionalacadémico • Lasrepresentacionesposiblesrequieren: – UnoperadorselectorparapermiIralusuarioelegirunodelas representacionesposibles – UnconjuntodeoperadoresTHE_,unoporcadacomponentede cadarepresentaciónposibleparaaccederalcomponenteen cuesIón RepresentacionesPosibles • Ejemplosdeinvocacionesaselectoresy operadoresTHE_ RepresentacionesPosibles • ElimplementadordelIpoderepresentaciones posibleshaceusodeciertosoperadores altamenteprotegidosqueelsistemaprovee RepresentacionesPosibles • AlternaIvamente,ladefinicióndePOLARse puedehacerdirectamente,esdecirsinhacer usodelselectorCARTESIAN RepresentacionesPosibles • Tambiénhayqueimplementarlosoperadores THE_ UnavezquesehadefinidoelIpoPOINTsepuedendefinirotrosIposque louIlicen,Ej Definicióndeoperadores • Enellenguajerelacional“tutorialD”ademásdedefinir Ipossepuedendefinirlosoperadoresasociadosalos Iposdefinidosporelusuario ConversióndeIpos • LosoperadoresTHE_sepuedenusarparaconverIr IposporejemploenladefinicióndelIpoWEIGHT SiWesdel3poWEIGHT,entonceslaexpresiónTHE_D(W) convierteel3poWEIGHTal3poDECIMAL(5,1), locualresultaconvenientesiporejemploqueremos construirunaexpresióndondedebehabercongruenciaentre los3pos.PorEj.…whereTHE_D(W)=78.5enlugarde …whereW=78.5quepodríaocasionarerrordecompilación Nota:Denuevoloanteriorsebasaenellenguaje“tutorialD” perosiempresepuedenusarconversiones3pocast,porEj enPL/SQL: selectCAST('22-Aug-2003'ASvarchar2(30))fromdual; ConversióndeIpos • Conversiónimplícita: EnOraclelosIposCHARyVARCHAR2seconvierten automáIcamente,porejemplolossiguientesqueriesson equivalentes: SELECTemployee_id,first_name,salaryFROMemployees WHEREsalary>15000; SELECTemployee_id,first_name,salaryFROMemployees WHEREsalary>‘15000’; • Conversiónexplícita: EnOracleexistenfuncionescomoTO_CHAR,TO_DATEo TO_NUMBER.Ej SELECTTO_DATE('January15,1989,11:00A.M.','Monthdd, YYYY,HH:MIA.M.','NLS_DATE_LANGUAGE=American’) FROMDUAL; Valoresderelación • Unvalorderelaciónosimplementerelación consistedeunencabezadoydeuncuerpo donde: • Elencabezadoesunatupladenombresde atributosconlamismaaridadquelarelación • Elcuerpoesunconjuntodetuplasconla mismaaridadqueelencabezadoyconvalores quecorrespondenalosatributos especificadosenelencabezado Propiedadesdelasrelaciones • Larelacionesestánnormalizadas.Elhechode quecadatupleIeneexáctamenteunvalor paracadaatributogaranIzaquecumplecon laprimeraformalnormal(1NF) • CadatuplaIeneunvalorporcadaatributo • Nohayordendeizqaderechadelosatributos • Nohayordendearribaabajodelastuplas • Nohaytuplasduplicadas AtributosconValordeRelación • Podemosteneratributoscuyosvaloressonasuvez relaciones(relacionesanidadas) • Históricamenteestaposibilidadhasidoconsiderada comoinválida Diferenciasentrerelacionesytablas LosIposdelosatributosseomitenenlastablas LascolumnasIenenunordenenlastablas LosrenglonesdeunatablaIenenunorden Unatablapuedetenerduplicados LastablasIenealmenosunacolumnamientras quelasrelacionespuedennotenerningún atributo • Lastablaspuedentenerincluirvaloresnulos Apesardedichasdiferencias,lastablasson aceptablescomorepresentaciónderelaciones • • • • • Variablesrelación • Tambiénllamadasrelvars(ovarrelsenespañol) sondedosIpos:“varrelsbase”(también llamadasvarrelsreales)yvistas(tambien llamadasvarrelsvirtuales) • Paradefinirunavarrelbaseusamoslasiguiente sintaxis: ActualizacióndeVarrels • ELmodelorelacionalincluyelaoperaciónde asignaciónparaasignarvalores,esdecir,para actualizarvariablesderelación(relvarsovarrels) • Lasintaxisen“TutorialD”yejemplos; FacilidadesdeSQL • SibienSQLnosoportatuples,sisoportarows • SibienSQLnosoportarelacionessísoporta tablasaunqyeeltérminotablaenSQLsignificaa laveztablavalorytablavariable BehaviorpuedeserCASCADEoRESTRICT,CASECADEeliminaràtablasdependientes YRESTRICTsoloeliminarálatablasiestanoestáenuso Dependenciasfuncionales • Unadependenciafuncionalesunarelacióndemuchosaunodel conjuntodeatributosaotroconjuntodeatributosdentrodeuna VarReldada. • Porejemplohayunadependenciafuncionaldelconjuntode atributos{S#,P#}alconjuntodeatributos{QTY},locualsignifica: – PorcadapardevalorescorrespondienteaS#yP#existesoloun correspondientevalorparaelatributoQTY – DiferentesparejasdevaloresdeS#yP#puedentenerelmismovalor correspondientedeQTY Definicionesbásicas • HayquedisInguirclaramenteentre: – a)ElvalordeunaVarRelenunmomentodado – b)Elconjuntodetodoslosposiblesvaloresquela VarRelpuedetenerendiferentesmomentos • UsaremoscomoejemplolaVarRelSCP Dependenciafuncionalparaelcaso(a) Searunarelación,yXyYsubconjuntosarbitrariosdel conjuntodeatributosder.DecimosqueYes funcionalmentedependientedeX(denotadox→y)siy solosicadaXvalorenrIeneasociadounvalorYenr, porejemplodelarelaciónSCPpodemosdecir: {S#}→{CITY} Alaparteizqlellamamosdeterminanteyaladerecha dependiente,otrasdependenciasfuncionalesdel ejemplo: Dependenciafuncionalparaelcaso(b) SeaRunaVarRel,yXyYsubconjuntosarbitrariosdel conjuntodeatributosdeR.DecimosqueYes funcionalmentedependientedeXoquexdetermina funcionalmenteay(x→y)siysolosiencadaposible valorlegaldeR,cadavalorXIeneasociadounvalorY. Enotraspalabrassiemprequedostuplasconcuerdanen suvalorX,tambiénconcuerdanenuvalorY.por ejemplodelarelaciónSCP: ElcasobeselquemasnosinteresapuesnodependedelvalorquelaRelVar Tieneenunmomentodadosinoqueesunadependenciaválidaparatodos Losvaloresposible Dependenciasfuncionales • Comosevioenelejemploelconjuntode dependenciasfuncionalesSpuedesergrande • Loquequisiéramosesencontrarlamaneradereducir elconjuntodedependenciafuncionales • Lasdependenciasfuncionalesrepresentanciertas restriccionesdeintegridadyqueremosqueelDBMS lasrefuerce • Esdeseableencontrarunconjuntodedependencias funcionalesT,maspequeñoqueSyquetengala propiedaddequecadadependenciafuncionalenS quedeimplicadaporlasdependenciasfuncionalesenT Dependenciastrivialesynotriviales • Undependenciaestrivialsiysolosiellado derechodeladependenciaesunsubconjunto delladoizquierdo.Ej{S#,P#}→S# • Unadependenciatrivialnopuedeno cumplirse,deahíelnombre • Lasquerealmentenosinteresansonlas dependenciasnotrivialespuessonlasque correspondenaverdaderasrestriccionesde integridad Cerraduradeunconjuntodedependencias • Unasdependenciaspuedenimplicarotras • EjlaDependencia{S#,P#}→{CITY,QTY} • Implicalassiguientes – {S#,P#}→{CITY} – {S#,P#}→{QTY} • SupongaqueseIenenlasDFsA→ByB→C • EntoncesportransiIvidadtendremosA→C • ElconjuntodetodaslasDFsimplicadasporun conjuntoSdeDFsseconocecomocerraduradeS ysedenotaporS+ AxiomasdeArmstrong 1. EnlosAxiomasdeArmstrongABsignificaAUB 2. Reflexividad:SiBesunsubconjuntodeAentonces A→B 3. Aumentación:SiA→B,entoncesAC→BC 4. TransiIvidad:SiA→ByB→C,entoncesA→C 5. Autodeterminación:A→A 6. Descomposición;SiA→BC,entoncesA→ByA→C 7. Unión:SiA→ByA→C,entoncesA→BC 8. Composición:SiA→ByC→D,entoncesAC→BD • AdicionalmenteDarwenañadeelTeoremade UnificaciónGeneral: SiA→ByC→D,entoncesAU(C-B)→BD Cerraduradeunconjuntodedependencias • Ejemplo,supongaqueunaVarRelRIeneatributos A,B,C,D,EyFyDFs: § A→BC § B→E § CD→EF PorejA:Numdeempleado;B:NumdeDepto;C:Numde JefedelDepto;D:numdeproyecto;ENombredelDepto;F: PorcentajedeIempodedicadoporeljefealproyecto DemostraremosqueAD→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) Cerraduradeunconjuntodeatributos • EnprincipiopodríamosencontrarS+aparIrdeS medianteelalgoritmo:Recursívamenteapliquelos axiomasdeArmstrongoelteoremadeunificación paraqueseproduzcannuevasDFshastaqueyanose puedanproducirmas • Esonoseríaeficienteninecesarioenrealidadpuesno necesitamosenrealidaddeterminarS+ • Enlugardeesopodemosdeterminarunsubconjunto deS+consistentedeDFsqueIenendelladoizquierdo unconjuntoZdeatributoscuyacerraduraZ+ consItuyeelconjuntodetodoslosatributosqueson funcionalmentedependientes AlgoritmoparadeterminarZ+ • ParadeterminarZ+,esdecir,lacerraduradeZ bajounconjuntoSdeDFs Ejemplo • Determinar{A,B}+bajoelconjuntodeDFs – – – – A→BC E→CF B→E CD→EF • InicializamosCIERRE[Z,S]={A,B} • IteramosporcadaelemdeS – DeA→BC,comoAperteneceaCIERRE[Z,S]agregamosCyahora CIERRE[Z,S]={A,B,C} – DeE→CFcomoEnoperteneceaCIERRE[Z,S]nohacemosnada – DeB→EcomoBperteneceaCIERRE[Z,S]agregamosE,ahora CIERRE[Z,S]={A,B,C,E} – DeCD→EF,como{C,D}noesunsubconjuntodeCIERRE[Z,S]no hacemosnada • Conesoterminaunaiteración,luegode4iteraciones CIERRE[Z,S]={A,B,C,E,F} Cerraduradeunconjuntodeatributos • DadounconjuntoSdeDFs,X→Yseinfierede SsiysolosiYesunsubconjuntodeX+bajoS (CIERRE[X,S]) • DeesamanerapodemossabersialgunaFD X→YperteneceaS+sintenerquedeterminar S+ ConjuntosdedependenciasIrreducibles • SeanS1yS2dosconjuntosdeDFs • SicadaDFpertenecienteaS1esunaDfquesepuede inferirdeS2,decimosentoncesqueS2esunacoverturade S1 • SiS1+=S2+entoncesS1yS2sonequivalentes • DefinimosunconjuntodeDFscomoIRREDUCTUBLEsii saIsfacelassigs3propiedades – Elladoderecho(Eldependiente)decadaDFenSconsistede solounatributo – Elladoizquierdo(Eldeterminante)decadaDFenSes irreducIbleenelsenIdodequeningunodesusatributosse puedendescartarsinalterarS+(DecimosdetalDFquees izquierda-irreducIble) – NingunaDFenSpuededescartarsesinalterarS+ • NoesnecesariodeterminarS+parasabersisealteraal descartaralgo,porej,sialgunadependenciasepuede inferirdelasdemás,entoncesladependencianose requiere(noalteraS+) Ejemplo • ElsiguienteconjuntodeDFsesirreducIble mientrasquelossiguientes3noloson ConjuntosdedependenciasIrreducibles • PorcadaconjuntodeDFsSexistealmenosun conjuntodeDFsequivalentequeesirreducIble • Porlaregladedescomposición,podemosasumir quecadaDFenSIeneunladoderechodeun soloatributo • ExaminamoscadaatributoAdelaparteizquierda decadaDFfenS,SieliminarAdelladoizquierdo defnoIeneningúnefectoenS+,entonces borramosAdelladoizqdef • FinalmenteexaminamosparacadafenSsisu eliminaciónalteraS+,sino,borramosfdeS Ejemplo • SeaelconjuntoSdeDFs • ComoprimerpasoexpresamosSdemanera quedelladoderechosolotengaunatributo • ComolaDFA→Bquedóduplicadaeliminamosuna • Enseguida,elatributoCpuedesereliminadodelaDFAC→Dpuesto queexisteA→CyporaumentaciónA→ACycomoAC→Destá incluida,entoncesportransiIvidadA→D • LuegoAB→CpuedesereliminadapuestoqueaparIrdeA→Cypor aumentaciónAB→CBentoncesAB→Cpordescomposición • FinalmenteA→CsepuedeinferiraparIrdeA→ByB→Cpor transiIvidad • ElconjuntoirreducIble quedaentonces: Normalizaciónadicional • Comosedijoantes,elsolohechode almacenarlainformaciónentablasproveeun gradodenormalización,específicamentela primeraformanormalabreviada(1NF) • ElobjeIvodelanormalizaciónadicionalesla formalizacióndeideassimplescomo:“one factinoneplace”,evitarredundancia. • FormasNormales:1NF,2NF,3NF,BCNF,4FN, 5FN • Eldiseñadordeunabasededatosporlo generalaspiraala3NF LaDescomposiciónsinpérdidaylas DependenciasFuncionales • Lanormalizaciónesunprocesoqueinvolucradescomponer relacionesenvariasrelaciones,peroesteprocesodebeser reversible,esdecirdebeserunprocesodondenosepierda información • Observeunadescomposiciónsinpérdida(a)yunaconpérdida(b) dondeyanopodemossabercualproveedorestárelacionadocon cualciudad LaDescomposiciónsinpérdidaylas DependenciasFuncionales • Eloperadorclaveparalanormalizaciónesla proyecciónmientrasquelaoperaciónclaveparala recomposicióneslajunta. • Lapreguntaes,siR1yR2sonproyeccionesdeRy entreambasincluyentodoslosatributosdeR, entonces¿QuécondicionessedebensaIsfacerpara garanIzarqueR1yR2permitanlareconstrucciónde R? • Larespuestaresideenlasdependenciasfuncionales • Enelejemplodelaláminaanterior,laVarRelS saIsfaceelconjuntodeFDsirreducIble: – S#→STATUS – S#→CITY • NoescasualidadquelaVarRelSseaigualala operaciónJOINdesusproyeccionesen{S#,STATUS}y {S#,CITY} TeoremadeHeath • SeaR{A,B,C}unaVarReldondeA,ByCson conjuntosdeatributos.SiRsaIsfacelaDF A→B,entoncesResigualalajuntadesus proyeccionesen{A,B}y{A,C} • Ej.DelarelaciónSdelejemploanterior digamosqueAesS#,BesSTATUSyCesCITY Izquierda-reducibilidad • DecimosqueunaDFesizquierda-irreducIblesisuparte izquierda“noesdemasiadogrande”,porejemplolaVarRel SCPsiguientesaIsfacelaDF{S#,P#}→CITY • SinembargoelatributoP#delladoizquierdoes redundanteparapropósitosdedependenciafuncional,en cambioDFS#→CITYquetambiénsaIsfaceSCPes Izquierda-irreducIble DiagramasDF • SeaRunaVarReleIunconjuntoirreducIblededeDFsqueR saIsface • EnundiagramaDFunadelascosasúIlesesquelasflechas salendeunconjuntodeatributosquefuncionancomollaves candidatasyquecasisiempreseeligencomollavesprimarias • Escuandohayflechasquenosalendellavescandidatasque losproblemascomienzan • Porlotanto,losprocedimientosdenormalizaciónse caracterizanporeliminarflechasquenosalendellaves candidatas UnaDFesunanociónsemánIca • LasFDssonenrealidadIposespecialesde restriccionesdeintegridad,sonpartedelpredicado quedefineunarelación,sonpartedelprocesode entendimientodeloquelosdatossignifican,porEjla DFS#→CITYsignificaquecadaproveedorestáubicado enunaciudad(esoesunarestricción!) • ComoespartedelasemánIcadelabasededatosla restriccióndebeserobservada • Paraasegurarsedequeseaobservadasedebe especificarenladefinicióndelabasededatos • LamaneradeespecificarlarestricciónesdeclararlaDF Primera,SegundayTerceraFormasNormales • Unamuyinformaldefiniciónpreliminardela 3NF:UnaVarRelestáenla3NFsilosatributos quenoformanpartedelallaveprimariason: – Mutuamenteindependientes – IrreducIblementedependientesdelallaveprimaria • Unadefiniciónaunmasinformaldela3NF:Una VarRelestáenla3NFsicadatupleconsistede unallaveprimariaqueidenIficaaalgunaenIdad juntoconceroomasatributosmutuamente independientesquedescribenadichaenIdad 1NF • UnaVarRelestáenla1NFsiysolosicadaatributode cadatuplaconIeneexáctamenteunvalor. • ConestadefiniciónpodemosdecirquelasVarRels siemprecumplenconla1NF • SinembargocuandoseaseguraqueunaVarRelestáen la1NFseimplicaquenocumpleniconla2NFniconla 3NF • EjsupongaquelaVarRelFIRSTIeneladependencia CITY->STATUS Dificultadesocasionadasporla1NF • Redundancia • “Anomalías” – DeInsert:Nopodemosinsertarla información(EjCITY)relacionadaa unproveedorhastaquenosvenda algo – DeDelete:Alborrar(poruna cancelación)unacompraaun proveedorborramostambiénla informacióndelproveedor(encaso dequeeralaúnicacomprahechaa eseproveedor) – DeUpdate:Siunproveedorse cambiadeciudad,tenemosque hacermuchoscambiosennuestra VarRelbajoelriesgodedejaralguna inconsistencia 2NF • UnaVarRelestáenla2NFsiysolosiestáenla1NFy cadaatributoquenoformapartedelallaveprimaria esirreducIblementedependientedelallaveprimaria • EstadefiniciónesválidaparaVarRelsconunaúnica llavecandidataqueeslallaveprimaria • Losproblemasmencionadosenlaláminaanteriorse solucionancambiandolaVarRelPRIMERAporlas siguientesdosVarRels: – SECOND{S#,STATUS,CITY} – SP{S#,P#,QTY} 2NF • AmbasSECONDySPestánenla2NF,elprocesoparaobtenerlasconsiste enrealizarproyeccionesparaeliminardependenciasfuncionalesno irreducIblestalesquealrealizarlaoperaciónJOINdeestasdosVarRelsse recuperelaVarRelFIRST. • 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éncon3FNperoSECOND aúncausaproblemaspuestoquesufredefaltadeindependenciamutua entrelosatributosqueconformanlallaveprimaria.Observecomoel diagramadeDFsesmascomplejodelosimplequeexigela3FN • Anomalías: – Insert.NopodemosalmacenarelconocimientodequeunaciudadIeneun ciertostatus(EjRomaIeneelstatus50)hastaqueestaquetengamosun proveedorubicadoendichaciudad – Delete.Siborramosunproveedordeunaciudadpodemosborrarelstatusdela ciudadsieseeraelúnicoproveedorqueteníamosenesaciudad – Update.Elstatusdeunaciudadaparecevariasveces(redundancia)ysi tenemosquecambiarelstatusdeunaciudaddebemoshacerloentodoslos tuplesdedichaciudadconelriesgodeperderintegridad 3NF • UnaVarRelestáenla3NFsiysolosicadaatributoquenoforma partedelallaveprimariaesdependientenotransiIvamentedela llaveprimaria • EstadefiniciónesválidaparaVarRelsconunaúnicallavecandidata queeslallaveprimaria • ElquenohayadependenciastransiIvasimplicaquenohaya dependenciasmutuas • ElprocesodenormalizaciónparaR{A,B,C}PRIMARYKEY{A}/* asumiendoqueB->C*/consisteenreemplazarRporR1yR2 donde: – R1{B,C}PRIMARYKEY{B} – R2{A,B}PRIMARYKEY{A}FOREIGNKEY{B}REFERENCESR1 ConservacióndelaDependencia • EsfrecuentequeunaVarRelsepuedadescomponersinpérdidaenmas deunamanera.PorejSECONDsepuededescomponeren 1. 2. SC{S#,CITY},CS{CITY,STATUS} SC{S#,CITY},SS{S#,STATUS} • Ambasdescomposicionessonsinpérdida,inclusoambasquedanenla 3NF • SinembargolasegundamaneranoesmuysaIsfactoriapuesmanIenela anomalíadeinsertdenoserposibleinsertarelstatusdeunaciudad hastaquetengamosunproveedordeesaciudad. • Elproblemaesqueenlasegundadescomposiciónladependencia funcionalCITY→STATUSseconvirIóenunarestricciónqueinvolucrados VarRels,locualimplicaenlosproductosdebasesdedatosactualesque dicharestriccióntendráquesermantenidamediantecódigoprocedural escritoporelusuario • PorejsiseinsertauntupleenSCyotrocorrespondienteenSSconla informacióndeunproveedor,setendráquecuidarquecuandose inserteotrotupleenSCysucorrespondienteenSSconlainformaciónde otroproveedordelamismaciudad,concódigosedeberádecuidarque elstatusdelaciudadseaelmismoenamboscasos. Conservacióndeladependencia • Enlaprimeradescomposición,lasVarRelsresultantesdelas proyecciones(SCyCS)sonindependientesenelsenIdodequese puedemodificarcualquieradeellassinpreocuparsedelaotra. • Elconceptodeproyeccionesindependientespermiteseleccionar unamaneradedescomponerunatablacuandosepuedehacerde masdeunamanera • DecimosquelasproyeccionesR1yR2deunaVarRelRson independientessisecumplenlassigsdoscondiciones – CadaDependenciafuncionaldeResunaconsecuencialógicadelas dependenciasfuncionalesdeR1yR2 – LosatributoscomunesdeR1yR2conformanunallavecandidataenal menosunadelasdos • Porejenlaprimeradescomposicióndelejemplo,elatributocomún deCSySCesCITYyCITYseríalallaveprimariaenCS.Ademáscada dependenciafuncionaldelaVarRelSECONDapareceenCSoenSC oesunaconsecuencialógicadelasDFsdeCSySC • Encambioenlasegundadescomposiciónsibienelatributocomún deSCySS(S#)esunallavecandidataenambas,laDF CITY→STATUSnosepuedededucirdelasDFsdeSCySSporlo tantolasproyeccionesSCySSnosonindependientes. Algoritmode9pasosparadescomponervarRelRsin pé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).RemplaceDpor launióndeDylaproyeccióndeRsobreA1,A2,…,An • SiningunaVarRelenDincluyeunallavecandidatadeR, reemplaceDporlaunióndeDylaproyeccióndeRsobre algunallavecandidatadeR Introducción • LasBasesdedatosorientadasaobjetosfuerondegraninterésenlos años90s.SepronosIcabaqueibanaserfuertescompeIdoresdelas basesdedatosrelacionales.Hoydíapocosconcuerdanconeso. • CiertascaracterísIcasqueparecenconvenientesparalasDBMShan exisIdodesdehaceañosenloslenguajesorientadoaobjetos,es naturalinvesIgarlaideadeincorporarlasalosDBMS • Porejemplo,enlugardepensarentérminosdetuplesdeunaVarRel DEPTydelostuplescorrespondientesenunaVarRelEMPdondeuna llaveforáneahacereferenciaaunallaveprimariadeDEPT,elusuario deberíapoder“contratar”unobjetoempleadoenelobjeto departamento(elobjetodepartamento“sabe”comocontratar empleados).DichodeotramaneralaideaesELEVARELNIVELDE ABSTRACCIÓN • Ciertamenteelparadigmadeobjetoshasidoexitosoenelevarel niveldeabstracciónenelcampodelenguajesdeprogramaciónysu aplicaciónensistemascomplejoscomolosCAD,CAMoCASE EjemplomoIvacional • SupongaqueunaherramientaCADoCAMuIlizaunabasededatos derectángulos.CadarectánguloindividualseidenIficapordos parejasdecoordenadas(x1,y1)y(x2,y2)quecorrespondenasuesq inf-izqylasup-derrespecIvamente. • Considerelaconsulta:Obtenertodoslosrectángulosquese traslapenconelrectángulodecoordenadas(0,0)y(1,1) EjemplomoIvacional • Lasiguienteconsultaresuelveelproblemamuchomas rápidamente • Lapreguntaes¿Podríaelsistemadebasededatos haberopImizadolaconsultaporsisoloaparIrdela versiónineficiente? • ProblemascomoestemuestranqueproductosSQL clásicossoninadecuadosenciertosaspectospueslas solicitudessondimcilesdeexpresaryseejecutancon maldesempeño Objetos,Clases,MétodosyMensajes • DisInguimosprimerodeobjetosmutablesdelosinmutables:Ejsde objetosinmutablesson:Enterosinmutablescomo5,40;Cadenas inmutablescomo“Mozart”o“Beethoven”.EjsdeObjetos mutables:Empleado,Departamento. • Enterminologíatradicionaldebasesdedatosrelacionales,los objetosinmutablescorrespondenconlosvaloresylosobjetos mutablesconlasvariables • Losobjetossondeunaclase,omejordicholosobjetosson instanciasdeclases,eltérminoclasecorrespondealdeIpoen terminologíadebasesdedatosrelacionales • Losobjetossoncapacesdeejecutarmétodos,porejemplolos métodosdelosobjetosdelaclaseDEPTpudieranserHIRE_EMP, FIRE_EMP,CUT_BUDGET,etc.Losmétodosreemplazanalos operadores Objetos,Clases,MétodosyMensajes • Losobjetosestánencapsulados,esdecir,laestructurainternade unobjetonoesvisiblealosusuariosdelobjetoloscualessolo puedenmanipularadichosobjetosatravésdesusmétodos. • DecirqueunobjetoestáencapsuladoIenesuanalogíaenbasesde datosrelacionalesconelconceptodeIposescalaresloscualesno Ienencomponentesvisiblesalusuario.Elencapsulamientoprovee “independenciamsicadedatos” • LosobjetosencapsuladosIenenmemoriaprivadaeinterfaz pública.Lamemoriaprivadaalmacenavariables(atributos)cuyos valoresdefinenelestadodelobjeto.Lainterfazpúblicaestá consItuidaporlosmétodosdelaclasecuyocódigoestáocultoal usuario. • Losmétodosseinvocanmediantemensajes,porejemploun mensajeparaeldepartamentoDdondeselepidequecontrateal empleadoE,pudieraser:D.HIRE_EMP.EnlaprácIcalosclases básicasenlossistemasorientadosaobjetosincluyenmetodos,por EjINTEGERIenemétodos+,-,>,etcCHARincluye=,Substr,etc Variablesdeunainstancia(deunejemplar) • Unobjetoesunainstanciadeunaclase,podríamosdecir unejemplarysusvariables(atributos)enteoríadeberían estarocultosdelusuario,sinembargolamayoríadelos sistemasnosonpurosenesesenIdo,porlotanto debemosdisInguirentrevariablesprivadasyvariables públicas. • Lasvariablesprivadasestánverdaderamenteocultasal usuarioylasvariablepúblicasnoloestán • SupongaqueexisteunaclaseLINEyqueIenedosvariables públicasBEGINyEND,elusuariopuedeporejcrearel objetolinyaccederaesasvariablescomolin.BEGINy lin.END • Supongaahoraquelarepresentaciónmsicadelosobjetos delaclaseLINEcambiademaneraqueahoralasvariables sonMIDPOINT,LENGHTySLOPE • Entoncescualquiercódigodeprogramaconexpresiones queincluyanlin.BEGINolin.ENDfallarándeahoraen adelante.SEHAPERDIDOLAINDEPENDECIADEDATOS Variablesdeunainstancia(deunejemplar) • Nosonnecesariaslasvariablespúblicasde instancias,sepuedencrearmétodoscomo GET_BEGIN(),GET_END(),GET_MIDPOINT(), GET_LENGHT()yGET_SLOPE() • Deesamaneranoimportacualseala representaciónmsicadelaslíneas • Algunossistemassoportanunavariantedelas variablesprivadas,denominadasvariables protegidas,lascualessonvisiblessoloal códigoqueimplementamétodosdeesaclase yalcódigoqueimplementemétodosde subclases(clasesquedesciendendelaclase) IdenIdaddeObjetos • CadaobjetoIeneuniden3ficadorúnicooOID(objectid),los objetosinmutables(Ejelentero42)seidenIficanasimismos. • LosobjetosmutablesIenendireccionesconceptualesqueusan comosusOIDs.Lasdireccionesmsicasnosonaccesiblesparael usuario. • DosobjetospuedenseridénIcosentodossusatributosysin embargoserdosobjetosindependientes,esdecir,dosinstancias delamismaclasequeunoesunacopiadelotroperopodemos saberquesondosobjetosporqueIenendiferentesOIDs • LasbasesdedatosrelacionalesuIlizanllaves(primariasy/o foráneas)controladasporelusuarioyprohibenelusode apuntadoresesIloOIDsperorecomiendanelusodellaves proporcionadasporelsistemalascualesadiferenciadelosOIDs sonvisiblesalusuarios • ElusodeOIDsnocancelalanecesidaddellavesquedetodos modosserequierenenelmundoreal • OIDssonfuentedecríIcasllamandolealsistemaorientadoa objetos“Codasylrecalentado” Ejemplo • SupongaquedefinimoslaclaseDEPTylaclaseEMP,y quelasclasesMONEYyJOByaseteníandefinidas ademásdelaclaseCHARqueformapartedelsistema Ejemplo • AunquelaclaseEMPnotengaunavariablequeseaunOID deDEPT(paraquefuncionaracomollaveforánea)sísería posibleaveriguarcadaempleadoaquédepartamentoestá asignado • Ladefinicióndecadaclaseincluyeladefinicióndesus métodos Ejemplo • Enunmasaltonivelde abstraccióncomouna jerarquíadecontenedores • Estediagramanoaclaraque losobjetossemanejancon OIDs(apuntadores) • Otraconfusiónqueeste diagramasugiereesque pareceríaqueSmithIene dostrabajos • ExponeralasBDsorientadas aobjetoscomojerarquíaslas haceobjetodelascríIcas normalmentehechasal modelojerárquico • Perolosobjetosnoson jerarquíassinotuplescuyos componentespuedenser objetosmutables,objetos inmutablesoconjuntos, listas,arreglos,… Ejemplodelacunahastalatumba • LaBasededatosdecursosdecapacitaciónpara empleadosconIeneinformaciónacercadelaofertade cursos,quienesseinscribenalcursoyquiénloimparte Laversiónparaunabasededatosrelacionalsería Definicióndedatos • OPALesunDDLyDMLbasadoenSmalltalkhechopor GemStoneSystemsInc. • LasdefinicionesenOPALparalaclaseEMPsería EMPseráentoncesunasubclasedelaclasegenéricaOBJECT Todaslasvariablessoprivadas,esdecirsolopuedenseraccedidas Porlosmétodosdelaclase,comoGET_EMPySET_EMP: Definicióndedatos • LadefinicióndelaclaseCOURSE LavariableprivadadeinstanciaOFFERINGScontendráelOID delaclaseOSET(definidamasadelante)puestoqueseestá modelandolarelaciónCOURSE/OFFERINGScomounajerarquíade contenedoresenlaquelasofertasdecursos(OFFERINGS)están conceptualmentecontenidasdentrodelcursocorrespondiente. LadefinicióndelaclaseOFFERINGyENROLLMENT • ENROLLMENTScontendráelOIDdeunobjetodelaclaseNSETpues OFFERING“contendrá”todoslosenrolamientos(inscripciones)que haganlosempleadosparalaoferta(offering)decursoencuesIón, también“contendrá”elconjuntodemaestrosqueparIciparánen dichaofertadecurso • LavariabledeinstanciaEMPcontendráelOIDdeunobjetodela claseEMP.Seestáusandounajerarquíadecontenedorespero conuntratamientodisIntopueslarelaciónempleados-ofertases demuchosamuchos DefinicióndeclasesTEACHER,ESET,CSET,OSETyTSET • LaclaseTEACHERsedefinecomosubclasedelaclaseEMP(Teacher “Isa”Emp),porlotantounmaestro,alsertambiénunempleado “Hereda”losatributosEMP#,ENAMEyPOSITION.Seleagregaa estosatributosheredadoselatributoCOURSESquecontendráun OIDdelaclaseCSETpuestoqueunmaestropuedeimparIrvarios cursos(Jerarquíadecontenedores).Unobjetodelaclasemaestro tambiénheredalosmétodosdelaclaseEMP. • LaclaseESETsedefinecomo subclasedelaclaseSET, específicamentecomounconjunto deempleados.Lasdefinicionespara conjuntosdecursos,demaestros, etc,son: Poblandolabasededatos • Paracomenzaraagregarempleadosprimerodebemosdecrearun objetodelaclaseESETpuestoquenodebemosolvidarquevamos anecesitarcoleccionarsusOIDs • OID_OF_SET_OF_ALL_EMPS:=ESETNEW. • CadavezquecreemosunobjetodelaclaseEMPdebemosagregar suOIDalconjuntoESET,definimosunmétododelaclaseESETpara hacereso • EnOPALlosmétodosnoIenennombre,usan“firmas”paradecidir cualmétodosedebeejecutar Paraagregar unempleado: Poblandodecursos • Agregarempleadosessimplepuesnoesunobjeto contenedor.ParaCOURSESdebemosprocederdela sig.Manera: 1. UsarelmétodoNEWconlaclaseCSETparatenerun conjuntovacíodetodosloscursos 2. DefinirunmétodoparacrearunobjetoCOURSEy agregarsuOIDalconjuntodetodosloscursos.Dicho métodotomarálosargumentosCOURSE#yTITLEy crearáunobjetoCOURSE,luegousaráelmétodoNEW paracrearunobjetodelaclaseOSETparacrearun conjuntovacíodeOIDsdeOFERINGsyloasignaráala variabledeinstanciaOFERINGS 3. Invocardichométodoporcadacurso Poblandodeofertasdecursos 1. DefinirunmétodoparacrearunobjetoOFFERINGconlos argumentosOFF#,ODATEyLOCATION,elmétodo: – UsaráelmétodoNEWparacrearunobjetodelaclaseNSET(un conjuntovacíodeOIDsdeENROLLMENTSs)yloasignaráala variabledeinstanciaENROLLMENTdelobjetoOFFERING – UsaráelmétodoNEWparacrearunobjetodelaclaseTSET(un conjuntovacíodeOIDsdeTEACHERS)yloasignaráalavariable deinstanciaTEACHERSdelobjetoOFFERING. 2. UIlizandoelargumentoCOURSE# – – LocalizaráelobjetoCOURSE AgregaráelOIDdelnuevoobjetoOFFERINGalconjuntode ofertasdelobjetoCOURSE 3. Invocarelmétodoreciéndefinidoporcadaofertade cursoqueexista PoblandodeInscripciones • DefinirunmétodoparacrearunobjetoENROLLMENT, elmétodotomarácomoargumentosCOURSE#,OFF#, EMP#yGRADEycrearáunobjetoENROLLMENTconel valorGRADEyademás: – UsarálosvaloresCOURSE#yOFF#paralocalizarel correspondienteobjetoOFFERING – AgregaráelOIDdelnuevoobjetoENROLLMENTal conjuntodeenrolamientos(variabledeinstancia ENROLLMENTS)delobjetoOFFERING – UsaráelargumentoEMP#paralocalizarelobjetoEMPy asignaráelOIDdelobjetoEMPenlavariabledeinstancia EMPdelnuevoobjetoENROLLMENT • Invocarelmétodoporcadaenrolamiento(inscripción) Poblandodemaestros • LaparIcularidadaquíesqueTEACHEResunasubclasede laclaseEMP • DefinirunmétodoparacrearunnuevoobjetoTEACHER uIlizandolosargumentosCOURSE#,OFF#yEMP# – UsarEMP#paralocalizaralobjetoEMP# – CambiarlaclaseespecíficadelobjetoEMPaTEACHER – UsarlosvaloresCOURSE#yOFF#paralocalizarelobjeto OFFERING – AgregarelOIDdelnuevoobjetoTEACHERalconjuntode maestros(variabledeinstanciaTEACHERS)delobjetoOFFERING – UsarelvalorCOURSE#paralocalizarelobjetoCOURSE, – AgregarelOIDdelobjetoCOURSEalconjuntodecursosque imparteelmaestro(variabledeinstanciaCOURSESdelnuevo objetoTEACHER) • Invocarelmétodoporcadamaestro Operacionesderecuperación • OPALnoesunlenguajequetrabajaconobjetos(oregistros)ynocon conjuntosporloquenormalmentehayqueescribiralgodecódigo procedural • Ej.RecuperarlasofertasdelcursoC001enlaciudaddeNuevaYork • Lalínea1declaravariablesparaalmacenarlosOIDsdelCursoC001, OfertasdelCursoC001yOfertasdelcursoC001enNY(larespuesta) • Enlíneas2-3semandaunmensajealobjetoOOSOAC(coleccióngenérica) paraqueuseelmétodoDETECTybusqueelcursoC001 • Enlíneas4-5seasignaaC001_OFFSelOIDdelconjuntodeofertasdel cursoC001 • Enlíneas6-8seusaelmétodoSELECTparaquebusqueTODOSloscursos ofrecidosenNY(DETECTsolohubieradevueltoelprimero) OperacionesdeActualización • Enláminasanterioresyaseexplicócomohacerinsertar registros(objetos)enlabasededatos • Lasoperacionesdeactualizaciónsehacendelamisma maneraquelasderecuperaciónexceptoqueenlugarde métodosGET_seusanmétodosSET_ • Encuantoaoperacionesdeeliminación,cuandounobjeto nopuedeseryareferenciadopuestodaslasreferencias haciaelhansidoborradasOPALloelimina automáIcamentemedianteel“recolectordebasura”. • PorEjparaeliminaralempleadoE001 Introducción • Seguridadsignificaprotegeralosdatoscontra usuariosnoautorizados • Integridadsignificaprotegeralosdatoscontra usuariosautorizados! • Enamboscasoselsistemadebesabercuales sonlasrestricciones,estasdebenser declaradas Introducción • Aspectosdelaseguridad: – LegalyéIco.QuienIenederechoalainformación? – ControlFísico.(Terminalesresguardadas?) – PolíIca.Quiéndecide? – Problemasoperacionales.Ejcadacuandoseexigeque secambieunapassword? – ControlesdeHardware.ElservidorIenellaves (literalmente)? – ControlesdelSistemaOperaIvo. – ControlesdelDBMS! Introducción • EnfoquesdelDBMS – Controldeaccesodiscrecional.Losusuarios Ienendiferentesprivilegiosdeaccesoalos diferentesobjetosdelabasededatos – Controldeaccesomandatorio.Cadaobjetodela basededatosIeneunniveldeclasificaciónylos usuariosIenenunniveldeautoridad Introducción • LasdecisionesrelaIvasalaseguridaddebendarsea conoceralsistemayestassealmacenanenel diccionariodedatos • ElsubsistemadeseguridaddelDBMSeselencargado deconcederoprohibirdeterminadaoperaciónen determinadoobjetoporpartededeterminadousuario • LosusuariosdebenautenIcarse.Passwords, disposiIvosbiométricos(HuelladacIlar,reIna, idenIficadordevoz)oTokens,tarjetas,etc • Elsistemanormalmentesoportagruposdeusuarioso roles. Controldeaccesodiscrecional • EsteeselsistemaquesoportanlamayoríadelosDBMS • Serequieredeunsublenguajeparadefinirlosprivilegios (DCLenUllman) • EnunhipotéIcolenguajeconlasigsintaxisparadefinir privilegioslasintaxisyunejemplo: Controldeaccesodiscrecional • TambiénserequierepoderreIrarprivilegios • DROPAUTHORITY<authority_name> • Normalmentealeliminarunobjetoseeliminanlos privilegiosasociadosael • Paraverun“subconjuntoverIcal”: • SiLSesunavistaqueseleccionaalosproveedoresde Londres(LondonSupliers)entonceslossiguientesson privilegiosparaun“subconjuntohorizontal” ModificacióndelapeIción • LaUniversidadIngresdesarrollóunprotoIpode lenguajedeconsultadenominadoQUELdondese adoptaunenfoqueinteresante • CadapeIciónesmodificadaantesdesuejecuciónde maneraquenovioleningunarestriccióndeseguridad • EjSupongaqueelusuarioUIenepermisopararevisar partes(refacciones)almacenadasenLondres solamente. • SupongaqueelusuarioUrealizalasiguientepeIción • ElsistemaautomáIcamentemodificaestapeIción quedando: ModificacióndelapeIción • LasintaxisenQUELparadefinirpermisos • Porejemplo • APPENDyREPLACEeselequivalentedeINSERTy UPDATE Registrosdeauditoría • Nodebemosasumirqueunsistemadeseguridades perfecto. • UnhackermoIvadopodráviolarlaseguridad. • Porlotantosilosdatossonmuysensiblesesnecesarioque existanregistrosdetodaslasoperacionesrealizadasconla basededatos • Deesamaneraunaauditoríasobretalesarchivosbitácora puedeayudaradescubrirelproblema • Normalmentelossistemasdebasesdedatosdemanera automáIcallevanregistrodetodaslasoperaciones realizadasportodoslosusuarios – – – – – – Operaciónrealizada Terminaldesdelacuallaoperaciónserealizó Usuarioquerealizólaoperación Fechayhoradelaoperación VarRels,tuplesyatributosafectados Valoresanterioresyvaloresnuevos Controldeaccesomandatorio • EsteIpodecontrolesaplicabledondeexisteunarígida estructurajerárquicacomoenelejercitoyenalgunasáreas delgobierno • CadaobjetoIeneunniveldeseguridad(Supersecreto, secreto,confidencial,etc. • CadausuarioIeneunniveldeaccesoodeautoridad • ElusuarioiIeneaccesoalobjetojsielniveldeautoridad deiesmayoroigualalniveldeseguridaddej(Propiedad deseguridadsimple) • Elusuarioipuedemodificaelobjetojsielnivelde autoridaddeiesigualalniveldeseguridaddelobjeto(La propiedad“estrella”).Paraentenderestareglaconsidere quecualquiercosaqueunusuarioescriba automáIcamenteadquierecomoniveldeaccesoelnivel deautoridaddelusuario.Sielporejemplocopia informacióndeunarchivosecretoaunarchivodemenor clasificación,esteúlImoseconviertetambiénensecreto. Clasesdeseguridad • ProteccióndiscrecionaloClaseC.Sedivideendos subclases – SubclaseC1.DisIngueentrepropiedadyacceso.Soportael conceptodedatoscomparIdosypermiteausuariostener datosdesupropiedad – SubclaseC2.IgualqueC1peroademásrequierellevarregistros deauditoríayaislamientoderecursos(masseguroqueC1) • ProtecciónmandatoriaoClaseB.Sedivideen3subclases: – SubclaseB1requierequecadaobjetoseaeIquetadoconun niveldeseguridad(secreto,confidencial,etc) – SubclaseB2comoB1peroademásrequierequecanales encubiertosseandescubiertosyeliminados.Enuncanal encubiertoseinfiereinformaciónsecretaaparIrde informaciónno-secretaporejporelIempoquetardala respuesta. – SubclaseB3Requiereademasdeauditoría,soportede recuperacionyun“AdminsitradordeSeguridad” • ProtecciónverificadaoClaseA.Eslamássegura.Requiere dedemostraciónautomáIcadequeelmecanismode seguridadsoportalapolìIcadeseguridadespecificada. SeguridaddemúlIplesniveles • Laideadecontroldeaccesomandatoriosepuedeaplicar nosoloalniveldeVarRelssinoalniveldetuples individuales,entoncescadatupledebesereIquetadocon suniveldeseguridad(Ej4=Topsecret,3=secret, 2=confidencial,etc) • Entoncessiporejemplounusariosrealizaunaconsultapor ejemplo….wherecity=‘London’elsistemalacambiaríapor unacon…wherecity=‘London’andlevel<=user.clearence • Yunaoperacióndeinsert,elsistemalacompletaríaconel niveldelusuarioquerealizaelinsert • Consideracionessimilaresparalasoperacionesupdatey delete Encriptacióndedatos • Paraprevenirlaintercepcióndeuncanalde comunicaciónodelrobodeundiscoocopiadode archivoslainformacióndeberíadealmacenarsey transmiIrseencriptada. • Untextonoencriptadosedenomina“textoplano”yal encriptado“textocifrado”. • Paraencriptaruntextoplanoserequieredelalgoritmo deencriptamientoydelallavedeencriptamiento • Paradesencriptarloserequierentambiénambascosas • Noimportasielalgoritmodeencriptamientosehace publicomientrasseprotejalallavedeencriptamiento Ejemplo • SeaeltextoplanoASKINGFISHERSCATCHFIRE • SealallavedeencriptamientoELIOT • Yelalgoritmodeencriptamiento: 1. Dividaeltextoplanoenbloquesdeltamañodelallavede encriptamiento AS+KINGFISHERS+CATCH+FIRE 2. ReemplacecadacarácterporunnúmeroA=0,B=1,…,Z=26,Blank=00 01190011091407060919080518190003012003080006091805 3. Repitaelpaso2paralallavedeencriptamiento 0512091520 4. Porcadabloquereemplacecadacarácterporelmodulo27delasuma desucodificaciónenteraylacodificaciónenteradelcarácterdela mismaposiciónenlallavedeencriptamiento 01190011091407060919080518190003012003080006091805 05120915200512091520051209152005120915200512091520 06040926021919152412131700072008130218010518180625 5. Reemplacecadaenteroporsucarácterequivalentedeacuerdoala codificacióndelpaso4 FOIZBSSOXLMQ+GTHMBRAERRFY ElEstandardeencriptamientodedatos • Elejemploanteriorfueunprocedimientoclásicode SUSTITUCIONdondecadacarácterdeltextoplanofue susItuidoporotrocarácter • Elotroprocedimientoclásicodeencriptamientoeselde PERMUTACIÓNdondeloscaracteresdeltextoplanoson simplementerearreglados • NingunodeestosdosprocedimientosesparIcularmente seguroperolosalgoritmosquecombinanambas estrategiasproveenunaltogradodeseguridad • Unodeestosalgoritmoseselestandardeencriptamiento dedatosoDES(DataEncrypIonEstándar)desarrolladopor IBMen1977 ElEstandardeencriptamientodedatos • Eltextoplanosedivideenbloquesde64bits • Cadabloqueesencriptadousandounallavede64bits(56bitsmas 8bitsdeparidad)porloquehay2^56llavesposibles • Cadabloqueesencriptadoaplicándoleunapermutacióninicial, sujetandoluegoalbloqueaunasecuenciade16pasosde susItuciónyfinalmenteaplicándoleotrapermutación(lainversa delapermutacióninicial) • LasusItucióneneliésimopasonosedeterminaconlallavede encriptamientoKoriginalsinoconunallaveKideterminadaconKe i • DESIenelapropiedaddequeelalgoritmodedesencriptamiento esidénIcoaldeencriptamientoexceptoquelasllavesKison aplicadasenordeninverIdo • Debidoalaumentoenlavelocidaddelascomputadoraselgobierno federaldeUSAadoptóunestándarnuevo,elAES(Advanced EncripIonStandar)queusallavesde128,192o256bitsenlugar delasllavesde56bitsdelestándaroriginal.SiexisIerauna computadoratanrápidacomoparacraquearDESenunsegundo,le llevaría149trillonesdeañoscraquearlaAESde128bits Encriptamientodellavepública • Tantoelalgoritmocomolallavedeencriptamientoson públicosdemaneraquecualquierapuedeconverIrtexto planoatextocifrado • Lallavedeencriptamientonoeslamismaquelade desencriptamientoyestaúlImasemanIeneensecretode maneraquenisiquieraelencriptadorpuededesencriptarsi noseleautoriza • Elalgoritmodeencriptamientodellavepúblicaseconoce como“EsquemaRSA”porsusautores(Rivest,Shamiry Adleman)ysebasaendoshechos – Existeunalgoritmoconocidoyrápidoparadeterminarsiun númeroesprimo – Noseconoceunalgoritmorápidoparadescomponerun númeronoprimoenfactoresprimos Enunexperimentodeterminarsiunnúmerode130dígitosera primotomó7minutosmientrasquedeterminarlosdosfactores primosde63dígitostomaría40cuadrillonesdeaños(un quadrillón=1,000,000,000,000,000) ElesquemadeRSA • Elijaalazardosnúmerosprimospyqycalculesuproductor=pq • Elijaalazarunenterograndeequenotengafactoresencomúncon (p-1)(q-1),dichoenteroeeslallavedeencriptamiento.Elegireesfácil, cualquierenteroprimomayorquepyqfunciona • TomelallavededesencriptamientodcomoelinversomulIplicaIvode emodulo(p-1)(q-1),esdecir • d*e=1modulo(p-1)(q-1) • Publiquelosenterosryeperonod • ParaencriptaruntextoplanoP(porsimplicidadasumimosqueeltexto planoesunenteromenorquer)reemplacePporeltextocifradoC medianteC=P^emodulor • ParadesencriptarunapiezadetextocifradoCreempláceloporeltexto planoPmedianteP=C^dmodulor • Determinardconociendosolorye(ynopoq)noesposible,entonces cualquierapuedeencriptarperosololosqueconozcandpueden desencriptar Ejemplo • Seap=3yq=5,entoncesr=15y(p-1)(q-1)=8 • Seae=11(unenteroprimomayorqueambospyq) • Entoncesd*11=1modulo8portantod=3puestoque 33mod8=1 • SieltextoplanoPfueraelentero13 • EltextocifradoseríaC=P^emodulor • C=13^11modulo15=1,792,160,394,037mod15=7 • EltextoplanooriginalPsepuedeobtenerhaciendo: • P=C^dmodr=7^3mod15=343mod15=13 FacilidadesdeSQL • SQLsolosoportacontroldeaccesodiscrecional • Dosmecanismosindependientesestán involucrados – Mecanismodevistas – Subsistemadeprivilegios CreateviewLSasselectsname,status,city FromSwherecity=‘London’ GrantselectonLSToDan FacilidadesdeSQL • Grant<listadeprivilegios>on<objeto>to<user> [withgrantopIon] • Revoke<listadeprivilegios>on<objeto>from <usuario>[cascade] • LaopcióncascadeocasionacuandoselereIraun privilegioaunusuarioselereIreeseprivilegioa losusuariosquedichousuariolesconcedió • Borrarunatablaocasionalaeliminación automáIcadetodoslosprivilegiosasociadosa dichatabla