Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porIgnacio Valenzuela Parra Modificado hace 6 años
1
Implementación de Base de Datos con MySQL
Introducción a Base de Datos : Mg Jorge Santiago Nolasco Valenzuela
3
Base de datos Que es Una Base de Datos
“ Base de Datos en un Conjunto de Información relacionada y Organizada evitando duplicidad, la cual esta compuesta de información que representa una Persona , entidad o Cosa , por ejemplo : La Base de Datos del Departamento de Ventas , Compras , etc. ”
4
Dato “ Puede ser un carácter o un conjunto de caracteres que dependiendo de quien o que lo este evaluando puede tener algún significado ” Información “ Viene a ser el resultado de la manipulación o tratamiento de los Datos y que por lo general se caracteriza por que producen algún tipo de acción ”
5
Propósito de la Bases de datos
“ Las Bases de Datos en sus inicios fueron creadas con el objetivo de realizar operaciones que involucren a millones y millones de datos ( como por ejemplo las necesidades logística de las principales organizaciones militares y de espionaje ) . Es decir buscaron un medio que les permitiera lograr lo que humanamente era muy difícil , tedioso y plagado de errores , en la actualidad la Base de Datos son implementadas para ser aplicadas al mundo de los negociones , aunque en la actualidad esta presente en todo campo de la actividad Humana ”
6
Sistema Administrador de Base de Datos
“ Es un Programa de Aplicación que se usa para crear, manipular y Mantener Base de Datos Incluyendo su estructura Lógica, Física y reglas de Integridad, a su vez estos programas cuentan con el soporte necesario que les permita capacidades de integración con otras Base de Datos u otros DBMS’s . Es importante mencionar que el DBMS actúa como una interface entre el usuario y Base de Datos ejemplo: MySQL, Acces, Paradox, Visual Foxpro, SQL Server, Oracle, Sybase, Informix, SQL Base, CA-Ingress, IBM-DB2, VSAM, Data-Com, etc ”
7
Modelamiento de Datos Conceptual
“El modelo de Datos se centra estrictamente en desarrollar un modelo por el cual una determinada realidad puede ser representada . Podríamos decir entonces que el modelo de Datos consiste en aplicar alguna técnica que nos permita representar una realidad de la manera mas conveniente posible , teniendo en claro que esa representación debe estar modelado en función de los objetivos que se pretenda alcanzar Por ejemplo se podrían utilizar como técnicas aceptadas , los modelos gráficos , los modelos matemáticos , etc. . Todos estos modelos pretender representar una realidad haciendo uso de sus propias reglas , métodos y procesos ”
8
Modelamiento Entidad Relación-Relación ( ME/R)
“ El modelo entidad relación , fue puesto 'por Peter Chen en 1976 donde nos dice ..el Modelo de entidad Relación puede ser usado como una Base para una vista unificada de los Datos , adoptando el enfoque mas natural del mudo real , que consiste en ENTIDADES e INTERRRELACIONES . Por otro lado , resulta necesario comentar que el transcurrir del tiempo , que el modelo propuesto por Chen ( ME/R ) , ha sido sujeto a una serie de variantes a raíz de los múltiples trabajos de investigación ”
9
Elementos del Modelo Entidad Relación
Sus elementos son : Entidad .- Se reconoce como entidad a aquel objeto definido como “ una persona , cosa , lugar , suceso , concepto real o abstracto , el cual se encuentra inmerso en un determinado problema , razón por la cual deber ser modelada y susceptible de ser manipulado a conveniencia , cabe resaltar que solo por exigencia las entidades deberán ser representadas en singular ejemplo : pensemos en una tienda que vende computadoras : cliente , producto , factura , boleta , guía , etc.. Cliente Producto Factura
10
Revisión de Algunos Conceptos
Atributo .- Es una propiedad o característica distintiva de una entidad , la cual a su vez es susceptible de ser modelada y almacenada . Llave Primaria .- Es un atributo o Grupo de Atributos que identifica a la entidad . Llave Alterna .- Es un atributo o Grupo de Atributos que son opcionales para identificar la entidad Relación .- Es un Vinculo o enlace lógico entre dos entidades Llave Foránea .- Es una llave primaria de una Entidad Padre , que es agregada a una entidad Hija como producto de una Relación .
11
Ahora agregaremos las entidades para ello primero identificaremos algunas entidades Clientes , Facturas , Productos . Par estos definimos las siguientes interrelaciones de las entidades : Un clientes posee Muchas Facturas ( relación de un a Varios ) Una factura contiene Muchos Productos y un Producto se encuentra en Muchas Facturas ( relación de Muchos a Muchos ) posee Cliente Facturas contiene Factura Producto
12
Entidad1: Cliente Entidad2 : Factura
Ahora definamos los atributos de las entidades y su respectiva interrelación , para ello normalizaremos los datos ,esta técnica la utilizaremos para eliminar resultados anómalos , redundantes o deficiencias de nuestra estructura ( Regla DAC ) Entidad1: Cliente Entidad2 : Factura Numero de Factura Razón Social RUC cliente Dirección Cliente Fecha Emisión Fecha Vencimiento Fecha cancelación Moneda Condiciones Guía remisión Importe bruto Igv Total Código Cliente Razón Social RUC cliente Dirección cliente Teléfono cliente Correo cliente
13
Ahora definiremos las llaves de cada entidad
Entidad1: Cliente Entidad2 : Factura Código Cliente Key Razón Social RUC cliente Dirección cliente Teléfono cliente Correo cliente Numero de Factura Key Razón Social RUC cliente Dirección Cliente Fecha Emisión Fecha Vencimiento Fecha cancelación Moneda Condiciones Guía remisión Importe bruto Igv Total
14
En este caso la llave principal del cliente es migrado o trasladado a la entidad Factura , de esta manera el nuevo atributo se convierte en una llave foránea de la tabla Factura . Ahora Descartaremos o eliminaremos los atributo de la Entidad Factura que se encuentran en Cliente Numero de Factura Código de Cliente Razón Social RUC cliente Dirección Cliente Fecha Emisión Fecha Vencimiento Fecha cancelación Moneda Condiciones Guía remisión Importe bruto Igv Total Código Cliente Razón Social RUC cliente Dirección cliente Teléfono cliente Correo cliente
15
Entidad2: Factura Entidad3:Producto
Ahora definiremos las Entidades Factura y Producto , para ello definimos sus atributos y Interrelación , ya que la entidad Factura ya fue definida solo no queda definir la entidad producto Entidad2: Factura Entidad3:Producto Numero de Factura Código de Cliente Fecha Emisión Fecha Vencimiento Fecha cancelación Moneda Condiciones Guía remisión Importe bruto Igv Total Código producto Descripción producto Unidad medida Precio unitario Saldo del producto Ahora examinaremos que no existe dependencia de relación de la entidad producto deberemos crear una nueva entidad con el nombre unificado de ambas entidades y migrar las llaves a la nueva identidad y complementar atributos adicionales
16
Ahora observaremos la nueva identidad que la denominaremos detalle
Entidad2: Factura Entidad3:Producto Numero de Factura key Código de Cliente Fecha Emisión Fecha Vencimiento Fecha cancelación Moneda Condiciones Guía remisión Importe bruto Igv Total Código producto key Descripción producto Unidad medida Precio unitario Saldo del producto Entidad4:Detalle Numero Factura key Código producto key Cantidad producto
17
Practica # 1 Analizar la base de datos para los siguientes procesos : Ventas Compras
18
Descripción del Problema
Empresa Officexyz Descripción del Problema La empresa Officexyz , se encarga de dar servicios de impresión de folletos a sus diferentes clientes para ello se ha notado que sus ventas han disminuido en un 20% . Uno de los problemas identificados es que hay una demora en la entrega de los folletos a sus clientes y para ellos se ha notado que no existe un adecuado abastecimiento de materia prima e insumo , por lo cual se demora en impresión de los folletos Para solucionar el problema se ha decidido crear un sistema de compras , para ello deberemos crear una base de datos
19
Normalización de Base de Datos – Compras
Paso 1 – Identificar las Entidades Entidad .- Se puede definir como entidad a cualquier objeto, real o abstracto como : una persona , cosa , lugar , suceso , el cual se encuentra inmerso en un determinado problema Atributos .- Las características de las entidades en base de datos se llaman atributos, por ejemplo el ruc , razón social , dirección , teléfono , etc. son atributos de la entidad proveedor ; Clave : ruc .
20
Normalización de Base de Datos – Compras
Paso 1 – Identificar las Entidades Identificamos las Entidades que se encuentra relacionado con compras : Compro por que algún área lo solicito ? Área de la Empresa (entidad : área) Trabajador que es Responsable del área ( trabajador ) Con que documento lo solicito ? Pedido o Requisición ( entidad :pedido) A quien el compro ? Al Proveedor (entidad : proveedor) Que le compro ? Hojas , tintas , etc. ( entidad : productos ) Tipos de Productos ( entidad : tipo_p) Con que documento adquiero las Hojas , tintas , etc. al proveedor ? Factura , Boleta , nota de crédito , nota debito ( entidad : documento compra) Guía de Remisión ( entidad : guia_r) Tipo documento compra ( entidad : tipod_d) Con que documento me comprometo con el proveedor? Orden ( entidad : orden)
21
Normalización de Base de Datos – Compras
Paso 1 – Identificar las Entidades
22
Normalización de Base de Datos – Compras
Paso 2 – Identificar las Entidades con sus respectivos atributos
23
Normalización de Base de Datos – Compras
Paso 2 – Identificar las Entidades con sus respectivos atributos , observar los atributos representativos o llaves de cada entidad , ojo los detalles no tienen atributos representativos
24
Normalización de Base de Datos – Compras
Paso 2 – Elegimos algunas entidades para nuestro ejemplo
25
Normalización de Base de Datos – Compras
Paso 3 – Relación de existencialismo
26
Normalización de Base de Datos – Compras
Paso 4 – Descartar atributos repetidos que están en proveedor y se repiten en documento de compra
27
Normalización de Base de Datos – Compras
Paso 4 – Descartar atributos repetidos que están en proveedor y se repiten en orden
28
Normalización de Base de Datos – Compras
Paso 4 – Descartar atributos repetidos que están en productos y se repiten en detalle de orden
29
Normalización de Base de Datos – Compras
Paso 4 – Descartar atributos repetidos que están en productos y se repiten en detalle de documento
30
Normalización de Base de Datos – Compras
Paso 4 – Exportar la clave del Padre al hijo
31
Normalización de Base de Datos – Compras
Paso 4 – Exportar la clave del Padre al hijo
32
Normalización de Base de Datos – Compras
Paso 4 – Exportar la clave del Padre al hijo
33
Normalización de Base de Datos – Compras
Paso 4 – Exportar la clave del Padre al hijo
34
Normalización de Base de Datos – Compras
Paso 4 – Exportar la clave del Padre al hijo
35
Normalización de Base de Datos – Compras
Paso 4 – Exportar la clave del Padre al hijo
36
Normalización de Base de Datos – Compras
obtenemos
37
Normalización de Base de Datos – Compras
Damos forma a los atributos para que sean campos
38
Normalización de Base de Datos – Compras
Damos forma a los atributos para que sean campos
39
Normalización de Base de Datos – Compras
Damos forma a los atributos para que sean campos
40
Implementación de Base de Datos con MySQL
Creando Nuestra primera Base de Datos Mg. Jorge Santiago Nolasco Valenzuela
41
phpMyAdmm phpMyAdmin es una herramienta para la administración del servidor de bases de datos MySQL Dispone de una interfaz gráfica y es de libre distribución Permite realizar todo tipo de operaciones sobre bases de datos: crear, borrar y modificar tablas consultar, insertar, modificar y eliminar datos definir usuarios y asignar permisos realizar copias de seguridad etc. Está escrita en php y se ejecuta desde el navegador Si está instalada en la carpeta phpmyadmin, se ejecuta escribiendo en la barra de direcciones del navegador la url Puede administrar bases de datos locales y remotas
42
phpMyAdmm Usuario : root Clave : 1234
43
phpMyAdmm
44
phpMyAdmm
45
phpMyAdmm – Creando la Base de Datos Compras
46
phpMyAdmm – Creando la primera tabla
Proveedor
47
phpMyAdmm – Creando la primera tabla
Proveedor
48
phpMyAdmm – Creando la primera tabla
Proveedor Como seria la tabla proveedor
49
phpMyAdmm – Creando la primera tabla
Proveedor , 6 campos
50
phpMyAdmm – Creando la primera tabla
Proveedor , 6 campos
51
phpMyAdmm – Creando la primera tabla
Proveedor , 6 campos
52
phpMyAdmm – Creando la primera tabla
Proveedor , campo : doc_pe ( documento del proveedor )
53
Algo sobre el Tipo VARCHAR
Los valores en columnas VARCHAR son cadenas de caracteres de longitud variable. En MySQL 5.0, la longitud puede especificarse de 0 a 65,535 caracteres NOTA: Si se utiliza CHAR en lugar de VARCHAR, el resultado será tablas de mayor tamaño, pero por regla general mas rápidas en cuanto a su procesamiento ya que MySQL sabe donde comienza cada registro de manera exacta.
54
phpMyAdmm – Creando la primera tabla
Proveedor , doc_pe ( documento del proveedor )
55
phpMyAdmm – Creando la primera tabla
Proveedor , ahora doc_pe ( documento del proveedor ) lo definimos como campo clave que represente la nueva tabla
56
phpMyAdmm – Creando la primera tabla
Proveedor , el campo rz_pe ( razón social del proveedor )
57
phpMyAdmm – Creando la primera tabla
Proveedor , de al misma manera creamos los demás campos
58
phpMyAdmm – Creando la primera tabla
Proveedor , creada
59
phpMyAdmm – Insertando Registros en la tabla
Proveedor , creada ( 2 registros )
60
phpMyAdmm – Una vista de la tabla Proveedor
61
phpMyAdmm – Creando la segunda tabla
Productos
62
phpMyAdmm – Volviendo a la Base de Datos
63
phpMyAdmm – Creando la tabla Productos
64
phpMyAdmm – Creando la tabla Productos
65
phpMyAdmm – Creando la tabla Productos
66
phpMyAdmim – Tipos Datos MySQL
Creación de una tabla: Indicar, para cada campo de la tabla los siguientes datos: Field : Nombre del atributo. Type : Tipo de dato del atributo. Length/Values : Indica la longitud máxima del tipo de dato (especialmente para VARCHAR). Attributes : UNSIGNED : Sólo toma valores positivos (para INTEGER, SMALLINT, ...). Null : El atributo puede tomar valores nulos? (la clave o identificador de la tabla nunca puede tener valores nulos!!!). Default : Valor por defecto del atributo al añadir una nueva fila. Extra : AUTO_INCREMENT (normalmente se usa para generar, automáticamente, valores de la clave). Primary : Se debe marcar si el atributo es Clave Primaria (el identificador) de la tabla. Index : Crea un índice dentro de la tabla. Unique: Se debe marcar si el valor del atributo es único para toda la tabla.
67
phpMyAdmim – Tipos Datos MySQL
Tipos de Datos en MySQL: Los tipos de datos que puede haber en un campo o atributo de una tabla forman tres grandes grupos: 1. Tipos Numéricos 2. Tipos de Fecha 3. Tipos de Cadena de Caracteres
68
phpMyAdmim – Tipos Datos MySQL
1) Tipos numéricos: Existen tipos de datos numéricos, que se pueden dividir en dos grandes grupos, los que incluyen valores decimales (coma flotante) y los que no. TinyInt: es un número entero con o sin signo. Con signo el rango de valores válidos va desde -128 a 127. Sin signo, el rango de valores es de 0 a 255 Bit ó Bool: un número entero que puede ser 0 ó 1 SmallInt: número entero con o sin signo. Con signo el rango de valores va desde a Sin signo, el rango de valores es de 0 a MediumInt: número entero con o sin signo. Con signo el rango de valores va desde a Sin signo el rango va desde 0 a Integer, Int: número entero con o sin signo. Con signo el rango de valores va desde a Sin signo el rango va desde 0 a BigInt: número entero con o sin signo. Con signo el rango de valores va desde a Sin signo el rango va desde 0 a Float: número pequeño en coma flotante de precisión simple. Los valores válidos van desde E+38 a E-38, 0 y desde E-38 a E+38. Real, Double: número en coma flotante de precisión doble. Los valores permitidos van desde E+308 a E-308, 0 y desde E-308 a E+308 Decimal, Dec, Numeric: Número en coma flotante. El número se almacena como una cadena
69
phpMyAdmim – Tipos Datos MySQL
2) Tipo Fecha: Al almacenar fechas, hay que tener en cuenta que Mysql no comprueba de una manera estricta si una fecha es válida o no. Simplemente comprueba que el mes está entre 0 y 12 y que el día está entre 0 y 31. Date: Almacena una fecha. El rango de valores va desde el 1 de enero del 1001 al 31 de diciembre de El formato de almacenamiento es de: año-mes-dia DateTime: Combinación de fecha y hora. El rango de valores va desde el 1 de enero del 1001 a las 0 horas, 0 minutos y 0 segundos al 31 de diciembre del 9999 a las 23 horas, 59 minutos y 59 segundos. El formato de almacenamiento es de año-mes-dia horas:minutos:segundos TimeStamp: Combinación de fecha y hora. El rango va desde el 1 de enero de 1970 al año 2037. Time: Almacena la hora. El rango de horas va desde -838 horas, 59 minutos y 59 segundos a 838, 59 minutos y 59 segundos. El formato de almacenamiento es de 'HH:MM:SS' Year: almacena un año. El rango de valores permitidos va desde el año 1901 al año El campo puede tener tamaño dos o tamaño 4 dependiendo de si queremos almacenar el año con dos o cuatro dígitos.
70
phpMyAdmim – Tipos Datos MySQL
3) Tipos de Cadena de Caracteres: Char(n): almacena una cadena de longitud fija. La cadena podrá contener desde 0 a 255 caracteres. VarChar(n): almacena una cadena de longitud variable. La cadena podrá contener desde 0 a 255 caracteres. Dentro de los tipos de cadena se pueden distinguir otros dos subtipos, los de tipo Text y los de tipo BLOB (Binary large Object). La diferencia entre un tipo y otro es el tratamiento que reciben a la hora de realizar ordenamientos y comparaciones. Mientras que el tipo Text se ordena sin tener en cuenta las Mayúsculas y las minúsculas, el tipo BLOB se ordena teniéndolas en cuenta. Los tipos BLOB se utilizan para almacenar datos binarios como pueden ser ficheros. TinyText y TinyBlob: Columna con una longitud máxima de 255 caracteres. Blob y Text: un texto con un máximo de caracteres. MediumBlob y MediumText: un texto con un máximo de caracteres. LongBlob y LongText: un texto con un máximo de caracteres Hay que tener en cuenta que debido a los protocolos de comunicación en Internet, los paquetes pueden tener un máximo de 16 Mb. Enum: campo que puede tener un único valor de una lista que se especifica. El tipo Enum acepta hasta valores distintos Set: un campo que puede contener ninguno, uno ó varios valores de una lista. La lista puede tener un máximo de 64 valores.
71
Laboratorio 1 Tipos Recomendados Documento_c Detalle_documento Orden
1.- Crear las siguientes Tablas que faltan : Documento_c Detalle_documento Orden Detalle_orden Si hay algunos campos que no sabe que tipo de datos asignarle acceder al link : Tipos Recomendados 2.- Ingresar por lo menos 20 registros en cada tabla con al opción
72
Laboratorio 1 Preguntar al profesor como sacar un copia de base de datos en un archivo Sacar copia de seguridad de la base de datos en un archivo y enviarlos al correo del profesor
73
SQL ANSI
74
SQL ANSI Sentencia de Selección de Registros , se utiliza para recuperar registros SELECT Sintaxis: SELECT expresión FROM tabla [WHERE condición] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...] [LIMIT [offset,] row_count | row_count OFFSET offset]
75
Sentencia de Selección de Registros
SQL ANSI Sentencia de Selección de Registros SELECT Sintaxis: SELECT expresión FROM tabla [WHERE condición] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...] [LIMIT [offset,] row_count | row_count OFFSET offset] Aplicación De la tabla proveedor , seleccionar todos los campos y todos sus registros : Para ello utilizamos el siguiente comando SELECT * FROM proveedor;
76
SQL ANSI Explicación de la Sentencia
77
Sentencias SQL ANSI
78
Sentencias SQL ANSI
79
Sentencias SQL ANSI
80
Laboratorio 2 Utilizar la sentencia SELECT para recuperar los siguientes registros : 1.- Seleccionar todo los proveedores mostrar todos sus campos y todos sus registros 2.- Seleccionar los proveedores cuyo doc_pe es , mostrar todos sus campos 4.- Seleccionar los proveedores cuyo doc_pe empieza con 1 , mostrar todos sus campos 5.- Seleccionar los proveedores cuyo doc_pe que termina con 1 , mostrar todos sus campos 6.- Seleccionar los proveedores cuya rz_pe empieza con a , mostrar todos sus campos 7.- Seleccionar los proveedores cuya rz_pe empieza con b , mostrar solo el campo rz_pe Seleccionar todo los proveedores mostrar el campo doc_pe y rz_pe y todos sus registros
81
Consultar al profesor las dudas
Utilizar la sentencia SELECT para recuperar los siguientes registros : 9.- Seleccionar todo los proveedores mostrar el proveedor cuyo doc_pe sea y rz_pe sea gloria 10.- Seleccionar todo los productos mostrar con todos sus campos y todos sus registros 11.- Seleccionar todo los productos mostrar solo el campos des_po y todos sus registros 12.- Seleccionar los productos mostrar solo el campo des_po y preu_po y todos sus registros 13.- Seleccionar los productos mostrar solo el campo des_po y preu_po y cuyo preu_po sea mayor a 10 14.- Seleccionar los productos mostrar solo el campo des_po y preu_po y cuyo preu_po sea menor a 10 Consultar al profesor las dudas Grabar todas la sentencias en un archivo sql.doc y enviarlas al correo del profesor
82
Descripción del Problema
Empresa Libreriaxyz Descripción del Problema La empresa Libreriaxyz , se encarga de vender diferentes productos como libros , cuadernos , hojas , etc. Uno de los problemas identificados es que no existe un registros actualizado de sus vendedores Para solucionar el problema se ha decidido crear base de datos
83
Empresa Libreriaxyz
84
phpMyAdmm Usuario : root Clave : 1234
85
phpMyAdmm
86
phpMyAdmm
87
phpMyAdmm
88
phpMyAdmm
89
phpMyAdmm Ingresar 20 registros a la tabla vendedores
90
phpMyAdmm – Seguridad Creando un usuario para nuestra BD
91
phpMyAdmm – Seguridad Creando un usuario para nuestra BD
92
phpMyAdmm – Seguridad Creando un usuario para nuestra BD
93
phpMyAdmm – Seguridad Creando un usuario para nuestra BD
94
Provilegios Hemos creado un usuario nuevo : Nombre : admin
Clave : 1234 Para que pueda acceder a nuestra base de datos librería , ya que es una manera de proporcionar seguridad a nuestra base de datos. El usuario Nombre : root No es recomendable usarlo
95
Sentencias SQL ANSI INSERT Sintaxis:
INSERT [INTO] nombre_tabla [(nombre_columna,...)] VALUES ((expresión | DEFAULT),...), (...),... INSERT [INTO] nombre_tabla SET nombre_columna=(expresión | DEFAULT), ... Ejemplo: INSERT INTO noticias (id, titulo, texto, categoria, fecha) VALUES (37, "Nueva promoción en Nervión", "145 viviendas de lujo en urbanización ajardinada situadas en un entorno privilegiado", "promociones", CURDATE()) Inserta una noticia con los valores indicados
96
Sentencias SQL ANSI UPDATE Sintaxis: UPDATE nombre_tabla
SET nombre_columna1=expr1 [, nombre_columna2=expr2 ...] [WHERE condición] [ORDER BY ...] [LIMIT row_count] Ejemplo: UPDATE noticias SET categoria = "ofertas" WHERE id=37 Modifica la categoría de la noticia con id=37 de la tabla
97
Sentencias SQL ANSI DELETE Sintaxis:
DELETE FROM nombre_tabla [WHERE condición] [ORDER BY ...] [LIMIT row_count] Ejemplo: DELETE FROM noticias WHERE fecha < CURDATE()-10 Borra las noticias con más de 10 días de antigüedad
98
Sentencias SQL ANSI DELETE Sintaxis:
DELETE FROM nombre_tabla [WHERE condición] [ORDER BY ...] [LIMIT row_count] Ejemplo: DELETE FROM noticias WHERE fecha < CURDATE()-10 Borra las noticias con más de 10 días de antigüedad
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.