Mod BD UD1 Sistemas Almacenamento

De MediaWiki
Ir a la navegación Ir a la búsqueda

Introducción

Antes de que xurdiran as bases de datos o procesamento automatizado de información facíase mediante ficheiros. As aplicacións eran orientadas ó proceso (o esforzo enfocábase ó tratamiento que os datos recibían nunha aplicación concreta). Os ficheiros deseñábanse a medida para cada sistema de información sen que existise un formato común.

Esta aproximación non contemplaba a xestión da información a medio ou longo prazo. Unha organización podía dispoñer de varias aplicacións que nalgúns casos trataban a mesma información (por exemplo, o software utilizado polo departamento de recursos humanos debía xestionar un ficheiro con datos de empregados, mentres a aplicación de contabilidade mantiña outro fichero distinto cos mesmos datos organizados doutra forma). Xurdían os seguientes problemas:

  • Redundancia de datos (duplicidad innecesaria de información)
  • Mal aproveitamento do espazo de almacenamento
  • Aumento no tempo de proceso
  • Inconsistencia de información debida á redundancia (se un dato cambiaba no ficheiro dunha aplicación, non cambiaba nos demáis)
  • Illamento da información (imposibilidade de transferila a outros programas a non ser que se desenvolvera un software de migración específico).

Existía en definitiva unha gran falta de flexibilidade orixinada na dependencia total da estructura física dos datos.

Ficheiros

As aplicacións xestoras de bases de datos encárganse de configurar unha estructura óptima de almacenamento de información con mínima intervención por parte do usuario.

A principal diferenza entre unha base de datos e un conxunto de ficheiros e que na base de datos os ficheiros que a forman están relacionados entre eles.

Outras características relevantes que trae asociado o uso de bases de datos:

Aseguran a integridade Os datos e as relacións que se gardan na base de datos serán correctas en todo momento.
Exemplo. Non se pode gardar unha factura sen saber a qué cliente pertence.
Minimizan as redundancias Só se repetirá un dato en distintos táboas se é imprescindible para xestionar a relación entre elas (ou en casos puntuais para melloras de rendemento)
Exemplo. Se nunha táboa temos o enderezo do cliente, non rexistraremos na táboa cliente ter toda a información; chegará con ter un campo que relacione ambas táboas.
Facilitan a compartición da información entre usuarios Permite a xestión de usuarios, con distintos privilexios, sen que o acceso simultáneo afecte a integridade dos datos
Exemplo. Se xestionará polo SXBD o intento de dous usuarios que queren actualizar un rexistro ó mesmo tempo
Son independentes das aplicións de usuario Unha mesma base de datos pode ser usada por diferentes aplicacións, cada unha programada con linguaxes de programación distintos; e a base de datos pode atoparse aloxada en distintos sistemas operativos, sen que haiba necesidade de adaptar os seus datos; isto non ocurrirá cos sistemas de xestión baseados en ficheiros.
Exemplo. A base de datos da historia clínica dun paciente, pode ser utilizada para consulta e xeneración de recetas pola aplicación dos médicos, ou para a dispenciacición de medicamentos na farmacia no seu aplicativo.

É interesante completar a perspectiva histórica cunha breve descripción teórica sobre organización de ficheiros.

Tipos de fichero segundo a súa estrutura de almacenamento

Por contido

En relación co seu contido, atopamos os seguientes tipos básicos de ficheiros:

  • Texto plano. Almacenan secuencias de caracteres correspondentes a unha codificación determinada (ASCII, Unicode, EBCDIC, etc.). Son lexibles mediante un software de edición de texto coma o Bloc de Notas de Windows o os editores Vi ou nano de Linux.

Exemplos:

  • os ficheiros de texto con extensión .txt
  • os .csv de valores separados por comas
  • os .htm y .html correspondentes a páginas web
  • os de linguaxes de marcas .xml o .rss.
O sistema de codificación de caracteres máis popular é o código ASCII (American Standard Code for Information Interchange, código estándar estadounidense para intercambio de información), que define 256 caracteres distintos (todas as combinacións de 8 bits,dous elevado a 8 posibilidades). Algúns deles, chamados caracteres de control, encarganse de definir accións coma o borrado, o salto de liña ou o tabulador e non representan símbolos concretos.
Pequeno xogo
Busca en internet unha tabla de códigos ascii de 8 bits. Observa as seguintes características:
Os 32 primeros caracteres, chamados caracteres non imprimibles, utilizabanse tradicionalmente para o control de transmisións.
A distancia entre maiúsculas e minúsculas é exactamente 32 caracteres.
Hai caracteres que son numéricos, e que o seu valor ascii é o resultado de sumarlle 48. Por exemplo, 6+48=54. 54 é o código ascii do caracter 6.
  • Binarios. Conteñen información codificada en binario para o seu procesamento por parte de aplicacións. O seu contido resulta ilexible nun editor de texto.

Exemplos:

  • executables (.exe)
  • documentos de aplicacións (.pdf, .docx, .xlsx, .pptx)
  • ficheiros de imaxe, audio ou vídeo (.jpg, .gif, .mp3, .avi, .mkv)
  • librerías de sistema (.dll).

Por organización interna

Cando se utilizan ficheiros de texto plano para almacenar información podense clasificar dacordo a súa organización interna:

  • Secuenciais. A información escríbese en posicións físicamente contiguas. Para acceder a un dato hay que recorrer todos os anteriores.

Exemplo de ficheiro secuencial con información sobre clientes:

00789521T#Alba#Blanco#González#613524647$11111111H#Xosé Ramon#García#Pemán#613423824$38546998X#Xurxo#Cazás#Otero#666332245$09653801B#Antón#Resines#Pardo#619335241%

Por cada contacto estructurouse a información en cinco datos independeentes: NIF, nome, primer apelido, segundo apelido e número de teléfono. Neste caso o programador decidiu utilizar o grade (#) como separador de datos, o dólar ($) como separador de contactos e o tanto por cento (%) coma marca de fin de ficheiro.

  • De acceso directo ou aleatorio. Cada liña de contido organízase cuns tamaños fixos de dato. Pódese acceder directamente ó principio de cada liña.

Nesta ocasión cada contacto ocupa unha liña do ficheiro (o final de cada unha o sistema operativo incluirá un ou dos caracteres de salto de liña invisibles para o usuario), e cada dato utiliza un número de caracteres fixo, aínda que non o ocupe totalmente (no exemplo reservanse 15 caracteres para o nome, ainda que no caso de Alba só se utilicen catro).

Coma todos os clientes ocupan o mesmo espacio no fichero, podemos acceder fácilmente a calquiera deles multiplicando a posición na que se atopa menos una polo número de caracteres que mide cada liña. Por exemplo, se o fichero foi creado nun sistema Windows e queremos acceder o terceiro cliente, teremos que restar un á súa posición (3 − 1 = 2) e multiplicar o valor resultante pola lonxitude da liña (63 caracteres máis os dous caracteres de salto de liña que inclúe o sistema operativo, é decir, 65). Como 2 × 65 = 130, a información do terceiro cliente atoparase na posición 131.

A contrapartida a esta facilidad de posicionamiento é que o tamaño do ficheiro crece considerablemente respecto á súa versión secuencial.

  • Indexados. Xeralmente nun ficheiro de acceso aleatorio a información almacénase na orde en que se da de alta. Aínda que se conseguira introducir a información de acordo a algún criterio de ordenación concreto, nalgunhas ocasións é útil poder ordeala por varios criterios distintos. No exemplo anterior é posible que necesitemos un listado de clientes ordenado por NIF e outro polo apelido. Para dar solución a este problema creouse a organización indexada, que consiste na existencia de un ou varios archivos adxuntos que ordenan o dato (chamado clave) polo que se desexa ordear o ficheiro e o relacionan coa localización da liña correspondente.

Na figura 1.4 os NIF aparecen ordenados. Tras cada un deles engadiuse o número de liña do ficheiro principal onde se atopa a información asociada. Se unha aplicación software quixera listar os clientes ordenados por NIF, recorrería secuencialmente o ficheiro de índice, e ó final de cada liña atoparía a liña do ficheiro principal que debe ler para atopar a cada cliente.

O seguiente fichero indexaría os clientes ordenados polo seu primer apellido:

Tipos de soporte de almacenamiento

De acordo á organización física dos datos, diferenciamos entre dous tipos de soportes:

  • Secuenciais. Para acceder a un dato hai que recorrer todo o contido do soporte previo ó devandito dato (por exemplo, as cintas magnéticas).
  • Direccionables. Pódese acceder directamente a un dato sen ter que recorrer todos os anteriores (por exemplo un disco duro).

Nun soporte direccionable pódese implementar un acceso secuencial, directo ou indexado, mentras que nun soporte secuencial só se poderá implementar un acceso secuencial.

Bases de datos

Conceptos, usos e tipos segundo o modelo de datos e a localización da información.

A evolución lóxica dos problemas derivados do uso de ficheros foi estandarizar ó acceso á información, de modo que un diseño físico concreto servira para todas as aplicacións dunha organización. Este novo enfoque centrábase nos datos e non no proceso; isto é, estructurábase o almacenamento dos datos con independencia das aplicacións que os foran a utilizar. Así mesmo eliminábase a redundancia e se favorecía a transferencia de información entre aplicacións. Aparecía pois o concepto de base de datos.

Definición

Conforme a DRAE:

Conxunto de datos organizado de tal modo que permiten obtener con rapidez diversos tipos de información

Unha definición máis precisa é a ofrecida por Adoración de Miguel e Mario Piattini:

Colección ou depósito de datos integrados, almacenados en soporte secundario (non volátil) e con redundancia controlada. Os datos, que serán compartidos por diferentes usuarios e aplicacións, deben manterse independentes delas e a súa definición (estructura da BD), única e almacenada xunto cos datos, debe apoiarse nun modelo de datos, o cal debe permitir captar as interrelacións e restriccións existentes no mundo real. Os procedimientos de actualización e recuperación, comunes e ben determinados, facilitarán a seguridade do conxunto dos datos.

Sistemas xestores de bases de datos

O sistema xestor de bases de datos (SXBD) é o software que o fabricante pon a disposición do usuario para manexar as súas bases de datos. Definido en máis detalle:

Un conxunto coordinado de programas, procedemientos, linguaxes, etc., que suministra, tanto aos usuarios non informáticos como aos analistas, programadores, ou administrador, os medios necesarios para describir, recuperar e manipular os datos almacenados na base, mantendo a súa seguridade.

Funcións do SXBD

A pesar da gran variedadd de modelos d solucións comerciales e libres, podemos enumerar unha serie de funcións comuns a un gran número de SXBD:

  • Recuperar e modificar a información dos ficheros que conforman a base de datos de forma transparente para o usuario.
  • Garantizar a integridade dos datos, impedindo inconsistencias semánticas.
  • Ofrecer unha linguaxe de programación mediante a que interaccionar coa información.
  • Proveer o diccionario de datos.
  • Solucionar os conflictos derivados de accesos concurrentes á información.
  • Xestionar transaccións, garantizando a unidade de varias instruccións de escritura relacionadas entre sí.
  • Incluir utilidades de backup.
  • Proporcionar mecanismos de seguridade para evitar accesos e operacións indebidas.

Compoñentes del SGBD

Xeneralizando podemos atopar a seguiente enumeración de compoñentes na maioría dos SXBD:

  • Datos. Almacenados de forma eficiente en ficheiros do sistema operativo.
  • Ferramentas de acceso ós datos. Unha linguaxe de programación mediante a que os usuarios técnicos poden crear, leer e modificar a información, así como un diccionario de datos que albergue os metadatos (a información sobre os propios datos e o diseño de cada base de datos). Como mínimo, ofrecerase unha interfaz de líña de comandos mediante a que acceder a estas ferramentas.
  • Utilidades. Ferramentas adicionais para xestión de backups, estadísticas, tarefas programadas, mantemento de usuarios, grupos e permisos, etc.
  • Entornos gráficos. Simplifican a xestión do SXBD e serven como alternativa á líña de comandos.

Tipos

Un modelo de base de datos é a arquitectura mediante a que se almacena e interrelaciona a información que se vai a xestionar.

A clasificación habitual de bases de datos toma como punto de partida o modelo subxacente:

  • Xerárquico. É o máis antiguo. Refina a idea de ficheiro indexado, creando una estricta relación de xerarquía entre os datos de varios ficheiros, motivo polo que presenta serias limitaciones semánticas. Relacionado con grandes máquinas (mainframes), a súa implantación comercial máis conocida é IMS de IBM.
  • En rede. Introduce melloras respecto ó modelo xerárquico (maior independencia e flexibilidade dos datos) a costa de aumentar o nivel de complexidade. Implantaciones: CODASYL, IDMS/DB de CA Technologies.
  • Relacional. Representa a información en forma de entidades e relacións entre elas, evitando rutas preconcebidas para localizar os datos e fuxindo da rixidez dos modelos previos. Cada entidade e cada relación aparece en forma de tablas bidimensionales (con filas e columnas). É o modelo máis extendido desde fai décadas, gracias a compañías coma Oracle, IBM ou Microsoft. Posteriormente moitas evolucionaron hacia o modelo obxecto-relacional, pero hoxe en día podemos atopar bases de datos relacionais puras coma MySQL ou SAP Sybase.
  • Orientado a obxectos. Aplica aos datos o paradigma da orientación a obxectos (OOP, object-oriented programming). Irrumpió con forza nos amos noventa debido as novas necesidades de almacenamento das bases de datos relacionais (imáxenes, documentos, ficheros de audio e vídeo). Implantacións: Versant, db4o, InterSystems, Objectivity.
  • Obxecto-relacional. Nos últimos anos os fabricantes de bases de datos relacionales incorporaron o seu software diversas capacidades das bases de datos orientadas a obxectos, creando modelos híbridos con base relacional. Coma exemplos: Oracle, Microsoft SQL Server, IBM DB2, IBM Informix, PostgreSQL.
  • Outros modelos.
    • Orientado ó documento. Xestionan datos provintes de documentos previamente estructurados, xeralmente de lenguajes de marcas (XML, JSON). MongoDB é posiblemente o maior exponente
    • Multidimensional. Orientado ó tratamento da información mediante algoritmos de intelixencia artificial.
    • Deductivo. Almacena regras de inferencia mediante as que xenera deduccións a partir duns datos determinados.
    • Espaciales. Almacenan puntos, líñas e polígonos.

Utilizando como criterio a ubicación física da información, podemos diferenciar entre dous grandes tipos de bases de datos:

  • Centralizadas: A base de datos reside nunha sola máquina, típicamente o servidor de base de datos.
  • Distribuidas: A información repártese por distintos servidores, xeneralmente alonxados físicamente. Un exemplo sería a base de datos dunha empresa sanitaria, concebida a partir dos datos dos diferentes hosptais. A súa implantación esixe reflexionar con cuidado aspectos de networking e seguridade.

Produtos

No mercado hai unha amplia tipoloxía de SXBD. Os últimos datos apuntan a un crecemento no uso de SXBD libres, nos que destaca MySQL (e o seu fork MariaDB) e PostgreeSQL. Tamén destaca como SXBD libre orientado a documentos MongoDB.

Dentro do mercado de productos'propietario, cómpre salientar os productos Oracle (distintos de MySQL)' e Microsoft SQL Server.

Bases de datos centralizadas e distribuídas. Fragmentación.

Unha base de datos centralizado e un tipo de base de datos na que se almacena a información e que se mantén nun único punto (accesible remotamente a través de rede).

Bases de datos centralizadas
Vantaxes Desvantaxas
E más sinxelo de acceder e coordinar os datos por estar nun único punto O tráfico de datos aumenta porque hai que remitir información a puntos máis lonxanos
Ten unha redundancia de datos mínima xa que toda a información está almacenada nun único punto Pode ser SPOF (Single Point OF Failure), xa que un fallo no nodo central pode deixar non dispoñible o sistema
É un modelo máis económico que as bases de datos distribuídas

Unha base de datos distribuida é un tipo de base de datos conformada por múltiples bases de datos conectadas entre sí en diferentes localizacións físicas; a información está distribuída entre elas e pode ser xestionada de xeito independente entre localizacións. A comunicación entre elas e a través da rede

Bases de datos distribuidas
Vantaxes Desvantaxas
Fácilmente escalable Moi costosas e difíciles de manter pola súa complexidade
Fácil acceso as diferentes bases de datos por encontrarse en diferentes redes Difícil amosar unha vista uniforme ó usuario porque a información esta en diferentes localizazións
Máis seguras

Diferenzas

Bases de datos centralizadas vs distribuidas
Base de datos centralizada Base de datos distribuida
É unha base de datos localizada e mantida a través dunha única localización na que se almacena a información Consiste en múltiples bases de datos interconectadas entre si desde diferentes localizacións físicas
O tempo de acceso a datos en caso de múltiples usuarios é maior O tempo de acceso a datos en caso de múltiples usuarios é menor
A xestión, modificación e backup da base de datos é máis sinxelo A xestión, modificación e backup da base de datos é máis complexo
Facilita unha visión uniforme e completa para o usuario É dificil amosar unha visión uniforme e completa para o usuario
A información é máis consistente A información ten algunha replicación entre nodos, sendo menos consistente
Os usuarios non poden accedes en caso de fallo O fallo dunha base de datos non impide o acceso ó resto de bases de datos
Económicamente máis barata Económicamente máis cara

Fragmentación

A fragmentación da base de datos é o proceso de dividir unha base de datos en varias máquinas para mellorar a escalabilidade dunha aplicación. En Sharding'' (particionamento), os datos de un divídense en dous ou máis fragmentos máis pequenos chamados fragmentos lógicos.

A continuación os fragmentos lógicos distribúense en nodos de base de datos separados, denominados fragmentos físicos.

Productos existentes

Algúns dos productos máis salientables no mercado das bases de datos distribuídas son:

  • Apache Cassandra
  • Apache HBase
  • MySQL Cluster
  • MongoDB

Outros sistemas de almacenamento

Existen outros sistemas de almacenamento moi relacionados coas bases de datos

Servizo de directorios

Un servizo de directorio (SD) é unha aplicación ou un conxunto de aplicacións que almacena e organiza a información sobre os usuarios dunha rede de ordenadores e sobre os recursos da rede de xeito que permite ós administradores xestionar o acceso de usuarios ós recursos sobre dita rede; polo tanto os servizos de directorio actúan como unha capa de abstracción entre os usuarios e os recursos compartidos.

Como base de datos, un servizo de directorio está altamente optimizado para lecturas e proporciona alternativas avanzadas de búsqueda nos diferentes atributos que se poden asociar os obxetos dun directorio. Os datos que se almacenan no directorio son definidos por un esquema extensible e modificable.

Os servizos de directorio utilizan un modelo distribuido para almacenar a súa información e esa información xeneralmente está replicada entre os servidores que forman o directorio.

XML

Unha base de datos XML constitúe un sistema software que da persistencia a datos almacenados en formato XML. Estos datos poden ser interrogados, exportados e serializados. As bases de datos XML están xeralmente asociadas coas bases de datos documentais.

Existen dous grandes clases de bases de datos XML:

  • XML habilitado: poden mapear XML en estructuras tradicionales de bases de datos (como as relacionais​), aceptando XML como entrada e formateando en XML a saída; ou máis recentemente soportando tipos XML nativos na propia base de datos. Esto implica que a base de datos procesa o XML internamente.
  • XML nativo (NXD): o modelo interno destas bases de datosusa documentos XML como a unidade elemental de almacenamento

Referencias

Fragmentación

Big Data