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: