Está en la página 1de 26

Tema 1: Introduccin

Objetivos de los sistemas de bases de datos Vistas de datos Modelos de datos Lenguajes de definicin de datos (DDL) Lenguajes de manipulacin de datos (DML) Gestin de transacciones Gestin de almacenamiento Administrador de bases de datos Usuarios de bases de datos Estructura general del sistema

BD: Introduccin

Definicin
Es una coleccin de datos operativos almacenados y utilizados por los programadores de aplicaciones y por usuarios finales de muy diversa ndole

Idea bsica al implementar una BD: Aprovechar los mismos datos para tantas aplicaciones como sea posible.
BD: Introduccin 2

Sistema gestor de bases de datos (SGBD)


Conjunto de datos relacionados Conjunto de programas para acceder a los datos Un SGBD contiene informacin sobre una realidad concreta Un SGBD proporciona un entorno que es conveniente y eficiente en su uso Aplicaciones de bases de datos: Bancos: todas las transacciones Lneas areas: reservas, planificaciones Universidades: matrcula, titulaciones Ventas: clientes, productos, compras Fabricacin: produccin, inventario, suministros Recursos humanos: registros de usuarios, salarios Las bases de datos tocan todos los aspectos de nuestras vidas

BD: Introduccin

Objetivos de un sistema de bases de datos


Las primeras aplicaciones de bases de datos se construan sobre los sistemas de ficheros Problemas de usar sistemas de ficheros para almacenar datos:
Redundancia de datos e inconsistencias Varios formatos de fichero, informacin duplicada en diferentes ficheros Dificultad en acceder a los datos Necesidad de escribir un nuevo programa para cada nueva tarea Aislamiento de datos multiples ficheros y formatos Problemas de integridad Las restricciones de integridad (p.e. balance > 0) son parte del cdigo del programa Dificultad en aadir nuevas restricciones o cambiar las existentes
BD: Introduccin 4

Objetivos de un sistema de bases de datos (Cont.)


Problemas de usar sistemas de ficheros (cont.)
Atomicidad de actualizaciones Los fallos pueden dejar la base de datos en un estado inconsistente debido a actualizaciones parciales P.e. transferir fondos de una cuenta a otra debera o bien realizarse completamente o bien no realizarse Acceso concurrente por varios usuarios Los accesos concurrentes son necesarios para aumentar las prestaciones Los accesos concurrentes incontrolados pueden llevar a inconsistencias
P.e. dos personas leyendo un balance y modificndolo a la vez

Problemas de seguridad

Los sistemas de bases de datos dan soluciones a todos estos problemas

BD: Introduccin

Objetivos de un sistema de bases de datos (Cont.)


Es decir, un SGBD tiene por objetivos:
Acceso concurrente Independencia fsica y lgica Redundancia controlada de los datos Alta relacionabilidad de los datos Integridad de los datos Consistencia de los datos Seguridad de los datos Actualizacin fcil y coherente Alto rendimiento Reduccin de la dificultad de programacin

BD: Introduccin

Niveles de abstraccin
El nivel fsico describe cmo se almacena un registro (p.e., cliente). El nivel lgico: describe los datos almacenados en la base de datos y las relaciones entre los datos. type cliente = record nombre : string; calle : string; ciudad : integer; end; EL nivel de vista: los programas de aplicacin ocultan detalles de los tipos de datos. Las vistas tambin pueden ocultar informacin (p.e. salario) por motivos de seguridad.

BD: Introduccin

Vistas de datos
Una arquitectura para un sistema de bases de datos

nivel de vista vista 1 vista 2 vista n

nivel lgico nivel fsico

BD: Introduccin

Visin global
El mundo real

Bancos, lneas areas,

Las bases de datos

Modelos de informacin, conjuntos de entidades, atributos, ref. cruzadas, rboles equilibrados,

Las estructuras de datos

ficheros secuenciales, indexados, cadenas, hash, listas invertidas,

El almacenamiento fsico

Bits, bytes, registros, cdigos ASCII, EBCDIC,

BD: Introduccin

Instancias, esquemas e independencia


Similar a tipos de datos y variables en lenguajes de programacin Esquema la estructura lgica de la base de datos
P.e., la base de datos consiste en informacin sobre un conjunto de clientes y cuentas y la relacin entre ellos) Anlogo al tipo de datos de una variable en un programa Esquema fsico: el diseo de la base de datos a nivel fsico Esquema lgico: el diseo de la base de datos a nivel lgico

Instancia el contenido actual de la base de datos en un instante concreto


Anlogo al valor de una variable

Independencia fsica de los datos la habilidad para modificar el esquema fsico sin cambiar el esquema lgico
Las aplicaciones dependen del esquema lgico En general, los interfaces entre los diferentes niveles y componentes debera estar bien definidos para que los cambios en algunas partes no afecten de forma importante a otras.
BD: Introduccin 10

Modelos de datos
Una coleccin de herramientas para describir
datos relaciones entre datos semntica de los datos restricciones de los datos

Modelo Entidad-Asociacin o Entidad-Relacin Modelo relacional Otros modelos:


Modelo orientado a objetos Modelos de datos semiestructurados Modelos antiguos: modelo de red y modelo jerrquico

BD: Introduccin

11

Modelo Entidad-Asociacin

Ejemplo de esquema en el modelo entidad-asociacin

nombre-cliente

calle-cliente

numero-cuenta

saldo

id-cliente clientes

ciudad-cliente depositante

cuentas

BD: Introduccin

12

Modelo Entidad-Asociacin (Cont.)


Modelo E-A del mundo real
Entidades (objetos) P.e. clientes, cuentas, sucursales bancarias Asociaciones entre entidades P.e. La cuenta A-101 pertenece al cliente Prez La asociacin depositante asocia clientes con cuentas

Ampliamente utilizado para diseo de bases de datos


El diseo de bases de datos en el modelo E-A normalmente se transforma en un diseo en el modelo relacional que se utiliza para almacenamiento y procesamiento

BD: Introduccin

13

Modelo Relacional
Ejemplo de datos tabulares en el modelo relacional
Atributos

Id-Cliente 192-83-7465 019-28-3746 192-83-7465 321-12-3123 019-28-3746

nombre-cliente Prez Gmez Lpez Gmez Gonzlez

calle-cliente Principe Real Real Sol Norte

ciudad-cliente numero-cuenta Vigo Santiago Vigo Madrid Lugo A-101 A-215 A-201 A-217 A-201

BD: Introduccin

14

Un ejemplo de base de datos relacional


Id-cliente 192-83-7465 019-28-3746 677-89-9011 182-73-6091 321-12-3123 336-66-9999 019-28-3746 nombre-cliente Snchez Rodrguez Gmez Fernndez Veiga Lpez Rodrguez Alma Norte Prncipe Alcal Prncipe Diagonal Norte (a) Tabla clientes calle-cliente ciudad-cliente Santiago Vigo Madrid Madrid Madrid Barcelona Vigo

numero-cuenta A-101 A-215 A-102 A-305 A-201 A-217 A-222 (b) Tabla cuentas

saldo 500 700 400 350 900 750 700

Id-cliente 192-83-7465 192-83-7465 019-28-3746 677-89-9011 182-73-6091 321-12-3123 336-66-9999 019-28-3746

numero-cuenta A-101 A-201 A-215 A-102 A-305 A-217 A-222 A-201

(c) Tabla depositante

BD: Introduccin

15

Sistemas Gestores de Bases de Datos


UN SGBD es un software que al menos:
Gestiona las BD y al acceso a las mismas. Proporciona un LDD (Lenguaje de Definicin de Datos)
Proporciona facilidades para definir esquemas

Proporciona un LMD (Lenguaje de Manipulacin de Datos)


Proporciona facilidades para acceder y manipular los datos organizados en el modelo de datos apropiado

BD: Introduccin

16

Lenguajes de definicin de datos (DDL)


Especificacin de notacin para definir el esquema de las bases de datos
P.e. create table cuenta ( numero-cuenta balance

char(10), integer)

El compilador de DDL genera un conjunto de tablas almacenadas en un diccionario de datos Los diccionarios de datos contienen metadatos (es decir, datos sobre los datos)
esquema de la base de datos Lenguaje de almacenamiento y definicin de datos El lenguaje en el que se especifican las estructuras de almacenamiento y los mtodos de acceso usados por la base de datos Normalmente es una extensin del lenguaje de definicin de datos

BD: Introduccin

17

Lenguaje de manipulacin de datos (DML)

Lenguaje para acceder y manipular a los datos organizados por el modelo de datos apropiado
El DML tambin se conoce como lenguaje de consulta

Dos clases de lenguajes


Procedimental el usuario especifica que datos quiere consultar y como obtener esos datos No procedimental el usuario especifica que datos quiere consultar sin especificar como obtener esos datos

SQL es el lenguaje de consulta ms ampliamente usado

BD: Introduccin

18

SQL
SQL: lenguaje no procedimental ampliamente utilizado
P.e. encontrar el nombre del cliente con id-cliente 192-83-7465 select cliente.nombre-cliente from cliente where cliente.id-cliente = 192-83-7465 P.e. encontrar los balances de todas las cuentas pertenecientes al cliente con id-cliente 192-83-7465 select cuenta.balance from depositante, cuenta where depositante.id-cliente = 192-83-7465 and depositante.numero-cuenta = cuenta.numero-cuenta

Los programas de aplicacin normalmente acceden a bases de datos mediante


Extensiones de lenguaje que permiten embeber SQL Interfaces de programacin de aplicaciones (p.e. ODBC/JDBC) que permiten enviar consultas SQL a una base de datos

BD: Introduccin

19

Gestin de transacciones
Una transaccin es un conjunto de operaciones que realizan una nica funcin lgica en una aplicacin de bases de datos El componente de gestin de transacciones asegura que la base de datos se mantiene en un estado consistente (correcto) aun cuando se produzcan fallos en el sistema (p.e. fallos de alimentacin o del sistema operativo) o fallos de transaccin. El gestor de control de concurrencia controla la interaccin entre transacciones concurrentes, para asegurar la consistencia de la base de datos.

BD: Introduccin

20

Gestin de almacenamiento
El gestor de almacenamiento es un mdulo que proporciona el interfaz entre los datos de bajo nivel almacenados en la base de datos y los programas de aplicacin y consultas enviadas al sistema. El gestor de almacenamiento se encarga de:
Interactuar con el gestor de ficheros Conseguir un almacenamiento, recuperacin y actualizacin eficientes de los datos

BD: Introduccin

21

Administrador de bases de datos


Coordina todas las actividades del sistema de bases de datos; el administrador de bases de datos tiene un buen conocimiento de los recursos y necesidades de informacin de la organizacin. Las funciones del administrador de bases de datos incluyen:
Definicin de esquemas Definicin de mtodos de acceso y estructuras de almacenamiento Modificacin de esquemas y organizacin fsica Garantizar derechos de acceso a la base de datos Especificar restricciones de integridad Actuar como enlace con los usuarios Monitorizar las prestaciones y responder a cambios en los requisitos

BD: Introduccin

22

Usuarios de bases de datos


Los usuarios se diferencian por la forma en que esperan interactuar con el sistema Programadores de aplicaciones interactuan con el sistema a travs de llamadas DML Usuarios sofisticados hacen peticiones en un lenguaje de consulta de bases de datos Usuarios especializados escriben aplicaciones de bases de datos sofisticadas que no encajan en el marco del procesamiento tradicional de datos Usuarios no tcnicos llaman uno de los programas de aplicacin permanentes que se han escrito previamente
P.e. gente accediendo a la base de datos a travs del web, cajeros de banco, personal de oficina

BD: Introduccin

23

Estructura general del sistema


usuarios no tcnicos (vendedores, agentes, usuarios web) usan programadores de aplicaciones escriben usuarios sofisticados (analistas) usan administradores de bases de datos usan

interfaces de aplicacin

programas de aplicacin

herramientas de consulta

herramientas de administracin

compilador y enlazador cdigo objeto de programa de aplicacin evaluador de consultas

consultas DML

interprete DDL

compilador y organizador de DML

procesador de consultas

gestin de bufferes

gestin de ficheros

gestin de autorizacin e integridad

gestin de transacciones

gestin de almacenamiento

ndices

diccionario de datos

gestin de disco

datos

datos estadsticos

BD: Introduccin

24

Arquitecturas de aplicacin
usuario cliente aplicacin aplicacin cliente usuario

red

red

programa servidor sistema de bd servidor sistema de bd

a. arquitectura en dos niveles

b. arquitectura en tres niveles

Arquitectura en dos niveles: P.e. los programas clientes utilizan ODBC/JDBC para comunicarse con la base de datos Arquitectura en tres niveles: P.e. las aplicaciones basadas en web, o las aplicaciones que utilizan middleware

BD: Introduccin

25

Fin del tema 1