Salta el contingut

DAM - DAW - MP 0484 Bases de Dades

1. Conceptes bàsics sobre Bases de Dades

  • Sistemes de processament d'arxius:

    • Prèviament a l'aparició dels primers SGBD s'utilitzaven arxius i diversos programes d'aplicació que gestionaven la informació emmagatzemada en aquests.
    Saps què és un fitxer?

    Digues els tipus de fitxers que coneixes. Els anirem anotant en el següent apartat

    Fitxers de text
    JSON
    XML
    

    Abans dels fitxers, els ordinadors utilitzaven altres mecanismes per a guardar la informació, concretament utilitzaven les targetes perforades.

    Targeta Perforada

  • Problemes:

    • Redundància → inconsistència (diferents arxius, actualització inconsistent)

    • Dificultat d'accés a les dades (noves necessitats → nous programes)

    • Aïllament de les dades (diferents arxius, diversos formats)

    • Integritat (cal programar les restriccions de consistència)

    • D'accés concurrent → inconsistència (actualització inconsistent)

    • Seguretat (cal programar la política de seguretat)

    Els fitxers presenten problemes per a guardar grans volums de dades. Relaciona les següents paraules amb les frases:
    Paraules Frases
    1) Redundància a) Poden existir dades amb formats o valors erronis. Per exemple la data 55/33/2999.
    2) Eficiència b) Poden existir diferents fitxers amb informació duplicada.
    3) Accés concurrent c) Dos usuaris no poden accedir i editar un fitxer al mateix moment.
    4) Integritat d) Els fitxers es poden duplicar. Després pots fer canvis a un d'ells.
    5) Seguretat e) Tenim un fitxer de 100.000.000.000.000 de línies. Volem trobar la línia amb l'usuari 99.999.999.999.
  • Sistema Gestor de Bases de Dades (SGBD)

    • Els SGBD són programes que permeten guardar bases de dades.

      • Les dades es guarden de manera interrelacionada.

      • Existeixen diferents programes per accedir a les dades.

      • Es resolen la majoria dels problemes dels fitxers:

        • Eficiència, concurrència, integritat, redundància i seguretat.
    • És una col·lecció de dades interrelacionades i un conjunt de programes per gestionar-les.

    • Resol els problemes que presentaven els sistemes de processat d'arxius.

    • Sistemes comercials: Oracle, MicrosoftSQL Server, BorlandInterbase, IBM-DB2, IBM-Informix, Sybase, ...

    • Sistemes NO comercials: MySQL, PostgreSQL, Firebird, SQLite, MongoDB, Cassandra, Redis, RavenDB, Azure Cosmos DB, ObjectDB, ...

    Identifica aquells SGDB comercials i no comercials

    logoMariaDB logoMicrosoftSQLServer logoMongoDB logoMySQL logoNeo4j logoOracle logoCassandra logoCouch logoInfogrid logoElasticsearch logoHbase logoPostgreSQL logoRedis logoSQLite logoZope logoAccess logoObjectDB

En el següent enllaç es pot consultar un rànquing de SGBD més populars.

Rànquing

ranquing25

ranquing24


2. Objectius i funcionalitats d'un SGBD

  • Proporcionar una forma d'emmagatzemar i recuperar la informació d'una Base de Dades de manera pràctica i eficient.

  • Oferir als usuaris una visió abstracta de les dades. El sistema oculta certs detalls respecte a la forma en què s'emmagatzemen i mantenen les dades.


3. Visió de les Dades (Arquitectura ANSI/X3/SPARC)

L'arquitectura ANSI separa en tres nivells les bases de dades.

  • Nivell Extern: Visió de la base de dades que té cada usuari que es connecta. Els usuaris poden tenir restringit l'accés a només una part de la BDD.

  • Nivell Conceptual: Disseny de la base de dades amb les diferents taules i relacions.

  • Nivell Intern: Especifica com es guarda la informació a disc. Les bases de dades es poden guardar amb diferents tipus de fitxers.

Model ANSI/X3/SPARC


4. Avantatges d'usar SGBD

  • Realitzar consultes i modificacions no predefinides i complexes.

  • La independència física de les dades.

  • La independència lògica de les dades.

  • Minimitzar la redundància de dades.

  • Vetllar per la integritat de les dades.

  • Accés concurrent.

  • Seguretat.


  • Realitzar consultes i modificacions no predefinides i complexes:

    • Proporcionen mecanismes per manipular dades (alta, baixa, modificació i consulta) i definir-ne de noves.
  • Independència de dades:

    • Els canvis dins un nivell no tenen efectes sobre un altre nivell

      • Independència física de dades. Un canvi sobre l'esquema físic no afecta els esquemes lògic ni extern. L'estructura de lògica la base de dades no depèn de com aquestes es guarden a disc.

      • Independència lògica de dades. Un canvi sobre l'esquema lògic no afecta els esquemes físic ni extern. Els diferents usuaris poden disposar de diferents vistes sobre la base de dades.

  • Minimitza la redundància:

    • Definim què volem guardar a nivell lògic i el SGBD ens ajuda a definir com s'acaba guardant a nivell físic. Tant la forma d'enregistrar les dades com el manteniment de les relacions entre aquestes, sovint van orientades a minimitzar la redundància (característica no desitjable).
  • Integritat de dades:

    • Podem definir regles semàntiques sobre determinades dades, el SGBD exigeix en tot moment el compliment d'aquestes per mantenir la integritat de dades.
  • Accés concurrent:

    • Implementa diferents mecanismes per facilitar l'accés concurrent a les dades (múltiples usuaris treballant sobre la mateixa BD).
  • Seguretat:

    • Proporciona mecanismes per la definició d'usuaris i permisos sobre la BD.

    • L'encarregat de gestionar aquests permisos és un usuari especial anomenat Administrador de la Base de Dades.


5. Models de Dades

  • Model Entitat - Relació:

    • Model basat en una percepció del món real, que utilitza una col·lecció d'entitats i les interrelacions que hi ha entre aquestes.
  • Model Relacional:

    • Model basat en registres que utilitza una col·lecció de taules per representar tant les dades com les relacions entre elles.
  • Model Objecte - Relacional:

    • Model E-R + encapsulació + mètodes
  • Altres

    • dades semiestructurades, model jeràrquic, model en xarxa, orientat a objecte, multidimensionals, ...

6. Disseny d'una base de dades Relacional

Per a dissenyar una base de dades s'han de realitzar diferents fases.

Fase 1: MODEL CONCEPTUAL

Determinar quina informació s'ha de guardar del món real

Determinar com es relaciona la informació i algunes restriccions.

S'utilitza principalment el Model Entitat Relació.

Model Entitat Relació

Fase 2: MODEL LÒGIC

Transformació del model conceptual a un nou model suportat pel tipus de base de dades.

S'utilitza principalment el Model Relacional (en bases de dades relacionals).

Model Relacional

Fase 3: IMPLEMENTACIÓ

A partir del model lògic s'implementa a la base de dades.

També es defineix com es guarden físicament les dades i els diferents índexs per a millorar-ne el rendiment.

S'utilitza principalment el llenguatge DDL en bases de dades relacionals.

Llenguatge SQL


7. Diccionari de Dades

Les bases de dades, a part de guardar la informació que l'usuari hi guarda, també manté informació sobre les seves taules i relacions.

Per exemple, una foto del mòbil, a part de la informació de la foto, també pot guardar informació de l'autor de la foto, el lloc on s'ha fet la foto, etc.

Aquests tipus de dades són conegudes amb el nom de metadades. El diccionari guarda metadades de les bases de dades.

diccionari

|                 TAULA COUNTRIES                   |       |           DICCIONARI              |
+------------+--------------------------+-----------+       +--------------+-----------+--------+
| COUNTRY_ID | COUNTRY_NAME             | REGION_ID |       | column_name  | data_type | length |
+------------+--------------------------+-----------+       +--------------+-----------+--------+
| CA         | Canada                   |         2 |       | COUNTRY_ID   | char      |      2 |
| DE         | Germany                  |         1 |       | COUNTRY_NAME | varchar   |     40 |
| UK         | United Kingdom           |         1 |       | REGION_ID    | int       |     10 |
| US         | United States of America |         2 |       +--------------+-----------+--------+
+------------+--------------------------+-----------+       

6. Llenguatges i Usuaris

  • Tipus d'usuaris:

    • Administrador de la base de dades.

    • Programadors d'aplicacions.

    • Usuaris especialitzats.

    • Usuaris d'aplicacions.

  • Llenguatges

    • SQL (SELECT, INSERT, UPDATE, DELETE, ...)

    • Llenguatges 4GL

    • Interfícies visuals

    • Crides a funcions (ODBC i similars)

    • Llenguatge hostatjat (precompiladors de SQL)

7. Arquitectura d'un SGBD

La finalitzat de les bases de dades és poder emmagatzemar i recuperar la informació.

Les bases de dades oculten els detalls tècnics de com es guarda la informació a la memòria. D'aquesta manera simplifica la seva utilització a tots els usuaris.

Per utilitzar un cotxe no és imprescindible conèixer el detalls interns del motor, canvi de marxes, turbo, etc.

cotxe

Arquitectura d'un SGBD