Escolar Documentos
Profissional Documentos
Cultura Documentos
Tabla de contenidos
La importancia de las BDs Concepto de Base de Datos y SGBD De los sistemas de ficheros a la BD relacional. Niveles de abstraccin Razones que justifican el uso de BD y cuando No Una introduccin al modelo relacional. Tablas, relaciones e ndices Problemas de un mal diseo de BD Introduccin al lenguaje SQL Restricciones de integridad y reglas de negocio Concepto de transaccin Arquitectura de un SGBDR Componentes Usuarios Cuestiones
Marta Zorrilla - UC 2
2011
Bibliografa
Bsica Cap. 1 y 2. Elmasri, R., Navathe, S.B., Fundamentos de Sistemas de Bases de Datos, 5; edicin, Pearson Education, 2008. Cap. 1. Mora, E., Zorrilla, M. E., Daz de Entresotos, J. Iniciacin a las bases de datos con Access 2002. Daz de Santos, 2003. Cap. 1. Silberschatz, A., Korth, H.F., Sudarshan, S., Fundamentos de Bases de Datos, 5 edicin, Madrid, 2006. Complementaria Piattini et al. Tecnologa y diseo de bases de datos. RA-MA, 2006. Pons, O. et al. Introduccin a los sistemas de bases de datos. Paraninfo. 2008 Garca Molina, H., Ullman, J., Widom, J. Database systems: the complete book. 2nd ed. Pearson Education International, cop. 2009
3 Marta Zorrilla - UC 2011
Procesos transaccionales
(compras, prstamos, gestin acadmica, experimentos cientficos)
Planificacin de trabajos
(Workflow, scheduler, )
Oferta de servicios
(bsquedas bibliogrficas, videotecas,..)
La inteligencia de negocio
Marta Zorrilla - UC
2011
Definicin de BD y SGBD
Base de Datos (def): coleccin organizada de datos, relativa a un problema concreto, que puede ser compartida por un conjunto de usuarios/aplicaciones. Sirven para:
ALMACENAR CONTROLAR
Restricciones Seguridad
CONSULTAR
INFORMACIN ACTUALIZAR
Sistema Gestor de Bases de Datos: programa o conjunto de programas que sirve para mantener bases de datos y responder consultas sobre ellas.
Marta Zorrilla - UC 5
De los Sistemas de Ficheros a la BD Relacional En los primeros aos (dcada de los 70 y principios de los 80), las aplicaciones de BD se construan directamente sobre los sistemas de ficheros Esto tena serias desventajas :
Redundancia e inconsistencia de los datos Mltiples formatos de ficheros, duplicacin de informacin en diferentes ficheros Ejemplo Cuenta (nombre, direccion, tfno, n cc, cantidad) Ingreso (nombre, direccion, tfno, n cc, cantidad, fecha) Datos aislados Mltiples formatos y ficheros Problemas de integridad Restricciones de integridad como sexo= M o F se encuentra en el cdigo del programa y no establecido explcitamente en la estructura del fichero Difcil y costoso el modificar o aadir nuevas restricciones (altura>=0, fecha>=hoy, etc.)
Marta Zorrilla - UC 6
2011
Desventajas (cont.)
Dificultad en el acceso a los datos Necesidad de escribir un programa para realizar cada proceso Atomicidad de las actualizaciones Prdida de consistencia por realizacin de actualizaciones parciales Ej.: Transferencia de fondos de una cuenta a otra (debe restarse una cantidad de una cuenta y sumarse esa misma cantidad a la otra, o no hacerse nada) Acceso concurrente por mltiples usuarios Necesidad de acceso concurrente para incrementar el rendimiento Acceso concurrente bajo control para evitar inconsistencias Ej.: Se ha de impedir que dos personas estn actualizando la misma cuenta corriente al tiempo Problemas de seguridad Difcil permitir el acceso a los usuarios a parte de los datos y/o determinadas acciones (actualizar cuenta, leer datos personales, insertar clientes, etc.)
Marta Zorrilla - UC 7
2011
La gestin y almacenamiento de datos es el que impulsa el crecimiento del uso de las computadoras. De 1950 a 1960, se desarrollaron las cintas magnticas para el almacenamiento de datos cuya lectura era secuencial. Apareci el lenguaje COBOL, primer lenguaje que tiene una parte donde se describen los datos y los ficheros que van a ser utilizados de manera independiente a las acciones que se van a realizar. En la dcada de los 70, aparecieron los discos magnticos lo que permiti el acceso directo a los datos. Surgieron las BD jerrquicas y en red, en las que el tratamiento de informacin requera conocer detalles de implementacin (uso de punteros) y la codificacin de consultas se realizaba de forma procedimental Codd defini el modelo relacional (1970)
Modelo terico bien fundamentado Independencia lgica y fsica de los datos Lenguaje de consulta declarativo, SQL
Pero hasta 1980 no aparecieron gestores relacionales comerciales (Oracle, IBM DB2, Ingres,) con buen rendimiento y en los que el diseo y el mantenimiento de las BDs resulta ms sencillo (independencia fsica y lgica). Asimismo comenzaron los: Estudios de BD distribuidas y paralelas Y de BD orientadas a objetos
Desde 1990 se encuentran en el mercado: BD objeto-relacionales BD dimensionales (tecnologa OLAP) BD XML BD geogrficas etc.
Marta Zorrilla - UC
Modelo relacional
2011
Programa 2
Programa n
Vista A
Nivel Conceptual
Nivel Interno
Arquitectura ANSI-SPARC
2011
Marta Zorrilla - UC
10
Niveles de abstraccin (y 2)
ANSI-SPARC (1975) propuso la arquitectura en tres niveles para conseguir la separacin entre los programas de aplicacin y los datos
Nivel interno: Describe la estructura de almacenamiento fsico de base de datos (rboles B+, montones, estructura de ndices). Los datos se almacenan en este nivel. Cada SGBD implementa su propio nivel interno. No estndar. Nivel conceptual: Representacin del conjunto de datos correspondiente al problema de informacin a gestionar. Recoge el esquema conceptual, esto es, la estructura de la base de datos en trminos de elementos lgicos (entidades, atributos, relaciones y restricciones), ocultando los detalles fsicos de almacenamiento. Nivel externo o de vistas: Esquemas que recogen las distintas perspectivas de los usuarios y/o aplicaciones para cada proceso (compras, matrcula, expedientes, etc.). Permiten ocultar informacin por cuestiones de seguridad (Ley de proteccin de datos, datos sensibles para la seguridad de una empresa, etc.)
2011
Marta Zorrilla - UC
11
Niveles de abstraccin (y 3)
Independencia lgica: capacidad de cambiar el nivel conceptual sin tener que cambiar las vistas ni los programas de aplicacin Aadir restricciones de dominio, incorporar un nuevo atributo, aadir nuevas relaciones, Independencia fsica: capacidad de cambiar el nivel interno sin tener que cambiar ni el nivel conceptual ni nivel externo. Aadir ndices, ampliar espacio de almacenamiento, realizar particiones, etc.
DATE (1981) define la independencia como la inmunidad de las aplicaciones ante cambios de la estructura del almacenamiento y de los mtodos de acceso
2011
Marta Zorrilla - UC
12
Flexibilidad de adaptacin a cada problema. Optimizacin en la gestin de la informacin. Garantiza la independencia fsica y lgica de los datos. Control de la integridad de los datos. Garanta sobre la consistencia de la informacin. Facilidad de acceso concurrente. Proteccin ante fallos del sistema. Seguridad ante accesos restringidos.
2011
Marta Zorrilla - UC
13
NoSQL (non-relational databases) Grandes volmenes de datos sin requisitos ACID (transacciones)
Sistemas distribuidos y escalables
Ej: Google (BigTable), Facebook (Cassandra), etc.
2011
Marta Zorrilla - UC
14
El modelo relacional
Personal
NOMBRE Pedro Luis Mara Ana PROFESION LOCALIDAD profesor estudiante estudiante estudiante Santander Santander Las Palmas Madrid Los operadores de consulta generan nuevas tablas Cada fila establece una relacin entre un conjunto de valores Los datos se conciben agrupados en forma de tablas
Mara
Ana
2011 Marta Zorrilla - UC
Las Palmas
Madrid
15
El modelo relacional (y 2)
BANCOS
ENTIDAD 0893 0059 3428 5632 NOMBRE Santander Popular BBVA Banesto
Toda tabla tiene una columna o conjunto de columnas que permiten identificar cada una de sus filas; stas componen la llamada clave principal (Primary Key, PK) de la tabla. Los valores de la clave principal no se pueden repetir
(Entidad en Bancos, y la pareja Entidad-Codigo_Oficina en Oficinas) .
OFICINAS
ENTIDAD 0893 3428 0893 5632 0893 CODIGO_OFICINA 001 022 022 213 300 POBLACION Madrid Las Palmas Gldar Oviedo Barcelona DIRECCION Castellana, 73 Triana, 21 R. Moreno, 3 Ura, 43 Diagonal, 435
Este vnculo de referencia entre dos tablas se establece mediante columnas de igual tipo de dato en las dos tablas y se denomina clave ajena o Foreign Key (FK).
La referencia de una fila de una tabla a otra de la otra tabla se produce cuando ambas tienen el mismo valor (columna Entidad en Oficinas con relacin a Entidad en Bancos).
2011 Marta Zorrilla - UC 16
El modelo relacional (y 3)
TIPOS DE DATOS: cada columna de una tabla tiene asociado un tipo de dato. Existen un subconjunto estndar pero hay otros dependientes del gestor que se utilice
Numrico (numeric).
Enteros: Cortos (smallint). Largos (integer). Decimales: definidos por su precisin y escala (decimal) Notacin cientfica: Simple precisin (smallfloat) Doble precisin (float)
El modelo relacional (y 4)
NDICES: estructuras de datos adicionales que permiten
Realizar bsquedas ms giles en las tablas. aunque suponen una sobrecarga para realizar las actualizaciones de datos
ej: campo ttulo en una tabla que recoja los libros disponibles en una biblioteca. Se justifica por ser el campo sobre el que se realizan ms consultas
Establecer restricciones de unicidad no permitir repeticiones de un valor en la columna o columnas afectadas por el ndice
ej: campo ISBN en una tabla que recoja los libros disponibles en una biblioteca
2011
Marta Zorrilla - UC
18
Primera alternativa
Locales_propietarios
CODIGO UBICACION SUPERFICIE DNI NOMBRE DIRECCION
PK
Repeticin de informacin
Posibilidad de contradicciones en los datos Problemas en inserciones Prdida de informacin al borrar
2011 Marta Zorrilla - UC 20
Propietarios
DNI NOMBRE DIRECCION
Segunda alternativa
Locales
CODIGO UBICACION SUPERFICIE
2011
Marta Zorrilla - UC
21
Propietarios
DNI NOMBRE DIRECCION
Tercera alternativa
Locales
DNI CODIGO UBICACION SUPERFICIE
2011
Marta Zorrilla - UC
22
Tercera Cuarta Un propietario puede tener varios localesalternativa (alternativa n) mientras Propietarios Propietarios que un local slo puede ser de un propietario (1). DNI NOMBRE DIRECCION
DNI NOMBRE DIRECCION
Propiedad
DNI CODIGO DNI
Locales
Locales
Si se desea que un propietario pueda tener varios locales y, al mismo tiempo, que un local pueda se de varios propietarios, la relacin es simtrica, es de n a n y no puede ser resuelta con slo dos tablas. Para conseguirlo, es necesario introducir una tabla auxiliar que tenga relaciones de de n a 1 con las de propietarios y locales.
2011
Marta Zorrilla - UC
23
El lenguaje SQL
2011
Marta Zorrilla - UC
24
CREATE TABLE LOCALES (CODIGO DNI UBICACIN SUPERFICIE CHAR(5) NOT NULL CONSTRAINT pk_loc PRIMARY KEY, CHAR(10) NOT NULL, CHAR(4) NOT NULL, DEC(8,2) NOT NULL,
CONSTRAINT fk_loc FOREIGN KEY ( DNI ) REFERENCES PROPIETARIOS ( DNI )); PROPIETARIOS
DNI NOMBRE DIRECCION
LOCALES
CODIGO DNI UBICACION SUPERFICIE
2011
Marta Zorrilla - UC
25
Manipulacin de datos
Insertar una nueva fila en la tabla PROPIETARIOS
PROPIETARIOS DNI NOMBRE DIRECCION
INSERT INTO PROPIETARIOS (DNI, NOMBRE, DIRECCION) VALUES (13234567R, Sanz, Luis, Gran Va 26)
(DNI
NOMBRE DIRECCION TELEFONO SEXO FE_ALTA ESTATURA
CHAR(10)
CHAR(25) CHAR(30) CHAR(15), CHAR(1) DATE DEC(3,2)
NOT NULL,
NOT NULL, NOT NULL, CHECK ( SEXO in (M, F) NOT NULL, DEFAULT getdate() NOT NULL,
CONSTRAINT Valor_estatura CHECK (ESTATURA > 1,75) PRIMARY KEY ( DNI ));
2011
Marta Zorrilla - UC
27
Ejemplo: para cada fila de la tabla LOCALES creada previamente, los valores de DNI_propietario y DNI_arrendatario no pueden ser iguales.
PERSONAS DNI
LOCALES
Codigo Mediante la instruccin CREATE DOMAIN (SQL-99) se pueden definir un tipo de dato de Nombre DNI_propietario X usuario a partir de un tipo de dato estndar (no la incluyen todos los gestores) Direccion DNI_arrendatario Ubicacion CREATE DOMAIN Estatura DEC( 3,2) Superficie
ALTER TABLE LOCALES WITH NOCHECK ADD CONSTRAINT CK_locales CHECK (DNI_propietario <> DNI_arrendatario)
2011
Marta Zorrilla - UC
28
Restricciones (3)
Los triggers (disparadores) de manipulacin son procesos predefinidos que entran en accin en respuesta a eventos especficos de manipulacin de datos (insert, update, delete). Son ms flexibles que los asertos para expresar restricciones semnticas. Generalmente se utilizan para: recoger restricciones complejas (reglas de negocio) automatizar procesos anotar acciones (log) Los incluyen generalmente los gestores aunque su codificacin no es estndar
Ejemplo: para cada fila de la tabla LOCALES, los valores de DNI_propietario y DNI_arrendatario no pueden ser iguales.
PERSONAS
DNI Nombre Direccion
AHORA LO CONTROLAMOS POR DISPARADOR, SOLO A MODO DE EJEMPLO, YA QUE SI SE PUEDE DEFINIR MEDIANTE CHECK RESULTAR MS EFICIENTE
2011 Marta Zorrilla - UC
29
Al ejecutar la instruccin UPDATE sobre la tabla LOCALES, entra en accin el disparador. Este hace uso de la tabla inserted, tabla que SQL Server utiliza para almacenar las filas afectadas por la instruccin y que guardar en la BD si no hay error. Esta tabla y la tabla deleted (que contiene las filas que se sustituyen o eliminan de la BD) se utilizan para realizar el control de reglas integridad. En TSQL, el programador es el responsable de cerrar la transaccin con error (rollback)
CREATE TRIGGER CTRL_locales ON LOCALES FOR INSERT, UPDATE AS BEGIN IF ( SELECT count(*) FROM inserted WHERE inserted .dni_propietario= inserted.dni_arrendatario) >0 BEGIN RAISERROR ('El DNI del propietario no puede coincidir con el DNI del Arrendatario.', 16, 1) ROLLBACK TRANSACTION inserted RETURN Codigo DNI_propietario DNI_arrendatario Ubicacion Superficie END L-234 60601602 50501502 Bailn 46 350 END L-302 60601602 60601602 Becedo 10 255
2011 Marta Zorrilla - UC 30
Concepto de transaccin
Transaccin: conjunto de
operaciones de manipulacin de datos que deben ser consideradas como una unidad. Las debe definir el programador. Todas las operaciones que se ejecutan individualmente en un gestor ACID son transaccionales. Propiedades (ACID):
ATOMICIDAD: todo o nada
BEGIN TRANSACTION
UPDATE CUENTA SET saldo = saldo + 50 WHERE numero_cuenta = 0893
UPDATE CUENTA
SET saldo = saldo - 50 WHERE numero_cuenta = 2345 Si no ha habido ningn error, se confirman los cambios COMMIT TRANSACTION Y si ha habido algn error, no se almacenan los cambios ROLLBACK TRANSACTION
2011
31
Arquitectura de un SGBDR
El Procesador de consultas es el mdulo responsable de: * interpretar las instrucciones de definicin y registrar su definicin en el diccionario de datos * traducir las instrucciones LMD en el lenguaje del motor de evaluacin para determinar el plan de ejecucin. * ejecutar las consultas solicitadas
consulta consulta
Analizador y traductor
Optimizador
resultado resultado
Motor de ejecucin
estadsticas datos
2011
Silberschatz, Korth and Sudarshan
Marta Zorrilla - UC
32
Arquitectura de un SGBDR ( y 2)
El Gestor de almacenamiento es el mdulo que proporciona la interfaz entre los datos de bajo nivel almacenados en la BD y los programas de aplicacin y las consultas remitidas al sistema. Es el responsable de: - interaccionar con el gestor de archivos - almacenamiento eficiente y recuperacin y actualizacin de datos * El Gestor de Transacciones asegura la Atomicidad y la Durabilidad de las transacciones a pesar de fallos en el sistema ( p. ej. Corte de luz, cada del S.O. ) o de las transacciones establecidas en los programas.
- Gestor de Concurrencia controla la interaccin entre las transacciones concurrentes (aislamiento) para garantizar la consistencia de la informacin - Gestor de Recuperacin permite retornar a una situacin estable.
* El Gestor de Archivos gestiona la asignacin de espacio en disco y las estructuras de datos * El Gestor de Memoria Intermedia trae los datos del disco a la cach.
2011
Silberschatz, Korth and Sudarshan
Marta Zorrilla - UC
33
Tipos de usuario
Los tipos de usuario se determinan por el tipo de interaccin que realizan:
Usuarios normales invocan programas de aplicacin que se han escrito previamente E.j. acceso a BD en la Web (cuentas bancarias, carritos de la compra, etc) Programadores de aplicacin escriben programas que embeben las llamadas a la BD. Utilizan herramientas como Eclipse, .Net,) Usuarios sofisticados interactan con el sistema sin escribir programas, trabajan con el LDD y LMD
Usuarios especializados escriben aplicaciones de bases de datos especializadas que no encajan con el procesamiento tradicional.
Administrador de bases de datos responsable del mantenimiento del gestor (instalacin, sintonizado, rendimiento, seguridad, etc.)
2011
Silberschatz, Korth and Sudarshan
Marta Zorrilla - UC
34
Cuestiones
1.
2. 3.
4.
5. 6. 7.
Defina qu es una Base de datos relacional Qu restricciones se pueden recoger en una BD Relacional? Ponga un ejemplo de cada una. Qu significa independencia fsica y lgica de los datos? Qu se entiende por integridad y consistencia de los datos?Cmo se pierde la consistencia? Indique las instrucciones del lenguaje SQL que permiten realizar la manipulacin de datos. Qu es una transaccin? Cundo se deben utilizar? Enumere los elementos que componen un SGBDR e indique la funcin de cada uno.
2011
Marta Zorrilla - UC
35