Ficheros y bases de datos

Índice

1. Introducción

  • Se manejan grandes cantidades de datos desde hace mucho tiempo
    • Censos romanos
    • Bancos medievales
    • Información fiscal de cada país
    • Empresas de todo tipo
  • Tradicionalmente, se han usado
    • Fichas, informes, expedientes archivadores, carpetas…

1.1. Antes de la informática

  • Tradicionalmente
    • Manejados por personas
    • De forma manual
    • Gran componente subjetivo
  • Algunos sistemas intentan eliminar el componente subjetivo
    • Sistemas burocráticos

1.2. Informática

  • Tratamiento automatizado de la información
  • Se elimina el componente subjetivo
  • Las operaciones con los datos se vuelven
    • Precisas
    • Rápidas
  • Permite un mayor volumen de datos

2. Discos de datos

  • Originalmente, los programas de ordenador utilizaban directamente los soportes de memoria (cinta, disco)
    • Ventaja: No se depende de otros sistemas
    • Pero…
  • Un programa \(\Leftrightarrow\) Un disco de datos
    • Un cambio de datos hacía inútil el programa
    • Un cambio de programa hacía inútiles los datos anteriores
  • Cada programa debe aprender a manejar los discos

3. Ficheros (archivos)

  • El sistema operativo crea archivos
  • Los programas se simplifican
  • Los programas pueden compartir los discos
  • Más de un programa puede usar los mismos ficheros de datos
    • Es necesaria una coordinación para acceder y modificar ficheros

3.1. ¿Qué es un archivo?

  • Un archivo se compone de registros
    • Un registro son los datos agrupados de alguna entidad
  • Un registro contiene campos de datos
  • Cada campo tiene un nombre y un valor
    • Por simplicidad, supondremos que todos los registros tienen los mismos campos

3.2. Ejemplo de archivo

Identificador Nombre Deuda Dirección
987 juan 87345 10 norte 342
876 pedro 43649 8 oriente 342
123 jorge 03342 av. libertad 23
69 vicente 61560 valencia nº183
18 lorenzo 06490 sol nº18
19 lucía 06480 luna nº8

3.3. Nombres de los campos

Identificador Nombre Deuda Dirección
987 juan 87345 10 norte 342
876 pedro 43649 8 oriente 342
123 jorge 03342 av. libertad 23
69 vicente 61560 valencia nº183
18 lorenzo 06490 sol nº18
19 lucía 06480 luna nº8

3.4. Un registro

Identificador Nombre Deuda Dirección
987 juan 87345 10 norte 342
876 pedro 43649 8 oriente 342
123 jorge 03342 av. libertad 23
69 vicente 61560 valencia nº183
18 lorenzo 06490 sol nº18
19 lucía 06480 luna nº8

3.5. Una columna

Identificador Nombre Deuda Dirección
987 juan 87345 10 norte 342
876 pedro 43649 8 oriente 342
123 jorge 03342 av. libertad 23
69 vicente 61560 valencia nº183
18 lorenzo 06490 sol nº18
19 lucía 06480 luna nº8

4. Tipos de archivos

  • Según su uso
  • Según formato
  • Según su organización

4.1. Tipos según su uso

  • Permanentes
    • Datos que deben ser guardados
    • Ejemplo: Empleados contratados, nóminas pagadas, declaraciones de impuestos,…
  • De movimiento
    • Cambios que deben ser incluidos en archivos permanentes
    • Ejemplo: un puesto de peaje debe guardar todos los pagos con tarjeta, y enviarlos juntos
  • De maniobra
    • Se utilizan como extensión a la RAM de un ordenador, se borran cuando el proceso termina
    • Ejemplo: caché de disco de los navegadores

4.2. Según formato

  • De texto (o planos, o ASCII, o UNICODE)
    • Pueden editarse con el bloc de notas
    • Son teóricamente legibles directamente por las personas
  • Binarios
    • La información se guarda en un formato numérico (binario), no legible directamente

4.2.1. Ficheros binarios

  • exe, dll : Ficheros ejecutables
  • png, jpg, gif : Ficheros de imagen
  • zip, rar : Ficheros comprimidos
  • docx, pptx, xlsx, pdf : Documentos ofimáticos

4.2.2. Ficheros de texto

  • txt: Texto
  • html, rtf, ps: Texto con formato
  • ini, inf, conf, xml: configuración de programas
  • sql, java, php, c, bat, sh: instrucciones de programas informáticos

Variantes:

  • Encodig: ASCII, UNICODE (utf-8, utf-16, utf-32), ISO-8859,…
  • Fin de línea: Unix, Windows

4.2.3. Texto ¿plano?

  • No es fácil/posible deducir en qué variante está guardado un fichero con texto plano
  • Los programas utilizan
    • Heurísticas: pruebas en las primeras líneas del fichero
    • BOM

4.2.4. Ficheros de texto como binarios

  • Al final, todos los ficheros son solo números almacenados en disco
    • Los programas o personas interpretan los números
  • Un fichero de texto es en el fondo un fichero binario
  • La traducción a “humano” es el estándar ASCII (o UNICODE), que asigna a cada byte una letra

tabla-ascii-hexadecimal.jpg

4.3. Tipos de ficheros según organización

  • Organización secuencial
    • Los registros se colocan unos detrás de otros
    • Pueden estar ordenados por algún criterio
      • Orden de llegada
      • Alfabético por algún campo
  • Organización indexada
    • Cada fichero secuencial puede tener otros ficheros de índice
    • El índice está ordenado por algún criterio
    • En el índice aparece
      • Identificador de cada registro
      • En qué línea (posición) está ese registro

fichero-indexado.gif

Crédito: www.dlsweb.rmit.edu.au

4.3.1. Ficheros indexados

  • El fichero secuencial con datos es el fichero principal
  • Cada fichero principal puede tener otros ficheros de índice
    • Uno por cada criterio que se desee buscar rápidamente
  • Cada fichero de índice es a su vez un fichero secuencial
    • Podría indexarse, con un índice de segundo nivel

fichero-indexado-multinivel.png

Créditos: www.tutorialspoint.com

4.3.2. Área de desbordamiento (overflow)

  • Los criterios de un índice pueden no ser únicos
    • Por ejemplo, código postal en un fichero de alumnos
  • Si hay un conflicto, los datos se almacenan en un área de overflow

fichero-indexado-overflow.png

Créditos: kpvxy.blogspot.com.es

4.4. Secuencial vs Indexado (escritura)

  • Organización secuencial:
    • Si no se ordena, basta con añadir: rápido
    • Si se ordena, se puede necesitar cambiar todo el fichero: muy lento
  • Organización indexada:
    • Si no hay colisiones, dos escrituras (índice y fichero principal)
    • Si hay colisiones (la clave ya está usada)
      • Usar un fichero de overflow (y reorganizar con el fichero principal en un futuro)
      • Reorganizar el fichero principal muy lento
  • Para lectura, ver acceso vs organización

5. Acceso a ficheros

  • Acceso secuencial
    • Para llegar a un registro, es necesario pasar por todos los anteriores
    • Obligatorio en
      • cintas
      • ficheros sin indexar con campos de longitud variable (csv, xml,…)
  • Acceso directo (aleatorio)
    • Se puede leer directamente un registro sin tener que pasar por los anteriores
    • Se necesita saber su posición (por un índice)

5.1. Acceso vs organización (lectura)

  Acceso secuencial Acceso directo
Organización secuencial Fácil y rápido Deben leerse los registros anteriores, o estar ordenado
Organización indexada Algo más lento (dos lecturas mínimo) Más rápido (dos lecturas)

6. Bases de datos

  • En una empresa, los datos pueden estar dispersos y duplicados
  • Hay que actualizar todas las copias a la vez
    • centralización de los datos
  • Puede haber datos confidenciales
    • permisos por fichero
  • Se puede necesitar más de un programa accediendo a los mismos registros
  • Pero no a los mismos campos
    • permisos por campo,
  • Diferentes departamentos pueden tener nombres distintos para los ficheros, o los campos
    • diferentes formas de ver los registros

6.1. Definición (I)

Una colección de datos que están lógicamente relacionados entre sí, que tiene una definición y una descripción comunes y que están estructurados de una forma particular

6.2. Definición (II)

Una base de datos es una colección de datos estructurados según un modelo que refleje las relaciones y restricciones existentes en el mundo real. Los datos, que han de ser compartidos por diferentes usuarios y aplicaciones, deben mantenerse independientes de ésta, y su definición y descripción han de ser únicas estando almacenados junto a los mismos. Por último, los tratamientos que sufran estos datos tendrán que conservar la integridad y seguridad de éstos

ejemplo-base-de-datos.png

6.3. Ventajas de las bases de datos

  • Independencia de los datos y los programas y procesos. Esto permite modificar los datos sin modificar el código de las aplicaciones.
  • Menor redundancia. Aunque, sólo los buenos diseños de datos tienen poca redundancia.
  • Integridad. Mayor dificultad de perder los datos o de realizar incoherencias con ellos.
  • Mayor seguridad. Al limitar el acceso a ciertos usuarios.
  • Datos más documentados. Gracias a los metadatos que permiten describir la información de la base de datos.
  • Acceso a los datos más eficiente. La organización de los datos produce un resultado más óptimo en rendimiento.

6.4. Inconvenientes

  • Instalación costosa
    • El control y administración de bases de datos requiere de un software y hardware poderoso
  • Requiere personal cualificado
    • Debido a la dificultad de manejo de este tipo de sistemas.
  • De todas formas, las ventajas superan ampliamente los inconvenientes

7. Estándar ANSI/SPARC

  • Define tres niveles, para ayudar a conseguir los objetivos de un SGBD
    • Interno: es como se almacena la información realmente. Por lo general, en ficheros en disco
    • Conceptual: incluye la estructura de la base de datos total
      • Entidades
      • Campos de las entidades
      • Relaciones entre entidades
    • Externo: Cada tipo de usuario/aplicación puede operar con una parte del nivel conceptual, a veces con una transformación intermedia

ansi-sparc.png

8. Diseño de bases de datos

  • No es evidente abstraer, a partir de datos en bruto, la estructura de una base de datos
  • Las bases de datos se diseñan en tres pasos
    • Nivel conceptual
    • Nivel lógico
    • Nivel físico

Nota: estos niveles son del diseño, no confundir con los niveles de la implementación Ansi/SPARC

8.1. Nivel conceptual

  • Un usuario no informático debe poder entenderlo
  • Trata sobre
    • entidades
    • relaciones entre ellas
    • datos a almacenar por cada entidad y relación

ejemplo-entidad-relacion.png

8.2. Nivel lógico

  • El modelo conceptual debe ser sistematizado y simplificado, para que un ordenador pueda manejarlo
  • No se decide cómo se guardarán los datos, pero sí qué forma tendrán
    • Generalmente, en forma de tabla

ejemplo-logico.png

8.3. Nivel físico

  • Se describe de qué forma el nivel lógico será almacenado en ficheros
    • CSV
    • Excel
    • XML
    • Utilizando un Sistema Gestor de Bases de Datos

9. SGBD

9.1. SGBD: Componentes

  • Hardware: Servidores, discos, componentes de red,…
  • Software: Incluye un software de base de datos y las aplicaciones que los manejan
  • Datos: Tanto los datos originales como los metadatos

9.2. SGBD: Funciones

  • Almacenar datos en la base de datos, acceder a ellos y actualizarlos
  • Mantener descripciones de los datos accesibles por los usuarios (metadatos)
  • Integridad: una transacción debe realizarse en su totalidad o no realizarse
  • Integridad: los cambios deben poder ser realizados por varios usuarios a la vez
  • Integridad: Se deben poder recuperar los datos si se pierden (backup)
  • Integridad y confidencialidad: sólo usuarios autorizados pueden ver/modificar datos
  • Integridad: sólo los datos que sigan el diseño lógico pueden ser almacenados
  • Comunicación: Datos y operaciones están disponibles para usuarios y aplicaciones

9.3. SGBD: Objetivos

  • Independencia física de datos
    • Un programa debería poder seguir funcionando aunque el diseño físico (cómo se almacenan los datos en disco) cambie
    • Basta con que el SGBD ofrezca sólo un nivel conceptual que pueda usar diferentes niveles físicos
  • Independencia lógica de datos
    • Un programa debería poder seguir funcionando aunque el diseño lógico (cómo se relacionan los datos) cambie
    • Es más difícil, pero teóricamente son suficientes las vistas (niveles externos)
  • Estos objetivos se ven facilitados por los niveles definidos en la arquitectura ANSI-SPARC

10. Referencias

Autor: Álvaro González Sotillo

Created: 2024-09-08 dom 17:51

Validate