bases de datosdep.fie.umich.mx/~camarena/basesdatos1.pdf · 2016-09-29 · un sublenguaje de...

163
Bases de Datos José Antonio Camarena Ibarrola

Upload: others

Post on 15-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

BasesdeDatos

JoséAntonioCamarenaIbarrola

Page 2: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

PANORAMAGENERAL–  Introducción–  ¿QueesunsistemadeBasedeDatos?

•  Datos•  Hardware•  SoGware•  Usuarios

–  ¿QuéesunaBasedeDatos?•  DatosPersistentes•  EnIdadesyVínculos•  Propiedades•  DatosyModelosdeDatos

¿PorqueunaBasedeDatos?•  AdministracióndeDatosyAdministracióndeBasesdeDatos•  BeneficiosdelenfoquedeBasedeDatos

–  LaindependenciadelosDatos–  LosSistemasRelacionalesyotrosSistemas

Page 3: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ModelosdeDatos•  Introducción•  LostresnivelesdelaarquitecturadelossistemasdeBasesdeDatos.

•  ElNivelExterno•  ElNivelConceptual.•  ElNivelInterno•  Transformaciones.•  ElAdministradordeBasedeDatos•  ElSistemadeAdministracióndeBasedeDatos•  ElAdministradordeComunicacionesdeDatos•  ArquitecturaCliente–Servidor•  ElProcesamientoDistribuido

Page 4: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

LALOGICACOMOUNMODELODEDATOS

•  IntroducciónalasBasesdeDatosRelacionales•  Unamiradainformalalmodelorelacional•  RelacionesyVariablesdeRelación•  QuesignificanlasRelaciones•  InformacióndeDescriptores•  VariablesdeRelaciónBaseyVistas•  Transacciones•  BasedeDatosEjemplo

Page 5: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

LENGUAJESDECONSULTARELACIONALES

•  IntroducciónaSQL•  Generalidades•  EsquemadeInformación•  Vistas•  SQLIncrustado

– ConsideracionesPrevias

Page 6: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ORGANIZACIÓNFÍSICADELOSDATOS•  Introducción•  Dominios

–  LosvaloresIenenTipo–  DefinicióndeTipos–  RepresentacionesPosibles–  DefinicióndeOperadores–  ConversióndeTipos–  Conclusiones

•  ValoresdeRelación–  ConsideracionesPrevias–  PropiedadesdelasRelaciones–  AtributosconValordeRelación–  LasRelacionesysuInterpretación

•  VariablesdeRelación–  DefinicióndevarrelBase–  Actualizacióndevarrels

•  PropiedadesdeSQL–  Dominios–  TablasBase

Page 7: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

TEORÍADEDISEÑOPARABASESDEDATOSRELACIONALES

•  DependenciasFuncionales•  DefinicionesBásicas•  DependenciasTrivialesyNoTriviales•  CierredeunConjuntodeDependencias•  CierredeunConjuntodeAtributos•  ConjuntosdedependenciasIrreducibles•  NormalizaciónAdicional

–  FormasNormales•  LaDescomposiciónsinPérdidaylasDependencias

Funcionales•  Primera,SegundayTerceraFormasNormales•  ConservacióndelaDependencia

Page 8: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

LENGUAJESPARABASESDEDATOSORIENTADASAOBJETOS

•  Introducción–  UnEjemplo

•  Objetos,Clases,MétodosyMensajes–  UnPanoramadelaTecnologíadeObjetos–  VariablesdeEjemplar–  IdenIdaddeObjetos

•  Ejemplo–  DefinicióndeDatos–  PoblacióndelaBasedeDatos–  OperacionesdeRecuperación–  OperacionesdeActualización

Page 9: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

PROTECCIONDELABASEDEDATOSFRENTEAUSOSINDEBIDOS

•  Introducción•  ControldeAccesoDiscrecional

–  ModificacióndelaPeIción–  RegistrosdeAuditoria

•  ControldeAccesoObligatorio–  SeguridaddemúlIplesniveles

•  CifradodeDatos–  ElEstándardeCifradodeDatos–  CifradodeClavePública

•  PropiedadesdeSQL–  LasVistasylaSeguidad–  GRANTyREVOKE

Page 10: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Introducción •  Considereunaaerolinea,llevaIempoalmacenandodatosacercade:•  Pasajeros•  Vuelos•  Aeronaves•  Personal

–  Laaerolinearequiereexplotaresainformaciónparacontestarpreguntascomo:•  ¿Quépasajerosreservaronasientoenelvuelo2345?•  ¿Quétripulaciónseasignaráalvuelo2345?•  ¿Cuandoselediómantenimientoalaaeronavequese

uIlizaráenelvuelo2345?

Page 11: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

¿Que es un sistema de Base de Datos?

•  ElsoGwarequepermiteaunaoamuchaspersonasusar

y/omanipularlosdatosesdenominado“SistemadeAdministracióndeBasesdeDatos”(DBMSporDatabaseManagementSystem)•  Permitequelosusuarios“vean”losdatosdemaneraabstracta

despreocupándosedecomoestossonalmacenados•  Seguridad•  Integridad•  Sincronización•  Recuperación

Page 12: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Componentesdeunsistemadebasededatos

•  Datos•  Integrados.Almacenadosenunaoenvariascomputadoras•  ComparIdos.Accesadosporunsolousuariooporvarios

simultaneamente•  Hardware

•  Volúmenesdealmacenamiento,Iposdeprocesadores,memoria•  SoGware

•  EntrelabasededatosmsicaylosusuariosexisteunsoGwaredenominado“SistemadeadministracióndelaBasedeDatos”queprotejealosusuariosdelosdetallesdealmacenamientodelosdatosysumanipulaciónabajonivel

•  Usuarios•  Usuarioprogramador•  Usuariofinal•  UsuarioAdministradordelaBasededatos

Page 13: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

¿QuéesunaBasedeDatos?

•  UnacoleccióndedatospersistentesuIlizadosporlasaplicacionesdeunaempresa(AnIntroducIontoDatabaseSystemsC.J.Date)

•  Datosalmacenadosdeunamaneramasomenospermanentementeenunacomputadora(PrinciplesofDatabaseSystemsJeffreyUllman)

Page 14: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

DatosPersistentes

•  Selesdenominadatospersistentesaaquellosdatosnoemmeros,losdatosemmerospuedenser:– Datosdeentradaaúnnovalidados– Datosdesalidanoalmacenadosperoderivadosdelosdatospersistentes

– Engeneralinformacióndenaturalezatransitoria(Ejdecontrol)

Page 15: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

EnIdadesyRelaciones(oVínculos)

Page 16: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Propiedades

•  LasenIdadesIenenpropiedades,porejemplo:

•  LosautomóvilesIenen:Marca,modelo,etc•  LosempleadosIenenedad,domicilio,nombre

•  LaspropiedadespuedensercomplejasodeIpossimplescomofechas,numérica,texto

Page 17: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

DatosyModelosdeDatos

Page 18: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

¿PorquéunaBasedeDatos?

•  Espacio(Nohaynecesidaddevoluminososarchivosdepapel)

•  Rapidezalbuscarinformación•  SinerrorporfaIgaportrabajotedioso•  Datosactualizadosalmomento•  Controlcentralizadodelainformación

Page 19: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

AdministracióndeDatosyAdministracióndeBasesdeDatos

•  EladministradordeDatos(DA)eslapersonaresponsabledelosdatos,enIendelosdatosylasnecesidadesdelaempresa.DecidequedatosdebenseralmacenadosyquepolíIcaseguirrespectoadichosdatos.Ejquiénpuedeaccederalosdatos.NormalmentenoIeneformacióndeIngenieroenSistemas

•  ElAdministradordelabasededatos(DBA)eselIngenieroenSistemasencargadodeimplementarlasdecisionesdelDA.–  CrealaBasedeDatoseimplementacontrolesqueasegurenlapolíIcadelDArespectoalosdatos

–  Esresponsabledequeelsistemaopereconundesempeñoadecuado

Page 20: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

BeneficiosdelenfoquedeBasedeDatos

•  Sereducelaredundancia•  Seevitalainconsistencia•  Secompartenlosdatos•  Serefuerzanlosestandares(Entreempresas)•  Sepuedenaplicarrestriccionesdeseguridad•  Sepuedemantenerlaintegridaddelosdatos•  Sepuedenbalancearconflictosderequerimientos

Page 21: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Independencia física de los Datos

•  Lasaplicacionesnodebenmodificarsesoloporquelaimplementacióndelesquemaconceptualporelesquemamsicohacambiado

•  Formadealmacenamientodelosdatosnuméricos(Entero,real,deprecisióndobleocomocadenas)

•  Códigosdecaracteres(ASCII,EBCDIC)•  Unidadesnuméricas(Pulgadas,cenImetros)•  Codificacióndelosdatos(2=Rojo,0=Negro,..)•  Cambioenlaestructuradelosregistros•  Cambioenlaestructuradelosarchivos

Page 22: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

IndependencialógicadelosDatos

•  Lasaplicacionesnodebenmodificarseporqueelesquemaconceptualsemodifiqueamenosquelamodificaciónimpliqueeliminacióndeinformación.

•  LasvistasimplementanunIpodeindependencialógicadedatos.

•  EjsupongaqueaunaaerolinealesolicitaninformaciónrelaIvaalasemisionescontaminantesdesusaeronaves

Page 23: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

LosSistemasRelacionalesyotrosSistemas

•  El“Modelorelacional”eseldesarrollomasimportanteenlahistoriadelasbasesdedatos

•  PracIcamentetodoslosproductosdebasesdedatosactualmentesebasanenelenfoquerelacional

•  Enunsistemarelacional:– Losdatossealmacenanen“tablas”– LosoperadoresqueseuIlizanconlastablasproducenasuveztablas

Page 24: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Otrossistemas

•  SistemasJerárquicos.Enestossistemaslosdatosserepresentanmedianteárboles.Losoperadoresrecibenapuntadoresyregresanapuntadoresaárbolesoasubárboles.EjSistemaIMSdeIBM

•  SistemasderedtambiénllamadosSistemasCODASYL(COnferenceonDAtaSYstemsLanguage)osistemasDBTG(DataBaseTaskGroup).ElmejorejemploeselsistemaIDMSdeComputerAssociatesInternaIonalInc.

Page 25: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ModelosdeDatos•  Introducción(DellibrodeJeffreyUllman)

� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � �� � � � � � � � � � � � � � �� � � � �� � � � � � � � � � �� � � � � �� � � � � � � � � � � � �� � � � � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � � � � �� � � � � � � � � � � � � �� � � � � � � � � �� � � � � � � � � � � � � � � �� � � � � � � �� � � � � � � � � � � � �� � � � � � � � � � � � � �� � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � �� � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �

Page 26: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

LostresnivelesdelaarquitecturadelossistemasdeBasesdeDatos.

•  Elnivelinterno.Concierneaestenivellamaneraenquelosdatossonalmacenadosmsicamente

•  Elnivelexterno.Concierneaestenivellamaneraenquelosdatossonvistosporlosusuariosindividuales.

•  Elnivelconceptual.ConcierneaestenivellamaneraenquelosdatossonvistosporlosusuariosdemaneracolecIva.

•  Existenvariasvistasexternasperosolounavistaconceptual.

Page 27: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ArquitecturadelSistema(LibrodeC.J.Date)

Page 28: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Elnivelexterno•  ConcierneaestenivellamaneracomolosdatossonvistosporlosIposdeusuariosindividuales

•  Unusuarioindividualpuedeserfinaloprogramador•  ParaunIpodeusuarioindividualsedefineuna“vistaexterna”tambiénllamadasubesquemao“esquemaexterno”

•  ElDSL(DataSubLanguage)esunsublenguajeparainteractuarconlosobjetosdelabasededatos.Incluyeunsublenguajedemanipulacióndedatos(DML)yunsublenguajededefinicióndedatos(DDL)

•  UnexitosoDSLqueessoportadoporlossistemasrelacionaleseselSQL(StructuredQueryLanguage)

•  EnelcasodelosusuariosprogramadoreselDSLestáembebidoenunlenguajedepropósitogeneral

Page 29: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Elnivelconceptual

•  La“vistaconceptual”oesquemaconceptualesunmodelodetodalainformacióndelabasededatosynosolodelapartequeusuariosindividualespueden“ver”

•  Elesquemaconceptualesunaabstraccióndelabasededatosmsicaobienlabasededatosmsicaesunaimplementacióndelesquemaconceptual.

•  ParaimplementarelesquemaconceptualseuIlizaelDDLyotrosublenguajedelDSLdenominadoDCL(DataControlLanguage)

Page 30: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Elnivelinterno

•  La“vistainterna”oesquemainternoesunarepresentacióndebajoniveldelabasededatosmsica

•  Notanbajocomoparaconsiderardetallescomocilindrosopistas

•  ELesquemainternosedefinemedianteotrosublenguajedenominadoDDLinterno.

Page 31: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Transformaciones

•  Unmapeodelnivelconceptualalnivelinternodefinelacorrespondenciaentreelesquemaconceptualylabasededatosmsica.

•  Siserealizauncambioenlaestructuradelabasededatosmsica,elmapeoconceptual/internodebemodificarsedemaneraqueelesquemaconceptualpermanezcaintancto

•  UnmapeodelnivelconceptualalnivelexternodefinelacorrespondenciaentrecadaparIcularvistaexterna(subesquema)yelesquemaconceptual.Porejemplo,losIposdeloscampospuedencambiarolosnombresdeestosperoelmapeopermitequeestoscambiosseantransparentesalnivelexterno.

Page 32: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ElAdministradordeBasedeDatos

•  Defineelesquemaconceptual•  Defineelesquemainterno•  Laboresdeconsultoría•  Establececontrolesdeseguridad•  Establececontrolesdeintegridad•  Estableceprocedimientosderespaldosyrecuperación

•  Monitoreaeldesempeñoyrealizacambiosala“sintonizacióndelabasededatos”

Page 33: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ElSistemadeAdministracióndeBasedeDatos

1.  Unusuariorequiereaccesarlosdatosmedianteunsublenguaje(Ej.SQL)

2.  ELDBMSinterceptalasolicitudylaanaliza3.  ElDBMSinspeccionaelesquemaexternodeese

usuario,sucorrespondientemapeoexterno/conceptual,elmapeoconceptual/internoyladefinicióndelaestructuradelalmacenamientomsico

4.  ElDBMSrealizalasoperacionesnecesariasalabasededatos

Page 34: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ElSistemadeAdministracióndeBasedeDatos

•  AdicionalmenteelDBMSdebemonitorearlosrequerimientosdelosusuariosyrechazarlosintentosdeviolarlaseguridady/olaintegridaddeacuerdoalodefinidoporelDBA

•  UncomponentedelDBMSdenominadomanejadordetransaccionesproveecontrolparapermiIrrecuperacióndefallasasícomomanejodelaconcurrencia

•  ElDBMSmanIeneelDiccionariodedatos•  ELDBMSproveéfuncionesquepermitenalDBAadministrareldesempeñodelsistema

Page 35: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ElAdministradordeComunicacionesdeDatos

•  LassolicitudesdeununusuariodelabasededatossontransmiIdasdelaterminal(posiblementeremota)delusuarioaalgunaaplicaciónydeahíalDBMSenlaformademensajes

•  LasrespuestasdelDBMSalaaplicaciónyluegoalusuariotambiénviajanenmensajes.

•  Dichosmensajessetransmitenbajolasupervisióndeunsistemadenominado“Administradordecomunicacionesdedatos”oDCmanager

•  ElDCmanagernoformapartedelDBMSperotrabajaenharmoníaconelDBMS

Page 36: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ArquitecturaCliente–Servidor

•  Unsistemadebasededatossepuedevisualizarcomoconsistentededospartes– ServidoroBackend,esbásicamenteelDBMS– ClientesoFrontends,sonlasaplicacionesquefuncionanenlaúlImacapa.

•  Programasdesarrolladosporelusuario•  ProgramasprovistosporelmismodesarrolladordelDBMSoporuntercero.(herramientasCASE)

–  Reporteadores(CrystalReportsdeSeagate,SQLReportsdeOracle)

–  Compiladores(ProC,SQLFormsdeOracle)

Page 37: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

UIlerias

•  ProgramasdesarrolladosparaayudaralDBAensusdiferentesfunciones– Cargadores(EjSQL-loader)– Analizadores– Reorganizadores(Defragmentadores)– Herramientasderespaldo(EjImport-Export)

Page 38: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ElProcesamientoDistribuido

•  Elprocesamientoparalelosepuedeimplementardevariasmaneras– Programasclientescorriendoendiferentescomputadorasyelservidorcorriendoenunacomputadoracentral

– Unareddecomputadorasenlasquecadacomputadoraesalavezclienteyservidor(Basededatosdistribuida)

– ServidormulIprocesador

Page 39: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

IntroducciónalasBasesdeDatosRelacionales

•  Aspectosdelmodelorelacional– Aspectoestructural.Losdatossepresentanalusuariocomotablas

– AspectoIntegridad.LastablassaIsfacenciertasrestriccionesdeintegridad

– AspectomanipulaIvo.LosoperadoresqueseuIlizanparamanipularlastablasregresanasuveztablas.

Page 40: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

EjemplosdeoperadoresRelacionales

Page 41: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

IntroducciónalasBasesdeDatosRelacionales•  Unsistemarelacionalrequierequelabasededatosseapercibidacomotablas

•  Lastablassonlaestructuralógicanolaestructuramsica

•  Elsistemaeslibredealmacenarinformacióndecualquiermanera,Ejarchivossecuenciales,Tablashash,árboles,etc

•  Lasbasesdedatosrelacionalessebasanenelprincipiodeinformación:Todalainformacióncontenidaenlabasededatosestárepresentadadeunaysolounamanera,encolumnasderenglonesdetablas.

•  HayunaconexiónentreelregistroD1delatablaDEPTyelregistroE1delatablaEMPperolaconexiónnoserepresentaporunapuntadorsinoporlapresenciadelcampoD1enelregistroE1delatablaEMP.Encambioensistemasjerárquicosudegrafos,laconexiónsedáporunapuntadorqueesvisiblealusuario

Page 42: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Unamiradainformalalmodelorelacional•  Aspectosdeintegridaddebasesdedatos

– Sepuedenestablecerrangosdevaloresvalidosparaciertoscampos

– LastablaspuedentenercamposqueconsItuyenclavesprimarias

– LastablaspuedentenerllavesforáneasquedebenexisIrenotrastablascomollavesprimarias

– Sepuedendefinirrestriccionesmascomplejascondisparadores

Page 43: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Unamiradainformalalmodelorelacional•  ElmodelorelacionalIene5componentes

1.  UnconjuntodeIpossimplesincluyendoelIpobooleano

2.  UngeneradordeIposderelaciones3.  FacilidadesparadefinirvariablesdelIpode

relación(alosqueserefiereelpuntoanterior)4.  Unaoperacióndeasignaciónparaasignar

valoresadichasvariablesrelación5.  Unacoleccióndeoperadoresdelalgebra

relacional

Page 44: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

RelacionesyVariablesdeRelación•  RelacionessoneltérminomatemáIcopara

referirseaunatabla•  Informalmentetablaessinónimoderelación•  Elmodelorelacionalsebasaenteoríadeconjuntosylógicadepredicados

•  Elmodelorelacionalfueen1970porE.F.Codd,unmatemáIcotrabajandoparaIBMquequizoinyectarrigoryprincipiosmatemáIcossólidosalcampodelasbasesdedatos

Page 45: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

RelacionesyVariablesdeRelación

•  EnelmodelorelacionalnoseuIlizaeltérminoregistro,ensulugarseusaeldetuplaparareferirseaunrenglóndeunatabla

•  EnlugardeltérminocamposeuIlizaeldeatributoparareferirseaunacolumnadeunatabla

Page 46: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

RelacionesyVariablesdeRelación

Conceptualmente,elvalorrelaciónanteriordelavariablerelaciónEMPhasidoreemplazadoenbloqueporunvalorrelacióncompletamentenuevo.Paraevitarconfusióncuandodigamosrelaciónloquequeremosdeciresunvalorrelaciónynounavariablerelación(relvar)

Page 47: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

QuésignificanlasRelaciones

•  LascolumnasdelastablasIenenIpos•  TalesIpossondominios•  LosusuariospuedendefinirsuspropiosIpos,porejunnúmerodeplacaIeneletrasynumeros

•  Asociadaaunarelaciónhayunpredicado,esdecirunafunciónbooleanaquerecibeunconjuntodeparámetros(queinstancianalpredicado)

•  EjElempleadoEMP#sellamaENAME,trabajaeneldepartamentoDEPT#yganaSALARYdesueldo.

•  Elpredicadoesverdaderocuandoseinstanciaconvaloresdelatabla

Page 48: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

QuésignificanlasRelaciones

•  LosIpossonlosconjuntosdecosasdelasquepodemoshacerafirmaciones

•  Lasrelacionessonlosconjuntosdecosasquedecimos

•  LosIpossonalasrelacionesloquelossujetossonalasoraciones

Page 49: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

QuésignificanlasRelaciones

•  Tiposyrelacionessonambosnecesarios,sinIposnotenemosalgoacercadequedecir,sinrelacionesnotenemosalgoquedecir

•  Tiposyrelacionessonsuficientes.Nonecesitamosnadamasentérminosdelógicasuficiente

•  CadarelaciónIeneunpredicadoasociado,inclusoaquellasquesederivandeotrasmedianteoperacionescomolasjuntas

•  LasvariablesrelacióntambiénIenespredicadosasociados.

Page 50: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

InformacióndeDescriptores•  ElCATALOGO,tambiénllamado“Diccionariodedatos”,“Informacióndedescriptores”osimplemente“metadatos”conIenelainformacióndeobjetosdelabasededatosydelsistemamismo.

•  Indices,tablas,restricciones,usuarios,permisos,informacióndedesempeñodelabasededatos,etc

Page 51: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

InformacióndeDescriptores

Page 52: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

VariablesdeRelaciónBaseyVistas

•  Lasvariablesderelaciónquecorrespondenatablasexistentesenlabasededatossonllamadas“Variablesderelaciónbase”obaserelvarsyasusvalores“Relacionesbase”.

•  DeesamaneralasdiferenciamosdelasvariablesderelaciónqueseobIenenmediantealgunaexpresiónrelacional(usandooperadores)

•  Lasvariablesderelaciónbasetambiensonconocidascomo“variablesderelaciónreales”orealrelvars

Page 53: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

VariablesdeRelaciónBaseyVistas•  Lossistemasrelacionalesdebenproveermediosparacrearlasvariablesderelaciónbase

•  EnSQL:CreatetableEMP…;•  Lossistemasrelacionalessoportanotraclasedevariablederelaciónllamadaconnombrefijo,sellamanVISTASysuvalorenuninstantedadoeseldeunarelaciónderivada

•  EnSQL:CreateviewTOPEMPasselect*fromEMPwheresalary>30000;

•  Cuandoestasentenciaseejecuta,ladefinicióndelavistasimplementesealmacena,perolaexpresiónasociadanoseevalua.

•  Unavezcreadalavista,elusuariolapuedeusarcomosifueraunavariablederelaciónbase.

Page 54: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Transacciones•  Unatransacciónesunaunidadlógicadetrabajoquenormalmenteinvolucravariasoperacionesdebasededatos

Page 55: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Transacciones•  ElDBMSgaranIzaquelastransaccionesseanatómicas

•  UnavezqueseejecutaCOMMITlatransacciónsehacepersistente

•  ROLLBACK•  Lastransaccionessonindependienteunasdeotras

•  Lastransaccionessonserializables

Page 56: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

BasedeDatosEjemplo•  Labasededatosdeproveedoresypartes

Page 57: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

IntroducciónaSQL•  SQLesellenguajeestandardelossistemasrelacionales

•  DesarrolladoenIBMen1970•  SQLusaeltérminotabalparareferirsetantoarelacionescomoavariablesrelaciónyusalostérminosrenglónycolumnaparareferirsealastuplasyalosatributosrespecIvamente

•  SQLnoesunlenguajerelacionalperfectoperoesunestándaryessoportadoporprácIcamentetodoslossistemas

Page 58: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Generalidades•  SQLincluyetantounDMLcomounDDL

Page 59: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

IntroducciónaSQL

Page 60: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

IntroducciónaSQL

Page 61: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

EsquemadeInformación•  Elesquemadeinformacióno“Catalogo”consistedeladescripcióndeunabasededatosqueperteneceaunusuarioindividual

•  Puedehabercualquiernúmerodecatálogos,unoporcadabasededatos,cadacatalogoincluyecualquiernúmerodesubesquemas.

•  CadacatalogorequiereunysolounesquemallamadoINFORMATION_SCHEMAydesdelaperspecIvadelusuarioeseseesquemaelquedesempeñalafunciónnormaldelcatalogo

•  ElEsquemadeinformaciónconsistedeunaseriedetablasconlainformaciónprecisadetodoslossubesquemasdelcatalogoencuesIón

Page 62: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

EsquemadeInformación

•  Laimplementaciónvariadeunproductoaotroperoesrequeridoquesoportealgúnesquemadedefiniciónyquesoportevistasdedichoesquemadedefinición

Page 63: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Vistas

EquivalenteasusItuirladefinicióndelavistaenlaconsulta

Massimplesinlavistaenestecaso

Page 64: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

SQLIncrustado– LassentenciasdeSQLsepuedenejecutardemaneradirecta,interacIvamentedesdeunaterminalobiencomopartedeunprograma(Java,C,etc..)dondedichassentenciaspuedenestarincrustadas(oempotradas)

– Principiodelmododual:Cualquiersentenciaquesepuedaejecutardirectamentesepuedeempotrarenunprograma(nosepuededecirlomismoalreves)

Page 65: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

SQLIncrustado•  LassentenciasdeSQLempotradasIenenelprefijoEXECSQL

•  AlgunassentenciasprecedidasporEXECSQLnosonrealmenteejecutablessinopuramentedeclaraIvasparadeclararvariables,cursores,etc

•  LassentenciasSQLpuedenincluirreferenciasavariablesdelprogramaanfitrión(DeclaradasdespuésdeEXECSQLBEGINDECLARESECTION),aestasvariablesselesponeelprefijo“:”paradiferenciarlasdelosnombresdecolumnasdetablas

Page 66: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

SQLIncrustado

Page 67: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Operacionesquenorequierencursores

Page 68: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

SQLIncrustado•  Cuandounaconsultaregresaunnúmeroarbitrarioderenglonesenlugardesolouno,serequieredeunmecanismoparaaccesarlosrenglonesunoporuno

Page 69: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

SQLDinámico

•  ConSQLdinámico,lassentenciasdeSQLsepuedenconstruirenIempodeejecución

Page 70: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

LosvaloresIenenTipo•  UnIpoesalavezundominio,esdecirunconjuntodevalores,porejelIpoINTeselconjuntodelosnúmerosenteros

•  CadavariablesedeclaraserdeunIpo•  Cadaatributodecadavariablerelación(Relvar)esdeclaradoserdeunIpo

•  LosoperadoressoncerradosrespectoalosIpos(conjuntos)alosqueseaplican

•  EngenerallasexpresionesdevuelvenelIporelacionadoaloperadormasexternoinvolucrado

•  Algunosoperadoressonpolimórficos

Page 71: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Tiposyrepresentaciones•  ParaimplementarelmanejodeIposnecesitamosunmodelo,esdecir,unarepresentaciónmsica

•  LadiferenciaentreunIpoysurepresentaciónmsicaradicaenelconceptodeindependenciadedatos

•  LosIpossonescalaresono-escalares– UnIpono-escalaresunIpocuyosvaloresIenencomponentesalosquesepuedeaccederdirectamente.EnestesenIdo,losIposdelasvariablesrelaciónsonno-escalarespuestoquesontuplas

– UnIpoescalaresunIpoatómicoyencapsulado,dehechoatómicoyencapsuladosonuIlizadoscomosinónimosdeescalar

Page 72: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

RepresentacionesPosibles•  LosIposescalaressonatómicosyencapsulados,enese

senIdoelusuarionopuedeaccederaloscomponentesdesurepresentaciónmsica

•  UnaexcepcióndeIposescalaresdondeloscomponentesdeIposescalaressonvisiblesalusuarioloconsItuyenlas“representacionesposibles”(POSSREP)definidosen“TutorialD”,unlenguajerelacionalacadémico

•  Lasrepresentacionesposiblesrequieren:–  UnoperadorselectorparapermiIralusuarioelegirunodelasrepresentacionesposibles

–  UnconjuntodeoperadoresTHE_,unoporcadacomponentedecadarepresentaciónposibleparaaccederalcomponenteencuesIón

Page 73: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

RepresentacionesPosibles•  EjemplosdeinvocacionesaselectoresyoperadoresTHE_

Page 74: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

RepresentacionesPosibles•  ElimplementadordelIpoderepresentacionesposibleshaceusodeciertosoperadoresaltamenteprotegidosqueelsistemaprovee

Page 75: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

RepresentacionesPosibles•  AlternaIvamente,ladefinicióndePOLARsepuedehacerdirectamente,esdecirsinhacerusodelselectorCARTESIAN

Page 76: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

RepresentacionesPosibles•  TambiénhayqueimplementarlosoperadoresTHE_

UnavezquesehadefinidoelIpoPOINTsepuedendefinirotrosIposquelouIlicen,Ej

Page 77: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Definicióndeoperadores•  Enellenguajerelacional“tutorialD”ademásdedefinirIpossepuedendefinirlosoperadoresasociadosalosIposdefinidosporelusuario

Page 78: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ConversióndeIpos•  LosoperadoresTHE_sepuedenusarparaconverIrIposporejemploenladefinicióndelIpoWEIGHT

SiWesdel3poWEIGHT,entonceslaexpresiónTHE_D(W)convierteel3poWEIGHTal3poDECIMAL(5,1),locualresultaconvenientesiporejemploqueremosconstruirunaexpresióndondedebehabercongruenciaentrelos3pos.PorEj.…whereTHE_D(W)=78.5enlugarde…whereW=78.5quepodríaocasionarerrordecompilaciónNota:Denuevoloanteriorsebasaenellenguaje“tutorialD”perosiempresepuedenusarconversiones3pocast,porEjenPL/SQL:selectCAST('22-Aug-2003'ASvarchar2(30))fromdual;

Page 79: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ConversióndeIpos•  Conversiónimplícita:EnOraclelosIposCHARyVARCHAR2seconviertenautomáIcamente,porejemplolossiguientesqueriessonequivalentes:SELECTemployee_id,first_name,salaryFROMemployeesWHEREsalary>15000;SELECTemployee_id,first_name,salaryFROMemployeesWHEREsalary>‘15000’;•  Conversiónexplícita:EnOracleexistenfuncionescomoTO_CHAR,TO_DATEoTO_NUMBER.EjSELECTTO_DATE('January15,1989,11:00A.M.','Monthdd,YYYY,HH:MIA.M.','NLS_DATE_LANGUAGE=American’)FROMDUAL;

Page 80: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Valoresderelación•  Unvalorderelaciónosimplementerelaciónconsistedeunencabezadoydeuncuerpodonde:

•  Elencabezadoesunatupladenombresdeatributosconlamismaaridadquelarelación

•  Elcuerpoesunconjuntodetuplasconlamismaaridadqueelencabezadoyconvaloresquecorrespondenalosatributosespecificadosenelencabezado

Page 81: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Propiedadesdelasrelaciones

•  Larelacionesestánnormalizadas.ElhechodequecadatupleIeneexáctamenteunvalorparacadaatributogaranIzaquecumpleconlaprimeraformalnormal(1NF)

•  CadatuplaIeneunvalorporcadaatributo•  Nohayordendeizqaderechadelosatributos•  Nohayordendearribaabajodelastuplas•  Nohaytuplasduplicadas

Page 82: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

AtributosconValordeRelación•  Podemosteneratributoscuyosvaloressonasuvezrelaciones(relacionesanidadas)

•  Históricamenteestaposibilidadhasidoconsideradacomoinválida

Page 83: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Diferenciasentrerelacionesytablas•  LosIposdelosatributosseomitenenlastablas•  LascolumnasIenenunordenenlastablas•  LosrenglonesdeunatablaIenenunorden•  Unatablapuedetenerduplicados•  LastablasIenealmenosunacolumnamientrasquelasrelacionespuedennotenerningúnatributo

•  LastablaspuedentenerincluirvaloresnulosApesardedichasdiferencias,lastablassonaceptablescomorepresentaciónderelaciones

Page 84: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Variablesrelación•  Tambiénllamadasrelvars(ovarrelsenespañol)sondedosIpos:“varrelsbase”(tambiénllamadasvarrelsreales)yvistas(tambienllamadasvarrelsvirtuales)

•  Paradefinirunavarrelbaseusamoslasiguientesintaxis:

Page 85: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ActualizacióndeVarrels•  ELmodelorelacionalincluyelaoperacióndeasignaciónparaasignarvalores,esdecir,paraactualizarvariablesderelación(relvarsovarrels)

•  Lasintaxisen“TutorialD”yejemplos;

Page 86: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

FacilidadesdeSQL•  SibienSQLnosoportatuples,sisoportarows

•  SibienSQLnosoportarelacionessísoportatablasaunqyeeltérminotablaenSQLsignificaalaveztablavalorytablavariable

BehaviorpuedeserCASCADEoRESTRICT,CASECADEeliminaràtablasdependientesYRESTRICTsoloeliminarálatablasiestanoestáenuso

Page 87: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Dependenciasfuncionales•  Unadependenciafuncionalesunarelacióndemuchosaunodel

conjuntodeatributosaotroconjuntodeatributosdentrodeunaVarReldada.

•  Porejemplohayunadependenciafuncionaldelconjuntodeatributos{S#,P#}alconjuntodeatributos{QTY},locualsignifica:–  PorcadapardevalorescorrespondienteaS#yP#existesoloun

correspondientevalorparaelatributoQTY–  DiferentesparejasdevaloresdeS#yP#puedentenerelmismovalor

correspondientedeQTY

Page 88: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Definicionesbásicas

•  HayquedisInguirclaramenteentre:– a)ElvalordeunaVarRelenunmomentodado– b)ElconjuntodetodoslosposiblesvaloresquelaVarRelpuedetenerendiferentesmomentos

•  UsaremoscomoejemplolaVarRelSCP

Page 89: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Dependenciafuncionalparaelcaso(a)Searunarelación,yXyYsubconjuntosarbitrariosdelconjuntodeatributosder.DecimosqueYesfuncionalmentedependientedeX(denotadox→y)siysolosicadaXvalorenrIeneasociadounvalorYenr,porejemplodelarelaciónSCPpodemosdecir:{S#}→{CITY}Alaparteizqlellamamosdeterminanteyaladerechadependiente,otrasdependenciasfuncionalesdelejemplo:

Page 90: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Dependenciafuncionalparaelcaso(b)SeaRunaVarRel,yXyYsubconjuntosarbitrariosdelconjuntodeatributosdeR.DecimosqueYesfuncionalmentedependientedeXoquexdeterminafuncionalmenteay(x→y)siysolosiencadaposiblevalorlegaldeR,cadavalorXIeneasociadounvalorY.EnotraspalabrassiemprequedostuplasconcuerdanensuvalorX,tambiénconcuerdanenuvalorY.porejemplodelarelaciónSCP:

ElcasobeselquemasnosinteresapuesnodependedelvalorquelaRelVarTieneenunmomentodadosinoqueesunadependenciaválidaparatodosLosvaloresposible

Page 91: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Dependenciasfuncionales

•  ComosevioenelejemploelconjuntodedependenciasfuncionalesSpuedesergrande

•  Loquequisiéramosesencontrarlamaneradereducirelconjuntodedependenciafuncionales

•  LasdependenciasfuncionalesrepresentanciertasrestriccionesdeintegridadyqueremosqueelDBMSlasrefuerce

•  EsdeseableencontrarunconjuntodedependenciasfuncionalesT,maspequeñoqueSyquetengalapropiedaddequecadadependenciafuncionalenSquedeimplicadaporlasdependenciasfuncionalesenT

Page 92: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Dependenciastrivialesynotriviales

•  Undependenciaestrivialsiysolosielladoderechodeladependenciaesunsubconjuntodelladoizquierdo.Ej{S#,P#}→S#

•  Unadependenciatrivialnopuedenocumplirse,deahíelnombre

•  Lasquerealmentenosinteresansonlasdependenciasnotrivialespuessonlasquecorrespondenaverdaderasrestriccionesdeintegridad

Page 93: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Cerraduradeunconjuntodedependencias

•  Unasdependenciaspuedenimplicarotras•  EjlaDependencia{S#,P#}→{CITY,QTY}•  Implicalassiguientes

–  {S#,P#}→{CITY}–  {S#,P#}→{QTY}

•  SupongaqueseIenenlasDFsA→ByB→C•  EntoncesportransiIvidadtendremosA→C•  ElconjuntodetodaslasDFsimplicadasporunconjuntoSdeDFsseconocecomocerraduradeSysedenotaporS+

Page 94: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

AxiomasdeArmstrong1.  EnlosAxiomasdeArmstrongABsignificaAUB2.  Reflexividad:SiBesunsubconjuntodeAentonces

A→B3.  Aumentación:SiA→B,entoncesAC→BC4.  TransiIvidad:SiA→ByB→C,entoncesA→C5.  Autodeterminación:A→A6.  Descomposición;SiA→BC,entoncesA→ByA→C7.  Unión:SiA→ByA→C,entoncesA→BC8.  Composición:SiA→ByC→D,entoncesAC→BD•  AdicionalmenteDarwenañadeelTeoremadeUnificaciónGeneral:

SiA→ByC→D,entoncesAU(C-B)→BD

Page 95: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Cerraduradeunconjuntodedependencias•  Ejemplo,supongaqueunaVarRelRIeneatributosA,B,C,D,EyFyDFs:§  A→BC§  B→E§  CD→EFPorejA:Numdeempleado;B:NumdeDepto;C:NumdeJefedelDepto;D:numdeproyecto;ENombredelDepto;F:PorcentajedeIempodedicadoporeljefealproyectoDemostraremosqueAD→F:1.  A→BC (Dado)2.  A→C (1,descomposición)3.  AD→CD (2,aumentación)4.  CD→EF (Dado)5.  AD→EF (3,4,transiIvidad)6.  AD→F (5,descomposición)

Page 96: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Cerraduradeunconjuntodeatributos

•  EnprincipiopodríamosencontrarS+aparIrdeSmedianteelalgoritmo:RecursívamenteapliquelosaxiomasdeArmstrongoelteoremadeunificaciónparaqueseproduzcannuevasDFshastaqueyanosepuedanproducirmas

•  EsonoseríaeficienteninecesarioenrealidadpuesnonecesitamosenrealidaddeterminarS+

•  EnlugardeesopodemosdeterminarunsubconjuntodeS+consistentedeDFsqueIenendelladoizquierdounconjuntoZdeatributoscuyacerraduraZ+consItuyeelconjuntodetodoslosatributosquesonfuncionalmentedependientes

Page 97: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

AlgoritmoparadeterminarZ+

•  ParadeterminarZ+,esdecir,lacerraduradeZbajounconjuntoSdeDFs

Page 98: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Ejemplo•  Determinar{A,B}+bajoelconjuntodeDFs

–  A→BC–  E→CF–  B→E–  CD→EF

•  InicializamosCIERRE[Z,S]={A,B}•  IteramosporcadaelemdeS

–  DeA→BC,comoAperteneceaCIERRE[Z,S]agregamosCyahoraCIERRE[Z,S]={A,B,C}

–  DeE→CFcomoEnoperteneceaCIERRE[Z,S]nohacemosnada–  DeB→EcomoBperteneceaCIERRE[Z,S]agregamosE,ahoraCIERRE[Z,S]={A,B,C,E}

–  DeCD→EF,como{C,D}noesunsubconjuntodeCIERRE[Z,S]nohacemosnada

•  Conesoterminaunaiteración,luegode4iteracionesCIERRE[Z,S]={A,B,C,E,F}

Page 99: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Cerraduradeunconjuntodeatributos

•  DadounconjuntoSdeDFs,X→YseinfieredeSsiysolosiYesunsubconjuntodeX+bajoS(CIERRE[X,S])

•  DeesamanerapodemossabersialgunaFDX→YperteneceaS+sintenerquedeterminarS+

Page 100: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ConjuntosdedependenciasIrreducibles•  SeanS1yS2dosconjuntosdeDFs•  SicadaDFpertenecienteaS1esunaDfquesepuede

inferirdeS2,decimosentoncesqueS2esunacoverturadeS1

•  SiS1+=S2+entoncesS1yS2sonequivalentes•  DefinimosunconjuntodeDFscomoIRREDUCTUBLEsii

saIsfacelassigs3propiedades–  Elladoderecho(Eldependiente)decadaDFenSconsistedesolounatributo

–  Elladoizquierdo(Eldeterminante)decadaDFenSesirreducIbleenelsenIdodequeningunodesusatributossepuedendescartarsinalterarS+(DecimosdetalDFqueesizquierda-irreducIble)

–  NingunaDFenSpuededescartarsesinalterarS+•  NoesnecesariodeterminarS+parasabersisealteraal

descartaralgo,porej,sialgunadependenciasepuedeinferirdelasdemás,entoncesladependencianoserequiere(noalteraS+)

Page 101: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Ejemplo•  ElsiguienteconjuntodeDFsesirreducIblemientrasquelossiguientes3noloson

Page 102: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ConjuntosdedependenciasIrreducibles

•  PorcadaconjuntodeDFsSexistealmenosunconjuntodeDFsequivalentequeesirreducIble

•  Porlaregladedescomposición,podemosasumirquecadaDFenSIeneunladoderechodeunsoloatributo

•  ExaminamoscadaatributoAdelaparteizquierdadecadaDFfenS,SieliminarAdelladoizquierdodefnoIeneningúnefectoenS+,entoncesborramosAdelladoizqdef

•  FinalmenteexaminamosparacadafenSsisueliminaciónalteraS+,sino,borramosfdeS

Page 103: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Ejemplo•  SeaelconjuntoSdeDFs

•  ComoprimerpasoexpresamosSdemaneraquedelladoderechosolotengaunatributo

•  ComolaDFA→Bquedóduplicadaeliminamosuna•  Enseguida,elatributoCpuedesereliminadodelaDFAC→Dpuesto

queexisteA→CyporaumentaciónA→ACycomoAC→Destáincluida,entoncesportransiIvidadA→D

•  LuegoAB→CpuedesereliminadapuestoqueaparIrdeA→CyporaumentaciónAB→CBentoncesAB→Cpordescomposición

•  FinalmenteA→CsepuedeinferiraparIrdeA→ByB→CportransiIvidad•  ElconjuntoirreducIble

quedaentonces:

Page 104: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Normalizaciónadicional•  Comosedijoantes,elsolohechodealmacenarlainformaciónentablasproveeungradodenormalización,específicamentelaprimeraformanormalabreviada(1NF)

•  ElobjeIvodelanormalizaciónadicionaleslaformalizacióndeideassimplescomo:“onefactinoneplace”,evitarredundancia.

•  FormasNormales:1NF,2NF,3NF,BCNF,4FN,5FN

•  Eldiseñadordeunabasededatosporlogeneralaspiraala3NF

Page 105: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

LaDescomposiciónsinpérdidaylasDependenciasFuncionales

•  Lanormalizaciónesunprocesoqueinvolucradescomponerrelacionesenvariasrelaciones,peroesteprocesodebeserreversible,esdecirdebeserunprocesodondenosepierdainformación

•  Observeunadescomposiciónsinpérdida(a)yunaconpérdida(b)dondeyanopodemossabercualproveedorestárelacionadoconcualciudad

Page 106: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

LaDescomposiciónsinpérdidaylasDependenciasFuncionales

•  Eloperadorclaveparalanormalizacióneslaproyecciónmientrasquelaoperaciónclaveparalarecomposicióneslajunta.

•  Lapreguntaes,siR1yR2sonproyeccionesdeRyentreambasincluyentodoslosatributosdeR,entonces¿QuécondicionessedebensaIsfacerparagaranIzarqueR1yR2permitanlareconstruccióndeR?

•  Larespuestaresideenlasdependenciasfuncionales•  Enelejemplodelaláminaanterior,laVarRelSsaIsfaceelconjuntodeFDsirreducIble:–  S#→STATUS–  S#→CITY

•  NoescasualidadquelaVarRelSseaigualalaoperaciónJOINdesusproyeccionesen{S#,STATUS}y{S#,CITY}

Page 107: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

TeoremadeHeath

•  SeaR{A,B,C}unaVarReldondeA,ByCsonconjuntosdeatributos.SiRsaIsfacelaDFA→B,entoncesResigualalajuntadesusproyeccionesen{A,B}y{A,C}

•  Ej.DelarelaciónSdelejemploanteriordigamosqueAesS#,BesSTATUSyCesCITY

Page 108: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Izquierda-reducibilidad

•  DecimosqueunaDFesizquierda-irreducIblesisuparteizquierda“noesdemasiadogrande”,porejemplolaVarRelSCPsiguientesaIsfacelaDF{S#,P#}→CITY

•  SinembargoelatributoP#delladoizquierdoesredundanteparapropósitosdedependenciafuncional,encambioDFS#→CITYquetambiénsaIsfaceSCPesIzquierda-irreducIble

Page 109: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

DiagramasDF•  SeaRunaVarReleIunconjuntoirreducIblededeDFsqueR

saIsface•  EnundiagramaDFunadelascosasúIlesesquelasflechas

salendeunconjuntodeatributosquefuncionancomollavescandidatasyquecasisiempreseeligencomollavesprimarias

•  Escuandohayflechasquenosalendellavescandidatasquelosproblemascomienzan

•  Porlotanto,losprocedimientosdenormalizaciónsecaracterizanporeliminarflechasquenosalendellavescandidatas

Page 110: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

UnaDFesunanociónsemánIca

•  LasFDssonenrealidadIposespecialesderestriccionesdeintegridad,sonpartedelpredicadoquedefineunarelación,sonpartedelprocesodeentendimientodeloquelosdatossignifican,porEjlaDFS#→CITYsignificaquecadaproveedorestáubicadoenunaciudad(esoesunarestricción!)

•  ComoespartedelasemánIcadelabasededatoslarestriccióndebeserobservada

•  Paraasegurarsedequeseaobservadasedebeespecificarenladefinicióndelabasededatos

•  LamaneradeespecificarlarestricciónesdeclararlaDF

Page 111: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Primera,SegundayTerceraFormasNormales

•  Unamuyinformaldefiniciónpreliminardela3NF:UnaVarRelestáenla3NFsilosatributosquenoformanpartedelallaveprimariason:– Mutuamenteindependientes–  IrreducIblementedependientesdelallaveprimaria

•  Unadefiniciónaunmasinformaldela3NF:UnaVarRelestáenla3NFsicadatupleconsistedeunallaveprimariaqueidenIficaaalgunaenIdadjuntoconceroomasatributosmutuamenteindependientesquedescribenadichaenIdad

Page 112: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

1NF•  UnaVarRelestáenla1NFsiysolosicadaatributodecadatuplaconIeneexáctamenteunvalor.

•  ConestadefiniciónpodemosdecirquelasVarRelssiemprecumplenconla1NF

•  SinembargocuandoseaseguraqueunaVarRelestáenla1NFseimplicaquenocumpleniconla2NFniconla3NF

•  EjsupongaquelaVarRelFIRSTIeneladependenciaCITY->STATUS

Page 113: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Dificultadesocasionadasporla1NF•  Redundancia•  “Anomalías”

–  DeInsert:Nopodemosinsertarlainformación(EjCITY)relacionadaaunproveedorhastaquenosvendaalgo

–  DeDelete:Alborrar(porunacancelación)unacompraaunproveedorborramostambiénlainformacióndelproveedor(encasodequeeralaúnicacomprahechaaeseproveedor)

–  DeUpdate:Siunproveedorsecambiadeciudad,tenemosquehacermuchoscambiosennuestraVarRelbajoelriesgodedejaralgunainconsistencia

Page 114: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

2NF•  UnaVarRelestáenla2NFsiysolosiestáenla1NFycadaatributoquenoformapartedelallaveprimariaesirreducIblementedependientedelallaveprimaria

•  EstadefiniciónesválidaparaVarRelsconunaúnicallavecandidataqueeslallaveprimaria

•  LosproblemasmencionadosenlaláminaanteriorsesolucionancambiandolaVarRelPRIMERAporlassiguientesdosVarRels:–  SECOND{S#,STATUS,CITY}–  SP{S#,P#,QTY}

Page 115: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

2NF•  AmbasSECONDySPestánenla2NF,elprocesoparaobtenerlasconsiste

enrealizarproyeccionesparaeliminardependenciasfuncionalesnoirreducIblestalesquealrealizarlaoperaciónJOINdeestasdosVarRelsserecuperelaVarRelFIRST.

•  DadaunaVarRelR{A,B,C,D}PRIMARYKEY{A,B}/*asumirA->D*/•  ReemplazarRporR1yR2:

–  R1{A,D}PRIMARYKEY{A}–  R2{A,B,C}PRIMARYKEY{A,B}FOREIGNKEY{A}REFERENCESR1

•  VarRelSPessaIsfactoria,dehechocumpletambiéncon3FNperoSECONDaúncausaproblemaspuestoquesufredefaltadeindependenciamutuaentrelosatributosqueconformanlallaveprimaria.ObservecomoeldiagramadeDFsesmascomplejodelosimplequeexigela3FN

•  Anomalías:–  Insert.NopodemosalmacenarelconocimientodequeunaciudadIeneun

ciertostatus(EjRomaIeneelstatus50)hastaqueestaquetengamosunproveedorubicadoendichaciudad

–  Delete.Siborramosunproveedordeunaciudadpodemosborrarelstatusdelaciudadsieseeraelúnicoproveedorqueteníamosenesaciudad

–  Update.Elstatusdeunaciudadaparecevariasveces(redundancia)ysitenemosquecambiarelstatusdeunaciudaddebemoshacerloentodoslostuplesdedichaciudadconelriesgodeperderintegridad

Page 116: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

3NF•  UnaVarRelestáenla3NFsiysolosicadaatributoquenoforma

partedelallaveprimariaesdependientenotransiIvamentedelallaveprimaria

•  EstadefiniciónesválidaparaVarRelsconunaúnicallavecandidataqueeslallaveprimaria

•  ElquenohayadependenciastransiIvasimplicaquenohayadependenciasmutuas

•  ElprocesodenormalizaciónparaR{A,B,C}PRIMARYKEY{A}/*asumiendoqueB->C*/consisteenreemplazarRporR1yR2donde:–  R1{B,C}PRIMARYKEY{B}–  R2{A,B}PRIMARYKEY{A}FOREIGNKEY{B}REFERENCESR1

Page 117: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ConservacióndelaDependencia•  EsfrecuentequeunaVarRelsepuedadescomponersinpérdidaenmas

deunamanera.PorejSECONDsepuededescomponeren1.  SC{S#,CITY},CS{CITY,STATUS}2.  SC{S#,CITY},SS{S#,STATUS}

•  Ambasdescomposicionessonsinpérdida,inclusoambasquedanenla3NF

•  SinembargolasegundamaneranoesmuysaIsfactoriapuesmanIenelaanomalíadeinsertdenoserposibleinsertarelstatusdeunaciudadhastaquetengamosunproveedordeesaciudad.

•  ElproblemaesqueenlasegundadescomposiciónladependenciafuncionalCITY→STATUSseconvirIóenunarestricciónqueinvolucradosVarRels,locualimplicaenlosproductosdebasesdedatosactualesquedicharestriccióntendráquesermantenidamediantecódigoproceduralescritoporelusuario

•  PorejsiseinsertauntupleenSCyotrocorrespondienteenSSconlainformacióndeunproveedor,setendráquecuidarquecuandoseinserteotrotupleenSCysucorrespondienteenSSconlainformacióndeotroproveedordelamismaciudad,concódigosedeberádecuidarqueelstatusdelaciudadseaelmismoenamboscasos.

Page 118: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Conservacióndeladependencia•  Enlaprimeradescomposición,lasVarRelsresultantesdelas

proyecciones(SCyCS)sonindependientesenelsenIdodequesepuedemodificarcualquieradeellassinpreocuparsedelaotra.

•  Elconceptodeproyeccionesindependientespermiteseleccionarunamaneradedescomponerunatablacuandosepuedehacerdemasdeunamanera

•  DecimosquelasproyeccionesR1yR2deunaVarRelRsonindependientessisecumplenlassigsdoscondiciones–  CadaDependenciafuncionaldeResunaconsecuencialógicadelas

dependenciasfuncionalesdeR1yR2–  LosatributoscomunesdeR1yR2conformanunallavecandidataenal

menosunadelasdos•  Porejenlaprimeradescomposicióndelejemplo,elatributocomún

deCSySCesCITYyCITYseríalallaveprimariaenCS.AdemáscadadependenciafuncionaldelaVarRelSECONDapareceenCSoenSCoesunaconsecuencialógicadelasDFsdeCSySC

•  EncambioenlasegundadescomposiciónsibienelatributocomúndeSCySS(S#)esunallavecandidataenambas,laDFCITY→STATUSnosepuedededucirdelasDFsdeSCySSporlotantolasproyeccionesSCySSnosonindependientes.

Page 119: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Algoritmode9pasosparadescomponervarRelRsinpérdidademaneraquesepreserveladependencia

•  InicializarDcomoconjuntovacío•  SeaLunacoverturairreducIbleparaS(DFsdeR)•  SeaXelconjuntodeatributosqueaparecendelladoizquierdo

dealgunaDFX→YenL•  SeaelconjuntocompletodeDFsenLconladoizqX:

X→Y1,X→Y2,…,X→Yn•  SeaZlaunióndeY1,Y2,…,Yn•  ReemplaceDporlaunióndeDylaproyeccióndeRsobreXyZ•  Repitalospasosde4a6porcadadisIntaX•  SeanA1,A2,…AnlosatributosdeRqueaunnosetomanen

cuenta(noincluidosenningunaVarRelenD).RemplaceDporlaunióndeDylaproyeccióndeRsobreA1,A2,…,An

•  SiningunaVarRelenDincluyeunallavecandidatadeR,reemplaceDporlaunióndeDylaproyeccióndeRsobrealgunallavecandidatadeR

Page 120: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Introducción•  LasBasesdedatosorientadasaobjetosfuerondegraninterésenlos

años90s.SepronosIcabaqueibanaserfuertescompeIdoresdelasbasesdedatosrelacionales.Hoydíapocosconcuerdanconeso.

•  CiertascaracterísIcasqueparecenconvenientesparalasDBMShanexisIdodesdehaceañosenloslenguajesorientadoaobjetos,esnaturalinvesIgarlaideadeincorporarlasalosDBMS

•  Porejemplo,enlugardepensarentérminosdetuplesdeunaVarRelDEPTydelostuplescorrespondientesenunaVarRelEMPdondeunallaveforáneahacereferenciaaunallaveprimariadeDEPT,elusuariodeberíapoder“contratar”unobjetoempleadoenelobjetodepartamento(elobjetodepartamento“sabe”comocontratarempleados).DichodeotramaneralaideaesELEVARELNIVELDEABSTRACCIÓN

•  CiertamenteelparadigmadeobjetoshasidoexitosoenelevarelniveldeabstracciónenelcampodelenguajesdeprogramaciónysuaplicaciónensistemascomplejoscomolosCAD,CAMoCASE

Page 121: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

EjemplomoIvacional•  SupongaqueunaherramientaCADoCAMuIlizaunabasededatos

derectángulos.CadarectánguloindividualseidenIficapordosparejasdecoordenadas(x1,y1)y(x2,y2)quecorrespondenasuesqinf-izqylasup-derrespecIvamente.

•  Considerelaconsulta:Obtenertodoslosrectángulosquesetraslapenconelrectángulodecoordenadas(0,0)y(1,1)

Page 122: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

EjemplomoIvacional•  Lasiguienteconsultaresuelveelproblemamuchomasrápidamente

•  Lapreguntaes¿PodríaelsistemadebasededatoshaberopImizadolaconsultaporsisoloaparIrdelaversiónineficiente?

•  ProblemascomoestemuestranqueproductosSQLclásicossoninadecuadosenciertosaspectospueslassolicitudessondimcilesdeexpresaryseejecutanconmaldesempeño

Page 123: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Objetos,Clases,MétodosyMensajes•  DisInguimosprimerodeobjetosmutablesdelosinmutables:Ejsde

objetosinmutablesson:Enterosinmutablescomo5,40;Cadenasinmutablescomo“Mozart”o“Beethoven”.EjsdeObjetosmutables:Empleado,Departamento.

•  Enterminologíatradicionaldebasesdedatosrelacionales,losobjetosinmutablescorrespondenconlosvaloresylosobjetosmutablesconlasvariables

•  Losobjetossondeunaclase,omejordicholosobjetossoninstanciasdeclases,eltérminoclasecorrespondealdeIpoenterminologíadebasesdedatosrelacionales

•  Losobjetossoncapacesdeejecutarmétodos,porejemplolosmétodosdelosobjetosdelaclaseDEPTpudieranserHIRE_EMP,FIRE_EMP,CUT_BUDGET,etc.Losmétodosreemplazanalosoperadores

Page 124: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Objetos,Clases,MétodosyMensajes•  Losobjetosestánencapsulados,esdecir,laestructurainternade

unobjetonoesvisiblealosusuariosdelobjetoloscualessolopuedenmanipularadichosobjetosatravésdesusmétodos.

•  DecirqueunobjetoestáencapsuladoIenesuanalogíaenbasesdedatosrelacionalesconelconceptodeIposescalaresloscualesnoIenencomponentesvisiblesalusuario.Elencapsulamientoprovee“independenciamsicadedatos”

•  LosobjetosencapsuladosIenenmemoriaprivadaeinterfazpública.Lamemoriaprivadaalmacenavariables(atributos)cuyosvaloresdefinenelestadodelobjeto.LainterfazpúblicaestáconsItuidaporlosmétodosdelaclasecuyocódigoestáocultoalusuario.

•  Losmétodosseinvocanmediantemensajes,porejemplounmensajeparaeldepartamentoDdondeselepidequecontratealempleadoE,pudieraser:D.HIRE_EMP.EnlaprácIcalosclasesbásicasenlossistemasorientadosaobjetosincluyenmetodos,porEjINTEGERIenemétodos+,-,>,etcCHARincluye=,Substr,etc

Page 125: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Variablesdeunainstancia(deunejemplar)•  Unobjetoesunainstanciadeunaclase,podríamosdecir

unejemplarysusvariables(atributos)enteoríadeberíanestarocultosdelusuario,sinembargolamayoríadelossistemasnosonpurosenesesenIdo,porlotantodebemosdisInguirentrevariablesprivadasyvariablespúblicas.

•  Lasvariablesprivadasestánverdaderamenteocultasalusuarioylasvariablepúblicasnoloestán

•  SupongaqueexisteunaclaseLINEyqueIenedosvariablespúblicasBEGINyEND,elusuariopuedeporejcrearelobjetolinyaccederaesasvariablescomolin.BEGINylin.END

•  SupongaahoraquelarepresentaciónmsicadelosobjetosdelaclaseLINEcambiademaneraqueahoralasvariablessonMIDPOINT,LENGHTySLOPE

•  Entoncescualquiercódigodeprogramaconexpresionesqueincluyanlin.BEGINolin.ENDfallarándeahoraenadelante.SEHAPERDIDOLAINDEPENDECIADEDATOS

Page 126: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Variablesdeunainstancia(deunejemplar)•  Nosonnecesariaslasvariablespúblicasdeinstancias,sepuedencrearmétodoscomoGET_BEGIN(),GET_END(),GET_MIDPOINT(),GET_LENGHT()yGET_SLOPE()

•  Deesamaneranoimportacualsealarepresentaciónmsicadelaslíneas

•  Algunossistemassoportanunavariantedelasvariablesprivadas,denominadasvariablesprotegidas,lascualessonvisiblessoloalcódigoqueimplementamétodosdeesaclaseyalcódigoqueimplementemétodosdesubclases(clasesquedesciendendelaclase)

Page 127: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

IdenIdaddeObjetos•  CadaobjetoIeneuniden3ficadorúnicooOID(objectid),los

objetosinmutables(Ejelentero42)seidenIficanasimismos.•  LosobjetosmutablesIenendireccionesconceptualesqueusan

comosusOIDs.Lasdireccionesmsicasnosonaccesiblesparaelusuario.

•  DosobjetospuedenseridénIcosentodossusatributosysinembargoserdosobjetosindependientes,esdecir,dosinstanciasdelamismaclasequeunoesunacopiadelotroperopodemossaberquesondosobjetosporqueIenendiferentesOIDs

•  LasbasesdedatosrelacionalesuIlizanllaves(primariasy/oforáneas)controladasporelusuarioyprohibenelusodeapuntadoresesIloOIDsperorecomiendanelusodellavesproporcionadasporelsistemalascualesadiferenciadelosOIDssonvisiblesalusuarios

•  ElusodeOIDsnocancelalanecesidaddellavesquedetodosmodosserequierenenelmundoreal

•  OIDssonfuentedecríIcasllamandolealsistemaorientadoaobjetos“Codasylrecalentado”

Page 128: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Ejemplo•  SupongaquedefinimoslaclaseDEPTylaclaseEMP,yquelasclasesMONEYyJOByaseteníandefinidasademásdelaclaseCHARqueformapartedelsistema

Page 129: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Ejemplo•  AunquelaclaseEMPnotengaunavariablequeseaunOID

deDEPT(paraquefuncionaracomollaveforánea)síseríaposibleaveriguarcadaempleadoaquédepartamentoestáasignado

•  Ladefinicióndecadaclaseincluyeladefinicióndesusmétodos

Page 130: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Ejemplo•  Enunmasaltonivelde

abstraccióncomounajerarquíadecontenedores

•  EstediagramanoaclaraquelosobjetossemanejanconOIDs(apuntadores)

•  OtraconfusiónqueestediagramasugiereesquepareceríaqueSmithIenedostrabajos

•  ExponeralasBDsorientadasaobjetoscomojerarquíaslashaceobjetodelascríIcasnormalmentehechasalmodelojerárquico

•  Perolosobjetosnosonjerarquíassinotuplescuyoscomponentespuedenserobjetosmutables,objetosinmutablesoconjuntos,listas,arreglos,…

Page 131: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Ejemplodelacunahastalatumba•  LaBasededatosdecursosdecapacitaciónparaempleadosconIeneinformaciónacercadelaofertadecursos,quienesseinscribenalcursoyquiénloimparte

Laversiónparaunabasededatosrelacionalsería

Page 132: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Definicióndedatos•  OPALesunDDLyDMLbasadoenSmalltalkhechopor

GemStoneSystemsInc.•  LasdefinicionesenOPALparalaclaseEMPsería

EMPseráentoncesunasubclasedelaclasegenéricaOBJECTTodaslasvariablessoprivadas,esdecirsolopuedenseraccedidasPorlosmétodosdelaclase,comoGET_EMPySET_EMP:

Page 133: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Definicióndedatos•  LadefinicióndelaclaseCOURSE

LavariableprivadadeinstanciaOFFERINGScontendráelOIDdelaclaseOSET(definidamasadelante)puestoqueseestámodelandolarelaciónCOURSE/OFFERINGScomounajerarquíadecontenedoresenlaquelasofertasdecursos(OFFERINGS)estánconceptualmentecontenidasdentrodelcursocorrespondiente.

Page 134: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

LadefinicióndelaclaseOFFERINGyENROLLMENT

•  ENROLLMENTScontendráelOIDdeunobjetodelaclaseNSETpuesOFFERING“contendrá”todoslosenrolamientos(inscripciones)quehaganlosempleadosparalaoferta(offering)decursoencuesIón,también“contendrá”elconjuntodemaestrosqueparIciparánendichaofertadecurso

•  LavariabledeinstanciaEMPcontendráelOIDdeunobjetodelaclaseEMP.SeestáusandounajerarquíadecontenedoresperoconuntratamientodisIntopueslarelaciónempleados-ofertasesdemuchosamuchos

Page 135: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

DefinicióndeclasesTEACHER,ESET,CSET,OSETyTSET

•  LaclaseTEACHERsedefinecomosubclasedelaclaseEMP(Teacher“Isa”Emp),porlotantounmaestro,alsertambiénunempleado“Hereda”losatributosEMP#,ENAMEyPOSITION.SeleagregaaestosatributosheredadoselatributoCOURSESquecontendráunOIDdelaclaseCSETpuestoqueunmaestropuedeimparIrvarioscursos(Jerarquíadecontenedores).UnobjetodelaclasemaestrotambiénheredalosmétodosdelaclaseEMP.

•  LaclaseESETsedefinecomosubclasedelaclaseSET,específicamentecomounconjuntodeempleados.Lasdefinicionesparaconjuntosdecursos,demaestros,etc,son:

Page 136: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Poblandolabasededatos•  Paracomenzaraagregarempleadosprimerodebemosdecrearun

objetodelaclaseESETpuestoquenodebemosolvidarquevamosanecesitarcoleccionarsusOIDs

•  OID_OF_SET_OF_ALL_EMPS:=ESETNEW.•  CadavezquecreemosunobjetodelaclaseEMPdebemosagregar

suOIDalconjuntoESET,definimosunmétododelaclaseESETparahacereso

•  EnOPALlosmétodosnoIenennombre,usan“firmas”paradecidircualmétodosedebeejecutar

Paraagregarunempleado:

Page 137: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Poblandodecursos•  Agregarempleadosessimplepuesnoesunobjetocontenedor.ParaCOURSESdebemosprocederdelasig.Manera:1.  UsarelmétodoNEWconlaclaseCSETparatenerun

conjuntovacíodetodosloscursos2.  DefinirunmétodoparacrearunobjetoCOURSEy

agregarsuOIDalconjuntodetodosloscursos.DichométodotomarálosargumentosCOURSE#yTITLEycrearáunobjetoCOURSE,luegousaráelmétodoNEWparacrearunobjetodelaclaseOSETparacrearunconjuntovacíodeOIDsdeOFERINGsyloasignaráalavariabledeinstanciaOFERINGS

3.  Invocardichométodoporcadacurso

Page 138: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Poblandodeofertasdecursos1.  DefinirunmétodoparacrearunobjetoOFFERINGconlos

argumentosOFF#,ODATEyLOCATION,elmétodo:–  UsaráelmétodoNEWparacrearunobjetodelaclaseNSET(unconjuntovacíodeOIDsdeENROLLMENTSs)yloasignaráalavariabledeinstanciaENROLLMENTdelobjetoOFFERING

–  UsaráelmétodoNEWparacrearunobjetodelaclaseTSET(unconjuntovacíodeOIDsdeTEACHERS)yloasignaráalavariabledeinstanciaTEACHERSdelobjetoOFFERING.

2.  UIlizandoelargumentoCOURSE#–  LocalizaráelobjetoCOURSE–  AgregaráelOIDdelnuevoobjetoOFFERINGalconjuntode

ofertasdelobjetoCOURSE3.  Invocarelmétodoreciéndefinidoporcadaofertade

cursoqueexista

Page 139: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

PoblandodeInscripciones•  DefinirunmétodoparacrearunobjetoENROLLMENT,elmétodotomarácomoargumentosCOURSE#,OFF#,EMP#yGRADEycrearáunobjetoENROLLMENTconelvalorGRADEyademás:–  UsarálosvaloresCOURSE#yOFF#paralocalizarelcorrespondienteobjetoOFFERING

–  AgregaráelOIDdelnuevoobjetoENROLLMENTalconjuntodeenrolamientos(variabledeinstanciaENROLLMENTS)delobjetoOFFERING

–  UsaráelargumentoEMP#paralocalizarelobjetoEMPyasignaráelOIDdelobjetoEMPenlavariabledeinstanciaEMPdelnuevoobjetoENROLLMENT

•  Invocarelmétodoporcadaenrolamiento(inscripción)

Page 140: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Poblandodemaestros•  LaparIcularidadaquíesqueTEACHEResunasubclasede

laclaseEMP•  DefinirunmétodoparacrearunnuevoobjetoTEACHER

uIlizandolosargumentosCOURSE#,OFF#yEMP#–  UsarEMP#paralocalizaralobjetoEMP#–  CambiarlaclaseespecíficadelobjetoEMPaTEACHER–  UsarlosvaloresCOURSE#yOFF#paralocalizarelobjetoOFFERING

–  AgregarelOIDdelnuevoobjetoTEACHERalconjuntodemaestros(variabledeinstanciaTEACHERS)delobjetoOFFERING

–  UsarelvalorCOURSE#paralocalizarelobjetoCOURSE,–  AgregarelOIDdelobjetoCOURSEalconjuntodecursosqueimparteelmaestro(variabledeinstanciaCOURSESdelnuevoobjetoTEACHER)

•  Invocarelmétodoporcadamaestro

Page 141: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Operacionesderecuperación•  OPALnoesunlenguajequetrabajaconobjetos(oregistros)ynocon

conjuntosporloquenormalmentehayqueescribiralgodecódigoprocedural

•  Ej.RecuperarlasofertasdelcursoC001enlaciudaddeNuevaYork

•  Lalínea1declaravariablesparaalmacenarlosOIDsdelCursoC001,OfertasdelCursoC001yOfertasdelcursoC001enNY(larespuesta)

•  Enlíneas2-3semandaunmensajealobjetoOOSOAC(coleccióngenérica)paraqueuseelmétodoDETECTybusqueelcursoC001

•  Enlíneas4-5seasignaaC001_OFFSelOIDdelconjuntodeofertasdelcursoC001

•  Enlíneas6-8seusaelmétodoSELECTparaquebusqueTODOSloscursosofrecidosenNY(DETECTsolohubieradevueltoelprimero)

Page 142: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

OperacionesdeActualización•  Enláminasanterioresyaseexplicócomohacerinsertar

registros(objetos)enlabasededatos•  Lasoperacionesdeactualizaciónsehacendelamisma

maneraquelasderecuperaciónexceptoqueenlugardemétodosGET_seusanmétodosSET_

•  Encuantoaoperacionesdeeliminación,cuandounobjetonopuedeseryareferenciadopuestodaslasreferenciashaciaelhansidoborradasOPALloeliminaautomáIcamentemedianteel“recolectordebasura”.

•  PorEjparaeliminaralempleadoE001

Page 143: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Introducción

•  Seguridadsignificaprotegeralosdatoscontrausuariosnoautorizados

•  Integridadsignificaprotegeralosdatoscontrausuariosautorizados!

•  Enamboscasoselsistemadebesabercualessonlasrestricciones,estasdebenserdeclaradas

Page 144: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Introducción

•  Aspectosdelaseguridad:–  LegalyéIco.QuienIenederechoalainformación?–  ControlFísico.(Terminalesresguardadas?)–  PolíIca.Quiéndecide?–  Problemasoperacionales.Ejcadacuandoseexigequesecambieunapassword?

–  ControlesdeHardware.ElservidorIenellaves(literalmente)?

–  ControlesdelSistemaOperaIvo.–  ControlesdelDBMS!

Page 145: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Introducción

•  EnfoquesdelDBMS– Controldeaccesodiscrecional.LosusuariosIenendiferentesprivilegiosdeaccesoalosdiferentesobjetosdelabasededatos

– Controldeaccesomandatorio.CadaobjetodelabasededatosIeneunniveldeclasificaciónylosusuariosIenenunniveldeautoridad

Page 146: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Introducción

•  LasdecisionesrelaIvasalaseguridaddebendarseaconoceralsistemayestassealmacenaneneldiccionariodedatos

•  ElsubsistemadeseguridaddelDBMSeselencargadodeconcederoprohibirdeterminadaoperaciónendeterminadoobjetoporpartededeterminadousuario

•  LosusuariosdebenautenIcarse.Passwords,disposiIvosbiométricos(HuelladacIlar,reIna,idenIficadordevoz)oTokens,tarjetas,etc

•  Elsistemanormalmentesoportagruposdeusuariosoroles.

Page 147: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Controldeaccesodiscrecional•  EsteeselsistemaquesoportanlamayoríadelosDBMS•  Serequieredeunsublenguajeparadefinirlosprivilegios

(DCLenUllman)•  EnunhipotéIcolenguajeconlasigsintaxisparadefinir

privilegioslasintaxisyunejemplo:

Page 148: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Controldeaccesodiscrecional•  TambiénserequierepoderreIrarprivilegios•  DROPAUTHORITY<authority_name>•  Normalmentealeliminarunobjetoseeliminanlosprivilegiosasociadosael

•  Paraverun“subconjuntoverIcal”:

•  SiLSesunavistaqueseleccionaalosproveedoresdeLondres(LondonSupliers)entonceslossiguientessonprivilegiosparaun“subconjuntohorizontal”

Page 149: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ModificacióndelapeIción•  LaUniversidadIngresdesarrollóunprotoIpodelenguajedeconsultadenominadoQUELdondeseadoptaunenfoqueinteresante

•  CadapeIciónesmodificadaantesdesuejecucióndemaneraquenovioleningunarestriccióndeseguridad

•  EjSupongaqueelusuarioUIenepermisopararevisarpartes(refacciones)almacenadasenLondressolamente.

•  SupongaqueelusuarioUrealizalasiguientepeIción

•  ElsistemaautomáIcamentemodificaestapeIciónquedando:

Page 150: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ModificacióndelapeIción•  LasintaxisenQUELparadefinirpermisos

•  Porejemplo

•  APPENDyREPLACEeselequivalentedeINSERTyUPDATE

Page 151: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Registrosdeauditoría•  Nodebemosasumirqueunsistemadeseguridades

perfecto.•  UnhackermoIvadopodráviolarlaseguridad.•  Porlotantosilosdatossonmuysensiblesesnecesarioque

existanregistrosdetodaslasoperacionesrealizadasconlabasededatos

•  Deesamaneraunaauditoríasobretalesarchivosbitácorapuedeayudaradescubrirelproblema

•  NormalmentelossistemasdebasesdedatosdemaneraautomáIcallevanregistrodetodaslasoperacionesrealizadasportodoslosusuarios–  Operaciónrealizada–  Terminaldesdelacuallaoperaciónserealizó–  Usuarioquerealizólaoperación–  Fechayhoradelaoperación–  VarRels,tuplesyatributosafectados–  Valoresanterioresyvaloresnuevos

Page 152: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Controldeaccesomandatorio•  EsteIpodecontrolesaplicabledondeexisteunarígida

estructurajerárquicacomoenelejercitoyenalgunasáreasdelgobierno

•  CadaobjetoIeneunniveldeseguridad(Supersecreto,secreto,confidencial,etc.

•  CadausuarioIeneunniveldeaccesoodeautoridad•  ElusuarioiIeneaccesoalobjetojsielniveldeautoridad

deiesmayoroigualalniveldeseguridaddej(Propiedaddeseguridadsimple)

•  Elusuarioipuedemodificaelobjetojsielniveldeautoridaddeiesigualalniveldeseguridaddelobjeto(Lapropiedad“estrella”).ParaentenderestareglaconsiderequecualquiercosaqueunusuarioescribaautomáIcamenteadquierecomoniveldeaccesoelniveldeautoridaddelusuario.Sielporejemplocopiainformacióndeunarchivosecretoaunarchivodemenorclasificación,esteúlImoseconviertetambiénensecreto.

Page 153: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Clasesdeseguridad•  ProteccióndiscrecionaloClaseC.Sedivideendos

subclases–  SubclaseC1.DisIngueentrepropiedadyacceso.SoportaelconceptodedatoscomparIdosypermiteausuariostenerdatosdesupropiedad

–  SubclaseC2.IgualqueC1peroademásrequierellevarregistrosdeauditoríayaislamientoderecursos(masseguroqueC1)

•  ProtecciónmandatoriaoClaseB.Sedivideen3subclases:–  SubclaseB1requierequecadaobjetoseaeIquetadoconunniveldeseguridad(secreto,confidencial,etc)

–  SubclaseB2comoB1peroademásrequierequecanalesencubiertosseandescubiertosyeliminados.EnuncanalencubiertoseinfiereinformaciónsecretaaparIrdeinformaciónno-secretaporejporelIempoquetardalarespuesta.

–  SubclaseB3Requiereademasdeauditoría,soportederecuperacionyun“AdminsitradordeSeguridad”

•  ProtecciónverificadaoClaseA.Eslamássegura.RequierededemostraciónautomáIcadequeelmecanismodeseguridadsoportalapolìIcadeseguridadespecificada.

Page 154: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

SeguridaddemúlIplesniveles•  Laideadecontroldeaccesomandatoriosepuedeaplicar

nosoloalniveldeVarRelssinoalniveldetuplesindividuales,entoncescadatupledebesereIquetadoconsuniveldeseguridad(Ej4=Topsecret,3=secret,2=confidencial,etc)

•  Entoncessiporejemplounusariosrealizaunaconsultaporejemplo….wherecity=‘London’elsistemalacambiaríaporunacon…wherecity=‘London’andlevel<=user.clearence

•  Yunaoperacióndeinsert,elsistemalacompletaríaconelniveldelusuarioquerealizaelinsert

•  Consideracionessimilaresparalasoperacionesupdateydelete

Page 155: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Encriptacióndedatos

•  ParaprevenirlaintercepcióndeuncanaldecomunicaciónodelrobodeundiscoocopiadodearchivoslainformacióndeberíadealmacenarseytransmiIrseencriptada.

•  Untextonoencriptadosedenomina“textoplano”yalencriptado“textocifrado”.

•  Paraencriptaruntextoplanoserequieredelalgoritmodeencriptamientoydelallavedeencriptamiento

•  Paradesencriptarloserequierentambiénambascosas•  Noimportasielalgoritmodeencriptamientosehacepublicomientrasseprotejalallavedeencriptamiento

Page 156: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Ejemplo•  SeaeltextoplanoASKINGFISHERSCATCHFIRE•  SealallavedeencriptamientoELIOT•  Yelalgoritmodeencriptamiento:

1.  Dividaeltextoplanoenbloquesdeltamañodelallavedeencriptamiento

AS+KINGFISHERS+CATCH+FIRE2.  ReemplacecadacarácterporunnúmeroA=0,B=1,…,Z=26,Blank=00011900110914070609190805181900030120030800060918053.  Repitaelpaso2paralallavedeencriptamiento05120915204.  Porcadabloquereemplacecadacarácterporelmodulo27delasuma

desucodificaciónenteraylacodificaciónenteradelcarácterdelamismaposiciónenlallavedeencriptamiento

0119001109140706091908051819000301200308000609180505120915200512091520051209152005120915200512091520060409260219191524121317000720081302180105181806255.  Reemplacecadaenteroporsucarácterequivalentedeacuerdoala

codificacióndelpaso4FOIZBSSOXLMQ+GTHMBRAERRFY

Page 157: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ElEstandardeencriptamientodedatos

•  ElejemploanteriorfueunprocedimientoclásicodeSUSTITUCIONdondecadacarácterdeltextoplanofuesusItuidoporotrocarácter

•  ElotroprocedimientoclásicodeencriptamientoeseldePERMUTACIÓNdondeloscaracteresdeltextoplanosonsimplementerearreglados

•  NingunodeestosdosprocedimientosesparIcularmenteseguroperolosalgoritmosquecombinanambasestrategiasproveenunaltogradodeseguridad

•  UnodeestosalgoritmoseselestandardeencriptamientodedatosoDES(DataEncrypIonEstándar)desarrolladoporIBMen1977

Page 158: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ElEstandardeencriptamientodedatos•  Eltextoplanosedivideenbloquesde64bits•  Cadabloqueesencriptadousandounallavede64bits(56bitsmas

8bitsdeparidad)porloquehay2^56llavesposibles•  Cadabloqueesencriptadoaplicándoleunapermutacióninicial,

sujetandoluegoalbloqueaunasecuenciade16pasosdesusItuciónyfinalmenteaplicándoleotrapermutación(lainversadelapermutacióninicial)

•  LasusItucióneneliésimopasonosedeterminaconlallavedeencriptamientoKoriginalsinoconunallaveKideterminadaconKei

•  DESIenelapropiedaddequeelalgoritmodedesencriptamientoesidénIcoaldeencriptamientoexceptoquelasllavesKisonaplicadasenordeninverIdo

•  DebidoalaumentoenlavelocidaddelascomputadoraselgobiernofederaldeUSAadoptóunestándarnuevo,elAES(AdvancedEncripIonStandar)queusallavesde128,192o256bitsenlugardelasllavesde56bitsdelestándaroriginal.SiexisIeraunacomputadoratanrápidacomoparacraquearDESenunsegundo,lellevaría149trillonesdeañoscraquearlaAESde128bits

Page 159: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Encriptamientodellavepública•  Tantoelalgoritmocomolallavedeencriptamientoson

públicosdemaneraquecualquierapuedeconverIrtextoplanoatextocifrado

•  LallavedeencriptamientonoeslamismaqueladedesencriptamientoyestaúlImasemanIeneensecretodemaneraquenisiquieraelencriptadorpuededesencriptarsinoseleautoriza

•  Elalgoritmodeencriptamientodellavepúblicaseconocecomo“EsquemaRSA”porsusautores(Rivest,ShamiryAdleman)ysebasaendoshechos–  Existeunalgoritmoconocidoyrápidoparadeterminarsiunnúmeroesprimo

–  Noseconoceunalgoritmorápidoparadescomponerunnúmeronoprimoenfactoresprimos

Enunexperimentodeterminarsiunnúmerode130dígitoseraprimotomó7minutosmientrasquedeterminarlosdosfactoresprimosde63dígitostomaría40cuadrillonesdeaños(unquadrillón=1,000,000,000,000,000)

Page 160: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

ElesquemadeRSA•  Elijaalazardosnúmerosprimospyqycalculesuproductor=pq•  Elijaalazarunenterograndeequenotengafactoresencomúncon

(p-1)(q-1),dichoenteroeeslallavedeencriptamiento.Elegireesfácil,cualquierenteroprimomayorquepyqfunciona

•  TomelallavededesencriptamientodcomoelinversomulIplicaIvodeemodulo(p-1)(q-1),esdecir•  d*e=1modulo(p-1)(q-1)

•  Publiquelosenterosryeperonod•  ParaencriptaruntextoplanoP(porsimplicidadasumimosqueeltexto

planoesunenteromenorquer)reemplacePporeltextocifradoCmedianteC=P^emodulor

•  ParadesencriptarunapiezadetextocifradoCreempláceloporeltextoplanoPmedianteP=C^dmodulor

•  Determinardconociendosolorye(ynopoq)noesposible,entoncescualquierapuedeencriptarperosololosqueconozcandpuedendesencriptar

Page 161: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

Ejemplo

•  Seap=3yq=5,entoncesr=15y(p-1)(q-1)=8•  Seae=11(unenteroprimomayorqueambospyq)•  Entoncesd*11=1modulo8portantod=3puestoque33mod8=1

•  SieltextoplanoPfueraelentero13•  EltextocifradoseríaC=P^emodulor

•  C=13^11modulo15=1,792,160,394,037mod15=7•  EltextoplanooriginalPsepuedeobtenerhaciendo:

•  P=C^dmodr=7^3mod15=343mod15=13

Page 162: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

FacilidadesdeSQL•  SQLsolosoportacontroldeaccesodiscrecional•  Dosmecanismosindependientesestáninvolucrados– Mecanismodevistas–  Subsistemadeprivilegios

CreateviewLSasselectsname,status,cityFromSwherecity=‘London’GrantselectonLSToDan

Page 163: Bases de Datosdep.fie.umich.mx/~camarena/BasesDatos1.pdf · 2016-09-29 · un sublenguaje de manipulación de datos (DML) y un sublenguaje de definición de datos (DDL) • Un exitoso

FacilidadesdeSQL

•  Grant<listadeprivilegios>on<objeto>to<user>[withgrantopIon]

•  Revoke<listadeprivilegios>on<objeto>from<usuario>[cascade]

•  LaopcióncascadeocasionacuandoselereIraunprivilegioaunusuarioselereIreeseprivilegioalosusuariosquedichousuariolesconcedió

•  BorrarunatablaocasionalaeliminaciónautomáIcadetodoslosprivilegiosasociadosadichatabla