Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TIC - Base de Datos-2
TIC - Base de Datos-2
Módulo de
Base de datos
Claudio García
Módulo de
Base de datos
Claudio García
Quedan rigurosamente prohibidas, sin la autoriza-
ción escrita de los titulares de «Copyright», bajo las
sanciones establecidas en las leyes, la reproduc-
ción total o parcial de esta obra por cualquier me-
dio o procedimiento, comprendidos la reprografía y
el tratamiento informático, y la distribución de ejem-
plares de ella mediante alquiler o préstamo públi-
cos. Diríjase a CEDRO (Centro Español de Derechos
Reprográficos, http://www.cedro.org) si necesita fo-
tocopiar o escanear algún fragmento de esta obra.
Contenido
Modelo entidad-relación
Modelo relacional
Normalización
Sin duda, este módulo cubre los principales temas en bases de datos,
desde los conceptos fundamentales hasta los temas más avanzados
como el control de las transacciones y la programación en bases de
datos. Esperamos que este curso te proporcione una base sólida para
explorar y desarrollar tus habilidades en el mundo de las bases de
datos en el futuro. ¡Comencemos!
Módulo de Base de datos
Introducción
1 a las bases de datos
Las bases de datos son una herramienta fundamental para el alma-
cenamiento y gestión de grandes cantidades de información. Una
base de datos es una colección organizada de datos que se pueden
acceder, gestionar y actualizar de manera eficiente.
8
UNIDAD 1 | Introducción a las bases de datos
9
Módulo de Base de datos
Para hacernos una idea, podemos imaginar que somos los en-
cargados de una biblioteca y tenemos muchas fichas de libros
para ordenar. Si las ponemos una encima de otra, como si fuera
una pila, entonces estaríamos obteniendo una disposición de la
información similar a la de un fichero plano o secuencial.
Ficheros indexados
Ficheros relativos
10
UNIDAD 1 | Introducción a las bases de datos
11
Módulo de Base de datos
• Confidencialidad
Nivel externo • Vistas
Nivel • Integridad /
coherencia
conceptual • Esquema lógico
• Ges�ón de acceso
Nivel interno • Esquema �sico
12
UNIDAD 1 | Introducción a las bases de datos
Un ejemplo puede ser una vista que muestre los resultados de una
unión entre dos o más tablas, lo que permite a los usuarios ver la
información combinada de esas tablas en una sola vista. En general,
las vistas son una herramienta muy útil para simplificar el acceso
a los datos y mejorar la eficiencia en la gestión de bases de datos.
Pero ¿qué pasos hemos de seguir para crear una vista? Puede parecer
un concepto un poco «etéreo» ya que no implica guardado en memoria
ni es una consulta propiamente dicha. Sigamos los siguientes pasos:
1. Crear la consulta SQL que incluya las tablas que deseas combinar.
Por ejemplo, si tienes dos tablas llamadas clientes y ventas, y
deseas combinarlas, podrías crear una consulta SQL así:
13
Módulo de Base de datos
2. Una vez que tengas la consulta SQL, puedes utilizarla para crear
la vista utilizando la sentencia CREATE VIEW. Por ejemplo:
14
UNIDAD 1 | Introducción a las bases de datos
15
Módulo de Base de datos
Para trabajar con los datos de una base de datos se utilizan los
lenguajes de los sistemas gestores de bases de datos (SGBD).
Estos lenguajes permiten definir las características de la base de
datos y manipular los datos que se encuentran en ella.
DML DDL
Ges�onar la información Definir tablas y vistas
Lenguaje SQL
DCL TCL
Protección del dato Transacciones
Por otro lado, una consulta para obtener un dato concreto sería:
16
UNIDAD 1 | Introducción a las bases de datos
Desarrollador de aplicaciones
Usuario final
Analista de datos
17
Módulo de Base de datos
Usuario de consulta
Por otro lado, hay varios lenguajes de bases de datos que son rele-
vantes hoy en día, cada uno con sus propias fortalezas y debilidades.
Lenguajes declarativos
Lenguajes imperativos
18
UNIDAD 1 | Introducción a las bases de datos
Programación Programación
impera�va declara�va
NoSQL
MongoDB
19
Módulo de Base de datos
Cassandra
Apache CouchDB
Neo4j
SQL
20
UNIDAD 1 | Introducción a las bases de datos
NoSQL SQL
Juegos Tablas
IoT Almacenaje
21
Módulo de Base de datos
¿Qué ¿Qué
es? define?
¿Qué ¿Qué
guarda? aporta?
• Detalles del • Precisión sobre
diagrama del flujo los datos que se
de datos manejan en un
sistema, evitando
ambigüedades
22
UNIDAD 1 | Introducción a las bases de datos
23
Módulo de Base de datos
Nivel interno
Nivel conceptual
24
UNIDAD 1 | Introducción a las bases de datos
Nivel externo
25
Módulo de Base de datos
26
UNIDAD 1 | Introducción a las bases de datos
27
Módulo de Base de datos
28
UNIDAD 1 | Introducción a las bases de datos
29
Módulo de Base de datos
30
UNIDAD 1 | Introducción a las bases de datos
Cada entidad dentro del modelo ER tiene uno o más atributos que
describen las características de la entidad.
31
Módulo de Base de datos
32
UNIDAD 1 | Introducción a las bases de datos
33
Módulo de Base de datos
34
UNIDAD 1 | Introducción a las bases de datos
Para conectar estas dos entidades podemos crear una relación llamada
«Contiene», que muestra qué canciones están incluidas en qué listas
de reproducción. La relación «Contiene» tendría un grado 2, ya que
conecta la entidad «Canción» con la entidad «Lista de reproducción».
La relación tendría un atributo de cardinalidad «muchos a muchos»,
ya que una lista de reproducción puede contener muchas canciones
y una canción puede estar en varias listas de reproducción.
Diagramas entidad-relación
Cardinalidad
35
Módulo de Base de datos
Las relaciones pueden ser entre uno y uno (1:1), entre uno y varios
(1:N), o entre varios y varios (N:M). Veamos algunos ejemplos:
1:1
1:N
36
UNIDAD 1 | Introducción a las bases de datos
N:M
37
Módulo de Base de datos
38
UNIDAD 1 | Introducción a las bases de datos
Glosario
Grafo dirigido: es
Figura 1.38 Relación entre dos entidades. una estructura de
datos en la que los
nodos (vértices) están
En algunos casos será necesario representar situaciones que no conectados por aristas
o flechas que indican
pueden ser interpretadas mediante la estructura de árbol; en ese una dirección
caso el modelo ER jerárquico puede romper el esquema de manera específica entre
ellos.
puntual y permitir las relaciones entre nodos hermanos, haciendo que
el esquema jerárquico se convierta en un grafo dirigido.
39
Módulo de Base de datos
40
UNIDAD 1 | Introducción a las bases de datos
41
Módulo de Base de datos
42
UNIDAD 1 | Introducción a las bases de datos
Conceptuales
Lógicos
Físicos
Relación
Tupla
Atributo
43
Módulo de Base de datos
44
UNIDAD 1 | Introducción a las bases de datos
Cada relación se representa mediante una línea que conecta las ta-
blas involucradas. Los atributos que se comparten entre las tablas
se utilizan para definir la relación.
45
Módulo de Base de datos
Es importante destacar que una tabla puede tener varias claves can-
didatas, pero solo una de ellas puede ser seleccionada como la clave
primaria de la tabla, que es la clave candidata que se utiliza para
establecer relaciones con otras tablas en la base de datos.
No hay que confundir las claves candidatas con otro termino, llamado
superclaves. Si bien son términos que guardan muchas similitudes y
relación, la diferencia radica en que una superclave puede contener
atributos adicionales que no son necesarios para identificar de manera
46
UNIDAD 1 | Introducción a las bases de datos
única cada tupla, mientras que una clave candidata no tiene atributos
redundantes y es la mínima combinación de atributos necesaria para
identificar de forma única cada tupla.
Por lo que, todas las claves candidatas son superclaves, pero no todas
las superclaves son claves candidatas.
Por otra parte, cuando hablamos de una clave primaria, nos referimos
a un atributo (o conjunto de atributos) de una tabla que se utiliza
para identificar de manera única cada fila o registro en esa tabla. La
clave primaria actúa como un identificador único para cada fila de
la tabla y se utiliza para establecer relaciones con otras tablas en la
base de datos.
Es importante destacar que una tabla solo puede tener una clave
primaria y esta clave no puede ser nula ni repetirse en otras filas
de la misma tabla. Además, la clave primaria debe ser estable y no
modificarse con el tiempo.
47
Módulo de Base de datos
48
UNIDAD 1 | Introducción a las bases de datos
49
Módulo de Base de datos
50
UNIDAD 1 | Introducción a las bases de datos
4. Normalización
La normalización de bases de datos es un proceso de diseño que
busca mejorar la eficiencia, la integridad y la calidad de las bases de
datos. El objetivo principal de la normalización es reducir la redun-
dancia de datos, lo que puede conducir a problemas de integridad y
consistencia en la base de datos.
El concepto de normalización
y la relación universal
La normalización en bases de datos es un proceso de diseño de ba-
ses de datos que se utiliza para minimizar la redundancia de datos y Saber más
evitar errores y anomalías en los datos. El objetivo de la normalización La normalización de
una base de datos se
es organizar los datos de una manera que garantice la integridad de utiliza para eliminar la
los datos y facilite su mantenimiento y modificación. redundancia de datos
y mejorar la integridad
y consistencia de los
Las formas normales o reglas de la normalización están numeradas del mismos, lo que ayuda
1 al 5, siendo la primera forma normal (1FN) la más básica y la quinta a evitar problemas
como la inconsistencia
forma normal (5FN) la más avanzada. Cada forma normal impone de datos y la
pautas adicionales sobre las tablas que garantizan la eliminación de pérdida de
información.
redundancias y anomalías en los datos.
51
Módulo de Base de datos
El concepto de dependencias
funcionales y sus tipos
Las dependencias funcionales son una parte fundamental del diseño
de bases de datos relacionales. Se la puede considerar como una
relación entre dos o más atributos de una tabla en la que el valor de
uno de ellos determina el valor de otro; es decir, una dependencia
funcional se produce cuando el valor de un atributo determina el valor
de otro atributo en la misma tabla.
52
UNIDAD 1 | Introducción a las bases de datos
53
Módulo de Base de datos
Otro ejemplo sería una tabla llamada «Pedidos» con los siguientes
campos:
Número de pedido
Productos solicitados
54
UNIDAD 1 | Introducción a las bases de datos
Para cumplir con la segunda forma normal, se podría crear una nueva
tabla llamada «clientes» que contenga el «id_cliente» y el «nom_clien-
te», y otra tabla llamada «productos» que contenga el «nom_producto»
y «descripción».
55
Módulo de Base de datos
Para ilustrar esto, consideremos una tabla simple de una base de datos
de estudiantes que contiene la información de los cursos que toman:
56
UNIDAD 1 | Introducción a las bases de datos
57
Módulo de Base de datos
Lenguajes SQL:
2 DML Y DDL
Los lenguajes SQL (Structured Query Language) son una herramien-
ta esencial en la gestión de bases de datos relacionales. SQL es un
lenguaje estándar utilizado para manipular y consultar datos en una
base de datos. En SQL hay dos tipos principales de lenguajes: DML
(Data Manipulation Language) y DDL (Data Definition Language).
El lenguaje de manipulación
de datos (DML)
El Lenguaje de Manipulación de Datos (DML, por sus siglas en inglés)
es un lenguaje de programación utilizado para realizar operaciones
de inserción, modificación, selección y eliminación de datos en una
base de datos. El DML es el conjunto de comandos que se utilizan
para realizar operaciones en los datos almacenados en la base de
datos.
58
UNIDAD 2 | Lenguajes SQL: DML Y DDL
DDL DML
DCL TCL
•Permisos •Transacciones
•Grant •Transac�on Recuerda
•Revoke •Commit
•Rollback El lenguaje de
manipulación de datos
(DML) proporciona una
forma fácil y eficiente
Figura 2.1 Lenguaje DML.
de insertar, actualizar y
eliminar datos en una
base de datos, lo que
En esencia, el DML se utiliza para manipular los datos de una base permite una gestión
de datos y es una parte fundamental de cualquier sistema de gestión más efectiva y un
acceso rápido a la
de bases de datos (DBMS, por sus siglas en inglés). Los DBMS más información.
populares, como MySQL, Oracle y SQL Server, tienen sus propias
implementaciones del DML.
59
Módulo de Base de datos
60
UNIDAD 2 | Lenguajes SQL: DML Y DDL
Por ejemplo, supongamos que tenemos una tabla Clientes y otra tabla
Pedidos, donde la tabla de Pedidos tiene una columna que hace re-
ferencia a la clave primaria de la tabla Clientes. Si queremos obtener
los nombres de los clientes que han hecho pedidos, podemos utilizar
la siguiente consulta:
61
Módulo de Base de datos
62
UNIDAD 2 | Lenguajes SQL: DML Y DDL
Aquí se devolverán todos los clientes y todos los pedidos, inde- Recuerda
pendientemente de si tienen o no coincidencias en la otra tabla. Si
Una tabla pivote es una
un cliente o un pedido no tiene coincidencias, los campos OrderID herramienta de análisis
o CustomerName se rellenarán con valores NULL. de datos que permite
resumir, agrupar y
realizar cálculos sobre
Otro tipo de consulta que se puede hacer con DML es la consulta de una tabla de datos para
obtener una vista
tablas cruzadas o pivote. Esta consulta permite agrupar y resumir resumida de la
información de varias tablas y presentarla en forma de tabla cruzada. información en forma
de tabla.
Por ejemplo, supongamos que tenemos una tabla Ventas con infor-
mación de las ventas realizadas por un negocio en diferentes meses,
y queremos saber cuánto se vendió por cada mes para cada producto.
Podemos utilizar la siguiente consulta:
63
Módulo de Base de datos
La cláusula CASE se utiliza para filtrar las ventas por mes, y la cláusula
INNER JOIN para unir las tablas de productos y ventas.
Construcción de subconsultas
64
UNIDAD 2 | Lenguajes SQL: DML Y DDL
DDL DML
DCL TCL
•Permisos •Transacciones
•Grant •Transac�on
•Revoke •Commit
•Rollback
Concepto de integridad
En el contexto de las bases de datos, la integridad se refiere a la
precisión, consistencia y validez de los datos almacenados. Se asegura
que los datos sean precisos y estén libres de errores, duplicados o in-
consistencias que puedan dañar la calidad de los datos y, por tanto,
su utilidad para los usuarios a la hora de servir los datos o realizar
las operaciones que este haya indicado.
65
Módulo de Base de datos
Integridad
de en�dad
Integridad
de
Integridad Integridad
de
restricción de datos dominio
Integridad
referencial
Integridad referencial La sincronización entre dos tablas se mantiene durante las operaciones
de actualización y eliminación gracias a la integridad referencial, una
propiedad presente en todas las bases de datos relacionales. Esta
característica es garantizada por el software gestor de base de datos.
Integridad de restricción La consistencia entre las filas de dos relaciones es mantenida por la
restricción de integridad referencial. Esta restricción garantiza que los
valores de uno o más atributos que están presentes en una relación,
también se encuentran como valores de atributos en otra relación.
66
UNIDAD 2 | Lenguajes SQL: DML Y DDL
67
Módulo de Base de datos
68
UNIDAD 2 | Lenguajes SQL: DML Y DDL
69
Módulo de Base de datos
Lectura sucia Sucede cuando una transacción lee datos que han sido modificados por
otra transacción y aún no han sido confirmados. Si la transacción que
realizó la modificación se deshace, la lectura de la primera transacción
se basó en información errónea.
70
UNIDAD 2 | Lenguajes SQL: DML Y DDL
Lectura no repetible Sucede cuando una transacción lee los mismos datos varias veces,
pero los datos cambian entre lecturas debido a la actualización de otra
transacción. Esto puede llevar a inconsistencias en los datos.
Lectura fantasma Sucede cuando una transacción lee un conjunto de datos dos veces y
la segunda vez encuentra nuevas filas que no estaban presentes en la
primera lectura debido a la inserción o eliminación de otra transacción.
Control de concurrencia:
técnicas optimistas y pesimistas
El control de concurrencia es el conjunto de técnicas y estrategias
utilizadas para asegurar que las transacciones que acceden a una Saber más
base de datos se ejecuten de manera consistente y aislada, evitando El control de
problemas de lectura o escritura sucia entre otros problemas deri- concurrencia es
vados de la ejecución concurrente de transacciones. importante en las
bases de datos porque
garantiza que múltiples
Entre las técnicas utilizadas en el control de concurrencia se encuen- transacciones puedan
acceder y actualizar
tran las técnicas optimistas y las técnicas pesimistas. los datos de manera
segura y consistente,
evitando así problemas
de inconsistencia
y pérdida de
datos.
71
Módulo de Base de datos
72
UNIDAD 2 | Lenguajes SQL: DML Y DDL
73
Módulo de Base de datos
CREATE Crea un objeto de base de datos como una tabla, vista o índice.
ALTER Modifica una estructura de objeto de base de datos existente como una tabla,
vista o índice.
DROP Elimina un objeto de base de datos como una tabla, vista o índice.
TRUNCATE Elimina todos los datos de una tabla sin afectar su estructura.
RENAME Cambia el nombre de un objeto de base de datos existente como una tabla, vista
o índice.
74
UNIDAD 2 | Lenguajes SQL: DML Y DDL
EXPLAIN PLAN Obtiene información sobre el plan de ejecución de una consulta SELECT.
SET Establece una variable de entorno o una opción de configuración del sistema.
LOCK TABLE Bloquea una tabla en modo de exclusión para evitar conflictos de concurrencia.
AUDIT Registra la actividad de los usuarios y los intentos de acceso a la base de datos.
ALTER SYSTEM Permite a los administradores del sistema modificar los parámetros
y configuraciones del sistema de bases de datos.
CREATE Crea un alias para una tabla, una vista, una secuencia, un procedimiento
SYNONIM almacenado u otro objeto de la base de datos.
75
Módulo de Base de datos
FROM Se emplea para indicar de qué tabla o tablas se seleccionan los datos.
WHERE Se usa para filtrar los resultados de la consulta según una o varias condiciones.
GROUP BY Se utiliza para agrupar los resultados de la consulta según una o varias columnas.
HAVING Se aplica para filtrar los resultados de la consulta que han sido agrupados por
GROUP BY.
ORDER BY Se usa para ordenar los resultados de la consulta según una o varias columnas.
JOIN Se utiliza para combinar datos de dos o más tablas relacionadas en una consulta.
76
UNIDAD 2 | Lenguajes SQL: DML Y DDL
MySQL Workbench
PostgreSQL
77
Módulo de Base de datos
DDL DML
DCL TCL
•Permisos •Transacciones
•Grant •Transac�on
•Revoke •Commit
•Rollback
78
UNIDAD 2 | Lenguajes SQL: DML Y DDL
79
Módulo de Base de datos
Creación de índices
Eliminación de índices
80
UNIDAD 2 | Lenguajes SQL: DML Y DDL
Por ejemplo, supongamos que tenemos una tabla ventas que con-
tiene información sobre las ventas de una empresa. Si queremos
crear una vista que muestre solo las ventas de los últimos seis
meses, podemos utilizar la siguiente consulta:
81
Módulo de Base de datos
Restricciones
Una clave primaria es una restricción que asegura que una co-
lumna o combinación de columnas en una tabla tienen valores
únicos y no nulos.
Por ejemplo, la siguiente consulta crea una tabla clientes con una
clave primaria en la columna id_cliente:
82
UNIDAD 2 | Lenguajes SQL: DML Y DDL
Una clave foránea es una restricción que asegura que los valores
de una columna en una tabla corresponden a los valores de otra
columna en otra tabla.
Por ejemplo, la siguiente consulta crea una tabla pedidos con una
clave foránea en la columna id_cliente:
Una restricción not null asegura que los valores en una columna
no sean nulos.
Para crear una restricción not null, se utiliza la cláusula NOT NULL
en la definición de la tabla.
83
Módulo de Base de datos
Restricción unique
84
UNIDAD 2 | Lenguajes SQL: DML Y DDL
Esta vista solo muestra los pedidos con una fecha posterior a enero
de 2022 y asegura que cualquier registro insertado o actualizado en
la vista cumpla esta condición.
85
Módulo de Base de datos
Lenguajes SQL:
3 DCL y extensión
procedimental
Ya hemos visto lenguajes de bases de datos como el DML y DDL que
permiten la manipulación y definición de la estructura de la base de
datos. Sin embargo, existen otros dos tipos de lenguajes SQL que son
igualmente importantes: DCL (Data Control Language) y la extensión
procedimental.
DDL DML
DCL TCL
•Permisos •Transacciones
•Grant •Transac�on
•Revoke •Commit
•Rollback
86
UNIDAD 3 | Lenguajes SQL: DCL y extensión procedimental
Todo esto lo vamos a ver a través de los comandos del lenguaje DCL.
Creación, modificación
y eliminación de usuarios
En la mayoría de los sistemas gestores de bases de datos (SGBD), la
creación, modificación y eliminación de usuarios se realiza a través
de comandos DCL, que son un conjunto de comandos utilizados para
administrar la seguridad y los permisos en la base de datos.
87
Módulo de Base de datos
Administración de perfiles,
privilegios y roles
La administración de perfiles, privilegios y roles de usuario se realiza
mediante comandos DCL en la mayoría de los Sistemas gestores de
bases de datos (SGBD). En general, los perfiles y roles de usuario
se utilizan para agrupar usuarios que tienen permisos y privilegios
similares, lo que permite una administración más eficiente y segura
de la base de datos. Los privilegios de usuario son los permisos es-
pecíficos que se conceden a un usuario o perfil para realizar acciones
en la base de datos, como crear tablas, insertar datos o modificar
registros.
88
UNIDAD 3 | Lenguajes SQL: DCL y extensión procedimental
Por otro lado, los roles de usuario se pueden crear utilizando el co-
mando CREATE ROLE, y se pueden asignar privilegios específicos a
esos roles utilizando el comando GRANT.
89
Módulo de Base de datos
Asignación y desasignación
de privilegios a usuarios sobre
objetos de la base de datos
La asignación y desasignación de privilegios a usuarios sobre objetos
de la base de datos es una tarea común en la administración de ba-
ses de datos y se realiza utilizando comandos DCL.
90
UNIDAD 3 | Lenguajes SQL: DCL y extensión procedimental
91
Módulo de Base de datos
92
UNIDAD 3 | Lenguajes SQL: DCL y extensión procedimental
Entornos de desarrollo
en torno a la base de datos
Los entornos de desarrollo de bases de datos son conjuntos de he-
rramientas y tecnologías utilizadas por los desarrolladores y admi-
nistradores de bases de datos para diseñar, desarrollar y mantener
bases de datos. Estos entornos se centran en el diseño, modelado,
gestión, optimización y prueba de bases de datos y aplicaciones fun-
damentadas en bases de datos.
93
Módulo de Base de datos
94
UNIDAD 3 | Lenguajes SQL: DCL y extensión procedimental
95
Módulo de Base de datos
Operadores
96
UNIDAD 3 | Lenguajes SQL: DCL y extensión procedimental
Operador Descripción
&& (and) Retorna true si ambas expresiones son verdaderas. Si alguna de ellas es falsa,
retorna false.
|| (or) Retorna true si al menos una de las expresiones es verdadera. Si ambas son falsas,
retorna false.
! (not) Retorna el valor opuesto de una expresión. Si la expresión es verdadera, retorna
false. Si la expresión es falsa, retorna true.
and Retorna true si ambas expresiones son verdaderas. Si alguna de ellas es falsa,
retorna false. Tiene la misma funcionalidad que el operador &&.
or Retorna true si al menos una de las expresiones es verdadera. Si ambas son falsas,
retorna false. Tiene la misma funcionalidad que el operador ||.
xor Devuelve true si exactamente una de las expresiones es verdadera y la otra es falsa.
Si ambas son verdaderas o falsas, retorna false.
Estructura Descripción
If Estructura condicional que permite que un bloque de código se ejecute si se
cumple una condición.
If-else Estructura condicional que permite que un bloque de código se ejecute si se cumple
una condición, y otro bloque de código se ejecuta si la condición no se cumple.
Switch Estructura de control que permite que el código elija entre varias opciones
basadas en una variable o una expresión.
For Estructura de control de bucle que permite que un bloque de código se ejecute
varias veces, normalmente con un contador o índice.
While Estructura de control de bucle que permite que un bloque de código se ejecute
varias veces mientras se cumpla una condición.
Do-while Estructura de control de bucle que permite que un bloque de código se ejecute
varias veces hasta que se cumpla una condición.
Foreach Estructura de control de bucle que permite que un bloque de código se ejecute
para cada elemento de una colección, como un arreglo o una lista.
Break Declaración que se usa dentro de un bucle para salir del bucle.
Continue Declaración que se usa dentro de un bucle para saltar a la siguiente iteración del bucle.
Return Declaración que se usa para salir de una función y devolver un valor opcional.
97
Módulo de Base de datos
Librería Descripción
sqlite3 Proporciona una interfaz para trabajar con la base de datos SQLite, una base de datos
relacional ligera que se puede integrar fácilmente en aplicaciones.
MySQL Proporciona una interfaz para trabajar con la base de datos MySQL, una base de datos
Connector relacional muy popular en el mundo empresarial y web.
psycopg2 Proporciona una interfaz para trabajar con la base de datos PostgreSQL, una base
de datos relacional muy poderosa y escalable que se utiliza en muchos sistemas
empresariales y de Big Data.
pymongo Proporciona una interfaz para trabajar con MongoDB, una base de datos NoSQL
orientada a documentos muy popular en la web y en aplicaciones de Big Data.
pyodbc Proporciona una interfaz para trabajar con cualquier base de datos que soporte el
estándar ODBC (Open Database Connectivity), como Microsoft SQL Server, Oracle, DB2,
entre otras.
98
UNIDAD 3 | Lenguajes SQL: DCL y extensión procedimental
Procedimientos y funciones
Procedimientos
99
Módulo de Base de datos
Funciones
Control de errores
El control de errores en la programación de bases de datos se re-
fiere a la identificación, manejo y prevención de errores que puedan
ocurrir durante la ejecución de una instrucción o un conjunto de
100
UNIDAD 3 | Lenguajes SQL: DCL y extensión procedimental
Cursores y transacciones
Los cursores y las transacciones son dos conceptos importantes en
programación de bases de datos.
101
Módulo de Base de datos
102
UNIDAD 3 | Lenguajes SQL: DCL y extensión procedimental
Generadores de código
103
Módulo de Base de datos
Bibliotecas de componentes
104
UNIDAD 3 | Lenguajes SQL: DCL y extensión procedimental
Disparadores
Los disparadores (triggers en inglés) en programación de bases de
datos son objetos que se utilizan para disparar o automatizar ciertas
acciones o tareas cuando se producen ciertos eventos en la base de
datos, como, por ejemplo, cuando se inserta, actualiza o elimina un
registro en una tabla.
105
Módulo de Base de datos
106
UNIDAD 3 | Lenguajes SQL: DCL y extensión procedimental
Figura 3.19
107
Módulo de Base de datos
108
UNIDAD 3 | Lenguajes SQL: DCL y extensión procedimental
Figura 3.21
Por ejemplo, si tenemos una tabla clientes con una columna id_ciu-
dad que hace referencia a la tabla ciudades, podemos utilizar un
disparador after insert para asegurarnos de que cualquier nuevo
registro en la tabla clientes tenga una ciudad válida en la tabla
ciudades.
109
Módulo de Base de datos
Figura 3.23
En este ejemplo, cada vez que se inserte una nueva fila en la ta-
bla Ventas, el trigger AFTER se disparará y ejecutará la sentencia
UPDATE para sumar la cantidad de productos vendidos al total
existente en la tabla Totales.
110
Módulo de Base de datos
Figura 4.1 Diferencia entre las bases de datos orientadas a objetos y las relacionales.
112
UNIDAD 4 | Bases de datos objeto-relacionales
objetos, que pueden contener otros objetos, así como también rela-
ciones entre objetos. Saber más
Las bases de datos
Herencia de objetos
Polimorfismo
Transacciones
Concurrencia
113
Módulo de Base de datos
114
UNIDAD 4 | Bases de datos objeto-relacionales
115
Módulo de Base de datos
Herencia
La herencia en una base de datos objeto-relacional se refiere a la
capacidad de una clase de objetos de heredar atributos y métodos de
otra clase de objetos; es decir, una clase de objetos puede basarse
en otra clase de objetos y utilizar sus atributos y métodos, además
de agregar sus propios atributos y métodos.
Identificadores, referencias
Identificadores
116
UNIDAD 4 | Bases de datos objeto-relacionales
Referencias
117
Módulo de Base de datos
Por otro lado, hay que procurar no caer en errores como el de las
referencias circulares. Las referencias circulares son un problema
común en las bases de datos que ocurre cuando dos o más tablas
se relacionan entre sí de manera que generan una referencia cruzada
o en círculo, lo que provoca que la base de datos no pueda resolver
la información correctamente.
118
UNIDAD 4 | Bases de datos objeto-relacionales
Array
Es una colección ordenada de elementos del mismo �po que se puede
acceder mediante un índice
119
Módulo de Base de datos
Lista
Es también una colección ordenada de elementos a los que se puede acceder mediante su
posición en la lista. Las listas pueden contener elementos de diferentes �pos.
Por ejemplo, se podría utilizar una lista para almacenar una lista de tareas pendientes que
contenga descripciones de tareas y fechas de vencimiento.
Conjunto
Esta es una colección no ordenada de elementos únicos. Los conjuntos se u�lizan para almacenar una
colección de elementos que no �enen un orden específico y que no se pueden repe�r.
Por ejemplo, se podría utilizar un conjunto para almacenar una lista de palabras clave que se aplican a un
artículo.
Mapa
Colección almacenada en forma de pares clave -valor, en la que cada elemento se compone de una clave
única y un valor asociado a esa clave. Los mapas se u�lizan para almacenar información que se puede buscar
rápidamente por su clave. .
Por ejemplo, se podría utilizar un mapa para almacenar información de contacto de una lista de amigos,
donde la clave es el nombre del amigo y el valor es una estructura que contiene información de contacto
como el número de teléfono y la dirección de correo electrónico.
120
UNIDAD 4 | Bases de datos objeto-relacionales
SQL extendido (SQLX) es una extensión del lenguaje SQL que permite
realizar operaciones más avanzadas y complejas en bases de datos
relacionales. A diferencia de SQL normal, SQLX proporciona funcio-
nes adicionales para realizar operaciones de programación, tales
como iteraciones y estructuras de control de flujo, lo que permite la
realización de tareas más sofisticadas en la base de datos. También
proporciona características avanzadas para manejar objetos complejos
y jerarquías de datos.
Por ejemplo, para declarar una clase de objeto llamada Libro en una
base de datos objeto-relacional, se puede utilizar el siguiente código
SQL extendido:
Recuerda
SQLX o SQL extendido
es una versión
mejorada y ampliada de
SQL para trabajar con
bases de datos más
complejas.
121
Módulo de Base de datos
122
UNIDAD 4 | Bases de datos objeto-relacionales
Esto es posible debido a que los objetos en las bases de datos ob-
jeto-relacionales se almacenan como tipos de datos estructurados,
lo que permite seleccionar subelementos de objetos complejos uti-
lizando la sintaxis adecuada.
Inserción de objetos
La inserción de objetos en bases de datos objeto-relacionales hace
referencia al proceso de agregar instancias de objetos a la base de
datos.
123
Módulo de Base de datos
sentencia de inserción que incluye los valores para los atributos del
objeto.
Esta sentencia de inserción crea una instancia del objeto Libro con
los valores especificados para los atributos id, titulo, autor, editorial
y fecha_publicacion, y la inserta en la tabla libros_table de la base
de datos.
124
UNIDAD 4 | Bases de datos objeto-relacionales
Este código actualiza el valor del atributo titulo del objeto Libro con
id = 1, y lo cambia de El Quijote a Don Quijote.
125
Módulo de Base de datos
126
Índice
Índice
Objetivos del módulo
4. Normalización
▪ El concepto de normalización y la relación universal
▪ El concepto de dependencias funcionales y sus tipos
▪ Primera forma normal (1FN)
▪ Segunda forma normal (2FN)
▪ Tercera forma normal (3FN)
2. E
strategias para el control de las transacciones
y de la concurrencia
▪ Concepto de integridad
▪ Concepto de transacción. Control
▪ Propiedades de las transacciones: atomicidad, consistencia,
aislamiento y permanencia
▪ Estados de una transacción: activa, parcialmente
comprometida, quiebra, abortada y comprometida
▪ Problemas derivados de la ejecución concurrente de
transacciones
▪ Control de concurrencia: técnicas optimistas y pesimistas
▪ Recuperación ante fallos. Mecanismos para deshacer
transacciones