0% encontró este documento útil (0 votos)
6 vistas7 páginas

Modelo de Base de Datos en PostgreSQL

Este documento describe el diseño e implementación de una base de datos relacional en PostgreSQL para la gestión de clientes y facturación, utilizando principios de integridad referencial y normalización. Se crean las tablas CLIENTE y FACTURA, se insertan datos de ejemplo y se genera una vista para analizar el comportamiento de compra de los clientes. Las conclusiones destacan la importancia de las restricciones para mantener la integridad de los datos y la utilidad de las vistas para simplificar consultas complejas.

Cargado por

lgrijalva0625
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
6 vistas7 páginas

Modelo de Base de Datos en PostgreSQL

Este documento describe el diseño e implementación de una base de datos relacional en PostgreSQL para la gestión de clientes y facturación, utilizando principios de integridad referencial y normalización. Se crean las tablas CLIENTE y FACTURA, se insertan datos de ejemplo y se genera una vista para analizar el comportamiento de compra de los clientes. Las conclusiones destacan la importancia de las restricciones para mantener la integridad de los datos y la utilidad de las vistas para simplificar consultas complejas.

Cargado por

lgrijalva0625
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Introduccion

El diseño y la implementación de bases de datos relacionales constituyen un pilar fundamental


en el desarrollo de sistemas de información, ya que permiten almacenar, organizar y recuperar
datos de manera eficiente, segura y consistente. En este trabajo se desarrolló un modelo de
base de datos en PostgreSQL orientado a la gestión de clientes y facturación, aplicando
principios de integridad referencial, normalización y control de calidad de datos mediante el uso
de restricciones (constraints).

El sistema propuesto contempla la creación de las tablas CLIENTE y FACTURA, estableciendo


relaciones entre ellas mediante claves primarias y foráneas, además de la incorporación de
reglas de validación para campos críticos como sexo, estado civil y precios. Asimismo, se realizó
la inserción de datos correspondientes al primer semestre del año 2022 y la creación de vistas
que permiten analizar el comportamiento de compra de los clientes y los productos más
vendidos, facilitando la toma de decisiones a partir de la información almacenada.

Desarrollo
Configuración de la Base de Datos
El script comienza creando una base de datos llamada actividadUtm. Define parámetros
técnicos como la codificación (UTF8) y el idioma (Inglés/[Link].), asegurando que el propietario
sea el usuario postgres.

Estructura de Tablas (Esquema)


Se crean dos tablas relacionadas entre sí:

 FACTURA: Almacena los detalles de la venta (producto, cantidad, precio y fecha). Tiene
restricciones de seguridad para evitar que se ingresen cantidades o precios menores o
iguales a cero.

 CLIENTE: Almacena la información personal (nombre, dirección, etc.).

o Relación: Está conectada a la tabla FACTURA mediante el campo


numero_factura.

o Validaciones: Incluye "checks" para asegurar que solo se ingresen opciones


válidas en el sexo y el estado civil.
Carga de Datos
El script inserta registros de ejemplo:

 10 Facturas: Productos como Laptops, Mouse, Teclados, Monitores e Impresoras.

 6 Clientes: Vincula a personas específicas con algunas de las facturas creadas


anteriormente.

Análisis y Reporte (La Vista)


La parte más interesante es la creación de CLIENTE_VISTA. Esta es una "tabla virtual" que realiza
un cálculo complejo automáticamente:

1. Une las tablas de Clientes y Facturas.

2. Calcula el total multiplicado (cantidad * precio) por cada cliente.

3. Filtra por fecha: Solo toma en cuenta compras realizadas en el primer semestre de 2022
(2022-01-01 al 2022-06-30).

4. Filtra por monto: Solo muestra a los clientes que hayan gastado más de $25.

Finalmente, el script ejecuta un SELECT para mostrar los resultados de este reporte.

Tabla factura
Table cliente

Insercion datos table cliente y tabla factura


Creación de vista

Consulta de vista

Script
CREATE DATABASE "actividadUtm"
WITH
OWNER = postgres
ENCODING = 'UTF8'
LC_COLLATE = 'English_United States.1252'
LC_CTYPE = 'English_United States.1252'
LOCALE_PROVIDER = 'libc'
TABLESPACE = pg_default
CONNECTION LIMIT = -1
IS_TEMPLATE = False;

CREATE TABLE FACTURA (


numero_factura INT PRIMARY KEY,
producto VARCHAR(100) NOT NULL,
cantidad INT NOT NULL CHECK (cantidad > 0),
precio NUMERIC(10,2) NOT NULL CHECK (precio > 0),
fecha_factura DATE NOT NULL
);

CREATE TABLE CLIENTE (


id_cliente INT PRIMARY KEY,
numero_factura INT NOT NULL,
nombres VARCHAR(100) NOT NULL,
direccion VARCHAR(150),
telefono VARCHAR(20),
correo VARCHAR(100),
sexo VARCHAR(10) NOT NULL,
estado_civil VARCHAR(15) NOT NULL,

CONSTRAINT fk_factura
FOREIGN KEY (numero_factura)
REFERENCES FACTURA(numero_factura),

CONSTRAINT chk_sexo
CHECK (sexo IN ('Femenino', 'Masculino', 'Otro')),

CONSTRAINT chk_estado_civil
CHECK (estado_civil IN ('Casado', 'Divorciado', 'Soltero',
'Viudo'))
);

INSERT INTO FACTURA VALUES


(1001, 'Laptop', 1, 800, '2022-01-10'),
(1002, 'Mouse', 2, 20, '2022-02-15'),
(1003, 'Teclado', 1, 35, '2022-03-20'),
(1004, 'Monitor', 1, 200, '2022-04-05'),
(1005, 'Impresora', 1, 150, '2022-05-18'),
(1006, 'Mouse', 1, 20, '2022-06-01'),
(1007, 'Laptop', 1, 800, '2022-06-10'),
(1008, 'Teclado', 2, 35, '2022-06-15'),
(1009, 'Mouse', 3, 20, '2022-06-20'),
(1010, 'Monitor', 1, 200, '2022-06-25');
INSERT INTO CLIENTE VALUES
(1, 1001, 'Juan Pérez', 'Av. Quito 123', '099111222', 'juan@[Link]',
'Masculino', 'Soltero'),
(2, 1002, 'María Gómez', 'Calle Loja 456', '098333444', 'maria@[Link]',
'Femenino', 'Casado'),
(3, 1003, 'Carlos Ruiz', 'Av. Amazonía 789', '097555666',
'carlos@[Link]', 'Masculino', 'Divorciado'),
(4, 1006, 'Ana Torres', 'Calle Bolívar 321', '096777888', 'ana@[Link]',
'Femenino', 'Soltero'),
(5, 1007, 'Luis Morales', 'Av. Colón 654', '095999000', 'luis@[Link]',
'Masculino', 'Casado'),
(6, 1009, 'Sofía Herrera', 'Calle Sucre 987', '094123456',
'sofia@[Link]', 'Otro', 'Viudo');

CREATE VIEW CLIENTE_VISTA AS


SELECT
[Link],
[Link],
[Link],
[Link],
SUM([Link] * [Link]) AS total_compras
FROM CLIENTE c
JOIN FACTURA f ON c.numero_factura = f.numero_factura
WHERE f.fecha_factura BETWEEN '2022-01-01' AND '2022-06-30'
GROUP BY [Link], [Link], [Link], [Link]
HAVING SUM([Link] * [Link]) > 25;

SELECT * FROM CLIENTE_VISTA;

Conclusiones
 La aplicación de claves primarias, claves foráneas y restricciones CHECK garantiza la
integridad y consistencia de los datos, evitando registros inválidos y asegurando
relaciones correctas entre las tablas CLIENTE y FACTURA, lo cual es esencial para la
confiabilidad del sistema de información.
 El uso de vistas en PostgreSQL demostró ser una herramienta eficaz para simplificar
consultas complejas, permitiendo extraer información relevante como clientes con
mayor volumen de compras y productos más vendidos en un período específico, sin
necesidad de repetir lógica SQL avanzada en cada consulta.
 La correcta delimitación temporal de los datos al primer semestre de 2022 permitió
realizar análisis precisos y controlados, evidenciando la importancia de filtrar
adecuadamente la información en procesos de análisis y generación de reportes,
especialmente en sistemas de facturación y gestión comercial.

También podría gustarte