2011 UNIVERSIDAD TÉCNICA DE MACHALA UNIVERSIDAD TÉCNICA DE MACHALA FACULTAD DE CIENCIAS EMPRESARIALES ESCUELA DE CONTABILIDAD Y AUDITORÍA CÁTEDRA: Computación Aplicada II. ALUMNO: Víctor Santiago Yunga Juela. PROFESOR: Ing. Luis Lojan. CURSO: 4° “C” Diurno. MACHALA - EL ORO - ECUADOR Víctor Santiago Yunga Juela. 2011 UNIVERSIDAD TÉCNICA DE MACHALA BASE DE DATOS Una base de datos es una colección de información organizada de forma que un programa de ordenador pueda seleccionar rápidamente los fragmentos de datos que necesite. Una base de datos es un sistema de archivos electrónico. Las bases de datos tradicionales se organizan por campos, registros y archivos. Un campo es una pieza única de información; un registro es un sistema completo de campos; y un archivo es una colección de registros. Por ejemplo, una guía de teléfono es análoga a un archivo. Contiene una lista de registros, cada uno de los cuales consiste en tres campos: nombre, dirección, y número de teléfono. A veces se utiliza DB, de data base en inglés, para referirse a las bases de datos. Definición. Un conjunto de información almacenada en memoria auxiliar que permite acceso directo y un conjunto de programas que manipulan esos datos. Base de Datos es un conjunto exhaustivo no redundante de datos estructurados organizados independientemente de su utilización y su implementación en máquina accesibles en tiempo real y compatibles con usuarios concurrentes con necesidad de información diferente y no predicable en tiempo. Componentes principales Datos. Los datos son la Base de Datos propiamente dicha. Hardware. El hardware se refiere a los dispositivos de almacenamiento en donde reside la base de datos, así como a los dispositivos periféricos (unidad de control, canales de comunicación, etc.) necesarios para su uso. Víctor Santiago Yunga Juela. 2011 UNIVERSIDAD TÉCNICA DE MACHALA Software. Está constituido por un conjunto de programas que se conoce como Sistema Manejador de Base de Datos (DMBS: Data Base Management System). Este sistema maneja todas las solicitudes formuladas por los usuarios a la base de datos. Usuarios. Existen tres clases de usuarios relacionados con una Base de Datos: 1. El programador de aplicaciones, quien crea programas de aplicación que utilizan la base de datos. 2. El usuario final, quien accesa la Base de Datos por medio de un lenguaje de consulta o de programas de aplicación. 3. El administrador de la Base de Datos (DBA: Data Base Administrator), quien se encarga del control general del Sistema de Base de Datos. Ventajas en el uso de Bases de Datos. Globalización de la información. Permite a los diferentes usuarios considerar la información como un recurso corporativo que carece de dueños específicos. Eliminación de información redundante. Duplicada Eliminación de información inconsistente. Si el sistema esta desarrollado a través de archivos convencionales, dicha cancelación deberá operarse tanto en el archivo de facturas del Sistema de Control de Cobranza como en el archivo de facturas del Sistema de Comisiones. Permite compartir información. Varios sistemas o usuarios pueden utilizar una misma entidad. Permite mantener la integridad en la información. Solo se almacena la información correcta. Víctor Santiago Yunga Juela. 2011 UNIVERSIDAD TÉCNICA DE MACHALA Independencia de datos. La independencia de datos implica un divorcio entre programas y datos; es decir, se pueden hacer cambios a la información que contiene la base de datos o tener acceso a la base de datos de diferente manera, sin hace cambios en las aplicaciones o en los programas. El sistema organizador de Base de Datos (DBMS) El DBMS es un conjunto de programas que se encargan de manejar la creación y todos los accesos a las bases de datos. Se compone de un lenguaje de definición de datos (DDL: Data Definition Language), de un lenguaje de manipulación de datos (DML: Data Manipulation Language) y de un lenguaje de consulta (SQL: Structured Query Language). El lenguaje de definición de datos (DDL) es utilizado para describir todas las estructuras de información y los programas que se usan para construir, actualizar e introducir la información que contiene una base de datos. El lenguaje de manipulación de datos (DML) es utilizado para escribir programas que crean, actualizan y extraen información de las bases de datos. El lenguaje de consulta (SQL) es empleado por el usuario para extraer información de la base de datos. El lenguaje de consulta permite al usuario hacer requisiciones de datos sin tener que escribir un programa, usando instrucciones como el SELECT, el PROJECT y el JOIN. La secuencia conceptual de operaciones que ocurren para acceder cierta información que contiene una base de datos es la siguiente: 1 El usuario solicita cierta información contenida en la base de datos. El DBMS intercepta este requerimiento y lo interpreta. El DBMS realiza las operaciones necesarias para acceder y/o actualizar la información solicitada. Víctor Santiago Yunga Juela. 2011 UNIVERSIDAD TÉCNICA DE MACHALA El administrador de la Base de Datos (DBA) El DBA es la persona encargada de definir y controlar las bases de datos corporativas, además proporciona asesoría a los usuarios y ejecutivos que la requieran. Tipos de modelos de Datos Existen fundamentalmente tres alternativas disponibles para diseñar las bases de datos: el modelo jerárquico, el modelo de red y el modelo relacional. 1. El modelo jerárquico La forma de esquematizar la información se realiza a través de representaciones jerárquicas o relaciones de padre/hijo, de manera similar a la estructura de un árbol. Así, el modelo jerárquico puede representar dos tipos de relaciones entre los datos: relaciones de uno a uno y relaciones de uno a muchos. En el primer tipo se dice que existe una relación de uno a uno si el padre de la estructura de información tiene un solo hijo y viceversa, si el hijo tiene solamente un padre. En el segundo tipo se dice que la relación es de uno a muchos si el padre tiene más de un hijo, aunque cada hijo tenga un solo padre. 2. El modelo de red El modelo de red evita esta redundancia en la información, a través de la incorporación de un tipo de registro denominado el conector, que en este caso pueden ser las calificaciones que obtuvieron los alumnos de cada profesor. La dificultad surge al manejar las conexiones o ligas entre los registros y sus correspondientes registros conectores. 3. El modelo relacional Víctor Santiago Yunga Juela. 2011 UNIVERSIDAD TÉCNICA DE MACHALA Se está empleando con más frecuencia en la práctica, debido el rápido entendimiento por parte de los usuarios que no tienen conocimientos profundos sobre Sistemas de Bases de Datos y a las ventajas que ofrece sobre los dos modelos anteriores. En este modelo toda la información se representa a través de arreglos bidimensionales o tablas. Estas operaciones básicas son: Seleccionar renglones de alguna tabla (SELECT) Seleccionar columnas de alguna tabla (PROJECT) Unir o juntar información de varias tablas (JOIN) Es importante mencionar que la mayoría de los paquetes que manejan bases de datos disponibles en el mercado poseen las instrucciones SELECT, PROJECT Y JOIN con diferentes nombres y modalidades. Bases de Datos distribuidas Son las Bases de Datos que no están almacenadas totalmente en un solo lugar físico, (esta segmentada) y se comunican por medio de enlaces de comunicaciones a través de una red de computadoras distribuidas geográficamente. Tendencias futuras La explotación efectiva de la información dará ventaja competitiva a las organizaciones. Las bases de datos orientadas a objetos empleadas para diseño y manufactura asistida por computadora CAD/CAM serán utilizados a un mismo nivel que las Bases se Datos relacionales de la actualidad. Los lenguajes de consulta (SQL) permitirán el uso del lenguaje natural para solicitar información de la Base de Datos, haciendo más rápido y fácil su manejo. Víctor Santiago Yunga Juela. UNIVERSIDAD TÉCNICA DE MACHALA 2011 EJEMPLOS: Bases de Datos SQL. ORACLE. DBASE. IV. FOXPRO. FOXBASE. PARADOS. ACCES. APPROACH. GLOBALIZACIÓN DE BASE DE DATOS El reciente auge latinoamericano por integrar sus economías con la finalidad de obtener ventaja competitivas ante la avasallante globalización ha obligado a repensar y reestructurar viejos y nuevos esquemas de integración. Sin embargo, existen muchos elementos requeridos para la integración sobre las cuales no se ha considerado lo suficiente, ni se ha realizado el esfuerzo necesario como para sentar estructuras organizacionales que permitan conocer hacía donde dirigir los mejores esfuerzos y entre estas tenemos las bases de datos, almacenamiento, manejo y flujo de información, en lo cual latinoamericana no se encuentra lo suficientemente preparada para ir a la par con el actual proceso de integración. En este artículo revisaremos algunas de las tendencias y esfuerzos que se están llevando a cabo en los países de Latinoamérica en el área de la información y de manera específica la Víctor Santiago Yunga Juela. 2011 UNIVERSIDAD TÉCNICA DE MACHALA actividad que se está generando en la Universidad del Zulia en su Biblioteca Central "Gral. Rafael Urdaneta" NORMALIZACIÓN DE BASES DE DATOS El proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional. Las bases de datos relacionales se normalizan para: Evitar la redundancia de los datos. Evitar problemas de actualización de los datos en las tablas. Proteger la integridad de los datos. En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una tabla sea considerada como una relación tiene que cumplir con algunas restricciones: Cada tabla debe tener su nombre único. No puede haber dos filas iguales. No se permiten los duplicados. Todos los datos en una columna deben ser del mismo tipo. Fundamentos de la normalización La normalización es el proceso de organizar los datos de una base de datos. Se incluye la creación de tablas y el establecimiento de relaciones entre ellas según reglas diseñadas tanto para proteger los datos como para hacer que la base de datos sea más flexible al eliminar la redundancia y las dependencias incoherentes. Los datos redundantes desperdician el espacio de disco y crean problemas de mantenimiento. Si hay que cambiar datos que existen en más de un lugar, se deben cambiar de la misma forma exactamente en todas sus ubicaciones. Un cambio en la dirección de un Víctor Santiago Yunga Juela. 2011 UNIVERSIDAD TÉCNICA DE MACHALA cliente es mucho más fácil de implementar si los datos sólo se almacenan en la tabla Clientes y no en algún otro lugar de la base de datos. ¿Qué es una "dependencia incoherente"? Aunque es intuitivo para un usuario mirar en la tabla Clientes para buscar la dirección de un cliente en particular, puede no tener sentido mirar allí el salario del empleado que llama a ese cliente. El salario del empleado está relacionado con el empleado, o depende de él, y por lo tanto se debería pasar a la tabla Empleados. Las dependencias incoherentes pueden dificultar el acceso porque la ruta para encontrar los datos puede no estar o estar interrumpida. Hay algunas reglas en la normalización de una base de datos. Cada regla se denomina una "forma normal". Si se cumple la primera regla, se dice que la base de datos está en la "primera forma normal". Si se cumplen las tres primeras reglas, la base de datos se considera que está en la "tercera forma normal". Aunque son posibles otros niveles de normalización, la tercera forma normal se considera el máximo nivel necesario para la mayor parte de las aplicaciones. Al igual que con otras muchas reglas y especificaciones formales, en los escenarios reales no siempre se cumplen los estándares de forma perfecta. En general, la normalización requiere tablas adicionales y algunos clientes consideran éste un trabajo considerable. Si decide infringir una de las tres primeras reglas de la normalización, asegúrese de que su aplicación se anticipa a los problemas que puedan aparecer, como la existencia de datos redundantes y de dependencias incoherentes. El proceso de normalización La normalización es una técnica formal para analizar relaciones basándose en su clave principal (o claves candidatas) y en las dependencias funcionales. La técnica implica una serie de reglas que pueden utilizarse para probar relaciones individuales, de modo que una base de datos pueda normalizarse hasta cualquier grado deseado. Cuando un requisito no sea satisfecho, la relación que viole dicho requisito deberá ser descompuesta en una serie de relaciones que cumplan individualmente los requisitos de la normalización. Víctor Santiago Yunga Juela. UNIVERSIDAD TÉCNICA DE MACHALA 2011 Inicialmente se propusieron tres formas normales, denominadas primera forma normal (1FN), segunda forma normal (2FN) y tercera forma normal (3FN). Posteriormente, Boyce Codd introdujeron una definición mas fuerte de la tercera forma normal, denominada forma normal de Boyce Codd (BCNF). Con la excepción de la forma 1NF, todas estas formas normales están basadas en dependencias funcionales entre los atributos de una relación. Otras formas normales, que van mas allá de la forma BCNF, fueron introducidas posteriormente, como la cuarta forma normal (4FN) y la quinta forma normal (5FN). Sin embargo, estas formas normales posteriores tratan con situaciones que son bastantes raras. El proceso de normalización se suele ejecutar como una serie de pasos. Cada paso corresponde a una forma normal específica, que tiene propiedades conocidas. A medida que avanza el proceso de normalización, las relaciones tienen un formato cada vez mas restringido (más fuerte) y son menos vulnerable a las anomalías de actualización. Para el modelo de datos relacional, es importante tener en cuenta que la única forma crítica a la hora de crear relaciones es la primera forma normal (1NF); todas las demás formas normales son opcionales. Sin embargo, para evitar las anomalías de actualización, resulta recomendable en general continuar con el proceso hasta alcanzar al menos la tercera forma normal (3NF). La siguiente figura ilustra la relación entre las diversas formas normales, mostrando que algunas relaciones 1NF están también en forma 2NF y que algunas relaciones 2NF están también en forma 3NF, etc. 1. Primera forma normal (1NF) Antes de analizar la primera forma normal, vamos a definir cuál es el estado anterior a dicha primera forma normal. Forma no normalizada.- Una tabla que contiene uno o más grupos repetitivos. Primera forma normal (1NF).- Una relación en la que la intersección de toda fila y columna contiene un valor y solo un valor. Víctor Santiago Yunga Juela. UNIVERSIDAD TÉCNICA DE MACHALA 2011 Comenzamos el proceso de normalización transfiriendo primero los datos desde el material fuente (por ejemplo, un formulario estándar de introducción de datos) a formato de tabla, con filas y columnas. En este formato, la tabla esta en forma no normalizada, denominándosela tabla no normalizada. Para transformar la tabla no normalizada a primera forma normal, tenemos que identificar y eliminar los grupos repetitivos dentro de la tabla. Un grupo repetitivo es un atributo, o grupo de atributos, dentro de una tabla que presentan múltiples valores para un mismo valor de los atributos designados como clave principal de esa tabla. Hay dos técnicas principales para eliminar los grupos repetitivos de las tablas no normalizadas: Introduciendo datos apropiados en las columnas vacías de las filas que contienen los datos repetitivos. En otras palabras, llenamos los blancos duplicando los datos no repetitivos siempre que sea necesario. Esta técnica se suele denominar aplanamiento de la tabla. Colocando los datos repetitivos, junto con una copia de los atributos clave originales en una relación independiente. Algunas veces la tabla no normalizada puede contener más de un grupo repetitivo o puede contener grupos repetitivos dentro de otros grupos repetitivos. En tales casos, se aplica esta técnica de forma sucesiva hasta que no quede ningún grupo repetitivo. Un conjunto de relaciones está en la forma 1NF si no contiene ningún grupo repetitivo. Para ambas técnicas, las tablas resultantes se denominaran relaciones 1NF que contienen valores atómicos (o simples) en la intersección de cada fila y columna. Aunque ambas técnicas son correctas, la primera de ellas introduce mas redundancia en la tabla UNF original, como parte del proceso de aplanamiento, mientras que la técnica 2 crea dos o más relaciones con menos redundancia que en la tabla 1NF Víctor Santiago Yunga Juela. 2011 UNIVERSIDAD TÉCNICA DE MACHALA original. En otras palabras, la técnica 2 transforma la tabla 1NF original llevándola más adelante en el proceso de normalización que la técnica 1. 2. Segunda forma normal (2NF) La segunda forma normal (2NF) está basada en el concepto de dependencia funcional completa. La segunda forma normal se aplica a las relaciones con claves compuestas, es decir, relaciones con una clave principal compuesta de dos o más atributos. Una relación con una clave principal de un único atributo esta automáticamente en forma 2NF, al menos. Una relación que no esté en forma 2NF puede sufrir las anomalías de actualizaciones. Por ejemplo, suponga que queremos modificar el alquiler del inmueble numero PG4. Tendremos que actualizar dos duplas en la relación Cliente Rental. Si solo se actualizara una de las duplas con el nuevo valor del alquiler, este daría como resultado una incoherencia en la base de datos. Segunda forma normal (2NF).- Una reacción que está en primera forma normal y en la que todo atributo que no sea de clave principal depende funcionalmente de manera completa de la clave principal. La normalización de las relaciones 1NF para transformarlas a la forma 2NF implica la eliminación de las dependencias parciales. Si existe una dependencia parcial, se eliminan de la relación los atributos parcialmente dependientes, situándolos en una nueva relación junto con una copia de su determinante. El siguiente ejemplo ilustra el proceso de conversión de relaciones 1NF en relaciones 2NF. Tomamos como ejemplo las figuras anteriores, la relación ClientRental tiene las siguientes dependencias funcionales: fd1 clientNo, propertyNo fd2 clientNo rentStart, rentFinish (Clave primaria) cName (Dependencia parcial) Víctor Santiago Yunga Juela. 2011 UNIVERSIDAD TÉCNICA DE MACHALA fd3 propertyNo fd4 owner fd5 clientNo, pAddress, rent, ownerNo,oName (Dependencia parcial) oName (Dependencia transitiva) rentStart propertyNo, pAddress, rentFinish, rent, ownerNo,oName (Clave candidate) fd6 propertyNo,rentStart clientNo, cName, rentFinish (Clave candidata) Utilizando estas dependencias funcionales, continuamos con el proceso de normalización de la relación ClientRental. Comenzamos comprobando si la relación ClientRental está en forma 2NF, identificando la presencia de dependencias parciales en la clave principal. Observamos que el atributo de cliente (cName) depende principalmente de la clave principal; en otras palabras, depende solo del atributo clientNo (lo que está representado como fd2). Los atributos de inmueble (pAddress, rent, ownerNo, oName) dependen parcialmente de la clave principal, es decir, dependen solo del atributo propertyNo (lo que está representado como fd3). Los atributos del inmueble (rentStart y rentFinish) depende de modo completo de la clave principal, es decir, de los atributos clientNo y propertyNo (lo que está representado como fd1). 3. Tercera forma normal (3NF) Aunque las relaciones 2NF tienen menos redundancia que las que están en forma 1NF, pueden seguir sufriendo de anomalías de actualización. Por ejemplo, si queremos actualizar el nombre de un propietario, como pueda ser Tony Shaw (ownerNo,CO93), tenemos que actualizar dos tuplas en la relación PropertyOwner de la tabla anterior. Si actualizamos solo una tupla y no la otra, la base de datos estará en un estado incoherente. Esta anomalía de actualización está causada por una dependencia transitiva. Necesitamos eliminar dichas dependencias realizando la transformación a la tercera forma normal. Víctor Santiago Yunga Juela. 2011 UNIVERSIDAD TÉCNICA DE MACHALA Tercera forma normal (3NF).- Una relación que está en primera y segunda formas normales y en la que ningún atributo que no sea de clave principal depende transitivamente de la clave principal. La normalización de las relaciones 2NF para pasarlas a forma 3NF implica la eliminación de las dependencias transitivas. Si existe una dependencia transitiva, eliminamos de la relación los atributos que dependen transitivamente, situándolos en una nueva relación junto con una copia del determinante. En el siguiente ejemplo se ilustra el proceso de relaciones 2NF en relaciones 3NF. Ejemplo. Tercera forma normal (3NF) Las dependencias funcionales para las relaciones Client, Rental y PropertyOwner, derivadas del ejemplo mencionado anteriormente: Client fd2 clientNo cName (Clave principal) Rental fd1 clientNo, propertyNo fd5 clientNo,rentStart propertyNo,rentFinish (Clave principal) fd6 propertyNo,rentStart fd3 propertyNo fd4 ownerNo rentStart, rentFinish (Clave principal) clientNo,rentFinish (Clave principal) pAddress, rent, ownerNo,oName (Clave principal) oName (Dependencia transitiva) Todos los atributos que no son de clave principal dentro de las relaciones Cliente y Rental dependen funcionalmente tan solo de sus respectivas claves primarias. Las relaciones Cliente y Rental no tienen dependencias transitivas y están ya por tanto en forma 3NF. Observe que cuando una dependencia funcional esta etiquetada con Víctor Santiago Yunga Juela. 2011 UNIVERSIDAD TÉCNICA DE MACHALA una prima (como por ejemplo fd5), esto indica que la dependencia se ha modificado con respecto a la dependencia funcional original. Todos los atributos que no son de clave principal dentro de la relación PropertyOwner dependen funcionalmente de la clave principal, con la excepción de oName, que depende transitivamente de owner (lo que representa como fd4). Esta dependencia transitiva ya fue previamente identificada en las figuras anteriormente mencionada. Para transformar la relación PropertyOwner a forma 3NF, debemos primero eliminar la dependencia transitiva creando dos nuevas relaciones denominadas PropertyForRent y Owner, como se muestra en la siguiente figura. Las nuevas relaciones tienen la estructura: PropertyForRent (propertyNo,pAddress,rent,ownerNo) Owner (ownerNo,oName) Las relaciones PropertyForRent y Owner están en forma 3NF, ya que no hay mas dependencias transitivas con respecto a la clave principal. Víctor Santiago Yunga Juela.