1 estructuras de archivos y bases de datos tanenbaum: sistemas operativos modernos, 2002tanenbaum:...

Post on 28-Jan-2016

230 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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ó

top related