You are on page 1of 57

Bases de Datos

Introducción
LC Sonia Valery

¿SGBD?

Un sistema gestor de bases de datos consiste
en una colección de datos interrelacionados y
un conjunto de programas para acceder a
dichos datos.

¿BD?

Una colección de datos, relevante para alguien.

¿Objetivo de un SGBD?

Proporcionar una forma de almacenar y
recuperar los datos, de una BD, de una forma
que sea tanto práctica como eficiente.

¿Son necesarios los SGBD?

Se diseñan para gestionar grandes cantidades
de datos que pueden encontrarse almacenados
de forma centralizada o distribuida.

.¿Qué implica la gestión de datos? Implica tanto la definición de estructuras para almacenar los datos. como la provisión de mecanismos para la manipulación de éstos.

. el sistema debe evitar posibles resultados anómalos.¿Qué implica la gestión de datos? Proporcionar fiabilidad de la información almacenada a pesar de las caídas del sistema o los intentos de acceso sin autorización. Si los datos van a ser compartidos entre diversos usuarios.

Aplicaciones de los SGBD Líneas aéreas Universidades Banca Transacciones de tarjetas de crédito Telecomunicaciones .

Aplicaciones de los SGBD Ventas Producción Finanzas Recursos Humano ? .

Caso de Estudio: Considérese parte de una empresa de caja de ahorros que mantiene información acerca de todos los clientes y cuentas de ahorros. .

Requerimientos: Un programa para efectuar cargos o abonos en una cuenta. Un programa para calcular el saldo de una cuenta . . Un programa para añadir una cuenta nueva. Un programa para generar las operaciones mensuales.

Una manera de mantener la información en el computador. . es almacenarla en archivos del sistema operativo.

Si surgen nuevas necesidades. . es muy probable que se requiera agregar nuevos archivos y nuevos programas sobre la marcha. Los programas son dependientes de los archivos.Consecuencias Cada programador define su propio formato de archivo(s) para un programa particular. Los archivos son independientes.

RFC saldo interés dirección … RFC nombre sueldo dirección Empleados RFC saldo período … Tarjetas CuentasAhorro Programa 1 Programa 2 ……. Programa n .

Sistema de bases de datos Vs Sistema de archivos .

Inconvenientes importantes con archivos: Redundancia e inconsistencia en los datos Dificultad para el acceso a los datos Aislamiento de datos Problemas de integridad Problema de atomicidad Anomalías en el acceso concurrente .

Un cambio puede verse reflejado en un archivo particular y no en el resto del sistema.Redundancia e inconsistencia en los datos La misma información duplicada en diferentes lugares: teléfono y dirección en CuentasAhorro y en CuentasCheque. .

Generalmente se requieren listados filtrados dado un criterio: Todos los empleados que viven en cierta localidad.Dificultad en el acceso a los datos EL entorno de procesamiento de archivos convencional no permite que datos necesarios sean obtenidos de una forma práctica y eficiente. luego con cuenta de cheques .

. los archivos pueden estar en diferentes formatos.Aislamiento de datos Los datos están dispersos en varios archivos y . Difícil escribir nuevos programas para recuperar los datos apropiados.

Los programadores deben garantizar estas restricciones desde los programas. ¿Si se añaden nuevas restricciones? ¿Si los datos están dispersos en diferentes archivos? .Problemas de integridad Los valores de los datos almacenados deben satisfacer ciertos tipos de restricciones de consistencia.

sino también las reglas de integridad que queremos que el SGBD haga cumplir. y tendrá que devolver un estado de error. . Al diseñar una BD para un SI (Sistema de Información) concreto y escribir su esquema.Cuando un SGBD detecta que un programa quiere hacer una operación que va contra las reglas establecidas al definir la BD. no sólo definiremos los datos. no lo deberá permitir.

En casos de errores o desastres. también podríamos perder la integridad de los datos. . El SGBD nos debe dar las herramientas para reconstruir o restaurar los datos estropeados.El concepto de integridad de los datos va más allá de prevenir que los programas almacenen datos incorrectos.

los datos se restauran al estado de consistencia que existía antes del fallo.Problemas de atomicidad Una vez que una falla ha ocurrido y se ha detectado. ¡Con archivos es difícil garantizarlo! . Una transacción debe ser atómica: las operaciones involucradas deben ocurrir por completo o no ocurrir en absoluto.

Actualmente ya no son raros los SI que tienen. Un objetivo fundamental de los SGBD es permitir que varios usuarios puedan acceder concurrentemente a la misma BD. . en un instante determinado. miles de sesiones de usuario abiertas simultáneamente: Servidores de páginas Web.

.Anomalías en el acceso concurrente En un sistema de archivos convencional es muy difícil coordinar y supervisar múltiples programas actualizando datos simultáneamente. Si dos programas tienen acceso a un conjunto de datos de forma simultánea puede generarse respuestas diferentes.

buffers . Cuando varios usuarios están actualizando los datos. cuando la BD sólo se consulta). el problema que se produce es simplemente de rendimiento causado por disco. . etc.Cuando los accesos concurrentes son todos de lectura (es decir. se pueden producir problemas de interferencia que tengan como consecuencia la obtención de datos erróneos y la pérdida de integridad de la BD.

Los SGBD deben conseguir que el conjunto de operaciones de una transacción nunca se ejecute parcialmente. O se ejecutan todas.Transacción Conjunto de operaciones simples que se ejecutan como una unidad. . o no se ejecuta ninguna: La transacción de se atómica.

Ejemplo2 : Transferencia bancaria de la cuenta A a la B Si sólo retira de una cuenta A y no logra depositar a la cuenta B. . Si sólo aumentara la nota a unos cuantos alumnos.Ejemplo 1: Aumentar el 30% de la calificación de todos los alumnos. la BD quedaría incorrecta. la BD quedaría incorrecta.

Entre transacciones que se ejecutan concurrentemente se pueden producir problemas de interferencia que resulta en errores o que comprometen la integridad de los datos. .

.

y nos muestra su suma. en este orden. Si la ejecución de forma concurrente de las dos transacciones casualmente es tal. ésta quedará . Además.Transacción y Concurrencia Una transacción que transfiere dinero de X a Y se ejecuta concurrentemente con otra transacción que observa el saldo de las cuentas Y y X. si se escribe inconsistente en la BD. puede producir resultados incorrectos. que la transferencia se ejecuta entre la ejecución de las dos lecturas de la transacción de suma.

. las autorizaciones. el término seguridad se suele utilizar para hacer referencia a los temas relativos a la confidencialidad. en el campo de los SGBD. etc.Mas de los SGBD Actualmente. los derechos de acceso.

Estos mecanismos de seguridad requieren que el usuario se pueda identificar.La ley. al nivel entidad y al nivel atributo. Los SGBD permiten definir autorizaciones o derechos de acceso a diferentes niveles: al nivel global de toda la BD. . exige la protección de la confidencialidad de estos datos.

pero también se utilizan tarjetas magnéticas. Almacenar la información con una codificación secreta. Muchos de los SGBD actuales tienen prevista la encriptación. etc.Se acostumbra a utilizar códigos de usuarios (y grupos de usuarios) acompañados de contraseñas (passwords). es decir. . con técnicas de encriptación (como mínimo se deberían encriptar las contraseñas). identificación por reconocimiento de la voz.

Seguridad Prácticamente todos los SGBD del mercado dan una gran variedad de herramientas para la vigilancia y la administración de la seguridad. .

los derechos de acceso. en el campo de los SGBD. etc. el término seguridad se suele utilizar para hacer referencia a los temas relativos a la confidencialidad. . las autorizaciones.Mas de los SGBD Actualmente.

Adaptarse al mundo de Internet . Incorporar el tiempo como un elemento de caracterización de la información.Otros Objetivos SGBD Servir eficientemente los Data Warehouse (análisis con perspectivas) Adaptarse al desarrollo orientado a objetos.

oracle.com: DB2 e Informix Microsoft: http://www.Fabricantes de SGBD: Oracle: http://www.com SQL Server Computer Associates: http://www.microsoft.com .com Oracle Database 12c IBM: http://www.com NCR: http://www.ca.ibm.ncr.

y los SGBD la tendrán continuamente a su alcance. Esta descripción recibe el nombre de esquema de la BD. .Esquema Los SGBD necesitan que les demos una descripción o definición de la BD.

Elemento fundamental de la arquitectura de un SGBD. Cambiar el diseño de la BD (su esquema) sin tener que hacer ningún cambio en el SGBD. . Usuarios diferentes y diferentes niveles de abstracción de esquemas. Esquemas Necesarios: estructura de una BD es compleja. Permite independizar el SGBD de la BD.

Arquitectura de SGBD Niveles Externo Conceptual Físico .

.

.Esquema Externo Diferentes visiones lógicas que los procesos usuarios (programas de aplicación y usuarios directos) tendrán de la BD que utilizarán. Los usuarios verán la BD mediante esquemas externos apropiados a sus necesidades. Se pueden considerar redefiniciones del esquema conceptual Algunos sistemas los denominan subesquemas.

. básica. sus atributos. única y global. interrelaciones y las restricciones o reglas de integridad. Sirve de referencia para el resto de los esquemas.Esquema Conceptual Una sola descripción lógica. Se describirán las entidades tipo.

apuntadores. etc. gestión del espacio.). Responde a las cuestiones de rendimiento (espacio y tiempo) planteadas al hacer el diseño físico de la BD y al ajustarlo posteriormente a las necesidades cambiantes. codificación de los datos. . tamaño de la página. hashing.Esquema Interno o Físico Contendrá la descripción de la organización física de la BD: caminos de acceso (índices. etc.

Si el Interno no se define. . El SGBD se encargará de hacer las correspondencias (mappings) entre los tres niveles de esquemas. definir como mínimo un esquema externo y. el mismo SGBD tendrá que decidir los detalles de la organización física. de forma eventual. definir su esquema interno.¿Que hay que hacer para crear un BD ? Definir previamente su esquema conceptual.

. los programas usuarios o los usuarios directos). • Los cambios en el esquema interno no afecten al esquema conceptual ni a los esquemas externos.Independencia: Física y lógica Hay independencia física cuando los cambios en la organización física de la BD no afectan al mundo exterior (es decir.

.

.

Los sistemas de archivos tradicionales.Independencia: Física y lógica Los SGBD actuales proporcionan bastante independencia lógica. no ofrecen ninguna independencia lógica. en cambio. pero menos de la que haría falta. ya que las exigencias de cambios constantes en el SI piden grados muy elevados de flexibilidad. .

Lenguajes y usuarios Para comunicarse con el SGBD. se vale de un lenguaje. Hay muchos lenguajes diferentes. ya sea un programa de aplicación o un usuario directo. según el tipo de usuarios para los que están pensados y el tipo de cosas que los usuarios deben poder expresar con ellos . el usuario.

. muy expertos que querrán escribir procesos complejos y que necesitarán lenguajes complejos. dedicados exclusivamente a trabajar con la BD. aunque no sea fácil aprenderlos. ocasionales (esporádicos) que sólo harán consultas. Estos usuarios necesitarán un lenguaje muy sencillo. aunque dé un rendimiento bajo en tiempo de respuesta. no informáticos. c) Usuarios especializados. Estos usuarios necesitarán lenguajes muy eficientes y compactos.Lenguajes y Usuarios a) Usuarios informáticos. b) Usuarios finales.

para Lenguajes y Usuarios Se conocen genéricamente como DDL o data definition Lenguajes para esquemas externos. .a) Lenguajes especializados en la escritura de esquemas: es decir. b) Lenguajes especializados en la utilización de la BD (consultas y mantenimiento). Se conocen como DML o data management language. en la descripción de la BD. Lenguajes específicos esquemas internos. language. para Lenguajes específicos esquemas conceptuales. Lo más frecuente es que el mismo lenguaje disponga de construcciones para las dos funciones: DDL y DML.

En la actualidad lo utilizan prácticamente todos los SGBD del mercado.SQL: Structured Query Language Lenguaje especializado en la descripción (DDL) y la utilización (DML) de BD relacionales. . Creado por IBM al final de los años setenta y estandarizado por ANSI-ISO en 1985 (el último estándar de SQL es de 1999).

DELETE SQL . INSERT.SQL DDL • CREATE TABLE Control • COMMIT • ROLLBACK DML • SELECT. UPDATE.

con los que se especifica qué se quiere hacer sin explicar cómo se debe hacer. .SQL En cuanto a los aspectos DML. podemos diferenciar dos tipos de lenguajes: • a) Lenguajes muy declarativos (o implícitos). • b) Lenguajes más explícitos o procedimentales. que nos exigen conocer más cuestiones del funcionamiento del SGBD para detallar paso a paso cómo se deben realizar las operaciones (lo que se denomina navegar por la BD).

SQL Como es obvio. • Los lenguajes utilizados en los SGBD prerrelacionales eran procedimentales. pero tiene posibilidades procedimentales. los aspectos DDL (las descripciones de los datos) son siempre declarativos por su propia naturaleza. • SQL es básicamente declarativo. .