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