Usuari:Sergi/Temari/Tema 35 La definición de datos. Niveles de descripción. Lenguajes. Diccionario de datos.

De Acacha

Dreceres ràpides: navegació, cerca

Contingut

Definició de dades

Mitjançant la definició de el administrador de la base de dades o els usuaris avançats (dissenyadors/programadors de la base de dades) especifica els elements de dades que integren la base de dades. A més de definir aquests elements cal definir les relacions entre ells, les regles d'integritat, el control d'accés a les dades, les vistes d'usuaris externs i altres característiques de tipus físic (implementació física de les dades).

Aquesta funció es realitzada mitjançant un llenguatge anomenat globalment DDL (Data Definition Language). El DDL és l'instrument que utilitza una base de dades, amb independència dels seu model (xarxa, jeràrquic, relacional, etc) per tal de definir les dades i les seves relacions.

En el cas de les bases de dades relacionals (les més utilitzades actualment) el llenguatge estrella és SQL. Aquest llenguatge té un subconjunt d'instruccions que permeten fer les operacions típiques de DDL.

Les operacions de DDL es poden aplicar a tots els nivells de l'arquitectura d'una base de dades tal i com veurem en el següent apartat.

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.

Nivells de descripció. Arquitectura de 3 nivells ANSI/X3/SPARC

El comitè ANSI/X3/SPARC (Comitè de Planificació i Requeriments de l'ANSI) - ANSI-SPARC American National Standards Institute, Standards Planning And Requirements Committee- va suggerir a l'any 1977 la següent arquitectura de 3 nivells (X3):

Esquema intern

Una de les característiques desitjades de les bases de dades és la independència física. Aquesta característica ens permet que una base de dades sigui independent de les característiques físiques (dispositius d'emmagatzemament, estructures de dades físiques d'emmagatzemament, etc). En realitat, la majoria de sistemes gestors de bases de dades ens permeten controlar aspectes físics de la base de dades per tal de poder optimitzar el seu funcionament.

En aquest nivell, el DDL s'encarrega de definir qüestions com els tipus de estructures de dades a utilitzar per emmagatzemar les dades, els índexs, el suport físic per a transaccions, etc.

Nivell de treball només per al DBA

Aquest nivell és defineixen qüestions com:

  • Organització de les estructures de dades: ISAM, INNODB
  • Mida de blocs
  • Mètodes de direccionament
  • Índexs
  • Tècniques de compressió

Esquema conceptual

Des d'aquest punt de vista, el DBA utilitza DDL per assignar noms a camps, agregacions de dades, registres etc. i estableix les seves propietats (tipus de dades i longituds). També en aquest nivell és defineixen les relacions entre dades i les restriccions semàntiques. En aquest nivell no s'especifiquen els detalls de la implementació física.

Nivell de treball només per al DBA

Aquest nivell és defineixen qüestions com:

  • Noms, tipus i mides de les dades
  • Relacions entre dades
  • Restriccions d'integritat

Esquema extern

En aquest nivell el DDL s'encarrega de proporcionar operacions per a la definició de les vistes externes. Normalment el llenguatge utilitzat és molt similar a l'utilitzat a nivell lògic (taules i vistes tenen una estructura lògica similar, tot i que tenen funcionalitats ben diferenciades)

Nivell de treball per als usuaris

ES defineixen les vistes o subesquemes. No tots els usuaris treballen amb totes les dades, i les vistes o subesquemes ens permeten definir subconjunts de la base de dades.

Modelat de dades

El modelat d'una base de dades és un problema que s'acostuma a dividir en 3 nivells:

Nivell conceptual

És el nivell més abstracte i esta més relacionat a l'estudi dels Sistemes d'Informació (SI) en general, entès com quelcom més ampli que simplement una base de dades. En aquest nivell es modela un sistema d'informació conceptualment (funcionalitats del sistema, regles, actors, etc.) sense especificar detalls de la seva implementació

Nivell lògic

Aquest nivell representa el primer intent de implementar un solució per al problema conceptual.

Nivell físic

Imatge:SGBD2.png

Model Entitat/Relació

Els diagrames o models entitat-relació, sovint denominats per les seves sigles (E-R Entity Relationship) són una eina per al modelat de dades de sistemes d'informació. Els diagrames E-R ens permeten modelitzar a nivell conceptual un sistema d'informació i es poden utilitzar com a pas previ a la creació d'un model més concret de base de dades (típicament un model relacional, però també pot servir per altres models com el jeràrquic o el model en xarxa.)

El model E/R va ser proposat per Peter Chen raó per la qual també se'ls anomena diagrames de Chen. L'objectiu d'aquest model és visualitzar els objectes que pertanyen a una base de dades. Aquest objectes són anomenats entitats que tenen atributs (concepte molt similar al de la Programació Orientada a Objectes- classes/Objectes) i es vinculen mitjançant relacions.


Recursos:


Diagrama entitat-relació

Formalment els diagrames E/R són un llenguatge gràfic per a la descripció de conceptes. Informalment són simplement uns diagrames que descriuen la informació d'un sistema d'informació. Els elements del llenguatge són:

Podem trobar:

Entitats

El terme entita té diferents accepcions depenent del context en que s'utilitzi. En el context de les bases de dades una entitat és qualsevol objecte sobre el qual es manté informació. Una entitat esta definida per les seves característiques o atributs. Per exemple:

Entitat Persona: Atributs:

  • Nom
  • Cognoms
  • Sexe
  • Data de naixement
  • Pes
  • etc...

A la dreta podeu veure la representació d'una entitat, que consisteix en un rectangle o caixa etiquetada al seu interior amb un identificador de l'entitat.

Alguns exemples típics d'entitats relacionades amb els sistemes d'informació són: factura, persona, empleat, etc.

Tot i que no es pot prendre al peu de la lletra, podem fer una comparació amb la sintaxi del llenguatge natural i comparar les entitats amb els substantius d'una frase.

Entitats fortes i dèbils

La diferenciació entre entitats dèbils i entitats fortes és una extensió del diagrames E/R bàsics

Quan una entitat participa d'una relació pot adquirir un paper fort o dèbil. Una entitat dèbil és aquella que no pot existir sense participar en una relació, o el que és el mateix, aquella que no pot ser identificada solament pels seus atributs. La resta d'entitats són entitats fortes.

Les entitats dèbils es representen mitjançant un doble rectangle o un rectangle amb doble línia.

Relacions

Una relació descriu certa dependència entre entitats. Es representa mitjançant un rombe etiquetat al seu interior amb un verb que s'uneix mitjançant segmentes de recta amb les entitats (rectangles) que relaciona.

Seguint amb l'exemple de persona podríem establir la següent relació entre las entitats persona i departament:

Una persona (entitat) treballa per a (relació) un departament (entitat).

Tot i que no es pot prendre al peu de la lletra, podem fer una comparació amb el llenguatge natural i comparar les entitats amb els verbs d'una frase.

Les relacions es representen amb un rombe.

Cardinalitat de las relaciones

Expressar la cardinalitat de les expressions es considera una extensió dels diagrames de Chen. Aquest diagrames s'anomenen diagrames extensos E/R 
i s'utilitzen per tal d'augmentar les limitacions semàntiques del diagrames bàsics d'E/R

La relacions, que en principi, en els diagrames bàsics d'E/R són binaries, poden involucrar un número indefinit d'instàncies de cada entitat. Hi ha tres tipus de cardinalitats:

  • Relacions un a un: una instància de la entitat A es relaciona amb una i només una de la entitat B.
  • Relacions un a molts: cada instància de la entitat A es relaciona amb diferents instàncies de la entitat B.
  • Relacions de molts a molts: qualsevol instància de la entitat A, es relaciona amb qualsevol instància de la entitat B.

El tipus de cardinalitat es representa mitjançant una etiqueta a l'exterior de la relació. Les etiquetes dels diferents tipus esmentats prèviament són:

  • "1:1"
  • "1:N"
  • "N:M"

Atributs

Els atributs són propietats rellevants pròpies d'una entitat o relació. Es representen mitjançant un cercle o el·lipse etiquetada mitjançant un identificador al seu interior.

Quan una etiqueta és identificadora clau de la entitat se sol subratllar la etiqueta.

Per motius de llegibilitat, només se solen representar els atributs més importants, deixant la definició de la resta d'atributs a un document de text que se sol adjuntar al diagrama E/R.

Seguint amb l'exemple anterior, un atribut identificador de la entitat empleat pot ser el número de la seguretat social.

Procés de creació d'un model E/R

El model E/R és una fase intermèdia del procés de modelatge de dades. Mitjançnat una sèrie de tècniques pràctiques es pot passar d'un descripció textual dels requisits al model E/R i d'aquest a altres models com per exemple el model relacional.

Breument consisteix en els següents passos:

  1. Es parteix d'una descripció textual del problema o sistema d'informació a automatitzar (els requisits)
  2. S'identifiquen les entitats i les relacions entre entitats. Sovint s'utilitza la tècnica de buscar substantius i verbs, però cal dir que no és una tècnica exacte i que requereix d'un anàlisi més profund del problema
  3. Analitzant els requisits es determina la cardinalitat de las relacions i altres detalls.
  4. S'elabora el diagrama E/R
  5. Es completa el model definint els atributs. Només aquells més importants apareixien al diagrama i la resta dsi es volen expressar s'expressen textualment en un document adjunt.


Transformació de E/R en taules

Vegeu Tema 40 Dissenys de relacionals. Disseny de la persistència.

Llenguatges de definició de dades

Un llenguatge de definició de dades (DDL) és l'instrument utilitzat pel d'administrador de la base de dades (DBA) per tal de definir les dades amb facilitat i precisió i especificar les seves estructures.

Hi han diversos llenguatges de definició i manipulació de dades (QUEL, QBE (Query By Example)) però actualment el llenguatge més utilitzat i que ha esdevingut un estàndard és SQL.

Els DDL en SGBD relacionals

Ens centrarem en veure les característiques dels DDL per a SGBD relacionals degut a que actualment les bases de dades relacionals són les predominants.

SQL

SQL té un subconjunt de paraules reservades per a la definició de bases de dades (DDL) que són:

Recursos:

Dades

Una de les parts més importants de la definició de dades es definir els tipus de dades.

Tipus de dades numèrics

El més típic es el suport per a nombres enters (INT, INTEGER) i variants de INT segons el rang de valors permesos.

Per exemple a MYSQL, tenim:

  • TINYINT
  • SMALLINT
  • MEDIUMINT
  • INT
  • BIGINT

Un altre tema és el suport per a valors decimals. A Mysql tenim:

  • DECIMAL

Alhora de dissenyar sempre hi ha un compromís entre l'espai ocupat i el marge de valors que pot prendre un camp (fet que no sempre es fàcil de predir.)


Recursos:

Tipus de dades de data i temps

A MySQL tenim:

  • DATETIME
  • DATE
  • TIMESTAMP
  • TIME
  • YEAR

Tipus de dades caràcter i cadena de caràcters

Podem utilitzar:

  • CHAR
  • VARCHAR:
  • BLOB
  • TEXT

Tipus de dades binaris

  • BINARY
  • VARBINARY

Altres

  • ENUM
  • SET

Tipus de dades d'usuari

Alguns gestors de base de dades permeten als usuaris definir els seus propis tipus de dades.

Recursos:

CREATE

Permet crear elements de la base de dades. El més habitual és crear taules:

CREATE TABLE my_table (
  my_field1   INT,
  my_field2   VARCHAR (50),
  my_field3   DATE         NOT NULL,
  PRIMARY KEY (my_field1, my_field2) 
);

Però també podem crear bases de dades:

 CREATE DATABASE prova;

O d'altres com CREATE INDEX o CREATE VIEW.

Recursos:

ALTER

Permet fer modificacions de l'esquema d'una taula:

ALTER TABLE sink ADD bubbles INTEGER;
ALTER TABLE sink DROP COLUMN bubbles;
ALTER TABLE sink MODIFY/CHANGE COLUMN bubbles VARCHAR(50);
ALTER TABLE sink RENAME [TO] new_tbl_name;

O alterar altres elements com ALTER VIEW o ALTER DATABASE.

Recursos:

DROP

Permet eliminar un element de la base de dades. El més utilitzat és:

DROP TABLE empleats;

També podem esborrar bases de dades

DROP DATABASE databasename;

O altres elements com índexs amb DROP INDEX o DROP VIEW.

Recursos:

RENAME. MYSQL

RENAME TABLE table1 to table2

Recursos: http://dev.mysql.com/doc/refman/6.0/en/rename-table.html


ÍNDEXS

CREATE VIEW name AS SELECT ....
DROP VIEW name
COMPACT TABLE name

Recursos:

DISPARADORS (TRIGGERS)

Un disparador és un molt similar a el que és un controlador (handler) d'esdeveniment en programació orienta a esdeveniments, un codi procedimental que s'executa en resposta a un esdeveniment.

S'utilitzen entre d'altres per a:

  • Mantenir la integritat del sistema (crear un mecanisme de suport a les actualitzacions en cascada)
  • Restringir accés a dades
  • Mantenir un registre (logging) per auditar modificacions
  • etc.

No tots els gestors de base de dades suporten triggers.

Recursos:

VISTES

Una vista és una taula lògica o virtual composta pels resultats d'una consulta. En l'arquitectura de 3 nivells s'utilitza en el nivell extern (les vistes són els esquemes externs) i representen aquells esquemes amb els quals els usuaris (o més normalment les aplicacions dels usuaris) interactuen.

Recursos:

Llenguatges DDL en altres models. Ldap com exemple de base de dades jeràrquica

LDAP (Lightweight Directory Acces Protocol) no es en si una base de dades sinó que és un protocol de xarxa lleuger per accedir a les dades d'un repositori remot. És realment aquest repositori el que podem considerar la base de dades. Hi han diferents tipus de bases de dades per a Ldap a les quals pròpiament de les anomena backends. Hi ha diferents tipus de backends:

Sovint però, es parla directament de "base de dades Ldap". Aquestes bases de dades tenen la propietat de seguir un model jeràrquic, que a diferencia del model relacional utilitza una estructura en arbre (en comptes de taules) per definir les relacions entre objectes de la base de dades. És un model més orientat a objectes, ja que de fet els nodes de l'arbre es consideren objectes (o instàncies d'una classe). Els nodes poden instanciar un o més objectes.

Ldap també segueix un model de 2 nivells (estàtic i dinàmic). El nivell estàtic defineix l'estructura de la base de dades i el nivell dinàmic ofereix una sèrie d'operacions per manipular la base de dades

  • Nivell estàtic: També s'utilitzen esquemes per definir les metadades i les restriccions dels objectes de l'arbre jeràrquic. Els esquemes de Ldap defineixen les restriccions que han de seguir els objectes del directori. El llenguatge utilitzat és un d'específic per LDAP definit i estandarditzat per un RFC. Un dels avantatges de Ldap, és que a diferència del que passa amb SQL, alguns dels objectes més habituals (persones, organitzacions, recursos com màquines, etc.) ja es troben predefinits amb esquemes estàndards.
  • Nivell dinàmic: El protocol Ldap proporciona una sèrie de comandes que ens permeten manipular el repositori de dades Ldap mitjançant un llenguatge anomenat LDIF

Recursos:

LDIF (LDAP Data Interchange Format)

El format LDAP Data Interchange Format (LDIF) és un format estàndard de intercanvi de dades en format text que permet representar els continguts d'un directori LDAP. LDIF es pot utilitzar per manipular (afegir, modificar, eliminar) els continguts d'un directori LDAP.

Cada implementació del protocol Ldap proporciona les seves pròpies comandes de manipulació del directori. La implementació més coneguda és OpenLdap que ens proporciona les comandes:

  • ldapsearch: permet fer consultes al directori (seria un equivalent a SELECT de SQL)
  • ldapadd: permet afegir objectes al directori (seria un equivalent a l'INSERT de SQL)
  • ldapmodify: permet modificar objectes del directori (seria un equivalent al UPDATE de SQL)
  • ldapdelete: permet borrar objectes del directori (seria un equivalent al DROP de SQL)

El format de LDIF és molt simple i equival a especificar els parells de valors atribut-valor dels objectes del repositori. Un exemple:

dn: cn=The Postmaster,dc=example,dc=com
objectClass: organizationalRole
cn: The Postmaster
dn: CN=John Smith,OU=Legal,DC=example,DC=com
changetype: modify
replace:employeeID
employeeID: 1234
-
replace:employeeNumber
employeeNumber: 98722
-
replace: extensionAttribute6
extensionAttribute6: JSmith98
-  

dn: CN=Jane Smith,OU=Accounting,DC=example,DC=com
changetype: modify
replace:employeeID
employeeID: 5678
-
replace:employeeNumber
employeeNumber: 76543
-
replace: extensionAttribute6
extensionAttribute6: JSmith14
- 

Recursos:

XML Databases

Segurament un dels temes més de mode en l'actualitat es tot lo referent a XML (eXtensible Markup Language) i un dels camps que s'està començant a explotar és el de les bases de dades XML. Hi han dos tipus de bases de dades XML:

  • XML-enabled: s'utilitza aquest terme per distingir tots aquells gestors de bases de dades moderns (que són la majoria) que suporten XML com un format d'entrada de dades (entre d'altres formats com text o CSV (Comma Sepparated Values)) i per a la sortida/representació de les dades
  • XML natives : són aquelles bases de dades 100% XML. És a dir el sistema d'emmagatzemament físic de les dades són fitxers XML. Aquest tipus de sistemes no s'estan utilitzant massivament.

El gran avantatge de XML és la interoperabilitat (forat de text estendard que facilita l'intercanvi de dades entre sistemes heterogenis.). El principal inconvenient és inherent al format de fitxer (fitxer de text) que no pot donar els mateixos resultats de rendiment que els formats binari.

Podem establir la següent comparació entre XML i SQL i els DDL i DML:

  • XML Schema/DTD: Són els llenguatges de definició de dades de XML. Permetes definir l'estructura i les restriccions semàntiques dels documents XML
  • XSLT, XPATH i XQUERY: Són els llenguatges que permeten manipular documents XML (realitza consultes, modificar documents). De fet en alguns aspectes són superiors a XML ja que se'ls pot considerar llenguatges de programació

XML també disposa de llibreries per l'accés a base de dades mitjançant connectors com ODBC.

Recursos:

Diccionari de dades

Per a una base dades existeix:

  • Un únic esquema intern
  • Un únic esquema conceptual
  • Una sèrie d'esquemes externs (vistes). Normalment tantes com tipus d'usuari.

El DBA pot accedir al que s'anomena diccionari de dades de la base de dades. Els SGBD esta construïts al voltant del diccionari de dades (es podria considerar la base de dades del sistema gestor de base de dades (base de dades de base de dades o metadades)).

Normalment als sistemes relacionals el diccionari de base de dades és una base de dades accessible (si així es configura) per a DBA i resta d'usuaris i que rep el nom de catàleg de la base de dades.

El diccionari esta compost de:

  • Els esquemes intern, conceptual i extern, així com les correspondències o interfícies entre aquests nivells. Això inclou:
    • Descripcions de camps, registres, restriccions, relacions, índexs, etc. de la base de dades.
    • Les autoritzacions de la base de dades.
    • Les vistes o esquemes externs.

Catàleg

A Mysql es diposa de dos taules del SGBDR:

  • Base de dades mysql: Inclou informació del servidor de base de dades (usuaris i permisos i coses per l'estil)
  • Base de dades INFORMATION_SCHEMA: és la base de dades amb les metadades de la resta de base de dades és a dir el catàleg o diccionari de dades.

Recursos:

Consultes al catàleg. SHOW i USE

SHOW DATABASES; 
USE database; 
SHOW TABLES;
SHOW COLUMNS FROM tablename; 
SHOW INDEX from tablename; 
SHOW STATUS;

Recursos:

Eines de l'usuari