1 estructuras de archivos y bases de datos tanenbaum: sistemas operativos modernos, 2002tanenbaum:...
TRANSCRIPT
1
Estructuras de Archivos y Estructuras de Archivos y Bases de datosBases de datos
• Tanenbaum: Sistemas Operativos Modernos, Tanenbaum: Sistemas Operativos Modernos, 2002 2002
• J. Glenn Brookshear: Computer Science – An J. Glenn Brookshear: Computer Science – An overviewoverview
2
Sistema de Gestión de archivosSistema de Gestión de archivos
• Se considera parte del sistema operativo. Se considera parte del sistema operativo.
• La entrada a la aplicación se realiza por medio de La entrada a la aplicación se realiza por medio de archivos.archivos.
• La salida se guarda en archivos para su La salida se guarda en archivos para su almacenamiento a largo plazo.almacenamiento a largo plazo.
3
Términos relacionados con los Términos relacionados con los archivos - 1archivos - 1
Campo:Campo:– Elemento de datos básico.Elemento de datos básico.– Contiene un valor único.Contiene un valor único.– Se caracteriza por su longitud y por el tipo Se caracteriza por su longitud y por el tipo
de datos.de datos.
Registro:Registro:– Conjunto de campos relacionados.Conjunto de campos relacionados.– Pueden tratarse como una unidad:Pueden tratarse como una unidad:
• Ejemplo: un registro “empleado”.Ejemplo: un registro “empleado”.
4
Términos relacionados con los Términos relacionados con los archivos - 2archivos - 2
• Archivo:Archivo:– Conjunto de registros similares.Conjunto de registros similares.– Tratado como una entidad única.Tratado como una entidad única.– Tienen nombres únicos.Tienen nombres únicos.– Se suelen aplicar restricciones al control Se suelen aplicar restricciones al control
de accesos.de accesos.
• Base de datos:Base de datos:– Conjunto de datos relacionados.Conjunto de datos relacionados.– Existen relaciones entre los elementos.Existen relaciones entre los elementos.
5
Operaciones típicasOperaciones típicas
• Sobre registrosSobre registros– Recuperar _UnoRecuperar _Uno– Recuperar _SiguienteRecuperar _Siguiente– Recuperar _PrevioRecuperar _Previo– Insertar_UnoInsertar_Uno– Borrar_UnoBorrar_Uno– Recuperar_TodoRecuperar_Todo– Actualizar_UnoActualizar_Uno– Recuperar _VariosRecuperar _Varios
• Sobre archivosSobre archivos– Copiar o duplicarCopiar o duplicar– BorrarBorrar– Escanear Escanear
(antivirus)(antivirus)– NombrarNombrar– RenombrarRenombrar– Modificar Modificar
característicascaracterísticas
6
Sistemas de gestión de archivos
• Es el mecanismo por medio del cual un usuario o aplicación puede acceder a los archivos.
• El programador no necesita desarrollar software de gestión de archivos.
7
Objetivos para un sistema de gestión de archivos
• Cumplir con las necesidades de gestión de datos y con los requerimientos del usuario.
• Optimizar el rendimiento.• Minimizar la posibilidad de pérdida o destrucción
de datos.• Ofrecer un conjunto estándar de rutinas de
interfaz de E/S.• Proporcionar soporte de E/S para múltiples
usuarios. • Ofrecer soporte de E/S para la variedad de tipos de
dispositivos de almacenamiento.
8
Requisitos mínimos de un usuario
• crear, borrar y cambiar los archivos.• tener acceso a los archivos de otros usuarios.• controlar qué tipos de accesos estarán permitidos
a sus archivos.• reestructurar sus archivos de manera adecuada al
problema.• mover datos entre los archivos.• guardar una copia de reserva y recuperar sus
archivos en el caso de que hayan sufrido algún daño.
• acceder a sus archivos mediante un nombre simbólico.
Programa de usuario
Pila Secuencial Indexado Dispersión
E/S lógica
Supervisor básico de E/S
Sistema de archivos básico
Secuencial indexado
Controlador del dispositivo Disco Controlador del dispositivo Cinta
Figura 12.1. Arquitectura del software del sistema de archivos [GROS86].
10
Funciones del sistema de gestión de archivos
• Identifica y ubica el archivo en cuestión.• Utiliza un directorio que describe la ubicación de
todos los archivos y sus atributos. • Los sistemas compartidos aplican algún control de
acceso a los usuarios. • La E/S se lleva a cabo por bloques.• Asigna los archivos a los bloques disponibles.• Gestiona el espacio libre, de manera que se
conozca qué bloques están disponibles.
11
Criterios en la elección de una organización de archivos
• Acceso rápido• Facilidad de actualización• Economía de almacenamiento• Facilidad de actualización• Mantenimiento sencillo• Fiabilidad
12
Organización de archivos
• Pilas:– Los datos se recogen en el orden en que
llegan.– La finalidad es acumular una masa de datos
y guardarla.– Los registros pueden tener campos
diferentes.– No hay una estructura.– El acceso a los registros se hace por
búsqueda exhaustiva.
13
Pilas
Figura 12.3. Organizaciones comunes de archivo.
Registros de longitud variable
Conjunto variable de campos
Orden cronológico
(a) Archivo de pila
14
Organización de archivos
• Archivos secuenciales:– Se emplea un formato fijo para los registros.– Los registros son de la misma longitud.– Todos los campos son iguales (longitud y
posición).– El nombre del campo y su longitud son atributos
de la estructura del archivo. – Un campo particular es conocido como el campo
clave:• Identifica unívocamente al registro.• Los registros se almacenan en secuencia por la
clave.
15
Organización de archivos
• Archivos secuenciales:– Se realiza una actualización por lotes que mezcla
el archivo de registro con el archivo maestro. – Los nuevos registros se ubican en un archivo de
registro o archivo de transacciones.
16
Archivo secuencial
Registros de longitud fija
Conjunto fijo de campos en orden constante
Orden secuencial por el campo clave
(b) Archivo secuencial
Figura 12.3. Organizaciones comunes de archivo.
17
Organización de archivos
• Archivos secuenciales indexados– El índice proporciona una capacidad de
búsqueda para llegar rápidamente a las proximidades de un registro deseado:
• Contiene un campo clave y un puntero al archivo principal.
• Se busca el índice hasta encontrar el valor mayor de la clave que es igual o precede al valor deseado de la clave.
• La búsqueda continúa en el archivo principal a partir de la posición indicada por el puntero.
18
Organización de archivos
• Comparación de archivos secuenciales y archivos secuenciales indexados:– Ejemplo: un archivo contiene 1 millón de
registros.– Por término medio, se necesitan 500.000
accesos para hallar un registro en un archivo secuencial.
– Si un índice contiene 1.000 entradas, se necesitan 500 accesos para hallar la clave, seguidos de 500 accesos al archivo principal. Entonces, ahora se necesitan 1.000 accesos por término medio.
19
Organización de archivos
• Archivos secuenciales indexados:– Se añaden nuevos registros al archivo de
desbordamiento.– El registro del archivo principal que precede
se actualiza con un puntero al registro nuevo.
– El archivo secuencial indexado se combina con el archivo de desbordamiento en un tratamiento por lotes.
– Para ofrecer una eficacia mayor, se pueden usar múltiples niveles de indexación.
20
Archivo secuencial indexado
Figura 12.3. Organizaciones comunes de archivo.
(c) Archivo secuencial indexado
Niveles de
indexaciónÍndice
Archivo
principal
Archivo de overflow o desbordamien
to
21
Organización de archivos
• Archivos indexados:– Utilizan múltiples índices para cada campo
clave. – Puede contener un índice exhaustivo que
contenga una entrada para cada registro del archivo principal.
– Puede contener un índice parcial.
22
Organización de archivos
• Archivos directos o de dispersión:– Acceden directamente a cualquier bloque de
dirección conocida. – Se requiere un campo clave en cada registro.
23
Directorio de archivos
• Contiene información sobre los archivos:– Atributos.– Ubicación.– Propietario.
• El directorio es propiamente un archivo, poseído por el sistema operativo.
• Ofrece una traducción entre los nombres de archivo y los archivos propiamente dichos.
24
Directorio jerárquico o estructurado en árbol• Existe un directorio raíz que incluye otros directorios y
archivos.• Cada uno de estos directorios puede tener a su vez
subdirectorios y archivos como entradas.• Cualquier archivo puede ser localizado siguiendo un
camino desde el directorio raíz o maestro, descendiento por varias ramas:– Este es el nombre de camino del archivo.
• Se pueden tener varios archivos con el mismo nombre de archivo mientras tengan nombres de camino únicos.
• El “directorio actual” es el directorio de trabajo. • Las referencias a los archivos son relativas al directorio
de trabajo.
Figura 12.4. Directorio estructurado en árbol.
Directorio maestro (raíz)
Subdirectorio
Archivo
Subdirectorio
Subdirectorio
Subdirectorio
Subdirectorio
Archivo
ArchivoArchivo
Figura 12.5. Ejemplo de directorio estructurado en Árbol.
Directorio maestroSistema
Usuario A
Usuario B
Usuario C
Dibujos
Textos
Tema 1 ABC
ABC Archivo
“ABC”
Archivo
“ABC”
Directorio “Usuario B”
Directorio “Dibujos”Directorio “Textos”
Directorio “Tema 1”
Directorio
“Usuario C”
Directorio
“Usuario A”
Nombre de camino: /UsuarioB/Textos/Tema 1/ABC
27
Compartimiento de archivos
• En un sistema multiusuario, existe la necesidad de permitir a los usuarios compartir archivos.
• Dos cuestiones:– Los derechos de acceso.– La gestión de los accesos simultáneos.
28
Derechos de acceso
• Ejecución:– El usuario puede cargar y ejecutar un programa.
• Lectura:– El usuario puede leer el archivo para cualquier propósito,
incluyendo copia y ejecución. • Adición:
– El usuario puede añadir datos al archivo. • Actualización:
– El usuario puede modificar, borrar y añadir datos al archivo.
• Cambio de protección:– El usuario puede cambiar los derechos de acceso
otorgados a otros usuarios.• Borrado:
– El usuario puede borrar el archivo del sistema de archivos.
29
Derechos de acceso
• Propietario:– Dispone de todos los derechos de acceso
enumerados antes.– Puede otorgar derechos a los otros usando
las siguientes clases de usuarios:• Usuario específico. • Grupos de usuarios.• Todos (archivos públicos).
30
Acceso simultáneo
• El usuario puede bloquear el archivo entero cuando lo vaya a actualizar.
• Un mejor control es bloquear los registros individuales durante la actualización.
• Al diseñar la posibilidad de accesos compartidos, deben abordarse aspectos de exclusión mutua e interbloqueo.
31
Sistema de gestión del almacenamiento secundario
• Debe asignarse espacio a los archivos.
• Es necesario guardar constancia del espacio disponible para asignar.
32
Métodos de asignación de archivos
• Asignación contigua:– Cuando se crea un archivo se le asigna un
único conjunto contiguo de bloques. – La tabla de asignación necesita sólo una
entrada por cada archivo:• Bloque de comienzo y longitud del archivo.
– Se producirá fragmentación externa.
33Figura 12.7. Asignación contigua de archivos.
Archivo A
Archivo B
Archivo C
Archivo E
Archivo D
Tabla de asignación de archivos
Nombre de archivo Bloque de inicio Longitud
Archivo A
Archivo B
Archivo C
Archivo D
Archivo E
Figura 12.8. Asignación contigua de archivos (tras compactación).
Archivo A
Archivo B
Archivo D
Archivo C
Tabla de asignación de archivos
Nombre de archivo Bloque de inicio Longitud
Archivo A
Archivo E
Archivo D
Archivo C
Archivo B
Archivo E
35
Métodos de asignación de archivos
• Asignación indexada:– La tabla de asignación de archivos contiene un
índice separado de un nivel para cada archivo.– El índice posee una entrada para cada sección
asignada al archivo.– La tabla de asignación contiene números de
bloque para el índice.
Figura 12.11. Asignación indexada por bloques.
Tabla de asignación de archivos
Nombre de archivoArchivo B
Archivo B
Bloque índice
37
El rol del sistema operativo cuando se accesa un archivo
Memoria principal
Almacenamiento masivo
Los programas de aplicación accesan datos en el buffer en unidades de registros lógicos o campos
El sistema operativo recupera datos desde el almacenamiento masivo en unidades de registros físicos (bloques, sectores)
38
Mantención del orden en un archivo por medio de una tabla de ubicaciones
Sectores del disco que contienen el archivo
Lista de sectores conteniendo el archivo
39
Estructura de un archivo simple de empleados implementado como un archivo de texto.
El archivo consiste de una secuencia de registros de 31 caracteres cada uno.
Archivo
Registro
lógico
Nombre del empleado
Número de identificación del
empleado
Cada registro consiste de un campo de 25 caracteres conteniendo el nombre del empleado seguido de un campo de 6 caracteres conteniendo el número de
identificación
40
Bases de Datos
J. Glenn Brookshear: Computer Science - An overview
C. J. Date - Introducción a los sistemas de base de datos
41
Una organización de archivos vs base de datos - 1
Registrosde
clientes
Depto.Serviciosal cliente
Registrosde
sueldos
Depto.Sueldos
Registrosde
empleados
Depto.Personal
Registrosdel
inventario
DeptoAdquisiciones
Registrosde
ventas
DeptoMarketing
A: sistema de información basado en archivos
42
Una organización de archivos vs base de datos - 2
Depto.Serviciosal cliente
Depto.Sueldos
Depto.Personal
DeptoAdquisiciones
DeptoMarketing
Base de datos
integrada
B: sistema de información basado en bases de datos
43
Niveles conceptuales de bases de datos
45
Sección posterior y secciones frontales.
La sección posterior es el DBMS en sí. Permite llevar a cabo todas las funciones básicas de un DBMS:
definición de datos, manipulación de los mismos, seguridad, integridad,
etc. En particular, permite establecer todos los aspectos de los niveles
externo, conceptual e interno. Así, "sección posterior" en este contexto
es tan solo otro nombre para el DBMS.
46
Modelo relacional
47
Relación que contiene la información de empleados
Cada fila se llama tuplaLas columnas se llaman atributos
48
Relación que contiene redundancia
49
Base de datos que consiste en tres relacionesEncontrar los departamentos en los cuales el empleado 23Y34 ha trabajado
50
La operación SELECT
51
Ejemplo: alumno-curso (mysql)(1)
Crear tabla alumno: nombrenmat
CREATE TABLE alumno (nmat int, nombre varchar(40));
Crear tabla curso:nombrecod
CREATE TABLE curso (nmat int, nombre varchar(40));
52
Ejemplo: alumno-asignatura (mysql)(2)Crear tabla alumno-curso: codnmat
CREATE TABLE al_cur (nmat int, cod int);
Modelo entidad-relación:
alumno al_cur curso
Entidad Entidadrelación
53
Ejemplo: alumno-asignatura (mysql)(3)Agregar tuplas a tabla alumno:
INSERT INTO TABLE alumno VALUES (111, ‘gonzalez pedro’);
Agregar tuplas a tabla curso:
INSERT INTO TABLE curso VALUES (1, ‘calculo I’);
Agregar tuplas a tabla al_cur (inscribir asignaturas de un alumno):
INSERT INTO TABLE al_cur VALUES (111,1);INSERT INTO TABLE al_cur VALUES (111,2);INSERT INTO TABLE al_cur VALUES (111,3);
54
Ejemplo: alumno-asignatura (mysql)(4)Obtener los alumnos de un curso por código de curso:
Forma 1:mysql> SELECT a.nombre FROM alumno AS a, al_cur AS b WHERE a.nmat=b.nmat AND b.cod=1;Forma 2:mysql> SELECT alumno.nombre FROM alumno, al_cur WHERE alumno.nmat=al_cur.nmat AND al_cur.cod=1;
Obtener los alumnos de un curso por nombre de curso:
Forma 1:mysql> SELECT a.nombre FROM alumno AS a, al_cur AS b, curso AS c WHERE a.nmat=b.nmat AND b.cod=c.cod AND c.nombre=‘caculo I’;Forma 2: TAREA!!!
55
Ejemplo: más tareas (5)
1. Obtener los códigos de los cursos que inscribió un alumno, por número de matricula
2. Obtener los nombres de los cursos que inscribió un alumno, por número de matricula
3. Obtener los nombres y códigos de los cursos que inscribió un alumno, por número de matricula
4. agregar la tabla profesor y crear a relación asignatura-profesor, hacer las consultas que incluyan nombres de profesor sus alumnos por curso
5. Agregar en la tablas de relaciones el semestre en los que se realizó