Está en la página 1de 35

Práctica 6 (Curso 2023-24)

Introducción a las bases de datos.


Revisión 1.3

Universidad de Cádiz
Conceptos y definiciones básicos
Sistemas orientados a ficheros

Recordemos:

• Los sistemas orientados a ficheros son la base de las


aplicaciones de usuario final o administración de sistemas
(Cada una con un fin y desarrollo específico)
• Sistemas orientados hacia el proceso: los datos se almacenan
en ficheros diseñados a la medida de cada aplicación.
• ¿Qué ocure si esos mismos datos se quieren procesar con otra
aplicación diferente?
• Probablemente habría que modificarlos para adapatarlos a la
nueva aplicación (convertirlos a otro formato, representarlos de
forma diferente, etc.)

2
Sistemas orientados a ficheros

Ejemplos:

• Paquetes ofimáticos: Microsoft Office, Libre Office, etc.


• Formatos de ficheros para procesar datos con programas: XML,
Json, csv.
• ¿Qué significa csv?

3
Sistemas orientados a datos

• Necesidad de una gestión más racional de los datos, por lo que


se requiere un nuevo enfoque: Sistemas de Bases de Datos:
• Datos recogidos y almacenados una sola vez.
• Independientes de los tratamientos.
• Sistemas orientados a los datos: los datos se organizan y
mantienen en un conjunto estructurado sin estar diseñados
para una aplicación en concreto.

4
Sistemas orientados a datos

• Un Sistema Gestor de Base de Datos (SGBD) o DataBase


Managenent System (DBMS) es un sistema que permite la
creación, gestión y administración de bases de datos, así como
la elección y manejo de las estructuras necesarias para el
almacenamiento y búsqueda de información del modo más
eficiente posible.
• En la práctica hay numerosos SGBD, pero se pueden clasificar
según el modelo de datos subyacente:
• Relacionales (SQL)
• No relacionales (NoSQL)

5
SGBD relacionales y no relacionales

Fuente: https:
//revistadigital.inesem.es/informatica- y- tics/los- gestores- de- bases- de- datos- mas-usados/#puntouno

6
Ejemplos de SGBD relacionales

• MySQL: Es el sistema gestor de bases de datos relacional por


excelencia.
• Es un SGBD multihilo y multiusuario utilizado en la gran parte
de las páginas web actuales. Además es el más usado en
aplicaciones creadas como software libre.
• Se ofrece bajo la licencia GNU GPL(versión 2) aunque también es
posible adquirir una licencia (Enterprise) para empresas que
quieran incorporarlo en productos privativos (Desde la compra
por parte de Oracle se está orientando a este ámbito
empresarial).
• Ventajas: Facilidad de uso y gran rendimiento, facilidad para
instalar y configurar, soporte multiplataforma y soporte SSL.
• Desventaja: es la escalabilidad, es decir, no trabaja de manera
eficiente con bases de datos muy grandes que superan un
determinado tamaño.
7
Ejemplos de SGBD relacionales

• MariaDB: es una derivación de MySQL que cuenta con la mayoría


de características de este e incluye varias extensiones.
• Nace a partir de la adquisición de MySQL por parte de Oracle
para seguir la filosofía Open Source
• Características: Aumento de motores de almacenamiento, gran
escalabilidad, seguridad y rapidez en transacciones. Extensiones
y nuevas características relacionadas con su aplicación para
Bases de datos NoSQL.
• Ventajas: es totalmente compatible con MySQL.
• Desventaja: algunas pequeñas incompatibilidades en la
migración de MariaDB y MySQL o pequeños atrasos en la
liberación de versiones estables.

8
Ejemplos de SGBD relacionales

• SQLite: en realidad es una biblioteca escrita en C que


implementa un SGBD y que permite transacciones sin necesidad
de un servidor ni configuraciones.
• Es utilizada en multitud de aplicaciones actuales ya que es open
source y las consultas son muy eficientes.
• Características: el tamaño es mucho menor que cualquier SGBD,
reúne los cuatro criterios ACID (Atomicidad, Consistencia,
Aislamiento y Durabilidad) logrando gran estabilidad. Gran
portabilidad y rendimiento.
• Desventaja: poca escalabilidad, pues no soporta BD muy
grandes.

9
Ejemplos de SGBD relacionales

• PostgreSQL: está orientado a objetos y es libre, publicado bajo


la licencia BSD.
• Características: Control de Concurrencias multiversión (MVCC),
Flexibilidad en cuanto a lenguajes de programación,
multiplataforma. Dispone de una herramienta (pgAdmin,
https://www.pgadmin.org/) muy fácil e intuitiva para la
administración de las bases de datos.
• Ventajas: Robustez, Eficiencia y Estabilidad.
• Desventaja: la lentitud para la administración de bases de datos
pequeñas ya que está optimizado para gestionar grandes
volúmenes de datos.

10
Ejemplos de SGBD relacionales

• Microsoft SQLServer: sistema propietario de Microsoft.


• Características: Soporte exclusivo por parte de Microsoft.
Aunque es nativo para Windows puede utilizarse desde hace ya
un tiempo en otras plataformas como Linux o Docker.
• Ventajas: Escalabilidad, estabilidad y seguridad. Posibilidad de
cancelar consultas.
• Desventaja: es el precio. Cuenta con un plan gratuito (Express)
pero lo normal es la elección de alguno de los planes de pago
disponibles (Standard, Developer, Enterprise o SQL Azure, la
versión de SQL Server en la nube).

11
Ejemplos de SGBD relacionales

• ORACLE
• Características: Tradicionamente, ha sido el SGBD por excelencia
para el mundo empresarial, considerado siempre como el más
completo y robusto,
• Ventajas: Soporte de transacciones. estabilidad. escalabilidad.
Multiplataforma.
• Desventaja: es el coste del software ya que, aunque cuenta con
una versión gratuita (Express Edition o XE), sus principales
opciones son de pago.

12
SGBD no relacionales

Una base de datos no relacional (NoSQL) es aquella base de datos


que:

• No requiere de estructuras de datos fijas como tablas


• No garantiza completamente las características ACID (Atomicity,
Consistency, Isolation and Durability: Atomicidad, Consistencia,
Aislamiento y Durabilidad)
• Escala muy bien horizontalmente.
• Se utilizan en entornos distribuidos que han de estar siempre
disponibles y operativos y que gestionan un importante
volumen de datos.

13
Ejemplos de SGBD no relacionales

• MongoDB: es el más popular y utilizado actualmente.


• Características: MongoDB es un SBGD NoSQL orientado a
ficheros que almacena la información en estructuras BSON
(Binary JSON) con un esquema dinámico que permite su
facilidad de integración.
• Empresas como Google, Facebook, eBay, Cisco o Adobe utilizan
MongoDB como Sistema Gestor de Bases de datos.
• Desventaja: MongoDB no es un SGBD adecuado para realizar
transacciones complejas.

14
Ejemplos de SGBD no relacionales

• Redis: está basado en el almacenamiento clave-valor.


Podríamos verlo como un vector enorme que almacena todo
tipo de datos, desde cadenas, hashses, listas, etc.
• Características: Atomicidad y persistencia, gran velocidad,
simplicidad, multiplataforma.

15
Ejemplos de SGBD no relacionales

• Cassandra: Cassandra también utiliza almacenamiento


clave-valor. Es un SGBD NoSQL distribuido y masivamente
escalable.
• Facebook, Twitter, Instagram, Spotify o Netflix utilizan Cassandra.
• Características: Multiplataforma, propio lenguaje de consultas
(CQL), escalado lineal y horizontal, es un SGBD distribuido que
Utiliza una arquitectura peer-to-peer.

16
Software y datos a utilizar en la práctica

• Como SGBD: un servidor MySQL ya instalado en la MV


DebianSQL2020_2.ova (en los portátiles del aula y enlace en el
AV de la asignatura)
• phpMyAdmin: en el lado del cliente. Se ejecutará desde la
máquina anfitriona (host) a través de un navegador web.
• Datos (estructura e información): Ficheros de script de bbdd
(extensión .sql) con datos (disponibles en los portátiles del aula
y en el AV).

Vamos a lanzar el servidor MySQL desde la MV DebianSQL2020_2.ova


y como cliente, trabajamos con el sistema operativo de la máquina
anfitriona a través de un navegador web (phpMyAdmin).

17
phpMyAdmin

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, utilizando
un navegador web.
• Se encuentra disponible bajo la licencia GPL Versión 2.
• Especificaciones: interfaz Web para la gestión gráfica; Manejador
de base de datos MySQL, MariaDB y Drizzle; Importación de
datos desde CSV y SQL, Exporta datos a varios formatos: CSV,
SQL, XML, PDF (vía la biblioteca TCPDF), ISO/IEC26300
OpenDocument Text y Spreadsheet, Word, Excel, LaTeX y otros.
Administración de múltiples servidores. Crea gráficos PDF del
diseño de la base de datos.

18
Sistemas orientados a datos
relacionales. Práctica
Pasos a seguir

1. Si utilizo portátiles del aula (paso 3)


2. Si utilizo mi equipo: descargo el material de la práctica 6:
carpeta y MV (DebianSQL2020_2.ova cuyo enlace está en el AV).
3. Desde VirtualBox, importar la MV (en los portátiles del aula, en
/home/profesor/ova/otras).
4. Configurar la red (desde el menú de VirtualBox) como
solo-anfitrión (más detalle sobre esta configuración, en las
siguientes diapositivas).
5. Desde el menú de VirtualBox, configurar la red como
solo-anfitrión: Dispositivos/Red/Preferencias de Red.
(Comprobar que el cable está conectado en Avanzadas).

19
Posibles incidencias

• Si en la parte inferior da advertencia (”Configuración inválida


detectada”) por no detectar adaptador de red, ir a
Herramientas/Red y seleccionar ”Crear”. Una vez creada la
tarjeta virtual, si está ”Inhabilitado”, seleccionar en la pestaña
de abajo ”Servidor DHCP”, y marcar ”Habilitar”, luego ”Aplicar”,
para que se actualice la información. (Comprobar que aparece
”Habilitado”).
• (Solo en Linux) Si nos muestra el error de opción de red inválida
al seleccionar solo-anfitrión durante la configuración de red en
VirtualBox: abrir una terminal en el equipo anfitrión (Ubuntu
host - Como root): vboxmanage hostonlyif create

20
VirtualBox. Configuración Solo anfitrión (Host-only)

VirtualBox - Otras configuraciones de red


Sólo anfitrión (Host-only)

• Crea una red interna entre MVs y el anfitrión.


• Las tarjetas virtuales de
la MVs y un adaptador
virtual creado en el
anfitrión, se conectan a
un switch virtual (sin
salida al exterior).
• Para este fin, podemos
crear en el anfitrión una
o más tarjetas de red
virtuales.

21
VirtualBox.

VirtualBox - Otras configuraciones de red


Sólo anfitrión (Host-only)

Imagen extraída de https://www.nakivo.com/blog/virtualbox-network-setting-guide/

22
Pasos a seguir

6. Iniciar la MV DebianSQL2020_2
7. Comprobar la IP con ip addr (o ifconfig) y anotarla.
8. Minimizar la MV
9. Abrir un navegador (desde el sistema operativo anfitrión, desde
fuera de la MV)
10. Poner como URL http://dirIP/phpmyadmin (donde dirIP es la IP
que aparece asignada al hacer ip addr o ifconfig en la MV de
Debian)
11. Ponemos el login y la contraseña (root/toor).
12. Entramos en la interfaz de phpMyAdmin.

23
Ejercicios
Pantalla de inicio de phpMyAdmin

24
Pantalla principal de phpMyAdmin

25
Ejercicio1:Pasos a seguir

1. Crear una BBDD.


2. Ponerle un nombre (p. ej. BdEmpleado)
3. Seleccionar la Bd BdEmpleado.
4. Importar el fichero empresa.sql (Examinar...)
5. Hacer la siguiente consulta (desde la pestaña SQL):
SELECT * FROM DEPARTAMENTO WHERE PRESUPUESTO>8000000
6. Vista impresión para obtener el resultado en un fichero pdf
7. Hacer la siguiente consulta:
SELECT COD_DEPTO,PRESUPUESTO FROM DEPARTAMENTO
8. Vista impresión para obtener el resultado en un fichero pdf
9. Hacer la siguiente consulta, relacionando las tablas EMPLEADO Y
DEPARTAMENTO:
SELECT EMPLEADO.COD_EMP, EMPLEADO.NOM_EMP, EMPLEADO.DEPT,
EMPLEADO.SALARIO, DEPARTAMENTO.COD_DEPTO,
DEPARTAMENTO.NOM_DEPTO, DEPARTAMENTO.PRESUPUESTO
FROM DEPARTAMENTO, EMPLEADO
WHERE EMPLEADO.DEPT=DEPARTAMENTO.COD_DEPTO;
26
Consulta 1. Selección

27
Consulta 2. Proyección

28
Consulta 3. Unión

29
Ejercicio 2. Exportar BD

1. Exportar la BD BdEmpleado.
2. A formatos: sql y csv.

30
Ejercicio 3

1. Crear la base de datos de BDLibrosAnd


2. Seleccionar (si no está seleccionada) la BD BDLibrosAnd
3. Importar la base de datos del fichero DatosAndalucía.sql.
4. Mirar la estructura de BDLibrosAnd. Hacer las consultas:
• Listar libros de la provincia de Cádiz
• Listar libros de la provincia de Cádiz de la materia ’Matemáticas’
• Listar libros de la provincia de Cádiz de la materia ’Matemáticas’
del centro 11007582
• Listar libros de la provincia de Cádiz de la materia ’Matemáticas’
de los centros que contengan la palabra ’Rafael’ en su nombre
• ¿Cuántos libros ha encontrado por centro en el caso anterior?
5. Exportar a formato: csv y abrirlo con el programa
correspondiente.
6. Crear la base de datos de BDproductos, importar la base de
datos productos.sql y hacer diferentes consultas de la BD
BDproductos.
7. Subir la vista impresión (pdf) de 3 de las consultas realizadas a
31
la tarea del AV
Bibliografía

Christine Bresnahan and Richard Blum, “LPIC-1”, Chapter 9 -


Writing Scripts, Configuring Email, and Using Databases., SYBEX,
4ª edición
A. Prieto, A. LLoris, J.C. Torres (2006), “Introducción a la
informática”, Capítulo 16, McGraw-Hill, 4ª edición.
C. J. Date (2004), “Introducción a los Sistemas de Bases de Datos”,
Pearson.
Elmasri y Navathe “Fundamentals of Database Systems”, 3a Ed.
R. W. Smith (2012), “Linux essentials”, John Wiley & Sons.

32

También podría gustarte