Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
BasesdeDatos
JoséAntonioCamarenaIbarrola
PANORAMAGENERAL– Introducción– ¿QueesunsistemadeBasedeDatos?
• Datos• Hardware• SoGware• Usuarios
– ¿QuéesunaBasedeDatos?• DatosPersistentes• EnIdadesyVínculos• Propiedades• DatosyModelosdeDatos
¿PorqueunaBasedeDatos?• AdministracióndeDatosyAdministracióndeBasesdeDatos• BeneficiosdelenfoquedeBasedeDatos
– LaindependenciadelosDatos– LosSistemasRelacionalesyotrosSistemas
ModelosdeDatos• Introducción• LostresnivelesdelaarquitecturadelossistemasdeBasesdeDatos.
• ElNivelExterno• ElNivelConceptual.• ElNivelInterno• Transformaciones.• ElAdministradordeBasedeDatos• ElSistemadeAdministracióndeBasedeDatos• ElAdministradordeComunicacionesdeDatos• ArquitecturaCliente–Servidor• ElProcesamientoDistribuido
LALOGICACOMOUNMODELODEDATOS
• IntroducciónalasBasesdeDatosRelacionales• Unamiradainformalalmodelorelacional• RelacionesyVariablesdeRelación• QuesignificanlasRelaciones• InformacióndeDescriptores• VariablesdeRelaciónBaseyVistas• Transacciones• BasedeDatosEjemplo
LENGUAJESDECONSULTARELACIONALES
• 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ÑOPARABASESDEDATOSRELACIONALES
• 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
PROTECCIONDELABASEDEDATOSFRENTEAUSOSINDEBIDOS
• Introducción• ControldeAccesoDiscrecional
– ModificacióndelaPeIción– RegistrosdeAuditoria
• ControldeAccesoObligatorio– SeguridaddemúlIplesniveles
• CifradodeDatos– ElEstándardeCifradodeDatos– CifradodeClavePública
• PropiedadesdeSQL– LasVistasylaSeguidad– GRANTyREVOKE
Introducción • Considereunaaerolinea,llevaIempoalmacenandodatosacercade:• Pasajeros• Vuelos• Aeronaves• Personal
– Laaerolinearequiereexplotaresainformaciónparacontestarpreguntascomo:• ¿Quépasajerosreservaronasientoenelvuelo2345?• ¿Quétripulaciónseasignaráalvuelo2345?• ¿Cuandoselediómantenimientoalaaeronavequese
uIlizaráenelvuelo2345?
¿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
Componentesdeunsistemadebasededatos
• Datos• Integrados.Almacenadosenunaoenvariascomputadoras• ComparIdos.Accesadosporunsolousuariooporvarios
simultaneamente• Hardware
• Volúmenesdealmacenamiento,Iposdeprocesadores,memoria• SoGware
• EntrelabasededatosmsicaylosusuariosexisteunsoGwaredenominado“SistemadeadministracióndelaBasedeDatos”queprotejealosusuariosdelosdetallesdealmacenamientodelosdatosysumanipulaciónabajonivel
• Usuarios• Usuarioprogramador• Usuariofinal• UsuarioAdministradordelaBasededatos
¿QuéesunaBasedeDatos?
• UnacoleccióndedatospersistentesuIlizadosporlasaplicacionesdeunaempresa(AnIntroducIontoDatabaseSystemsC.J.Date)
• Datosalmacenadosdeunamaneramasomenospermanentementeenunacomputadora(PrinciplesofDatabaseSystemsJeffreyUllman)
DatosPersistentes
• Selesdenominadatospersistentesaaquellosdatosnoemmeros,losdatosemmerospuedenser:– Datosdeentradaaúnnovalidados– Datosdesalidanoalmacenadosperoderivadosdelosdatospersistentes
– Engeneralinformacióndenaturalezatransitoria(Ejdecontrol)
EnIdadesyRelaciones(oVínculos)
Propiedades
• LasenIdadesIenenpropiedades,porejemplo:
• LosautomóvilesIenen:Marca,modelo,etc• LosempleadosIenenedad,domicilio,nombre
• LaspropiedadespuedensercomplejasodeIpossimplescomofechas,numérica,texto
DatosyModelosdeDatos
¿PorquéunaBasedeDatos?
• Espacio(Nohaynecesidaddevoluminososarchivosdepapel)
• Rapidezalbuscarinformación• SinerrorporfaIgaportrabajotedioso• Datosactualizadosalmomento• Controlcentralizadodelainformación
AdministracióndeDatosyAdministracióndeBasesdeDatos
• EladministradordeDatos(DA)eslapersonaresponsabledelosdatos,enIendelosdatosylasnecesidadesdelaempresa.DecidequedatosdebenseralmacenadosyquepolíIcaseguirrespectoadichosdatos.Ejquiénpuedeaccederalosdatos.NormalmentenoIeneformacióndeIngenieroenSistemas
• ElAdministradordelabasededatos(DBA)eselIngenieroenSistemasencargadodeimplementarlasdecisionesdelDA.– CrealaBasedeDatoseimplementacontrolesqueasegurenlapolíIcadelDArespectoalosdatos
– Esresponsabledequeelsistemaopereconundesempeñoadecuado
BeneficiosdelenfoquedeBasedeDatos
• Sereducelaredundancia• Seevitalainconsistencia• Secompartenlosdatos• Serefuerzanlosestandares(Entreempresas)• Sepuedenaplicarrestriccionesdeseguridad• Sepuedemantenerlaintegridaddelosdatos• Sepuedenbalancearconflictosderequerimientos
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
IndependencialógicadelosDatos
• Lasaplicacionesnodebenmodificarseporqueelesquemaconceptualsemodifiqueamenosquelamodificaciónimpliqueeliminacióndeinformación.
• LasvistasimplementanunIpodeindependencialógicadedatos.
• EjsupongaqueaunaaerolinealesolicitaninformaciónrelaIvaalasemisionescontaminantesdesusaeronaves
LosSistemasRelacionalesyotrosSistemas
• El“Modelorelacional”eseldesarrollomasimportanteenlahistoriadelasbasesdedatos
• PracIcamentetodoslosproductosdebasesdedatosactualmentesebasanenelenfoquerelacional
• Enunsistemarelacional:– Losdatossealmacenanen“tablas”– LosoperadoresqueseuIlizanconlastablasproducenasuveztablas
Otrossistemas
• SistemasJerárquicos.Enestossistemaslosdatosserepresentanmedianteárboles.Losoperadoresrecibenapuntadoresyregresanapuntadoresaárbolesoasubárboles.EjSistemaIMSdeIBM
• SistemasderedtambiénllamadosSistemasCODASYL(COnferenceonDAtaSYstemsLanguage)osistemasDBTG(DataBaseTaskGroup).ElmejorejemploeselsistemaIDMSdeComputerAssociatesInternaIonalInc.
ModelosdeDatos• Introducción(DellibrodeJeffreyUllman)
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � �� � � � � � � � � � � � � � �� � � � �� � � � � � � � � � �� � � � � �� � � � � � � � � � � � �� � � � � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � � � � �� � � � � � � � � � � � � �� � � � � � � � � �� � � � � � � � � � � � � � � �� � � � � � � �� � � � � � � � � � � � �� � � � � � � � � � � � � �� � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � �� � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �
LostresnivelesdelaarquitecturadelossistemasdeBasesdeDatos.
• Elnivelinterno.Concierneaestenivellamaneraenquelosdatossonalmacenadosmsicamente
• Elnivelexterno.Concierneaestenivellamaneraenquelosdatossonvistosporlosusuariosindividuales.
• Elnivelconceptual.ConcierneaestenivellamaneraenquelosdatossonvistosporlosusuariosdemaneracolecIva.
• Existenvariasvistasexternasperosolounavistaconceptual.
ArquitecturadelSistema(LibrodeC.J.Date)
Elnivelexterno• ConcierneaestenivellamaneracomolosdatossonvistosporlosIposdeusuariosindividuales
• Unusuarioindividualpuedeserfinaloprogramador• ParaunIpodeusuarioindividualsedefineuna“vistaexterna”tambiénllamadasubesquemao“esquemaexterno”
• ElDSL(DataSubLanguage)esunsublenguajeparainteractuarconlosobjetosdelabasededatos.Incluyeunsublenguajedemanipulacióndedatos(DML)yunsublenguajededefinicióndedatos(DDL)
• UnexitosoDSLqueessoportadoporlossistemasrelacionaleseselSQL(StructuredQueryLanguage)
• EnelcasodelosusuariosprogramadoreselDSLestáembebidoenunlenguajedepropósitogeneral
Elnivelconceptual
• La“vistaconceptual”oesquemaconceptualesunmodelodetodalainformacióndelabasededatosynosolodelapartequeusuariosindividualespueden“ver”
• Elesquemaconceptualesunaabstraccióndelabasededatosmsicaobienlabasededatosmsicaesunaimplementacióndelesquemaconceptual.
• ParaimplementarelesquemaconceptualseuIlizaelDDLyotrosublenguajedelDSLdenominadoDCL(DataControlLanguage)
Elnivelinterno
• La“vistainterna”oesquemainternoesunarepresentacióndebajoniveldelabasededatosmsica
• Notanbajocomoparaconsiderardetallescomocilindrosopistas
• ELesquemainternosedefinemedianteotrosublenguajedenominadoDDLinterno.
Transformaciones
• Unmapeodelnivelconceptualalnivelinternodefinelacorrespondenciaentreelesquemaconceptualylabasededatosmsica.
• Siserealizauncambioenlaestructuradelabasededatosmsica,elmapeoconceptual/internodebemodificarsedemaneraqueelesquemaconceptualpermanezcaintancto
• UnmapeodelnivelconceptualalnivelexternodefinelacorrespondenciaentrecadaparIcularvistaexterna(subesquema)yelesquemaconceptual.Porejemplo,losIposdeloscampospuedencambiarolosnombresdeestosperoelmapeopermitequeestoscambiosseantransparentesalnivelexterno.
ElAdministradordeBasedeDatos
• Defineelesquemaconceptual• Defineelesquemainterno• Laboresdeconsultoría• Establececontrolesdeseguridad• Establececontrolesdeintegridad• Estableceprocedimientosderespaldosyrecuperación
• Monitoreaeldesempeñoyrealizacambiosala“sintonizacióndelabasededatos”
ElSistemadeAdministracióndeBasedeDatos
1. Unusuariorequiereaccesarlosdatosmedianteunsublenguaje(Ej.SQL)
2. ELDBMSinterceptalasolicitudylaanaliza3. ElDBMSinspeccionaelesquemaexternodeese
usuario,sucorrespondientemapeoexterno/conceptual,elmapeoconceptual/internoyladefinicióndelaestructuradelalmacenamientomsico
4. ElDBMSrealizalasoperacionesnecesariasalabasededatos
ElSistemadeAdministracióndeBasedeDatos
• AdicionalmenteelDBMSdebemonitorearlosrequerimientosdelosusuariosyrechazarlosintentosdeviolarlaseguridady/olaintegridaddeacuerdoalodefinidoporelDBA
• UncomponentedelDBMSdenominadomanejadordetransaccionesproveecontrolparapermiIrrecuperacióndefallasasícomomanejodelaconcurrencia
• ElDBMSmanIeneelDiccionariodedatos• ELDBMSproveéfuncionesquepermitenalDBAadministrareldesempeñodelsistema
ElAdministradordeComunicacionesdeDatos
• LassolicitudesdeununusuariodelabasededatossontransmiIdasdelaterminal(posiblementeremota)delusuarioaalgunaaplicaciónydeahíalDBMSenlaformademensajes
• LasrespuestasdelDBMSalaaplicaciónyluegoalusuariotambiénviajanenmensajes.
• Dichosmensajessetransmitenbajolasupervisióndeunsistemadenominado“Administradordecomunicacionesdedatos”oDCmanager
• ElDCmanagernoformapartedelDBMSperotrabajaenharmoníaconelDBMS
ArquitecturaCliente–Servidor
• Unsistemadebasededatossepuedevisualizarcomoconsistentededospartes– ServidoroBackend,esbásicamenteelDBMS– ClientesoFrontends,sonlasaplicacionesquefuncionanenlaúlImacapa.
• Programasdesarrolladosporelusuario• ProgramasprovistosporelmismodesarrolladordelDBMSoporuntercero.(herramientasCASE)
– Reporteadores(CrystalReportsdeSeagate,SQLReportsdeOracle)
– Compiladores(ProC,SQLFormsdeOracle)
UIlerias
• ProgramasdesarrolladosparaayudaralDBAensusdiferentesfunciones– Cargadores(EjSQL-loader)– Analizadores– Reorganizadores(Defragmentadores)– Herramientasderespaldo(EjImport-Export)
ElProcesamientoDistribuido
• Elprocesamientoparalelosepuedeimplementardevariasmaneras– Programasclientescorriendoendiferentescomputadorasyelservidorcorriendoenunacomputadoracentral
– Unareddecomputadorasenlasquecadacomputadoraesalavezclienteyservidor(Basededatosdistribuida)
– ServidormulIprocesador
IntroducciónalasBasesdeDatosRelacionales
• Aspectosdelmodelorelacional– Aspectoestructural.Losdatossepresentanalusuariocomotablas
– AspectoIntegridad.LastablassaIsfacenciertasrestriccionesdeintegridad
– AspectomanipulaIvo.LosoperadoresqueseuIlizanparamanipularlastablasregresanasuveztablas.
EjemplosdeoperadoresRelacionales
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
Unamiradainformalalmodelorelacional• Aspectosdeintegridaddebasesdedatos
– Sepuedenestablecerrangosdevaloresvalidosparaciertoscampos
– LastablaspuedentenercamposqueconsItuyenclavesprimarias
– LastablaspuedentenerllavesforáneasquedebenexisIrenotrastablascomollavesprimarias
– Sepuedendefinirrestriccionesmascomplejascondisparadores
Unamiradainformalalmodelorelacional• ElmodelorelacionalIene5componentes
1. UnconjuntodeIpossimplesincluyendoelIpobooleano
2. UngeneradordeIposderelaciones3. FacilidadesparadefinirvariablesdelIpode
relación(alosqueserefiereelpuntoanterior)4. Unaoperacióndeasignaciónparaasignar
valoresadichasvariablesrelación5. Unacoleccióndeoperadoresdelalgebra
relacional
RelacionesyVariablesdeRelación• RelacionessoneltérminomatemáIcopara
referirseaunatabla• Informalmentetablaessinónimoderelación• Elmodelorelacionalsebasaenteoríadeconjuntosylógicadepredicados
• Elmodelorelacionalfueen1970porE.F.Codd,unmatemáIcotrabajandoparaIBMquequizoinyectarrigoryprincipiosmatemáIcossólidosalcampodelasbasesdedatos
RelacionesyVariablesdeRelación
• EnelmodelorelacionalnoseuIlizaeltérminoregistro,ensulugarseusaeldetuplaparareferirseaunrenglóndeunatabla
• EnlugardeltérminocamposeuIlizaeldeatributoparareferirseaunacolumnadeunatabla
RelacionesyVariablesdeRelación
Conceptualmente,elvalorrelaciónanteriordelavariablerelaciónEMPhasidoreemplazadoenbloqueporunvalorrelacióncompletamentenuevo.Paraevitarconfusióncuandodigamosrelaciónloquequeremosdeciresunvalorrelaciónynounavariablerelación(relvar)
QuésignificanlasRelaciones
• LascolumnasdelastablasIenenIpos• TalesIpossondominios• LosusuariospuedendefinirsuspropiosIpos,porejunnúmerodeplacaIeneletrasynumeros
• Asociadaaunarelaciónhayunpredicado,esdecirunafunciónbooleanaquerecibeunconjuntodeparámetros(queinstancianalpredicado)
• EjElempleadoEMP#sellamaENAME,trabajaeneldepartamentoDEPT#yganaSALARYdesueldo.
• Elpredicadoesverdaderocuandoseinstanciaconvaloresdelatabla
QuésignificanlasRelaciones
• LosIpossonlosconjuntosdecosasdelasquepodemoshacerafirmaciones
• Lasrelacionessonlosconjuntosdecosasquedecimos
• LosIpossonalasrelacionesloquelossujetossonalasoraciones
QuésignificanlasRelaciones
• Tiposyrelacionessonambosnecesarios,sinIposnotenemosalgoacercadequedecir,sinrelacionesnotenemosalgoquedecir
• Tiposyrelacionessonsuficientes.Nonecesitamosnadamasentérminosdelógicasuficiente
• CadarelaciónIeneunpredicadoasociado,inclusoaquellasquesederivandeotrasmedianteoperacionescomolasjuntas
• LasvariablesrelacióntambiénIenespredicadosasociados.
InformacióndeDescriptores• ElCATALOGO,tambiénllamado“Diccionariodedatos”,“Informacióndedescriptores”osimplemente“metadatos”conIenelainformacióndeobjetosdelabasededatosydelsistemamismo.
• Indices,tablas,restricciones,usuarios,permisos,informacióndedesempeñodelabasededatos,etc
InformacióndeDescriptores
VariablesdeRelaciónBaseyVistas
• Lasvariablesderelaciónquecorrespondenatablasexistentesenlabasededatossonllamadas“Variablesderelaciónbase”obaserelvarsyasusvalores“Relacionesbase”.
• DeesamaneralasdiferenciamosdelasvariablesderelaciónqueseobIenenmediantealgunaexpresiónrelacional(usandooperadores)
• Lasvariablesderelaciónbasetambiensonconocidascomo“variablesderelaciónreales”orealrelvars
VariablesdeRelaciónBaseyVistas• Lossistemasrelacionalesdebenproveermediosparacrearlasvariablesderelaciónbase
• EnSQL:CreatetableEMP…;• Lossistemasrelacionalessoportanotraclasedevariablederelaciónllamadaconnombrefijo,sellamanVISTASysuvalorenuninstantedadoeseldeunarelaciónderivada
• EnSQL:CreateviewTOPEMPasselect*fromEMPwheresalary>30000;
• Cuandoestasentenciaseejecuta,ladefinicióndelavistasimplementesealmacena,perolaexpresiónasociadanoseevalua.
• Unavezcreadalavista,elusuariolapuedeusarcomosifueraunavariablederelaciónbase.
Transacciones• Unatransacciónesunaunidadlógicadetrabajoquenormalmenteinvolucravariasoperacionesdebasededatos
Transacciones• ElDBMSgaranIzaquelastransaccionesseanatómicas
• UnavezqueseejecutaCOMMITlatransacciónsehacepersistente
• ROLLBACK• Lastransaccionessonindependienteunasdeotras
• Lastransaccionessonserializables
BasedeDatosEjemplo• Labasededatosdeproveedoresypartes
IntroducciónaSQL• SQLesellenguajeestandardelossistemasrelacionales
• DesarrolladoenIBMen1970• SQLusaeltérminotabalparareferirsetantoarelacionescomoavariablesrelaciónyusalostérminosrenglónycolumnaparareferirsealastuplasyalosatributosrespecIvamente
• SQLnoesunlenguajerelacionalperfectoperoesunestándaryessoportadoporprácIcamentetodoslossistemas
Generalidades• SQLincluyetantounDMLcomounDDL
IntroducciónaSQL
IntroducciónaSQL
EsquemadeInformación• Elesquemadeinformacióno“Catalogo”consistedeladescripcióndeunabasededatosqueperteneceaunusuarioindividual
• Puedehabercualquiernúmerodecatálogos,unoporcadabasededatos,cadacatalogoincluyecualquiernúmerodesubesquemas.
• CadacatalogorequiereunysolounesquemallamadoINFORMATION_SCHEMAydesdelaperspecIvadelusuarioeseseesquemaelquedesempeñalafunciónnormaldelcatalogo
• ElEsquemadeinformaciónconsistedeunaseriedetablasconlainformaciónprecisadetodoslossubesquemasdelcatalogoencuesIón
EsquemadeInformación
• Laimplementaciónvariadeunproductoaotroperoesrequeridoquesoportealgúnesquemadedefiniciónyquesoportevistasdedichoesquemadedefinición
Vistas
EquivalenteasusItuirladefinicióndelavistaenlaconsulta
Massimplesinlavistaenestecaso
SQLIncrustado– LassentenciasdeSQLsepuedenejecutardemaneradirecta,interacIvamentedesdeunaterminalobiencomopartedeunprograma(Java,C,etc..)dondedichassentenciaspuedenestarincrustadas(oempotradas)
– Principiodelmododual:Cualquiersentenciaquesepuedaejecutardirectamentesepuedeempotrarenunprograma(nosepuededecirlomismoalreves)
SQLIncrustado• LassentenciasdeSQLempotradasIenenelprefijoEXECSQL
• AlgunassentenciasprecedidasporEXECSQLnosonrealmenteejecutablessinopuramentedeclaraIvasparadeclararvariables,cursores,etc
• LassentenciasSQLpuedenincluirreferenciasavariablesdelprogramaanfitrión(DeclaradasdespuésdeEXECSQLBEGINDECLARESECTION),aestasvariablesselesponeelprefijo“:”paradiferenciarlasdelosnombresdecolumnasdetablas
SQLIncrustado
Operacionesquenorequierencursores
SQLIncrustado• Cuandounaconsultaregresaunnúmeroarbitrarioderenglonesenlugardesolouno,serequieredeunmecanismoparaaccesarlosrenglonesunoporuno
SQLDinámico
• ConSQLdinámico,lassentenciasdeSQLsepuedenconstruirenIempodeejecución
LosvaloresIenenTipo• UnIpoesalavezundominio,esdecirunconjuntodevalores,porejelIpoINTeselconjuntodelosnúmerosenteros
• CadavariablesedeclaraserdeunIpo• Cadaatributodecadavariablerelación(Relvar)esdeclaradoserdeunIpo
• LosoperadoressoncerradosrespectoalosIpos(conjuntos)alosqueseaplican
• EngenerallasexpresionesdevuelvenelIporelacionadoaloperadormasexternoinvolucrado
• Algunosoperadoressonpolimórficos
Tiposyrepresentaciones• ParaimplementarelmanejodeIposnecesitamosunmodelo,esdecir,unarepresentaciónmsica
• LadiferenciaentreunIpoysurepresentaciónmsicaradicaenelconceptodeindependenciadedatos
• LosIpossonescalaresono-escalares– UnIpono-escalaresunIpocuyosvaloresIenencomponentesalosquesepuedeaccederdirectamente.EnestesenIdo,losIposdelasvariablesrelaciónsonno-escalarespuestoquesontuplas
– UnIpoescalaresunIpoatómicoyencapsulado,dehechoatómicoyencapsuladosonuIlizadoscomosinónimosdeescalar
RepresentacionesPosibles• LosIposescalaressonatómicosyencapsulados,enese
senIdoelusuarionopuedeaccederaloscomponentesdesurepresentaciónmsica
• UnaexcepcióndeIposescalaresdondeloscomponentesdeIposescalaressonvisiblesalusuarioloconsItuyenlas“representacionesposibles”(POSSREP)definidosen“TutorialD”,unlenguajerelacionalacadémico
• Lasrepresentacionesposiblesrequieren:– UnoperadorselectorparapermiIralusuarioelegirunodelasrepresentacionesposibles
– UnconjuntodeoperadoresTHE_,unoporcadacomponentedecadarepresentaciónposibleparaaccederalcomponenteencuesIón
RepresentacionesPosibles• EjemplosdeinvocacionesaselectoresyoperadoresTHE_
RepresentacionesPosibles• ElimplementadordelIpoderepresentacionesposibleshaceusodeciertosoperadoresaltamenteprotegidosqueelsistemaprovee
RepresentacionesPosibles• AlternaIvamente,ladefinicióndePOLARsepuedehacerdirectamente,esdecirsinhacerusodelselectorCARTESIAN
RepresentacionesPosibles• TambiénhayqueimplementarlosoperadoresTHE_
UnavezquesehadefinidoelIpoPOINTsepuedendefinirotrosIposquelouIlicen,Ej
Definicióndeoperadores• Enellenguajerelacional“tutorialD”ademásdedefinirIpossepuedendefinirlosoperadoresasociadosalosIposdefinidosporelusuario
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;
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;
Valoresderelación• Unvalorderelaciónosimplementerelaciónconsistedeunencabezadoydeuncuerpodonde:
• Elencabezadoesunatupladenombresdeatributosconlamismaaridadquelarelación
• Elcuerpoesunconjuntodetuplasconlamismaaridadqueelencabezadoyconvaloresquecorrespondenalosatributosespecificadosenelencabezado
Propiedadesdelasrelaciones
• Larelacionesestánnormalizadas.ElhechodequecadatupleIeneexáctamenteunvalorparacadaatributogaranIzaquecumpleconlaprimeraformalnormal(1NF)
• CadatuplaIeneunvalorporcadaatributo• Nohayordendeizqaderechadelosatributos• Nohayordendearribaabajodelastuplas• Nohaytuplasduplicadas
AtributosconValordeRelación• Podemosteneratributoscuyosvaloressonasuvezrelaciones(relacionesanidadas)
• Históricamenteestaposibilidadhasidoconsideradacomoinválida
Diferenciasentrerelacionesytablas• LosIposdelosatributosseomitenenlastablas• LascolumnasIenenunordenenlastablas• LosrenglonesdeunatablaIenenunorden• Unatablapuedetenerduplicados• LastablasIenealmenosunacolumnamientrasquelasrelacionespuedennotenerningúnatributo
• LastablaspuedentenerincluirvaloresnulosApesardedichasdiferencias,lastablassonaceptablescomorepresentaciónderelaciones
Variablesrelación• Tambiénllamadasrelvars(ovarrelsenespañol)sondedosIpos:“varrelsbase”(tambiénllamadasvarrelsreales)yvistas(tambienllamadasvarrelsvirtuales)
• Paradefinirunavarrelbaseusamoslasiguientesintaxis:
ActualizacióndeVarrels• ELmodelorelacionalincluyelaoperacióndeasignaciónparaasignarvalores,esdecir,paraactualizarvariablesderelación(relvarsovarrels)
• Lasintaxisen“TutorialD”yejemplos;
FacilidadesdeSQL• SibienSQLnosoportatuples,sisoportarows
• SibienSQLnosoportarelacionessísoportatablasaunqyeeltérminotablaenSQLsignificaalaveztablavalorytablavariable
BehaviorpuedeserCASCADEoRESTRICT,CASECADEeliminaràtablasdependientesYRESTRICTsoloeliminarálatablasiestanoestáenuso
Dependenciasfuncionales• Unadependenciafuncionalesunarelacióndemuchosaunodel
conjuntodeatributosaotroconjuntodeatributosdentrodeunaVarReldada.
• Porejemplohayunadependenciafuncionaldelconjuntodeatributos{S#,P#}alconjuntodeatributos{QTY},locualsignifica:– PorcadapardevalorescorrespondienteaS#yP#existesoloun
correspondientevalorparaelatributoQTY– DiferentesparejasdevaloresdeS#yP#puedentenerelmismovalor
correspondientedeQTY
Definicionesbásicas
• HayquedisInguirclaramenteentre:– a)ElvalordeunaVarRelenunmomentodado– b)ElconjuntodetodoslosposiblesvaloresquelaVarRelpuedetenerendiferentesmomentos
• UsaremoscomoejemplolaVarRelSCP
Dependenciafuncionalparaelcaso(a)Searunarelación,yXyYsubconjuntosarbitrariosdelconjuntodeatributosder.DecimosqueYesfuncionalmentedependientedeX(denotadox→y)siysolosicadaXvalorenrIeneasociadounvalorYenr,porejemplodelarelaciónSCPpodemosdecir:{S#}→{CITY}Alaparteizqlellamamosdeterminanteyaladerechadependiente,otrasdependenciasfuncionalesdelejemplo:
Dependenciafuncionalparaelcaso(b)SeaRunaVarRel,yXyYsubconjuntosarbitrariosdelconjuntodeatributosdeR.DecimosqueYesfuncionalmentedependientedeXoquexdeterminafuncionalmenteay(x→y)siysolosiencadaposiblevalorlegaldeR,cadavalorXIeneasociadounvalorY.EnotraspalabrassiemprequedostuplasconcuerdanensuvalorX,tambiénconcuerdanenuvalorY.porejemplodelarelaciónSCP:
ElcasobeselquemasnosinteresapuesnodependedelvalorquelaRelVarTieneenunmomentodadosinoqueesunadependenciaválidaparatodosLosvaloresposible
Dependenciasfuncionales
• ComosevioenelejemploelconjuntodedependenciasfuncionalesSpuedesergrande
• Loquequisiéramosesencontrarlamaneradereducirelconjuntodedependenciafuncionales
• LasdependenciasfuncionalesrepresentanciertasrestriccionesdeintegridadyqueremosqueelDBMSlasrefuerce
• EsdeseableencontrarunconjuntodedependenciasfuncionalesT,maspequeñoqueSyquetengalapropiedaddequecadadependenciafuncionalenSquedeimplicadaporlasdependenciasfuncionalesenT
Dependenciastrivialesynotriviales
• Undependenciaestrivialsiysolosielladoderechodeladependenciaesunsubconjuntodelladoizquierdo.Ej{S#,P#}→S#
• Unadependenciatrivialnopuedenocumplirse,deahíelnombre
• Lasquerealmentenosinteresansonlasdependenciasnotrivialespuessonlasquecorrespondenaverdaderasrestriccionesdeintegridad
Cerraduradeunconjuntodedependencias
• Unasdependenciaspuedenimplicarotras• EjlaDependencia{S#,P#}→{CITY,QTY}• Implicalassiguientes
– {S#,P#}→{CITY}– {S#,P#}→{QTY}
• SupongaqueseIenenlasDFsA→ByB→C• EntoncesportransiIvidadtendremosA→C• ElconjuntodetodaslasDFsimplicadasporunconjuntoSdeDFsseconocecomocerraduradeSysedenotaporS+
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
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)
Cerraduradeunconjuntodeatributos
• EnprincipiopodríamosencontrarS+aparIrdeSmedianteelalgoritmo:RecursívamenteapliquelosaxiomasdeArmstrongoelteoremadeunificaciónparaqueseproduzcannuevasDFshastaqueyanosepuedanproducirmas
• EsonoseríaeficienteninecesarioenrealidadpuesnonecesitamosenrealidaddeterminarS+
• EnlugardeesopodemosdeterminarunsubconjuntodeS+consistentedeDFsqueIenendelladoizquierdounconjuntoZdeatributoscuyacerraduraZ+consItuyeelconjuntodetodoslosatributosquesonfuncionalmentedependientes
AlgoritmoparadeterminarZ+
• ParadeterminarZ+,esdecir,lacerraduradeZbajounconjuntoSdeDFs
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}
Cerraduradeunconjuntodeatributos
• DadounconjuntoSdeDFs,X→YseinfieredeSsiysolosiYesunsubconjuntodeX+bajoS(CIERRE[X,S])
• DeesamanerapodemossabersialgunaFDX→YperteneceaS+sintenerquedeterminarS+
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+)
Ejemplo• ElsiguienteconjuntodeDFsesirreducIblemientrasquelossiguientes3noloson
ConjuntosdedependenciasIrreducibles
• PorcadaconjuntodeDFsSexistealmenosunconjuntodeDFsequivalentequeesirreducIble
• Porlaregladedescomposición,podemosasumirquecadaDFenSIeneunladoderechodeunsoloatributo
• ExaminamoscadaatributoAdelaparteizquierdadecadaDFfenS,SieliminarAdelladoizquierdodefnoIeneningúnefectoenS+,entoncesborramosAdelladoizqdef
• FinalmenteexaminamosparacadafenSsisueliminaciónalteraS+,sino,borramosfdeS
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:
Normalizaciónadicional• Comosedijoantes,elsolohechodealmacenarlainformaciónentablasproveeungradodenormalización,específicamentelaprimeraformanormalabreviada(1NF)
• ElobjeIvodelanormalizaciónadicionaleslaformalizacióndeideassimplescomo:“onefactinoneplace”,evitarredundancia.
• FormasNormales:1NF,2NF,3NF,BCNF,4FN,5FN
• Eldiseñadordeunabasededatosporlogeneralaspiraala3NF
LaDescomposiciónsinpérdidaylasDependenciasFuncionales
• Lanormalizaciónesunprocesoqueinvolucradescomponerrelacionesenvariasrelaciones,peroesteprocesodebeserreversible,esdecirdebeserunprocesodondenosepierdainformación
• Observeunadescomposiciónsinpérdida(a)yunaconpérdida(b)dondeyanopodemossabercualproveedorestárelacionadoconcualciudad
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}
TeoremadeHeath
• SeaR{A,B,C}unaVarReldondeA,ByCsonconjuntosdeatributos.SiRsaIsfacelaDFA→B,entoncesResigualalajuntadesusproyeccionesen{A,B}y{A,C}
• Ej.DelarelaciónSdelejemploanteriordigamosqueAesS#,BesSTATUSyCesCITY
Izquierda-reducibilidad
• DecimosqueunaDFesizquierda-irreducIblesisuparteizquierda“noesdemasiadogrande”,porejemplolaVarRelSCPsiguientesaIsfacelaDF{S#,P#}→CITY
• SinembargoelatributoP#delladoizquierdoesredundanteparapropósitosdedependenciafuncional,encambioDFS#→CITYquetambiénsaIsfaceSCPesIzquierda-irreducIble
DiagramasDF• SeaRunaVarReleIunconjuntoirreducIblededeDFsqueR
saIsface• EnundiagramaDFunadelascosasúIlesesquelasflechas
salendeunconjuntodeatributosquefuncionancomollavescandidatasyquecasisiempreseeligencomollavesprimarias
• Escuandohayflechasquenosalendellavescandidatasquelosproblemascomienzan
• Porlotanto,losprocedimientosdenormalizaciónsecaracterizanporeliminarflechasquenosalendellavescandidatas
UnaDFesunanociónsemánIca
• LasFDssonenrealidadIposespecialesderestriccionesdeintegridad,sonpartedelpredicadoquedefineunarelación,sonpartedelprocesodeentendimientodeloquelosdatossignifican,porEjlaDFS#→CITYsignificaquecadaproveedorestáubicadoenunaciudad(esoesunarestricción!)
• ComoespartedelasemánIcadelabasededatoslarestriccióndebeserobservada
• Paraasegurarsedequeseaobservadasedebeespecificarenladefinicióndelabasededatos
• LamaneradeespecificarlarestricciónesdeclararlaDF
Primera,SegundayTerceraFormasNormales
• Unamuyinformaldefiniciónpreliminardela3NF:UnaVarRelestáenla3NFsilosatributosquenoformanpartedelallaveprimariason:– Mutuamenteindependientes– IrreducIblementedependientesdelallaveprimaria
• Unadefiniciónaunmasinformaldela3NF:UnaVarRelestáenla3NFsicadatupleconsistedeunallaveprimariaqueidenIficaaalgunaenIdadjuntoconceroomasatributosmutuamenteindependientesquedescribenadichaenIdad
1NF• UnaVarRelestáenla1NFsiysolosicadaatributodecadatuplaconIeneexáctamenteunvalor.
• ConestadefiniciónpodemosdecirquelasVarRelssiemprecumplenconla1NF
• SinembargocuandoseaseguraqueunaVarRelestáenla1NFseimplicaquenocumpleniconla2NFniconla3NF
• EjsupongaquelaVarRelFIRSTIeneladependenciaCITY->STATUS
Dificultadesocasionadasporla1NF• Redundancia• “Anomalías”
– DeInsert:Nopodemosinsertarlainformación(EjCITY)relacionadaaunproveedorhastaquenosvendaalgo
– DeDelete:Alborrar(porunacancelación)unacompraaunproveedorborramostambiénlainformacióndelproveedor(encasodequeeralaúnicacomprahechaaeseproveedor)
– DeUpdate:Siunproveedorsecambiadeciudad,tenemosquehacermuchoscambiosennuestraVarRelbajoelriesgodedejaralgunainconsistencia
2NF• UnaVarRelestáenla2NFsiysolosiestáenla1NFycadaatributoquenoformapartedelallaveprimariaesirreducIblementedependientedelallaveprimaria
• EstadefiniciónesválidaparaVarRelsconunaúnicallavecandidataqueeslallaveprimaria
• LosproblemasmencionadosenlaláminaanteriorsesolucionancambiandolaVarRelPRIMERAporlassiguientesdosVarRels:– SECOND{S#,STATUS,CITY}– SP{S#,P#,QTY}
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
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
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.
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.
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
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
EjemplomoIvacional• SupongaqueunaherramientaCADoCAMuIlizaunabasededatos
derectángulos.CadarectánguloindividualseidenIficapordosparejasdecoordenadas(x1,y1)y(x2,y2)quecorrespondenasuesqinf-izqylasup-derrespecIvamente.
• Considerelaconsulta:Obtenertodoslosrectángulosquesetraslapenconelrectángulodecoordenadas(0,0)y(1,1)
EjemplomoIvacional• Lasiguienteconsultaresuelveelproblemamuchomasrápidamente
• Lapreguntaes¿PodríaelsistemadebasededatoshaberopImizadolaconsultaporsisoloaparIrdelaversiónineficiente?
• ProblemascomoestemuestranqueproductosSQLclásicossoninadecuadosenciertosaspectospueslassolicitudessondimcilesdeexpresaryseejecutanconmaldesempeño
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
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
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
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)
IdenIdaddeObjetos• CadaobjetoIeneuniden3ficadorúnicooOID(objectid),los
objetosinmutables(Ejelentero42)seidenIficanasimismos.• LosobjetosmutablesIenendireccionesconceptualesqueusan
comosusOIDs.Lasdireccionesmsicasnosonaccesiblesparaelusuario.
• DosobjetospuedenseridénIcosentodossusatributosysinembargoserdosobjetosindependientes,esdecir,dosinstanciasdelamismaclasequeunoesunacopiadelotroperopodemossaberquesondosobjetosporqueIenendiferentesOIDs
• LasbasesdedatosrelacionalesuIlizanllaves(primariasy/oforáneas)controladasporelusuarioyprohibenelusodeapuntadoresesIloOIDsperorecomiendanelusodellavesproporcionadasporelsistemalascualesadiferenciadelosOIDssonvisiblesalusuarios
• ElusodeOIDsnocancelalanecesidaddellavesquedetodosmodosserequierenenelmundoreal
• OIDssonfuentedecríIcasllamandolealsistemaorientadoaobjetos“Codasylrecalentado”
Ejemplo• SupongaquedefinimoslaclaseDEPTylaclaseEMP,yquelasclasesMONEYyJOByaseteníandefinidasademásdelaclaseCHARqueformapartedelsistema
Ejemplo• AunquelaclaseEMPnotengaunavariablequeseaunOID
deDEPT(paraquefuncionaracomollaveforánea)síseríaposibleaveriguarcadaempleadoaquédepartamentoestáasignado
• Ladefinicióndecadaclaseincluyeladefinicióndesusmétodos
Ejemplo• Enunmasaltonivelde
abstraccióncomounajerarquíadecontenedores
• EstediagramanoaclaraquelosobjetossemanejanconOIDs(apuntadores)
• OtraconfusiónqueestediagramasugiereesquepareceríaqueSmithIenedostrabajos
• ExponeralasBDsorientadasaobjetoscomojerarquíaslashaceobjetodelascríIcasnormalmentehechasalmodelojerárquico
• Perolosobjetosnosonjerarquíassinotuplescuyoscomponentespuedenserobjetosmutables,objetosinmutablesoconjuntos,listas,arreglos,…
Ejemplodelacunahastalatumba• LaBasededatosdecursosdecapacitaciónparaempleadosconIeneinformaciónacercadelaofertadecursos,quienesseinscribenalcursoyquiénloimparte
Laversiónparaunabasededatosrelacionalsería
Definicióndedatos• OPALesunDDLyDMLbasadoenSmalltalkhechopor
GemStoneSystemsInc.• LasdefinicionesenOPALparalaclaseEMPsería
EMPseráentoncesunasubclasedelaclasegenéricaOBJECTTodaslasvariablessoprivadas,esdecirsolopuedenseraccedidasPorlosmétodosdelaclase,comoGET_EMPySET_EMP:
Definicióndedatos• LadefinicióndelaclaseCOURSE
LavariableprivadadeinstanciaOFFERINGScontendráelOIDdelaclaseOSET(definidamasadelante)puestoqueseestámodelandolarelaciónCOURSE/OFFERINGScomounajerarquíadecontenedoresenlaquelasofertasdecursos(OFFERINGS)estánconceptualmentecontenidasdentrodelcursocorrespondiente.
LadefinicióndelaclaseOFFERINGyENROLLMENT
• ENROLLMENTScontendráelOIDdeunobjetodelaclaseNSETpuesOFFERING“contendrá”todoslosenrolamientos(inscripciones)quehaganlosempleadosparalaoferta(offering)decursoencuesIón,también“contendrá”elconjuntodemaestrosqueparIciparánendichaofertadecurso
• LavariabledeinstanciaEMPcontendráelOIDdeunobjetodelaclaseEMP.SeestáusandounajerarquíadecontenedoresperoconuntratamientodisIntopueslarelaciónempleados-ofertasesdemuchosamuchos
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:
Poblandolabasededatos• Paracomenzaraagregarempleadosprimerodebemosdecrearun
objetodelaclaseESETpuestoquenodebemosolvidarquevamosanecesitarcoleccionarsusOIDs
• OID_OF_SET_OF_ALL_EMPS:=ESETNEW.• CadavezquecreemosunobjetodelaclaseEMPdebemosagregar
suOIDalconjuntoESET,definimosunmétododelaclaseESETparahacereso
• EnOPALlosmétodosnoIenennombre,usan“firmas”paradecidircualmétodosedebeejecutar
Paraagregarunempleado:
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
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
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)
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
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)
OperacionesdeActualización• Enláminasanterioresyaseexplicócomohacerinsertar
registros(objetos)enlabasededatos• Lasoperacionesdeactualizaciónsehacendelamisma
maneraquelasderecuperaciónexceptoqueenlugardemétodosGET_seusanmétodosSET_
• Encuantoaoperacionesdeeliminación,cuandounobjetonopuedeseryareferenciadopuestodaslasreferenciashaciaelhansidoborradasOPALloeliminaautomáIcamentemedianteel“recolectordebasura”.
• PorEjparaeliminaralempleadoE001
Introducción
• Seguridadsignificaprotegeralosdatoscontrausuariosnoautorizados
• Integridadsignificaprotegeralosdatoscontrausuariosautorizados!
• Enamboscasoselsistemadebesabercualessonlasrestricciones,estasdebenserdeclaradas
Introducción
• Aspectosdelaseguridad:– LegalyéIco.QuienIenederechoalainformación?– ControlFísico.(Terminalesresguardadas?)– PolíIca.Quiéndecide?– Problemasoperacionales.Ejcadacuandoseexigequesecambieunapassword?
– ControlesdeHardware.ElservidorIenellaves(literalmente)?
– ControlesdelSistemaOperaIvo.– ControlesdelDBMS!
Introducción
• EnfoquesdelDBMS– Controldeaccesodiscrecional.LosusuariosIenendiferentesprivilegiosdeaccesoalosdiferentesobjetosdelabasededatos
– Controldeaccesomandatorio.CadaobjetodelabasededatosIeneunniveldeclasificaciónylosusuariosIenenunniveldeautoridad
Introducción
• LasdecisionesrelaIvasalaseguridaddebendarseaconoceralsistemayestassealmacenaneneldiccionariodedatos
• ElsubsistemadeseguridaddelDBMSeselencargadodeconcederoprohibirdeterminadaoperaciónendeterminadoobjetoporpartededeterminadousuario
• LosusuariosdebenautenIcarse.Passwords,disposiIvosbiométricos(HuelladacIlar,reIna,idenIficadordevoz)oTokens,tarjetas,etc
• Elsistemanormalmentesoportagruposdeusuariosoroles.
Controldeaccesodiscrecional• EsteeselsistemaquesoportanlamayoríadelosDBMS• Serequieredeunsublenguajeparadefinirlosprivilegios
(DCLenUllman)• EnunhipotéIcolenguajeconlasigsintaxisparadefinir
privilegioslasintaxisyunejemplo:
Controldeaccesodiscrecional• TambiénserequierepoderreIrarprivilegios• DROPAUTHORITY<authority_name>• Normalmentealeliminarunobjetoseeliminanlosprivilegiosasociadosael
• Paraverun“subconjuntoverIcal”:
• SiLSesunavistaqueseleccionaalosproveedoresdeLondres(LondonSupliers)entonceslossiguientessonprivilegiosparaun“subconjuntohorizontal”
ModificacióndelapeIción• LaUniversidadIngresdesarrollóunprotoIpodelenguajedeconsultadenominadoQUELdondeseadoptaunenfoqueinteresante
• CadapeIciónesmodificadaantesdesuejecucióndemaneraquenovioleningunarestriccióndeseguridad
• EjSupongaqueelusuarioUIenepermisopararevisarpartes(refacciones)almacenadasenLondressolamente.
• SupongaqueelusuarioUrealizalasiguientepeIción
• ElsistemaautomáIcamentemodificaestapeIciónquedando:
ModificacióndelapeIción• LasintaxisenQUELparadefinirpermisos
• Porejemplo
• APPENDyREPLACEeselequivalentedeINSERTyUPDATE
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
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.
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.
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
Encriptacióndedatos
• ParaprevenirlaintercepcióndeuncanaldecomunicaciónodelrobodeundiscoocopiadodearchivoslainformacióndeberíadealmacenarseytransmiIrseencriptada.
• Untextonoencriptadosedenomina“textoplano”yalencriptado“textocifrado”.
• Paraencriptaruntextoplanoserequieredelalgoritmodeencriptamientoydelallavedeencriptamiento
• Paradesencriptarloserequierentambiénambascosas• Noimportasielalgoritmodeencriptamientosehacepublicomientrasseprotejalallavedeencriptamiento
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
ElEstandardeencriptamientodedatos
• ElejemploanteriorfueunprocedimientoclásicodeSUSTITUCIONdondecadacarácterdeltextoplanofuesusItuidoporotrocarácter
• ElotroprocedimientoclásicodeencriptamientoeseldePERMUTACIÓNdondeloscaracteresdeltextoplanosonsimplementerearreglados
• NingunodeestosdosprocedimientosesparIcularmenteseguroperolosalgoritmosquecombinanambasestrategiasproveenunaltogradodeseguridad
• UnodeestosalgoritmoseselestandardeencriptamientodedatosoDES(DataEncrypIonEstándar)desarrolladoporIBMen1977
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
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)
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
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
FacilidadesdeSQL• SQLsolosoportacontroldeaccesodiscrecional• Dosmecanismosindependientesestáninvolucrados– Mecanismodevistas– Subsistemadeprivilegios
CreateviewLSasselectsname,status,cityFromSwherecity=‘London’GrantselectonLSToDan
FacilidadesdeSQL
• Grant<listadeprivilegios>on<objeto>to<user>[withgrantopIon]
• Revoke<listadeprivilegios>on<objeto>from<usuario>[cascade]
• LaopcióncascadeocasionacuandoselereIraunprivilegioaunusuarioselereIreeseprivilegioalosusuariosquedichousuariolesconcedió
• BorrarunatablaocasionalaeliminaciónautomáIcadetodoslosprivilegiosasociadosadichatabla