INSTITUTO TECNOLÓGICO SUDAMERICANO “ANÁLISIS DE SISTEMAS”
PROYECTO DE BASE DE DATOS
AUTOR: Rodolfo Coronel
DIRECTOR: Ing. Esteban Cáceres
Cuenca-Ecuador 2009
1
INTRODUCCION
El documento que presento a continuación trata sobre el análisis y la creación de una base de datos para una Compañía de Transportes Provinciales. La cual además de que nos permitirá ingresar los datos de los pasajeros, el transportista, el medio de transporte, etc. Nos ayudara en la ardua tarea del registro de los mismos de una manera mucho más eficiente y conveniente para la empresa. Para esto hemos desarrollado el uso de tablas de referencia de cada una de las posibles entidades que se nos presente además estas contendrán una serie de campos los cuales nos informaran detalladamente antes, durante, y después de la creación de la base de datos para esta Empresa. Además podremos ver el uso de las diferentes formas de normalización en cada uno de las tablas además de su posterior identificación de claves principales, foráneas y códigos. Cabe recalcar que durante este proceso se tratara de omitir la duplicidad de datos códigos y demás para que nuestra base de datos funcione de una manera más optima , que el registro de datos sea más fácil y menos tedioso basándose en información necesaria o el uso de códigos. Tomando en cuenta las características ya mencionadas se implementaran una tabla referencial la cual nos podrá guiar de mejor manera en la toma de campos útiles y necesarios para la posterior creación de un sistema de gestión de base de datos.
2
ÍNDICE INTRODUCCION……………………………………………………………………...2 INDICE…………………………………………………………………………………3
CAPITULO I 1. MARCO TEÓRICO……………………………………………………….……...4 1.1 DBDESIGNER CONCEPTO Y DEFINICION…….…………………….…4 1.2 CARACTE´RISTICAS………………………………………………………4 1.3 MICROSOFT ACCESS………………………………………………………5 1.4 ARCHIVOS DE BASE DE DATOS DE ACCESS………………………….5 1.5 TABLAS Y RELACIONES………………………………………………….6 1.6 COMO RELACIONAR DOS TABLAS……………………..………….……6 1.7 CONCEPTO Y DEFINICION BASE DE DATOS…………….………….…7 1.8 SISTEMA DE GESTION DE BASE DE DATOS…………………………...8 1.9 VENTAJAS DE LA BASES DE DATOS…………………………………...8 1.10 DESVENTAJAS DE LAS BASES DE DATOS…………………...10 1.11 TIPOS DE CAMPOS……….……………………………………….11 1.12 TIPOS DE BASE DE DATOS………………….…………………..11 1.13 MODELO ENTIDAD RELACION………..…….………...........…12 1.14 QUE ES LA NORMAILZACION………..……………………...…12 10.1 GRADOS DE NORMAILZACION……………………………………..…13
CAPITULO II 2. DISEÑO Y GESTION DE UNA BASE DE DATOS DE UNA EMPRESA……...15 3. MODELO ENTIDAD RELACION……………………………………………… 15 2.1 RECOPILACION DE INFORMACION……………………………………....16 2.2 CREACION DE TABLAS PRINCIPALES………………………………....…16 2.3 APLICACIÓN DE NORMAILZACION…………………………………..…..17 2.4 RELACION DE ENTIDADES……………………………………………...…21
GLOSARIO………………………………………………………………………….…22 CONCLUCIONES………………………………………………………………..……23 RECOMENDACIONES………………………………………………………….……24 BIBLIOGRAFIA………………………………………………………………….……24 ANEXOS…………………………………………………………………………….…25
3
CAPITULO I MARCO TEORICO DBDESIGNER DISEÑO GRAFICO DE BASES DE DATOS DbDesigner es un editor visual que nos permite crear y editar bases de datos el cual nos permite construir relaciones complejas entre elementos de la base de datos. caracteristicas: Guarda los proyectos en XML nativo Posibilidad de connectividad con otros SGDB a traves de plug-ins añadibles (por defecto MySQL y PostgreSQL) Conectividad con el "backend" de la base de datos Exportar/Importar scripts .SQL
4
MICROSOFT ACCESS Definición Una base de datos es una recopilación de información relativa a un asunto o propósito particular, como el seguimiento de pedidos de clientes o el mantenimiento de una colección de música. Si la base de datos no está almacenada en un equipo, o sólo están instaladas partes de la misma, puede que deba hacer un seguimiento de información procedente de varias fuentes en orden a coordinar y organizar la base de datos. Archivos de base de datos de Access Por medio de Microsoft Access, puede administrar toda la información desde un único archivo de base de datos. Dentro del archivo, puede utilizar: Tablas para almacenar los datos. Consultas para buscar y recuperar únicamente los datos que necesita. Formularios para ver, agregar y actualizar los datos de las tablas. Informes para analizar o imprimir los datos con un diseño específico. Páginas de acceso a datos para ver, actualizar o analizar los datos de la base de datos desde Internet o desde una intranet. Almacenar los datos una vez en una tabla y verlos desde varios lugares. Cuando se actualizan los datos, se actualizan en todos los lugares donde aparecen. Mostrar los datos en una consulta Mostrar los datos en un formulario Mostrar los datos en un informe Mostrar los datos en una página de acceso a datos
5
Tablas y relaciones Para almacenar los datos, cree una tabla para cada tipo de información de la que hace el seguimiento. Para reunir los datos de varias tablas en una consulta, formulario, informe o página de acceso a datos, defina relaciones entre las tablas.
Tablas: Almacenar y administrar los datos Una tabla es una colección de datos sobre un tema específico, como productos o proveedores. Al usar una tabla independiente para cada tema, los datos se almacenan sólo una vez. Esto tiene como resultado una base de datos más eficaz y menos errores de entrada de datos. Cómo se organizan los datos en tablas Las tablas organizan datos en columnas (denominadas campos) y filas (denominadas registros).
Por ejemplo, cada campo de una tabla Productos contiene el mismo tipo de información para cada producto, por ejemplo, su nombre. Cada uno de los registros de esa tabla contiene toda la información acerca de un producto, por ejemplo, el nombre del producto, el Id. de proveedor, las unidades en existencia, etc. Cómo relacionar dos tablas Un campo común relaciona dos tablas de manera que Microsoft Access puede combinar los datos de las dos tablas para ver, modificar o imprimir. En una tabla, el campo es una clave principal (clave principal: uno o más campos (columnas) cuyos valores identifican de manera exclusiva cada registro de una tabla. Una clave principal no puede permitir valores Nulo y debe tener siempre un índice exclusivo. Una clave principal se utiliza para relacionar una tabla con
6
claves externas de otras tablas.) que se establece en la vista Diseño (vista Diseño: ventana que muestra el diseño de estos objetos de base de datos: tablas, consultas, formularios, informes, macros y páginas de acceso a datos. En la vista Diseño, puede crear objetos de base de datos nuevos y modificar el diseño de otros existentes.) de la tabla. Ese mismo campo también existe en la tabla relacionada como una clave externa (clave externa: uno o más campos de tabla (columnas) que hacen referencia al campo o campos de clave principal de otra tabla. Una clave externa indica cómo están relacionadas las tablas.).
1.1 Concepto y Definición 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. A continuación te presentamos una guía que te explicará el concepto y características de las bases de datos. Desde el punto de vista informático, la base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos. Cada base de datos se compone de una o más tablas que guarda un conjunto de datos. Cada tabla tiene una o más columnas y filas. Las columnas guardan una parte de la información sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla conforma un registro.
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
7
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 auditoria. Respaldo y recuperación. Acceso a través de lenguajes de programación estándar.
Sistema de Gestión de Base de Datos (SGBD) Los Sistemas de Gestión de Base de Datos (en inglés DataBase Management System) es un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Se compone de un lenguaje de definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta.
Ventajas de las bases de datos Control sobre la redundancia de datos: Los sistemas de ficheros almacenan varias copias de los mismos datos en ficheros distintos. Esto hace que se desperdicie espacio de almacenamiento, además de provocar la falta de consistencia de datos. En los sistemas de bases de datos todos estos ficheros están integrados, por lo que no se almacenan varias copias de los mismos datos. Sin embargo, en una base de datos no se puede eliminar la redundancia completamente, ya que en ocasiones es necesaria para modelar las relaciones entre los datos. Consistencia de datos: Eliminando o controlando las redundancias de datos se reduce en gran medida el riesgo de que haya inconsistencias. Si un dato está almacenado una sola vez, cualquier actualización se debe realizar sólo una vez, y está disponible para todos los usuarios inmediatamente. Si un dato está duplicado y el sistema conoce esta redundancia, el propio sistema puede encargarse de garantizar que todas las copias se mantienen consistentes. Compartición de datos:
8
En los sistemas de ficheros, los ficheros pertenecen a las personas o a los departamentos que los utilizan. Pero en los sistemas de bases de datos, la base de datos pertenece a la empresa y puede ser compartida por todos los usuarios que estén autorizados. Mantenimiento de estándares: Gracias a la integración es más fácil respetar los estándares necesarios, tanto los establecidos a nivel de la empresa como los nacionales e internacionales. Estos estándares pueden establecerse sobre el formato de los datos para facilitar su intercambio, pueden ser estándares de documentación, procedimientos de actualización y también reglas de acceso. Mejora en la integridad de datos: La integridad de la base de datos se refiere a la validez y la consistencia de los datos almacenados. Normalmente, la integridad se expresa mediante restricciones o reglas que no se pueden violar. Estas restricciones se pueden aplicar tanto a los datos, como a sus relaciones, y es el SGBD quien se debe encargar de mantenerlas.
Mejora en la seguridad: La seguridad de la base de datos es la protección de la base de datos frente a usuarios no autorizados. Sin unas buenas medidas de seguridad, la integración de datos en los sistemas de bases de datos hace que éstos sean más vulnerables que en los sistemas de ficheros. Mejora en la accesibilidad a los datos: Muchos SGBD proporcionan lenguajes de consultas o generadores de informes que permiten al usuario hacer cualquier tipo de consulta sobre los datos, sin que sea necesario que un programador escriba una aplicación que realice tal tarea. Mejora en la productividad: El SGBD proporciona muchas de las funciones estándar que el programador necesita escribir en un sistema de ficheros. A nivel básico, el SGBD proporciona todas las rutinas de manejo de ficheros típicas de los programas de aplicación. El hecho de disponer de estas funciones permite al programador centrarse mejor en la función específica requerida por los usuarios, sin tener que preocuparse de los detalles de implementación de bajo nivel. Mejora en el mantenimiento: En los sistemas de ficheros, las descripciones de los datos se encuentran inmersas en los programas de aplicación que los manejan.
9
Esto hace que los programas sean dependientes de los datos, de modo que un cambio en su estructura, o un cambio en el modo en que se almacena en disco, requiere cambios importantes en los programas cuyos datos se ven afectados. Sin embargo, los SGBD separan las descripciones de los datos de las aplicaciones. Esto es lo que se conoce como independencia de datos, gracias a la cual se simplifica el mantenimiento de las aplicaciones que acceden a la base de datos. Aumento de la concurrencia: En algunos sistemas de ficheros, si hay varios usuarios que pueden acceder simultáneamente a un mismo fichero, es posible que el acceso interfiera entre ellos de modo que se pierda información o se pierda la integridad. La mayoría de los SGBD gestionan el acceso concurrente a la base de datos y garantizan que no ocurran problemas de este tipo. Mejora en los servicios de copias de seguridad: Muchos sistemas de ficheros dejan que sea el usuario quien proporcione las medidas necesarias para proteger los datos ante fallos en el sistema o en las aplicaciones. Los usuarios tienen que hacer copias de seguridad cada día, y si se produce algún fallo, utilizar estas copias para restaurarlos. En este caso, todo el trabajo realizado sobre los datos desde que se hizo la última copia de seguridad se pierde y se tiene que volver a realizar. Sin embargo, los SGBD actuales funcionan de modo que se minimiza la cantidad de trabajo perdido cuando se produce un fallo.
Desventajas de las bases de datos Complejidad: Los SGBD son conjuntos de programas que pueden llegar a ser complejos con una gran funcionalidad. Es preciso comprender muy bien esta funcionalidad para poder realizar un buen uso de ellos. Coste del equipamiento adicional: Tanto el SGBD, como la propia base de datos, pueden hacer que sea necesario adquirir más espacio de almacenamiento. Además, para alcanzar las prestaciones deseadas, es posible que sea necesario adquirir una máquina más grande o una máquina que se dedique solamente al SGBD. Todo esto hará que la implantación de un sistema de bases de datos sea más cara. Vulnerable a los fallos:
10
El hecho de que todo esté centralizado en el SGBD hace que el sistema sea más vulnerable ante los fallos que puedan producirse. Es por ello que deben tenerse copias de seguridad (Backup).
Tipos de Campos Cada Sistema de Base de Datos posee tipos de campos que pueden ser similares o diferentes. Entre los más comunes podemos nombrar: • Numérico: entre los diferentes tipos de campos numéricos podemos encontrar enteros “sin decimales” y reales “decimales”. •
Booleanos: poseen dos estados: Verdadero “Si” y Falso “No”.
• Memos: son campos alfanuméricos de longitud ilimitada. Presentan el inconveniente de no poder ser indexados. • Fechas: almacenan fechas facilitando posteriormente su explotación. Almacenar fechas de esta forma posibilita ordenar los registros por fechas o calcular los días entre una fecha y otra. • Alfanuméricos: contienen cifras y letras. Presentan una longitud limitada (255 caracteres). • Auto incrementables: son campos numéricos enteros que incrementan en una unidad su valor para cada registro incorporado. Su utilidad resulta: Servir de identificador ya que resultan exclusivos de un registro.
Tipos de Base de Datos Entre los diferentes tipos de base de datos, podemos encontrar los siguientes: • MySql: es una base de datos con licencia GPL basada en un servidor. Se caracteriza por su rapidez. No es recomendable usar para grandes volúmenes de datos. • PostgreSql y Oracle: Son sistemas de base de datos poderosos. Administra muy bien grandes cantidades de datos, y suelen ser utilizadas en intranets y sistemas de gran calibre. • Access: Es una base de datos desarrollada por Microsoft. Esta base de datos, debe ser creada bajo el programa Access, el cual crea un archivo .mdb con la estructura ya explicada.
11
• Microsoft SQL Server: es una base de datos más potente que Access desarrollada por Microsoft. Se utiliza para manejar grandes volúmenes de informaciones.
Modelo entidad-relación Los diagramas o modelos entidad-relación (denominado por su siglas, ERD “Diagram Entity relationship”) son una herramienta para el modelado de datos de un sistema de información. Estos modelos expresan entidades relevantes para un sistema de información, sus inter-relaciones y propiedades.
Cardinalidad de las Relaciones El diseño de relaciones entre las tablas de una base de datos puede ser la siguiente: • Relaciones de uno a uno: una instancia de la entidad A se relaciona con una y solamente una de la entidad B. • Relaciones de uno a muchos: cada instancia de la entidad A se relaciona con varias instancias de la entidad B. • Relaciones de muchos a muchos: cualquier instancia de la entidad A se relaciona con cualquier instancia de la entidad B.
¿Qué es la normalización? Normalización es un conjunto de reglas que sirven para ayudar a los diseñadores a desarrollar un esquema que minimice los problemas de lógica. Cada regla está basada en la que le antecede. La normalización se adoptó porque el viejo estilo de poner todos los datos en un solo lugar, como un archivo o una tabla de la
12
base de datos, era ineficiente y conducía a errores de lógica cuando se trataba de manipular los datos El proceso de normalización tiene un nombre y una serie de reglas para cada fase. Esto puede parecer un poco confuso al principio, pero poco a poco irá entendiendo el proceso, así como las razones para hacerlo de esta manera. Otra ventaja de la normalización de su base de datos es el consumo de espacio. Una base de datos normalizada puede ocupar menos espacio en disco que una no normalizada. Hay menos repetición de datos, lo que tiene como consecuencia un mucho menor uso de espacio en disco.
Grados de normalización Primera Forma Normal (1FN)
La regla de la Primera Forma Normal establece que las columnas repetidas deben eliminarse y colocarse en tablas separadas. Poner la base de datos en la Primera Forma Normal resuelve el problema de los encabezados de columna múltiples. Muy a menudo, los diseñadores de bases de datos inexpertos harán algo similar a la tabla no normalizada. Una y otra vez, crearán columnas que representen los mismos datos. La normalización ayuda a clarificar la base de datos ya organizarla en partes más pequeñas y más fáciles de entender. En lugar de tener que entender una tabla gigantesca y monolítica que tiene muchos diferentes aspectos, usted sólo tiene que entender objetos pequeños y más tangibles, así como las relaciones que guardan con otros objetos también pequeños. No es necesario mencionar que un mejor entendimiento del funcionamiento de su base de datos conducirá a un mejor aprovechamiento de sus activos.
Segunda Forma Normal (2FN)
La regla de la Segunda Forma Normal establece que todas las dependencias parciales se deben eliminar y separar dentro de sus propias tablas. Una dependencia parcial es un término que describe a aquellos datos que no dependen de la clave de la tabla para identificarlos. Eliminación de las dependencias parciales -Segunda Forma Normal Al haber alcanzado la Segunda Forma Normal, usted puede disfrutar de algunas de las ventajas de las bases de datos relacionales. Por ejemplo, puede añadir nuevas columnas
13
a la tabla Clientes sin afectar a las tablas Productos y Pedidos. Lo mismo aplica para las otras tablas. Alcanzar este nivel de normalización permite que los datos se acomoden de una manera natural dentro de los límites esperados.
Tercera Forma Normal (3FN) La regla de la Tercera Forma Normal señala que hay que eliminar y separar cualquier dato que no sea clave. El valor de esta columna debe depender de la clave. Todos los valores deben identificarse únicamente por la clave. En la base de datos de muestra, la tabla Clientes contiene la columna Nombre_Cia_Envios, la cual no se identifica únicamente por la clave. Podría separar estos datos de la tabla y ponerlos en una tabla aparte. Esto le da más flexibilidad y previene errores de lógica cuando inserta o borra registros. Cada columna en la tabla está identificada de manera única por la clave, y no hay datos repetidos. Esto provee un esquema limpio y elegante, que es fácil de trabajar y expandir.
Forma Normal de Boyce-Codd (FNBC) La tabla se encuentra en BCNF si cada determinante, atributo que determina completamente a otro, es clave candidata.
Cuarta Forma Normal (4FN) 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) Una tabla se encuentra en 5FN si: La tabla esta 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 esta en la 5FN si, y sólo si, cada relación de dependencia se encuentra definida por las claves candidatas.
14
CAPITULO II Diseño y Gestión de una Base de Datos para una Empresa de Transportes Provinciales
Recopilación de información, identificación de entidades: Para esta base de datos en una compañía de transporte se ha tomado en cuenta las siguientes entidades: Pasajeros Medio de transporte “Bus” Chofer Ayudante Vendedor (Cajero) Boleto Comprobante (Factura, Nota de venta )
MODELO ENTIDAD RELACION
PASAJEROS
USAN
MEDIO DE TRANSPORTE
ES CONDUCIDO
CHOFER
COMPRA
TIENE BOLETO
EMITE
FACTURA
AYUDANTE
15
Creación de tablas principales Pasajeros
Medio de transporte
Chofer
16
Ayudante
Vendedor (Cajero)
Boleto
17
2.1 Aplicaciones de Normalización Pasajeros Normalización a primera forma
Vendedor (Cajero) Normalización a primera forma
Normalización a tercera forma
18
Bus Normalización a primera forma
Normalización a segunda forma
Ayudante Normalización a primera forma
19
Normalización a segunda forma
Boleto Normalización a tercera forma
Chofer Normalización a primera forma
20
2.2 Relación de Entidades
21
GLOSARIO LOPD Ley Orgánica de Protección de Datos de Carácter Personal. La Ley Orgánica de Protección de Datos de Carácter Personal (LOPD) define el concepto de "dato de carácter personal" como cualquier información concerniente a una persona física identificada o identificable.
DDL Lenguaje de Definición de Datos. Esta es una página de desambiguación, una ayuda a la navegación que cataloga páginas que de otra forma compartirían un mismo título. Si llegaste aquí a través de un enlace interno, regresa por favor para corregirlo de modo que apunte al artículo apropiado.
DML Data Manipulation Language Un Lenguaje de Manipulación de Datos (Data Manipulation Language, DML) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado.
QL Query Language. Se define un lenguaje de programación relacionalmente completo, denominado Query Language ( QL ). Y se presenta la descripción de la implementación de un Intérprete para el lenguaje QL
22
CONCLUCIONES
Para concluir en este trabajo hemos podido observar el método de aplicación de las distintas formas de normalización, la tabla de relación de entidades, el uso de los diferentes programas en la creación de una base de datos como es el caso de DBDesinger4 y por supuesto el análisis detallado paso a paso de las diferentes entidades y relaciones. Las bases de datos son sencillas de crear, hay distintas formas de hacerlo, pero es cuestión de comodidad y hábito diría yo, por ejemplo, se pueden crear desde el lenguaje SQL, también desde el popular phpMyAdmin, y claro mediante el Control panel. Existen varias formas, pero éstas aquí mencionadas son las más usadas.
RECOMENDACIONES
Al finalizar esta práctica hemos aprendido con éxito la complejidad de esta tecnología que tiene muchos parámetros que son tan importantes para la comunicación. Cuidadosamente se ha establecido esta práctica adquiriendo los conocimientos necesarios para realizar de nuevo esta práctica sin fallos de errores. Con lo aprendido pondremos en práctica los temas tratados ya sea con el fin de ayudar o realizar nuestros propios trabajos que ayer eran desconocidos para nosotros. Por lo general estos temas son fáciles de aprender, y también adquirir conocimientos que varían en la comunicación controlando e impulsando el deseo de aprender lo que mañana será inútil.
23
BIBLIOGRAFÍA
http://www.monografias.com/trabajos7/bada/bada.shtml http://www.uv.es/marjoari/pfc/html/node17.html www.freedownloadscenter.com/es/
http://www.uv.es/dbdesigner/pfc/html/node.html http://www.monografias.com/microsoft access/bada/bada.shtml
24
ANEXOS
http://www.slideshare.net/my-slideshows http://www.slideshare.net/guestcde16b/proyecto-final-base-de-datos
25