Materia de: Perteneciente a: Gabriela Anabell Rodas Saraguro Curso: Docente: Ing. Sist. Luis Loján Cueva Año lectivo: 2011 – 2012 BASE DE DATOS ¿QUÉ ES UNA BASE DE DATOS? Una base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos. Existen programas denominados sistemas gestores de bases de datos, abreviado SGBD, que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de estos SGBD, así como su utilización y administración, se estudian dentro del ámbito de la informática. Las aplicaciones más usuales son para la gestión de empresas e instituciones públicas. También son ampliamente utilizadas en entornos científicos con el objeto de almacenar la información experimental. Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar fácilmente. Definición de base de datos Se define una base de datos como una serie de datos organizados y relacionados entre sí, los cuales son recolectados y explotados por los sistemas de información de una empresa o negocio en particular. Características Entre las principales características de los sistemas de base de datos podemos mencionar: Independencia lógica y física de los datos. Redundancia mínima. Acceso concurrente por parte de múltiples usuarios. Integridad de los datos. Consultas complejas optimizadas. Seguridad de acceso y auditoría. Respaldo y recuperación. Acceso a través de lenguajes de programación estándar. NORMALIZACION DE DATOS FORMAS DE NORMALIZACION Las formas normales son aplicadas a las tablas de una base de datos. Decir que una base de datos está en la forma normal N es decir que todas sus tablas están en la forma normal N. En general, las primeras tres formas normales son suficientes para cubrir las necesidades de la mayoría de las bases de datos. El creador de estas 3 primeras formas normales (o reglas) fue Edgar F. Codd. Primera Forma Normal (1FN) Una tabla está en Primera Forma Normal si: Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son indivisibles, mínimos. La tabla contiene una llave primaria única. La llave primaria no contiene atributos nulos. No debe existir variación en el número de columnas. Los Campos no llave deben identificarse por la llave (Dependencia Funcional) Debe Existir una independencia del orden tanto de las filas como de las columnas, es decir, si los datos cambian de orden no deben cambiar sus significados Una tabla no puede tener múltiples valores en cada columna. Los datos son atómicos. (Si a cada valor de X le pertenece un valor de Y y viceversa). Esta forma normal elimina los valores repetidos dentro de una BD Segunda Forma Normal (2FN) Dependencia Funcional. Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ninguna clave dependen de forma completa de la clave principal. Es decir que no existen dependencias parciales. (Todos los atributos que no son clave principal deben depender únicamente de la clave principal). En otras palabras podríamos decir que la segunda forma normal está basada en el concepto de dependencia completamente funcional. Una dependencia funcional es completamente funcional si al eliminar los atributos A de X significa que la dependencia no es mantenida, esto es que . Una dependencia funcional es una dependencia parcial si hay algunos atributos que pueden ser eliminados de X y la dependencia todavía se mantiene, esto es . Por ejemplo {DNI, ID_PROYECTO} HORAS_TRABAJO (con el DNI de un empleado y el ID de un proyecto sabemos cuántas horas de trabajo por semana trabaja un empleado en dicho proyecto) es completamente dependiente dado que ni DNI HORAS_TRABAJO ni ID_PROYECTO HORAS_TRABAJO mantienen la dependencia. Sin embargo {DNI, ID_PROYECTO} NOMBRE_EMPLEADO es parcialmente dependiente dado que DNI NOMBRE_EMPLEADO mantiene la dependencia. Tercera Forma Normal (3FN) Una tabla está normalizada en esta forma si todas las columnas que no son llave son funcionalmente dependientes por completo de la llave primaria y no hay dependencias transitivas. Comentamos anteriormente que una dependencia transitiva es aquella en la cual existen columnas que no son llave que dependen de otras columnas que tampoco son llave. Cuando las tablas están en la Tercera Forma Normal se previenen errores de lógica cuando se insertan o borran registros. Cada columna en una tabla está identificada de manera única por la llave primaria, y no debe haber datos repetidos. Esto provee un esquema limpio y elegante, que es fácil de trabajar y expandir. Un dato sin normalizar no cumple con ninguna regla de normalización. Para explicar con un ejemplo en qué consiste cada una de las reglas, vamos a considerar los datos de la siguiente tabla. Tercera Forma Normal (3FN) Elimina cualquier dependencia transitiva. Una dependencia transitiva es aquella en la cual las columnas que no son llave son dependientes de otras columnas que tampoco son llave. Cuarta Forma Normal (4FN) Artículo principal: Cuarta forma normal Una tabla se encuentra en 4FN si, y sólo si, para cada una de sus dependencias múltiples no funcionales X->->Y, siendo X una súper-clave que, X es o una clave candidata o un conjunto de claves primarias. Quinta Forma Normal (5FN) Artículo principal: Quinta forma normal Una tabla se encuentra en 5FN si: La tabla está en 4FN No existen relaciones de dependencias no triviales que no siguen los criterios de las claves. Una tabla que se encuentra en la 4FN se dice que está en la 5FN si, y sólo si, cada relación de dependencia se encuentra definida por las claves candidatas. Sistema de ventas Le contratan para hacer una BASE DE DATOS que permita apoyar la gestión de un sistema de ventas. La empresa necesita llevar un control de proveedores, clientes, productos y ventas. Un laboratorio tiene, nombre y teléfono. Un producto tiene un id único, nombre, precio actual, stock Además se organizan en categorías, y cada producto va sólo en una categoría. Por razones de contabilidad, se debe registrar la información de cada venta con un id, fecha, cliente, descuento y monto final. Además se debe guardar el precio al momento de la venta, la cantidad vendida y el monto total por el producto. EJEMPLO DE UNA BASE DE DATOS 1. Base de Datos comercial: Una empresa tiene clientes para los que guarda información y que se referencian mediante un identificador único. Los clientes están segmentados por “Áreas Comerciales” de las que se guarda un código y una descripción. Un cliente puede asociarse a una o más áreas comerciales. En su estrategia comercial, la Empresa lleva a cabo 'Acciones Comerciales'. Estas acciones comerciales tienen un identificador único y afectan a uno o más clientes. Se distinguen unas acciones comerciales de tipo presencial que implican la visita de un comercial de la Empresa y de tipo no presencial, como por ejemplo el envío de faxes, mailings, etc. Cada empresa tiene asignado un comercial por defecto. Los comerciales tienen un identificador único y se guarda para ellos el resto de información. 2. Base de Datos de productos, componentes y proveedores: Una empresa compra componentes a proveedores que luego ensambla para una variedad de productos. La información almacenada sobre los productos incluye un identificador único además del resto de la información. Sobre las piezas se guarda la descripción y un identificador único. Algunos componentes pueden aparecer en varios productos y en cantidades diferentes para cada uno de ellos, información que también hay que mantener. Los proveedores pueden servirnos varios componentes, aunque para un mismo componente podemos tener a varios proveedores. Además de componentes, los proveedores también pueden servirnos por ejemplo soporte especializado para el montaje. Estos servicios también forman parte del producto y para ellos vale todo los que se dijo para los componentes aunque guardarán información específica como por ejemplo el precio hora de la consultoría. 3. Base de Datos de una zapatería: Una zapatería identifica sus zapatos con un código de producto único. Cada combinación del zapato tipo/talla/color se considera única. Por ejemplo, un par de los zapatos negros de Espirit de la talla 36 de las mujeres tiene código de producto 56756-36 (tipo:567, color: 56, talla: 36), mientras que la talla 37 del mismo tipo/color tiene un diverso código de producto. Para cada zapato (tipo/talla/color), el departamento almacena varios pares idénticos. Así, debe no perder de vista la cantidad en stock de cada zapato específico. Los zapatos son servidos por una variedad de proveedores. Sin embargo, un zapato específico (tipo) sólo será servido por un proveedor. Un código único de proveedor identifica a los proveedores. Un mismo proveedor sirve diversos tipos de zapatos al almacén. Hay una necesidad de no perder de vista ventas a clientes. Un número único del cliente identifica a cada cliente. La información adicional, tal como nombre, dirección, y teléfono también se salva para cada cliente. 4. Base de Datos de una imprenta: Necesitamos almacenar información sobre los libros que imprime una imprenta. Cada libro es identificado únicamente por su ISBN. El resto de información sobre un libro incluye la fecha del título y la de publicación. Además de la información del libro, hay también información salvada sobre el editor del libro. Esto incluye un identificador único del editor, el nombre del editor, y la dirección. Un libro solo se puede publicar por un editor. La información sobre los autores de un libro también se salva. Esta información incluye el código, el nombre, y el número de la Seguridad Social del autor. Cualquier libro se puede escribir por uno o varios autores. Cuando se imprime el libro, se envía a una imprenta. La información sobre la imprenta incluye el identificador único, el nombre y la dirección. Se escribe un contrato que indica que el número de libros que imprimirá la imprenta y el plazo de impresión. Ocasionalmente, un mismo libro se puede contratar a varias imprentas si la cantidad requerida excede la producción de la imprenta. 5. Base de Datos de proyectos y contratos: La Empresa ABC construye edificios comerciales de los que necesita manejar información. Cada uno de los proyectos de construcción tiene un identificador único además de otra información. Los proyectos, tienen un responsable de proyecto además de otra serie de empleados, cada uno con su identificador y demás información. Los responsables de proyecto pueden encargarse al mismo tiempo de varios proyectos. Cada proyecto se asocia, generalmente a varios subcontratistas para los que se guarda un identificador y el resto de la información. Estos subcontratistas se especializan en una única línea de trabajo (calefacción, electricidad, carpintería, etc.). Estas especializaciones tienen un código único. Un subcontratista puede participar en varios proyectos, pero en algunos proyectos pueden participar varios subcontratistas en una misma especialización. Los proyectos pueden ser financiados mediante préstamos o subvenciones (ambas cosas son exclusivas). Además de información general de la financiación se guarda información específica según sea préstamo o subvención que tienen también su identificación única. Habitualmente la financiación por préstamos puede emplear uno o más préstamos aunque un préstamo sólo financia un proyecto. 6. Base de Datos de Servicios Sociales: El departamento municipal de servicios sociales tiene diferentes agencias en la ciudad, para proveer ayudas a personas o familias con necesidades. Las agencias tienen información de su dirección, teléfono, etc. y un identificador único. Se mantendrá información tanto general como específica según se trate de personas o familias ayudadas. En ambos casos el identificador será el número de afiliación a la seguridad social. Estas familias o individuos tienen asignada una agencia específica que es de quien reciben la ayuda. La ayuda puede ser en la forma de entrega de bienes o en la forma de visitas de los asistentes sociales. Cada agencia puede tener uno o más asistentes sociales pero cada agente social pertenece a una única agencia. Los asistentes sociales tienen un identificador único y se guarda para ellos el resto de información. Hay un tipo especial de asistente que se conoce como 'asistente externo' y que es ofrecido por otras organizaciones de ayuda humanitaria. Estas organizaciones tienen un identificador único y el resto de información. Para la ayuda asistencial (en la que va un asistente social), se guarda información de las visitas que ha hecho como la fecha, etc. Las ayudas en forma de bienes pueden ser a su vez en la forma de entrega de materiales como alimentos, ropa, muebles, etc. o puramente económica. Para la ayuda económica se debe saber el banco o caja a través de la que dispensa la ayuda; estos bancos o cajas tienen un código único además del resto de información (nombre, dirección, etc.). 7. Base de Datos de fábrica de géneros de punto: Una empresa fabrica artículos de punto. Estos artículos de punto están identificados por un código de artículo único y se guarda para ellos el resto de información. Un mismo artículo puede fabricarse en diferentes colores y tallas. Tallas y colores tienen un código único y también se guarda para ellos la descripción. Los artículos están fabricados sobre unas determinadas 'bases de prenda' que son algo así como una plantilla. Así pues un artículo está basado en una única 'prenda de base' pero sobre la 'prenda base' pueden fabricarse diferentes artículos. Cada prenda base tiene un identificador único además de otra información y también se guarda para ella las materias primas y cantidad empleada en su confección. Una prenda base puede utilizar diferentes materias primas y determinadas materias primas pueden aparecer en más de una prenda base. Todas las materias primas están codificadas y se guarda para ellas el resto de información. Un artículo, además de una “prenda base” puede tener diferentes complementos, como por ejemplo un bordado, un cuello o puños en tela, botones, etc. Estos complementos tienen su código único, su descripción y las materias primas y cantidades utilizadas en su confección. También un complemento puede utilizar diferentes materias primas y una determinada materia prima puede aparecer en más de un complemento diferente. Por último, la empresa tiene clientes que compran artículos (se entiende que artículos acabados) y proveedores que nos sirven las materias primas. Un proveedor puede servirnos diferentes materias primas y una materia prima pueden servirla diferentes proveedores. 8. Base de Datos de videoclub: Asignan a los clientes del videoclub un número único de cliente cuando hacen su primer alquiler. Además del número del cliente, otra información tal como nombre y dirección también se recoge. Cada cinta de vídeo que el almacén posee es identificada por un código único. Así, si el almacén posee varias copias del mismo vídeo, cada copia tiene un código único que la identifica. La otra información sobre un vídeo incluye la fecha de la compra y el número de veces que el vídeo fue alquilado. Cuando un cliente selecciona un vídeo para alquilar, el establecimiento registra esta transacción, incluyendo fecha y hora del alquiler. Es habitual que un cliente alquile varios videos cuando visitan el establecimiento. El establecimiento asigna un identificador único a cada título de la película. Por ejemplo, a la película "Goldfinger" de James Bond se le asigna el identificador ADV234. El videoclub puede tener varios cassettes para este título de película. La otra información sobre películas incluye el título y el año en que fue realizada. 9. Base de Datos de bolsa de trabajo: Cuando una persona solicita ingresar en la bolsa de trabajo de la escuela se le piden los siguientes datos: número de la Seguridad Social, nombre, dirección y teléfono. Las solicitudes no son para un trabajo específico, sino para una clase de trabajo. La información salvada sobre cada clase de trabajo incluye un código único, una descripción, y un rango de sueldo. Asignar a cada aspirante de trabajo a un responsable de la bolsa de trabajo que tramite su solicitud y ayude al aspirante con cualquier pregunta. La información sobre responsables incluye sus números de empleado, nombres, y números de teléfono únicos. No se restringe a los aspirantes de trabajo a solicitar una sola clase de trabajo, pueden estar calificados para varios. Se debe almacenar la fecha en que un aspirante solicitó una clase de trabajo específico porque suprime las solicitudes más antiguas. Se almacenará información sobre las empresas que solicitan empleados con las mismas características que las del empleado (fecha de la solicitud, clase de trabajo, número de empleados, etc). También se almacenarán todas las entrevistas concertadas de cada solicitante para cada trabajo, y si ha sido contratado o no. 10. Base de Datos de gimnasio: En un gimnasio se imparten distintas actividades físicas que incluyen cosas tales como aeróbic, máquinas o natación. Cada actividad es identificada por un código de la actividad e incluye otra información tal como descripción. Se ofrecen clases para cada actividad. Una clase es identificada únicamente por una combinación del código de la actividad y del día y hora en los cuales se imparte. Se asume que una clase específica nunca será ofrecida por la misma actividad en el mismo día y hora, aunque podría ser ofrecida en diversos días y horas. El resto de información sobre una clase incluye el límite de la inscripción y total de alumnos inscritos. Una clase nunca incluirá más de una actividad. Un alumno puede apuntarse a un grupo mientras haya sitio en la clase. Un número único identifica a los alumnos. La otra información salvada sobre alumnos incluye nombre, dirección y edad. Los alumnos no tienen ningún límite en el número y el tipo de clases a las cuales se pueden apuntar. EJEMPLO DE UNA BASE DE DATOS DE COMPRAS Archivo de productos Código artículo Descripción del material Unidad Cantidad 1.01.01 CD-ROM RW IDE Unidad 10 1.01.02 Disco rígido ATA 66 Unidad 20 1.02.01 Disco Flexible de 3 1/2" 1,44 Mbytes Caja de 10 20 Unidad 5 Resma 100 hojas 25 2.01.01 Sonido de 16 bit 3.01.01 4.01.01 4.01.02 4.01.03 Papel carta para impresora. Pentium II 200Mhz Pentium III 500Mhz Pentium III 800Mhz Archivo de proveedores 7 Unidad 8 Unidad 9 Unidad Código proveedor Nombre del proveedor Teléfono del proveedor Dirección del proveedor 001 Inca Tel 002 Infocad 49234803 Av. La Plata 365 46332520 Doblas 1578 003 Herrera Compusistem 42327711 Archivo de origen de los productos Código Código Precio proveedor del artículo 001 1.01.01 70,00 002 1.01.01 80,00 003 1.01.01 75,00 002 2.01.01 50 001 4.01.03 450 Av. Rivadavia 3558