Tablas de bases de datos para una tienda de conveniencia Los cinco formularios normales

Tablas de bases de datos para una tienda de conveniencia Los cinco formularios normales
Esta es la quinta y última parte de la serie, las cinco formas normales. En esta parte de la serie tutorial, todas las tablas se presentan con una modificación en la tabla de productos. También se explica cómo se calcula la ganancia o la pérdida de la base de datos.

Esta serie tutorial sigue una historia que es la siguiente: un padre acaba de morir y dejó algo de dinero para su hijo. El hijo decidió invertir el dinero en una tienda de conveniencia. La tienda ya está almacenada, y la venta de clientes ya ha comenzado.

Al comienzo del negocio, tanto el hijo que es el propietario como sus empleados, llamados empleados de esta serie tutorial, no sabían nada sobre formas normales.

Usted, el lector, ha completado esta cinco series de tutoriales de formulario normal y también es un desarrollador de bases de datos. El propietario es tu amigo. Visitaste la tienda cuatro veces, una vez al día, en los últimos cuatro días. En los primeros tres días, enseñó tanto al propietario como a sus empleados sobre el 1NF, 2NF y 3NF.

Ayer, visitaste solo al propietario en su oficina y lo entrenaste en el BCNF, 4NF y 5NF. Hoy, visitó solo al propietario para mejorar la tabla de productos, presentar todas las tablas y explicar cómo calcular las ganancias o pérdidas.

Primero, resume las reglas para todas las formas normales.

Reglas de forma normal

En teoría, se puede crear una tabla y está en la quinta forma normal, ya que cada forma normal tiene reglas que no deben violarse en lugar de las reglas que deben implementarse. Sin embargo, una tabla se verifica desde el primer, segundo, tercero, Boyce Codd, cuarto y a las quinta forma normal.

Una tabla está en 1NF si no se viola ninguna de las siguientes reglas:

  1. Todas las columnas en una tabla deben tener nombres de encabezados únicos.
  2. Cada celda debe tener un solo valor.
  3. Los valores almacenados en una columna deben ser del mismo tipo.
  4. Las filas deben ser distintas.
  5. El orden de las columnas o el orden de las filas no importa.

Una tabla está en 2NF si no se viola ninguna de las siguientes reglas:

  1. La tabla ya debe estar en la primera forma normal.
  2. No debe haber dependencia parcial.

Una tabla está en 3NF si no se viola ninguna de las siguientes reglas:

  1. Ya debería estar en la segunda forma normal.
  2. No debe tener dependencia transitiva.

Una tabla está en BCNF si no se viola ninguna de las siguientes reglas:

  1. La tabla ya debe estar en la tercera forma normal.
  2. Ningún atributo no predominante (columna) debe depender de la parte de la clave primaria compuesta.

Una tabla está en 4NF si no se viola ninguna de las siguientes reglas:

  1. Ya está en forma normal de boyce-codd.
  2. La tabla no tiene ninguna dependencia de valor múltiple.

Una tabla está en 5NF si no se viola ninguna de las siguientes reglas:

  1. Ya está en la cuarta forma normal.
  2. La tabla no tiene dependencia de unión.

En cualquier etapa, si la tabla no se ajusta a la forma normal, la tabla se divide para conformarse.

Las mesas

Mesa de productos

La mesa de productos que llegamos hasta ahora es:

Productos (ProductId, CategoryID, ProveyId, ProductName, UnitPrice, CantityInstock, ReorderLevel)

CategoryId y ProveierID son claves extrañas que son las mismas que las claves principales de la tabla de categorías y la tabla de proveedores, respectivamente.

Esta tabla está en 5nf si el unidades de precio y la cantidad de cantidad no cambian con el tiempo. Incluso el proveedor de un producto en particular puede cambiar. Sin embargo, por simplicidad, el cambio de proveedor no se abordará en este tutorial. El precio unitario de cualquier producto cambia con el tiempo, aunque lentamente. En este momento, el precio unitario para muchos productos en todo el mundo ha aumentado debido a la guerra de Rusia-Ukraine. Dado que los clientes individuales compran en una tienda, la cantidad en las acciones cambia (se reduce primero antes de reponerse). La cantidad de un producto en particular en stock es la suma de lo que está en el estante y lo que hay en la tienda (copia de seguridad). Para simplificar, esta separación no se realiza en esta serie tutorial.

Con estas columnas cambiantes, esta tabla ahora está en 1NF. La tabla debe dividirse en dos, con el grupo cambiante en un sentido mientras el resto de la tabla permanece.

Las mesas de los niños se convierten en:

Productos (ProductId, CategoryID, ProveierID, ProductName, ReorderLevel)

y

ProductStates (UnitPrice, CantityInstock)

La nueva tabla se llama estado de producto. Necesita su propia identificación, así como la identificación del producto. La tabla debería ser:

ProductStates (ProductStateId, ProductID, Date, UnitPrice, CantityInstock)

El producto StateId se incrementa automáticamente, a partir de 1. Se agrega una columna de fecha para indicar cuándo tuvo lugar el cambio. La clave principal para la tabla de productos de productos es una clave compuesta que consiste en ProductStateID y ProductID. Las dos tablas están vinculadas por la columna ProductID. La tabla del producto del producto está en 2NF ya que no hay dependencia parcial. En cada una de sus filas, los valores de la fecha, unitarprice o la cantidad de la cantidad determina ambas claves. De hecho, ambas tablas están ahora en 5NF, ya que ninguna viola ninguna de las reglas de forma normal.

Si las dos tablas anteriores no se mantienen en una computadora con una copia de seguridad, deben mantenerse en un libro mayor. La primera mitad del libro mayor puede tener la tabla de productos y la segunda mitad puede tener la tabla de los estados de productos. La tabla de los estados de productos crece con el tiempo.

Se puede agregar una columna descontinuada de tipo booleano al extremo derecho de la tabla de productos para indicar si el producto ha sido descontinuado; es decir, la tienda ya no trata con ese producto en particular.

Las tablas de producto y el resto de las tablas en la base de datos ahora están en la quinta forma normal.

Mesa de proveedores

La notación de la tabla para la tabla de proveedores es:

Proveedores (proveedor, nombre, teléfono, dirección, ciudad, región, código postal, país)

Si esta mesa no se mantiene en una computadora con copia de seguridad, debe mantenerse en un libro mayor. Se puede agregar una columna de fecha para indicar el primer día que el proveedor se comprometió con la tienda de conveniencia. También se puede agregar una columna descontinuada.

Mesa de clientes

La notación de la tabla para la tabla de los clientes es:

Clientes (CustomerId, Nombre personalizado, teléfono, dirección, ciudad, región, código postal, país)

Si esta mesa no se mantiene en una computadora con copia de seguridad, debe mantenerse en un libro mayor. Se puede agregar una columna de fecha para indicar el primer día que el cliente se comprometió con la tienda de conveniencia.

Un cliente puede ser para los transeúntes: personas que visitaron la ciudad y se alojan en hoteles, turistas, turistas, etc.

Mesas de venta

Las tres mesas de venta son:

Ventas (SaleID, Datesold, CustomerID, EmployeeId)
Saledetails (Saleid, ProductId, UnitslellingPrice, cantidad, préstamos, descuento)
CategoryDelivery (CategoryID, CustomerID, Categoría, Transporte)

Se introduce una columna de préstamos de tipo booleano en la tabla de saledetails, en caso de que se pueda confiar en el cliente. Solo el propietario debe autorizar los préstamos. En la tabla CategorialDelivery, se agrega una columna para el costo de transporte a la entrega.

Si estas tablas no se mantienen en una computadora con copia de seguridad, deben mantenerse en un libro mayor llamado Libro de ventas. La mitad izquierda del libro mayor se puede usar para las tablas de ventas y colas de saledeta (ver más abajo). La mitad derecha del libro mayor se puede usar para la tabla de entrega de categorías.

Si las mesas se mantienen en un libro mayor, la mesa de cola de saledeta sería:

Saledetails (Saleid, ProductId, UnitslellingPrice, cantidad, préstamos, descuento, totaldold, totalent)

Con las columnas de TotalSold y Totallent agregado. Estas columnas deben llenarse diariamente al final del día o semanalmente al final de la semana, el propietario.

Si las tablas se mantienen en una computadora con copia de seguridad, el software de la base de datos (programa) calcularía los totales.

Las filas de saledetails correspondientes a la fila de ventas suelen ser más de una. Entonces, para la mitad izquierda del libro mayor de ventas, la página izquierda del libro mayor abierto tiene los datos de ventas, mientras que la página correcta tiene los datos de las colas de venta, de la siguiente manera:

Mesa de ventas/saledeta

Si un cliente vino y pagó por ciertos productos y pidió prestados a los demás, esos deberían ser dos saledetas. Total_sold = u.S.P X Cantidad. Se realiza un cálculo similar para Total_lent. Los grandes totales para Totasold y Totalent, para la parte inferior de la tabla se pueden calcular al final del día o al final de la semana o al final del mes, dependiendo de la frecuencia de las ventas. Usted, el propietario, que se duplica como gerente.

Tablas de órdenes

Las tablas de pedido son:

Pedidos (OrderId, Datesold, ProveierId, EmployeeId)
OrderDetails (OrderId, ProductId, UnitCostPrice, Cantidad, Descuento)

Si estas tablas no se mantienen en una computadora con copia de seguridad, deben mantenerse en un libro mayor llamado Libro mayor de compra. En este caso, la tabla OrderDetails debe ser:

OrderDetails (OrderId, ProductId, UnitCostPrice, Cantidad, préstamo, descuento, TotalBething, TotalBorrowed)
Con las columnas de préstamo, tareas totales y totalizadas en total agregadas.

Si una tienda pagó por algunos pedidos y pidió prestados, esos deberían ser dos órdenes de cola de pedido.

No hay una tabla de entrega correspondiente aquí. Los registros de los pedidos y las colas de pedidos deben hacerse en el libro mayor de compra de manera similar a que las ventas y las colas de saledeta se realicen en el libro mayor de ventas.

Todas las tablas en 5NF

Libro mayor de productos

Productos (ProductId, CategoryID, ProveierID, ProductName, ReorderLevel)
ProductStates (ProductStateId, ProductID, Date, UnitPrice, CantityInstock)

Proveedor libro mayor

Proveedores (proveedor, nombre, teléfono, dirección, ciudad, región, código postal, país)

Libro mayor de clientes

Clientes (CustomerId, Nombre personalizado, teléfono, dirección, ciudad, región, código postal, país)

Libro mayor de ventas

Ventas (SaleID, Datesold, CustomerID, EmployeeId)
Saledetails (Saleid, ProductId, UnitslellingPrice, cantidad, préstamos, descuento, totaldold, totalent)
CategoryDelivery (CategoryID, CustomerID, Categoría, Transporte)

Libro mayor de pedidos

Pedidos (OrderId, Datesold, ProveierId, EmployeeId)
OrderDetails (OrderId, ProductId, UnitCostPrice, Cantidad, préstamo, descuento, TotalBething, TotalBorrowed)

Declaración de ganancias y pérdidas

Una declaración de ganancias y pérdidas es un estado financiero que muestra los ingresos y los gastos de la empresa. También muestra si la empresa está obteniendo ganancias o pérdidas por un período determinado. Se realiza una declaración de pérdidas y ganancias mensuales o trimestrales. Quarterly significa cada tres meses: marzo, junio, septiembre, diciembre. Esta declaración debe mantenerse en su propio libro mayor.

Declaración de componentes principales para obtener ganancias y pérdidas

Estos componentes se describen aquí con referencia a la tienda de conveniencia.

Ganancia

Otro nombre para los ingresos son las ventas. Esta es la primera sección de la declaración de pérdidas y ganancias. Es el monto de todo lo que se vendió para ese período (gran total para la columna total).

Costo de productos vendidos

Esta debería ser la segunda sección de la declaración de pérdidas y ganancias. Es la cantidad de costo de todos los productos vendidos por el período (gran total para la columna de tareas totales).

Beneficio bruto

Esto es:

GROSS BUAIN = Ingresos - Costo_OF_Products

para el periodo.

Ganancias

Si se vende un vehículo no utilizado, eso es una ganancia (ver depreciación en la siguiente ilustración). La ganancia de un contrato imprevisto realizado ordenando y suministrando bebidas y galletas a una parte es una ganancia. Las actividades comerciales de dicho contrato no se registran en los libros de contabilidad anteriores.

Gastos

La comisión que le da a un empleado por vender más es un ejemplo de gasto. La contribución de la pensión para un empleado es un ejemplo de gasto. Las deudas que los clientes deben pueden ir aquí. Las deudas que debes los proveedores también pueden ir aquí.

Gastos de publicidad

El dinero pagado para anunciar la tienda de conveniencia a estaciones locales de radio y televisión, redes sociales, etc.

Gastos administrativos

Los alquileres para el apartamento de la tienda, salarios del personal, incluidos los suyos, el propietario (gerente), suministros de oficina (computadoras, teléfonos, libros libros, bolígrafos, etc.), transporte de entrega y otros gastos de viaje, etc.

Depreciación

Se puede comprar una computadora, se compró un estante, se compró una mesa, etc. La depreciación significa que divide el costo de cada uno de estos equipos durante la vida útil del equipo (hasta que ya no necesite el activo).

Perder

La liquidación de una demanda de clientes es un ejemplo de perder.

Ganancias antes de impuestos

GANADINGS_BEFORE_TAXES = ALL_INCOMES - ALL_EXPENSES

Impuestos

Cualquier impuesto pagado en el período.

Lngresos netos

Net_income = (ingresos + ganancias) - (gastos + pérdidas)

Para hacer crecer el negocio, los ahorros deberían venir de aquí.

Ejemplo de declaración de ganancias y pérdidas

El ingreso neto en esta tabla hipotética es de $ 1000, lo cual es muy bueno!

Conclusión

El número mínimo de tablas con un número mínimo de columnas en 5NF se proporciona en el ejemplo de la tienda de conveniencia. Cómo determinar la ganancia o la pérdida también se da.

Usted, el desarrollador de la base de datos dice: “Hemos llegado al final del programa de capacitación. Ambos tenemos 30 años. Todavía tenemos nuestras vidas (adultos) frente a nosotros. Mientras estaba de vacaciones, los entrené a ustedes y a sus muchachos. Estoy ahorrando dinero para comenzar mi propia compañía de software en aproximadamente diez años a partir de ahora en máximo. También puedo hacer instalación y red de computadoras."

El propietario, el hijo del difunto hombre, reacciona: “Dios desee, informatizaré mi negocio en seis meses a partir de ahora. Si una ganancia de $ 1000 por mes continúa después de eliminar mi salario, estaré ahorrando. En un máximo de diez meses a partir de ahora, será dueño de un supermercado en el centro comercial. Con suerte, en unos seis meses a partir de ahora, le daré el contrato para comprar e instalar las computadoras, poner la red y hacer la programación."

El propietario continúa: "Me conoces. Reservé parte del dinero que mi padre me dejó para informatizar la tienda. Ahora, los británicos dicen: "El trabajo sin juego hace que Jack sea un niño aburrido". Entonces, también reservé algo de dinero para el entretenimiento. Este sábado por la noche, te invito al restaurante más caro de la ciudad para comer la comida más cara y beber la bebida más cara para celebrar nuestra amistad y nuestro logro actual (entrenamiento)."

Por la noche, van al restaurante. Al partir, hicieron un máximo para comunicarse a través de correos electrónicos, al menos.