Introducción a SQL y Bases de Datos
Introducción a SQL y Bases de Datos
En la práctica
2021
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS
SQL
En la práctica
2021
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.
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.
1
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS
CONTENIDO
1 - Introducción............................................................................................................................ 3
La base de datos................................................................................................................. 5
Tablas de datos....................................................................................................................6
El comando “create”.......................................................................................................... 16
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.
Entonces, SQL es un lenguaje utilizado por miles de personas expertas en TI al rededor del
mundo, para poder Administrar las Bases de Datos.
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 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
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?
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.
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
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.
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 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.
8
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS
Antes de cualquier cosa, creo que debemos de conocernos un poco más, ya que el resto
de información será absorbente.
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?
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 ”.
Manos a la obra.
Práctica 1
9
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS
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 !
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.
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.
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.
Entidades?
Woooow !!! Relaciones?
Símbolos?
“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
11
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS
Las ENTIDADES, representan cosas u objetos (ya sean reales o abstractos), que se
diferencian claramente entre sí.
MBD_Cert_Nac
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
Pero, estos
datos que
son?
Estos datos conformarán los atributos de nuestra Entidad. En otras palabras, los datos
que almacenaremos.
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.
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.
14
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS
15
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS
Barra Menú
Panel Principal
Área General
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:
16
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS
17
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS
Show databases
18
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS
end;
Digitaremos dentro de este evento las siguientes lineas. Toma en cuenta que
los datos que coloqué son mi usuario y mi contraseña
begin
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.
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;
20
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS
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
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.
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.
25
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS
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.
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
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;
28
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS
Práctica 1
29
BASE DE DATOS PARA APLICACIONES INFORMÁTICAS
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.
32