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.
4. 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.
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 Recibe Factura
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 de DBDesigner 4.
13
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 Vendedor
Recibe Describe
Clientes Solicita Producto Prepara
Entrega
vendedor
vendedor
Empresas Solicita Producto
Entrega
Contrata
trabajadores Proveedor
Recibe Rol Pago
16
IDENTIFICACION DE TABLAS, TIPOS DE DATO, LONGITUD, CLAVES
EMPRESA
CONSTRAINT CAMPO TIPO DE DATOS LONGITUD
CP RUC EMPRESA NUMERICO 12
NN NOM EMPRESA STRING 10
DIRECCION EMPRESA STRING 10
TELEFONO EMPRESA NUMERICO 9
NN MAIL EMPRESA STRING 20
VENTAS
CONSTRAINT CAMPO TIPO DE DATOS LONGITUD
CP RUC EMPRESA NUMERICO 12
NN NUM VENTA NUMERICO 10
NN FECHA VENTA DATE 10
NN CED CLIENTE NUMERICO 9
NN NOMBRE CLIENTE STRING 20
DIRECCION CLIENTE STRING 20
TELEFONO CLIENTE NUMERICO 9
NN DESC VENTA NUMERICO 2,2
NN VALOR TOTAL NUMERICO 5
NN SUBTOTAL NUMERICO 5
NN IVA NUMERICO 2,2
NN TOTAL NUMERICO 5
PRODUCTO
CONSTRAINT CAMPO TIPO DE DATOS LONGITUD
CP CODIGO NUMERICO 5
NN PRECIO COMPRA NUMERICO 5
NN PRECIO VENTA NUMERICO 5
NN CATEGORIA STRING 10
NN COLOR STRING 10
NN CANTIDAD NUMERICO 3
17
TRABAJADORES
CONSTRAINT CAMPO TIPO DE DATOS LONGITUD
CP CEDULA NUMERICO 9
NN NOMBRES STRING 20
NN APELLIDOS STRING 20
DIRECION STRING 20
TELEFONO NUMERICO 9
CARGA FAMILIAR NUMERICO 2
NN ESTADO CIVIL STRING 1
NN SUELDO NUMERICO 4
NN CARGO STRING 15
NN GENERO STRING 1
NN FECHA NACIMIENTO DATE 10
NN FECHA DE INGRESO DATE 10
VENDEDOR
CONSTRAINT CAMPO TIPO DE DATOS LONGITUD
CP CEDULA NUMERICO 9
NN NOMBRES STRING 20
NN APELLIDOS STRING 20
DIRECCION STRING 20
TELEFONO NUMERICO 9
NN CARGA FAMILIAR NUMERICO 2
NN ESTADO CIVIL STRING 1
NN FECHA DE NACIMIENTO DATE 10
CLIENTE
CONSTRAINT CAMPO TIPO DE DATOS LONGITUD
NN NOMBRES STRING 20
NN APELLIDOS STRING 20
DIRECCION STRING 20
TELEFONO NUMERICO 9
CP CEDULA NUMERICO 9
18
TABLA EMPRESA
RUC EMPR NOM EMPR DIR EMP TEL EMPR MAIL EMP
1561036111 ALVISA LA CATOLICA 2898289 ALVISA@[Link]
19
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
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]/directorio/bases_de_datos/oracle/ - 30k
[Link]/.../db_pages.getpage?page_id=4&dc=D11297CS20&p_org_id=1000258&lang=ESA - 9k
[Link]/oracle9i_as.php - 15k
28
ANEXOS
29