Este documento introduce los conceptos básicos de los sistemas de bases de datos, incluyendo su propósito de organizar datos de manera centralizada para evitar problemas como la redundancia, inconsistencia y dificultad de acceso a los datos. Explica componentes clave como el modelo de datos, lenguajes de definición y manipulación de datos, y roles como el administrador de base de datos. También describe brevemente varios modelos de datos como el entidad-relación y el modelo relacional.
1. 1
Capitulo 1: Introducción
Propósito De Los Sistemas De Bases De Datos
Visión de los Datos
Modelo de Datos
Lenguaje de Definición de Datos
Lenguaje de Manipulación de Datos
Gestión de Transacciones
Gestión de Almacenamiento
Administrador de la Base de Datos
Usuarios de la Base de Datos
Estructura de un Sistema de Bases de Datos
Database Management System (DBMS)
Colección de datos interrelacionados
Conjunto de programas para acceder a esos datos
DBMS contienen información acerca de una empresa particular
DBMS Proveen un entorno que es brinda un uso conveniente y eficiente
Database Applications:
Bancos
Aerolíneas
Universidades
Empresas
Industrias
Recursos Humanos
Las Bases de Datos tocan todos los aspectos de nuestra vida
Propósito de los Sistemas de Bases de Datos
Desventajas en el uso de sistemas de archivos para almacenar información:
Redundancia e inconsistencia de datos.
Múltiples formatos de archivos, información duplicada y almacenada en archivos diferentes
Dificultad en el acceso a los datos
Necesidad de escribir un nuevo programa para cada tarea que se agrega
Aislamiento de datos. Múltiples archivos y formatos
Problemas de integridad.
Restricciones de consistencia (ej. Balance de cuenta > 0) forman parte del código del programa
Dificultad para agregar nuevas restricciones o cambiar las existentes
Problemas de atomicidad.
Los fallos pueden dejar a una base de datos en un estado inconsistente, con actualizaciones parciales
Anomalías en el acceso concurrente.
Necesidad de acceso concurrente para ganar performance
Accesos concurrentes no controlados pueden llevar a inconsistencias.
Ej.: dos personas leyendo y actualizando el saldo de una cuenta al mismo tiempo
Problemas de Seguridad
Las Bases de datos actuales ofrecen soluciones a todos los problemas descriptos con anterioridad
Niveles de Abstracción
Nivel Físico, describe como un registro es almacenado
Nivel Lógico, describe los datos almacenados en la base de datos y las relaciones entre estos datos
type customer = record
name : string;
street : string;
city : integer;
end;
Nivel de visión: las vistas ocultan detalles de los tipos de datos, también ocultan la información por cuestiones de seguridad
Visión de los Datos
Arquitectura de un Sistema de Bases de Datos
Instancias y Esquemas
Esquema – la estructura lógica de la base de datos
Se puede hacer una analogía a los tipos de variables en un lenguaje de programación
Esquema físico: diseño de la base de datos al nivel físico
Esquema lógico: diseño de la base de datos al nivel lógico
2. 2
Instancia – el contenido actual de la base de datos en un punto particular del tiempo
Se puede hacer una analogía a las variables en un lenguaje de programación
Independencia Física de los datos – la posibilidad de modificar el esquema físico sin realizar cambios en el esquema lógico
Las aplicaciones dependen del esquema lógico
En general las interfaces entre los distintos niveles y componentes deberían estar bien definidas, entonces los cambios en una parte no
influyen en las otras
Modelos de Datos
Una colección de herramientas que describen
Datos
Relaciones entre los datos
La semántica de los datos
Las restricciones de los datos
Modelo Entidad - Relación
Modelo Relacional
Otros Modelos:
Modelo orientado a objetos
Modelos semi-estructurados
Modelos viejos: modelo de red, modelo jerárquico
Modelo Entidad - Relación
Ejemplo de un esquema en el modelo entidad-relación
E-R modela el mundo real
Entidades (objetos)
Ej. clientes, cuentas, banco
Relaciones entre entidades
Ej. La cuenta A-101 es mantenida por el cliente Johnson
El conjunto deposito asocia a los clientes con las cuentas
Ampliamente usado para el diseño de Bases de Datos
El diseño de bases de datos con el modelo E-R usualmente convierte dicho diseño en un modelo relacional
Modelo Relacional
Ejemplo de datos tabulares en el modelo Relacional
Ejemplo de una Base de Datos Relacional
Lenguaje de Definición de Datos (DDL)
Notación que permite especificar el diseño del esquema de una base de datos. Ej:
create table cuenta (
numerocuenta char(10),
balance integer)
El compilador DDL genera un conjunto de tablas almacenadas en un diccionario de datos
El diccionario de datos contiene meta datos (datos acerca de los datos)
3. 3
Esquema de la base de datos
Lenguaje de almacenamiento y definición de datos
Lenguaje mediante el cual la estructura de almacenamiento y los métodos de accesos usados por la base de datos son especificados
Es usualmente una extensión del lenguaje de definición de datos
Lenguaje de Manipulación de Datos (DML)
Lenguaje para acceder y manipular los datos organizados por el modelo de datos apropiado
DML también se conoce como lenguaje de consultas
Existen dos tipos de DML
Procedimentales – los usuarios especifican que datos son requeridos y como obtener dichos datos
No procedimentales – los usuarios especifican que datos son requeridos sin especificar cómo obtener esos datos
SQL es el lenguaje de consultas más usado
SQL
SQL: lenguaje no procedimental mas popular
EJ.:. Esta consulta en el lenguaje SQL encuentra el nombre
del cliente cuyo identificador de cliente es 19.283.746:
select cliente.nombre-cliente
from cliente
where cliente.id-cliente = ‘19 283 746’
EJ.: la siguiente consulta encuentra el saldo de todas las cuentas pertenecientes al cliente cuyo identificador de cliente es 19 283 746.
select cuenta.saldo
from impositor, cuenta
where impositor.id-cliente = ‘19-283-746’ and
impositor.número-cuenta = cuenta.númerocuenta
Los programas de aplicación generalmente acceden a la base de datos a travesde uno de las
Extensiones del lenguaje que permiten SQL
Interfaces de aplicación, como ser ODBC/JDBC, los cuales permiten realizar consultas en SQL a la base de datos
Usuarios de la Base de Datos
Los usuarios son diferenciados por el modo de interacción con el sistema
Programadores de Aplicaciones – interactúan con el sistema a través de llamadas DML
Usuarios sofisticados – forman sus propias consultas en lenguaje de consultas a la base de datos
Usuarios especializados – escriben aplicaciones de bases de datos especializadas que no son adecuadas en el marco de
procesamiento de datos tradicional
Usuarios normales - Son usuarios no sofisticados que interactúan con el sistema mediante la invocación de alguno de los
programas de aplicación permanentes que se ha escrito previamente
Administrador de la Base de Datos
Persona encargada de coordinar todas las actividades del sistema de bases de datos. Es un entendedor de los recursos y
necesidades de la empresa
Las tareas del Administrador incluyen:
- Definición del Esquema
- Definición de la estructura y del método de acceso.
- Modificación del esquema y de la organización física
- Concesión de autorización para el acceso a los datos
- Especificar restricciones de integridad
- Monitorizar la performance y los cambios en los requerimientos
Gestión De Transacciones
- Una transacción es una colección de operaciones que se lleva a cabo como una única función lógica en una aplicación de bases de
datos
- Los componentes de la gestión de transacciones aseguran que la base de datos permanezca en un estado de consistencia ante las fallas
del sistema (cortes de energía), y fallas en las transacciones.
- Es responsabilidad del gestor de control de concurrencia controlar la interacción entre las transacciones concurrentes para asegurar la
consistencia de la base de datos
Gestión de Almacenamiento
- El gestor de almacenamiento es un modulo de programa que provee la interface entre los datos almacenados en un nivel bajo y los
programas de aplicación y consultas realizados al sistema
- El gestor de almacenamiento es responsable de las siguientes tareas
- Interactuar con el administrador de archivos
- Almacenamiento, recupero y edición de los datos eficiente
- Estructura General del Sistema
- Arquitecturas de Aplicación