Material BA1 2011.Doc (1)

Embed Size (px)

Citation preview

Base de Datos I Escuela Tecnolgica Superior Universidad de Piura Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 2 Tabla de contenido TEORIA GENERAL DE SISTEMAS .................................................................................................................... 4 INTRODUCCIN .............................................................................................................................................. 4 OBJETIVO DE LOS SISTEMAS DE BDD ....................................................................................................... 4 ABSTRACCIN DE DATOS ............................................................................................................................ 4 MODELO DE DATOS ....................................................................................................................................... 5 INSTANCIA Y ESQUEMAS ............................................................................................................................. 7 INDEPENDENCIA DE DATOS ........................................................................................................................ 7 LENGUAJE DE DEFINICIN DE DATOS (DDL) ........................................................................................ 7 LENGUAJE DE MANIPULACIN DE DATOS(DML) ................................................................................ 8 GESTOR DE BASE DE DATOS ....................................................................................................................... 8 ADMINISTRADOR DE BASE DE DATOS ..................................................................................................... 9 LOS USUARIOS DE LA BASE DE DATOS .................................................................................................... 9 ESTRUCTURA DEL SISTEMA GLOBAL ..................................................................................................... 10 MODELO ENTIDAD - RELACIN ................................................................................................................... 12 ENTIDADES Y CONJUNTOS DE ENTIDADES ........................................................................................... 12 RELACIONES Y CONJUNTOS DE RELACIONES ...................................................................................... 12 ATRIBUTOS .................................................................................................................................................... 12 RESTRICCIONES DE ASIGNACIN (MAPPING) ...................................................................................... 13 CLAVES ........................................................................................................................................................... 14 DIAGRAMA ENTIDAD-RELACION ............................................................................................................. 15 REDUCCION DE LOS DIAGRAMAS E-RA TABLAS ............................................................................... 16 GENERALIZACION ........................................................................................................................................ 17 AGREGACIN ................................................................................................................................................ 18 DISEO DE UN ESQUEMA DE BASE DE DATOS DE E-R ....................................................................... 19 DICCIONARIO DE DATOS ................................................................................................................................ 20 DEFINICIN .................................................................................................................................................... 20 CONVENCIONALISMOS USADOS .............................................................................................................. 20 FORMATO DE LAS DEFINICIONES DEL DICCIONARIO DE DATOS ................................................... 20 MODELO RELACIONAL ................................................................................................................................... 22 ESTRUCTURA DELA BASE DE DATOS ................................................................................................... 22 LENGUAJES RELACIONALES COMERCIALES ........................................................................................ 23 RESTRICCIONES DE INTEGRIDAD ................................................................................................................ 35 RESTRICCIONESDE DOMINIO .................................................................................................................. 35 INTEGRIDAD REFERENCIAL ...................................................................................................................... 35 DEPENDENCIAS FUNCIONALES: ............................................................................................................... 37 CIERRE DE UN CONJUNTO DE DEPENDENCIASFUNCIONALES ....................................................... 38 RECUBRIMIENTO CANONICO: ................................................................................................................... 39 DISEO DE BASES DE DATOS RELACIONALES ......................................................................................... 41 PELIGROS EN EL DISEO DE BDD RELACIONALES ............................................................................. 41 Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 3 NORMALIZACION POR MEDIO DE DEPENDENCIAS FUNCIONALES ................................................ 42 FORMA NORMAL DE BOYCE-CODD ......................................................................................................... 44 TERCERA FORMA NORMAL ....................................................................................................................... 45 COMPARACION DE BCNF Y 3NF ................................................................................................................ 46 DEPENDENCIAS MULTIEVALUADAS ....................................................................................................... 48 NORMALIZACIN ............................................................................................................................................. 50 MOTORES DE PERSISTENCIA ......................................................................................................................... 52 MODELO ORIENTADO A OBJETOS ........................................................................................................... 52 MODELO RELACIONAL ............................................................................................................................... 53 APLICACIONES TRADICIONALES ............................................................................................................. 54 BASES DE DATOS ORIENTADAS A OBJETOS ......................................................................................... 55 MOTORES DE PERSISTENCIA ..................................................................................................................... 55 OPCIONES PARA MOTORES DE PERSISTENCIA ..................................................................................... 56 Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 4 TEORIA GENERAL DE SISTEMAS INTRODUCCIN Unsistemadegestindebasededatos(DBMS)consisteenunacoleccindedatosinterrelacionadosyun conjuntodeprogramasparaaccederaesosdatos.LacoleccindedatosnormalmentedenominadaBASEDE DATOS (BDD) contiene informacin acerca de una empresa determinada. El objetivo primordial de un sistema de gestin de base de datos es proporcionar un entorno que sea ala vez conveniente y eficiente para ser utilizado al extraer y almacenar informacin de la BDD. Los sistemas de BDD estn diseados para gestionar grandes bloques de informacin y mantener la seguridad de la informacin almacenada, pese a la cada o intento de acceso no autorizados. Si los datos son compartidos por varios usuarios, el sistema debe evitar posibles resultados anmalos. La gestin de datos implica tanto la definicin de la estructura para el almacenamiento de la informacin como la previsin de mecanismos para la gestin de la informacin. OBJETIVO DE LOS SISTEMAS DE BDD Un sistema de procesamiento de archivos est apoyado por un sistema operativo convencional. Los registros Varios ArchivosDiferente nmero de Programa de aplicacin Almacenamos Estos sistemas tienen un nmero de desventajas importantes: 1.Redundancia e inconsistencia de datos. 2.Dificultad de acceso a los datos. 3.Aislamiento de los datos (datos en diferentes archivos y condiferentes formatos. Es difcil escribir nuevos programas). 4.Anomalas de acceso concurrente. 5.Problemas de Seguridad. 6.Problemas de Integridad(Restricciones de consistencia). ABSTRACCIN DE DATOS UnobjetivoimportantedeunsistemadeBDDesproporcionaralosusuariosdeunavisinabstractadelos datos. Existen diversos niveles de abstraccin. As: 1.NIVEL FSICO.- Es el ms bajo y describe como se almacenan los datos 2.NIVEL CONCEPTUAL.- Es el nivel intermedio y describe que datos son realmente almacenados en la BDD y las relaciones que existen entre los datos. Aqu se describe la BDD completa en trminos de un nmero pequeo de estructuras relativamente sencillas aunque en elmundo fsico no es as. Este nivel es usado por el administrador de la BDD, quien decide que informacin deben guardar. 3.NIVELDEVISIONES.EselnivelmsaltodeabstraccinydescribepartedelaBDDcompleta. MuchosusuariosdelsistemadeBDDnolesinteresalatotalidaddelainformacin,losusuariossolo necesitanunapartedelainformacin(solonecesitanunapartedelaBDD).Elsistemapuede proporcionar muchas visiones para la misma BDD. Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 5 ..... REGISTROS: Cuentas(Campos: nmero y saldo) Empleado (Campos: nombre y salario) Clientes (Campos: nombre, calle y ciudad) NIVELFSICO:Unregistropuededescribirsecomounbloquedeposicionesdememoriaconsecutivas(por ejemplo palabras o bits). NIVEL CONCEPTUAL: Cada uno de los registros se describe por medio de una definicin de tipo y se define la interrelacin entre estos tipos de registros. NIVEL DE VISIN: Se definen varias visiones de la BDD (Los cajeros solo ven la parte de la BDD que tiene informacin sobre las cuentas de los clientes). MODELO DE DATOS Para describir la estructura de una BDD es necesario definir el concepto de modelo de dato. Un MODELO DE DATOesunacoleccindeherramientasconceptualesparadescribirdatos,relacionesentreellos,semntica asociada a los datos y restricciones de consistencia. Los modelos de datos se dividen e tres grupos: Modelo Lgico Basado en Objetos. Modelo Lgico Basado en Registros. Modelo Fsico de Datos. -MODELOLGICO BASADO ENOBJETOS.-Seusan paradescribir datos en losniveles conceptualy devisin. Se caracterizan por elhecho dequeproporcionan capacidad deestructuracin bastanteflexibley permiten especificar restricciones de datos. Los ms extensamente conocidos son: - Modelo Entidad Relacin - Modelo Orientado a Objetos - Modelo Infolgico - Modelo Binario - Modelo Semntico de Datos - Modelo Funcional de Datos MODELOENTIDADRELACIN.-Sebasaenunapercepcindeunmundoreal,consisteenuna coleccin de objetos bsicos llamados entidades y relaciones entre estos objetos. Una entidad es un objeto que se distingue de otro objeto por medio de un conjunto de atributos. Una relacin es una asociacin entre varias entidades. Calle Nombre Ciudad Nmero Saldo Cliente CtaCli Cuenta Visin 1Visin 2Visin 3Visin N Nivel Conceptual Nivel Fsico Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 6 MODELOORIENTADOA OBJETOS.-Se basa en unacoleccin deobjetos. Un objeto contienevalores almacenadosenvariablesinstanciasdentrodelobjeto.Unobjetotambincontienepartedecdigoque operasobreelobjeto,estaspartessellamanMTODOS.Losobjetosquecontienenlosmismostiposde valores y los mismos mtodos se agrupan en clase (una clase puede ser vista como una definicin de TYPE para objeto). La nica forma en la que un objeto puede acceder a los datos de otro objeto es invocando a los mtodos de ese objeto, esto se llama Envo de un mensaje al objeto. Variable Instancia = Nmero y Saldo Mtodo=Inters de Pago Si vara la tasa de inters -- Slo vara el mtodo.Otras BDD tendran que cambiar varios Programas de Aplicacin. -MODELOLGICOBASADOENREGISTROS.-Seutilizanparadescribirdatosenlosmodelos conceptualyfsico.SellamanasporquelaBDDestestructuradaenregistrosdeformatofijodevarios tipos.Cadatipoderegistrodefineunnmerofijodecamposoatributosycadacampoesnormalmentede longitud fija (esto simplifica la implementacin del nivel fsico en la BDD). Estos modelos de datos no incluyen un mecanismo para la representacin directa de cdigos en la BDD. En cambio hay lenguajes separados que se asocian con el modelo para expresar consultas y actualizaciones de la BDD. Los modelos de datos ms ampliamente usados son:Modelo relacional. Modelo de red. Modelo jerrquico. MODELO RELACIONAL:Representa los datos y las relaciones entrelos datos mediante una coleccin de tablas, cada una de las cuales tienen un nmero de columnas con nombre nico. CLIENTES CUENTA NombreCalleCiudadNmeroNmeroSaldo Jos CastroAv. H 23Talara9009001,000 Luis LpezAv. Grau 572Piura556556 500 Luis LpezAv. Grau 572Piura6476471,520 Rita RuizAv. Grau 572Piura647 MODELODERED:Serepresentamedianteunacoleccinderegistrosylasrelacionesentrelosdatosse representan mediante enlaces, los cuales pueden verse como punteros. Los registros de laBDD se organizan como una coleccin de grafos arbitrarios. Jos CastroAv. H 23Talara 9001,000 Luis LpezAv. Grau 572Piura 556 500 Rita RuizAv. Grau 572Piura 6471,520 MODELOJERRQUICO:Essimilaralmodelodered,enelsentidodequelosdatosylasrelacionesse representanmedianteregistrosyenlacesrespectivamente.Sediferencianenquelosregistrosestn organizados como una coleccin de rboles en vez de grafos arbitrarios. Jos Castro Av. H 23 TalaraLuis Lpez Av. Grau 572 PiuraRita Ruiz Av. Grau 572 Piura 9001,000556 5006471,5206471,520 Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 7 DIFERENCIAS:LosmodelosRelacionalessediferenciandelosmodelosderedyjerrquicoenqueno usan punteros o enlaces.El modelo relacional conecta registros mediante los valores que estos contienen.Se define una base matemticamente formal. -MODELOFSICODEDATOS.-Seusanparadescribirdatosenelnivelmsbajo.Adiferenciadelos modelos lgicos de datos, hay muy pocos en uso. Dos de los ms ampliamente conocidos son: - Modelo Unificado. - Memoria de Elementos. Los modelos fsicos de datos capturan aspectos de la implementacin de los sistemas de BDD. INSTANCIA Y ESQUEMAS Una BDD cambia a lo largo del tiempo segn se aada o elimina informacin. La coleccin de informacin almacenada en la base de datos en un determinado momento en el tiempo se llama una Instancia de la BDD. El diseo global de la BDD se llama Esquema de la BDD. Los esquemas se cambian muy raras veces o nunca. Los sistemas de BDD tienen varios esquemas: (en funcin de su nivel de abstraccin)-Esquema Fsico -Esquema Conceptual y -Subesquemas INDEPENDENCIA DE DATOS Es la capacidad de modificar una definicin de un esquema en un nivel sin afectar la definicin de un esquema en el nivel superior siguiente. Hay dos niveles: 1.Independencia Fsica de Datos.- Es la capacidad de modificar el esquema fsico sin provocar que se vuelvan aescribirlosprogramasdeaplicacin.Enalgunasocasionessonnecesariaslasmodificacionesenelnivel fsico para mejorar el funcionamiento del sistema. 2.IndependenciaLgicadeDatos.-Eslacapacidaddemodificarelesquemaconceptualsinprovocarquese vuelvanaescribirlosprogramasdeaplicacin.Lasmodificacionesdelnivelconceptualsonnecesarias siempre que se altere la estructura lgica de la BDD. LaIndependenciaLgicadeDatosesmsdifcildelograrquelaIndependenciaFsicadeDatos,yaquelos programas de aplicacin son fuertemente dependientes de la estructura lgica de los datos a los que acceden. LENGUAJE DE DEFINICIN DE DATOS (DDL) UnesquemadeBDDseespecificapormediodeunconjuntodedefinicionesqueseexpresamedianteun lenguaje especial llamado Lenguaje de Definicin de Datos (DDL Data Definition Languaje). ElresultadodelacompilacindesentenciasdelDDL,esunconjuntodetablaslascualessealmacenanenun archivo especial llamado DICCIONARIO DE DATOS (o directorio). El diccionario de datos es un archivo que contiene METADATOS, es decir datos sobre los datos. Estos archivos se consultan antes de leer o modificar los datos reales en el sistema de BDD. LaestructuradealmacenamientoylosmtodosdeaccesousadosporelsistemadeBDDseespecificanpor mediodeunconjuntodedefinicionesenuntipoespecialdeDDLllamadoLenguajedeAlmacenamientoy Definicin de Datos. La compilacin de estas definiciones da como resultado un conjunto de instrucciones que especifican los detalles de implementacin de los esquemas de BDD que normalmente se esconden de los usuarios. Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 8 LENGUAJE DE MANIPULACIN DE DATOS(DML) (Data Manipulation Languaje) Es un lenguaje que capacita a los usuarios a acceder o manipular datos segn estn organizados por el modelo de datos adecuado. Existen dos tipos: Procedimentales: Los DML requieren que el usuario especifique que datos necesitan y como obtenerlos. NoProcedimentales:LosDMLrequierenqueelusuarioespecifiquequedatossenecesitan,sinespecificar cmo obtenerlos. Los DML No Procedimentales normalmente son ms sencillos de aprender y usar que los Procedimentales. Sin embargo,puestoqueelusuarionotienequeespecificarcmoconseguirlosdatos,estoslenguajespueden generar cdigos que no sean tan eficientes como el producido por los lenguajes Procedimentales. Unaconsulta es unasentenciaquesolicita larecuperacin deinformacin. El trozo deun DML queimplicala recuperacin de informacin se llama: Lenguaje de consultas. GESTOR DE BASE DE DATOS UngestordeBDDesunmdulodeprogramaqueproporcionaelinterfazentrelosdatosdebajonivel almacenados en la BDD y los programas de aplicacin y de consultas hechos al sistema. El gestor de BDD es responsable de las siguientes tareas: -Interaccin con el gestor de archivos -Implantacin de la integridad -Implantacin de la seguridad -Copia de seguridad y recuperacin-Control de concurrencias. INTERACCIN CON EL GESTOR DE ARCHIVOS El gestor de BDD traduce las distintas sentencias delDML a comandos del sistema de archivos de bajo nivel.As elgestor deBDDes responsabledelverdadero almacenamiento, recuperacin y actualizacin de los datos en la BDD. IMPLANTACIN DE LA INTEGRIDAD Losvalores delos datos debensatisfacer ciertos tipos de restricciones deconsistencia. El administrador de BDD debe especificar explcitamente estas restricciones.El gestor de BDD puede determinar si las actualizaciones a la BDD da como resultado la violacin de las restricciones, si as es, se debe tomar la accin apropiada. IMPLANTACIN DE LA SEGURIDAD NotodoslosusuariosdelaBDDnecesitanteneraccesoatodosucontenido.Estrabajodelgestorde BDD que se cumplan con estos requisitos. COPIA DE SEGURIDAD Y RECUPERACIN EsresponsabilidaddelgestordeBDDdetectarfallasyrestaurarlaBDDalestadoqueexistaantesde ocurrirelfallo.Estosellevaacabonormalmenteatravsdelainiciacindevariosprocedimientosde copia de seguridad y recuperacin. CONTROL DE CONCURRENCIAControlar la interaccin entre los usuarios concurrentes es otra responsabilidad del gestor de BDD. Los sistemas de BDD diseados para utilizarse en computadoras personales pequeas, pueden no tener todas las caractersticas mencionadas anteriormente. Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 9 ADMINISTRADOR DE BASE DE DATOS Una de las razones principales para tener Sistemas de Gestin de BDD es tener control central de los datos y de losprogramasqueaccedenaesosdatos.Lapersonaquetienedichocontrolsobreelsistemasellama administrador de BDD (Database Administrator: DBA). Las funciones del administrador de BDD incluyen: -Definicinde esquema. -Definicin de la estructura de almacenamiento y del mtodo de acceso. -Modificacin del esquema y de la organizacin fsica. -Concesin de autorizacin para el acceso a los datos. -Especificaciones de las restricciones de integridad. DEFINICIN DE ESQUEMAS El esquema original de la BDD se crea escribiendo un conjunto de definiciones que son traducidas por el compilador de DDL a un conjunto de tablas que son almacenadas permanentemente en un diccionario de datos. DEFINICIN DE LA ESTRUCTURA DE ALMACENAMIENTO DEL MTODO DE ACCESO Secreanescribiendounconjuntodedefinicinquesontraducidasporelcompiladordelenguajede almacenamiento y definicin de datos. MODIFICACIN DEL ESQUEMA Y DE LA ORGANIZACIN FSICA Son relativamente poco comunes, pero se logran escribiendoun conjunto de definiciones que son usadas porelcompiladorDDLobienporelcompiladordellenguajedealmacenamientoydefinicindedatos para generar modificaciones a las tablas internas apropiadas. CONCESIN DE AUTORIZACIN PARA EL ACCESO A LOS DATOS La concesin de diferentes tipos de autorizacin permite al administrador de la BDD regular que parte de la BDD van a poder ser accedidas por varios usuarios. ESPECIFICACIN DE LAS RESTRICCIONES DE INTEGRIDAD Las restricciones de integridad se mantienen en una estructura especial del sistema que consulta el gestor de BDD cada vez que tiene lugar una actualizacin en el sistema. LOS USUARIOS DE LA BASE DE DATOS ElobjetivoprimordialdeunsistemadeBDDesproporcionarunentornopararecuperarinformacindeunaBDDyalmacenarlainformacinenlaBDD.HaycuatrotiposdistintosdeusuariodeunsistemadeBDD, diferenciados por la forma en que interactan con el sistema: -Programadores de aplicacin-Usuarios sofisticados -Usuarios especializados -Usuarios ingenuos PROGRAMADORES DE APLICACIONESLos profesionales de computacin queinteraccionan con el sistemapor medio de llamadas en DML, las cualesestnescritasenunlenguajeprincipal(Cobol,Pascal,C,etc.).Estosprogramassedenominan programas de aplicacin.Los lenguajes de 4ta generacin a menudo incluyen caractersticas especiales para facilitar la generacin deformasylapresentacindedatosenlaspantallas.LamayoradesistemasdeBDDcomerciales incluyen un lenguaje de 4ta generacin. USUARIOS SOFISTICADOSInteraccionan con elsistemasin escribir programas. Escribensus preguntas en un lenguajedeconsultas de BDD. Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 10 USUARIO ESPECIALIZADOS Algunos usuarios sofisticados escriben aplicaciones de BDD especializadas que no encajan con el marco tradicional de procesamiento de datos. Ejemplo: Diseo asistido por computadora. Sistemas expertos, etc. USUARIOS INGENUOS Interactanconelsistema,invocandoaunosdelosprogramasdeaplicacinpermanentesquesehan escrito anteriormente. ESTRUCTURA DEL SISTEMA GLOBAL Un sistema de BDD se divide en mdulos que tratan cadaunade las responsabilidades del sistema general. El sistema operativo (SO) proporciona nicamente los servicios ms bsicos por lo que el diseo de un sistema de BDD debe incluir la interfaz entre el SO y Sistema de BDD. Los componentes funcionales son: 1.Gestor de archivos 2.Gestor de base de datos3.Procesador de consultas4.Precompilador de DML 5.Compilador de DDL 1.Gestor de Archivos.- Gestiona la asignacin de espacio en la memoria del disco y de la estructura de datos usada para representar lainformacin almacenada en el disco. 2.GestordeBasededatos.-Proporcionaelinterfazentrelosdatos(bajonivel)delaBDDylos programasde aplicacin ylas consultas que se hacen al sistema. 3.ProcesadordeConsultas.-Traducesentenciasenunlenguajedeconsultasainstruccionesdebajo nivel que tiene el gestor de base de datos.4.PrecompiladordeDML.-ConviertelassentenciasenDMLincorporadasenunprogramade aplicacina llamadas normales a procedimientos en el lenguaje principal. 5.CompiladordeDDL.-ConviertesentenciasenDMLenunconjuntodetablasquecontienen metadatos. Ademsserequierenvariasestructurasdedatoscomopartedelaimplementacindelsistemafsico, incluyendo: Archivos de datos: que almacena la BDD. Diccionario de datos: que almacena Metadatos sobre la estructura de la BDD. ndices: Que proporciona acceso rpido a los elementos de datos que contienen valores determinados. Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 11 ESTRUCTURA DE SISTEMA GLOBAL USUARIOS Usuario Ingenuo Programador de Usuarios Administrador de AplicacinSofisticadosBase de datos Interface de ProgramasConsultas Planificacin de AplicacinBase de Datos Precompilador de DMLProcesador de consultas Compilador de DDL Cdigo ObjetoGestor de de Programas de BDD aplicacin SISTEMA DEGESTIN DE BDD Gestorde Archivos Archivos de datos Diccionario de Datos Almacenamiento en disco Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 12 MODELO ENTIDAD - RELACIN Elmodelodedatosentidadrelacin(E-R)sebasaenlapercepcindeunmundorealqueconsisteenun conjuntodeobjetosbsicosllamadosentidadesyrelacionesentreestosobjetos.Sedesarrollparafacilitarel diseo de BDD permitiendo la especificacin de un esquema empresarial. Este esquema representa la estructura lgica global de la BDD. ENTIDADES Y CONJUNTOS DE ENTIDADES Una entidad es un objeto que existe y es distinguible de otros objetos. Una entidad puede ser concreta tal como una persona o un libro, o puede ser abstracta como un da festivo o un concepto. UnconjuntodeentidadesesunconjuntodeentidadesdelmismotipoEjemplo:Clientes,Empleados,Cuentas. Los conjuntos de entidades no necesitan ser disjuntos(Clientes, Empleados). UnaentidadestrepresentadaporunconjuntodeATRIBUTOS(Cuenta:#cuenta,saldo)(Cliente:Nombre, Segurosocial,Ciudad).Paracadaatributohayunconjuntodevalorespermitidos,llamadosDOMINIOdeese atributo. Nombre = Conjunto de todas las cadenas de texto de una determinada longitud. Num-cuenta = Conjunto de todos los enteros positivos. ElconceptodeConjuntodeEntidadescorrespondealanocindeTIPOenunlenguajedeprogramacin. As una variable corresponde al concepto de una Entidad en el modelo E-R. Ejemplo: Sucursal= { Nombre-Sucursal , Ciudad-Sucursal , Activo} Cliente= { Nombre-Cliente , Seguro Social ,Calle ,Ciudad-Cliente} Empleado = { Nombre-Empleado , Nmero telefnico} Cuenta= { Nmero-Cuenta , Saldo} Transaccin ={ Nmero-Transaccin , Fecha , Cantidad} RELACIONES Y CONJUNTOS DE RELACIONES Una relacin es una asociacin entre varias entidades. Cliente = HarrisCuenta = #401 Un conjunto de relaciones es unconjunto de relaciones del mismo tipo. Ejemplo : Cuenta - Cliente. La mayora de los conjuntos de relaciones en un sistema de BDD son binarios. Ocasionalmente, sin embargo hay conjuntosderelacionesqueimplicanmsdedosconjuntosdeentidades.(Relacinternaria:Cliente-Cuenta- Sucursal). Siempreesposiblesustituirunconjuntoderelacionesnobinariasporvariosconjuntosderelacionesbinarios distintos.LafuncinquejuegaunaentidadsellamaPAPELLospapelesnormalmentesonimplcitosynose suelenespecificar,sinembargosontilescuandoelsignificadodeunarelacinnecesitaserclasificado.Una relacin puede tener atributos descriptivos (Fecha Cta.CLi). ATRIBUTOS Es posible definir un conjunto de entidades y sus relaciones de varias formas diferentes. La diferencia est en la forma en que tratamos los diversos atributos. Ejemplo: EEmpleado = {Nombre-Empleado, Nmero-telefnico} Si consideramos un telfono como una entidad en si mismo. Cada empleado tiene un telfono. Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 13 EEmpleado = {Nombre-Empleado } ETelfono = { Nmero.telefnico, Situacin} REmpl-Tel= { Nombre-Empleado, Nmero.telefnico} Un empleado puede tener 0 o varios telfonos y un telfono puede ser asignado a varios empleados. La distincin entre que constituye un atributo y que constituye un conjunto de entidades depende principalmente de la estructura de la empresa que se est modelando y de la semntica asociada con el atributo en cuestin. RESTRICCIONES DE ASIGNACIN (MAPPING) UnaplanificacinE-Rdeunaempresapuededefinirciertasrestriccionesalascualesdebenajustarselos contenidosdeunaBDD.Unarestriccinimportanteesladecardinalidadesdeasignacinqueexpresanel nmerodeentidadesconlasquesepuedeasociarotraentidadmedianteunconjuntoderelaciones.Las cardinalidades de asignacin pueden ser una de las siguientes: UNA A UNAUna entidad en A est asociada a lo sumo con una entidad en B.Una entidad en B est asociada a lo sumo con una entidad en A. UNA A MUCHAS Una entidad en A est asociada a muchas entidades en B.Una entidad en B est asociada a lo sumo con una entidad en A. MUCHAS A UNA Una entidad en A est asociada a lo sumo con una entidad en B. Una entidad en B est asociada a muchas entidades en A. MUCHAS A MUCHAS Una entidad en A est asociada a muchas entidades en B.Una entidad en B est asociada a muchas entidades en A. b1 b2 b3 a1 a2 a3 1 11 1 a1 a2 a3 b1 b2 b3 b4 b5 1 M 1 M b1 b2 b3 1 M a1 a2 a3 a4 a5 1 MM M M M a1 a2 a3 a4 b1 b2 b3 b4 Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 14 La cardinalidad de asignacin adecuada para un conjunto de relaciones determinado obviamente es dependiente del mundo real que el conjunto de relaciones est modelando. La dependencia de existencia constituye otra clase de restricciones. Si la existencia de la entidad X depende de la existencia de la entidad Y se dice que Y es una entidad DOMINANTE y X es una entidad SUBORDINADA. CLAVES Conceptualmente las entidades y las relaciones son distintas pero desde la perspectiva de una BDD la diferencia entreellasdebeexpresarseentrminosdesusatributos.Elconceptodesuperclavenospermitehacertales distinciones. Una superclave es un conjunto de uno o ms atributos que considerados conjuntamente nos permiten identificar de forma nica a una entidad y a un conjunto de entidades EntidadCliente = {nombre-cliente, seguro-social, calle, ciudad} Superclaves: { seguro-social } { nombre-cliente, calle } { nombre-cliente, seguro-social } Unaclave candidata es un conjunto de superclaves mnimas. Claves Candidatas: { seguro-social } { nombre-cliente, calle } UnaclaveprimariaesunaclavecandidataqueeligeeldiseadordelaBDDcomoelmedioprincipalde identificar entidades dentro de un conjunto de entidades. Clave Principal: { seguro-social } Esposiblequeunconjuntodeentidadesnotengaatributossuficientesparaformarunaclaveprimaria.Al conjuntodeentidadesdeestetiposedenominaCONJUNTODEENTIDADESDEBILES.Alconjuntode entidades que si tienen una clave primaria se denominan CONJUNTO DE ENTIDADES FUERTES. Las entidades dbiles y fuertes estn relacionadas con las dependencias de existencia. Entidad FuerteEntidad Dominante Entidad Dbil Entidad Subordinada Unaclaveprimariadeunconjuntodeentidadesdbilesestformadaporlaclaveprimariadelconjuntode entidades fuertes de la que depende su existencia y su discriminador. El discriminador es un conjunto de atributos que permite que se haga distincin entre las entidades dbiles. Ej. : E (Transaccin) ={Num-trans, fecha , saldo} CP = Num-cuenta CP = Num-cuenta, Num-trans. La composicin de la clave primaria depende de la cardinalidad de asignacin y de la estructura de los atributos asociados con el conjunto de relaciones: Si el conjunto de relaciones no tiene atributo asociados, entonces el conjunto de atributos forma una superclave. Esta superclave es una clave principal si la cardinalidad de asignacin es muchas a muchas. Cuenta Transaccin Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 15 Empleado Sielconjuntoderelacionestienevariosatributosasociados,entoncesunasuperclaveestformadaporlos atributos anteriormente descritos con la finalidad de agregar uno o ms atributos asociados. DIAGRAMA ENTIDAD-RELACION Una base de datos puede representarse grficamente por medio de un diagrama E-R. Consta de los siguientes componentes. RectngulosRepresentan conjuntos de entidades ElipseRepresentan atributos Rombos Representan conjunto de relaciones LneasEnlazan atributos a conjuntos de entidades y estos aconjuntos de relaciones. Cardinalidad uno Cardinalidad muchos Los papeles que juegan las entidades indican en los DERetiquetando las lneas que conectan los rombos alos rectngulos. direcfechasaldo nomcli ciudad#cta. c/c NombreTelef Director Trabaja para Trabajador AB A B AB AB AB AB ClienteCuenta Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 16 Cuenta Transaccin ClienteCuentaTransaccin Fecha Cantidad #cta.Saldo#trans 1M Entidad FuerteBITCORAEntidad Dbil NomsucCiudad Activo Conjuntode Relaciones No Binarias S.S Direc #cta. NomcliCiudadSaldo

CAB MM REDUCCION DE LOS DIAGRAMAS E-RA TABLAS Una BDD que se ajusta a un diagramaE-R puede representarse por medio de una coleccin de tablas. Para cada conjunto de entidades y para cada conjunto de relaciones en la BDD, existe un tabla nica a la que se le asigna el nombre del conjunto de entidades o del conjunto de relaciones correspondiente. Cada tabla tiene un nmero de columnas que, a su vez, tiene nombres nicos. Ciudad S.SSaldo Fecha NomcliCalle#cta.#trans Cta Bita-cli cora -REPRESENTACIN DE CONJUNTO DE ENTIDADES FUERTES CUENTA CLIENTE Numcta.SaldoNomcliSeg.SocCalleCiudad 2591000Ruiz32-5151LimaPiura 6302000Zapata35-9384CallaoSullana 400500Otolla32-5847CuscoTalara 701400Allain32-8425TacnaCastilla 1891500Alama33-1288PiuraTumbes -REPRESENTACIN DE CONJUNTO DE ENTIDADES DBILES Se representan mediante la unin de la clave primaria de la entidad fuerte del que depende con los atributos del conjunto de entidades dbiles. Ejemplo: Transaccin Cliente Cuenta Sucursal Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 17 TRANSACCIN NumctaNumtransFechaCantidad 259511 mayo 1990+50 6301017 mayo 1990+70 40010323 mayo 1990-300 259607 junio 1990-44 8015815 junio 1990+900 259717 junio 1990-80 -REPRESENTACIN DE CONJUNTOS DE RELACIN Medianteunatablaquecontengancolumnasdistintasconlosatributosdelconjuntoderelacionesylas claves primarias del conjunto de entidades que relacionan. Relacin Cuenta-Cliente --->Atributo {fecha} EntidadCliente -------------> CP {SS} Entidad Cuenta --------------> CP {Numcta} Seguro SocialNumCtaFecha 32-517125917 junio 1990 32-938163017 mayo 1990 27-812340023 mayo 1990 12-113370115 junio 1990 Elcasodeconjuntoderelacionesqueconectanunconjuntodeentidadesdbilesconsucorrespondiente conjuntodeentidadesfuertesesespecial.Estasrelacionessonmuchosaunaynotienenatributos descriptivos.Adems,laclaveprimariadeunconjuntodeentidadesdbiles,incluyelaclaveprimariade conjunto deentidades fuertes. Entidad: Cuenta = { Numcta } CP Transaccin = { Numcta, Numtrans } CP RelacinBitcora = { Numcta, Numtrans }Tabla EntidadTransaccin = { Numcta, Numtrans , fecha , cantidad } Tabla La tabla bitcora es redundante y no necesita presentarse en una representacin tabular en un diagrama E-R. GENERALIZACION En una relacin de inclusin que existe entre un conjunto de entidades del nivel ms altoy uno o ms conjuntos de nivel ms bajo. NumctaSaldo Entidades del Nivel ms Alto ISA Entidades del Nivel ms Bajo Saldo deudortasainters Cuenta CtaAhorrosCtaCorriente Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 18 Empleado Maquinaria Proyecto LageneralizacinserepresentapormediodeuncomponentetriangularetiquetadoISA(significaesunoes una). Ejemplo: Unacuentadeahorros es unacuenta. Lageneralizacin seusaparahacer resaltar los parecidos entre tiposdeentidadesdenivelmsbajoyocultarsusdiferencias.Losatributosdelosconjuntosdeentidadesde nivel ms alto se dice que son heredados por los conjuntos de entidades de nivel ms bajo. Existen dos mtodos para transformar un DER que incluyan generalizacin en forma tabular. 1.- Crear una tabla para el conjunto de entidades del nivel ms alto. Para cada conjunto de entidades de nivel ms bajo crear una tabla que incluye una columna para cada uno de los atributos de ese conjunto de entidades ms una columna para cada atributo de la clave primaria del conjunto de entidades del nivel mas alto. Cuenta= { Numcta, saldo } CuentaCorriente = { Numcta, saldodeudor } Cuenta de Ahorros = { Numcta, tasainteres } TABLA 1 CUENTACTA AHORROSCTA CORRIENTE NumctaSaldoNumctaTasaInteresNumctaSaldoDeudor 2.- Crear una tabla que incluya una columna para cada uno de los atributos de ese conjunto de entidades ms una columna para cada atributo del conjunto de entidades del nivel ms alto. CuentaCorriente = { Numcta, saldo, saldodeudor } CuentaAhorros = { Numcta, saldo, tasainteres } TABLA 2 CTAAHORROSCTACORRIENTE NumctaSaldoTasaInteresNumctaSaldoSaldoDeudor AGREGACIN UnalimitacindelmodeloE-Resquenosepuedeexpresarrelacionesentrerelaciones.Larelacinesuna abstraccin en la cual las relaciones se tratan como entidades de nivel ms alto. Un conjunto de entidades de este tipo se trata de la misma forma que cualquier otro conjunto de entidades. CodempNomempCodproy Nomproy Trabajo ISA

CodMaqNomMaq Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 19 CodempNomemp Codproy Nomproy Nivel ms alto Trabajo ISA

Nivel ms bajo CodMaq NomMaq La transformacin de un diagrama E-R que incluyen agregacin a una forma tabular es directa. Entidades: EMPLEADOPROYECTOMAQUINARIA CodEmpNomEmpCodProyNomProyCodMaqNomMaq Relaciones: TRABAJOISA CodEmpCodProyCodEmpCodProyCodMaq DISEO DE UN ESQUEMA DE BASE DE DATOS DE E-R El modelo E-R proporciona un alto grado de flexibilidad en el diseo de un esquema de BDD para modelar una empresa dada. Entre las decisiones a tomar se encuentran: -El uso de una relacin ternaria o de un par de relaciones binarias. -Siunconceptodeunmundorealseexpresamejormedianteunconjuntodeentidadesoporun conjunto de relaciones. -El uso de un atributo de un conjunto de entidades. -El uso de un conjunto de entidades fuertes o dbiles. -La oportunidad de usar agregacin. -La oportunidad de usar generalizacin. EldiseadordeBDDnecesitaunabuenacomprensindelaempresaquesevaamodelarparatomaresas decisiones. ProyectoEmpleado Maquinaria Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 20 DICCIONARIO DE DATOS DEFINICIN EsunaherramientaquecomplementaalosDiagramasdeFlujodeDatosparalaespecificacintcnicadelos datos. Es un conjunto ordenado de definiciones de todos y cada uno de los elementos del DFD. CONVENCIONALISMOS USADOS Los operadores que se utilizan en las definiciones son:Secuencia:[+] Concatenacin de dos o ms componentes. Seleccin:[ / ] Seleccin de un componente, de dos o ms. Repeticin:{} Repeticin de uno o varios componentes. Agrupacin:() Agrupacin de un conjunto de datos. FORMATO DE LAS DEFINICIONES DEL DICCIONARIO DE DATOS Ficheros Nombre del Fichero: Composicin: {Datos continuos / Definidos en s mismo/ Discretos} Organizacin:Secuencial / Indexado / Directo. Ubicacin: Nota : Datos Continuos Mnemnico : Descripcin : Tipo : (Carcter / Numrico / Fecha / Memo) Longitud : Unidad : (Entero / Moneda) Rango : Datos Definidos en s mismo Mnemnico : Descripcin : Tipo : Longitud : Nota : Datos Discretos Mnemnico :Tipo: Descripcin :Longitud: Valores : Significado: . . . . Nota: Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 21 Ejemplo de Fichero: Nombre del fichero: Materiales Composicin: ( Codmat + Descripmat + Stock + StockMin + Stockmax + Unidad) Datos definidos en s mismo 1)Nombre: Codmat Descripcin: Cdigo que identifica a un materialTipo: carcter Longitud : 10 2)Nombre: Descripmat Descripcin: Detalla las caractersticas propias de un material. Tipo: carcter Longitud: 40 3)Nombre: Stock Descripcin : Especifica la cantidad de materiales que hay en el almacn. Tipo: Numrico. Longitud : 8 4)Nombre: Stockmin Descripcin : Es la cantidad mnima de materiales que debe haber en el almacn. Tipo: Numrico. Longitud : 8 5)Nombre : Stockmax Descripcin: Es la cantidad mxima de materiales que debe haber en el almacn. Tipo: Numrico. Longitud : 8 6) Nombre : Unidad. Descripcin : Es la unidad de medida en la que se expresan los diferentes materiales. Tipo : Carcter. Longitud: 10 Organizacin: Indexado. Nota: Archivo que contiene la nica informacin sobre los materiales de se tienen en la empresa. Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 22 MODELO RELACIONAL Elmodelorelacionalsehaestablecidocomoprincipalmodelodedatosparaaplicacionescomercialesde procesamiento de datos. ESTRUCTURA DELA BASE DE DATOS UnaBDDrelacionalconsisteenunacoleccin detablas,cadaunadelas cuales sele asignaunnombrenico. Una fila de una tabla representa una relacin entre un conjunto de valores. ESTRUCTURA BSICA -Una tabla es una relacin. -Una fila es una tupla. -Una tupla tiene atributos -Un atributo tiene un conjunto de valores llamado dominio. Relacin Depsitos:5 tuplas , 4 atributos NomSucNumCtaNomCliSaldo Piura101Lpez800 Sullana215Benites700 Paita102Sosa400 Talara305Silup350 El alto208Martnez900 Sea la variable tupla t, la primera tupla de la relacin. Usaremos la notacin t [ NomSuc] para indicar el valor de t en el atributo nombre-sucursal, as :t[NomSuc] = Piura t[NumCta] = 101 ESQUEMA DE LA BASE DE DATOS En una BDD debemos diferenciar entre el esquema de la BDD o el diseo lgico y unainstancia de la BDD. Es convenientementedarnombresalesquemadeunarelacin.Adoptamoselconveniodeusarnombresen minsculas para las relaciones y nombres, empezando con una letra mayscula, para los esquemas de relaciones. Esquema_depsito = (nomsuc, numcta, nomcli, saldo)

Esquema de Relacin Si depsito es una relacin sobre el Equema_depsito por: deposito (Esquema_depsito) El esquema de una relacin es una lista de atributos y sus correspondientes dominios, cuando queremos definir los dominios usaremos la notacin: (nombre_sucursal: cadena, numcta: entero, nomcli: cadena, saldo: entero) Ejemplo: Relacin Clientes NomcliCalleCiudad ReyesGrauPiura SullnArequipaSullana ChvezBrasilTalara ZapataTacnaLima BenitesMaranLima Esquema_Cliente = [nomcli, calle, ciudad] Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 23 El uso de atributos comunes en esquemas de relaciones es una forma de relacionar tuplas de distintas relaciones. Ejemplo:Esquema_sucursal = (nomsuc, activo, ciudad) Esquema_cliente = (nomcli, calle, ciudad)Esquema_deposito= (nomsuc, numcta,nomcli, saldo) Esquema_prestamo = (nomsuc , numpres, nomcli, cantidad) CLAVES Las nociones de superclave, clave candidata y clave primaria son iguales a las del modelo E-R. LENGUAJES DE CONSULTAS UnlenguajedeconsultasesunlenguajeenelqueunusuariosolicitainformacindelaBDD.Estoslenguajes son de ms alto nivel que los lenguajes estndar de programacin. Se clasifican en lenguajes procedimentales y lenguajes no procedimentales. LenguajedeConsultaProcedimental.-Elusuarioproporcionaalsistemaparaquerealiceunasecuenciade operaciones de la BDD y poder calcular el resultado deseado. Lenguaje de Consulta No Procedimental.- El usuario describe la informacin deseada sin dar un procedimiento especfico para obtener esa informacin. Estudiaremos dos lenguajes puros que son lgebra relacional y clculo relacional de tuplas LENGUAJES RELACIONALES COMERCIALES SQL (STRUCTURED QUERY LANGUAGE)LENGUAJE DE CONSULTA ESTRUCTUIRADO Esel lenguaje de BDD relacional estndar. El lenguaje SQL tiene varias partes: -LenguajedeDefinicindeDatos(DDL).-ElSQLDDLproporcionardenesparadefiniresquemasde relacin, eliminar relaciones, crear ndices y modificar esquemas de relaciones. -LenguajedeManipulacindeDatosInteractivo(DML).-Incluyeunlenguajedeconsultasbasadoenel lgebrarelacionalyelclculorelacionaldetuplas.Tambinincluyerdenesparainsertar,suprimiry modificar tuplas en la base de datos. -LenguajedeManipulacindeDatosInmerso(DML).-LaformainmersadeSQLestdiseadaparausar dentro del los lenguajes de programacin de propsito general. Tales como el PL/1, Cobol, Coreal, Fortran, C, FoxPro, Visual Basic, etc. -Definicin de Vistas.- El SQL DDL incluye rdenes para definir vistas. -Actualizacin.- El SQL DDL incluye rdenes para especificar derechos de acceso a relaciones y vistas. -Integridad.-LasversionesrecientesdeSQLincluyendoelANSIestndarproporcionanicamenteuna forma limitada de comprobacin de la integridad. -Control de Transacciones.- SQL incluye rdenes para especificar el comienzo y final de las transacciones. ESTRUCTURA BASICA Consta de tres clusulasSELECT, FROM, WHERE SELECT: Corresponde a la operacin de proyeccin del lgebra relacional. Se usapara listar los atributos que se desean en el resultado de una consulta. FROM: Corresponde a la operacin de producto cartesiano del lgebra relacional. Lista las relaciones que se van a utilizar. WHERE:Correspondealpredicadodeseleccindellgebrarelacional.Constadeunpredicadoque implica atributos de las relaciones que aparecen en la clusula FROM. Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 24 SELECTA1 , A2,....,AnFROM R1,R2,......,Rn WHEREp SELECT *: selecciona todos los atributos de todas las relaciones que aparecen en la clusula FROM. Si se omitela clusula WHERE, el predicado p = verdadero. El resultado de una consulta en SQL es por supuesto una relacin. Ejemplo: Encontrar los nombres de todas las sucursales en la relacin depsito. SELECT nomsuc FROM deposito OPERACIONES DE CONJUNTOS Y TUPLAS DUPLICADAS Enloscasosquequeremosforzarlaeliminacindeduplicados,insertamoslapalabraDISTINCTdespusde SELECT. SELECT DISTINCT nomsuc Si queremos quitar duplicados FROM deposito SELECT ALL nomsuc Se especifica explcitamente que no se FROMdeposito eliminan los duplicados. Normalmenteno se utiliza ALL pues ya est implcita. OPERACIONES DE CONJUNTOS: SQL incluye operaciones de: Unin ( ),Intersect ( ), Minus ( ). Ejemplo: Encontrar a todos los clientes que tienen una cuenta en la sucursal de Paita. SELECTDISTINCT nomcli FROM depsito WHERE nomsuc = Paita Ejemplo: Cliente que tenga un prstamo en la sucursal de Paita. SELECTDISTINCT nomcli FROM prstamoWHERE nomsuc = Paita Ejemplo: Encontrar a todos los clientes que tiene una cuenta, un prstamo en la sucursal de Paita. (SELECTDISTINCT nomcli FROM depsito WHERE nomsuc = Paita) UNION (SELECTDISTINCT nomcli FROM prstamoWHERE nomsuc = Paita) Ejemplo: Cliente que tiene una cuentay un prstamo. (SELECTDISTINCT nomcli FROM depsito WHERE nomsuc = Paita) INTERSECT (SELECTDISTINCT nomcli FROM prstamoBase de Datos I Escuela Tecnolgica Superior - UDEPPgina 25 WHERE nomsuc = Paita) Ejemplo: Cliente de la sucursal de Paita que tienenuna cuenta ,pero no un prstamo. (SELECTDISTINCT nomcli FROM depsito WHERE nomsuc = Paita) MINUS (SELECTDISTINCT nomcli FROM prstamoWHERE nomsuc = Paita) PREDICADOS Y CONECTORES Ejemplo: Encontrar el nombre y la ciudad de todos los clientes que tienen un prstamo en alguna sucursal. SELECTDISTINCT cliente. nomcli , ciudad FROM prstamo, cliente WHERE prstamo. nomcli=cliente. Nomcli -SQL usa los conectores lgicos AND ( . ),OR( v),NOT ( ) -Las expresiones aritmticastienen los operadores+ , - , *y/ operando sobre constantes o valores de tuplas. -BETWEEN: Operador de comparacin. Ejemplo: Encontrar el nombre y la ciudad de todos los clientes de que tienen un prstamo en la sucursal de Piura. SELECT DISTINCT cliente. nomcli , ciucli FROM prstamo, cliente WHERE prstamo. nomcli=cliente. Nomcli ANDnomsuc = Piura Ejemplo: Encontrar aquellas cuentas cuyo saldo sea mayor igual que 90 000 y menor igual que 100 000. SELECT numcta FROMdepsito WHERE saldo s 100 000 AND saldo > 90 000 Tambin: WHERE saldoBETWEEN90 000AND100 000 Ejemplo: Encontrar aquellas cuentas cuyo saldo sea diferente al rango de90 000 y 100 000. SELECT numcta FROMdepsito WHERE saldoNOT BETWEEN90 000AND100 000 LIKE: es un operador de comparacin de cadenas de caracteres. %: El carcter % es igual a cualquier subcadena. _:El carcter _es igual a cualquier carcter. ESCAPE ( \ ):se une antes de % o - cuando estos son un carcter normal. Pedro % es igual a cualquier cadena que empiece por Pedro. % 19 %es igual a cualquier cadena que contenga la subcadena 19. _ _ _ es igual a cualquier cadenamenor o igual a 3 caracteres. SELECT nomcli FROMCliente WHERE Calle LIKE % Jr. % Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 26 calle LIKE ab \ % cd % escape \Resultado: ab %cd _______ calle LIKE ab \\cd % escape \Resultado: ab \ cd _______ PERTENENCIA A UN CONJUNTO IN : ConectorIn Prueba si un conjunto pertenece si se es miembro de un conjunto, donde el conjunto es una coleccin de valores producidos por la clusula SELECT. NOTIN : Prueba la de No Pertenecer al conjunto Ejemplo: Encontrar a todos los clientes que tienen un prstamo y una cuenta en la sucursal de Piura. (SELECTnnombre_cliente FROMdeposito WHERE nombre_sucursal=Piura) SELECTDISTINCTnombre_cliente FROM prestamo WHERE nombre_sucursal = Piura and nombre_cliente IN ( SELECTnombre_cliente FROM deposito WHEREnombre_sucursal=Piura) SELECTDISTINCTnombre_cliente FROM prestamo WHERE nombre_sucursal = Piura and IN SELECT nombre_sucursal,nombre_cliente FROM deposito) Ejemplo: Tiene una cuenta pero no un prstamo. SELECT DISTINC nomcli FROM deposito WHERE nomsuc = PiuraAND nomcliNOTIN(SELECT DISTINC nomcli FROM prstamo. WHERE nomsuc = Piura) VARIABLE DE TUPLA UnavariabledetuplaenSQLdebeestarasociadaconunarelacindeterminada.Sedefinenenlaclusula FROM. SELECT DISTINCT. Nomcli , ciudad FROMprstamo S, cliente T WHERES. nomcli = T. Nomcli Ejemplo: Queremos encontrar atodos los clientes quetienenuna cuenta en lamismasucursalen laque Javier tiene cuentas. SELECT DISTINCT. NomcliFROMdepositoS, deposito T WHERES. nomcli = Javier AND S. nomsuc= T. nomsuc Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 27

Otra manera: SELECT DISTINC NomcliFROMdeposito WHEREnomsucIN (SELECT nomsucFROMdeposito WHEREnomcli = Javier ) COMPARACION DE CONJUNTOS La frase mayor que algn se representa en SQL por>SOME. Ejemplo: Encontrar los nombres de todas las sucursales que tienen un activo mayor que alguna sucursal situada en Sullana. SELECT DISTINC T. nomsucFROMsucursal S, sucursal T WHERET. activo > S. activo AND S. ciudad = Sullana Ejemplo: Genera todos los activos de las sucursales de Sullana. SELECT DISTINC nomsucFROMsucursalWHEREactivo > SOME ( SELECT activo FROM sucursalWHERE ciusuc= Sullana

SQL tambin permite las comparaciones < SOME , sSOME , > SOME , = SOME , = SOME. (Any = Some) La frasemayor que todos se representa> all. SQL permite las comparaciones < ALL , s ALL , > ALL , = ALL , = ALL. SELECT nomsucFROM sucursalWHEREactivo > ALL (SELECT activo FROMsucursal WHERE ciusuc =Sullana) Puesto que SELECT genera un conjunto de tuplas a veces queremos comparar conjuntos para determinar si un conjunto contiene todos los miembros de algn otro conjunto. Tales comparaciones se hacen en SQL usando: CONTAINS, NO CONTAINS Ejemplo: Encontrar a todos los clientes que tienen una cuenta en todas las sucursales situadas en Piura. SELECT DISTINC S. nomcliFROMdepositoSWHERE( SELECT T. nomsuc FROM deposito T WHERES. nomcli= T. Nomcli )Encuentra todas las sucursales en lasque el cliente tiene una cuenta. CONTAINS (SELECT nomsuc FROM sucursalBase de Datos I Escuela Tecnolgica Superior - UDEPPgina 28 WHERE ciusuc= Piura)Encuentra todas las sucursales de Piura. El procesamiento de construccinCONTAINSpor computadores es demasiado caro. Porlo que no aparece en el ANSI estndar. PRUEBAS PARA RELACIONES VACIAS SQL incluye una caracterstica para probar si una subconsulta tiene alguna tupla en su resultado. La construccin EXISTS devuelve el valor TRUE si la subconsulta del argumento no est vaca. NO EXISTSdevuelve el valor TRUE si la subconsulta del argumento est vaca. Ejemplo: Encontrar a todos los clientes que tienen una cuenta y un prstamo en la sucursal de Paita. SELECT nomcli FROMcliente WHEREEXISTS(SELECT* FROM deposito WHEREdeposito.nomcli = cliente. nomcli ciudad= Paita )AND EXISTS(SELECT* FROM prestamo WHEREprestamo. nomcli = cliente. nomcli ciudad= Paita ) Ejemplo: Encontrar a todos los clientes de la sucursal de Paita que tienen una cuenta all; pero no un prstamo. SELECT nomcli FROMcliente WHEREEXISTS( SELECT* FROM depositoWHEREdeposito.nomcli = cliente. nomcli ciudad= Paita ) ANDNOT EXISTS(SELECT* FROM prestamo WHEREprestamo. nomcli = cliente. nomcli ciudad= Paita ) Ejemplo: Encontrar a todos los clientes que tienen una cuenta en todas las sucursales situadas en Sullana. SELECT DISTINCT S. nomcli FROMdeposito S WHERENOT EXISTS(( SELECTnomsuc FROM sucursal WHEREciudad = Sullana ) MINUS ( SELECTT. nomsuc FROM depsito T WHERES. nomcli = T. nomcli) ) ORDENACION DE LA PRESENTACION DE TUPLAS LaclusulaORDERBYhacequelastuplasenelresultadodeunaconsultaenunordendeterminado,por omisin SQL lista en orden ascendente. Encuentra todas las sucursales de Sullana. Encuentra todas las sucursales donde el cliente S tiene una cuenta. Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 29 Ejemplo: Para listar en orden alfabtico todos los clientes que tienen un prstamo en la sucursal de Piura. SELECT DISTINCT nomcliFROMprstamo WHEREnomsuc = Piura ORDER BY nomcli Ejemplo: Listar todos los datos de un prstamo ordenados desde la cantidad ms pequea y por nmero de prstamo. SELECT* FROM prstamo ORDER BY cantidadDESC, numprestASC FUNCIONES DE AGREGACION SQL ofrece la posibilidad de calcular funciones en grupos de tuplas usando la clusula GROUP BY .El atributo oatributosdadosenlaclusulaGROUPBYseusanparaformargrupos.Lastuplasconelmismovalorse colocan en un grupo. Las funciones para calcular: Promedio : AVG Mnimo: MIN Mximo : MAX Total : SUM Contar: COUNT Ejemplo: Encontrar el saldo promedio de las cuentas de todas las sucursales. SELECTnomsuc , AVG ( saldo) FROM depsito GROUP BYnomsuc RECORDAR: SI SE QUIERE ELIMINAR DUPLICADOS USAR DISTINCT Ejemplo: Encontrar el nmero de clientes con depsito para cada sucursal. SELECTnomsuc , COUNT ( DISTINCTnomcli) FROM depsito GROUP BYnomsuc Si se desea declarar una condicin que se aplica a los grupos ms que a las tuplas ,usaremos la clusula HAVING de SQL. Ejemplo: Saldo promedio de las sucursales mayor que 1 200. SELECTnomsuc , AVG ( saldo) FROM depsito GROUP BYnomsuc HAVINGAVG ( saldo ) > 1 200 Las funciones de Agregacin no pueden componerse en SQL as: MAX ( AVG (...) )NO ESTA PERMITIDO. Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 30 Ejemplo: Encontrar aquellas sucursales con el saldo promedio mayor. SELECTnomsucFROM depsito GROUP BYnomsuc HAVING AVG ( saldo ) > ALL(SELECT AVG ( saldo) FROM depsito GROUP BYnomsuc) Cuando deseamos tratar la relacin completa como un grupo nico, no se usa la clusula GROUP BY. Ejemplo: Encontarel saldo promedioen todas las cuentas. SELECTAVG ( saldo)FROM depsito La funcin Agregacin COUNT se usa frecuentemente para contar el nmero de tuplas de una relacin. Ejemplo:Encontarelsaldopromediodetodoslosclientescondepsito,quevivenenSullanaytienenporlo menos tres cuentas. SELECTAVG ( saldo) FROM depsito , clienteWHERE depsito. nomcli= cliente. nomcli AND ciudad = Sullana GROUP BY depsito. nomcli HAVINGCOUNT ( DISTINCT numcta ) > 3 ANSIdeSQLpermiteutilizarCOUNTcomoCOUNT(*)oCOUNT(DISTINCT...).Sepuedeusar DISTINCTconMAXyMINaunqueelresultadonocambia.LapalabraclaveALLpuedeusarseenvezde DISTINCT para especificar retencin de duplicados; pero puesto que ALLest implcito no es necesario. MODIFICACIN DE LA BDD ELIMINACIN.- En SQL una supresin se expresa por medio de: DELETErr = relacin WHEREpp = predicado La tupla T de r por la cualp(T) es verdadera ser eliminada de r. DELETE opera sobre una sola relacin. Ejemplo: Suprimir todas las tuplas de la relacin prstamo. DELETEprstamo Ejemplo: Suprimir todos los registros del cliente Prez. DELETEdepsito WHERE nomcli = Prez Ejemplo: Suprimir todos los prstamos cuyo nmero de prstamo est entre 1300 y 1500. DELETE prstamoWHERE numpresBETWEEN 1300 AND 1500 Ejemplo: Suprimir todas las cuentas en la sucursal de Piura. DELETEdepsito WHERE nomsucIN ( SELECT nomsuc FROM sucursalWHERE ciudad = Piura) Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 31 INSERCIN.- Los valores de atributos para tuplas insertadas deben ser miembros del dominio de los atributos, y las tuplas insertadas deben tener el nmero correcto de atributos. INSERT INTO depsito VALUES ( Sullana , 9825 , Garca , 1 200) Los atributos se especifican en orden de esquema de la relacin. INSERT INTO depsito ( nomsuc , numcta , nomcli , saldo ) VALUES ( Sullana , 9825 , Garca , 1 200) Ejemplo: Queremos proporcionar a todos los clientes con prstamo en la sucursal de Paita una cuenta de ahorros conS/. 200,Y su nmero de prstamo ser igual al nmero de su cuenta de ahorros. INSERT INTO depsito SELECT nomsuc , numpres , nomcli , 200 FROM prstamo WHERE nomsuc = Paita ACTUALIZACIN.-Cadavez quesedeseeactualizar registros con datos recientes podrusarclasentencia UPDATE. Ejemplo: Todos los saldos se van a incrementar en un 5 % por pago de inters. UPDATEdepsito SETsaldo = saldo * 1.05 Ejemplo: Para cuentas con saldos mayores a 10 000 incrementar e inters en 6 % y para las menores las cuentas menores que 10 000 el inters es de 5 %. UPDATEdepsito SETsaldo = saldo * 1.06 WHEREsaldo > 10 000 UPDATEdepsito SETsaldo = saldo * 1.05 WHEREsaldos 10 000 EnelcasodeINSERT,DELETE,UPDATEcualquierSELECTincorporadoenlaclusulaWHEREnodebe hacer referencia a la relacin que se est usando. UPDATEdepsito SETsaldo = saldo * 1.05 WHEREsaldo> (SELECT AVG ( saldo) FROMdepsito ) VALORES NULOS Usaremos la sentencia NULL INSERT INTO depsito VALUES ( Sullana , NULL , Garca , 1 200) Todas las comparaciones que implica NULL son falsas por definicin; sin embargo la palabra clave especial NULL puede usarc en un predicado para probar si hay un valor nulo.

SELECT DISTINCTnomcli FROMdepsito WHEREcantidad ISNULL El predicadoISNOTNULL prueba la ausencia de un valor no nulo. No se puede, sta solicitudes ambigua. Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 32 VISTAS Usaremos la sentencia CREATE VIEW. CREATE VIEW vAS v= nombre de la vista. =cualquier expresin de consulta permitida. Ejemplo : Queremos una vista que se llamaTodos_clientes y que consta de sucursales y sus clientes. CREATEVIEWTodos_clientesAS ( SELECT nomsuc , nomcli FROMdepsito) UNION ( SELECT nomsuc , nomcli FROMprstamo) Dado que cada vista se considera como un archivo podra despus usarse: SELECTnomcli FROM Todos_clientes WHEREnomsuc = Paita DEFINICIN DE DATOS Una relacin de SQL se define usando la orden: CREATE TABLEr( A1D1,A2D2, ... , AnDn ) r = Nombre de la relacin. A= Nombre de un atributo del esquema de la relacin r. D= Es el tipo de datos de los valores en el dominio del atributo A. Ejemplo CHR (30) , Integer , Real , NOT NULL. La relacin recin creada est vaca. La orden INSERT puede usarc para cargar los datos. Para eliminar una relacin de laBDD en SQL usaremos: DROP TABLEr Para aadir atributos en una relacin existente se usa: ALTER TABLErADDAD DELETE rElimina todas las tuplas de r DROP TABLErElimina todas las tuplas de ry tambin el esquema de r . Ejemplo: Crear la tabla clientes CREATE TABLE clientes (nomcliCHR(30)NOT NULL, ciudad CHR(30), calleCHR(30)) Recordar! A : nombre del atributo. D : tipo . Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 33 AFIRMACIONES UnaafirmacinesunpredicadoquesedeseaquesiempresatisfagalaBasedeDatos.Lasrestriccionesde dominio,lasDependenciasFuncionalesylasrestriccionesdeintegridadreferencialsonformasespecialesde afirmacin. Sinembargoexistenmuchasrestriccionesquenopuedenexpresarseusandosolamenteestastresformas especiales. Ejemplo: La suma de todas las cantidades de prstamos para cada sucursaldebe ser menos que la suma de todos los saldos de cuenta de la sucursal. Cuandosehaceunaafirmacin,elsistemapruebasuvalidez.Silaafirmacinesvlida,entoncescualquier modificacin en la BDD est permitida solo si no provoca que se viole la afirmacin. La prueba puede introducir una cantidad significativa de tiempo si se han hecho afirmaciones complejas. ASSERT< nombre_afirmacin > ON< nombre_relacin > : < predicado> Ningn saldo negativo (Restriccin de integridad) ASSERTlmite.saldo ONdepsito : saldo >= 0 (Restriccin de dominio) Ningnempleado del banco puede ser su propio banquero personal ASSERTlmite_banquero ONpersona :nombre_cliente < > nombre_banquero Las restricciones pueden restringirse para aplicarse solo amodificaciones de la BDD. En el caso que queramos prevenir la adicin deuna cuenta (depsitos) amenos queel nombre del cliente aparezca en la relacin cliente (Restriccin de Integridad Referencial) ASSERTlmite_direccin ONINSERTION TO depsito :EXISTS ( SELECT *FROM Cliente WHERE Cliente. nomcli = Depsito.nomcli) La forma ms generalde afirmacin es: ASSERT : Es cualquier clausula en SQL. DISPARADORES (TRIGGER) Eldisparadoresunasentenciaqueelsistemaejecutaautomticamentecomounefectosecundariodeuna modificacin de la BDD. Para disear un mecanismo de disparador, debemos: -Especificar las condiciones bajo las cuales se va a ejecutar el disparador. -Especificar las acciones que se van a tomar cuando se ejecute el disparador. Ejemplo: En vez de permitir saldos negativos de cuentas, el banco trata los saldos deudores poniendo el saldo de cuenta en cero y creando un prstamo en la cantidad de saldo deudor. Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 34 Insertar una nueva tupla S en la relacin prstamo con: S[nomsuc]= T[nomsuc] S[numprest]= T[numcta] S[cantidad] = T[saldo] S[nomcli] = T[nomcli] PonerT[saldo] a cero Los disparadores no estn incluidos en el SQL estndar

DEFINE TRIGGER saldodeudor ON UPDATE OF deposito T ( IF NEWT.saldo < 0THEN ( INSERT INTO prstamo VALUES(T.Nomsuc, T.Numcta, T.nomcli , - NEW T.saldo) UPDATE deposito S SETS.Saldo =0 WHERE S.numcta = T.numcta) ) Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 35 RESTRICCIONES DE INTEGRIDAD Las Restricciones de Integridad proporcionan un medio de asegurar que los cambios que se hacen en la BDD por usuarios autorizados no resulten en una prdida de consistencia de los datos. Las Restricciones de Integridad protegen la BDD contra daos accidentales. Las Restricciones de Integridad para el modelo E-R estn en forma de: -Declaracin de claves. -Forma de una relacin(M a M, 1 aM, 1 a 1). RESTRICCIONESDE DOMINIO Los lmites de dominio son la forma ms elemental de restricciones de integridad. Tipos de Dominio: Una definicin adecuada de tipos de dominio no solo nos permite probar valores insertados en la BDD, sino quetambinnos permite probarconsultas paraasegurar quelacomparacin quesehacetiene sentido. * Varios atributos pueden tener el mismo sentido. ( nombre_cliente , nombre_empleado ) = conjunto de todos los nombres de personas. * Atributo con diferente dominio. saldo y nombre_sucursalo nombre.clientey nombre.sucursal. Tipos de Dominios en SQL:-Cadena de caracteres de longitud fija, longitud especificada por el usuario. -Nmero en coma fija, con precisin especificada por el usuario. -Entero (dependiente de la mquina). -Entero pequeo (dependiente de la mquina). -Nmero en coma flotante y en coma flotante de doble precisin, con precisin dependiente de la mquina. -Fecha. LatransformacindetipodedominiosedenominaCoaccindeTipo(Convertirdeenteropequeoa entero.) ParaSQL Estndar,nombre.sucursalynombre.clienteaunquetengan dominio decadenadecaracteres de longitud diferente, SQL considera los dos dominios compatibles. ValoresNulos:SQLestndarpermitequeladeclaracindeldominiodeunatributoincluyalaespecificacinNOT NULL . Esto prohbe la insercin de un valor nulo para este atributo. Cualquier modificacin en este caso genera un diagnstico de error. Haymuchassituaciones en las que laprohibicin devaloresnulos es deseable.As:Cuando elatributo es una clave primaria de un esquema de relacin. INTEGRIDAD REFERENCIAL Amenudoqueremosasegurarqueunvalorqueapareceenunarelacinparaunconjuntodeatributosdados tambin aparece paraun conjunto de atributos en otra relacin. Conceptos Bsicos: Considrese un par de relacionesr( R )yd ( D ) y el producto naturalr ||d, puede darse el caso de que haga una tupla t en r que no se corresponda con ninguna tupla en d. Estas tuplas se llaman Tuplas Colgadas. Dependiendo del conjunto de entidades o del conjunto de relaciones que se est modelando, las tuplas colgadas pueden ser aceptables o no. Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 36 Un atributo de una relacin que es una clave primaria de otra relacin se denomina Clave Exterior. LosrequerimientosdeestaformasellamanRestriccionesdeIntegridadReferencialoDependenciade Subconjuntos. Integridad Referencial en Modelo E-R: Estas restricciones se presentan frecuentemente. Si obtenemos el Esquema deBDDRelacionalconstruyendotablasdesdediagramasdeE-R.Todaslasrelacionesquesurgendeun conjunto de relaciones tienen restricciones de integridad referencial. Del esquema de relaciones, es una clave exterior que conduce a una restriccin de Integridad referencial. Otrafuente deIntegridad Referenciales elconjunto deentidades dbiles. El Esquemade Relaciones paracada conjuntodeEntidadesdbilesincluyeunaclaveexteriorqueconduceaunarestriccindeIntegridad Referencial. Modificacin de la BDD: La modificacin de la BDD puede causar violaciones de integridad Referencial. ( r2)_k ( r1 ) Insertar:Si una tuplat2 se inserta en una relacinr2, el sistema debe asegurar que existe una tuplat1 enr1 tal que: t1(k) = t2(). Es decir t2()k ( r1 ) Eliminar:Siunatuplat1seeliminader1,elsistemadebecalcularelconjuntodetuplasenr2quehacen referencia a t1. = t1(k) (r2) Si este conjunto no est vaco, o la orden de eliminar se rechaza como un error, o se debe eliminar las tuplas que hacen referencia a t1. Actualizar: Actualizar en la relacin que hace la referencia (r2) actualizar en la relacin referenciada (r1) -Siseactualizaunatuplat2enlarelacinr2ymodificavaloresparalaclaveexterior(), entonces se hace una prueba similar a la del caso de insertar. -Siseactualizaunatuplat1enlarelacinr1ymodificavaloresparalaclaveprimaria(k), entonces se hace una prueba similar a la del caso de eliminar. Integridad Referencial en SQL: Una caracterstica de Intensificacin de Integridad ha sido aprobada como un aadidoalestndar.Estacaractersticapermitelaespecificacindeclavesprimarias,candidatasyclaves exteriores como parte de al sentencia CREATE TABLE: -La clusula "Primary Key" incluye una lista de atributos que comprenden la clave primaria. -La clusula "Unique Key" incluye una lista de atributos que comprenden la clave candidata.-Laclusula"ForeignKey"incluyeunalistadeatributosquecomprendenlaclaveexterioryelnombre de la relacin a la que hace referencia la clave exterior( Reference). Cualquier atributo que sea miembro de una clave candidata debe ser declarado NOT NULL. Ejemplo: DEFINICION DE DATOS EN SQL PARA UNA PARTE DE LA BDD (SQL DDL) CREATE TABLEcliente (nombre_cliente CHR( 30 )NOT NULL, calle CHR( 30 ), ciudad_cliente CHR( 30 ), PRIMARY KEY ( nombre_cliente )) Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 37 CREATE TABLEsucursal (nombre_sucursalCHR( 20 ) NOT NULL, activoINTEGER , ciudad_sucursalCHR( 30 ) , PRIMARY KEY ( nombre_sucursal ) ) CREATE TABLEdepsito (nombre_sucursalCHR( 20 ) NOT NULL, numero_ctaCHR( 10 ) NOT NULL, nombre_cliente CHR( 30 ) NOT NULL, saldo INTEGER , PRIMARY KEY ( numero_cta , nombre_cliente) , FOREING KEY ( nombre_sucursal ) REFERENCESucursal ) , FOREING KEY (nombre_cliente )REFERENCECliente )) DEPENDENCIAS FUNCIONALES: Las dependencias funcionales son una restriccin al conjunto de relaciones legales. Nos permite expresar hechos acerca de la empresa que estamos modelando con la base de datos. Lasdependenciasfuncionalesnospermitenexpresarrestriccionesquenopuedenexpresarsepormediode superclaves. Usaremos las dependencias funcionales de dos formas: 1.Para especificar restricciones en el conjunto de relaciones legales. As pues nos interesaremos slo por las relaciones que satisfagan un conjunto dado de dependencias funcionales. Si queremos limitarnos a la relacin del esquema R que satisfacen F, decimos que F se cumple en R. 2.Para probar si una relacin es legal bajo un conjunto dado de dependencias funcionales. Si una relacin r es legal bajo un conjunto F de dependencias funcionales, decimos que r satisface aF. Relacin rABCD a1B1c1d1 a1B2c1d2 a2B2c2d2 a2b3c2d3 a3b3c2d4 AC } DependenciaFuncional Hay dos tuplas que tienen el valor de a1 en A. Estas tuplas tienen el mismo valor enC = c1. Dos tuplas de valor a2 en A tienen el valor en C = c2. C A} No satisfacen las Dependencia Funcional Porque las tres tuplas con valor C = c2 tienen diferentes valores enA = ( a1,a3La relacinr satisface muchas otras Dependencias Funcionales, incluyendo por ejemplo la dependenciafuncional.AB D Hay Dependencia Funcional que son "Triviales",porque se satisfacen por todas las relaciones. Ejemplo: A A AB A => B Es trivial si B _ RELACION CLIENTES nomclicalleciudad Javier VsquezAv. Grau 123Piura Jannette LunaAv. Las Palmeras 231Talara Katia VsquezJr. Gardenias 65Piura Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 38 CalleCiudad Puede haber el nombre de una calle en dos ciudades diferentes (no incluiremos estadependencia en el conjunto de Dependencias Funcionales que se cumplen en este esquema. RELACION SUCURSAL nomsuc activoSe exige que se cumpla en el esquema prstamo. activo nomsucNo queremos exigir que se cumpla ya que es posible que variassucursales tengan el mismo valor de activos. RELACIONPRESTAMO NomsucNumprestnomcliciudad P117Javier VsquezPiura T115Marco ValenciaSullana S123Jannette LunaTalara P218Katia VsquezPiura numprest catidadQueremos exigir que la relacin prstamo satisfaga esta dependencia en todo momento. Imponemos la restriccin de que se cumpla numprest cantidaden el esquema prstamo. Al disear una base de datos relacional primeros listamos aquellas dependencias funcionales que se deben cumplir siempre. Ejemplo: * En Esquema Sucursal nombre_sucursal ciudad_sucursal nombre_sucursalactivo *En Esquema Cliente nombre_cliente ciudad_cliente nombre_clientecalle * En Esquema Prstamo numprest cantidad numprset nombre_sucursal CIERRE DE UN CONJUNTO DE DEPENDENCIASFUNCIONALES NoessuficienteconsiderarunconjuntodadodeDependenciasFuncionales.Adems,necesitamosconsiderar todas las Dependencias Funcionales que se cumplan. R = ( A,B,C,G,H,I )D.F. A BCG HB H ACCG I Las Dependencias Funcionales AHse implica lgicamente. Es decir podemos demostrar que se cumpla el conjunto dado de Dependencias Funcionales, A H tambin debe cumplirse: A B y B H A H NomsucActivociudad P11 000 000Piura S1800 000Talara T1500 000Sullana P2300 000Piura Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 39 SeaFunconjuntodeDependenciasFuncionales.ElcierredeF(F+ )eselconjuntodeDependencias Funcionalesque Fimplica lgicamente. Existen tcnicas para deducir Dependencias Funcionales: LaprimeratcnicasebasaentresaxiomasoreglasdeinferenciaparaDependenciasFuncionales.Aplicando estas reglas repetidamente podemos encontrar F+ completo dado en F. CONVENIOS:Letras griegas (o | ...) representan conjunto de atributos Letras romanas en maysculas representan atributos individuales o |=o| Axiomas de Armstromg.- -Reglas de Flexibilidad.- Sio es un conjunto de atributos y | _ o,entonces se cumple o|. -Regla de Aumento.- Si se cumple o| es un conjunto de atributos, entonces se cumple o |.-Regla de Transitividad.- Si se cumpleo |yse cumple | , entonces se cumpleo . Estas reglas son seguras porque no generan Dependencias Funcionales incorrectas. Las reglas son completas porque para un conjunto dado de F de Dependencias Funcionales nos permiten generar unF+ completo. Para simplificar esta tarea, listaremos algunas reglas auxiliares. -Regla de Unin.- Si se cumple o | y se cumple o , entonces se cumple o | . -Regla de Descomposicin.- Si se cumple o | , entonces se cumple o | y o . -Regla de Pseudotransitividad.- Si se cumple o |y | o , entonces se cumple o o. A continuacin mostramos algunos miembros de F+: AHSe cumpleA By B HPor regla de TransitividadAH CG HI Se cumpleCG H y CG I Por regla UninCG HI AG I Se cumpleACPor regla de Aumento AG CG. Se cumpleCGI Por regla de TransitividadAG I. RECUBRIMIENTO CANONICO: ParaminimizarelnmerodeDependenciasFuncionalesquenecesitanserprobadasencasodeuna actualizacin, restringimos un conjunto dado F de Dependencias Funcionales a un recubrimiento cannico Fc. Fc debe tener las siguientes caractersticas: a)CadaunadelasDependenciasFuncionaleso |enFcnocontienenatributosextraosao.Los atributos extraos son atributos que pueden eliminarse deo sin cambiar Fc+.AsA es extrao a o siA e o y Fc implica lgicamente a ( Fc {o |} ) {o A |}. b)Cada una de las Dependencias Funcionaleso | en Fc no contienen atributos extraos a |. As A es extrao a | siA e |y ( Fc {o |} ) {o | A} implica lgicamente a Fc. c)CadaladoizquierdodeunaDependenciaFuncionalenFcesnico(Noexistendosdependenciaso1 |1 yo2 |2 en Fc, tales queo1 = o2 ) Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 40 Para calcular un recubrimiento cannico para F, utilizo la Regla de Unin para sustituir cualquier dependencia en F ( o1 |1y o2 |2 o1 |1|2) Prubesecadadependenciafuncional o | paraversihayunatributoextraoaooa|. Esteprocesose debe repetir hasta que no ocurran cambios. Ejemplo: ABC B C A B AB C Paso C ABCABCA B Paso A A es extraoenAB C porque existe B C Al suprimir A de AB Cobtenemos B C que ya est en el conjunto de dependencias funcionales. El conjunto de Dependencias funcionales Fces:ABCy B C Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 41 DISEO DE BASES DE DATOS RELACIONALES El objetivo del diseo de una base de datos relacional es generar un conjunto de esquemas de relaciones que nos permitenalmacenarinformacinsinredundanciainnecesaria,peroquealaveznospermitanrecuperar informacin fcilmente. PELIGROS EN EL DISEO DE BDD RELACIONALES Entre las propiedades indeseables que un mal diseo pueda tener estn: -Repeticin de Informacin -Incapacidad para representar cierta informacin. -Prdida de informacin REPRESENTACIN DE LA INFORMACIN: Diseo Original (1) Esquema_sucursal = ( nomsuc, activo,ciudad_suc) Esquema_prestamo = ( nomsuc, numprest, nomcli, cantidad ) Diseo Alternativo (2) Esquema_prestar = ( nomsuc,activo,ciudad_suc,numprest,nomcli, cantidad ) Larepeticindeinformacinquerequiereelusodeldiseoalternativonoesconveniente.Larepeticinde informacin desperdicia espacio.Adems, complica la actualizacin de la base de datos. Ejemplo: a) Aadir un nuevo prstamo en1 y en 2 b) Actualizar la ciudad de una sucursal Por qu es malo el diseo alternativo? a)Sabemos que una sucursal bancaria est situada en una ciudad, as se cumple la Dependencias Funcionales. nomsucciudad_suc Sabemos que una sucursal pude hacer muchos prestamos. No se cumple la Dependencias Funcionales. nomsuc numprest El hecho de que una sucursal est situada en una ciudady el hecho de que una ciudad realice prstamos son procesos independientes. Estos hechos se representan mejor en relaciones separadas. b) No podemos representar directamente la informacin referente a una sucursal (nomsuc, activo, ciudad_suc) a menos que exista por lo menos un prstamo en la sucursal(deben tener valores de numprest, cantidad y nomcli). Peoran tendramos que suprimir esta informacin cuando se hubieran pagado todos los prstamos. PRDIDA DE INFORMACIN Elejemploanteriornossugierequedebemosdescomponerunesquemaderelacionesconmuchosatributosen variosesquemasconmenosatributos.Sinembargosiladescomposicinsehacesincuidadopuedellegarsea otra forma de diseo defectuoso. Ejemplo:El esquema prstamo se descompone en: Esquema_cantidad = (cantidad, nomcli) Esquema_prestamo = (nomsuc, numprest, cantidad) Queremos encontrar aquellas sucursales de las que Juan tiene un prstamo, ninguna de las relaciones de la Base de Datos alternativa contiene estos datos. Podemos hacerlo escribiendo cantidad |x| prstamo. Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 42 Sisucedequevariosprstamostienenlamismacantidad,nopodemosdeciraquclientecorrespondecada prstamo.YanosomoscapacesderepresentarenlaBasedeDatos,queclientestienenprestamosdequ sucursal. Debidoaestaprdidadeinformacin,aestadescomposicinlallamaremosDescomposicinconprdidao descomposicin de producto con prdida. Debe estar claro, que una descomposicin de productos con prdida es un mal diseo de la Base de Datos. Esquema_prestar Esquema_prestamo Esquema_prestamo Esquema_cantidad = {cantidad} Esquema_cantidadinapropiado Esquema_prestar Esquema_sucursalEsquema_sucursalEsquema_prestamo= {nomsuc} Esquema_prestamo Para tener una descomposicin de producto sin prdida, necesitamos imponer ciertas restricciones en el conjunto de las relaciones posibles. Una de estas restricciones son las dependencias funcionales. Ejemplo: * R= Esquema_prestar r: relacin prestar R1= Esquema_cantidadr1 : relacin cantidadr=r1 |x| r2 Hay prdida de la informacin R2= Esquema_prestamo r2 : relacin prstamo * Esquema_prestar = Esquema_prestamo |x| Esquema_sucursalSin prdida debido a la dependencia funcionalnomsuc activo, ciudad_suc. NORMALIZACION POR MEDIO DE DEPENDENCIAS FUNCIONALES Usando Dependencias Funcionales, podemos definir varias formas normales que representen diseos buenos de Base de Datos. Existe un gran nmero de formas normales. Las que trataremos aqu sonBCNF y 3NF. PROPIEDADES DESEABLES DE UNA DESCOMPOSICION Esquema_prestar = ( nomsuc,activo,ciudad_suc, numprest, nomcli, cantidad) El conjunto F de Dependencias Funcionales que es necesario que se cumpla en el esquema_prestar es : nomsuc activo, ciudad_suc numprest cantidad, nombre_sucursal Descomposicin De Producto Sin Prdida El criterio para determinar si una descomposicin sea sin prdida:Sea R un esquema de relaciones y F es un conjunto de Dependencias Funcionales en R.R1 y R2 forman una descomposicin de R. Esto es una descomposicin de producto sin prdida de R si por lo menos una de las dependencias funcionales siguientes est en F+. R1R2 R1 R1R2 R2 1) Ejemplo: Esquema_prestar en: Esquema_sucursal= ( nomsuc, activo,ciudad_suc) Esquema_prestamo = ( nomsuc, numprest, nomcli, cantidad) Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 43 Puesto que:nomsuc activo, ciudad_sucF (Regla de Aumento para Dependencias funcionales) nomsuc nomsuc, activo, ciudad_sucF+ Esquema_sucursal Esquema_prestamo = {nomsuc} =>Esquema_sucursal es OK 2) EjemploEsquema_prestamo: Esque_Info_prestamo=( nomsuc, numprest, cantidad) Esque_prest_cliente =( nomcli, numprest) Puesto que:numprest cantidad, nomsucF (Regla de Aumento para Dependencias funcionales) numprest numprest , cantidad, nomsucF+ Esque_Info_prestamoEsque_prest_cliente = {numprest} =>Esquema_info_prestamo es OK Conservacin de las Dependencias Cuando se hace una actualizacin de la Base de Datos, el sistema debe poder comprobar que la actualizacin no crear una relacin ilegal - es decir, una que no satisfaga todas las dependencias funcionales dadas. ParacomprobarlasactualizacioneseficientementeesconvenientedisearesquemasdeBasedeDatos relacionales que permitan validar una actualizacin sin calcular los productos. Ejemplo: PodemosdemostrarqueladescomposicindelEsquema_prestarconservalasdependencias.Paraverestos, consideramoscadaunodelosmiembrosdelconjuntoFdeDependenciasfuncionalesquenecesitamosquese cumplan en el Esquema_prestar y mostraremos que cada uno puede probarse en por lo menos una relacin de la descomposicin. D.F.nomsuc activo, ciudad_suc puede probarse usando el esquema sucursal. D.F. numprestcantidad, nomsuc puede probarse usando Esquema_info_prestamo. Repeticin De Informacin La descomposicin de Esquema_prestar no padece del problema de la repeticin de informacin. Ejemplo: Esquema_Prestar repeta la ciudad y el activo de la sucursal para cada prstamo. La descomposicin repara los datos de sucursal y de prstamo en relaciones distintas, eliminando esta redundancia. Sisehaceunsoloprstamoavariosclientes,debemosrepetirlacantidaddelprstamounavezporcada cliente (as como la cantidad y el activo de la sucursal). En la descomposicin, la relacin del esquema del Esquema_prestamo_clientecontienelarelacinnumprest,nomcli,cosaquenosucedeenlasdems esquemas. En el Esquema_info_prestamo, solo se necesita que aparezca una tupla por prstamo. Claramente, lafaltaderedundanciaquepresentaladescomposicin es deseable. Las distintas formas normales representan los grados de eliminacin de redundancia que pueden lograrse. Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 44 FORMA NORMAL DE BOYCE-CODD Una de las formas normales ms deseables que podemos obtener es la BCNF. Un esquema de la relacin R est enBCNFconrespectoaunconjuntoFdeDependenciasFuncionales,siparatodaslasDependencias FuncionalesenF+delaformao|,dondeo _ Ry| _ R,porlomenossecumpleunadelassiguientes condiciones : o > | es una dependencia funcional trivial (Es decir | _ o)o es una superclave del esquema R. UndiseodelaBasedeDatosestenBCNFsicadaunodelosmiembrosdelconjuntodelosesquemasde relaciones que comprende el diseo est en BCNF. Ejemplo : Esquema_sucursal = ( nomsuc, activo,ciudad_suc) nomsuc activo, ciudad_suc Esquema_cliente = ( nomcli, calle, ciudadcliente) nomcli calle, ciudadcliente Esquema_depsito = ( nomsuc, numcuenta, nomcli, saldo) numcuenta saldo, nomsuc Esquema_prestamo = ( nomsuc, numprest, nomcli, cantidad) numprestcantidad , nomsuc Esquema cliente esta en BCNF: 1. Nomcli es una clave candidata en el esquema cliente 2. La nica Dependencia funcional no trivial que se cumpla en esquema cliente tiene nomcli en el lado izquierdo de la flecha. Esquema sucursal est en BCNF: 1. Nomsuc es una clave candidata en el esquema sucursal 2. Dependencia Funcional no trivial que se cumple tiene nomsuc en el lado izquierdo de la flecha. Esquema prstamo no est enBCNF: 1.numprestnoesunasuperclavedelesquemaprstamo(porhaberprstamosdedosomspersonas, mancomunadas). Este esquema est en una forma no deseable, yaque padece del problema de repeticin de informacin. Tenemos como punto de partida los esquemas que no estn en BCNF y los descomponemos en: Esquema_info_prestamo =( nomsuc, numprest, cantidad ) Esquema_prestamo_cliente =( nomcli, numprest ) a) Esto es una descomposicin de productos sin prdida. b) Hay que determinar que Dependencias Funcionales les son aplicables: numprest cantidad, nomsuc(Esquema_info_prstamo) c) numprest es una clave candidata de Esquema_info_prstamo d) En el Esquema_prstamo_cliente slo se aplican dependencias funcionales triviales. Entonces los dos esquemas estn en BCNF. Esquema depsitos no est en BCNF Esquema_info_cuenta= ( nomsuc, numcuenta, saldo ) Esquema_cuenta_cliente= ( nomcli, numcuenta ) Ejemplos: Esquema_prestar = ( nomsuc,activo,ciudad_suc, numprest, nomcli, cantidad) Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 45 Dependencias Funcionales: nomsuc activo, ciudad_suc numprest cantidad, nomsucEste esquema no est en BCNF Claves:(numprest, nomcli) Realizar una descomposicin de productosin prdida, que conserven las dependencias y que estn en BCNF. Siempre hay que satisfacer los tres objetivos del diseo. BCNF Producto sin prdida Conservacin de las dependencias No todas las descomposiciones BCNF conservan las dependencias funciones : Esquema_banquero = (nomsuc, nomcli, nombre_banquero) D.F.nombre_banquero nomsuc nomcli,nomsuc nombre_banquero Esquema Banquero no est en BCNF, ya que nombre_banquero no es una superclave. Esquema_sucursal_banquero = ( nombre_banquero , nomsuc ) Esquema_banquero_cliente = ( nomcli,nombre_banquero) Los esquemas descompuestos conservanslo nombre_banquero nomsuc (y las dependencias triviales). El cierre de { nombre_banquero nomsuc }no incluye nomcli,nomsuc nombre_banquero . La violacin de esta dependencia no puede detectarse a menos que se calcule un producto. Toda descomposicin BCNF de esquema banquero debe fallar a la conservacinde nomcli, nomsuc nombre_banquero. TERCERA FORMA NORMAL Enaquelloscasosenlosquenopuedensatisfacerselostrescriteriosdediseo,abandonamosBCNFy aceptamos una forma normal ms dbil, llamada 3NF. (Siempre se puede conseguir llegar a esta 3NF) BCNFrequierequetodaslasDependenciasFuncionalesnotrivialesseandelaformao|dondeoesuna superclave. 3NF permite Dependencias Funcionales que el lado izquierdo no sea una superclave. Un esquema de relaciones R est en 3NF con respecto a un conjunto de Dependencias Funcionales, si para todos las Dependencias Funcionales en F+ de la forma o|, donde o _ R y | _ R, por lo menos se cumple una de las condiciones siguientes: o > | es una Dependencias Funcionales trivial. o es una superclave de R. Cada atributoA en | - oest contenido en una clave candidata en R. - BCNF no acepta el 3er criterio. Dependencias Transitivas. - Todo esquema BCNF est tambin en 3NF. - BCNF es ms restrictiva que 3NF. Esquema banquero si est en 3NF. Se sabe que nomcli y nomsuc es una clave candidata. La Dependencia Funcional no trivial { nomcli,nomsuc nombre_banquero } Esta dependencia no viola la definicin de 3NF. Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 46 Ejemplo: Esquema_info_banquero = (nomsuc, nomcli, nombre_banquero, numoficina) D.F.nombre_banquero nomsuc, numoficina nomcli,nomsuc nombre_banquero Descomposicin sin prdida. Esquema_oficina_banquero =(nombre_banquero, numoficina) Esquema_banquero = (nomcli, nomsuc, nombre_banquero) Puesto que el esquema banquero contiene una clave candidata del Esquema_oficina_banquero, hemos hecho un proceso de descomposicin. COMPARACION DE BCNF Y 3NF La 3NF tiene la ventaja de que sabemos que siempre es posible obtener un diseo 3NF sin sacrificar un producto sin prdida o la conservacin de las dependencias. Noobstante,3NFtieneunadesventaja,sinoeliminamoslasDependenciasFuncionalestransitivas,puedeser necesario utilizar valores vacos para representar alguna de las posibles relaciones significativas entre los datos, y esta el problema de la repeticin de informacin. Ejemplo: Esquema_banquero = ( nomcli, nombrebanquero, nomsuc) y un Dependencias Funcionales asociados nombrebanquero Nomsuc 1. Para hacer esto, bien debe haber un valor correspondiente para nomcli o bien debemos utilizar un valor nulo para el atributo nomcli. 2. Se presenta repeticin de informacin.(nomcli nomsuc .) SinosvemosobligadosaelegirentreBCNFylaconservacindelasdependenciascon3NF,generalmentees preferible optar por 3NF. Sinopodemosprobarlaconservacindelasdependenciaseficientemente,pagamosunaltoprecioenel rendimiento del sistema o un riesgo de integridad de los datos de la Base de Datos. Ninguna de estas alternativas resulta atractiva. Con tales alternativas, la cantidad limitada de redundancia impuesta por las dependencias transitivas, permitidas en3NFeslamenosmala.Aspues,normalmenteelegimosasegurarlaconservacindelasdependenciasy sacrificios BCNF. Resumen: El objeto de un diseo de Base de Datos relacional es: BCNF Producto sin prdida Conservacin de las dependencias. si no se puede lograr esto, aceptamos : 3NF Producto si prdida Conservacin de las dependencias. Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 47 Ejemplo: rdenes de compra del catlogo de clientes de diferentes ciudades Codcli nomcli ciudadpreciodeentregapreciounidadNodeInventariosolicitud FechaC1 John Chiclayo 0.75 8,25 13 1206/0510/12C2 Jane Piura 195 4,018,202,0012131112305/15C3 Pedro Chiclayo 0.75 4,012,0112111208/1010/10C4 Rita Lima 225 10,51 14 1 05/05 Dependencias Funciones:nomcli, num_inventario, fechasolicitud num_inventario precio unidad codclinomcli, ciudad ciudad precio_ent Resultado: orden= ( codcli, num_inventario, fecha, solicitud) inventario = ( num_inventario, precio unidad) cliente = (codcli, nomcli, ciudad) preciodeentrega =(ciudad, precio_ent) Estn en 3FN y BCNF Ejemplo: Relacin Proyecto-PC-Programador #proyecto PC ProgramadorP01 IBM RenzoP01 APPLE AureliaP15 ATARI HerbertP23 IBM RenzoP30 IBM Javier Siguientes reglas Semnticas: 1. Para cada proyecto, una PC dada es usada por un slo programador an cuando el programador trabaje en ms proyectos. 2. Un proyecto puede usar distintos tipos de PC 3. Un programador se especializa slo en un tipo de PC, pero una PC se puede compartir entre distintos programadores, para distintos proyectos. Dependencias Funcionales:#proyecto, PC Programador ProgramadorPC Resultado: Programador-PC= (programador, PC) = Programador-PC Proyecto-Programador =(#proyecto, programador)Esta en BCNF Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 48 DEPENDENCIAS MULTIEVALUADAS Generalmente, un proceso de normalizacin termina cuando todas las relaciones divididas pertenecen a la tercera formanormal.Sinembargosiunarelacincontienedependenciasdevaloresmltiples,esnecesariauna normalizacin posterior. B A ElatributoAdeestarelacinsediceserdependenciamultivaluada(DMV)delatributoBsiunrango especificado de valores del atributo A est determinado por un valor particular de B. A, B CDMV trivial A B C DMV no trivial Relacin Inventario = (#inventario, color, talla, precio) #inventario Precio Color TallaL1L1L1L1L1L1L1L1L2L2L2L2L2L222222222444444azulazulazulazulrojorojorojorojoverdeverderojorojoblancoblanco12341234121212 #inventariocolor DMV no tallatrivial #inventarioprecio DF no trivial Las Dependencias multivaluadas se puedeneliminarsiguiendo uno de los dos siguientes mtodos. 1) Crear una nueva relacin para cada atributo DMV relacinTalla = ( #inventario, talla ) relacinColor= ( #inventario, color)4FN relacinPrecio = ( #inventario, precio) 2) Reemplazar un atributo DMV con atributos funcionalmente dependientes. Relacin Talla = ( #inventario, talla ) Relacin Inventario = (#inventario, precio, color1, color2, color3)4FN I12AzulRojo --- I24Rojo Verde Blanco Una relacinest en 4FN, si est en BCNF y no contiene DMV (no triviales) Base de Datos I Escuela Tecnolgica Superior - UDEPPgina 49 Ejemplo : Relacin R = (A, B, C, D, E, F, G, H, I) ADAI, CA, B HBE, FFG Ddependenciamultivaluada de A Hdependenciafuncional