Subido por paulinarf27

Proyecto final BD

Anuncio
Universidad Politécnica
de San Luis Potosí
Proyecto Final Base de Datos
Base de datos
Alumno:
Rodríguez Faz Paulina
160813
Profesor:
Jorge Martín Méndez Leal
Mayo 26, 2020
Contenido
Introducción .................................................................................................................................. 3
Marco Teórico ............................................................................................................................... 3
Base de datos ............................................................................................................................ 3
Modelo entidad-relación........................................................................................................... 3
PgModeler ................................................................................................................................. 3
PostgreSQL ................................................................................................................................ 4
Comandos.................................................................................................................................. 4
Vistas ......................................................................................................................................... 5
Funciones .................................................................................................................................. 5
Triggers ...................................................................................................................................... 5
Planteamiento del problema ........................................................................................................ 5
Levantamiento de requerimientos ............................................................................................... 6
Modelado de Base de Datos ......................................................................................................... 6
Elaboración de diccionario de datos: ............................................................................................ 7
Tabla categoría: ......................................................................................................................... 7
Tabla pastel: .............................................................................................................................. 7
Creación de objetos y estructuras de base de datos: ................................................................... 8
Creación de tablas: .................................................................................................................... 8
Creación de relaciones: ............................................................................................................. 8
Creación de esquema: ............................................................................................................... 9
Creación de vista: ...................................................................................................................... 9
Creación función: ...................................................................................................................... 9
Creación de trigger: ................................................................................................................. 10
Invocación de vista y trigger: .................................................................................................. 10
Resultado de la vista: .............................................................................................................. 10
Conclusión: .................................................................................................................................. 10
Referencias Bibliográficas ........................................................................................................... 11
Introducción
En el presente documento se presenta la investigación previa y la elaboración
del proyecto final de la materia de base datos, donde se hará un recuento de
todos los temas vistos durante el semestre Primavera 2020 y la aplicación de
algunos de ellos en este proyecto, el cual se basa de elaborar una base de datos
simple en PostgreSQL sobre la venta del día de una pastelería. También se
encontrarán los requerimientos funcionales y no funcionales del proyecto, el
modelo entidad-relación elaborado en pgModeler, el código para la creación de
cada uno de los elementos que proporcionan la funcionalidad del proyecto y
por último una conclusión sobre el proyecto, los incidentes presentados sobre
su elaboración y la enseñanza que dejó la materia de base de datos a mi
persona.
Marco Teórico
Base de datos
Según Oracle, una base de datos relacional es un tipo de base de datos que
almacena y proporciona acceso a puntos de datos relacionados entre sí. Las
bases de datos relacionales se basan en el modelo relacional, una forma
intuitiva y directa de representar datos en tablas.
Modelo entidad-relación
El modelo entidad relación es una herramienta que permite representar de
manera simplificada los componentes que participan en un proceso de negocio
y el modo en el que estos se relacionan entre sí. El modelo entidad relación
tiene tres elementos principales:

Entidades: El modelo contará con una entidad por cada uno de los
componentes del proceso de negocio.

Atributos: Los atributos, componente fundamental de cada modelo
entidad-relación, nos permiten describir las propiedades que tiene cada
entidad.

Relaciones: Con las relaciones se establecen vínculos entre parejas de
entidades.
PgModeler
Se utiliza para el modelado de las bases de datos. Implementa una serie de
características y utilidades que vamos a ver a continuación.

Podemos crear y editar de forma sencilla y rápida modelos de bases de
datos con una interfaz simple. También incluye unos formularios con una
serie de campos que se deben de completar para generar el código SQL
de forma correcta.

Cuando hemos terminado de diseñar nuestras bases de datos con sus
tablas, columnas y tipos de datos, y hemos especificado las relaciones
entre tablas. Nos permite exportar las estructuras de datos a los
servidores de PostgreSQL.
PostgreSQL
Es un sistema de gestión de bases de datos relacional orientado a objetos y de
código abierto, publicado bajo la licencia PostgreSQL,1 similar a la BSD o la MIT.
El desarrollo de PostgreSQL no es manejado por una empresa o persona, sino
que es dirigido por una comunidad de desarrolladores que trabajan de forma
desinteresada, altruista, libre o apoyados por organizaciones comerciales.
Comandos
DDL (Data Definition Language): Permite crear y modificar la estructura de una
base de datos.

CREATE: Utilizado para crear nuevas tablas, campos e índices.

ALTER: Utilizado para modificar las tablas agregando campos o
cambiando la definición de los campos.

DROP: Empleado para eliminar tablas e índices.

TRUNCATE: Empleado para eliminar todos los registros de una tabla.

COMMENT: Utilizado para agregar comentarios al diccionario de datos.

RENAME: Tal como su nombre lo indica es utilizado para renombrar
objetos.
DML (Data Manipulation Language): Permite recuperar, almacenar, modificar,
eliminar, insertar y actualizar datos de una base de datos.

INSERT: Utilizado para cargar de datos en la base de datos en una única
operación.

UPDATE: Utilizado para modificar los valores de los campos y registros
especificados

DELETE: Utilizado para eliminar registros de una tabla de una base de
dato
DQL (Data Query Language): Permite hacer consultas en la BD

SELECT: Utilizado para consultar registros de la base de datos que
satisfagan un criterio determinado.
Vistas
Es un subconjunto de una base de datos y se basa en una consulta que se
ejecuta en una o más tablas de base de datos. Las vistas de base de datos se
guardan en la base de datos como consultas con nombre y se pueden utilizar
para guardar consultas completas que se utilizan con frecuencia.
Funciones
Una función es un conjunto de sentencias que operan como una unidad lógica.
Una función tiene un nombre, retorna un parámetro de salida y opcionalmente
acepta parámetros de entrada. Las funciones de SQL Server no pueden ser
modificadas, las funciones definidas por el usuario. Se ofrecen varios tipos de
funciones para realizar distintas operaciones. Se pueden clasificar de la siguiente
manera:

De agregado: realizan operaciones que combinan varios valores y
retornan un único valor. Son "count", "sum", "min" y "max".

Escalares: toman un solo valor y retornan un único valor.
Triggers
Es una clase especial de procedimiento almacenado que se ejecuta
automáticamente cuando se produce un evento en el servidor de bases de
datos. Los trigger se ejecutan cuando un usuario intenta modificar datos
mediante un evento de lenguaje de manipulación de datos (DML). Estos triggers
se activan cuando se desencadena cualquier evento válido, con independencia
de que las filas de la tabla se vean o no afectadas.
Planteamiento del problema
La empresa “Fazteleria” es una empresa familiar dedicada a la elaboración y
ventas de postres caseros. Al ser una empresa con poco tiempo en el mercado
solo se elaboran 8 postres de cada tipo, clasificadas en cuatro categorías,
teniendo en total 64 postres para vender al día. No cuentan con una
metodología de venta automatizada y cada pastel que venden, solo lo apuntan
en una libreta por día. Esto les quita mucho tiempo y agilidad al negocio, por lo
que requieren una base de datos simple que cumpla la función de la libreta de
una forma más automatizada y ágil.
El proyecto se basa en las ventas del día de la empresa con una base datos que
tenga el funcionamiento de una caja registradora y pueda decirles el total de
dinero recaudado por día y se vaya guardando conforme van pasando los días,
para así a final del mes tener fácil acceso a todas las ventas realizadas cotidiana.
Levantamiento de requerimientos
Funcionales





No funcionales





Requerimientos
El personal tiene acceso al menú con su respectivo precio y
categoría.
Al momento de realizar una venta, el sistema se actualiza de
manera óptima con suma de la venta del día.
Al momento de finalizar la venta, se actualiza la cantidad de
postres disponibles.
En caso de que el postre este agotado o no se cuente con la
cantidad solicitada al momento de la compre, se muestra un
mensaje informando.
El personal puede actualizar la cantidad de postres que hay día
con día.
Modelo relacional en PgModeler
Vista para el menú y su clasificación
Función que sume lo que se vaya vendiendo por día y vaya
descontando los postres vendidos.
Trigger que actualice la suma de venta y la cantidad de postres
disponibles.
Manejo de mensaje para avisar que un postre ya se agotó o no se
cuenta con la cantidad de postres solicitados.
Modelado de Base de Datos
Elaboración de diccionario de datos:
Ajeno a la base de datos, a continuación, se muestra un diccionario de los
valores que se encontraran durante demostración del funcionamiento del
proyecto:
Tabla categoría:

Tres Leches: Consiste en un bizcocho bañado con tres tipos de leche:
leche evaporada, crema de leche y leche condensada, que le dan su
nombre.

Gelatina: Alimento, dulce o salado, preparado con esta sustancia, agua y
zumo de fruta o trozos de alguna verdura, carne o pescado, que se pone
en un molde hasta que se solidifica; su consistencia es blanda y
temblorosa y su aspecto brillante

Seco: Consiste en un bizcocho elaborado con masa, en un punto de
cocción óptimo.

Envinado: Bizcocho inyectado con licor del 43, ron o brandy.
Tabla pastel:

Pastel: Dulce elaborado con una masa a base de harina, mantequilla,
huevos, azúcar, leche, y otros ingredientes, que se cuece al horno y se
rellena o se cubre de crema, chocolate, frutas u otros productos de
repostería

Pastel naranja: Pastel dulce con jugo de naranja y esencia de naranja
mezclada con masa.

Pastel zanahoria: Pastel dulce con zanahoria machacada mezclada en la
masa. La zanahoria se ablanda en el proceso de cocción, y la tarta suele
tener una textura densa y suave.

Pastel marmoleado: Combinación de masas de chocolate y vainilla,
suele ir envinado.

Pastel chocolate: Pastel dulce con masa especial de chocolate y esencia
de chocolate, puede llevar chispas de chocolate durante la cocción.

Pastel brownie: Pastel elaborado con masa de chocolate con un grosor
mínimo, se le puede agregar nuez durante la elaboración y solo de
decora con azúcar glass espolvoreada.

Pastel vainilla: Pastel dulce con esencia de vainilla mezclada con masa.

Gelatina mosaica: Postre popular en México, fácil de encontrar en las
calles o restaurantes mexicanos, se destaca por su colorido y por su
sabor dulce exquisito

Gelatina de frutos rojos: Combinación de grenetina saborizada, agua
caliente y leche clavel. Decorada con variedad de frutos rojos.
Creación de objetos y estructuras de base de datos:
Creación de tablas:
Creación de relaciones:
Creación de esquema:
Creación de vista:
Creación función:
Creación de trigger:
Invocación de vista y trigger:
Resultado
de la vista:
Conclusión:
Todos los conocimientos adquiridos en este curso ayudaron demasiado a la
elaboración del proyecto, se tuvieron los resultados esperados y se cumplieron
los requerimientos funcionales del sistema. A pesar de que el proyecto tuviera
una estructura simple, se aplicaron casi todos los conceptos vistos en el curso
de Base de datos.
Se dominaron varios conceptos vistos desde el primer parcial como lo fue la
clasificación de comandos DDL, DML y DQL, la creación de tablas y relaciones, la
inserción de datos y las consultas de los mismos, y estos mismos conceptos se
complementaron con los temas vistos en tercer parcial como las vistas, las
funciones y los trigger.
Sin duda el uso de software como pgModeler y pgAdmin4 facilitó mucho el
manejo de comandos y entendimiento visual de los mismos, considero que son
herramientas muy útiles e intuitivas para el manejo de base de datos. Aunque se
presentaron complicaciones al momento de realizar la función y el trigger, se
pudo llegar a una solución satisfactoria, logrando que el sistema funcionara en
su totalidad como el caso planteado lo solicitaba.
En lo personal, este curso me deja una percepción muy diferente a lo que
conocía sobre las bases de datos, me deja también nuevos conceptos y
funcionalidades que más a futuro sé con certeza que me ayudara para un
trabajo o bien para un negocio propio como lo visto en este proyecto final.
Referencias Bibliográficas

Anónimo. (S.F). Qué es un trigger o desencadenador y cómo crearlo?.
Mayo
25,
2020,
de
Estrada
Web
Sitio
web:
https://estradawebgroup.com/Post/Que-es-un-trigger-odesencadenador-y-como-crearlo-/1032

Autor: Cecilia Bembibre | Sitio: Definición ABC | Fecha: diciembre. 2009 |
URL: https://www.definicionabc.com/general/postre.php

Autor: Javier Navarro | Sitio: Definición ABC | Fecha: octubre. 2016 | URL:
https://www.definicionabc.com/general/pasteleria.php

Hidalgo, L. (2017). Modelo entidad relación: descripción y aplicaciones.
Mayo 24, 2020, de ICEMD Sitio web: https://www.icemd.com/digitalknowledge/articulos/modelo-entidad-relacion-descripcion-aplicaciones/

Segovia, J. (2018). Herramienta para el diseño de BD de PostgreSQL,
pgModeler. Mayo 24,2020, de TodoPostgresql Sitio web:
https://todopostgresql.com/herramienta-para-el-diseno-de-bd-depostgresql-pgmodeler/

Tutoriales de Programación. (S.F). SQL Server Ya. mayo 25,2020, de
Tutoriales
Programacion
Sitio
https://www.tutorialesprogramacionya.com/sqlserverya/
web:
Descargar