Está en la página 1de 27

Diplomatura en programación web full

stack con React JS

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 2

Módulo 3: NodeJS Introducción

Unidad 3: Base de datos, conceptos y presentación


MySQL, instalación

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 3

Presentación:
En esta unidad vamos a conocer los conceptos necesarios sobre bases de datos para
poder almacenar, gestionar y devolver al cliente información.

Las bases de datos son imprescindibles en cualquier aplicación ya que es allí donde se
guarda toda la información generada y útil para la dinámica de la aplicación.

Nos introduciremos en MySQL, una base de datos de distribución gratuita y que sigue los
estándares de SQL.

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 4

Objetivos:
Que los participantes:
● Comprendan los conceptos relacionados con las bases de datos.

● Sean capaces de crear una base de datos con sus tablas, campos, índices, etc..

● Sepan utilizar la base de datos desde NodeJS.

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 5

Bloques temáticos:

1. Introducción a bases de datos relacionales

2. Definición de base de datos, tablas, campos, índices y claves foráneas

3. Presentación de MySQL

4. Introducción y uso de XAMPP y PhpMyAdmin

5. Ejemplo

6. Trabajo Práctico

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 6

Consignas para el aprendizaje colaborativo


En esta Unidad los participantes se encontrarán con diferentes tipos de actividades que,
en el marco de los fundamentos del MEC*, los referenciarán a tres comunidades de
aprendizaje, que pondremos en funcionamiento en esta instancia de formación, a los
efectos de aprovecharlas pedagógicamente:

● Los foros proactivos asociados a cada una de las unidades.


● La Web 2.0.
● Los contextos de desempeño de los participantes.

Es importante que todos los participantes realicen algunas de las actividades sugeridas y
compartan en los foros los resultados obtenidos.

Además, también se propondrán reflexiones, notas especiales y vinculaciones a


bibliografía y sitios web.

El carácter constructivista y colaborativo del MEC nos exige que todas las actividades
realizadas por los participantes sean compartidas en los foros.

* El MEC es el modelo de E-learning colaborativo de nuestro Centro.

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 7

Tomen nota:
Las actividades son opcionales y pueden realizarse en forma individual, pero siempre es
deseable que se las realice en equipo, con la finalidad de estimular y favorecer el trabajo
colaborativo y el aprendizaje entre pares. Tenga en cuenta que, si bien las actividades
son opcionales, su realización es de vital importancia para el logro de los objetivos de
aprendizaje de esta instancia de formación. Si su tiempo no le permite realizar todas las
actividades, por lo menos realice alguna, es fundamental que lo haga. Si cada uno de los
participantes realiza alguna, el foro, que es una instancia clave en este tipo de cursos,
tendrá una actividad muy enriquecedora.

Asimismo, también tengan en cuenta cuando trabajen en la Web, que en ella hay de todo,
cosas excelentes, muy buenas, buenas, regulares, malas y muy malas. Por eso, es
necesario aplicar filtros críticos para que las investigaciones y búsquedas se encaminen a
la excelencia. Si tienen dudas con alguno de los datos recolectados, no dejen de consultar
al profesor-tutor. También aprovechen en el foro proactivo las opiniones de sus
compañeros de curso y colegas.

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 8

1. Introducción a bases de datos relacionales

Sobre las bases de datos

Las bases de datos son un área de la computación que recibió mucha atención debido a
sus múltiples aplicaciones: bibliotecas, automatización de oficinas, diccionarios
automatizados y en general cualquier programa orientado a mantener y recuperar
información.
A esta altura, uno puede preguntarse ¿Qué es lo interesante de usar una Base de Datos,
si yo la información también la puedo guardar en archivos de texto bien organizados? Lo
interesante de usar una base de datos como sistema para almacenar información en una
computadora, en vez de usar un simple archivo de texto en donde guardamos los datos
que nos interesan, es que a una base de datos ​se le pueden pedir datos.

Supongamos que en una Base de Datos (de ahora en más BD) tenemos un listado de
todos los teléfonos de las personas que viven en Capital Federal, y le hacemos las
siguientes preguntas:
● ¿Cuáles son los teléfonos de todas las personas de apellido Gómez?
o Como respuesta nos va a dar los teléfonos de todos los Gómez de Capital
Federal que tenga ingresados.

● Cuál es el nombre de la persona con el número de teléfono 0223-431-1343?


o En este caso como respuesta obtendremos “vacío” ya que la característica
indicada es de Mar del Plata, y esta BD sólo tiene disponible información
sobre Capital Federal, por lo tanto no puede encontrar dato alguno que
responda a nuestra consulta.

Estas ​preguntas a la BD, se realizan mediante un lenguaje llamado SQL (​Structured


Query Language – ​Lenguaje Estructurado de Consultas) y la BD nos va a responder con
datos o “vacío” si es que no encontró ningún dato que respondiera a nuestra pregunta.

Existen tres grandes tipos de Bases de Datos:


● Relacionales
● Orientadas a Objetos

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 9

● Lógicas

Si bien estos tres tipos de BD sirven para organizar la información y devolvernos


respuestas adecuadas a nuestras preguntas, el único tipo que realmente se usa en las
aplicaciones son las Bases de Datos Relacionales. La no utilización de los otros dos tipos
se debe a cuestiones avanzadas de programación porque el desarrollo de programas con
ellas es muy complicado.

Bases de Datos Relacionales

Este tipo de bases de datos consiste de varios elementos que hay que tener en cuenta:
● Tablas
o Columnas
o Filas
▪ Valores

● Campos Clave
o Relaciones

● Esquemas

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 10

2. Definición de base de datos, tablas, campos, índices


y claves foráneas

Tablas

Las bases relacionales se componen de relaciones, más comúnmente llamadas ​tablas​.


Una tabla es lo que su nombre indica, un cuadro de doble entrada en el cual se relacionan
datos. Es bastante parecido a cuando uno guarda información en una planilla de cálculo:
allí también lo hace en tablas compuestas por Columnas y Filas.

Veamos la siguiente tabla, que muestra el ranking mundial de Tenis (seguramente está
desactualizada)

Ranking
puesto nombre apellido edad nacionalidad

1 Roger Federer 25 Suizo

2 Rafael Nadal 20 Español

Davydenk
3 Nicolay o 25 Ucraniano

Estadouniden
4 James Blake 26 se

5 Ivan Ljubicic 27 Ucraniano

Estadouniden
6 Andy Roddick 24 se

7 Tommy Robredo 24 Español

Nalbandia
8 David n 24 Argentino

9 Mario Ancic 22 Croata

10 Fernando González 26 Chileno

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 11

La tabla tiene un nombre (Ranking), columnas que contienen distintos tipos de datos, y
filas, que corresponden una a cada tenista ingresado.

Columnas

Cada columna dentro de una tabla tiene un nombre único y almacenan diferente
información cada una.

En nuestra tabla Ranking, no serviría de mucho tener dos columnas llamadas “apellido”, a
no ser que las usemos para almacenar el primer y segundo apellido de los tenistas. Pero
en ese caso, deberíamos llamarlas con un nombre acorde a lo que contienen: “primer
apellido” y “segundo apellido”.

Además, cada Columna (también denominadas ​Campo)​ tiene asociado un ​Tipo de Dato​.
Es lo mismo que las variables, si vamos a almacenar texto en un campo, tiene que ser un
campo de tipo texto. En cambio, si queremos almacenar un número, tendremos que usar
un campo de tipo numérico.

Filas

Cada fila en la tabla Ranking representa a un tenista diferente. Como las filas dependen
de una tabla, todas van a tener la misma estructura, pero contenidos diferentes entre sí.
Otra vez, no tiene ningún sentido tener dos filas de Federer en nuestra tabla porque
tendrían exactamente los mismos datos.
A las filas se las suele llamar ​Registros.

Valores

Cada fila consiste de un grupo de ​valores​, los cuales corresponden a cada una de las
columnas. Como cada uno corresponde a una columna, su tipo de dato es el indicado por
la columna en cuestión.
Centro de e-Learning SCEU UTN - BA.
Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 12

Diagrama de una Tabla y sus respectivas Columnas, Filas y Valores

Claves

Como dijimos antes, cada registro (o fila) tiene que tener información diferente, porque
dos registros iguales serían generar datos de más en la BD. Ahora bien, tenemos que
tener una manera de seleccionar solamente a un registro específico.
Veamos esto con la siguiente tabla:

Clientes:
nombre apellido dirección teléfono

Pablo Martínez Rivadavia 2564 4567-9852

Diego Romar Cucha Cucha 3506 4258-6985

Alfredo Romero Pasco 1151 4587-9856

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 13

Silvia Lanzillotta Crámer 1743 4358-5874

Adelina Caraibo Charcas 4312 4562-9874

Pablo Martínez San Pedrito 111 4578-4253

Diego Gassi Virrey Olaguer 2955 4312-9098

Jorge Juana Azurduy


Darío Paley 1520 4313-4251

Nicolás Moldavsky Campichuelo 462 4125-7689

Si alguien nos preguntara si tenemos el teléfono del cliente Pablo Martínez, porque
ocurrió un problema en la entrega de un producto en su domicilio y hay que contactarse
con él, le preguntaríamos a la base de datos:

- ¿Cuál es el ​teléfono​ del ​cliente​ con ​nombre​ Pablo y​ apellido M


​ artínez?
La respuesta sería una tabla con los siguientes datos:

nombr
e apellido dirección teléfono

Martíne 4567-985
Pablo z Rivadavia 2564 2

Martíne San Pedrito 4578-425


Pablo z 111 3

La respuesta que nos devolvió la BD es totalmente válida, los dos registros cumplen con
la condición de que le pedimos: el cliente Pablo Martínez. Si se fijan, en la tabla hay dos
Pablo Martínez: Uno en la primera y otro en la sexta fila.

Para arreglar esto, tendríamos que preguntar cuál es la dirección del Pablo Martínez del
que se necesita el teléfono y volver a generar la consulta, especificando un poco más:

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 14

- ​ artínez y ​dirección
¿Cuál es el ​teléfono del ​cliente con ​nombre Pablo, apellido M
Rivadavia 2564?
Ahora la respuesta sería una tabla con los siguientes datos:

nombr
e apellido dirección teléfono

Martíne Rivadavia 4567-985


Pablo z 2564 2

Bien, logramos conseguir sólo el dato que nos hacía falta, pero tuvimos que usar muchas
condiciones para lograr que la BD nos devolviera un registro único.

Es para evitar este tipo de situaciones que se usan los capos Clave: son campos
(columnas) cuyo contenido va a ser único a lo largo de toda la tabla.
A fin de evitar que los valores que se vayan a almacenar en este tipo de campo se
dupliquen, por lo general se usan campos numéricos que la base de datos maneja
cuidándose siempre de asignar un número no usado anteriormente. Un claro ejemplo de
esto en la vida real es el DNI, el número de la tarjeta de crédito, las cuentas bancarias,
etc.

¿Cómo aplicamos esto a nuestra tabla de clientes? Lo que podemos hacer es agregar un
campo clave denominado “nro_cliente” que represente un Número Único de Cliente, el
cual utilizaremos para referirnos unívocamente a cada uno de ellos. Entonces la tabla
quedaría así:

Clientes:
nro_client
e nombre apellido dirección teléfono

4567-985
1 Pablo Martínez Rivadavia 2564 2

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 15

4258-698
2 Diego Romar Cucha Cucha 3506 5

4587-985
3 Alfredo Romero Pasco 1151 6

4358-587
4 Silvia Lanzillotta Crámer 1743 4

4562-987
5 Adelina Caraibo Charcas 4312 4

4578-425
6 Pablo Martínez San Pedrito 111 3

Virrey Olaguer 4312-909


7 Diego Gassi 2955 8

Jorge Juana Azurduy 4313-425


8 Darío Paley 1520 1

4125-768
9 Nicolás Moldavsky Campichuelo 462 9

En las Bases de Datos Relacionales, como su nombre lo indica, las ​relaciones entre las
diversas tablas que la componen tienen un rol importante. Para indicar estas ​relaciones
de una tabla a la otra, se utilizan los campos clave.

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 16

Veamos la siguiente tabla de Órdenes de Compra:

​Órdenes:
nro_pedid nro_client import
o e descripción e

1 5 50 resmas A4 600

100 lapiceras
2 1 Negras 100

22 cuadernos
3 6 Oficio 110

Si analizamos la estructura de esta tabla, nos encontramos con dos campos clave:
nro_pedido y​ ​nro_cliente.​ Con “nro_pedido” lo que logramos es identificar unívocamente
al pedido realizado, y con “nro_cliente”, podemos ubicar al cliente que realizó la compra.
Si queremos saber quién compró “50 Resmas A4”, sólo hace falta ver el Número de
Cliente que está en la columna “nro_cliente” y luego ir a la tabla Clientes para ver a quien
le corresponde ese número, que en este caso es “Silvia Lanzillotta”.

Claves Primarias y Claves Foráneas

Dentro de los campos clave, podemos diferenciar dos tipos:


● Primarias
o Son campos clave que identifican unívocamente registros que están dentro
de la tabla.
● Foráneas
o Son campos clave que permiten referenciar unívocamente a un registro que
está dentro de ​otra​ tabla.

En el caso de la tabla “Ordenes”:


● nro_pedido​ es una Clave Primaria
En este caso, el campo clave identifica a cada orden de compra, por lo tanto es
para registros que están ​dentro​ de la tabla.

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 17

​ s una Clave Foránea


● nro_cliente e
En cambio, este campo se usa para saber qué cliente es el que realizó la orden
de compra, es decir, nos sirve para identificar sin lugar a dudas el cliente de
entre todos los de la tabla “Clientes”.

Algo interesante para aclarar es que no tiene por qué haber ​sólo una
clave primaria o foránea.

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 18

Esquemas

El conjunto de todos los diseños de las tablas de una BD se llama ​Esquema.​ Vendría a
ser algo así como un plano de la Base. En el Esquema de la BD se muestran todas las
tablas, junto con sus campos y claves primarias y/o foráneas.
Los esquemas pueden mostrarse mediante diagramas informales (como los que usamos
arriba para indicar la relación entre Ordenes y Clientes), Diagramas de Entidad-Relación,
o mediante texto:

Clientes (​nro_cliente​, nombre, apellido, dirección, teléfono)


Órdenes (​nro_pedido​, ​nro_cliente,​ descripción, importe)

Con subrayado se indica la clave primaria y en cursiva la clave foránea.

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 19

3. Presentación de MySQL

STRUCTURED QUERY LANGUAGE

Es un tipo de lenguaje declarativo para el acceso a bases de datos relacionales

❖ Permite crear, modificar, y eliminar tablas, campos y relaciones


❖ Permite guardar, recuperar, buscar, actualizar, y borrar registros
❖ Permite administrar permisos de acceso a los datos

Tipos de datos

Define qué tipo de valor puede tomar un campo.

Los tipos de datos son en inglés.

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 20

Enteros

Reales

Cadena

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 21

Fecha y hora

Imágenes

Las imágenes no las guardamos en la base de datos


(guardamos un texto que indica en qué carpeta y nombre tiene)

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 22

4. Introducción y uso de XAMPP y PhpMyAdmin

XAMPP

Paquete de software libre, que consiste principalmente en el sistema de gestión de bases


de datos ​MySQL​, el servidor web ​Apache y los intérpretes para lenguajes de script ​PHP y
Perl

Tienen

● Apache
● PHP
● MySQL

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 23

PhpMyAdmin
Es una herramienta escrita en PHP con la intención de manejar la administración de
MySQL a través de páginas web.

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 24

5. Ejemplo
En el foro encontraran un enlace a un video demostración sobre la instalación y uso de
XAMPP y PhpMyAdmin.

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 25

6. Trabajo Práctico

Seguí el video ejemplo y realizar la instalación de XAMPP y configuración de


PhpMyAdmin

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 26

Bibliografía utilizada y sugerida


Express (n. d.) Recuperado de: ​https://expressjs.com/es/

MDN - JavaScript (n.d.) Recuperado de:

https://developer.mozilla.org/es/docs/Web/JavaScript

NodeJs (n. d.) Recuperado de: ​https://nodejs.org/es/

NodeJS Documentacion (n. d.) Recuperado de: ​https://nodejs.org/es/docs/

NPM (n. d.) Recuperado de: ​https://www.npmjs.com/package/page

Wikipedia - NodeJS (n. d.) Recuperado de: ​https://es.wikipedia.org/wiki/Node.js

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning
p. 27

Lo que vimos:
Base de datos: MySQL.

Lo que viene:
Conexión desde Express a una base de datos.

Centro de e-Learning SCEU UTN - BA.


Medrano 951 2do piso (1179) // Tel. +54 11 4867 7589 / Fax +54 11 4032 0148
www.sceu.frba.utn.edu.ar/e-learning

También podría gustarte