Usuari:Sergi/Temari/Tema 34 Sistemas gestores de base de datos. Funciones. Componentes. Arquitecturas de referencia y operacionales. Tipos de sistemas.

De Acacha

Dreceres ràpides: navegació, cerca

Contingut

Història de les bases de dades

La paraula base de dades es va utilitzar per primer cop a principis dels anys 1960 i poc a poc s'ha anat integrant en la vida quotidiana com una paraula amb sentit més enllà de la informàtica. Els primers sistemes gestors de bases de dades es van desenvolupar als anys 1960. Fins aquesta època s'havien utilitzat majoritariament per a guardar dades les targetes perforades i les cintes magnètiques. Durant els 60 dos models s'utilitzen durant aquesta primera època de les bases de dades: el model jeràrquic i el model de xarxa. CODASYL(Conference on Data Systems Languages) va proposar el model en xarxa segons les idees de Charles Bachman. IDMS és un sistema de base de dades que s'utilitzava per a models en xarxa i el IMS va ser desenvolupat per North American Rockwell (després absorbit per IBM).

El model de base de dades relacional (segurament el model més conegut i utilitzat en l'actualitat) va ser proposat per E. F. Codd al 1970. Codd criticava els models existents per confondre la descripció abstracta de la informació amb la descripció dels mecanismes físics d'accés. Durant molt de temps però, el model relacional només va ser un model acadèmic i els productes de CODASYL (com IDMS) i IMS eren utilitzats pels enginyers com a solucions que tenien en compte la tecnologia existent i en canvi el model relacional era un model molt més teòric.

Unes de les primeres implementacions de bases de dades relacionals van ser Ingres de Michael Stonebraker creat a la Universitat de California, Berkeley i el System R un projecte de IBM. Aquest dos prototips van ser anunciats al 1976. Els primers productes comercials no varen sortir fins a principis dels 80: Oracle i IBM DB2. El primer sistema que va funcionar amb èxit en microcomputadores va ser dBASE per als sistemes operatius CP/M i MS-DOS.

Durant els anys 1980 l'activitat de recerca en base de dades es va centrar en les bases de dades distribuïdes però aquests sistemes sempre han tingut un baix impacte en el mercat. Un altres concepte teòric relacionat amb les bases de dades és el Model de Dades Funcional, però a part d'algunes aplicacions específiques en genètica, biologia molecular o investigació del frau el terme no ha tingut gaire èxit.

Als anys 1990 la investigació en bases de dades va girar cap a les bases de dades orientades a objectes (OODB). Aquest tipus de bases de dades han tingut bastant èxit a l'hora de gestionar dades complexes en camps on les base de dades relacionals no poden treballar de forma eficient amb aquestes dades. Un exemple són les bases de dades espacials, repositoris de programari o repositoris multimèdia i els datawarehouse.

Als anys 1990 també cal destacar el boom de les bases de dades de programari lliure com Mysql o PostgreSQL.

Actualment, al segle XXI la novetat més important en el món de les bases de dades són les bases de dades XML. Tal com va passar amb les bases de dades orientades a objectes han aparegut múltiples empreses d'aquest sector però la majoria de noves característiques de les bases de dades XML s'estan incorporant a les bases de dades relacionals del mercat.

Introducció. Definició de base de dades

Actualment les bases de dades són omnipresents en la informàtica hi han substituït en gran manera l'organització de les dades en fitxers. Hi han dos tipus de sistemes:

Sistemes orientats a procés (fitxers) vs Sistemes orientats a dades (bases de dades)

  • Sistemes orientats a procés: són sistemes informàtics (aplicació o conjunt d'aplicacions) on les aplicacions treballen amb fitxers que contenen les dades de l'aplicació i que estan organitzats directament en la forma que l'aplicació ha de tractar-los. Aquests tipus de sistemes acostumen a ser redundants (dades repetides als fitxers) i estan molt vinculats a l'aplicació (si es modifica l'aplicació cal modificar els fitxers)
  • Sistemes orientats a dades: Si el sistema treballa amb una única col·lecció de dades que sigui consistent i amb una redundància de dades mínima aleshores treballem amb una base de dades. A diferència del sistemes que treballen amb fitxers, les dades estan emmagatzemades i organitzades de forma independent a l'aplicació.

Recursos:

Definició

Una base de dades és una col·lecció interrelacionada de dades, emmagatzemades en conjunt sense redundància innecessàries, la finalitat 
de la qual és donar serveis a una o més aplicacions de la forma més eficient possible.

Bases de dades. Components

Una base de dades esta composta per les següent parts:

Dades

Evidentment és el component fonamental de les bases de dades. Les dades d'una base de dades es caracteritzen per estar relacionades entre si formant un conjunt amb un redundància el més petita possible.

Cal destacar que les dades per si mateixes no aporten coneixement i que cal processar-les i transformar-les (normalment utilitzant aplicacions) per obtenir-ne informació.

Normalment les bases de dades es guarden en suports de memòria secundària (disc dur, dispositius extraibles, etc.)

Maquinari

El maquinari que forma part de la base de dades són aquells dispositius on s'emmagatzemen físicament les dades.

Programari (SGBD o DBMS)


Per tal de ser útils per a diferents aplicacions i/o usuaris, les dades ha d'estar estructurades i emmagatzemades de forma completament independent de les aplicacions que volen utilitzar-les. Aquesta independència s'aconsegueix utilitzant un programari o conjunt de programes que fa la funció d'interfície entre les dades i les aplicacions o usuaris. Aquest programari s'anomena Sistema Gestor de Base de Dades també coneguts pels acrònims SGBD i DBMS de l'anglès DatabaBase Managment System

Els SGBD és tant l'encarregat de gestionar les dades (creació, modificació, eliminació...) con d'atendre les sol·licituds d'accés a la base de dades que fan els usuaris i/o aplicacions de la base de dades.

Consulteu:

Usuaris

Els usuaris són els que utilitzen les dades de la base de dades a través del SGBD. Hi ha 3 tipus d'usuaris:

  • Usuaris d'aplicació: Són els usuaris que utilitzen les aplicacions per treballar amb la base de dades
  • Usuaris casuals (programadors/dissenyadors): Són usuaris que interactuen directament amb la base de dades mitjançant les eines que ens proporciona el SGBD (per exemple un sistema per executar consultes SQL)

Administrador (DBA)

L'administrador de la base de dades (també anomenat sovint DBA de l'anglès Database Admin) és un tipus d'usuari especial que és l'encarregat de gestionar la base de dades. Pot ser una sola persona o un equip de persones. Les seves funcions són:

  • Descriure l'esquema de la base de dades i en definitiva gestionar-lo (utilitzant DDL)
  • Descriure l'estructura física d'emmagatzematge i l'organització física de les dades.
  • Concedir autoritzacions a la resta d'usuaris (gestionar els usuaris i l'accés a la base de dades)
  • Especificar les regles d'integritat de les dades

Objectius d'un SGBD

Bases de dades. Evolució dels fitxers com a sistema d'emmagatzemament de dades

Abstracció de la informació

El primer objectiu d'un SGBD és proporcionar un nivell d'abstracció extra respecte a les dades. Els usuaris no tenen la necessitat de conèixer els detalls físics de com s'emmagatzema la informació ni de com es manté aquesta informació. La forma de l’emmagatzemament físic de les dades és transparent per l’usuari. Existeixen diferents nivells d’abstracció.

Independència entre dades i aplicacions

És la capacitat de modificar un esquema de definició de les dades sense que això afecti a les aplicacions. Hi ha 2 nivells d'independència:

  • Independència física: quan es possible modificar l'esquema físic sense afectar les aplicacions.
  • Independència lògica: quan es possible modificar l'esquema lògic sense afectar les aplicacions. El programador no ha de conèixer l'estructura interna de les dades per tal de poder manipular-les.

La independència lògica és més difícil d'assolir ja que normalment les aplicacions en depenen fortament.

Redundància mínima

Cal evitar les repeticions de dades. En principi pot semblar que l'òptim és tenir una redundància mínima o zero però esta demostrat que tenir certa redundància pot ser útil en operacions com la cerca de dades a la base de dades.

Consistència

Ha de garantir que les dades siguin consistents això implica que les dades han d’estar actualitzades quan les vulguem consultar. Esta molt relacionat amb la redundància ja que quan més redundància de dades hi ha més complicat es mantenir aquestes dades actualitzades en cas d'actualitzacions.

Seguretat

Un dels objectius dels SGBD és mantenir protegides les dades en front els accessos accidentals o intencionats per part d'usuaris no autoritzats.

Per altra banda, hem de garantir que les transaccions es realitzin de forma segura complint les següents propietats (ACID):

  • Atomicitat: Una transacció o bé finalitza correctament i confirma o bé no deixa cap rastre de la seva execució.
  • Consistència: La concurrència de transaccions no pot produir resultats anòmals.
  • Aïllament (o Isolament): Cada transacció del sistema s'ha d'executar com si fos l'única que s'executa en aquell moment en el sistema.
  • Definitivitat: Si es confirma una transacció, el resultat d'aquesta ha de ser definitiu i no es pot perdre.

Una transacció, en el context de bases de dades, és una simple operació lògica feta sobre les dades. Un exemple de transacció és la transferència de fons d'un compte a un altre, encara que consisteixi en diverses operacions individuals (com extreure d'un compte i ingressar a l'altre).

Integritat

Són les mesures necessàries que pren el SGBD per tal de garantir la correcció de la base de dades. Les dades poden quedar inconsistents per les següents raons:

  • Errors de maquinari
  • Actualitzacions incompletes
  • Inserció de dades no vàlides.

El DBA és qui defineix les regles d'integritat de les dades de la base de dades. Les regles d'integritat tenen 3 components

  • La restricció d'integritat a aplicar
  • La resposta en cas de violació de la restricció
  • La condició d'inici d'aplicació de la restricció (trigger).

Recuperació i còpies de seguretat

El SGBD ha de poder realitzar còpies de seguretat de forma eficient per així evitar la perduda de dades. A les còpies de seguretat són anomenades backups.

Per poder restaurar les dades és fa ús dels registres o bitàcoles (arxius de log).

Control de la concurrència

El SGBD ha de garantir que l’accés simultani a les dades i n'ha d'assegurar la consistència de la informació. El més habitual és que una base de dades treballi en un sistema multiusuari i multiprogramat.

Normalment el control de concurrència s'implementa amb el que s'anomenen cadenats. Els cadenats poden ser:

  • Compartits: Si un procés té un cadenat compartit sobre una dada compartida només el pot llegir.
  • Exclusius: Si un procés té un cadenat exclusiu sobre una dada compartida la pot llegir i modificar.

El mòdul del SGBD encarregat de repartir l'ús de la base de dades s'anomena Scheluder. El nivell de granuralitat (conjunt de dades a les que es pot accedir al mateix temps) depèn de diferents factors, però en una base de dades es pot arribar a aplicar nivells de granuralitat a nivell de registre

Temps de resposta

Les bases de dades estan dissenyades per tal de ser utilitzades per usuaris finals i per tant cal assegurar un temps de resposta adequat per a les epsecificacions de les aplicacions que utilitzen la base de dades.

Informació sobre les dades o Metadades

El sistema ha de tenir informació sobre el mateix sistema (el que s'anomenen metadades), com pot ser els usuaris.

Estructura d'un SGBD

Els SGBD es divideixen en mòduls especialitats en tasques específiques. El Sistema Operatiu proporciona únicament els serveis més bàsics i és la base a partir de la qual pot treballar el SGBD. Els components funcionals d'un SGBD són:

Gestor d'arxius

Independentment del model de bases de dades utilitzat, actualment les dades sempre acaben emmagatzemades en fitxers d'algun dispositius de memòria secundaria. El gestor d'arxius és l'encarregat de de gestionar aquest fitxers

Gestor de la base de dades

És la interfície de les dades a baix nivell emmagatzemades als fitxers i els programes que utilitzen la base de dades

El processador de consultes

Tradueix les instruccions escrites en un llenguatge d'alt nivell (com per exemple SQL) en instruccions de baix nivell. També és l'encarregat de que les consultes és realitzin en el menor temps possible (optimitzar les consultes)

Precompilador de DML

Converteix instruccions DML (Data Modification Language) en instruccions de baix nivell per processar les dades.

Compilador de DDL

Converteix les dades d'un llenguatge DDL (Data Definition Language) en un conjunt de taules que contenen metadades. Aquestes taules s'emmagatzemen al diccionari de dades.

Tipus arxius

Arxius de dades

Que emmagatzemin físicament les dades de la BD.

Diccionari de dades

Contenen la informació relativa a l'estructura de la base de dades

Arxius indexs

Contenen index de dades que permeten l'accés ràpid a les dades (a canvi ocupen més espai i augmenten la redundància de la base de dades)

Arquitectura.

Model de 2 nivells d'una base de dades

Nivell estàtic

Aquesta és la part no modificable en el temps que defineix l'estructura de la base de dades. Evidentment els llenguatges DDL permeten modificar l'estructura d'una base de dades, però en principi aquesta estructura només s'hauria de modificar durant la fase inicial de disseny d'una aplicació, ja que un canvi en l'estructura implicar un canvi en les aplicacions que treballen, trencant d'aquesta forma la independència entre aplicacions i bases de dades.

Cal remarcar doncs la importància de definir clarament la estructura d'una base de dades en la fase de disseny, perquè un cop s'ha començat a implementar una aplicació els canvis en la base de dades poden implicar moltes hores per refactoritzar les aplicacioncs i només es poden justificar en cassos excepcional (revisions del programari, detecció d'errors greus de disseny, etc.)

La definició de l'estructura de dades correspon als llenguatges de definició de dades (DDL- Data Definition Language).

Nivell dinàmic

La part dinàmica d'una base de dades és la part susceptible de modificacions durant la aplicació d'operacions sobre la base de dades. La manipulació de les bases de dades correspon als llenguatges de manipulació de dades (DML- Data Manipulation Language) que és veuen en detall al tema següent i el tema subsegüent on es veu els DML (i el DDL) aplicat a SQL.

Arquitectura de referència ANSI/X3/SPARC

Nivell Físic (intern). Estructures d'emmagatzemament físic

Les bases de dades (formades en el cas del model relacional per les seves taules i indexs) típicament es guarden en dispositius d'emmagatzemament com discs durs i s'utilitzen diferents estructures:

Les més utilitzades actualment són arbres B+, ISAM i sistemes com INNODB.

Recursos:

Fitxers plans

Sense ordre
  • Cost inserció: Ο(log(1))
  • Cost d'obtenció de dades: O(n)
Ordenats
  • Cost inserció: Depèn de la implementació però es més costos per que cal mantenir l'ordre
  • Cost d'obtenció de dades: Més fàcil d'obtenir les dades. O(log(n)).

Estructures de dades

Heaps
  • El mètode més simple
  • Cost inserció: eficient. El registres es guarden en ordre cronològic (al final del fixer)
  • Cost d'obtenció de dades: Ineficient. Cerca és lineal (incrementa amb el nombre d'elements O(n))
Hash buckets
  • Hash functions calculate the address of the page in which the record is to be stored based on one or more fields in the record
    • Hashing functions chosen to ensure that addresses are spread evenly across the address space
    • ‘occupancy’ is generally 40% – 60% of total file size
    • unique address not guaranteed so collision detection and collision resolution mechanisms are required
  • open addressing
  • chained/unchained overflow
  • pros and cons
    • efficient for exact matches on key field
    • not suitable for range retrieval, which requires sequential storage
    • calculates where the record is stored based on fields in the record
    • hash functions ensure even spread of data
    • collisions are possible, so collision detection and restoration is required
Arbres B+

Un dels sistemes més utilitzats:

  • Utilitza índexs
  • Cost inserció: eficient. El registres es guarden en ordre cronològic (al final del fitxer)
  • Cost d'obtenció de dades: Eficient. El cost d'accés a les tuples és constant.

Avantatges:

  • Estructura de dades versàtil (permet tant l'accés seqüencial com l'accés aleatori)
  • Accés ràpid a dades
ISAM

ISAM (Indexed Sequential Access Method).

Recursos:

Nivell conceptual o lògic

Nivell de treball de l'administrador de base de dades o d'usuaris avançats.

Nivell extern. Vistes

  • Vista: és una taula lògica o virtual composta per un conjunt de registres (recordset) resultat d'una consulta. A diferència de les taules normals una vista no es part de l'esquema de la bases de dades: és dinàmica, és una taula virtual calculada en temps d'execució per a una aplicació o usuari.

Recursos:

Arquitectura operacional

Fa referència a les operacions que es poden realitzar amb el SGBDR... Depèn molt del SGBD però sovint podem trobar els següents components:

  • Processadors de consultes
  • Generadors d'informes
  • Generadors de formularis
  • Generadors de gràfics
  • Fulls de càlcul
  • Processadors de llenguatge natural.

Funcions d'un SGBD: llenguatges

Les funcions essencials d'un SGBD són tres:

  • La descripció de les dades
  • La manipulació de les dades
  • La utilització de les dades

Llenguatges de definició de dades (LDD/DDL)

Consulteu el tema:

Llenguatges de manipulació de dades (LMD/DML)

Són aquells llenguatges (o subconjunt d'un llenguatge) que permet manipular les dades. Les operacions més habituals són:

  • Consultar dades dades (consultes. SQL: SELECT)
  • Inserir noves dades (SQL: INSERT)
  • Modificar dades (SQL: UPDATE)
  • Borrar dades (SQL: DELETE)

Dos tipus de llenguatges DML:

  • Procedimentals: shan d'indicar les dades a manipular i com s'obtindran.
  • Declaratius: només s'indiquen les dades que es volen manipular. SQL

Consulteu el tema:

Llenguatges de control de dades (DCL)

Recursos:

Models de dades. Tipus de SGBD

En aquest apartat veurem els diferents models que s'han seguit fins a l'actualitat per definir les bases de dades.

Model jeràrquic

Consulteu:

L'estructura de dades bàsica utilitzada per representar les dades d'aquest model de base de dades és l'arbre.

Els SGDB jeràrquics tenen les següents característiques:

  • Els registres estan disposats en forma d'arbre
  • Els registres estan relacionats amb relacions un a un o un a molts.
  • Quan s'elimina un registre pare s'ha d'eliminar tots els registres fills

IMS i el seu llenguatge de consulta DL/I són l'exemple més conegut de base de dades jeràrquica. Aquests sistema s'utilitzava molt en l'inici de la història de les bases de dades

Aquest tipus de bases de dades van tenir el seu boom als inicis de la història de les bases de dades. Actualment han perdut força envers les bases de dades relacionals tot i que encara s'utilitzen força. Exemples d'ús en l'actualitat són els repositoris Ldap o X.500 (i les eines que els utilitzen com Active Directory o Samba) i bases de dades jeràrquiques com DNS.

Recursos:

Model en xarxa

Consulteu:


Són similars al model jeràrquic però en comptes d'utilitzar arbres s'utilitzen xarxes o grafs dirigits. Cal tenir en compte que una base de dades en xarxa és una base de dades jeràrquica on a més de relacions entre pare-fill poden haver-hi relacions entre germans . El model més conegut de xarxa és l'anomenat CODASYL. Aquest model té les següents característiques:

  • Només es permeten relacions un a un. En cas de voler representar relacions molts a molts s'utilitzen connectors anomenats liga-D.
  • Un node fill pot tenir diversos pares

Alguns exemples d'aquests models de base de dades (actualment estan completament en desús) són DMS 1100, IDMS i IDS.

Model relacional

Consulteu el tema

Model orientat a objectes

SGBD distribuits

Consulteu el tema:

Altres sistemes. Sistemes jeràrquics moderns

LDAP

Consulteu l'apartat Ldap del Tema 36. Manipulació de dades DML.

Bases de dades XML

Consulteu l'apartat bases de dades XML del Tema 36. Manipulació de dades DML

Crèdits

ASI.Crèdit 6: sistemes gestors de bases de dades

Continguts de fets, conceptes i sistemes conceptuals.

  1. Sistema gestor de base de dades (SGBD):
    1. Sistema gestor de bases de dades: objectius i evolució.
    2. Arquitectura ANSI/X3/SPARC: esquema intern, conceptual i extern, flux de dades i control.
    3. Independència física i lògica de les dades.
    4. Models: jeràrquic, xarxa i relacional, estructures de dades, operacions de manipulació, regles d'integritat del model.
    5. Usuaris: informàtics i no informàtics.
    6. Llenguatges: de definició i manipulació, i autosuficients i submergits.

DAI.Crèdit 3 Analisi i disseny BD i Crèdit 7. SGBD Relacionals

ESI

Eines de l'usuari