0% encontró este documento útil (0 votos)
92 vistas15 páginas

Introducción a Bases de Datos y SQL

Este documento provee una guía de estudio sobre bases de datos y sistemas de gestión. Explica que un sistema de gestión de bases de datos consta de código y datos, y que el SGBD se especializa en la persistencia y manejo de datos. También describe características como ACID, el lenguaje SQL, y cómo modelar datos conceptualmente usando entidades, atributos y relaciones en diagramas como UML. Finalmente, introduce el lenguaje SQL para interactuar con bases de datos.

Cargado por

DavidGonzalez
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)
92 vistas15 páginas

Introducción a Bases de Datos y SQL

Este documento provee una guía de estudio sobre bases de datos y sistemas de gestión. Explica que un sistema de gestión de bases de datos consta de código y datos, y que el SGBD se especializa en la persistencia y manejo de datos. También describe características como ACID, el lenguaje SQL, y cómo modelar datos conceptualmente usando entidades, atributos y relaciones en diagramas como UML. Finalmente, introduce el lenguaje SQL para interactuar con bases de datos.

Cargado por

DavidGonzalez
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

CÁTEDRA: TECNOLOGÍA DE LA INFORMACIÓN II

Guía de estudio

Introducción a las bases de datos en sistemas de gestión

En esta guía se usará una base de datos de ejemplo basada en un sistema de gestión de venta de productos
farmacéuticos muy simplificado.

Esta información Junto a las clases en donde se vieron los sistemas de información nos van a ayudar a
abarcar como funciona e implementa un software de gestión en los distintos niveles organizacionales de una
empresa.

Cualquier software o programa está formado por al menos dos componentes fundamentales “código” que
son las instrucciones lógicas que deberán ejecutar una computadora y “datos”.

En nuestra actualidad la parte de datos se ha especializado al punto de necesitar código especializado que la
gestione independientemente de la lógica con la que cuente el sistema de gestión.

Esa parte del software especializada en la persistencia y manejo de datos se denomina sistema gestor de
bases de datos o SGBD. Muchos productos de software implementan diversos estándares que son deseables
para que sea sencillo manejar grandes volúmenes de datos, que la información sea consistente, que sea
perdurable en el tiempo y muchas otras características.

En el diagrama siguiente se muestra un ejemplo de un sistema gestor de bases de datos con las capas que lo
componen y su interacción.

Apuntes: Prof. Francisco Salguero


Revisión: Prof. Diego Silva 1
Aprobación: Prof. Antonio Sottile Bordallo
CÁTEDRA: TECNOLOGÍA DE LA INFORMACIÓN II

Uno de los estándares clásicos para la interacción con bases de datos es el lenguaje SQL. Este lenguaje
desarrollado en los años 70 se usa como lenguaje común para comunicar el sistema de gestión con la base
de datos. (Este lenguaje también puede ser usado aparte del sistema de gestión para interactuar con la base
de datos como administradores, luego se volverá a este punto).

Otra característica que también es ideal para una buena interacción con un sistema de gestión es la que se
denomina con el acrónimo ACID.

A = Atomicidad, es la característica que permite que una serie de instrucciones que se ejecuten contra la
base de datos se ejecute como bloque o no se ejecute, es decir no puede ejecutarse parcialmente.

C = Consistencia, esta característica evalúa ciertas reglas en base a los datos que deben cumplirse para que
alguna instrucción contra la base de datos sea aceptada.

I = Aislamiento, (del inglés Isolation), esta funcionalidad permite que a pesar de que varias instrucciones
concurrentes se ejecuten contra una base de datos desde diversos clientes, (usuarios), cada transacción de
cada cliente no interferirá con la ejecución de otros hasta haber finalizado.

D = Durabilidad, que los datos sean persistentes en el tiempo.

Existen muchos productos de SGBD que implementan estas características, algunos de los más usados son:

Software Web Licencia


MariaDB https://mariadb.org/ Open Source
SQLite https://www.sqlite.org/ Open Source
PostgreSQL https://www.postgresql.org/ Open Source
SQL Server https://www.microsoft.com/es-es/sql-server/sql-server-downloads Propietario
Oracle https://www.oracle.com/ar/database/technologies/appdev/xe.html Propietario

La mayoría de los productos de software Open Source ofrecen licencias de libre uso tanto del producto como
del código. (Algunas licencias pueden tener cláusulas puntuales en la forma que se puede usar).

Por contraparte los productos propietarios exigen el pago de una licencia para su uso aunque la mayoría en
la actualidad disponen también de versiones gratuitas con algunas limitaciones.

Modelar datos

Uno de los temas fundamentales al momento de trabajar con la información de un sistema de gestión es
saber cómo se representan conceptualmente los datos en un modelo de acuerdo a nuestras necesidades.

Apuntes: Prof. Francisco Salguero


Revisión: Prof. Diego Silva 2
Aprobación: Prof. Antonio Sottile Bordallo
CÁTEDRA: TECNOLOGÍA DE LA INFORMACIÓN II

Para representar los datos previamente debemos adquirir el concepto de entidad. Una entidad se puede
definir como cualquier objeto real o abstracto que puede existir en nuestro sistema y que necesitamos que
almacene información. Por ejemplo, si tenemos un sistema de gestión de alumnos de una Universidad
aparecerán entidades como: “Alumno”, “Profesor”, “Curso”, “Nota”, etc.

Muchas entidades son concretas de objetos del mundo real como “Alumno” pero algunas pueden ser más
abstractas como por ejemplo “Reserva de Libro”.

Cada entidad a su vez necesita tener datos particulares que debe almacenar, por ejemplo una entidad
alumno deberá almacenar “nombre”, “documento”, “dirección”, “email”, (atributos comunes a todos los
alumnos). Una entidad “asignatura” tendrá otro set de atributos por ejemplo “nombre”, “curso”, “año”.

Diagramas

El modelo conceptual de la base de datos se puede representar de diversas formas, un estándar muy usado
es el lenguaje UML, (lenguaje unificado de modelado) que usa diagramas para las representaciones.

El lenguaje UML cuenta con múltiples tipos de diagrama que permiten representar un sistema desde
diversos enfoques y es simple usarlo para representar las entidades de una base de datos.

En este caso, usaremos UML para visualizar conceptualmente nuestro modelo de datos. Las entidades tienen
una gráfica concreta con forma de caja y algunos compartimentos con funciones específicas, en el
compartimento superior de la caja se anotan el nombre de la entidad, en otro compartimento se listan los
atributos de la entidad.

Para finalizar la estructura de un diagrama existen también otros elementos como conectores que
relacionan las entidades entre sí. Con estos pocos elementos ya podemos tener un diagrama que describa
inicialmente nuestro modelo de datos, luego se deberán agregar más elementos para detallar esta
descripción pero ya es una muy buena aproximación a la realidad.

Por ejemplo en el diagrama siguiente se puede observar cómo un “Profesor” puede pertenecer o dirigir a un
departamento de estudios de una universidad. En este caso “pertenece” o “dirige” son relaciones entre las
entidades “Profesor” y “Departamento”.

Los números que se encuentran en los extremos de las líneas conectoras se conocen como multiplicidad, y
es una forma de indicar con cuantas entidades se puede relacionar una entidad.

En el mismo diagrama la entidad “Profesor” está relacionada con la entidad “Departamento” y se espera que
un Profesor pertenezca a solo un “Departamento” y que un “Departamento” tenga muchos profesores, (*
significa ilimitadas relaciones).

Apuntes: Prof. Francisco Salguero


Revisión: Prof. Diego Silva 3
Aprobación: Prof. Antonio Sottile Bordallo
CÁTEDRA: TECNOLOGÍA DE LA INFORMACIÓN II

Por lo general una entidad está representada por una tabla en una base de datos, esto en ocasiones no es
exactamente así pero nos sirve por el momento para representar aproximadamente cómo será la base de
datos física.

Hay que tener en cuenta que al momento de modelar atributos de una entidad estos pueden almacenar
ciertos tipos de datos, algunos pueden almacenar texto otros números, fechas, horas, datos binarios como
fotos, etc.

Principalmente por el momento nos centraremos en dos tipos de datos, numéricos y no numéricos,
(denominados en informática alfanuméricos).

Los tipos de datos alfanuméricos sirven para almacenar datos que representan texto, por ejemplo el atributo
“nombre” de la entidad “alumno” deberá ser alfanumérico o textual. Por contraparte un campo numérico
sólo puede almacenar números, por ejemplo el atributo “edad”, “nota”.

En resumen para modelar una base de datos debemos nombrar las entidades en cada una de estas agregar
sus atributos y el tipo de dato que usará y para finalizar sus relaciones.

Una tabla en una base de datos tiene una forma similar a una tabla Excel, cada fila representa una entidad
instanciada, es decir un objeto. Por ejemplo en la tabla “Clientes” una fila representaría un cliente en
particular y las columnas sus datos o atributos.

Apuntes: Prof. Francisco Salguero


Revisión: Prof. Diego Silva 4
Aprobación: Prof. Antonio Sottile Bordallo
CÁTEDRA: TECNOLOGÍA DE LA INFORMACIÓN II

En la siguiente figura se muestra un ejemplo real de una tabla de “clientes” en una base de datos en donde
en azul se muestra una fila que corresponde a un cliente.

Lenguaje SQL (Structured Query Language)

El lenguaje SQL nos permite interactuar con bases de datos que implementen este estándar.

Existen instrucciones con un formato particular que nos permiten realizar diversas operaciones contra una
base de datos. Estas instrucciones SQL en general se asemejan bastante a frases en inglés de las acciones
que deseamos realizar.

Las instrucciones se pueden organizar de acuerdo a sus operaciones en varios grupos:

▪ DDL: Lenguaje de definición de datos, nos permite crear y modificar objetos de la base de datos,
tablas, índices y campos.
▪ DML: Lenguaje de manipulación de datos, nos permite operar sobre los datos. Realizar consultas,
creación, modificación y eliminación. (Este set de instrucciones es el que más usaremos).
▪ DCL: Nos permite ejecutar instrucciones de control de acceso a los objetos, permisos y usuarios.
▪ TCL: Nos permite ejecutar un set de instrucciones como un bloque y controlar el comportamiento
ante excepciones.

Apuntes: Prof. Francisco Salguero


Revisión: Prof. Diego Silva 5
Aprobación: Prof. Antonio Sottile Bordallo
CÁTEDRA: TECNOLOGÍA DE LA INFORMACIÓN II

Del grupo de instrucciones DML usaremos las siguientes sentencias principalmente:

▪ SELECT: Esta sentencia se utiliza para realizar consultas sobre las tablas.
▪ INSERT: Con esta instrucción podemos insertar los valores en una tabla.
▪ UPDATE: Sirve para modificar los valores de uno o varios registros, (filas de una tabla).
▪ DELETE: Se utiliza para eliminar las filas de una tabla.

Realizando consultas con SELECT

La instrucción SELECT de SQL tiene la siguiente estructura

SELECT *
FROM Clientes
WHERE nombre = ‘Marcos’

En este ejemplo SELECT permite indicar qué columnas queremos ver, (* es para mostrar todas las columnas).
La palabra FROM indica que tabla se debe seleccionar, (en este caso Clientes) y WHERE permite realizar
filtros de acuerdo a valores de las columnas, (aquí filtra todos los nombres que sean Marcos).

El filtro WHERE también tiene operadores de comparación, en el ejemplo es el símbolo = (igual), pero los
comparadores pueden ser:

Apuntes: Prof. Francisco Salguero


Revisión: Prof. Diego Silva 6
Aprobación: Prof. Antonio Sottile Bordallo
CÁTEDRA: TECNOLOGÍA DE LA INFORMACIÓN II

Comparación Resultado
Valor1 = Valor2 Es verdadera si los valores que compara son exactamente iguales
Valor1 != Valor2 Es verdadera si los valores que compara no son iguales
Valor1 > Valor2 Es verdadera si el Valor1 es mayor que el Valor2
Valor1 < Valor2 Es verdadera si el Valor1 es menor que el Valor2
Valor1 >= Valor2 Es verdadera si el Valor1 es mayor o igual que el Valor2
Valor1 <= Valor2 Es verdadera si el Valor1 es menor o igual que el Valor2
Valor1 LIKE Valor2 Es verdadera si el Valor1 cumple el patrón del Valor2, se utiliza para datos textuales
Valor1 IS NULL Es verdadera si el Valor1 es NULL, (NULL es un valor especial que indica nada)
EXISTS (Valor1) Es verdadera si el Valor1 existe y no es NULL
Valor1 IN (V1, V2, …) Es verdadera si el Valor1 es igual a alguno del conjunto de datos indicado

Movimiento Open Data

Es importante para incorporar a nuestros datos que conozcamos lugares que nos pueden proporcionar
información interesante sobre mercados, estudios estadísticas, tendencias, etc.

En esta línea de pensamiento los gobiernos y entidades sin fines de lucro suelen publicar por transparencia y
para favorecer la explotación de la información sets de datos que pueden ser descargados libremente sobre
multitud de temáticas.

▪ Datos abiertos Argentina: https://datos.gob.ar/


▪ Datos abiertos Unión Europea https://open-data.europa.eu/es/data/
▪ Amazon datos abiertos https://aws.amazon.com/datasets
▪ Facebook API https://developers.facebook.com/docs/graph-api
▪ Instagram API https://developers.facebook.com/docs/instagram-api
▪ Compilación de datos https://www.gapminder.org/data/
▪ Datos de Wikipedia https://www.dbpedia.org/
▪ Ciencia de datos – Gamificación https://www.kaggle.com/
▪ Banco mundial https://data.worldbank.org/

Apuntes: Prof. Francisco Salguero


Revisión: Prof. Diego Silva 7
Aprobación: Prof. Antonio Sottile Bordallo
CÁTEDRA: TECNOLOGÍA DE LA INFORMACIÓN II

Prácticas

La base de datos de práctica que usaremos es una base SQLite con nombre “farmacia.db'' y tiene el siguiente
diagrama de entidad relación en UML.

Para realizar este diagrama se usó un software que permite realizar diagramas en UML y puede diferir
ligeramente con otros diagramas realizados con otras herramientas pero los conceptos fundamentales se
mantienen, las cajas, los conectores, los nombres de entidades y atributos, y etiquetas extras para añadir
información.

Para abrir la base de datos “farmacia.db” usaremos el software sqlitestudio que se puede descargar desde
https://sqlitestudio.pl/ luego buscar el link “Download”.

Apuntes: Prof. Francisco Salguero


Revisión: Prof. Diego Silva 8
Aprobación: Prof. Antonio Sottile Bordallo
CÁTEDRA: TECNOLOGÍA DE LA INFORMACIÓN II

Para usarlo solo basta descomprimir el archivo en alguna carpeta o directorio. (Abrir el archivo con el
explorador de Windows y presionar en “Extraer todo”).

Una vez descomprimido se debe ejecutar el archivo sqlitestudio.exe

Apuntes: Prof. Francisco Salguero


Revisión: Prof. Diego Silva 9
Aprobación: Prof. Antonio Sottile Bordallo
CÁTEDRA: TECNOLOGÍA DE LA INFORMACIÓN II

Este software cuenta con una interfaz que permite manejar bases de datos SQLite de forma simple y
también para escribir y ejecutar comandos SQL. También incorpora el motor SQLite, (no hace falta
descargarlo aparte).

Luego de ejecutar Sqlitestudio debemos abrir la base de datos “farmacia.db” como representa la siguiente
secuencia de capturas de pantalla:

Al presionar el botón “Browse” deberemos buscar el archivo “farmacia.db” que previamente debemos haber
descargado en alguna carpeta.

Una vez abierta la base se debe presionar el botón “Connect”.

Apuntes: Prof. Francisco Salguero


Revisión: Prof. Diego Silva 10
Aprobación: Prof. Antonio Sottile Bordallo
CÁTEDRA: TECNOLOGÍA DE LA INFORMACIÓN II

Desde esta simple interfaz ya podemos realizar múltiples operaciones usando una base de datos SQLite.

Siempre que usemos un software es bueno saber que representa cada opción de menú al menos
genéricamente:

▪ El menú “Database” contiene opciones que permiten operaciones básicas para conectarse a una
base de datos, es decir que siempre usaremos estas opciones al iniciar.
▪ El menú “Estructure” permite crear y manejar objetos dentro de una base de datos, principalmente
crearemos tablas.
▪ El menú “View” nos permite abrir y cerrar ciertas ventanas de la interfaz que muestra el software,
(nos permite personalizar lo que necesitamos ver en algún momento determinado).
▪ El menú “Tools” contiene varias herramientas que nos van a ayudar a realizar ciertas tareas en forma
visual. (Aquí usaremos la primera opción “Open SQL editor” para ejecutar comandos SQL.)
▪ El menú “Help” contiene el manual de uso del software e información sobre la versión, licencia, etc.

Sobre el árbol de tablas podemos expandir la información que se muestra haciendo clic sobre el ícono “>”. Si
lo hacemos repetidamente sobre una tabla en particular podemos conocer todos los detalles de su
estructura.

Para usar el editor de SQL se debe elegir desde el menú “Tools” la opción “Open SQL Editor”. Esto abrirá una
ventana que nos permite escribir sentencias SQL. También es posible cargar un archivo que contenga las
sentencias SQL presionando sobre el botón con ícono de carpeta.

Una vez abierta la interfaz y presionado el botón para abrir un archivo SQL se mostrará lo siguiente:

Apuntes: Prof. Francisco Salguero


Revisión: Prof. Diego Silva 11
Aprobación: Prof. Antonio Sottile Bordallo
CÁTEDRA: TECNOLOGÍA DE LA INFORMACIÓN II

Desde allí se podrá seleccionar algunos de los archivos previamente descargados con sentencias SQL de
ejemplo. Para ejecutar una de las sentencias de ejemplo se debe seleccionar marcándola y presionando
luego el botón que contiene un ícono con forma de triángulo. (o presionar F9 en el teclado).

Una importante utilidad que tiene sqlitestudio es la de poder importar datos desde Excel, para esto
previamente debemos guardar la planilla en formato CSV. En el ejemplo que se muestra en la figura
siguiente se abrió una planilla de Excel con los datos de las provincias de Argentina obtenida desde:

https://datos.gob.ar/ar/dataset/jgm-servicio-normalizacion-datos-geograficos/archivo/jgm_8.9

(En ese mismo link se puede obtener datos geográficos muy útiles para una variedad de modelos de datos)

Apuntes: Prof. Francisco Salguero


Revisión: Prof. Diego Silva 12
Aprobación: Prof. Antonio Sottile Bordallo
CÁTEDRA: TECNOLOGÍA DE LA INFORMACIÓN II

Una vez que tenemos los datos a importar en formato CSV, podemos realizar la acción de importar en
sqlitestudio usando el menú “Tools”  “Import”. Luego de esto la interfaz nos mostrará la interfaz que se
muestra en la siguiente figura en la que debemos ingresar el nombre de una nueva tabla que crearemos con
estos datos. En este caso ingresaremos “provincias” como nombre, hay que tener en cuenta que por
prácticas de programación todos los nombres de las tablas en una base de datos tienen el nombre de la
entidad plural, no es obligatorio pero es recomendable como estándar.

Apuntes: Prof. Francisco Salguero


Revisión: Prof. Diego Silva 13
Aprobación: Prof. Antonio Sottile Bordallo
CÁTEDRA: TECNOLOGÍA DE LA INFORMACIÓN II

Una vez ingresado el nombre de archivo presionaremos el botón “Next” y nos presentará otra pantalla en
donde debemos ingresar el nombre del archivo CSV, (se puede seleccionar haciendo clic en el botón que
tiene como ícono una carpeta). Seleccionamos con “Text encoding” latin1, (otro muy común es UTF-8).
Marcamos la casilla que indica que tenemos los títulos de las columnas en la primera fila, (“first line
represents CSV column names”. Como separador seleccionamos la coma (,), y finalmente presionamos el
botón “Finish” que se habilitará.

Una vez finalizado el proceso se creará una tabla “provincias” con el contenido del archivo CSV.

Apuntes: Prof. Francisco Salguero


Revisión: Prof. Diego Silva 14
Aprobación: Prof. Antonio Sottile Bordallo
CÁTEDRA: TECNOLOGÍA DE LA INFORMACIÓN II

Se recomienda realizar las siguientes prácticas:

▪ Explorar la estructura de la base de datos observando cada tabla

▪ Abrir “Tools”  “Open SQL Editor” y seleccionar cualquier de los archivos de práctica con nombre
practica-*.sql y ejecutar sentencia por sentencia observando los resultados.

▪ Crear tablas adicionales que identifiquen otras entidades relacionadas con el modelo

▪ Crear una nueva base de datos con otro modelo que identifique un sistema de nuestra empresa.

▪ Importar datos desde Excel y realizar consultas SQL sobre esos datos.

Apuntes: Prof. Francisco Salguero


Revisión: Prof. Diego Silva 15
Aprobación: Prof. Antonio Sottile Bordallo

También podría gustarte