Download Presentacion para el Curso de Bases de Datos

Document related concepts

Normalización de bases de datos wikipedia , lookup

Modelo de base de datos wikipedia , lookup

Base de datos relacional wikipedia , lookup

Cálculo relacional basado en tuplas wikipedia , lookup

Modelo relacional wikipedia , lookup

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