Diseñar Base de Datos de Un Sistema de Facturación
Diseñar Base de Datos de Un Sistema de Facturación
Diseñar Base de Datos de Un Sistema de Facturación
Los programas procedurales que trabajan con archivos se diseñan pensando en resolver un
problema mediante un flujo o secuencia de operaciones que se efectúan sobre uno o más
archivos de datos. Los archivos de datos normalmente se diseñan en base a los informes que
debe entregar el sistema. Esto funciona bien para los sistemas pequeños o sencillos.
En sistemas más complejos donde no existe uno sino decenas o cientos de archivos relacionados
el diseño de la estructura de los datos se complica mucho, pues aparecen problemas de
redundancia, inconsistencia o perdida de información. Las bases de datos no son estáticas y a
medida que el sistema va creciendo se van requiriendo nuevos informes, cálculos y análisis, sino
existe un modelo de datos bien especificado pueden ocurrir problemas catastróficos.
Los diagramas o modelos de entidad – relación son una herramienta para de modelado de datos
de un sistema de información. Estos modelos expresan entidades relevantes para un sistema de
información, sus interrelaciones y propiedades. Basado en una percepción del mundo real
consiste en objetos llamados entidades y de relaciones entre estos objetos. Se desarrolló para
facilitar el diseño de base de datos permitiendo la especificación de un esquema de la empresa
que representa la estructura lógico completa de una base de datos.
1. DISEÑAR BASE DE DATOS DE UN SISTEMA DE FACTURACIÓN
MODELO TRABAJO
MODELO ENCARGADO
HECHO EN CLASE
Id Cliente
Nombre
Nombre: Apellido
CLIENTE DNI: Dirección
Código Fecha De Nacimiento
Teléfono
Email
Numero
Num_Factura
Fecha
Hora
FACTURA Num_Pago
Total
Id Cliente
Id_Cliente
Id Boleta
Cantidad
Num_Detalle
Subtotal
DETALLE Id Factura
Id Boleta
Id Producto
Id Producto
Código
Id_Producto
Nombre
Nombre
PRODUCTO Unidad
Precio
Precio
Stock
Stock
Id_Categoria
CATEGORIA Nombre
Descripción
2.COMPARACION DE MODELO HECHO EN CLASE (BOLETA) Y MODELO BUSCADO
(FACTURA)
Se puede observar que en la tabla cliente del modelo factura tiene más campos como:
apellido, dirección, fecha de nacimiento, teléfono, email, pero no contiene el campo de
DNI como si sucede en el modelo boleta
En la tabla factura el campo en común entre el modelo boleta y factura es “id cliente” y
“numero”; en el registro factura y los campos diferentes son: (fecha, hora, total, id boleta)
y (num_pago) respectivamente.
En la tabla detalle en el modelo boleta tiene dos campos adicionales que es cantidad y
subtotal y lo que tienen en común es id boleta e id factura e id producto, y el modelo
factura tiene el num_detalle
En la tabla producto se evidencia que tienen en común: nombre, precio y stock y los
campos diferentes son (código y precio) en el modelo boleta y el id_producto en el
modelo factura
En la tabla categoría el modelo boleta no tiene ningún campo mientras que el modelo
factura tiene los campos de id_categoria, nombre y descripción
Un cliente puede pagar con las siguientes formas de pago: Efectivo, Tarjeta de
crédito, Tarjeta débito, PayPal.
Un cliente puede generar varias facturas debido a sus distintas compras, pero jamás una
misma factura podrá haber sido generada por más de un cliente.
En una factura pueden contener varios productos vinculados, al igual que todos los
productos están posibilitados a aparecer en todas las facturas.
Luego se relacionaron las tablas que el cliente puede tener varias boletas, pero una misma
boleta no puede tener varios clientes; el vendedor puede tener varias boletas, pero la
boleta solo puede tener un vendedor, una boleta puede tener varios detalles y un producto
también puede tener varios detalles.
Un cliente puede pagar el monto total de una factura con varios métodos de pago.
El en modelo factura las claves primarias (PK) están representadas por una llave amarilla
mientras que las claves foráneas (FK) están representadas por una llave color plomo.
Primero se identificó los campos e identidades que se presentan en una boleta como:
nombre, cantidad, descripción, precio_unitario, precio_total, num_serie, fecha, hora,
nombre_producto, unidad_producto, numero_boleta, RUC, dirección_empresa,
nombre_empresa.
Luego se clasifico en una tabla a que entidad pertenece cada campo
Después se relacionaron las tablas
2.2.PROCESO DE NORMALIZACIÓN
Regla Descripción
Primera forma
Incluye la eliminación de todos los grupos repetidos.
normal (1FN)
Segunda forma Asegura que todas las columnas que no son llave sean
normal (2FN) completamente dependientes de la llave primaria (PK).
Elimina cualquier dependencia transitiva. Una dependencia
Tercera forma
transitiva es aquella en la cual las columnas que no son llave son
normal (3FN)
dependientes de otras columnas que tampoco son llave.
2.2.1.EJEMPLO
Digamos que queremos crear una tabla con la información de usuarios, y los datos a guardar son
el nombre, la empresa, la dirección de la empresa y algún email, o bien URL si las tienen. En
principio comenzarías definiendo la estructura de una tabla como esta:
Formalización CERO.
USUARIOS
NOMBRE EMPRESA DIRECCIÓN_EMPRESA URL 1 URL 2
Juan Abc Guerrero N°.21 Abc.com Xyz.com
María Xyz Abasolo N°.36 Abc.com Xyz.com
Diríamos que en la anterior tabla está en nivel de formalización cero porque ninguna de
nuestras reglas de formalización ha sido aplicada.
La regla de la primera forma normal establece que las columnas repetidas deben
eliminarse y colocarse en tablas separadas.
Poner la tabla de base de datos en la primera forma normal resuelve el problema de los
encabezados de columna múltiples.
USUARIOS
NOMBRE EMPRESA DIRECCION_EMPRESA URL
1 Juan Abc Guerrero N°.21 Abc.com
1 Juan Abc Guerrero N°.21 Abc.com
2 María Xyz Abasolo N°.36 Xyz.com
2 María Xyz Abasolo N°.36 Xyz.com
Ahora diremos que nuestra tabla está en el primer nivel de F/N. Hemos
solucionado el problema de limitación del campo URL.
Pero sin embargo vemos otros problemas; cada vez que introducimos un nuevo
registro en la tabla de usuarios, tenemos que duplicar el nombre de la empresa y
del usuario. No solo nuestra BD crecerá muchísimo, sino que será muy fácil que
la BD se corrompa si escribimos mal alguno de los datos redundantes.
Crear tablas separadas para aquellos grupos de datos que se aplican a varios registros
Relacionar estas tablas mediante una clave externa.
Hemos separado el campo URL en otra tabla, de forma que podemos añadir más en el
futuro si tener que duplicar los demás datos. También vamos a usar nuestra clave
primaria para relacionar estos campos:
USUARIOS
USERID NOMBRE EMPRESA DIRECCION_EMPRESA
1 Juan Abc Guerrero N°.21
2 María xyz Abasolo N°.36
URLS
URLID RelUserId URL 1
1 1 Abc.com
2 1 Xyz.com
3 2 Abc.com
4 2 Xyz.com
USUARIOS
UserId Empresa relEmpresaId
1 Juan 1
2 María 2
EMPRESAS
emprId Empresa Dirección_empresa
1 ABC Guerrero N°.21
2 XYZ Abasolo N°.36
URLS
UrlId RelUserId url
1 1
2 1
3 2
4 2
“En primer lugar, tenemos que dar un nombre a nuestra base de datos. La llamaremos
facsys de (sistema de facturación). La distinción de mayúsculas y minúsculas en el nombre en la
base de datos puede influir en la programación” (Thibaud, 2006)
Una relación es una asociación entre varias entidades. Por ejemplo, se puede definir una
relación que asocie al alumno “ANA MARIA MUÑOZ” con el programa “INGENIERIA
CIVIL”, lo cual indicaría que el alumno está matriculado en ese programa. Llamaríamos al
conjunto de tales relaciones alumno programa. Un conjunto de relaciones es un grupo de
relaciones del mismo tipo. (Rivera, 2008)
Una base de datos está compuesta por tablas base que están almacenadas físicamente. A
veces es necesario combinar diferentes columnas de las tablas de una base de datos en una
consulta para crear tablas virtuales denominadas vistas. Estas tablas no se almacenan
físicamente, cada vez que un usuario consulta una de estas vistas recoge datos de las tablas base
sobre la que estas construida la vista, y muestra el resultado. (Hurtado, 2015)
El objetivo de esta actividad (diseño de base de datos) es convertir los modelos lógicos
de datos en modelos físicos de datos a través de archivos convencionales y/o base de datos. Con
esta meta, a continuación, se introducen algunos conceptos sobre base de datos y los archivos
convencionales. (Vicenç,2006, p.103)
Un campo es la implementación de un atributo de datos de un modelo lógico de datos
(por ejemplo, de un diagrama entidad-relación). Los campos son las unidades mínimas de
información y pueden clasificarse en campos claves y descriptores. Los campos claves permiten
identificar a uno y solo un registro de un archivo. Es posible encontrar claves primarias,
secundarias y externas, cuyos significados son equivalentes a los expuestos en el modelo lógico
de datos. El resto de campo se denominan descriptores. (Vicenç, 2006, p.103)
Un registro es una colección de campos dispuestos en un formato predefinido. La
unidad mínima de información que una aplicación informativa es el registro.es este caso, el
registro equivale a la instancia del modelo lógico de datos. (Vincenç,2006, p.103)
La normalización intenta convertir un modelo lógico de datos es un buen modelo de
datos. Según la literatura del tema, un buen modelo de datos es aquel que es simple (es decir, que
los atributos de una entidad solo describan a esa entidad), no redundante (es decir, que la
información no se repite y por lo tanto existe un alto grado de integridad) y flexible a los
cambios del futuro. La idea básica de la normalización es simplificar las estructuras de datos para
conseguir que su acceso sea la más sencilla y manejable posible, y por lo tanto de alcanzar un
buen modelo. (Vicenç,2006, p.104)
El modelo entidad-relación es una técnica de ingeniería de la información que se utiliza
para desarrollar un modelo de datos de alta calidad. El modelo de datos ofrece una forma
estándar de definir datos de alta calidad. El modelo de datos ofrece una forma estándar de definir
los datos y las relaciones entre estos para los sistemas de información. Esto mejora enormemente
la calidad del sistema e incrementa la productividad del software. (Barker,1994, p.1).
En informática, entidad específica.
El registro o también llamado fila o tupla
3.Referencias
date, c. j. (2001). introduccion a los sistemas de base de datos . mexico : pearson educacion .
rob, h. (2002). desarrollo de base de datos een microsoft . mexico : pearson educacion .
s.r, j. p. (27 de octubre de 2014). Obtenido de https://basededatos99.weebly.com/base-de-datos/6-que-
es-un-campo-y-un-registro-en-una-base-de-datos