You are on page 1of 34

Teora de Bases de Datos

0.-Temario Bases de Datos II (Teora de Bases de Datos)


1 . - I n tr o d uc c i n a l os S i s te ma s de Bas es de Da tos . 1.1.- Sistemas de informacin y Bases de datos: Definiciones y conceptos. 1.2.- Sistemas Gestores de Base de Datos (SGBD). Arquitectura ANSI-SPARC. 1.3.- El nivel interno: Archivos , pginas e ndices. El nivel conceptual y externo. 2 . - Mo de l o s de S G BD. 2.1.- El modelo jerrquico. 2.2.- El modelo de Red. 2.3.- Modelo de Lista Invertida. 3 . - S i s te ma s G es t or es de Ba se de Da tos Re la c i o na l e s (S G BDR ). 3.1.- Caractersticas del modelo Relacional. 3.2.- Conceptos y definiciones. 3.3.- Vistas. 3.4.- Claves, dominios e integridad de claves primarias y externas. 3.5.- Algebra relacional. 3.6.- Tablas del sistema (Metabase). 4 . - E l e ntor n o de tr a ba j o de Ba se s de Da tos . 4.1.- Transacciones: Concepto y utilizacin. 4.2.- Concurrencia y bloqueos. 4.3.- La administracin de Bases de Datos: Seguridad y permisos.

Pgina 1

Teora de Bases de Datos

1.- Introduccin a los Sistemas de Bases de Datos.


1.1.- Sistemas de informacin y Bases de datos: Definiciones y conceptos.
Sistemas de informacin de la empresa: Es el conjunto de mecanismos que controlan la distribucin, acceso y almacenamiento de los datos relevantes para la administracin de una organizacin. Bases de datos: Colecciones de informacin organizada que describen un sistema. Las bases de datos estn pensadas para resolver los problemas asociados al manejo de grandes volmenes de informacin. Sistema Gestor de Bases de Datos (SGDB): Aplicaciones informticas que manejan y gestionan esta informacin. F un c i o ne s m n i m a s de u n S G BD : Crear y mantener la estructura de los datos (esquema de la BD, tablas, campos, ndices, ...). Actualizar los datos (altas, bajas, modificaciones, ...). Presentar la informacin (listados, ...). Facilitar el desarrollo de aplicaciones (interface de programacin (API), lenguajes 4GL, generadores de aplicaciones, ...). S i s te m a de fi c he r os vs . S G BD: Independencia fsica: No se necesita saber nada de la situacin, rutas, formas de almacenamiento, etc. Independencia lgica: La informacin se pueden ver de muchas formas que en la mayora de los casos no tienen nada que ver con la manera en que esta guarda.

1.2.- Sistemas Gestores de Base de Datos (SGBD). Arquitectura ANSI-SPARC.


Usuarios Nivel externo Distintas vistas de los usuarios. Administrador Nivel conceptual Estructura de la base de datos. Entidades, campos, relaciones, etc. Fabricante (motor o DBMS) Nivel externo: Presenta informacin conceptual. Nivel conceptual: Diseo de la base de datos (editor de esquemas).
Pgina 2

Nivel interno Almacenamiento, nivel fsico.

Teora de Bases de Datos

Nivel interno: Slo sabe cmo el fabricante. Co nc e p to de m o tor de ba s e de da tos . Es un conjunto de programas que controlan y manejan todos los accesos a la base de datos. Esquema de actuacin: a) Los usuarios y aplicaciones hacen una solicitud de acceso (de conexin, de consulta, de actualizacin). b) El motor analiza esa solicitud y la interpreta. c) El DBMS inspecciona el esquema conceptual, planifica y realiza la correspondencia entre este esquema conceptual y el interno, es decir, traza rutas optimizadas de acceso a los datos fsicos. d) El DBMS realiza las operaciones necesarias sobre los datos y los pone a disposicin de las aplicaciones. Componentes del motor de ACCESS O.D.B.C. (Open Data Base Conectibity) Controladores para acceder a datos externos /remotos. Query Manager Es el optimizador de consultas. D.A.O. Es una jerarqua de clases montada sobre el API; de hecho constituye el API de programacin. P r og r a ma c i n de DAO . S i n ta x i s a pr ox i m a da .
Function NuevaTabla() Dim miBD As DATABASE Dim miDeftabla As TableDef Dim miCampo As Field Set miBD = CurrentDb() Set miDeftabla = miBD.CreateTableDef("Clientes") Set miCampo = miDeftabla.CreateField("FechaAlta", DB_DATE) miDeftabla.Fields.Append miCampo miBD.TableDefs.Append miDeftabla Debug.Print "Se cre la tabla" NuevaTabla = True End Function

guarda la estructura de la tabla, es una definicin de tabla.


TableDef

En Field se guardan los campos de la BD. Asignacin de la BD. BD que se ests utilizando. Crea una nueva estructura de tabla, la cual se llamar Clientes. Las maysculas indican constantes creas un campo (nombre, formato predefinido). Todas las estructuras de tabla se guardan en un
TableDef.

Con el Append aadir una definicin de tabla a la coleccin de estructuras de tablas de la BD Al ejecutarlo nos devolver un -1 si es verdadero

Ejemplo de creacin de una tabla (DAO). Nueva base de datos - Mdulo Nuevo. A continuacin nos aparece la pantalla para picar el cdigo y una vez est introducido para compilarlo haremos: Men - Ejecutar - Compilar mdulos cargados, para crear la nueva tabla. Haciendo: Men - Ver - Ventana de ejecucin nos aparecer una ventana que es como una especie de DEBUG para poder depurar nuestro programa. S ec c i n pos te r i or y se cc i n fr o nta l .

Pgina 3

Teora de Bases de Datos

El objeto general de los sistemas de BD es, en general, apoyar el desarrollo de aplicaciones. Desde esa perspectiva tenemos el esquema siguiente:
aplicaciones interface DBMS base de datos seccin posterior seccin frontal

Seccin posterior: Es el DBMS o motor en s. Secciones frontales: Son las aplicaciones contra el DBMS. a) Aplicaciones escritas por los usuarios en lenguajes soportados por el API de DBMS o embebidos en lenguajes clsicos (C, COBOL, etc.). b) Aplicaciones suministradas por el fabricante (utilidades) que trabajan contra el DBMS. Editores de esquemas. Editores de consultas. Generadores de informes y listados. tiles de importacin, exportacin, etc. Ar qu i t e c tur a Cl i e n te / S e r v i d or y di s tr i b u i da s . Aparecen al romper el esquema anterior. Se dedican diferentes mquinas para las secciones posteriores y frontales. Mquinas de seccin frontal. Red de comunicaciones DBMS BD Ventajas: Procesos distribuidos. Aprovechar las ventajas de cada S.O. y hardware para cada seccin. Inconvenientes: Mayor complejidad. Posible incremento del trfico de la red. Mquina de seccin posterior.

Diferentes arquitecturas Cliente/Servidor. Las aplicaciones Cliente/Servidor pueden dividirse en: Servicios de presentacin Servicios de control (proceso) Servicios de datos Las aplicaciones cliente/servidor difieren en cmo y en cuntas mquinas se dividen estos 3 apartados.
Pgina 4

Teora de Bases de Datos

1) 2)

Mquina 1 Mquina 2 Mquina 1 Mquina 2

Presentacin Proceso y datos. Presentacin y proceso Datos Presentacin asociados y procesos Cliente/Servidor puro Ms utilizada Arquitectura 2 pisos

3)

Mquina 1 Mquina 2

Datos y procesos asociados

4)

Mquina 1 Mquina 2 Mquina 3

Presentacin Proceso Datos Arquitectura 3 pisos

Cliente/Servidor ODBC. ODBC es un standard de conectividad con distintos sistemas de Bases de Datos desde WINDOWS. Puede entenderse como un API genrico. Utilidades: Desarrollo de aplicaciones Cliente/Servidor . Acceso a Bases de Datos remotas desde aplicaciones de productividad personal (procesadores de texto, hojas de clculo, etc.).

Esquema:

usuarios aplicaciones ODBC driver manager ODBC SQL server ORACLE OTROS controladores
Pgina 5

crear una conexin ODBC e indicar con qu quieres trabajar

Teora de Bases de Datos

red de comunicaciones DBMS SQ server DBMS ORACLE

Recogen las peticiones de acceso a datos y las traducen para que se puedan entender. Ejemplos prcticos: 1) Conocer el nivel de compatibilidad que ofrece el controlador ODBC que se vaya a utilizar. 2) Crear una definicin de acceso ODBC. Men - Panel de control - Icono ODBC - Add - SQL Server. Uso: 1. MS-QUERY (editor de consultas). Archivo - Nueva consulta - Otro - OK - Usar. 2. EXCEL Men - Insertar - Macro - Mdulo. Para cargar la librera xlodbc.xla: Men - Herramientas - Referencias. Y la buscamos en la lista.

Para ver las funciones que contiene, Men - Ver - Examinar objetos.

Cdigo:
Proced DatosDesde() Dim strConex QueSea Cadena Dim strSQL QueSea Cadena strConex = "DSN=ViajesLaMonda" 'Funcin perteneciente a la librera, poner en marcha la conexin. nCanal = SQLOpen(strConex; Rango("A3:A3"); 4) strSQL = "SELECT * FROM VIAJES" 'Muestra aqu toda la cadena de conexin. 'Variable que almacena la cadena de conexin.

'El *indica todas. 'Como es una consulta devolver columnas.

nValor = SQLExecQuery(nCanal; strSQL)

nFilas = SQLRetrieve(nCanal; Rango("A7:A7"); ; ; Verdadero) xValor = SQLClose(nCanal) Fin Proced

Pgina 6

Teora de Bases de Datos

Esquema: EXCEL XLODBC:XLA DRIVER ODBC RED DE COMUNICACIN DBMS SQL SERVER BD 3. ACCESS 1) Empezar una nueva Base de Datos. 2) Men - Archivo - Importar importa la estructura y los datos de una tabla de una Base de Datos externa (xBase, Paradox, Archivos .txt, ODBC, etc.) a una tabla Access. (Se utiliza para migrar.) 3) Men - Archivo - Adjuntar Guardar en Access una referencia a una tabla externa y permite utilizarla en Access (formularios, consultas, informes, etc.). No se puede cambiar la estructura.

librera que tiene EXCEL para conexiones ODBC

Esquemas: SQL server Acceso mediante ODBC a servidores de BD Base Datos referencia MDS ODBC Access

Transmite solicitudes a SQL SERVER CLIPPER xBASE DBF Acceso directo a sistemas de ficheros
Pgina 7

ACCESS

Teora de Bases de Datos

referencia

MDB

Peticiones directamente al motor de Access Ejercicio Crear una Base de Datos en Access de nombre Facturas que contenga la tabla Facs con la estructura siguiente: idFac idCli FechaFac Importe Crear un origen de datos ODBC (seleccionar el controlador Access 2.0). Este controlador pide la localizacin de la Base de Datos a utilizar. Probar desde MS-QUERY la conexin de este origen de datos. Si funciona, probarlo desde Excel utilizando la librera xlodbc.xla Bas es de Da tos d i s tr i b u i d a s . En las Bases de Datos distribuidas existen varia secciones posterior. La Base de Datos se distribuye entre diferentes DBMS y cada uno accede a sus tablas. Acceso distribuido: Las aplicaciones acceden a las tablas de diferentes DBMS pero entre estos no existe ninguna conexin. Sistema de Bases de Datos distribuidas: Se percibe un nico esquema de Base de Datos. Se propagan las modificaciones de los esquemas, se soportan las transacciones distribuidas. Transaccin: Es un conjunto de operaciones de actualizacin de datos que pasan de un momento coherente a otro momento coherente.

usuarios aplicaciones red de comunicaciones ca pa de so f t wa re DBMS1 DB1 Ventajas: DBMS2 DB2 DBMS3 DB3

Pgina 8

Teora de Bases de Datos

Muchas empresas ya son distribuidas. Los datos estn ms cerca de dnde se necesitan. Proceso ms distribuido. Inconvenientes: Mayor complejidad. Resolver: propagacin de actualizaciones. Optimizacin de consultas entre tablas de diferentes DBMS. Transacciones distribuidas.

1.3.- El nivel interno: archivos, pginas e ndices. El nivel conceptual y externo.


El nivel interno es el nivel fsico. En l, el DBMS se encarga de actualizar los datos.

Pgina:
Es una unidad de lectura/escritura en disco (la informacin que se lee/escribe en cada operacin de E/S). El tamao depende del S.O. y del S.G.B.D. En la F.A.T., en caso de MS-DOS, se mantiene informacin de la pgina en que se inicia un archivo. Cada pgina tiene un apuntador que seala la siguiente pgina de ese archivo. La optimizacin del uso de una Base de Datos consiste en minimizar el nmero de operaciones de E/S. Para ello sera interesante que las pgina fuesen contiguas (creacin de espacio en disco slo para la Base de Datos). Manejador de disco: Componentes del S.O. que conoce las direcciones fsicas de las pginas. Sus funciones son: Leer pginas. Escribir pginas. Aadir pginas nuevas. Borrar pginas. Manejador de archivos: Solicita pginas al manejador de disco. Estas pginas contienen los registros identificados de manera nica (ROWid identificador de registro). Funciones: Leer un registro de la pgina. Reemplazar un registro de la pgina. Aadir, eliminar registros. Crear y destruir registros. El DBMS es quien entiende la estructura de los registros proporcionados (campos, tipos de datos, etc.).

ndices:
Archivos auxiliares que utiliza el DBMS para recuperar registros segn otros criterios de ordenacin y facilitar las bsquedas. El archivo de ndice ms sencillo es el ndice denso. Este archivo tiene una entrada para cada valor de campo (campo indexado) y almacena este valor y un apuntador (ROWid) al registro que contiene el valor. Ejemplo: Manera fsica en que est guardada ndice denso.
Pgina 9

Teora de Bases de Datos

la tabla. IdCli 001 002 003 004 Tipos: ndice denso Contiene una entrada para cada registro, y por lo tanto, cada entrada apunta a una registro individual. ndice no denso Contiene una entrada para cada grupo de registros agrupados segn el campo indexado. El apuntador seala a una pgina (que contendr un conjunto de registros). Posteriormente se hace una revisin de la pgina en memoria. El nmero de operaciones de E/S ser menor y el ndice ser ms pequeo. Clave de indexacin Campo/s para los que se crea un ndice. Clave de indexacin simple Por un slo campo. Clave de indexacin compuesta Por varios campos. ndice principal Creado para el campo clave. ndice secundario Los dems que se creen para la tabla. ndices de rbol B (1972) Son ndices con estructura de rbol (multinivel). Tienen la siguiente estructura: Conjunto secuencia: ndice de un slo nivel de los datos reales. Conjunto ndice: Es un ndice con estructura de rbol sobre el conjunto secuencia. El nivel superior del conjunto ndice se compone de un solo nodo (raz). Esquema: conjunto ndice
* 12 * 32 * * 50 * 82 *

Nombre L J S D

Provincia Madrid Barcelona Valencia Barcelona

Apuntador * * * *

Provincia Barcelona Barcelona Valencia Madrid

58

70

89

94

conjunto secuencia
6 8 12 15 18 32 35 40 50 51 52 58 60 62 70 71 78 82 83 85 89

Co nc e p to s a di c i on a l e s s obr e nd i c e s . 1) Un DBMS relacional, el de un servidor de datos, utiliza los ndices de acuerdo con los criterios que establece el optimizador de consultas (QUERY MANAGER). 2) En un sistema de ficheros es el programador el que activa o desactiva el uso de los ndices segn las necesidades de la aplicacin. En este aspecto, Access es un sistema mixto. Para aplicaciones cerradas o con pocos recursos es mejor un sistema de ficheros. nd i c e s n o de ns os

Pgina 10

Teora de Bases de Datos

El ndice no tiene una entrada para cada registro del archivo de datos, sino una entrada para cada pgina . As entonces las pginas deben tener un orden . Es decir, el orden del ndice, es el orden fsico en que se almacenan los registros. Son ndices sobre un archivo agrupado o de tipo cluster. Coinciden la ordenacin del ndice y del archivo de datos. El ndice tiene apuntadores a pginas ( a un grupo de registros ) con lo cual es ms pequeo. Las bsquedas son ms rpidas aunque haya que hacer bsquedas adicionales en memoria. Evidentemente slo puede haber un ndice de este tipo por archivo de datos. I nd i z a c i n HAS H ( di s pe ns i n ) Procurar un acceso rpido a un registro en base a un valor de un cierto campo. Cada registro almacenado se coloca en la BD en un sitio cuya direccin (RowId o al menos n de pginas) se calcula con una funcin . La direccin devuelta por esta funcin se denomina direccin de dispersin. Para localizar este registro a partir del valor del campo el DBMS realiza el mismo clculo y lee ese registro en la posicin calculada. Direccin de dispersin = f (valor campo). Dado que esta tcnica se apoya en la ordenacin fsica del archivo, slo puede haber un ndice de este tipo por archivo. Evidentemente haba ms valores distintos para ese campo que pginas por lo que se producen colisiones. Ciertamente lo que devuelve la direccin de dispersin es la posicin inicial en que se almacenan los registros con un misma direccin de dispersin y despus tendremos que hacer un recorrido secuencial para encontrar uno determinado. Esta tcnica con algunas mejoras sofisticadas garantiza en la prctica que siempre se pude localizar un registro con 1 o 2 entradas/salidas al registro. Com e nta r i os fi na l e s s obr e nd i c e s Para qu se utilizan los ndices? Bsqueda y acceso a un determinado registro. Recorridos secuenciales segn una ordenacin. Quin utiliza los ndices? En los sistemas de ficheros y en sistemas pre-relacionales (dBase,Clipper, etc.) el programador. En los SGBDR autnticos o puros, el Query Manager (optimizador de consultas) y el propio DBMS (mantenimiento de integridad). En Access : es un sistema mixto. Puede utilizarse como sistema de ficheros y como SGBDR. V e nta j a s I nc o nv e ni e nte s

Aceleran las bsquedas, Penalizan las actualizaciones (hay ordenaciones, seleccin, agrupacin que actualizar ms archivos). (totalizacin) segn las claves de indexacin. E j e m p l o de u ti l i za c i n de n di c e s . Crear una BD Crear una tabla clientes con 2 campos (IdCli:entero;NomCli:texto).
Pgina 11

Teora de Bases de Datos

Crear ndices : el primer ndice ser el IdCli (el cual se crea automticamente, y al cual se le asigna el nombre de Primary Key)El segundo ndice a crear es el IdxNom con el campo Nombre asignado. 1) Acceso secuencial segn ordenacin del ndice.
Function OrdenIdx() Dim miBD As DATABASE Dim miTabla As TABLE Set miBD = CurrentDb() Set miTabla = miBD.OpenTable("Clientes") miATabla.Index "IdxNom" Do While Not miTabla.EOF Debug.Print miTabla.NomCli miTabla.MoveNext Loop miTabla.Close End Function

Ejercicio: 1. Men - Ver - Ventana de ejecucin. ? OrdenIdx() deber aparecer: AA BB CC DD 2. Desactivar la lnea miATabla.Index "IdxNom" y debera salir en el orden fsico.

 Nota: Siempre que hay una asignacin es una propiedad. Los mtodo son llamadas a procedimientos.

Pgina 12

Teora de Bases de Datos

2.- Modelos de Sistemas Gestores de Bases de Datos (SGBD).


S i s te m as r e la c i ona l e s y o tr os . El sistema relacional es el ms utilizado. Para estudiarlos los dividiremos en: Sistemas pre-relacionales: Sistemas jerrquicos (IMS de IBM) Sistemas de red (IDMS de Computer Associates) Sistema de lista invertida (Datacom de Computer Associates) Sistemas relacionales: DB2 de IBM Ingress Informix Oracle SysBase SQL Server de Microsoft MS-Access de Microsoft Car ac te r s ti c a s ge ne ra l e s de l os s i s te m a pr e - re l ac i o na l e s . En general son anteriores a los sistemas relacionales y ms primitivos. No se desarrollan sobre una base terica slida. Slo los SGBDR se construyen sobre una base terica y formal. Tienen un nivel de abstraccin ms bajo y poca independencia fsica y lgica. Estn muy vinculados a los sistemas de almacenamiento subyacente. En general son sistemas de programacin. El nico usuario posible es el desarrollador de aplicaciones. En general trabajan registro a registro.

2.1.- El modelo jerrquico.


No tiene una base terica. Lo que se explique se extrae de la observacin de un producto comercial como es IMS de IBM. Ejemplo de una estructura de base de datos de una escuela que imparte cursos monogrficos.

CURSO

Pgina 13

Teora de Bases de Datos

OFERTAS PROFESORES MATRCULAS ALUMNOS Una Base de Datos jerrquica es un conjunto de ejemplares de un tipo de rbol. Esquema: CURSO idCurso NomCurso

idOferta Fecha Lugar idProfesor NomProfesor F or m a de tra ba j o . Se trabaja con 2 objetos: 1) Registros: Un registros padre puede tener un nmero indeterminado de hijos pero un hijo no puede tener ms de un padre. 2) Ligaduras. F or m a de gua r da r l a i nf or m a c i n . La informacin se guarda rbol a rbol y de izquierda a derecha y de arriba a abajo. Ma n i p u l a c i n de l os da t os . Seleccionar un rbol determinado. Pasar de un rbol a otro. Pasar de un padre a su primer hijo. Pasar de un registro a otro dentro de un mismo nivel. Insertar/borrar registros de un nivel. Ma n te n i m i e n to de l a i n te gr i da d. Referencial: No se puede tener un hijo sin su padre. Permite borrados y actualizaciones en cascada. idAlumn Nom Nota

V e nta j a s

I nc o nv e ni e nte s

Muy eficientes en accesos Un pequeo cambio en el programa asociados con la jerarqua del rbol. puede suponer grandes modificaciones en el sistema.

Pgina 14

Teora de Bases de Datos

2.2.- Modelo de red

(I D MS de Com pu te r Ass oc i a te s ).

Puede considerarse como una forma extendida de la jerarqua en que un registro puede tener un nmero ilimitado de padres. Esquema: PROVEEDORES PEDIDOS ARTCULOS

PROV1 PROV2

ART1 ART2

ligadura PROVEEDOR/PEDIDO

ligadura ARTCULOS/PEDIDOS

F or m a de tra ba j o. Se trabaja con 2 elementos: 1) Registros. 2) Ligaduras: Una ligadura tiene 1 padre para varios hijos. Ma n i p u l a c i n de l os da t os . Localizar un registro. Pasar de una registro padre a su primer hijo de una ligadura. Moverse de un hijo a otro. Pasar de un hijo a su padre. V e nta j a s Se mantiene referencial. Actualizaciones cascada. y la I nc o nv e ni e nte s integridad Un pequeo cambio en el programa puede suponer grandes modificaciones en el sistema. borrados en

2.3.- Modelo de lista invertida


na v e gac i n : CL I P P E R, dBAS E ). F or m a de tra ba j o. Se trabaja con 2 tipos de elementos: 1) Archivos de datos.

(S i s te m a de fi c he r os , S i s te m a de

Pgina 15

Teora de Bases de Datos

2) Archivos de ndices. Y un lenguaje de programacin que maneje estas estructuras. Son como el componente interno de un sistema relacional, como un SGBDR desnudo, sin independencia fsica/lgica en el que el usuario (programador) debe optimizar los accesos, controlar la integridad, etc. Archivos de datos: Se perciben como tablas en que las filas son registros y las columnas son los campos. Los registros tienen una ordenacin fsica. Archivos de ndice: Los utiliza el programado para acelerar los accesos. Ma n i p u l a c i n de l os da t os . Localizacin de un registro en un archivo. Localizacin un registro utilizando un ndice. Acceso directo a un registro (ir al registro 1, 2, 3, 50, etc.) Desplazamientos relativos (registro anterior, siguiente, primero, etc.) Leer/modificar/borrar el registro actual. V e nta j a s I nc o nv e ni e nte s

Son muy rpidas para aplicaciones Mala ejecucin de consultas ADcerradas y con pocos recursos de HOC (no previstas), Consultas da a mquina. da. Las modificaciones complicadas. son

No se incluyen reglas de integridad El programador tiene que implementarlas en sus aplicaciones (control de duplicados, integridad referencial).

Pgina 16

Teora de Bases de Datos

3.- Sistemas Gestores de Bases de Datos Relacionales (SGBDR).


3.1.- Caractersticas del modelo relacional.
A diferencia de los modelos vistos hasta ahora, el modelo relacional s que se basa en un modelo formal. El modelo relacional fue creado un matemtico que trabajaba para IBM llamado E. F. Codd Fa l l o s q ue te n a n l as Ba se s de Da tos e n a q ue l l a p oc a : Inconsistencia, Redundancia, Falta de independencia fsica/lgica, Poca flexibilidad.

3.2.- Conceptos y definiciones.


T r m i nos ut i l i za d os : Trmino relacional formal Relacin tupla Cardinalidad Atributo Grado Clave Primaria Dominio Bas es de l m ode l o re l ac i o na l : 1) Estructura de datos: Los datos siempre se perciben en forma de tablas (filas y columnas). El modelo relacional hace la abstraccin del carcter lgico o fsico de estas estructuras. Estas estructuras tienen una 1 fila con valores fijos (nombres de columnas) y un conjunto de filas variables en el tiempo. Propiedades de las relaciones: a) No existen filas repetidas. b) No existe orden (no existe n de registro o similar) c) Los valores de los campos son autnomos (no contienen lista de valores, grupos repetidos). Estas propiedades se derivan de considerar las relaciones como conjuntos en el sentido matemtico. Tipos de relaciones: Trmino informal Tabla, Entidad Fila, Registro n de Filas o Registros Columna, Campo n de Columnas o Campos Campo Clave, Identificador Valores aceptados

Pgina 17

Teora de Bases de Datos

a) Tablas o relaciones base: Son los verdaderos contenedores de datos. Son persistentes. b) Vistas o tablas virtuales: Slo se guardan las definiciones que son persistentes. No guardan datos. c) Resultados de consultas: No tienen datos, ni se guardan sus definiciones. d) Tablas temporales: S que contienen datos pero no son persistentes. 2) Operadores entre estructuras. 3) Definiciones de integridad.

3.3.- Vistas.
Las vista son tablas virtuales derivadas de tablas base y referenciadas por un nombre. No contienen datos, slo se almacena su definicin en la Base de Datos. La sintaxis standard en SQL es:

< Nombre_Vista > AS SELECT < ... >


CREATE VIEW Uti l i da de s de l a s v i s ta s # Obtener vista de los datos optimizados segn las necesidades de los usuarios que no necesitan conocer los detalles del diseo de la Base de Datos. Ofrecen diferentes formas de ver los datos. # Ocultar filas o columnas por motivos de confidencialidad. # Aumentar la independencia lgica de los datos. (Pueden renombrarse columnas, crearse columnas virtuales, etc.) Existen vistas actualizables, es decir, que permiten modificar desde las vistas los datos de las tablas base a que pertenecen. Cabe remarcar que no todas las vista son actualizables. Existe una cierta tendencia en el modelo relacional a que las vistas sean actualizables. En general son actualizables las vistas que: Incluyan todos los campos que constituyen la clave. Si montsemos una vista sin uno de los campos que constituye la clave al modificar los datos de la vista ese campo que es parte de la clave se rellenara con un nulo y estara violando una de las reglas de la integridad de clave primaria. Incluir todos los campos que tengan restricciones a nivel de esquema (no nulo, etc.) Nunca son actualizables consultas de totalizacin (agrupacin). Vistas en que se incluyen ms de una tabla: Se permitirn actualizaciones en 2 tablas con una relacin 1:1 Se permitirn actualizaciones en el lado n de una relacin 1:n

 Nota sobre las claves primarias y externas: Si se tienen dudas en una relacin entre dos tablas de cul es el lado n y cul es el lado 1, el lado n est siempre en el la tabla que contiene la clave externa. Ejemplo en ACCESS: 1) Crear un formulario con el asistente de tipo columnas basada en la tabla Clientes y darle el nombre de FCli1.

Pgina 18

Teora de Bases de Datos

2)

cmdPorId cmdPorNombre 3) Crear la consulta ClientesPorId basada en al tabla Clientes con todos los campos y ordenada por IdCli.

4) Crear la consulta ClientesPorNombre basada en al tabla Clientes con todos los campos y ordenada por NomCli.

5) Abrir FCli1 en modo diseo, Men - Ver - Cdigo.

Cdigo que muestra la informacin ordenada por el campo IdCli.

Cdigo que muestra la informacin ordenada por el campo NomCli.

E j e m p l o s de ut i l i za c i n de l a s v i s ta s c o n ACCE S S . 1) En la base de datos crear una tabla Provincias con la siguiente estructura: IdProv (Primary Key): campo de texto de 2 caracteres.
Pgina 19

Teora de Bases de Datos

NomPorv: campo texto de 20 caracteres. 2) En la tabla Clientes aadir el campo IdProv y asignar valores que existan. 3) Crear una vista basada las tablas Clientes y Provincias.

4) Crear con el asistente un formulario. Al entrar el cdigo en la casilla de IdProv no aparecer de manera automtica la provincia en NomProv. Para evitar que se pueda modificar el contenido de la casilla NomProv en la propiedades del cuadro de texto, en el apartado Datos, seleccionaremos: Activado: NO Bloqueado: SI De esta manera ACCESS permite altas, bajas y modificaciones en la tabla n y modificaciones en la tabla 1.

3.4.- Claves, dominios e integridad de claves primarias y externas.


De fi n i c i o ne s de i n te gr i da d. Definiciones almacenadas a nivel de esquema que controlan el conjunto de valores posibles para los campos. Estas definiciones las mantiene y las observa el DBMS. Existen 2 reglas muy importantes: 1 ) Re g l a de i n te gr i da d de e nti da de s o i n te gr i da d de c la ve pr i m a r i a . Clave primaria, clave, identificador o primary key Campo/s de una tabla que identifican de manera unvoca un registro de una tabla. Simples: un solo campo. Compuestas: varios campos. Claves candidatas Campo/s que pueden ser claves primarias. Claves alternas o alternativas Aquellas claves candidatas que no se ha elegido como clave principal. Criterios para escoger claves: Universalidad,
Pgina 20

Teora de Bases de Datos

minimalidad (corta), Sencillez. Reglas de integridad de claves primarias: Ningn componente de la clave primaria puede aceptar nulos. La clave primaria siempre es nica (no acepta duplicados). 2 ) Re g l a de i n te gr i da d de c la ve s ex te r nas . I n te gr i da d r efer e nc i a l . Clave externa, ajena, fornea o foreign key Campo/s de una tabla en que los valores deben concordar con los datos de la clave primaria de la otra tabla. Todos los valores de la clave externa deben existir en la tabla en que son clave principal. Se aceptan nulos? Integridad referencial. Men - Ver - Relaciones.

Formas de mantenimiento: 1) Rechazo: No borrar provincias que tengan clientes. 2) Propagacin: Borrados / actualizaciones en cascada 3) Anulacin: Posibilidad o no de tener nulos en los campos.

3.5.- lgebra relacional.


O pe r ac i one s e ntr e es tr uc t ur a s . Se basan en el lgebra relacional considerando las tablas (las relaciones) como conjuntos. Inicialmente se definen 8 operaciones de lgebra relacional: Sean las relaciones R y S: 1) UNIN:

R S

R y S deben de ser del mismo grado. El resultado es una relacin con todas las filas de R y S con una nica concurrencia si hay repeticiones. R S

Pgina 21

Teora de Bases de Datos

R A D C B A B C T D

S B D G A A T

RS A D C B B A B G C T D A

En una consulta de unin se ve el resultado pero no se almacena en ninguna tabla al contrario que en una consulta de datos aadidos que si que se guardan los cambios en otra tabla. 2) DIFERENCIA:

R-S

R y S deben de ser de igual grado. El resultado incluye todas las filas de R que no estn en S. R S

R A D C B A B C T D

S B D G A A T

R-S A C B B C D

En SQL no existe una palabra especfica para esta relacin, se tiene que montar con: NOT EXIST NOT IN 3) INTERSECCIN:

R S

El resultado son las filas que estn en R y S. R S R A D C B A B C T D S B D G A A T RS D A T

En SQL no existe una palabra especfica para esta relacin, se tiene que montar con: EXIST
Pgina 22

Teora de Bases de Datos

IN 4) PRODUCTO CARTESIANO:

R S

Devuelve el resultado de concatenar todas las filas de R con cada una de las filas de S. R A C E B D F S B D X Y RS A A C C Col = ColR + ColS Fil = FilR x FilS En SQL: SELECT FROM R,S 5) PROYECCIN: Devuelve todas las filas de R con las columnas seleccionadas. R R1 R2 A C E En SQL: SELECT R1 FROM R B D F R p (R1) A C E E E B B D D F F B D B D B D X Y X Y X Y

6) SELECCIN (restriccin): Devuelve todas las filas que cumplan una condicin. R R1 R2 A C E G B D F B RS (R2 = B) A G B B

Se aplican a los valores de una o ms columnas. En SQL:


Pgina 23

Teora de Bases de Datos

SELECT FROM R WHERE R2 = R1 7) DIVISIN: (R binaria, S unitaria)

Devuelve una relacin formada por todos los valores de una columna de R que concuerdan con todos los valores de S. R A A A B C X Y Z X Y S X Z R/S A

8) REUNIN NATURAL (join, yunion): Devuelve un subconjunto sobre el producto cartesiano R x S en que los valores de una columna de R son iguales a los de una columna de S. Estas columnas se llaman columnas de composicin. R A C E B D F S B D X Z RS A C B D X Z

O tr as ope r a c i o ne s re l ac i o na l e s . YUNCIN EXTERNA: a) Yuncin externa izquierda: Devuelve adems todas las filas de R aunque no tengan correspondencia en S.

R A C E B D F

S B D X Z

R* y S A C E B D F X Z

Pgina 24

Teora de Bases de Datos

b) Yuncin externa derecha: Devuelve todas las filas de S aunque no tengan correspondencia en R. R A C En SQL: LEFT JOIN RIGHT JOIN EXTEND: Posibilidad de obtener nuevas columnas a partir de alguna funcin o frmula aplicada a otra. R R1 f (R1) A B En SQL: SELECT IdFac, Importe, * 1,16 FROM Facturas SQL standard X Z B D S B D I X Z V

R y S* A C B D I X Z V

SI NO permite utilizar SELECT IdFac, IIF (Importe > 1000 ; Importe * 0,98 ; Importe ) Access expresiones i/o funciones FROM Facturas RESUMEN (totalizacin): Se agrupan filas segn los valores de una o ms columnas y se evala una funcin (SUMA, MXIMO, MNIMO, PROMEDIO, etc.). R R1 R2 A B A B 3 2 7 4 5 media (R agrupado por R1) A B 5 3

En SQL: SELECT ... sum (R2), avg (R2) FROM R GROUP BY R1 Access permite agrupar por una funcin. S i nta x i s :
Pgina 25

Teora de Bases de Datos

R R R R R R R

x JOIN JOIN* *JOIN R (Col1, Col2)

S Unin S Interseccin S Producto Cartesiano S Diferencia S Join S Join Derecha S Join Izquierda Proyeccin de Col1, Col2 de la relacin R Seleccin de filas de R en que Col1 = aa

R DIVISIN S DIVISIN Entre R Y S

R (Col1 = aa)

3.6.- Tablas del sistema (Metabase).


Es un componente habitual de las arquitecturas de Bases de Datos, al menos todas las relacionales. Las tablas del Sistema es una Base de Datos creada y mantenida de manera automtica por el propio DBMS que contiene informacin (descripciones) de los objetos del propio Sistema y de la estructura de la Base de Datos. Es la Base de Datos de la Base de Datos. Una estructura mnima del Catlogo del Sistema crea, para cada Base de Datos: SYSTABLES Tabla en que cada fila contiene la informacin de una tabla de la Base de Datos: Nombre, dueo, fecha de creacin y actualizacin, etc. SYSCOLUMNS Tabla en que cada fila contiene la informacin de cada columna de la Base de Datos: Tipo, longitud, nulos, etc. SYSINDEX Tabla en que cada fila contiene un ndice de la Base de Datos: Claves de indexacin de las tablas asociadas. El Catlogo del Sistema acepta consultas (SELECT, ...), pero evidentemente no permite que se manipulen los datos que contienen. E l Ca t l og o de l S i s te ma e n ACCE S S : SYSTEM.MDA Es una Base de Datos que contiene. Usuarios, grupos, privilegios sobre acceso a objetos. Parmetros de entorno: idioma de ordenacin, n de reintentos en bloqueos aspectos iniciales de la pantalla, etc. Cada Base de Datos (MDB) contiene su propio Catlogo del Sistema. Men - Herramientas - Opciones - Mostrar - Objetos del sistema.

Pgina 26

Teora de Bases de Datos

Falta el ejercicio de utilizacin de tablas del Sistema pero como no entrar prctica para el examen no lo he pasado todava.

Pgina 27

Teora de Bases de Datos

4.- El entorno de trabajo de Bases de Datos .


4.1.- Transacciones: conceptos y utilizaciones.
Una transaccin es una unidad lgica de trabajo. Una serie de actualizaciones que dejan otra vez la Base de Datos en un estado coherente. Ejemplo1: Se inserta una fila en la tabla LineasAlquilerVideo que hace referencia a una cinta de vdeo: INSERT INTO LineasAlquilerVideo ... Se marca esa cinta de la tabla CintasVideo como alquilada y, por lo tanto, no disponible: UPDATE CintasVideo ... Alquilada = Yes Peliculas Clientes Cintas

Lineas_Alquiler

Alquileres Ejemplo2:

Clientes

Se elimina una lnea de factura de una factura: DELETE ... LineaFactura ... Se actualiza el total de esa factura en la tabla Facturas: UPDATE ... Facturas ... Se incrementa el stock del artculo afectado: UPDATE ... Articulos ... El Sistema ha de considerar estas acciones como una sola de manera que, o se hacen todas de golpe o no se hace ninguna. El componente que se encarga de gestionar todo esto es el Manejador de transacciones. Ejemplo de cdigo: BEGIN TRANS EXESQL DELETE ... EXESQL DELETE ... EXESQL DELETE ... IF SQLERROR ROLLBACK Si se produjo un error ... Deshace la transaccin.
Pgina 28

Seala el inicio de una transaccin.

Teora de Bases de Datos

ELSE COMMIT ENDIF END TRANS Si ocurre un ROLLBACK debido a algn fallo en la transaccin, el Sistema mantiene un archivo con el estado de la Base de Datos antes del inicio de la transaccin. Este archivo se llama LOG.FILE y es una especie de histrico de transacciones. Para mayor proteccin de la Base de Datos este archivo se suele almacenar en otro dispositivo (en cinta, generalmente) por si se cae el Sistema (se rompe el disco duro que contiene la Base de Datos). De esta manera para recuperar toda la informacin de la Base de Datos bastar con echar mano de la ltima copia de seguridad y que se vuelvan a realizar todas las transacciones que estn almacenadas el LOG.FILE. Se comprometa la transaccin. No se graba fsicamente todava.

4.2.- Acceso concurrente y bloqueos.


El acceso concurrente puede provocar diferentes problemas: 1) Problema de transaccin perdida: Se pierden las modificaciones que ha realizado un usuario. USUARIO A
leer R t1 t2 leer R actualizar R t3 t4 actualizar R

USUARIO B Resultado: B chafa la transaccin de A. 2) Problema de la dependencia con una transaccin no comprometida: Un usuario trabaja con datos de otra transaccin no comprometida de la que puede hacerse un ROLLBACK. USUARIO A
leer R t1 actualizar R t2 t3 ROLLBACK t4

USUARIO B Resultado: A est viendo un registro que nunca estar fsicamente. 3) Problema de resultado inconsistente: USUARIO A
leer V1 (40) acumulado 40 t1 leer V2 (50) acumulado 90 t2 t3 leer V1 (40) t4 actualizar v1 50 actualizacin acumulado 90 t5

USUARIO B Resultado: Una inconsistencia. Co nc e p to s s o br e bl o q ue os : Bloqueos:Cuando una transaccin requiere la seguridad de que algunos datos no cambien adquiere un bloqueo sobre estos de manera que otras transacciones no puedan acceder. La 2 transaccin entra en estado de espera mientras que la transaccin anterior no la libere. Granularidad del bloqueo: Es el tamao o a lo que afecta el bloqueo. Puede afectar a varios niveles. Nivel de la Base de Datos Se abre de modo exclusivo generalmente para tareas de mantenimiento, regeneracin de ndices, compactacin, etc.)
Pgina 29

Teora de Bases de Datos

Nivel de tabla o conjunto de registro (si hablamos de Access) Mantenimiento expreso de una tabla. Nivel de pgina Se bloquean todos los registros que forman parte de la pgina. Nivel de registro

 Nota: Todos los niveles de bloqueo marcados con un son posibles realizarlos en Access.

Diferentes tipos de bloqueos: Bloqueo optimista Slo se bloquea el registro en el momento de la actualizacin. Si otros usuarios han accedido al registro en el que queremos guardar los cambios recibirn una informacin de que otro usuario ha realizado modificaciones. USUARIO A
leer R t1 t2 leer R actualizar R t3 t4 actualizar R recibir cambios del usuario A

USUARIO B Bloqueo pesimista USUARIO A


leer R bloquear R t1 t2 leer R t3 actualizar R liberar R t4

intentan fin espera actualizar R actualizar R esperar, esperar

USUARIO B Bloqueo mutuo (abrazo mortal) Transaccin A solicitar bloqueo de R1 solicita bloqueo de R2 esperar, esperar Tiempo t1 t2 t3 t4 solicita bloqueo sobre R1 espera, espera solicitar bloqueo de R2 Transaccin

En este tipo de bloque si el tiempo de espera es mayor al que se ha configurado el Sistema mata la transaccin para que al menos pueda acabar una de las dos. Si el Sistema es bueno, incluso puede llegar a informar al usuario de que una de las transacciones no acab con xito. Co nf i g ur a r b l o q u e o s e n Ac ce ss . Bloqueo pesimista:

Pgina 30

Teora de Bases de Datos

MiTabla.LockEdits True

Se activa el bloqueo pesimista.

MiTabla.Edit

Se activa el bloqueo del registro.

MiTabla.Update

Se libera el registro.

El bloqueo pesimista se activa en el momento de la edicin. Bloqueo optimista:

MiTabla.LockEdits False

Se activa el bloqueo optimista.

MiTabla.Edit

MiTabla.Update

Se bloquea el registro para ser editado (slo en ese momento).

En el bloqueo optimista se mantiene Menos tiempo el bloqueo sobre el registro. Bloqueos en formularios con origen de datos: Slo se bloquea el registro en el momento de la actualizacin (cuando se pasa al siguiente registro). A puede editar un registro que B est modificando. Cuando A quiera actualizar sus cambios recibir informacin de que B lo ha modificado.

Bloquea todos los registros en que se basa el formulario.

G u a pa ra tra ba j a r e n m u l t i u s ua r i o c o n Acc es s. Primero de todo se ha de resolver la cuestin con el S.O.: grupos, permisos, etc. 1. Para compartir una Base de Datos (MDB) debe abrirse en modo compartido (por defecto se abre en modo exclusivo).

Pgina 31

Teora de Bases de Datos

Men - Herramientas - Opciones - Avanzado.

2. Es conveniente dividir la Base de Datos en datos y aplicaciones y compartir los datos de manera que: datos.md

apli.mdb

apli.mdb

apli.mdb

Cada apli.mdb: informes, formularios, etc.

3. Conocer el puesto de trabajo: nombre de la computadora. Inicio - Configuracin - Panel de control - Red.

Pgina 32

Teora de Bases de Datos

Nota: Para que las dems mquinas puedan acceder a la Base de Datos que tenemos en nuestra mquina deberemos decirle a Windows que queremos compartir la carpeta:

Y por parte de los dems, desde sus puestos de trabajo y para que puedan acceder a la Base de Datos:

Ejemplo de trabajos en multiusuario con Access. Para la mquina que contenga la Base de Datos: Crear la Base de Datos con el nombre Datos.mdb y la tabla Clientes: IdCli: texto, 2 NomCli: texto, 16 DirCli: texto, 16 Compartir el directorio en donde se encuentre la Base de Datos. Para todos: Crear una Base de Datos con el nombre Apli.mdb: Men - archivo - Adjuntar - Tabla - Clientes Crear un formulario con el asistente de columnas simples basado el la tabla Clientes.

Pgina 33

Teora de Bases de Datos

Refrescar Actualizar

Lee la tabla. cmdActualizar Sub cmdActualizar_Click () Me!Requery End Sub

Lee el registro. cmdRefrescar Sub cmdRefrescar_Click () Me!Refresh End Sub

 Nota: En Access se refresca al navegar por el formulario.

Pgina 34

You might also like