Subido por Ian Salazar

CLASES U-1. INTRODUCCIÓN SGBdD (1)

Anuncio
Depto. de Informática y Computación
BASES DE DATOS
Unidad N° 1
Introducción a los Sistemas de Gestión de Bases de Datos
Docente:
Orlando Cavieres P.
[email protected]
[email protected]
Sem. Primavera 2024
En Ingeniería:
ENTRADA
PROCESO
SALIDA
PROCESO
INFORMACIÓN
En Informática:
DATOS
¿Qué es Información? …………
Y… ¿Qué es Dato?
….Dato ABSTRACTO
Sistemas de Información ➔ Software, Conjunto de
Programas.
Programa ➔ Conjunto de Instrucciones en algún lenguaje
computacional. Programas “editables” desde almacenamiento y
“ejecutables” desde el procesador del computador.
Lenguaje Computacional: Interfaz Hombre/Máquina
Necesitan ejecutarse ➔ Entregan Información dirigida para la
Toma de Decisiones.
O Sistemas de Información ➔ Entregan Información
dirigida para la Toma de Decisiones por niveles:
Estratégico
Táctico
Operacional
Largo Plazo [años]
Mediano Plazo [meses]
Corto Plazo [días]
Para poder entregar información, se requieren 3 componentes:
Hardware, Software y Comunicaciones
Computadora – Instrucciones – medios de transmisión
CPU
ALU RAM
ROM BIOS
Dispositivos
de Input/Output
Almacenamiento
(Memorias )
Sistemas de Información
S.I. de
S.I. de
Finanzas
Personal
---
S.I. de
Ventas
ARCHIVOS
Personal
Clientes
Caja
Personal
Turnos
Asistencia
Otros
Clientes
Personal
Vendedores
Productos
Otros
Otros
Problemas: Redundancia e inconsistencia, Accesibilidad, Aislamiento,
Integridad, Acceso Concurrente, Seguridad……
Por ejemplo, suponga que usted tiene datos de empleados:
cédula, nombre, dirección, teléfono y de proyectos: nombre,
valor, fecha de inicio. Además, un empleado puede estar
asignado a varios proyectos y en un proyecto pueden trabajar
varios empleados. ¿Cómo guardaría usted estos datos? ¿En
varios archivos? ¿En uno solo?
En clase se discuten algunos aspectos sobre este ejemplo.
Note que un diseño físico (distribución de los datos en uno o
varios archivos) será posiblemente beneficioso para ciertas
aplicaciones (por ejemplo, para ciertas consultas) y será
posiblemente desventajoso para otras…
Sistemas de BD:
– Surgieron para solucionar los problemas de los sistemas de
archivos
– Capacidades:
• Manejo de persistencia
• Soporte por lo menos de un modelo de datos
• Soporte de un lenguaje de alto nivel que permita
manipular y definir la estructura de los datos en forma
eficiente → SQL
Definir usuarios, roles, permisos…
• Control de acceso → Seguridad
• Evitar inconsistencias al compartir los datos
Un Sistema de Bases de Datos es un conjunto de datos,
interrelacionados, y un conjunto de programas que
permiten a los usuarios tener acceso a esos datos y
modificarlos.
Este sistema permite a los usuarios tener una visión
mucho más sencilla de la complejidad que significa
almacenar y mantener los datos. Para ello los sistemas
de bases de datos ocultan la complejidad a los usuarios
mediante niveles de abstracción para simplificar la
interacción de los usuarios con el sistema.
Definiciones
O Base de Datos (BD): Conjunto de datos (con su respectivo
esquema) almacenados en algún medio (por ej. un disco) y
usados con diversos propósitos por múltiples usuarios
O Esquema de la BD: Describe la estructura de los datos
requeridos por la organización.
Esta estructura suele permanecer estática durante un gran
período
O Instancia de la BD: Son los datos que en un determinado
instante posee la BD.
Estos
datos
suelen
cambiar
(ingresos,
borrados,
actualizaciones) constantemente
Definiciones
O Usuario final: El que interactúa con la BD, usualmente a
través de aplicaciones e interfaces
O Usuario especialista: El que diseña y programa aplicaciones
para los usuarios finales
O DBA (DataBase Administrator): El que administra la BD →
¿Funciones?
En una base de datos se definen tres niveles de
abstracción:
Nivel Físico, Nivel Lógico y Nivel de Vistas al usuario
O Nivel Físico: Nivel más bajo de abstracción, describe
cómo se almacenan realmente los datos, describe en
detalles las estructuras de datos complejas de bajo nivel.
O Nivel Lógico: Describe qué datos se almacenan en la BdD
y qué relaciones existen entre ellos. Describe toda la BdD
en términos de un número pequeño de estructuras
relativamente simples. Este nivel está dirigido a los
Administradores de BdD.
O Nivel de Vistas: Describe sólo una parte de la BdD,
orientado a los usuarios de BdD que no necesariamente
tengan conocimientos de informática. Los usuarios, en
general, no necesitan toda la información que puede
entregar la BdD, sólo necesitan tener acceso a una parte
de la BdD. El Sistema puede proporcionar muchas vistas
para la misma BdD.
Sistema de Gestión de Bases de Datos
*DBMS: Data Base Management System
Sistema computarizado que permite la gestión de las BD
O Es un conjunto de programas
O Sirve de interfaz entre los usuarios, los datos y
programas de la BD
O Interactúa con el sistema operativo
O Ejemplos: Oracle, SQL Server, DB2, PostgreSQL.
SGBD
O Soporta DDL (Data Definition Language): Lenguaje para la
creación del esquema. Ej.: Create Clientes
O Soporta DML (Data Manipulation Language): Lenguaje para la
inserción, actualización, borrado y consulta de datos
Ej.: Select * from Clientes
O Soporta DCL (Data Control Language): Lenguaje para la gestión de
usuarios, roles, permisos, entre otros.
SGBD
O Gestión de transacciones: una transacción es una unidad
de trabajo que suele incluir varias operaciones sobre la BD
(consultas, actualizaciones, borrados, …)
O Recuperación ante fallas y para deshacer (rollback)
transacciones: Bitácora (log de transacciones)
O Manejo de respaldos (backups)
O Independencia de los datos (se explica posteriormente)
O Otros servicios
SGBD
Un SGBD debe garantizar las propiedades
ACID para las transacciones:
– Atomicity (Atomicidad)
– Consistency (Consistencia)
– Isolation (Aislamiento)
– Durability (Durabilidad)
SGBD
Propiedades ACID
• Atomicidad: Todos los cambios en los datos se realizan
como si fueran una sola operación. Es decir, se realizan
todos los cambios, o ninguno.
• Consistencia: Los datos permanecen en un estado
consistente de un estado a otro, lo que refuerza la
integridad de los datos.
• Aislamiento: El estado intermedio de una transacción no es
visible para otras transacciones y, como resultado, las
transacciones que se ejecutan simultáneamente parecen
estar serializadas.
• Durabilidad: Después de completar con éxito una
transacción, los cambios en los datos persisten y no se
deshacen, incluso en caso de falla del sistema.
SGBD
La BD en estado
consistente
Inicio de una
transacción
La BD podría estar
en un estado
inconsistente durante
la ejecución de la
transacción
Ejecución de la
transacción
La BD en estado
consistente
Fin de la
transacción:
Commit o
Rollback
SGBD
O Bloqueos: compartido (s) y exclusivo (x).
Matriz de bloqueos
Transacción 1
tiene:
Transacción 2
solicita:
x s
x No No
s No Sí
Cuando una
transacción termina
(ya sea con commit
o rollback) se liberan
sus bloqueos
20
Permisos sobre
el esquema
Compilador
DCL
Consultas y/o
programas de usuario
Esquema de la BD
Compilador
DML y
optimizador
Compilador
DDL
Arquitectura
de un SGBD
Tablas de
autorización
(DD)
Tablas de
acceso
concurrente
(DD)
Manejador de
transacciones
Tablas de
descripción
de la B.D
(DD)
Manejador de
almacenamiento
DD = Diccionario de Datos
Base de Datos
física y
DD
21
O Diccionario de Datos (DD):
Contiene datos sobre el esquema de la BD, los usuarios, los
permisos de acceso, etc.
Almacena los datos que permiten la traducción entre los tres
niveles* de la arquitectura ANSI-SPARC (American National
Standards Institute, Standards Planning And Requirements
Committee).
Es un catálogo autodescriptivo, datos sobre los objetos
existentes en el sistema → Datos sobre los datos (Metadatos).
O Optimizador de consultas: Define el plan de ejecución de las
operaciones solicitadas por los usuarios, de tal manera que se
ejecuten de manera eficiente.
O Manejador
de transacciones:
concurrencia de operaciones.
Controla
el
acceso
y
la
Ventajas de un SGBD
O Reuso de datos y programas
O Control de redundancia
O Estandarización ¿en qué sentido?
O Concurrencia
O Es posible equilibrar las cargas de los requisitos
(establecer prioridades)
Ventajas de un SGBD
O Integridad (Se cumplen las reglas establecidas →
¿Qué tipo de reglas?¿Establecidas por quién?)
O Seguridad
O Rapidez de desarrollo
O Mantenimiento y reingeniería: cambios en en el
esquema sin cambiar los programas que los usan
(hasta cierto punto)
Desventajas de un SGBD
O Tamaño
O Susceptibilidad a fallas (Discutible)
O Complejidad en la recuperación a fallas (Discutible)
O Lentitud debido a la cantidad de verificaciones que debe
hacer
BD especializadas
 BD para la toma de decisiones (Data Warehouse).
 BD distribuidas, paralelas, blockchain.
 BD deductivas, temporales, multimediales (imágenes,
audio, videos) → consultas sobre estos tipos de datos.
 BD orientadas a dispositivos móviles.
 BD geográficas: Sistemas de Información Geográficos
(SIG), trayectorias.
 BD nativas para XML, JSON.
 Big Data: BD NoSQL (Not only SQL) → No necesariamente
garantizan ACID.
Tipos de Bases de Datos
Bases de Datos Estáticas, Bases de Datos Dinámicas
Diferencia entre base de datos estáticas y dinámicas.
La principal diferencia entre ambas es que, mientras
las bases de datos estáticas son de solo lectura y no
permite modificar o añadir datos, las bases de datos
dinámicas son mucho más flexibles y sí permiten editar,
actualizar o borrar datos.
Bases de Datos Relacionales
Una base de datos relacional es un conjunto de una o más
tablas estructuradas en registros (líneas) y campos
(columnas), que se vinculan entre sí por un campo en común,
en ambos casos posee las mismas características como por
ejemplo el nombre de campo, tipo y longitud; a este campo
generalmente se le denomina ID, identificador o clave. A esta
manera de construir bases de datos se le denomina modelo
relacional.
Las bases de datos relacionales pasan por un proceso al
que se le conoce como normalización de una base de
datos, el cual es entendido como el proceso necesario para
que una base de datos sea utilizada de manera óptima.
Existen básicamente tres niveles de normalización: Primera
Forma Normal (1NF), Segunda Forma Normal (2NF) y
Tercera Forma Normal (3NF). Cada una de estas formas
tiene sus propias reglas. Cuando una base de datos se
conforma a un nivel, se considera normalizada a esa forma
de normalización.
Los analistas utilizan consultas SQL para combinar diferentes puntos
de datos y resumir el rendimiento empresarial, lo que permite a las
organizaciones obtener insights (perspectivas), optimizar los flujos de
trabajo e identificar nuevas oportunidades.
Por ejemplo, imagine que su empresa mantiene una tabla de base de
datos con información de clientes, que contiene datos de la empresa a
nivel de cuenta. También puede haber una tabla diferente, que
describe todas las transacciones individuales que se alinean con esa
cuenta. Juntas, estas tablas pueden proporcionar información acerca
de las diferentes industrias que compran un producto de software
específico.
Las columnas (o campos) de la tabla de clientes pueden ser ID de
cliente, Nombre de la empresa, Dirección de la empresa, Industria, etc.
Las columnas de una tabla de transacciones pueden ser Fecha de
transacción, ID de cliente, Cantidad de la transacción, Método de
pago, etc. Las tablas se pueden unir con el campo ID de cliente común.
Por lo tanto, puede consultar la tabla para producir informes valiosos,
como informes de ventas por industria o empresa, que pueden
informar mensajes a clientes potenciales.
Otras Base de Datos. (Orientadas a Objetos…Documentales…)
Con la proliferación de la nube y el análisis de Big Data, la base de
datos orientada a objetos está ahora bien posicionada para dirigirse
a estas necesidades.
La industria del software se caracteriza por sufrir constantemente
rápidos cambios, donde nuevas tecnologías se introducen cada
poco tiempo.
También se caracteriza por las tecnologías que cambian y se
presentan como una nueva forma de hacer las cosas.
Este es el caso de una base de datos orientada a objetos.
Bibliografía
-
Silberschatz/Korth/Sudarshan. “Fundamentos de Bases de Datos”.
5ta. Edición. 2006
- Introducción a los Sistemas de Bases de Datos. Francisco
Moreno. Universidad Nacional. Medellín.
https://www.medellin.unal.edu.co/~fjmoreno/bd1/Pres02BDI.ppt
- https://www.ibm.com/mx-es/topics/relational-databases
Descargar