INSTITUTO TECNOLOGICO SUDAMERICANO NOMBRES: HUGO CHALCO JUAN ASMAL
NIVEL: 2 DO DE SISTEMAS “A”
MATERIA: BASE DE DATOS TEMA NORMALIZAR UNA EMPRESA “ALVISA”
PROFESOR: ESTEBAN ESCACERES
AÑO LECTIVO: 2009
1
INDICE
Pág. Portada……………………………………...………………………………….…..1 Índice…………………………..…….….……………………………………......2 Introducción…………………….……………………………………………....4
Marco Teórico
Base de Datos……………............................................................................................5 Diseño Base de Datos……………………….……………………….……….….……...…8
Identificación de entidades…………………………………………………….7 Relación Entidades……………………………………………………………..7 Identificación de tablas…………………………………………………………8 Identificación claves………………………………………………………..…..8 Tipos de Datos………………………………………………………………………...8 Dependencia Funcional………………………………………………………………..9 Normalización………………………………………………………………………….10 Relación de Tablas Modelo Relacional…………………………………………….......11 DBDesigner 4…………………………………………………………………………..12 SQL…………………………………………………………………………………….14
2
Desarrollo
1. Identificación Entidades…………………………………………………….…16 2. Relación Entidades……………………………………………………….……16 3. Identificación de Tablas……………………………………………………..….17 4. Normalización…………………………………………………………………..20 4. Modelo Relacional……………………………………………………………..25
1. Conclusiones.…………………………………………………………………26 1. Recomendaciones………………………………………………………….….26 1. Glosario.…………………………………………………………………….….27 2. Bibliografía……………………………………………………………………..28 2. Anexos………………………………………………………………………….29
3
INTRODUCCION
En la actualidad la empresa maneja una gran cantidad de datos, al ser estos datos pieza clave en el funcionamiento de la empresa debe tenerlos almacenados en una base de datos y manejados de una forma automática para poder tratarlos y manejarlos en su totalidad de una forma correcta en los aspectos que lleva a cabo la empresa y con esto evitar perdida un tiempo y un dinero muy valiosos. Uno de los pasos cruciales en la construcción de una aplicación que maneje una base de datos es el diseño de la base de datos. Si las tablas no son definidas apropiadamente, podemos tener muchos inconvenientes al momento de ejecutar consultas a la base de datos para tratar de obtener alguna información. La funcionalidad de la base de datos no debe variar en forma considerable si por ejemplo nuestra base de datos tiene sólo 20 registros, o 1000 registros, es importante asegurarnos que nuestra base de datos está correctamente diseñada para que tenga eficiencia y que se pueda seguir utilizando por largo del tiempo. Este trabajo, dará los parámetros básicos para diseñar una base de datos. La complejidad en el diseño de la base de datos, dependerá de cuanta y que información será almacenada en la misma y es única para cada caso, pero todos se basaran en los mismos principios que notaremos en el presente documento.
4
MARCO TEORICO CONCETOS Y DEFINICIONES. Base de datos. Un conjunto de información relacionada entre sí, almacenada en memoria auxiliar que permite acceso directo y un conjunto de programas que manipulan esos datos que están estructurados y organizados independientemente de su utilización, y que es utilizada para que el usuario con necesidad de información la consulte en tiempo real. Ventajas de Base de Datos. 1.
Independencia de datos y tratamiento. Cambio en datos no implica cambio en programas y viceversa (Menor coste de mantenimiento).
2.
Coherencia de resultados. Reduce redundancia.
3.
Mejora en la disponibilidad de datos No hay dueño de datos (Pero no son públicos), guardamos descripción.
Cumplimiento de ciertas normas. Restricciones de seguridad, accesos (Usuarios a datos), operaciones (Operaciones sobre datos). 5. Otras ventajas: Más eficiente gestión de almacenamiento. 4.
Tipos de Base de Datos. Por variabilidad de los datos almacenados Estáticos. Solo lectura, son históricos Dinámicos. Se modifican con el tiempo. Por Contenido. Bibliográficos. Información sobre la fuente principal Texto completo. Contenidos Modelo de Administración de Datos. Jerárquicas. Forma de árbol invertido, puede representar dos tipos de relaciones entre los datos: relaciones de uno a uno y relaciones de uno a muchos, existe redundancia. Red. Este modelo permite la representación de muchos a muchos, de tal forma que cualquier registro dentro de la base de datos puede tener varias ocurrencias superiores a él. El modelo de red evita redundancia en la información, a través de la incorporación de un tipo de registro denominado el conector.
5
Relacional. Este modelo se está empleando con más frecuencia en la práctica, debido a las ventajas que ofrece sobre los dos modelos anteriores, entre ellas, el rápido entendimiento por parte de usuarios que no tienen conocimientos profundos sobre Sistemas de Bases de Datos. Multidimensional. Similar a la relacional, esta almacena estructuras de base de datos Orientada a objetos. Relaciona el estado y comportamiento de datos Documentales. Indexación a texto completo Distribuidas. Almacenadas en varias computadoras Deductivas. A través de inferencias (aplicadas al entorno científico) Nos enfocaremos en la forma relacional que es la más utilizada.
Los DBMS (Sistemas Administradores de Bases de Datos) El DBMS: es un conjunto de programas que se encargan de manejar la creación y todos los accesos a las bases de datos, son 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, está compuesto por: DDL (Data Definition language): Lenguaje de Definición de Datos. Por medio de este el DBMS identifica las descripciones de los elementos de los esquemas y almacena la descripción del esquema en el catálogo del DBMS. Por medio de este el DBMS especifica el esquema conceptual e interno (Base de datos Almacenada). DML (Data Manipulation language): Lenguaje de Manipulación de Datos. Permite la manipulación de las operaciones de Inserción, Eliminación y Modificación. SQL: Lenguaje de Consulta. Ejemplos: Oracle, Access, Informix, SQL Server. La capacidad de los DBMS se define por su motor, es decir la cantidad de datos que puede ser capaz de manejar. Objetivos. Independencia física y lógica de los datos. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella. Redundancia mínima. En aquellos casos en los que no se ha logrado eliminar la redundancia, será necesario vigilar que aquella información que aparece repetida Integridad de los datos. Se trata de adoptar las medidas necesarias para garantizar la validez de los datos almacenados. Acceso concurrente por parte de múltiples usuarios. debe controlar este acceso concurrente a la información, que podría derivar en inconsistencias.
6
Consultas completas optimizadas. Es deseable minimizar el tiempo que el SGBD tarda en darnos la información solicitada y en almacenar los cambios realizados. Seguridad de acceso y auditoria. Deben garantizar que esta información se encuentra segura frente a usuarios malintencionados, que intenten leer información privilegiada. Respaldo y recuperación. Deben proporcionar una forma eficiente de realizar copias de respaldo de la información almacenada en ellos, y de restaurar a partir de estas copias los datos que se hayan podido perder Acceso a través de lenguaje estándar. Pueda ser accesible con lenguaje común. Propósito
El propósito general de los sistemas de gestión de base de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirán en información relevante, para un buen manejo de los datos.
Identificación de Entidades. Alguna cosa acerca de la cual almacenamos datos. Una persona, lugar, cosa o concepto que tiene características de interés para la empresa. Relación de Entidades. Identificar que entidades se involucran en los procesos, y para la práctica se entrelazan con una palabra que identifica el proceso y flechas de dirección. Ejemplo: Cliente
Factura
Recibe
Identificación de tablas. Es generar la tabla para cada entidad definiendo los campos o registros que sean necesarios para cada uno de ellos. Identificación de claves o Keys. Una clave primaria es aquella columna (pueden ser también dos columnas o más) que identifica únicamente a esa fila. La clave primaria es un identificador que va a ser único para cada fila. En una tabla puede que tengamos más de una clave, en tal caso se 7
puede escoger una para ser la clave primaria, las demás claves son las claves candidatas. Además es la posible clave primaria. Una clave foránea es aquella columna que existiendo como dependiente en una tabla, es a su vez clave primaria en otra tabla. Una clave alternativa es aquella clave candidata que no ha sido seleccionada como clave primaria, pero que también puede identificar de forma única a una fila dentro de una tabla. Ejemplo: Si en una tabla clientes definimos el número de documento (id cliente) como clave primaria, el número de seguro social de ese cliente podría ser una clave alternativa. En este caso no se usó como clave primaria porque es posible que no se conozca ese dato en todos los clientes. Una clave compuesta es una clave que está compuesta por más de una columna. Pk = clave principal Fk = clave foránea Nn = no nulo Uk = única Ck = clave de chequeo
Tipo de datos, y longitud. Esto define la clase de información que va a ser almacenada en cada campo. Puede definirse de varios tipos como texto, numérico, monetario, fecha, etc. También debemos definir la longitud del campo es decir que carga soportaría, por ejemplo definimos el campo nombre de tipo texto de longitud 30, esto nos quiere decir que el campo nombre almacenara datos de texto hasta 50 caracteres.
Dependencia funcional Una dependencia funcional es una conexión entre uno o más atributos. Por ejemplo si conocemos el valor de FechaDeNacimiento podemos conocer el valor de Edad. Se escribe utilizando una flecha: FechaDeNacimiento
Edad
Propiedades: Axiomas de Armstrong 8
Reflexiva. Nos sirve para obtener registros que están relacionados directamente con la clave principal. Por ejemplo: Nro. Cuenta Nombre Aumentativa. Para poder obtener registros adicionales a los relacionados directamente a la clave principal. Por ejemplo: Nro. Cuenta Tipo cuenta Estado cuenta Saldo cuenta Transitiva. Es la interpretación de que un atributo depende de otro y de este depende otro. Por ejemplo:
Fecha_Nacim Edad Puede Conducir
Normalización. 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 columna debe tener su nombre único. 9
• No puede haber dos filas iguales. No se permiten los duplicados. • Todos los datos en una columna deben ser del mismo tipo. Seguiremos 4 Formas Normales: 1. Primera Forma Normal. Busca campos multivaluados es decir que en un mismo campo guarda dos datos distintos, y los separa en campos distintos. Por ejemplo: El campo teléfono se puede dividir en Telefono1 y Teléfono2 2. Según Forma Normal. Crear tablas separadas para aquellos grupos de datos que se aplican a varios registros. Relacionar estas tablas mediante una clave externa. 3. Tercera Forma Normal. Análisis de tabla para distinguir los campos que no están asociados directamente con la clave principal. 4. Forma Normal de Boyce- Codd (FNBC) Se divide la tabla en dos: CompVenta_maestro y CompVent_Detalle Donde el criterio para separar la tabla es elegir los campos que se relacionen entre si y a su vez sean multivaluados, esto se da mayormente en documentos tales como comprobantes de venta/factura/recibo, etc. Relación de tablas. Relacionamos los datos de tres formas diferentes: 1a1 1 a varios Varios a varios 1a1 Al introducir un registro en un campo introducimos simultáneamente uno en otro campo (pero solo uno por vez) 1 a varios Permiten a un campo tener relacionado, y puede introducir en un campo varios registros. Varios a varios Establece que varios campos con varios registros, pueden tener asociados varios campos también con varios registros.
10
DBDesigner 4
Necesitaba urgente una herramienta que me permita diseñar y modelar una base de datos, para cumplir con una tarea académica creo que encontré la mejor opción por las múltiples funcionalidades incorporadas, se llama: DBDesigner 4.- Es un sistema de diseño de base de datos disponible libre que integra el diseño de base de datos, el modelado, la creación y el mantenimiento en un ambiente simple y perfecto. Esta herramienta esta disponible o soporta los sistemas operativos Win2 XP y GNU/Linux, se puede acceder a la descarga gratis bajo la licencia GNU GPL. Para quienes utilizan mysql como motor de base de datos, DBDesigner 4 es la 11
mejor opción ya que ha sido desarrollado y optimizado para mysql.
Empezar con la creación de tablas, para ello seleccionar new Table en la barra de herramientas. Seguidamente hacemos doble clic en la table, se podrá agregar los campos que se desee.
Les recuerdo que para la relación entre tablas tenemos que selección en la barra de herramientas, tendiendo en cuenta la cardinalidad de: 1:1 / 1: n / n:n.
El diseño completo queda de la siguiente manera el cual contiene claves primarias, claves foráneas, relación (cardinalidad), entre otros.
Algo importante que ofrece esta herramienta es que permite 12
exportar el código SQL de la base de datos esto lograríamos en el menú File > Export > SQL Create Strip….Dejo los diferentes formatos que exporte de la base
de
datos
para
explicación
13
de
DBDesigner
4.
SQL Es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones sobre las mismas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo lanzar consultas con el fin de recuperar información de interés de una base de datos, de una forma sencilla.
MARCO CONCEPTUAL CLAUSULAS UTILIZADAS EN SQL DE ORACLE El lenguaje de Definición de datos, es el que se encarga de la modificación de la estructura de los objetos de la base de datos. Existen cuatro operaciones básicas: CREATE, ALTER, DROP y TRUNCATE. CREATE Este crea un objeto dentro de la base de datos. Puede ser una tabla, vista, índice, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. ALTER Permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, etc. DROP Elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER.
14
TRUNCATE Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DELETE, es que si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande, la desventaja es que TRUNCATE solo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la cláusula WHERE. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje de Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando truncate borra la tabla y la vuelve a crear y no ejecuta transacción.+Ç ARCHIVO PLANO
15
Desarrollo Los Datos para el desarrollo de los siguientes puntos se hicieron en base a la información previamente recolectada en análisis de la empresa DIPOR. IDENTIFICACION DE ENTIDADES Empresa Cliente Vendedor trabajadores Productos Ventas RELACION DE ENTIDADES Factura
Emite
Describe
Recibe
Clientes
Vendedor
Solicita
Producto
Prepara
Entrega
vendedor
vendedor
Empresas
Solicita
Entrega
Contrata
Proveedor
trabajadores
Recibe
Producto
Rol Pago
16
IDENTIFICACION DE TABLAS, TIPOS DE DATO, LONGITUD, CLAVES
EMPRESA CONSTRAINT CP NN
NN
CAMPO RUC EMPRESA NOM EMPRESA DIRECCION EMPRESA TELEFONO EMPRESA MAIL EMPRESA
TIPO DE DATOS NUMERICO STRING STRING NUMERICO STRING
LONGITUD 12 10 10 9 20
VENTAS CONSTRAINT CP NN NN NN NN
NN NN NN NN NN
CAMPO RUC EMPRESA NUM VENTA FECHA VENTA CED CLIENTE NOMBRE CLIENTE DIRECCION CLIENTE TELEFONO CLIENTE DESC VENTA VALOR TOTAL SUBTOTAL IVA TOTAL
TIPO DE DATOS NUMERICO NUMERICO DATE NUMERICO STRING STRING NUMERICO NUMERICO NUMERICO NUMERICO NUMERICO NUMERICO
LONGITUD
TIPO DE DATOS NUMERICO NUMERICO NUMERICO STRING STRING NUMERICO
LONGITUD
12 10 10 9 20 20 9 2,2 5 5 2,2 5
PRODUCTO
CONSTRAINT CP NN NN NN NN NN
CAMPO CODIGO PRECIO COMPRA PRECIO VENTA CATEGORIA COLOR CANTIDAD
17
5 5 5 10 10 3
TRABAJADORES
CONSTRAINT CP NN NN
NN NN NN NN NN NN
CAMPO CEDULA NOMBRES APELLIDOS DIRECION TELEFONO CARGA FAMILIAR ESTADO CIVIL SUELDO CARGO GENERO FECHA NACIMIENTO FECHA DE INGRESO
TIPO DE DATOS NUMERICO STRING STRING STRING NUMERICO NUMERICO STRING NUMERICO STRING STRING DATE DATE
LONGITUD
TIPO DE DATOS NUMERICO STRING STRING STRING NUMERICO NUMERICO STRING DATE
LONGITUD
TIPO DE DATOS STRING STRING STRING NUMERICO NUMERICO
LONGITUD
9 20 20 20 9 2 1 4 15 1 10 10
VENDEDOR
CONSTRAINT CP NN NN
NN NN NN
CAMPO CEDULA NOMBRES APELLIDOS DIRECCION TELEFONO CARGA FAMILIAR ESTADO CIVIL FECHA DE NACIMIENTO
9 20 20 20 9 2 1 10
CLIENTE
CONSTRAINT NN NN
CP
CAMPO NOMBRES APELLIDOS DIRECCION TELEFONO CEDULA
18
20 20 20 9 9
TABLA EMPRESA RUC EMPR 1561036111
NOM EMPR ALVISA
DIR EMP LA CATOLICA
19
TEL EMPR 2898289
MAIL EMP
[email protected]
NORMALIZACION
4ta FORMA
20
21
22
23
MODELO RELACIONAL
24
25
CONCLUSIONES una buena Base de Datos, depende de cómo esta se diseñe, para lo cual tenemos que seguir los pasos esenciales que se nos presentan ya que lo demás dependerá del tipo de Base de datos, o para que se aplicara la Base de Datos, pero al seguir los pasos podremos mejorar la estabilidad y rapidez de consulta de la Base de Datos, pero también esto dependerá del motor de la Base de Datos
Recomendaciones
Que para el desarrollo de la Base de Datos se vaya trabajando paulatinamente con datos y ejemplos reales ya que lo cual nos dará una visión mejor para la toma de decisiones y saber si es oportuno aplicar algún método.
26
GLOSARIO Tupla = registro, fila o renglón Atributo = columna o campo Clave = llave o código de identificación Clave Candidata = superclave mínima Clave Primaria = clave candidata elegida Clave Ajena = clave externa o clave foránea Regla = tabla o archivo Clave Alternativa = clave secundaria Dependencia Multivaluada = dependencia multivalor RDBMS = Del inglés Relational Data Base Manager System que significa, Sistema Gestor de Bases de Datos Relacionales. 1FN = Significa, Primera Forma Normal o 1NF del inglés First Normal Form. DBMS: Data Base Management System (SISTEMA DE MANEJO DE BASE DE DATOS).- Consiste de una base de datos y un conjunto de aplicaciones (programas) para tener acceso a ellos. Modelo de Datos.- es un conjunto de herramientas conceptuales para describir los datos, las relaciones entre ellos, su semántica y sus limitantes. Redundancia.- Esta se presenta cuando se repiten innecesariamente datos en los archivos que conforman la base de datos. Inconsistencia.- Ocurre cuando existe información contradictoria o incongruente en la base de datos.
27
BIBLIOGRAFIA
http://www.redcientifica.com/oracle/c0001p0005.html http://www.wikilearning.com/tipos_de_datos_en_oracle-wkccp-3861-7.htm http://www.wikilearning.com/conceptos_de_almacenamiento_en_oracle-wkccp-3861-6.htm http://www.monografias.com/trabajos25/oracle/oracle.shtml http://www.emagister.com/cursos-oracle-kwes-628.htm http://www.desarrolloweb.com/directorio/bases_de_datos/oracle/ www.desarrolloweb.com/directorio/bases_de_datos/oracle/ - 30k education.oracle.com/.../db_pages.getpage?page_id=4&dc=D11297CS20&p_org_id=1000258&lang=ESA - 9k www.asesoftware.com/oracle9i_as.php - 15k
28
ANEXOS
29