Bases de Datos - WordPress.com

Anuncio
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
Temario Bases de Datos (Teoría de Bases de Datos)
1. In tr o du cc ió n a l os S is te m a s d e B a se s de D at os .
1.1. Sistemas de información 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, páginas e índices. El nivel conceptual y externo.
2. M od e lo s de S GB D.
2.1. El modelo jerárquico.
2.2. El modelo de Red.
2.3. Modelo de Lista Invertida.
3. S i st em a s G es to re s de B a se d e D a to s R el a c io n a le s ( SG B DR ).
3.1. Características 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 nt o rn o d e t r a b a jo d e B a se s d e D a to s.
4.1. Transacciones: Concepto y utilización.
4.2. Concurrencia y bloqueos.
4.3. La administración de Bases de Datos: Seguridad y permisos.
1
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
1. Introducción a los Sistemas de Bases de Datos.
1. 1. S i st e m as de i nf o rm ac i ó n y B as e s d e d a to s : D ef i n i c i on e s y c o nc ep to s.
Sistemas de información de la empresa: Es el conjunto de mecanismos que controlan la distribución,
acceso y almacenamiento de los datos relevantes para la administración de una organización.
Bases de datos: Colecciones de información organizada que describen un sistema. Las bases de datos
están pensadas para resolver los problemas asociados al manejo de grandes volúmenes de información.
Sistema Gestor de Bases de Datos (SGDB): Aplicaciones informáticas que manejan y gestionan esta
información.
Fu nc i on e s m í n im a s d e u n S G B D :
 Crear y mantener la estructura de los datos (esquema de la BD, tablas, campos, índices, ...).
 Actualizar los datos (altas, bajas, modificaciones, ...).
 Presentar la información (listados, ...).
 Facilitar el desarrollo de aplicaciones (interface de programación (API), lenguajes 4GL,
generadores de aplicaciones, ...).
Si st e m a d e f ic h er o s v s. S GB D :
 Independencia física: No se necesita saber nada de la situación, rutas, formas de
almacenamiento, etc.
 Independencia lógica: La información se pueden ver de muchas formas que en la mayoría de
los casos no tienen nada que ver con la manera en que esta guarda.
1. 2. S i st e m as G es t or e s d e B a s e d e D at o s ( S GB D) . A rq u it ect u r a A NS I - SP A RC .
Usuarios
Administrador
Fabricante
(motor o DBMS)
Nivel externo
Distintas ‘vistas’ de los usuarios.
Nivel conceptual
Estructura de la base de datos.
Entidades, campos, relaciones, etc.
Nivel interno
Almacenamiento, nivel físico.
Nivel externo: Presenta información conceptual.
Nivel conceptual: Diseño de la base de datos (editor de esquemas).
Nivel interno: Sólo sabe cómo el fabricante.
Co nc e pto d e mo to r d e b a s e d e d a to s .
Es un conjunto de programas que controlan y manejan todos los accesos a la base de datos.
Esquema de actuación:
a) Los usuarios y aplicaciones hacen una solicitud de acceso (de conexión, de consulta, de
actualización).
b) El motor analiza esa solicitud y la interpreta.
2
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
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 físicos.
d) El DBMS realiza las operaciones necesarias
sobre los datos y los pone a disposición 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 jerarquía de clases montada sobre el API; de hecho constituye el API de
programación.
Pr og r a m ac ió n d e D AO . Si nt ax i s ap r ox i m a d a.
Function NuevaTabla()
TableDef guarda la estructura de la tabla, es una definición de
Dim miBD As DATABASE
tabla.
Dim miDeftabla As TableDef
En Field se guardan los campos de la BD.
Dim miCampo As Field
Asignación de la BD. BD que se estás utilizando.
Set miBD = CurrentDb()
Crea una nueva estructura de tabla, la cual se llamará Clientes.
Set miDeftabla = miBD.CreateTableDef("Clientes")
Set miCampo = miDeftabla.CreateField("FechaAlta", Las mayúsculas indican constantes creas un campo (nombre,
DB_DATE)
formato predefinido).
miDeftabla.Fields.Append miCampo
Todas las estructuras de tabla se guardan en un TableDef.
miBD.TableDefs.Append miDeftabla
Debug.Print "Se creó la tabla"
NuevaTabla = True
End Function
Con el Append añadirá una definición de tabla a la colección de
estructuras de tablas de la BD
Al ejecutarlo nos devolverá un -1 si es verdadero
Ejemplo de creación de una tabla (DAO).
Nueva base de datos - Módulo Nuevo.
A continuación nos aparece la pantalla para picar el código y una vez esté introducido para
compilarlo haremos: Menú - Ejecutar - Compilar módulos cargados, para crear la nueva
tabla.
Haciendo: Menú - Ver - Ventana de ejecución nos aparecerá una ventana que es como una
especie de DEBUG para poder depurar nuestro programa.
Se cc ió n p o st e ri o r y s ec ci ó n f ro nt a l .
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
sección frontal
sección posterior
Sección posterior: Es el DBMS o motor en sí.
3
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
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 clásicos (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 importación, exportación, etc.
A rq u it ec tu r a Cl i e n te /S e rv i do r y d is t r ib u id a s .
Aparecen al romper el esquema anterior. Se dedican diferentes máquinas para las secciones posteriores
y frontales.
Máquinas de sección frontal.
Red de comunicaciones
DBMS
BD
Máquina de sección posterior.
Ventajas:
Procesos distribuidos.
Aprovechar las ventajas de cada S.O. y hardware para cada sección.
Inconvenientes:
Mayor complejidad.
Posible incremento del tráfico de la red.
Diferentes arquitecturas Cliente/Servidor.
Las aplicaciones Cliente/Servidor pueden dividirse en:
Servicios de presentación
Servicios de control (proceso)
Servicios de datos
Las aplicaciones cliente/servidor difieren en cómo y en cuántas máquinas se dividen estos 3 apartados.
1)
2)
3)
4)
Máquina 1
Máquina 2
Máquina 1
Máquina 2
Máquina 1
Máquina 2
Presentación
Proceso y datos.
Presentación y proceso
Datos
Presentación y procesos asociados
Datos y procesos asociados
Máquina 1
Máquina 2
Presentación
Proceso
Cliente/Servidor puro
Arquitectura 2 pisos
Más utilizada
Arquitectura 3 pisos
4
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
Máquina 3
Datos
Cliente/Servidor ODBC.
ODBC es un standard de conectividad con distintos sistemas de Bases de Datos desde WINDOWS.
Puede entenderse como un API genérico.
Utilidades:
 Desarrollo de aplicaciones Cliente/Servidor .
 Acceso a Bases de Datos remotas desde aplicaciones de productividad personal
(procesadores de texto, hojas de cálculo, etc.).
Esquema:
usuarios
aplicaciones
crear una conexión ODBC e indicar
con qué quieres trabajar
ODBC
driver manager
ODBC
SQL server
ORACLE
OTROS
controladores
red de comunicaciones
DBMS
SQ server
DBMS
ORACLE
Recogen las peticiones de acceso a datos y las traducen para que se puedan entender.
Ejemplos prácticos:
1) Conocer el nivel de compatibilidad que ofrece el controlador ODBC que se vaya a utilizar.
2) Crear una definición de acceso ODBC.
Menú - Panel de control - Icono ODBC - Add - SQL Server.
Uso:
5
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
1. MS-QUERY (editor de consultas).
Archivo - Nueva consulta - Otro - OK - Usar.
2. EXCEL
Menú - Insertar - Macro - Módulo.
Para cargar la librería xlodbc.xla:
Menú - Herramientas - Referencias. Y la buscamos en la lista.
Para ver las funciones que contiene, Menú - Ver - Examinar objetos.
Código:
Proced DatosDesde()
Dim strConex QueSea Cadena 'Variable que almacena la cadena de conexión.
Dim strSQL QueSea Cadena
strConex = "DSN=ViajesLaMonda" 'Función perteneciente a la librería, poner en marcha la conexión.
nCanal = SQLOpen(strConex; Rango("A3:A3"); 4) 'Muestra aquí toda la cadena de conexión.
strSQL = "SELECT * FROM VIAJES" 'El *indica todas.
nValor = SQLExecQuery(nCanal; strSQL) 'Como es una consulta devolverá columnas.
nFilas = SQLRetrieve(nCanal; Rango("A7:A7"); ; ; Verdadero)
xValor = SQLClose(nCanal)
Fin Proced
Esquema:
EXCEL
XLODBC:XLA
librería que tiene EXCEL para conexiones
ODBC
DRIVER
ODBC
RED DE COMUNICACIÓN
DBMS
SQL SERVER
BD
6
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
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.
Esquemas:
SQL server
Acceso mediante ODBC
a servidores de BD
ODBC
Base Datos
Access
referencia
MDS
Transmite solicitudes a SQL SERVER
CLIPPER
xBASE
DBF
Acceso directo a sistemas
de ficheros
ACCESS
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
localización de la Base de Datos a utilizar.
Probar desde MS-QUERY la conexión de este origen de datos.
Si funciona, probarlo desde Excel utilizando la librería xlodbc.xla
B a se s d e D a to s di st r ib u id 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 conexión.
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.
Transacción: Es un conjunto de operaciones de actualización de datos que pasan de un momento
coherente a otro momento coherente.
7
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
usuarios
aplicaciones
red de comunicaciones
c ap a d e so f twa r e
DBMS1
DB1
DBMS2
DBMS3
DB2
DB3
Ventajas:
 Muchas empresas ya son ‘distribuidas’.
 Los datos están más cerca de dónde se necesitan.
 Proceso más distribuido.
Inconvenientes:
 Mayor complejidad.
 Resolver: propagación de actualizaciones.
 Optimización de consultas entre tablas de diferentes DBMS.
 Transacciones distribuidas.
1.3. El nivel interno: arch ivos, páginas e índices . El n ivel conceptu al y
externo.
El nivel interno es el nivel físico. En él, el DBMS se encarga de actualizar los datos.
Página:
Es una unidad de lectura/escritura en disco (la información que se lee/escribe en cada operación de E/S).
El tamaño depende del S.O. y del S.G.B.D. En la F.A.T., en caso de MS-DOS, se mantiene información de
la página en que se inicia un archivo. Cada página tiene un apuntador que señala la siguiente página de
ese archivo.
La optimización del uso de una Base de Datos consiste en minimizar el número de operaciones de E/S.
Para ello sería interesante que las página fuesen contiguas (creación de espacio en disco sólo para la
Base de Datos).
Manejador de disco: Componentes del S.O. que ‘conoce’ las direcciones físicas de las páginas. Sus
funciones son:
 Leer páginas.
 Escribir páginas.
 Añadir páginas nuevas.
 Borrar páginas.
Manejador de archivos: Solicita páginas al manejador de disco. Estas páginas contienen los registros
identificados de manera única (ROWid  identificador de registro). Funciones:
 Leer un registro de la página.
 Reemplazar un registro de la página.
 Añadir, eliminar registros.
 Crear y destruir registros.
8
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
El DBMS es quien entiende la estructura de los registros proporcionados (campos, tipos de datos, etc.).
Indices:
Archivos auxiliares que utiliza el DBMS para recuperar registros según otros criterios de ordenación y
facilitar las búsquedas.
El archivo de índice más 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 física en que está guardada la tabla.
IdCli
001
002
003
004
Nombre
L
J
S
D
Índice denso.
Provincia
Madrid
Barcelona
Valencia
Barcelona
Apuntador
*
*
*
*
Provincia
Barcelona
Barcelona
Valencia
Madrid
Ti po s :
Í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 según el campo
indexado. El apuntador señala a una página (que contendrá un conjunto de registros).
Posteriormente se hace una revisión de la página en memoria. El número de operaciones de
E/S será menor y el índice será más pequeño.
Clave de indexación  Campo/s para los que se crea un índice.
Clave de indexación simple  Por un sólo campo.
Clave de indexación compuesta  Por varios campos.
Índice principal  Creado para el campo clave.
Índice secundario  Los demás 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 sólo 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 (raíz).
Esquema:
conjunto índice
*
12
*
32
*
15
18
32
*
50
*
82
*
*
58
*
70
*
51
52
58
*
89
*
71
78
82
94
*
conjunto secuencia
6
8
12
35
40
50
60
62
70
83
85
89
9
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
Co nc e pto s a di c io n a le s so b re í nd i ce 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 según
las necesidades de la aplicación.
En este aspecto, Access es un sistema mixto.
Para aplicaciones cerradas o con pocos recursos es mejor un sistema de ficheros.
Í nd ic e s n o d e n s o s
El índice no tiene una entrada para cada registro del archivo de datos, sino una entrada para cada página.
Así entonces las páginas deben tener un orden . Es decir, el orden del índice, es el orden físico en que se
almacenan los registros.
Son índices sobre un archivo “agrupado” o de tipo “cluster”. Coinciden la ordenación del índice y del
archivo de datos.
El índice tiene apuntadores a páginas ( a un grupo de registros ) con lo cual es más pequeño. Las
búsquedas son más rápidas aunque haya que hacer búsquedas adicionales en memoria. Evidentemente
sólo puede haber un índice de este tipo por archivo de datos.
I nd iz ac i ón H A SH ( di s pe n s ió n )
Procurar un acceso rápido a un registro en base a un valor de un cierto campo.
Cada registro almacenado se coloca en la BD en un sitio cuya dirección (RowId o al menos nº de páginas)
se calcula con una función. La dirección devuelta por esta función se denomina ‘dirección de dispersión’.
Para localizar este registro a partir del valor del campo el DBMS realiza el mismo cálculo y lee ese registro
en la posición calculada.
Dirección de dispersión = f (valor campo).
Dado que esta técnica se apoya en la ordenación física del archivo, sólo puede haber un índice de este
tipo por archivo.
Evidentemente había más valores distintos para ese campo que páginas por lo que se producen colisiones.
Ciertamente lo que devuelve la dirección de dispersión es la posición inicial en que se almacenan los
registros con una misma dirección de dispersión y después tendremos que hacer un recorrido secuencial
para encontrar uno determinado.
Esta técnica con algunas mejoras sofisticadas garantiza en la práctica que siempre se pude localizar un
registro con 1 o 2 entradas/salidas al registro.
Co me nt a r i os fi n a l es s ob r e í n di ce s
¿Para qué se utilizan los índices?
Búsqueda y acceso a un determinado registro.
Recorridos secuenciales según una ordenación.
¿Quién utiliza los índices?
En los sistemas de ficheros y en sistemas pre-relacionales (dBase,Clipper, etc.) el programador.
En los SGBDR auténticos 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.
Ven t aja s
Inconv enien tes
Aceleran las búsquedas, ordenaciones, Penalizan las actualizaciones (hay que
selección, agrupación (totalización) según actualizar más archivos).
las claves de indexación.
10
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
Ej em p lo de ut i l iz a ci ón d e í nd i ce s .
Crear una BD
Crear una tabla “clientes” con 2 campos (IdCli:entero;NomCli:texto).
Crear índices : el primer índice será el IdCli (el cual se crea automáticamente, 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 según ordenación 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 ejecución.
? OrdenIdx()
deberá aparecer:
BB
CC
DD
AA
2. Desactivar la línea ‘miATabla.Index "IdxNom" y debería salir en el orden físico.
 Nota:
Siempre que hay una asignación es una propiedad. Los método son llamadas a procedimientos.
11
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
2. Modelos de Sistemas Gestores de Bases de Datos (SGBD).
Si st e m as r el a c io n a le s y ot r os .
El sistema relacional es el más utilizado. Para estudiarlos los dividiremos en:
Sistemas pre-relacionales:
 Sistemas jerárquicos (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
C ar a ct e rí st i c as ge ne r a l es d e l os s i st em a pr e - r e l ac io n a le s .
 En general son anteriores a los sistemas relacionales y más primitivos.
 No se desarrollan sobre una base teórica sólida. Sólo los SGBDR se construyen sobre una base
teórica y formal.
 Tienen un nivel de abstracción más bajo y poca independencia física y lógica.
 Están muy vinculados a los sistemas de almacenamiento subyacente.
 En general son sistemas de programación. El único usuario posible es el desarrollador de
aplicaciones.
 En general trabajan registro a registro.
2.1. El modelo jerárquico.
No tiene una base teórica.
Lo que se explique se extrae de la observación de un producto comercial como es IMS de IBM.
Ejemplo de una estructura de base de datos de una escuela que imparte cursos monográficos.
CURSO
OFERTAS
PROFESORES
MATRÍCULAS
ALUMNOS
Una Base de Datos jerárquica es un conjunto de ejemplares de un tipo de árbol.
Esquema:
CURSO
idCurso NomCurso
idOferta Fecha Lugar
idProfesor NomProfesor
idAlumn Nom Nota
12
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
Fo rm a de tr a b a jo .
Se trabaja con 2 objetos:
1) Registros: Un registros padre puede tener un número indeterminado de hijos pero un hijo no
puede tener más de un padre.
2) Ligaduras.
Fo rm a de g u ar d a r l a i n fo r m ac ió n.
La información se guarda árbol a árbol y de izquierda a derecha y de arriba a abajo.
Ma n ip u l ac i ón d e l os d at 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 nt e n im i en to de l a i nt e g ri d a d.
Referencial: No se puede tener un hijo sin su padre.
Permite borrados y actualizaciones en cascada.
Ven t aja s
Inconv enien tes
Muy eficientes en accesos asociados con la Un pequeño cambio en el programa puede
jerarquía del árbol.
suponer grandes modificaciones en el
sistema.
2. 2. M o de l o d e r e d (I DM S d e C om p ut e r As s oc i at e s) .
Puede considerarse como una forma extendida de la jerarquía en que un registro puede tener un número
ilimitado de padres.
Esquema:
PROVEEDORES
PEDIDOS
ARTÍCULOS
PROV1
ART1
PROV2
ART2
ligadura PROVEEDOR/PEDIDO
ligaduraARTÍCULOS/PEDIDOS
Fo rm a de tr a b a jo .
Se trabaja con 2 elementos:
1) Registros.
2) Ligaduras: Una ligadura tiene 1 padre para varios hijos.
Ma n ip u l ac i ón d e l os d at os .
 Localizar un registro.
 Pasar de un registro padre a su primer hijo de una ligadura.
 Moverse de un hijo a otro.
13
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
 Pasar de un hijo a su padre.
Ven t aja s
Se mantiene la integridad referencial.
Actualizaciones y borrados en cascada.
Inconv enien tes
Un pequeño cambio en el programa puede
suponer grandes modificaciones en el
sistema.
2.3. Modelo de lista invertida (Sistema de ficheros, Sistema de
navegación: CLIPPER, dBASE).
Fo rm a de tr a b a jo .
Se trabaja con 2 tipos de elementos:
1) Archivos de datos.
2) Archivos de índices.
Y un lenguaje de programación que maneje estas estructuras.
Son como el componente interno de un sistema relacional, como un SGBDR desnudo, sin independencia
física/lógica 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 ordenación física.
Archivos de índice: Los utiliza el programado para acelerar los accesos.
Ma n ip u l ac i ón d e l os d at os .
 Localización de un registro en un archivo.
 Localización 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.
Ven t aja s
Inconv enien tes
Son muy rápidas para aplicaciones cerradas Mala ejecución de consultas AD-HOC (no
y con pocos recursos de máquina.
previstas), Consultas día a día.
Las modificaciones son complicadas.
No se incluyen reglas de integridad El
programador tiene que implementarlas en
sus aplicaciones (control de duplicados,
integridad referencial).
14
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
3. Sistemas Gestores de Bases de Datos Relacionales (SGBDR ).
3. 1. C ar a ct er í st ic a s d e l m od e lo re l a c io n a l.
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 matemático que trabajaba para IBM llamado E. F. Codd
F al l o s q ue t e n í an l a s B a s e s d e D at o s e n a qu e l l a é po c a :
 Inconsistencia,
 Redundancia,
 Falta de independencia física/lógica,
 Poca flexibilidad.
3. 2. Co nc ep to s y d ef i n ic io n es .
Té rm i no s u t il iz a do s :
Término relacional formal
Término informal
Relación
Tabla, Entidad
tupla
Fila, Registro
Cardinalidad
nº de Filas o Registros
Atributo
Columna, Campo
Grado
nº de Columnas o Campos
Clave Primaria
Campo Clave, Identificador
Dominio
Valores aceptados
B a se s d e l m od e l o re l a ci o n a l:
1) Estructura de datos: Los datos siempre se perciben en forma de tablas (filas y columnas). El
modelo relacional hace la abstracción del carácter lógico o físico 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 autónomos (no contienen lista de valores, grupos
repetidos).
Estas propiedades se derivan de considerar las relaciones como conjuntos en el sentido
matemático.
Tipos de relaciones:
a) Tablas o relaciones base: Son los verdaderos contenedores de datos. Son
persistentes.
b) Vistas o tablas virtuales: Sólo 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, sólo se almacena su definición en la Base de Datos.
La sintaxis standard en SQL es:
 Nombre_Vista 
AS SELECT  ... 
CREATE VIEW
15
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
Ut i l id a d es d e l a s v i st a s
 Obtener vista de los datos optimizados según las necesidades de los usuarios que no necesitan
conocer los detalles del diseño de la Base de Datos. Ofrecen diferentes formas de ver los datos.
 Ocultar filas o columnas por motivos de confidencialidad.
 Aumentar la independencia lógica 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 montásemos 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 rellenaría con un nulo y estaría 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 totalización (agrupación).
Vistas en que se incluyen más de una tabla:
 Se permitirán actualizaciones en 2 tablas con una relación 1:1
 Se permitirán actualizaciones en el lado n de una relación 1:n
 Nota sobre las claves primarias y externas:
Si se tienen dudas en una relación entre dos tablas de cuál es el lado n y cuál 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.
2)
cmdPorId
cmdPorNombre
3) Crear la consulta ClientesPorId basada en al tabla Clientes con todos los campos y ordenada
por IdCli.
16
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
4) Crear la consulta ClientesPorNombre basada en al tabla Clientes con todos los campos y
ordenada por NomCli.
5) Abrir FCli1 en modo diseño, Menú - Ver - Código.
Código que muestra la información ordenada
por el campo IdCli.
Código que muestra la información
ordenada por el campo NomCli.
Ej em p lo s de ut i l iz ac i ón d e l a s v i st a s c on A C CES S.
1) En la base de datos crear una tabla Provincias con la siguiente estructura:
IdProv (Primary Key): campo de texto de 2 caracteres.
NomPorv: campo texto de 20 caracteres.
2) En la tabla Clientes añadir 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.
17
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
Al entrar el código en la casilla de IdProv
no aparecerá de manera automática 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 pri marias y externas .
De f in ic i o ne s d e in te gr i d ad .
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 d e i nt e gr i d a d d e e nt i d ad e s o i nt eg r id a d de c l a ve p r i m ar i a .
Clave primaria, clave, identificador o primary key  Campo/s de una tabla que identifican de
manera unívoca 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,
 minimalidad (corta),
 Sencillez.
Reglas de integridad de claves primarias:
 Ningún componente de la clave primaria puede aceptar nulos.
 La clave primaria siempre es única (no acepta duplicados).
2) Re g l a d e i nt e gr i d a d d e c l av e s ex te r n a s. I nt eg r id a d re f er e nc i a l.
Clave externa, ajena, foránea 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.
18
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
Formas de mantenimiento:
1) Rechazo: No borrar provincias que tengan clientes.
2) Propagación: Borrados / actualizaciones en cascada
3) Anulación: Posibilidad o no de tener nulos en los campos.
3. 5. Á lg e br a r el a c i on a l .
O pe r a ci o ne s en tr e e s tr uc tu r 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) UNIÓN:
RS
R y S deben de ser del mismo grado. El resultado es una relación con todas las filas de R y S
con una única concurrencia si hay repeticiones.
R
S
R
S
A
D
C
B
A
B
C
T
D
RS
B
D
G
A
A
T
A
D
C
B
B
A
B
G
C
T
D
A
En una consulta de unión se ve el resultado pero no se almacena en ninguna tabla al contrario
que en una consulta de datos añadidos 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 están en S.
R
S
R
S
A
B
C
R-S
B
G
A
A
B
C
19
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
D
C
A
B
T
D
D
A
T
C
B
D
En SQL no existe una palabra específica para esta relación, se tiene que montar con:
NOT EXIST
NOT IN
3) INTERSECCIÓN: R  S
El resultado son las filas que están en R y S.
R
S
R
S
A
D
C
B
A
B
RS
C
T
D
B
D
G
A
A
T
D
A
T
En SQL no existe una palabra específica para esta relación, se tiene que montar con:
EXIST
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
S
A
C
E
RS
B
D
F
B
D
X
Y
A
A
C
C
E
E
Col = ColR + ColS
Fil = FilR x FilS
B
B
D
D
F
F
B
D
B
D
B
D
X
Y
X
Y
X
Y
En SQL:
SELECT
FROM R,S
5) PROYECCIÓN:
Devuelve todas las filas de R con las columnas seleccionadas.
R
R1 R2
A
C
E
B
D
F
Rp
(R1)
A
C
E
En SQL:
SELECT R1 FROM R
20
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
6) SELECCIÓN (restricción):
Devuelve todas las filas que cumplan una condición.
R
R1 R2
A
C
E
G
RS (R2 =
“B”)
B
D
F
B
A
G
B
B
Se aplican a los valores de una o más columnas.
En SQL:
SELECT
FROM R
WHERE R2 = R1
7) DIVISIÓN: (R binaria, S unitaria)
Devuelve una relación formada por todos los valores de una columna de R que concuerdan
con todos los valores de S.
R
S
R/S
A X
X
A
A Y
Z
A Z
B X
C Y
8) REUNIÓN 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
composición.
R
S
A
C
E
B
D
F
RS
B
D
X
Z
A
C
B
D
X
Z
O tr a s o p er a c io n es re l ac i o n al e s.
 YUNCIÓN EXTERNA:
a) Yunción externa izquierda: Devuelve además todas las filas de R aunque no tengan
correspondencia en S.
R
S
A
C
B
D
R* y S
B
D
X
Z
A
C
B
D
X
Z
21
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
E
F
E
F
b) Yunción externa derecha: Devuelve todas las filas de S aunque no tengan correspondencia en
R.
R
S
A
C
B
D
R y S*
B
D
I
X
Z
V
A
C
B
D
I
X
Z
V
En SQL:
LEFT JOIN
RIGHT JOIN
 EXTEND: Posibilidad de obtener nuevas columnas a partir de alguna función o fórmula aplicada a otra.
R
R1
A
B
f
(R1)
X
Z
En SQL:
SELECT IdFac, Importe, * 1,16
FROM Facturas
SQL standard
SI
NO
SELECT IdFac, IIF (Importe > 1000 ; Importe * 0,98 ;Access
Importepermite
)
utilizar
expresiones i/o funciones
FROM Facturas
 RESUMEN (totalización): Se agrupan filas según los valores de una o más columnas y se evalúa una
función (SUMA, MÁXIMO, MÍNIMO, PROMEDIO, etc.).
R
R1 R2
A
B
A
B
3
2
7
4
media (R agrupado por
R1)
5
A
B
5
3
En SQL:
SELECT ... sum (R2), avg (R2)
FROM R
GROUP BY R1
Access permite agrupar por una función.
Si nt ax i s :
R
S Unión

R
S Intersección

R
x
S Producto Cartesiano
22
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
R
R
R
R
R
DIVISIÓN
JOIN
JOIN*
*JOIN
R (Col1, Col2)
R (Col1 = “aa”)
S
S
S
S
S
DIVISIÓN Entre R Y S
Diferencia
Join
Join Derecha
Join Izquierda
Proyección de Col1, Col2 de la relación R
Selección de filas de R en que 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 automática por el propio
DBMS que contiene información (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 mínima del Catálogo del Sistema crea, para cada Base de Datos:
SYSTABLES  Tabla en que cada fila contiene la información de una tabla de la Base
de Datos:
Nombre, dueño, fecha de creación y actualización, etc.
SYSCOLUMN  Tabla en que cada fila contiene la información de cada columna de la
S
Base de Datos:
Tipo, longitud, nulos, etc.
SYSINDEX  Tabla en que cada fila contiene un índice de la Base de Datos:
Claves de indexación de las tablas asociadas.
El Catálogo del Sistema acepta consultas (SELECT, ...), pero evidentemente no permite que se manipulen
los datos que contienen.
El C at á lo go de l Si s tem a e n AC CE SS :
SYSTEM.MDA  Es una Base de Datos que contiene.
 Usuarios, grupos, privilegios sobre acceso a objetos.
 Parámetros de entorno: idioma de ordenación, nº de reintentos
en bloqueos aspectos iniciales de la pantalla, etc.
Cada Base de Datos (MDB) contiene su propio Catálogo del Sistema.
Menú - Herramientas - Opciones - Mostrar - Objetos del sistema.
23
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
Falta el ejercicio de utilización de tablas del Sistema pero como no entrará práctica para el examen no lo
he pasado todavía.
24
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
4. El entorno de trabajo de Bases de Datos .
4. 1. T r an s a cc io n e s : co nc e pt os y u ti l iz ac i on e s.
Una transacción es una unidad lógica 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 vídeo:
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
Clientes
Ejemplo2:
 Se elimina una línea 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 artículo 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 código:
BEGIN TRANS
‘Señala el inicio de una transacción.
EXESQL “DELETE ... “
EXESQL “DELETE ... “
EXESQL “DELETE ... “
IF SQLERROR
‘Si se produjo un error ...
ROLLBACK
‘Deshace la transacción.
ELSE
COMMIT
‘Se comprometa la transacción. No se graba físicamente todavía.
ENDIF
END TRANS
Si ocurre un ROLLBACK debido a algún fallo en la transacción, el Sistema mantiene un archivo con el
estado de la Base de Datos antes del inicio de la transacción. Este archivo se llama LOG.FILE y es una
especie de histórico de transacciones.
25
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
Para mayor protección 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 información 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 están almacenadas el
LOG.FILE.
4. 2. Ac ce s o co n c u r re nt e y b lo qu e os .
El acceso concurrente puede provocar diferentes problemas:
1) Problema de transacción perdida: Se pierden las modificaciones que ha realizado un usuario.
USUARIO A
leer R
t1
actualizar R
t3
t2
leer R
t4
actualizar R
USUARIO B
Resultado: B “chafa” la transacción de A.
2) Problema de la dependencia con una transacción no comprometida: Un usuario trabaja con datos
de otra transacción no comprometida de la que puede hacerse un ROLLBACK.
USUARIO A
t1
actualizar R
leer R
t2
t3
ROLLBACK
t4
USUARIO B
Resultado: A está viendo un registro que nunca estará físicamente.
3) Problema de resultado inconsistente:
USUARIO A
leer V1 (40)
actualización
acumulado  40
acumulado  90
t1
leer V2 (50)
acumulado  90
t2
t3
t4
t5
leer V1 (40)
actualizar v1  50
USUARIO B
Resultado: Una inconsistencia.
Co nc e pto s so b re b lo q ue o s :
Bloqueos:
Cuando una transacción requiere la seguridad de que algunos datos no cambien adquiere
un
bloqueo sobre estos de manera que otras transacciones no puedan acceder.
La 2ª transacción entra en estado de espera mientras que la transacción anterior no la libere.
Granularidad del bloqueo: Es el tamaño 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, regeneración de índices, compactación, etc.)
  Nivel de tabla o conjunto de registro (si hablamos de Access)  Mantenimiento expreso
de una tabla.
  Nivel de página  Se bloquean todos los registros que forman parte de la página.
 Nivel de registro 
 Nota:
Todos los niveles de bloqueo marcados con un  son posibles realizarlos en Access.
26
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
Diferentes tipos de bloqueos:
Bloqueo optimista  Sólo se bloquea el registro en el momento de la actualización. Si otros
usuarios han accedido al registro en el que queremos guardar los cambios recibirán una información
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
actualizar R
liberar R
t2
t3
t4
leer R
intentan
fin espera
actualizar R
actualizar R
esperar, esperar
USUARIO B
Bloqueo mutuo (abrazo mortal) 
Transacción A
solicitar bloqueo de
R1
solicita bloqueo de
R2
esperar, esperar
Tiempo
t1
Transacción
t2
solicitar bloqueo de
R2
t3
t4
solicita bloqueo
sobre R1
espera, espera
En este tipo de bloque si el tiempo de espera es mayor al que se ha configurado el Sistema mata la
transacción 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 bl oq u e os e n A cc e ss .
Bloqueo pesimista:
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 edición.
Bloqueo optimista:
27
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
MiTabla.LockEdits False
‘Se activa el bloqueo optimista.
MiTabla.Edit
MiTabla.Update
‘Se bloquea el registro para ser editado (sólo en ese momento).
En el bloqueo optimista se mantiene Menos tiempo el bloqueo sobre el registro.
Bloqueos en formularios con origen de datos:
Sólo se bloquea el registro en el momento de la
actualización (cuando se pasa al siguiente
registro).
A puede editar un registro que B está
modificando. Cuando A quiera actualizar sus
cambios recibirá información de que B lo ha
modificado.
Bloquea todos los
registros en que se
basa el formulario.
G uí a p a r a t r ab a j a r e n mu lt i u su a r io c on Ac c es s .
Primero de todo se ha de resolver la cuestión 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).
28
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
Menú - Herramientas - Opciones - Avanzado.
2. Es conveniente dividir la Base de Datos en datos y aplicaciones y compartir los datos de manera
que:
datos.mdb
apli.mdb
apli.mdb
apli.mdb
Cada apli.mdb:
informes,
formularios,
etc.
3. Conocer el puesto de trabajo: nombre de la computadora.
Inicio - Configuración - Panel de control - Red.
Ejemplo de trabajos en multiusuario con Access.
Para la máquina 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.
29
INSTITUCION EDUCATIVA
MANUEL GERMAN CUELLO GUTIERREZ
TECNOLOGIA E INFORMATICA
Profesor. Ing. Armando Vega Armenta
 Nota:
Para que las demás máquinas puedan acceder a la Base de Datos que tenemos
en nuestra máquina deberemos decirle a Windows que queremos compartir la
carpeta:
Lee la tabla.
cmdActualizar
Sub cmdActualizar_Click ()
Me!Requery
End Sub
 Nota:
Refrescar
Actualizar
Lee el registro.
cmdRefrescar
Sub cmdRefrescar_Click ()
Me!Refresh
End Sub
En Access se refresca al navegar por el formulario.
Y por parte de los demás, desde sus puestos de trabajo y para que puedan
acceder a la Base de Datos:
30
Descargar