0% encontró este documento útil (0 votos)
5 vistas33 páginas

Introducción a SQL y Bases de Datos

kjjlk

Cargado por

Jesus González
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas33 páginas

Introducción a SQL y Bases de Datos

kjjlk

Cargado por

Jesus González
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 PDF, TXT o lee en línea desde Scribd

SQL

En la práctica
2021
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

SQL
En la práctica

2021

Ser un DBA es todo un reto, es como convertirse en el personaje de anime de moda y


perdurar, claro está. Un personaje de anime adquiere todas las características necesarias
para superar a otros, y perdurar en el gusto del consumidor, en el mundo de las bases de
datos, también es algo similar, el mundo en el que nos adentramos no existe físicamente,
es como una realidad alternativa, por eso no todos son elegidos para convertirse en ese
personaje de anime que domina las artes míticas del DBA.

Enfocare este libro con un toque de ideología anime, como un tipo de manga, para no
hacerlo tedioso, como ya lo comente en el párrafo anterior, tu conocerás al próximo
Personaje de Anime del mundo de Base de Datos, el cual es experto en la administración
de bases de datos, conocidos como DBA, siglas que significan Data Base Administrator,
en español; Administrador de la Base de Datos. Aunque suene descabellado, los
Desarrolladores de Software, los Administradores de Bases de Datos, los Diseñadores de
UI/UX, creamos fuertes vínculos emocionales a cada objeto que desarrollamos, incluso
los “normales” o “normies” nos ven como “raritos” o fuera de este mundo de “normies”,
y es una realidad, no pensamos igual y no vemos el mundo de la misma forma. A todos
ellos que son, o también se identifican, como yo, en ese selecto grupo de “raritos”, está
dedicado este texto.

Para adentrarnos en este texto, empezaremos por presentar a nuestro personaje


principal, como lo indique párrafos atrás; se llama Niko Mura, y ella es detallista, cuasi
romántica, y en algunos casos insaciable por el control, se desvive, por idear, modelar
crear y nutrir las más inimaginables, bien formadas y soñadas bases de datos.

Acá Imagen de NIKO MURA

Hola soy NIKO MURA, y estoy encantada de conocerte. Es un gusto que quieras
adentrarte en este mundo, yo vivo en un planeta llamado DATALIA, en donde es un caos
la información existente, así que es mi labor salvar a cada uno de los territorios de
DATALIA de este caos y robo de información. En esta historia, conocerás la teoría y
práctica, que utilizo para rescatar cada una de los territorios del malvado SASUKE
TAKAMI, quien es el líder del caos y destrucción de los territorios de DATALIA.

Una vez que ya nos presentamos, y que conocimos los problemas existentes en DATALIA,
vamos a empezar nuestro viaje, para convertirnos en un DBA.

En hora buena y feliz viaje.


Práctica 1

1
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

CONTENIDO
1 - Introducción............................................................................................................................ 3

La base de datos................................................................................................................. 5

Tablas de datos....................................................................................................................6

2 - Una aplicación práctica......................................................................................................... 9

Creación de una base de datos.........................................................................................9

El comando “create”.......................................................................................................... 16

3 - Ejemplos reales en Web y Escritorio................................................................................ 18

Conectando una App de escritorio..................................................................................18

Conectando una App Web............................................................................................... 26


SQL En la práctica

2
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

1 - INTRO

Hola de Nuevo.

Lo primero que tengo que explicarte es: cual es el significado de las siglas SQL? y porque
es importante?.

Pues bien, SQL, es el acrónimo, en idioma ingles, de Structure Query Language, traducido
al español: Lenguaje de Estructurado Consulta. En otras palabras un lenguaje que te
permite por medio de instrucciones crear objetos para almacenar información, en un
computador, móvil o dispositivo inteligente.

Por lo tanto, SQL, es algo así como un lenguaje de programación, pero de uso exclusivo
para trabajar con base de datos relacionales.

Esto responde a la primer interrogante. Pero ahora tratare de explicar Porque es


importante SQL?

SQL es un lenguaje ESTANDARIZADO A NIVEL INTERNACIONAL, es decir se usa en todas


partes del mundo sin importar el idioma que se hable en una u otra ciudad, ya que sus
códigos o instrucciones son los mismos.

Entonces, SQL es un lenguaje utilizado por miles de personas expertas en TI al rededor del
mundo, para poder Administrar las Bases de Datos.

Ahora la pregunta a responder será: Y en donde se programa o codifica este lenguaje?

Este lenguaje se codifica por medio de programas o aplicaciones especializadas que se


catalogan como Sistemas Gestores de Bases de Datos, y entre los mas utilizados
podemos encontrar: Firebird, Postgre, MariaDB, MySQL, Microsoft SQL Server, Oracle,
entre otros.

Espero haber sido muy explicita hasta aquí.

OK!. El listado anterior ya deje claro que son programas, entre las tareas que permiten
realizar son: crear y administrar Bases de Datos; y desde luego, crear y administrar los
Objetos de Bases de Datos, a estos programas los podemos llamar por sus siglas en
español SGBD, o por su nombre completo.

Bases de
Datos !!!???

Objetos de
Bases de
Datos !!!???
Práctica 1

3
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

No te preocupes, te explico.

Interfaz Gráfica de
Una aplicación Usuario (UI)
informática, está
Experiencia de
compuesta por:
Usuario (UX)

Base de Datos

Te explico.

Una base de datos es el alma de una aplicación transaccional. Esto sería el equiparable al
motor de un coche, a las turbinas de un avión, por hacer una referencia. Así que para
poder interactuar con el alma de nuestras App's debemos aprender a idearlas, modelarlas
y nutrirlas.

Ahora bien; Una base de datos es una recopilación de datos que han sido organizados
para ser accesibles y administrables, esto para hacer que el acceso a los datos sea fácil y
rápido. Los archivos de base de datos, son archivos de datos, que se utilizan para
almacenar información de algún tipo, puede ser texto, números, la mezcla de ambos,
imágenes, entre otros.

Algo así como el archivo de un documento de texto, generado por tu editor de textos
favorito, “[Link]”, el cual en su interior contiene letras, las cuales forman palabras
y frases, puede ser, que también se incluyan imágenes, para ejemplificar algo con
respecto a ese texto.

La diferencia entre los Archivos de Bases de Datos y los archivos de tu editor de textos,
radica en lo siguiente:

“Los archivos de texto, de presentaciones, de hoja de cálculo, de diseño, entre otros, se


encuentran los datos almacenados directamente, es decir al abrir el archivo los datos
están ahí. En los archivos de bases de datos, se necesitan generar un Objeto de Base de
Datos (si no eres informático, imagina que generas un archivo dentro del archivo
principal), llamado Tabla de Datos, el cual tiene un formato especifico, en donde de
modo estructurado, como si fuera una hoja de calculo podemos introducir la
información.”

Los Objetos de Base de Datos son; Tablas de Datos, Consultas, Vistas, Procedimientos
Almacenados, Disparadores, entre otros.

Los archivos de base de datos son usados comúnmente por sitios web dinámicos (p. ej.,
Facebook, Twitter, Pinterest, Instagram, etc.) para almacenar datos. Ahondaremos un
SQL En la práctica

poco más en el siguiente capítulo.

4
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

1. BASE DE DATOS
Conociendo al enemigo de mi enemigo

Realizare un ejemplo muy simple para reforzar la idea de una Base de Datos (BD, por sus
siglas).

Imagina
una caja
vacía.

Para que
la usarías?

Muy Bien !!!

En la caja podemos almacenar cosas. Algo similar hacemos en la Base de Datos, solo que
con información.

Aunque en la caja tendríamos una dificultad, son diferentes tipos de pelotas juntas, es un
desastre. Pero todo tiene solución.

Y si
catalogamos Y las
en Bolsas colocamos
cada tipo de Nuevamente
pelota? en la caja !!!

Woow !!!

Entonces las Bolsas en la Caja, vienen siendo como los Objetos de la Base de Datos, en
este caso particularmente serian las Tablas de Datos, las cuales en un modo estructurado,
como si fuera una hoja de calculo, nos permite introducir información de forma ordenada.

Ahora bien, una vez comprendido el concepto de Base de Datos, nos adentraremos al
tema de Objetos de Base de Datos, para conocer mejor cada uno de estos objetos.
Práctica 1

5
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

2. TABLAS DE DATOS
Los Objetos de Base de Datos - Parte 1.

Esta es una
La cual
Tabla !!!
tendrás si
no pones
atención!!!

Una Tabla de Datos, son objetos de base de datos, que pueden contener datos,
organizados en formato de filas y columnas, similar al de una hoja de cálculo. Cada
columna tiene la capacidad de almacenar un dato por fila, del mismo tipo de dato, por
ejemplo la clave de la CURP, a cada columna se le denomina CAMPO. Cada fila
representa un registro, el cual es único, y está conformado por cada uno de los datos de
cada columna en esa fila.

Te lo resumo...

Justo como en la hoja de cálculo, se tiene una primer fila, la cual está reservada para el
nombre que se le dará a cada uno de los campos. Y como vimos en la imagen anterior,
justo debajo se almacenan los datos.

ID Nombre Edad Sexo


SQL En la práctica

0001 Emily 21 F
0002 Gesell 18 F
0003 Alberto 22 M

6
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

0004 Mario 21 M
0005 Serena 20 F

En la imagen te Y puedes ver que


muestro como es una existen 4 CAMPOS: ID,
Tabla de Datos. Nombre, Edad y Sexo.

Ademas de existir 5
registros. Con 4 datos
por registro.

Cada registro, está compuesto por datos independientes, pero; RELACIONADOS ENTRE SI.
En otras palabras, el dato del Sexo, está relacionado a un Nombre en particular, también
la Edad, se encuentra relacionada al Nombre. En la imagen anterior los nombres no se
repetían, como sucede realmente en un pueblo, ciudad o territorio, para evitar tener
problemas al buscar algún nombre de una persona en particular, creamos como PRIMER
CAMPO, uno que tenga una clave como en el ejemplo.

Y así, de esta manera podemos reconocer a esa persona con mayor facilidad, al fin cada
una de ellas, tiene asignado un número, en este caso reconocido como ID. A este campo
de le llama Llave Primaria.

Felicidades !!!! Ahora, solo nos


falta algo más, y
Ya entendimos lo básico.
no es menos
importante... Así
que...

Es importante saber que en una Base de Datos, existen más de una Tabla de Datos, ya
que así, son las necesidades de los Sistemas Informáticos. Esta tabla, así como todas las
demás que deban ser generadas en la Base de Datos, necesitan de un nombre, único e
irrepetible, ya que gracias a ese nombre podremos entrar a ella y acceder a sus registros.

Jugadores
ID Nombre Edad Sexo
Práctica 1

7
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

- Como puedes verlo en la imagen anterior, yo he nombrado a la tabla “Jugadores”, la


cual tiene los campos: “ID”, “Nombre”, “Edad” y “Sexo”.

Como lo dije al principio de este texto, este es uno de los Objetos de Bases de Datos, los
demás los veremos en capítulos posteriores, empecemos por lo primero.

Por ultimo, es muy conveniente explicar que la administración de Bases de Datos, de ka


que he hablado desde el principio, se refiere a las tareas de: inserción de datos nuevos,
modificación, eliminación y ordenamiento de datos existentes, ademas de poder
consultar algunos o todos los datos existentes en una base de datos, entre muchas otras
tareas más.
SQL En la práctica

8
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

3. NUESTRO PRIMER RETO

Antes de cualquier cosa, creo que debemos de conocernos un poco más, ya que el resto
de información será absorbente.

Yo vengo del norte de DATALIA, de un territorio llamado DhaonTao, es un territorio muy


industrializado, yo pertenezco a un grupo de expertos en Sistemas Informáticos, que
ayudaron a mi territorio a ordenar toda la información por medio de técnicas de Análisis
de Datos, y posteriormente la aplicación de Administración de Bases de Datos, la cual
había sido corrompida por SASUKE TAKAMI.

Fue una labor que nos llevo varias lunas, y ahora hemos decidido mis compañeros y yo,
colaborar con los demás territorios afectados por el malvado SASAUKE, para formar a los
próximos expertos de cada territorio.

Estas listo?

Estoy caminando con rumbo al territorio Mahogany, se encuentra localizado en el sureste


de DATALIA. Es un territorio medianamente pequeño, cuenta con solo 1550 familias, 3
escuelas, 2 hospitales, 1 estación de bomberos y 2 estaciones de policía. Fue atacado por
SASUKE y sus fieles seguidores y toda la información dejo de existir, por lo tanto nada de
los servicios existentes llevan un control adecuado de ésta, regresaron a hacer todo en
formatos de papel. Y los anteriores expertos en Análisis de Datos y Administradores de
Bases de Datos, desaparecieron sin dejar huella.

Nuestra primera tarea aquí consiste en: “Diseñar una solución que permita al jefe del
territorio Mahogany, tener el control de las personas que son nativas del territorio, las
cuales al nacer, se registran por medio de un certificado de nacimiento,en papel, en el
cual se les asigna un número de identificación, llamado IDN, el cual es único para cada
habitante del territorio, así que el hospital es quien debe de tener ese registro.

Los pormenores que registran al habitante son, su nombre o nombres, apellido paterno y
apellido materno, sexo, fecha de nacimiento, el lugar de nacimiento, reino al que
pertenece, IDN Paterno, IDN Materno, Fecha de Registro, Huellas Dactilares ”.

- Ahora tenemos un problema real. ! Que bien ¡

Manos a la obra.
Práctica 1

9
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Cualquier otro pensaría en correr inmediatamente, para ubicar un computador y sentarse


frente a el, para realizar todo lo solicitado, sin tiempo que perder en un SGBD. Pero, eso
no sería lo correcto. Te explico a continuación.

Existen
Existen 3 etapas
etapas muy
de diseño:
importantes,
antes de
* Conceptual.
poder llegar
a la creación
* Lógico.
de una Base
de Datos * Físico.

QUE !

- Tranquilo, vamos a aclarar este punto, paso por paso.

Empezaremos entonces con nuestro Diseño Conceptual, así que pon mucha atención.
Este diseño consta de “dibujitos” que ilustran los objetos que deberán de conformar
nuestra Base de Datos.

El primer paso es darle nombre a nuestra Base de Datos. El nombre es importante, yo


recomiendo que el nombre tenga algo de relación con el problema a solucionar. Por
ejemplo, en este caso se requiere: “Diseñar una solución que permita al jefe del territorio
Mahogany,.....”, por lo tanto, nosotros llamaremos a nuestra Base de Datos:
Mahogany_BD.

Ahora bien, los “dibujitos”, que mencione hace dos párrafos, se representan por medio de
un Diagrama Entidad-Relación (DER), también conocido como Modelo Entidad
Relación (MER), es un tipo de diagrama de flujo, el cual ilustra que las "Entidades", como
personas, objetos o conceptos, se relacionan entre sí, dentro de un sistema.

Y los DER son


SQL En la práctica

Importantes?

10
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Los DER, se usan a menudo, para diseñar o depurar bases de datos relacionales, en los
campos de ingeniería de software, sistemas de información empresarial, educación e
investigación.

Emplean un conjunto definido de símbolos, como: rectángulos, rombos, óvalos y líneas


de conexión, estas últimas, para representar la interconexión de Entidades, Relaciones y
sus Atributos. Son un reflejo de la estructura gramatical y emplean entidades como
sustantivos y relaciones como verbos.

Entidades?
Woooow !!! Relaciones?
Símbolos?

Analicemos de nuevo nuestra tarea, pero señalicemos nuestros sustantivos y verbos:

“Diseñar una solución que permita al jefe del territorio Mahogany, tener el control de las
personas que son nativas del territorio, las cuales al nacer, se registran por medio de un
certificado de nacimiento,en papel, en el cual se les asigna un número de identificación,
llamado IDN, el cual es único para cada habitante del territorio, así que el hospital es
quien debe de tener ese registro.

Los pormenores que registran al habitante son, su nombre o nombres, apellido paterno y
apellido materno, sexo, fecha de nacimiento, el lugar de nacimiento, reino al que
pertenece, IDN Paterno, IDN Materno, Fecha de Registro, Huellas de Dactilares”

Sustantivos Verbos
Personas nacer
Certificado de Nacimiento registran
Numero de Identificación
Territorio
Hospital
Nombre o Nombres
Apellido Paterno
Apellido Materno
Sexo
Fecha de Nacimiento
Lugar de Nacimiento
Reino al que pertenece
IDN Paterno
IDN Materno
Fecha de Registro
Huellas de Dactilares

- Ahora puedes ver en las columnas 2 verbos y 16 sustantivos. Lo importante aquí es


realizar una adecuada conceptualización de los datos obtenidos. Los sustantivos se
convertirán en Entidades/Campos y los verbos se convertirán en Relaciones.
Práctica 1

11
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Llego el tiempo de hablar de las


Entidades.

No son otra cosa, más


que las Tablas de Datos
de nuestra Base de
Datos.

Solo que se les nombra


Entidades en la Etapa
de Diseño Conceptual.

Las ENTIDADES, representan cosas u objetos (ya sean reales o abstractos), que se
diferencian claramente entre sí.

Recuerdas que mencione SIMBOLOS a utilizar, para diseñar los DER?

Bueno, a cada ENTIDAD la identificaremos con un rectángulo y dentro de


este colocaremos su nombre. Así que; analizando la columna de Sustantivos,
encontramos uno muy especifico Certificado de Nacimiento, lo cual es realmente lo que
se nos esta solicitando,registrar los habitantes que nacen en el territorio y generar su
certificado de nacimiento, mediante ese registro. Entonces generaremos nuestra primer
entidad con el nombre de MBD_Cert_Nac, lo cual es una contracción de las frases
Mahogany_BD y Certificado de Nacimeinto.

Así que, nuestra primera entidad será algo así:

MBD_Cert_Nac

Siguiendo con nuestro análisis de la columna de sustantivos, pues marcaremos los


utilizados y desecharemos aquellos que no tienen valor para una Entidad. Pero como
vamos a saber cuales no tienen valor para nuestra Entidad? Eso será un poco mas facil de
lo que parece.

En el texto de la tarea asignada, se incluyen por defecto, algunos datos que se desean
registrar de los nacimientos, los cuales marcaremos con un . Y las repeticiones las
eliminaremos, como en el caso de Territorio y Lugar de Nacimiento, dejaremos el primero
y eliminaremos el segundo. Y Personas, también será eliminado, ya que la lógica dice que:
Todos estos datos que formaran el Certificado de Nacimiento, es referente a las personas.

Sustantivos
Personas
Certificado de Nacimiento
SQL En la práctica

Numero de Identificación
Territorio
Hospital

12
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Nombre o Nombres
Apellido Paterno
Apellido Materno
Sexo
Fecha de Nacimiento
Lugar de Nacimiento
Reino al que pertenece
IDN Paterno
IDN Materno
Fecha de Registro
Huellas de Dactilares

De esta manera, ya tenemos analizados todos los datos de la columna de sustantivos y ya


sabemos cuales si formaran parte de nuestra Entidad y cuales no.

Pero, estos
datos que
son?

- Esa es muy buena pregunta.

Estos datos conformarán los atributos de nuestra Entidad. En otras palabras, los datos
que almacenaremos.

A cada entidad le colocaremos sus respectivos atributos y resaltaremos el atributo


principal, aquél atributo que identificará cada registro de manera única. A menudo se
muestra como un óvalo o círculo.

Algo así, quedaría al final.

IDN IDN_Paterno

Nombre
IDN_Materno

Ap_Pat MBD_Cert_Nac
Fecha_Reg

Ap_Mat
Territorio

Sexo
Reino
Práctica 1

FDN
H_Dactilares Hospital

13
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Y por último crearemos las relaciones que existen entre dichas entidades. Siendo muy
sinceros, esta fase no la hacemos a conciencia (me incluyo), pero lo pueden combinar con
la siguiente fase muy fácilmente. Aquí no te preocupas por el motor de bases de datos
aún.

Creación de una base de datos

Podemos crear una base de datos desde un gestor de bases de datos así que, entramos a
la interfaz de nuestro gestor preferido. Yo en mi caso usaré un gestor web, en esta
ocasión, el gestor de MariaDB. Para ello usare un Navegador web y digitaré en el cuadro
de direcciones (URL): [Link]/phpmyadmin, para poder entrar a la interfaz gráfica que
me permita conectar con el gestor MariaDB.

Como mencioné en el párrafo anterior, usare la interfaz gráfica de phpMyAdmin, no es la


única, pero es la más habitual, en el uso estudiantil.

[Link], nos permite acceder al servidor local de nuestra maquina, que es


donde se emula el servidor web, aquí, es donde yo doy por hecho que ya
tienes instalado el gestor de base de datos (escritorio y/o Web).

Una vez digitada la url al servidor web emulado, se mostrara la interfaz de


acceso principal, si así esta especificado, si entra de forma directa, seguirás
este tutorial en hojas siguientes.
SQL En la práctica

14
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Una vez entrando debemos digitar el usuario y contraseña, para entrar en la


interfaz gráfica de phpmyadmin.

La interfaz gráfica de phpmyadmin, no es complicada de usarse, por tal motivo


no ahondare en su explicación, empero si guiaré al lector en la realización de
las tareas propias de estas prácticas.
Ubiquemos en la la pagina de inicio de phpmyadmin, cada elemento, en el
extremo izquierdo de tu pantalla encontraras el “Panel Principal”, donde se
mostraran todos los objetos de base de datos que se encuentren creados en
este servidor web (ver imagen en pagina siguiente).
En la parte central encontramos el “Área General de Trabajo”, donde se
mostraran todas las herramientas de esta interfaz gráfica, para
MariaDB/MYSQL. En la parte superior de esta parte, encontraras una barra de
menús donde encontraremos los accesos a las herramientas comunes que
proporciona phpmyadmin.
Práctica 1

15
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Barra Menú

Panel Principal
Área General

Entraremos a la consola de SQL, dando click en la pestaña SQL de la Barra de


Menú. Con lo cual podremos observar una interfaz como esta.

Es el depurador de consultas SQL de phpmyadmin,en el cual podremos


escribir los códigos SQL en la caja de texto correspondiente y para aceptar y
depurar la consulta SQL el botón Continuar.

EL COMANDO “CREATE”
El comando CREATE, permite crear diferentes objetos de bases de datos,
incluyendo la propia base de datos.
La sintaxis para usar este comando, para crear la base de datos es:

CREATE database Nombre_BD


SQL En la práctica

16
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Primero el comando CREATE, seguido del tipo de objeto de base de dato, en


este caso database, y al final el nombre de la base de datos que vamos a
asignar, sin espacios, ni símbolos raros.
Empecemos con el ejemplo:
Crearemos la base de datos CoffeeDrops, para ello, teclearemos el siguiente
código y posteriormente presionamos el botón continuar.

Create database CoffeDrops

Este mensaje indica en otras palabras que; el comando ha sido procesado de


satisfactoriamente y por ende la base de datos se ha creado. En caso de tratar
de ejecutar nuevamente el mismo comando, obtendremos un error como el
siguiente.

Es muy importante que leas e interpretes los mensajes de error de principio a


fin para que los entiendas, en este caso, nos indica: Can't create database
'CoffeeDrops'; database exists, traducido al español, “No se puede crear la
base de datos ‘CoffeeDrops’, la base de datos ya existe”.
Como podemos comprobar que realmente nuestra base de datos CoffeeDrops,
fue creada. Observemos el Panel Principal (a tu izquierda) y en el listado de
objetos encontraras la base de datos CoffeeDrops.

Ya dije 2 párrafos arriba, que al volver ejecutar la instrucción tendremos un


error, por duplicidad de objeto. Eso lo podemos solucionar de una manera muy
fácil.
Práctica 1

17
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Create database if not exists CoffeeDrops

Esta instrucción permite crear la base de datos SINO EXISTE, y si existe no


genera un error, sino un warning, sin sobre-escribir la Base de Datos existente.
Si queremos ver por medio de la consola, las bases de datos creadas en el
servidor local, podemos utilizar el siguiente código.

Show databases

Y mostrando como resultado un tabular como el siguiente.

Para hacerlo en SQLServer de Microsoft, tendriamos que colocar el siguiente


código.
SELECT name, database_id, create_date
FROM [Link];

3 - EJEMPLOS REALES EN WEB Y ESCRITORIO.

CONECTANDO UNA APP DE ESCRITORIO


Ahora vamos a conectarnos con el server de MariaDB / MySQL, desde una
aplicación en Lazarus (la versión Open Source de Delphi). Usaré un formulario
estilizado para contener los siguientes datos; Usuario, Contraseña, Servidor,
Puerto y Catalogo, los cuales cargare en las cajas de texto al iniciar la App.
SQL En la práctica

18
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

En este punto es bueno aclarar que, el sistema nativo de base de datos de


Lazarus / Delphi, es FireBird / Interbase, entonces es necesario instalar el
driver ad-hoc para MySQL / MariaDB, lo cual no es complicado, una googleada
nos proporciona la solución.
Manos a la obra; en esta ocasión manejaremos los datos de conexión escritos
directamente en las cajas de texto, aunque esto no es necesario, pero es para
fines prácticos.
Generemos el evento OnCreate del Formulario.

procedure [Link](Sender: TObject);


begin

end;

Digitaremos dentro de este evento las siguientes lineas. Toma en cuenta que
los datos que coloqué son mi usuario y mi contraseña

procedure [Link](Sender: TObject);

begin

[Link]:= 'root'; Usuario

[Link]:= '99130440'; Contraseña

[Link]:= 'localhost'; Servidor

[Link]:= '80'; Puerto

[Link]:= 'mysql'; Catálogo de Conexión


end;

Antes de continuar debemos de agregar un par de componentes (controles para aquellos que
usan VS) en nuestro formulario, nos servirán para poder conectar la APP con el Gestor de Base
de Datos.

Así que; en la Paleta de Componentes ubicaremos la llamada SQLdb. Y agregaremos un


componente MySQLConnection50 a nuestro formulario.

Ahora crearemos el evento OnClick del Botón “Conectar”. El cual nos servirá
para poder asignar los valores por código a nuestro MySQLConnection50
para conectar con nuestro gestor.
procedure TForm1.Button2Click(Sender: TObject);
begin
Práctica 1

19
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

end;

Y en el codificaremos las lineas que nos permitirán realizar la conexión de


nuestra App con MariaDB / MySQL, como dije anteriormente.
procedure TForm1.Button2Click(Sender: TObject);
begin
try
begin
[Link];
[Link] := [Link];
[Link] := [Link];
[Link] := [Link];
[Link] := StrToInt([Link]);
[Link]:= [Link];
[Link];
[Link] := 'Conectado';
MessageDlg('Conexión realizada con éxito.',
mtInformation, [mbok], 0);
end;
except
raise;
[Link] := 'Error en la conexión';
MessageDlg('Problemas al realizar la Conexión.',
mtInformation, [mbok], 0);
end;
end;

En este caso usé un manejador de excepciones, Try - Except, en el cual


intentaremos realizar la conexión al Gestor de Base de Datos, si una de las
lineas de código falla o provoca un error, se interrumpe y pasa al bloque del
SQL En la práctica

Except, en el cual indicamos al usuario que existió un “Error en la conexión” .

20
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

[Link]; Cierra la conexión hacia el Gestor de la Base de


Datos, se tiene que hacer para evitar un conflicto de apertura doble, es decir
que no se encuentre abierto el Gestor de Base de Datos.
[Link] := [Link]; Asignamos el valor contenido
en la caja de texto, a la propiedad UserName de nuestro componente de
conexión al Gestor de Bases de Datos, el cual es el usuario de el propio gestor.
Normalmente, si la instalación del Gestor fue sucia, el usuario se llamará “root”.
[Link] := [Link]; Asignamos el valor contenido en
la caja de texto, a la propiedad Password de nuestro componente de conexión
al Gestor de Bases de Datos, el cual es la contraseña del propio gestor. La
contraseña de acceso al Gestor, depende puramente de cada uno de nosotros.
[Link] := [Link]; Asignamos el valor contenido
en la caja de texto, a la propiedad HostName de nuestro componente de
conexión al Gestor de Bases de Datos, el cual es el nombre del servidor web
donde se encuentra instalado el Gestor de Bases de Datos. Generalmente, si la
instalación fue sucia, el nombre de tu servidor será “localhost”.
[Link] := StrToInt([Link]); Asignamos el valor
contenido en la caja de texto, a la propiedad port de nuestro componente de
conexión al Gestor de Bases de Datos, el cual es el numero de puerto del
servidor web. Generalmente, si no ha sido administrado el servidor, será el
puerto “80”.
[Link]:= [Link]; Asignamos el valor
contenido en la caja de texto, a la propiedad DatabaseName de nuestro
componente de conexión al Gestor de Bases de Datos, el cual es el nombre de
la Bases de Datos a la cual nos vamos a conectar. Yo seleccione el catalogo
base de MariaDB / MySQL “mysql”.
[Link]; Abrimos la conexión con el servidor, con los
parámetros asignados, sino son incorrectos todo el código siguiente continuará.
En caso contrario puede quedarse pasmada la App.
[Link] := 'Conectado'; Cambiamos el letrero del Botón “Conectar”,
a “Conectado”, porque en teoría, ya se conectó al servidor y a la base de datos.
MessageDlg('Conexión realizada con éxito.', mtInformation, [mbok], 0);
Mandamos un mensaje al usuario para que sepa que ya se conectó al servidor.
La parte del Except, nos permite mandar un mensaje de error al usuario, para
indicar que la conexión no se pudo realizar.

Llegó la hora de probar esta parte de la aplicación, como los datos de conexión
son correctos, obtendremos el mensaje de “Conexión realizada con éxito”, tal
y como se puede ver en la imagen de la página siguiente.
Práctica 1

21
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Supongamos que los datos de conexión son incorrectos, obtendremos el


mensaje de “Problemas al realizar la Conexión.”, tal y como se puede ver en
la imagen de la página siguiente.

Lo haremos más profesional, al tratar de cargar la App, justo después de


intentar la conexión al server, con un poquitín de cambios al formulario.
SQL En la práctica

22
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Entre los cambios que realizare, serán eliminar el código del evento click del botón “Conectar”
y el propio botón “Conectar”. Coloque una imagen en el formulario y la adapte al contenedor
central.
El código del evento OnCreate del Formulario, lo edite quedando de la siguiente manera.

try
begin
[Link];
[Link] := 'root';
[Link] := '99130440';
[Link] := 'localhost';
[Link] := 80;
[Link]:= 'mysql'; ;
[Link];
MessageDlg('Conexión realizada con éxito.', mtInformation,
[mbok], 0);
end;
except
MessageDlg('Problemas al realizar la Conexión.', mtError, [mbok],
0);
end;
En otras palabras, coloque los valores de conexión de forma directa a las
propiedades del componente MySQLConnection.
Ahora al momento de ejecutar la App, primero intentará hacer la conexión al
server. En caso de conectarse sin problema obtendremos el siguiente resultado.

Y posteriormente al hacer click sobre el botón “Aceptar”, se mostrará la ventana principal, ya


tuneada, de nuestra App.
Práctica 1

23
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Recordemos que en este punto la base de datos aun no se crea, así que vamos a crearla.
Para poder crear nuestra base de datos por código, necesitaremos agregar un componente
llamado SQLQuery, y un componente llamado SQLTransaction, que los encontraremos en la
pestaña SQLdb de la Paleta de Componentes.

Este control nos permitirá, trabajar en conjunto con el SQLConnection, colocado con
anterioridad, para poder interpretar y ejecutar, todas las instrucciones del lenguaje SQL, en
este caso para poder crear la base de datos. Así que configuremos el primer componente. Una
vez seleccionado el SQLQuery, buscaremos en sus propiedades aquella llamada Database, y
seleccionaremos MySQLConnection1, el componente de conexión a MariaDB / MySQL. Ahora
buscaremos la propiedad llamada Transaction y elegiremos de la lista SQLTransaction1.
Llegó la hora de codificar o mejor dicho actualizar nuestro código, que se encuentra en el
evento OnCreate, el cual quedará de la siguiente manera (solo el código en azul se anexó al ya
existente).
try
begin
[Link];
[Link] := 'root';
[Link] := '99130440';
[Link] := 'localhost';
[Link] := 80;
[Link]:= 'mysql'; ;
[Link];
MessageDlg('Conexión realizada con éxito.', mtInformation, [mbok], 0);
SQL En la práctica

end
except
MessageDlg('Problemas al realizar la Conexión.', mtError, [mbok], 0);

24
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

end;
try
begin
[Link];
[Link];
[Link]('create database if not exists CoffeeDrops);
[Link];
end;
except
MessageDlg('Problemas al crear la base de datos. Lo sentimos', mtError, [mbok],
0);
[Link]();
end;

Una vez que se conectó al servidor, por medio del primer try - except, éste
segundo bloque, servirá para crear la base de [Link]í que entendamos las
lineas de código.
[Link]; Terminamos la consulta SQL que pudiese estar activa.
[Link]; Eliminamos cualquier código SQL que se encuentre
definido en la propiedad SQL.
[Link]('create database if not exists CoffeeDrops);
Agregamos la(s) linea(s) de código SQL que deseamos definir y ejecutar en el
servidor, en este caso, crear la base de datos CoffeeDrops sino existe.
[Link]; Y por ultimo ejecutamos la instrucción SQL.

En caso de que algo falle en el try, tenemos preparado nuestro mensaje de


error y una nueva instrucción, [Link](); la cual termina el
proceso de la App, en la memoria de nuestra computador, así que nuestra
aplicación se cierra. Esto lo hacemos así porque, no tiene caso continuar con la
App abierta intentando conectar una y otra vez en el servidor y realizar las
tareas SQL.
Accediendo a nuestro servidor web podemos observar que en la opción bases
de datos, se mostrara el listado de estas, incluyendo la recién creada
CoffeDrops.
Práctica 1

25
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

CONECTANDO UNA APP WEB


En hora buena, ahora terminamos una pequeña app en Lazarus (aunque
también funciona en Delphi) que permite crear una Base de Datos en nuestro
servidor local. Llegó el momento de hacerlo para una aplicación web basada en
HTML5 + CSS3 + JavaScript + PHP.

La AppWeb que acontinuación realizaré, consta de lo siguiente.

Crearé una carpeta, la cual yo llamaré CD (CoffeeDrops), y que estará


almacenada en servidor web local. Y con ayuda de un editor de código web
como Brackets, en mi caso, aunque puede ser SublimeText o cualquier otro,
crearemos el archivo principal de nuestra AppWeb de instalación. El archivo se
llamara index y sera de tipo php.

Como pudiste ver en la imagen anterior, ahora eh creado una carpeta justo
dentro de la carpeta raíz CD, con el nombre de instalación, pero no nos
desviemos de lo primero, el archivo index.

En el archivo [Link], que actualmente tenemos vacio, generamos la


estructura básica de un archivo php, y posteriormente definimos 4 variables
para albergar los datos de conectividad al servidor web de MariaDB / MySQL.
En este caso $server, $username, $password y $database_name. Los
SQL En la práctica

valores que asignaremos a cada una de estas variables, son los propios de su
servidor web (los mismo que usamos en la App Lazarus), la unica diferencia es
que ahora trataré de conectarme directamente a CoffeeDrops, nuestra base
de datos, por lo cual no deberá de existir en nuestro server.

26
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Agregaremos un bloque Try - Catch, algo similar al de Lazarus/Delphi, con el


cual podremos intentar la conexión al Servidor con nuestro catalogo, y
continuar hacia la pagina de Login, si algo falla en la conectividad hacia el
Servidor, interrumpimos y mandamos pantalla de error. El código completo se
muestra después de la imagen del Try - Catch.

El bloque Try, deberá de contener el siguiente código.


try
{
$con = new PDO('mysql:host='.$server.';dbname='.$database_name,
$username, $password);
header('Location:[Link]');
}

Definimos la variable con (acrónimo de conexión), creamos la instancia a la


clase PDO, sin importar el controlador que usemos. El constructor, que
generamos, acepta parámetros para especificar el origen de la base de datos
(conocido como DSN) y, opcionalmente, el nombre de usuario y la contraseña
(si la hubiera), los cuales ya tenemos en las variables previamente declaradas.
En otras palabras, en esta linea realizara el intento de conexión al servidor con
los datos ya especificados. Si todo esta bien continuará con la siguiente linea.

La función header( ) envía una cabecera HTTP pura a un cliente. Es


importante notar que la cabecera header( ), debe ser llamada antes de enviar
cualquier salida real. En este caso mandaremos a header la url de nuestra
pagina de [Link], la cual aún no tenemos generada e indicará que la
conexión fue satisfactoria.

Ahora codificaremos el bloque Catch.

catch (PDOException $e)


{
if($e->getCode()==1049)
Práctica 1

27
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

{
header('Location:instalacion/install_1.php');
}
else
{
echo "Problemas de conectividad con el servidor. Disculpe las
molestias.";
}
die();
}
$con =null;

El parametro e, que se encuentra en la definición catch, es definido de tipo


excepción PDO, para poder capturar el valor resultante de ejecutar la
instrucción PDO del bloque try (contemplando que esta falló), en este caso el
valor resultante será 1049, en caso de que la base de datos no se encuentre
registrada en el Servidor Web, contemplemos que si deseamos validar la
contraseña será el valor 1045, pero para fines prácticos, no nos importa por el
momento.
Como es de suponerse, validaremos el código resultante por medio de un IF, si
es este valor el encontrado por la excepción, entonces quiere decir que la base
de datos no se ha creado, y por lo tanto nuestra AppWeb la creará en la
siguientes interfaces. Para ello dentro del bloque IF, lanzamos la pagina
install_1.php, la cual aún no creamos y se encontrará dentro de la carpeta
instalación.

En el bloque ELSE, solo mandamos a pantalla un mensajito al usuario,


indicando que existen algunos problemas de conectividad, aquí debemos
contemplar que; en una AppWeb formal debemos incluir en lugar del mensaje
simple un mensaje estilizado o una pagina de error diseñada para la muerte del
proceso.
Por último, fuera del bloque ELSE, utilizaremos el método die( );, para terminar
cualquier tipo de conectividad con el servidor. Y justo fuera del Catch,
eliminamos los datos de conexión.
SQL En la práctica

En forma de resumen, recordemos que este archivo [Link], solo permite


conectarse al Servidor y evaluar si la Base de Datos existe, si es así, lanzará la
página de [Link], en caso de no existir la Base de Datos, lanzará la primer

28
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

pagina del instalador, llamada Install_1.php, la cual tiene la siguiente interfaz


gráfica de usuario.

Después de una perorata, típica de programador, de este simple instalador


continuemos, tengo dos botones en donde podre hacer click, me interesa
Instalar.
Nos encontramos ahora en esta interfaz ya que, no existe base de datos
creada, en nuestro caso CoffeeDrops. El código de install_1.php se muestra
a continuación en forma de imagen, excepto el código CSS.

Práctica 1

29
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

El botón instalar solo lanza la apertura de install_2.php, el cual permite


ejecutar la instrucción SQL para crear la Base de Datos CoffeeDrops. Asi que
vamos a verlo.

Como puedes ver, lo único que contiene, a diferencia de install_1.php, es el DIV carbonForm y
un fragmento de código embebido de php, el cual solo manad abrir e interpretar el archivo
[Link], el cual se encontrará en una carpeta llamada php, misma que crearemos al
interior del folder llamado instalacion.
Entonces, vamos a crear un nuevo archivo llamado creacion,php, y lo almacenamos en el
folder antes descrito.
Como podrás ver en la imagen de la pagina siguiente, definimos las variables de conexión al
servidor, con el valor mysql, en el nombre de la base de datos, ya que necesitamos
conectarnos al server para crear la base de datos CoffeeDrops.
Nuevamente usaremos un bloque Try - Catch, para hacer la conexión al servidor por medio de
PDO y despues realizaremos la consulta SQL, para crear la base de datos CoffeeDrops.
SQL En la práctica

30
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

En este punto, linea 10, la conexión al servidor ya se realizó, y dicha conexión esta activa en
$con, por esta razón, usamos query( ), con nuestra variable de conexión y el código que ya
conocemos para crear la base de datos.
El resto son solo mensajes embebidos de HTML-CSS, para indicar que la base de datos ya fue
creada, por ultimo usamos nuevamente header( ); pero con un pequeño cambio, no solo
lanzaremos una pagina, sino que lo haremos con un tiempo de 3 segundos, en este caso
lanzaré a [Link], que permitirá crear las tablas los datos por defecto que deberá de
contener nuestro sistema de bases de datos. Pero en este punto será suficiente, para probar
que funciona y crea la base de datos CoffeDrops, en caso de existir nos mandara a log_in.html,
así que por último crearé dicho archivo.

Práctica 1

31
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS

Listo, en este punto ya creamos una aplicación de escritorio y una web, que permiten
conectarse al Servidor de MariaDb / MySQL y crear una base de datos, no existente, algo así
como un instalador.

Puedes contactarme a ribugonzalez@[Link], si tienes alguna duda con el


documento.
SQL En la práctica

32

También podría gustarte