Introducció a les bases de dades

Modelo de Datos. Entidad. Relación. Relacional. Normalización. Relaciones. Fitxers

  • Enviado por: Alberto Seco
  • Idioma: catalán
  • País: España España
  • 22 páginas
publicidad

INTRODUCCIÓ A LES BASES DE DADES

TEMA 1.- CONCEPTES BASICS

TEMA 1.- CONCEPTES BASICS

Els tres mons

Mon de les concepcions

- Coneixement elemental:

En base de dades

L'arbre

Subjecte

Entitat

És

Verb

Atribut

verd

Predicat

valor

  • Coneixements complexos: combinacions de coneixements elementals amb connectivitats de la lògica.

Teoria dels conjunts:

· Tots contra tots s'anomena un producte cartesià.

· Qualsevol subconjunt del producte cartesia s'anomena correspondència.

· Hi ha una corresondència que s'anomena aplicació (funció) quan cada original te una inomés una imatge.

Un atribut és una aplicació entre un conjunt d'entitats i un conjunt de valors. Una entitat és qualcom real, identificable i distingible.

Tipus d'aplicacions:

  • Aplicació injectiva: te un o cap original respecte a la imatge (la imtage te un original).

  • Aplicació exhaustiva: te un o varis originals.

  • Aplicació bijectiva: te un original sempre

Son atributs identificadors.

Una entitat pot tenir més d'un atribut.

El domini és el conjunt de valors legals que pot prendre un atribut. Per exemple el domini de pes seria real de 0 a 200, y el domini de edat seria un enter de 0 a 150.

En canvi domini no vol dir tipus, ja que aquest últim es defineix com un domini més les operacions que acepta aquest domini.

El valor nul. Hi ha dos tipus de valors nuls:

  • Desconegut: la dada no la coneixem en el moment però el coneixerem.

  • Inaplicacble: no coneixem la dada ni la coneixerem, per exemple preguntar per la data del servei militar a una dona.

El simbol del valor nul en SQL és NULL.

El temps en les bases de dades convencionals (snapshot) s'han anar modificant les dades. No tenen representació del temps el qual suposem que sempre es ara, es a dir, en la actualitat. O be permeten al dissenyador incorporar atributs utilitzant DATE i TIME (interpretació del temps en SQL/92).

Hi ha dos tipus de temps:

  • Temps d'ocurrencia: quan pasen les coses.

  • Temps de representació: temps en que s'emmagatzemen els fets.

El dissenyador decideix quin temps cal represnetar, un, tots dos o cap dels temps.

Les base de dades temporals (encara no estandaritzades) anomenen:

  • al temps d'ocurrencia --------------- temps vàlid.

  • Al temps de representació ---------- temps de transacció.

El dissenyador decideix quin tipus de base de dades necessita, snapshot o temporal, també pot ser que no tota la base de dades hagi de ser temporal. El dissenyador escull la precisió del temps, ja sigui al dia, a l'hora, al minut al segon, etc.

Un identificador és l'abreviació de l'atribut identificador. Un atribut identificador és una aplicació injectiva. Un identificador ha de ser un atribut que no hi apareixi dues vegades en tota l'informació que tenim.

Exemple:

Per trobar els atributs identificadors no ens hem de fixar en les anècdotes o dades, sino en les lleis.

Aquest identificador ens permet identificar cada entitat, es a dir, permet distingir.

Una superclau és un diversos atributs que identifquen una entitat.

Exemple: alumnes (dni, num_mat, nom, adreça, telèfon)

Superclau: dni, num_mat, nom, adreça, telèfon.

Dni, nom, adreça

Num_mat, telèfon, nom

Num_mat,dni

Una clau és una superclau que no te cap subconjunt propi que sigui superclau.

Claus: dni

Num_matr

Una clau candidata és qualsevol clau d'una entitat.

Una clau primaria és una clau escollida entre les claus candidates, sempre n'hi ha d'haver una definida.

Clau primaria: num_matr

Una clau secundaria o alternativa són totes les claus candidates no escollides com clau primaria.

La clau primaria pot ser un atribut identificador o més d'un atribut no identificador.

Exemple: ciutats_del_mon (estat, nom, km2, num_hab)

Les claus han d'identificar l'entitat, per exemple algún nombre que no es repeteixi en cap entitat o que no es repetirà, però sempre condicionat pel client. Les claus primaries s'identifiquen perque es troben subratllades.

Un atribut multivalor no és una aplicació sino una correspondència. En aquests atributs poden tenir més d'un valor almateix temps, com podria ser un atribut d'idiomes, ja que cada persona pot parlar més d'una llengua. Els atributs multivalors es classifiquen en:

  • Fixe: te un nombre fixe de valors, aquí podriem posar un camp que contingues el nombre de vendes d'un any però classificats per messos.

  • Variable: te un nombre variable de valors, aquí podríem posar l'atribut idiomes en el qual no sabem quants idiomes parla una persona.

Mon de les representacions

La representació dels atributs multivalors en fitxers és el següent:

  • En atributs multivalors fixe: podriem implementar-lo amb un array determinada.

  • En atributs multivalors variables: podriem posar un array amb una longitud gran, però amb aquest metòde es perd molt espai. Un altre metòde seria posar un array amb una longitud normal i un punter a un fitxer on es guardaran els idiomes que no hi caben en l'array definit.

La represnetació dels atributs multivalors en base de dades es fa mitjançant interrelacions.

Un camp és la representació del valor d'un atribut.

Un registre és la representació d'una entitat o un conjunt de camps d'una mateixa entitat.

Un fitxer és la representació d'un conjunt d'entitats o be és un conjunt de registres.

Amb els atributs multvalors podem diferenciar cinc tipus d'atributs:

• atribut univalor: un valor d'un atribut te una o diverses entitats associades.

• atribut identificador: un valor d'un atribut te una única entitat assignada.

• atribut multivalor: una entitat pot tenir més d'un valor associat en el mateix atribut.

• multiatribut univalor: una entitat te diversos atributs associats.

• multiatribut multivalor.

Si volem expresar diverses entitats amb els seus valors i atributs corresponents amb fitxers tindrem més compicació per representar atributs multivalor perque hi ha moltes repeticions i és molt difícil de gestionar. En canvi les base de dades permeten representar amb més facilitat els atributs multivalors, ja que es representen amb relacions. Per tant una base de dades és un conjunt d'entitats interrelacionades.

Un suport és el llocfísic on està la informació: discos, cintes, CD-ROM, paper, etc.

Una organització és la forma d'estructurar les dades en un suport que les emmagatzema.

Un accés és la horma d'aconseguir les dades. Els difeents tipus d'accés són:

  • Accés seqüèncial: per arribar a un lloc cal passar per tots els anteriors.

  • Accés directe: per arribar a un lloc no cal passar per tots els anteriors.

  • D'aquest dos tipus es desprenen altres tipus:

· Seqüèncial per posició

· Seqüèncial per valor

· Directe per posició

· Seqüèncial per valor.

El nivell logic és l'organització i accés a les dades des del punt de vista de l'usuari o informàtic

El nivell físic és l'organització i accés a les dades en el suport.

TEMA 2.- MEMORIA EXTERNA

Justificació de la memòria externa

Criteris

Memòria interna

Memòria externa

Preu

Carisima

Barata

Velocitat (temps d'accés)

10-6 a 10-9 seg

10-3 seg

Capacitat

Poca

Ilimitada

Volatilitat

SI

NO

Esquema bàsic d'E/S: Buffers, blocs i registres

WA: Working area.

Registres: unitat de transferència entre la memòria interna (WA) i el buffer.

Bloc: unitat de transferència entre el buffer i la memòria externa.

El factor de bloqueig (f) és el nombre de regsitres per bloc.

El buffer és l'amorteidor de la diferència de velocitat entre la memòria interna i la memòria externa.

  • R/W lectura/escrptura d'un programa.

  • E/S lectura/escriptura en el suport de memòria externa.

Com a mínim tindrem un buffer per fitxer. Els buffers s'assignen a fitxers, un programa que no utilitza cap fitxer no tindrà buffer, però un programa amb N fitxers tindrà N buffers com a mínim.

En tractament seqüèncial poarem dos buffers: fitxer seqüèncial sempre i en el fitxer relatiu amb lectura seqüèncial. En canvi en tractaments no seqüèncials tindrem un buffer , als fitxers relatius amb accés directe.

La comanda obrir crea dinàmicament el buffer i tancar porta el darrer buffer a memòria externa i el destrueix dinàmicament.

La longitud del bloc serà sempre major que la longitud dels regstres multiplicat pel factor de bloqueig, ja que un bloc té un descriptor al principi del bloc i el final de bloc.

El temps de R/W d'un programa (per cada bloc) serà:

  • temps R/S= temps CPU+ temps E/S

  • temps CPU= temps de bloqueig/desbloqueig + calculs

  • temps E/S= temps de transferència+ temps d'accés

  • temps d'accés= en cinta muntatge, cercar la informació, reintents per error de paritat, rebobinar, etc.

en disc temps de SEEK (trobar la pista)+ temps de SEARCH (trobar el sector).

Suports

Cintes

El material de les cintes és una tira de plàstic magnetitzat.

L'amplada d'una cinta és de 0.5 polzades i una polzada són 2,54 cm. (1” = 2,54 cm).

La llargada depend de les cintes. (les cintes velles median entre 600, 1200 i 2400 peus on un peu son 12” i per tant són 30,48 cm).

El reflexive stop és la marca d'inici i final de la part rabada.

L'anell és el protector de seguretat. No es pot escriure en la cinta si no el te posat.

Les cintes codifican la informació en tires de vuit bits més un bit de paritat.

La densitat de gravació (bpi = bytes per polzada (inch)) és de 800, 1600 o 6250 bpi en les cintes antigues.

L'esquema dels aramris que contenien les cintes és el següent:

IBG (Inter-block-graps): és un espai entre els blocs, per aturar-se i tornar a agafar velocitat per llegir el següent bloc, l'amplada normal dels IBG és de 0.6”.

Tape mark és la marca d'inici i final de fitxer i inici i final d'un conjunt de blocs.

Header és la informació sobre el fitxer: propietari, data de creació, data de caducitat, tipus de paritat, autoritzacions, codis (ASCII, EBCDIC, ISO, ....) longitud màxima teorica dels blocs, etc.

EOF: fi de fitxer conté el número de blocs, hora final, la longitud màxima real dels blocs, etc,

La capacitat real en blocks d'una cinta és calcula mitjançant la següent fòrmula:

L = llargaria en polzades de la cinta.

B = tamany del bloc en bytes

d = densitat de grabació en bpi

e = IBG en polzades.

La capacitat real en registres serà per tant: Cr=Cb*f.

Exemple: Trobar la capacitat real d'una cinta de 2400 peus=28800”, de 6250 bpi, de 0.6” d'IBG i registres de 100 bytes.

  • factor de bloqueig =1

  • Introducció a les bases de dades
    blocs Cr=Cb*f= 46754 registres

  • factor de bloqueig= 20

  • Introducció a les bases de dades
    blocs Cr=Cb*f= 626100 registres

  • factor= infinit o capacitat teorica.

  • Introducció a les bases de dades
    blocs Cr= 1800000 registres

    Els rebobinats s'han de fer abans de guardar la cinta, i triguen molt.

    La utilitat de les cintes es presneta quan s'han de fer tractaments batch i per còpies de seguretat.

    El temps d'accés de les cintes esta compost pel temps de muntatge, de reintents per errors de paritat, del temps per trobar la informació, i dels rebobinats.

    L'adreçament en les cintes es fa per canal o per dispositiu, aquestes són més barates que els discos. La capacitat de les cintes és molt gran però s'ha de tenir en compte els IBG. L'únic accès que es pot fer és l'accés seqüèncial, són molt portables i són d'ús exclusiu per una persona, es a dir, no poden haver-hi diversos usuarios treballant al mateix temps. No es aconsellable fer actualitzacions sobe cntes degut al problema de la bruticia (no escriu-re sempre al mateix lloc de la cinta).

    Discos

    Els discos es divideixen en discos magnètics i discos òptics.

    Discos magnètics

    Disk-pack: són discos posats un damunt de l'altre amb un eix comú.

    Els discos dels ALPHA's tene 8 plats i per tant 16 pistes.

    La informació en els discos s'emmagatzema per pistes i sectors. Una pista és circular i concentriques i els sectors són el mínim adreçament que pot fer el sistema operatiu (512 bytes).

    Els dsk-packs (en ALPHA) tenen 8 plats, la seva capacitat oscil-la entre 2,1 Gb i 4 Gb, tenen 2988 pistes i 86 sectors per pistes.

    Els discos tenen l'angle 0 que és el lloc on comencen tots els sectors i pistes del disc. Als discos hi ha alta densitat quan estem aprop del centre del disc (ja que cada sector te 512 bytes, i quan més aprop del centre menys perimetre per col-locar els 512 bytes), i hi ha baixa densitat quan més lluny del centre estiguem).

    Hi ha dos tipus de sectors:

    • Fixes: de 512 bytes, tots els sectors són iguals, i per atnt és fàcil accedir (sempre amb el mateix angle).

    • Variables: sectors de diferent mides, per tant aprofitem tot l'espai menys un tros per dir la longitud del sector que precedeix (descriptor), però són més cars i l'accés es complica (s'ha de sumar la longitud del sector a la adreça actual per trobar el següent sector.

    Un cilindre es forma amb totes les pistes del mateix radi.

    El temps d'accés es forma amb el temps de SEEK i amb el temps e SEARCH.

    El temps de SEEK és el temps que triga en posicionar-se el capçal sobre una pista.

    El temps de SEARCH és el temps de rotaió per la pista fins trobar el sector.

    En sistemes ALPHA el temps de SEEK mig és de 13.5 milisegons i el temps deSEARCH és de 4.5 milisegons, per tant el temps mg d'accés és de 18.5 miliseg.

    La velocitat de rotació és medeix en revolucions per minut (rpm), on aquestes oscil-len entre 3600, 7200 o 10000 rpm, segons els disk-packs.

    El temps de SEEK per anar de punta a punta d'un plat és de 27 miliseg, pero si la pista que volem es la pista sobre la que estem el temps es 0 miliseg. El temps de SEARCH per donar una volta sencera es de 9 milisegons però si tenim sort no ens hem de moure el temps serà de 0 miliseg.

    La minimització del temps d'accés s'aconsegueix amb la gravació per cilindres (així millorem el temps de SEEK), i si escrivim els sectors no consecutius entre si, si no continus en el temps (així millorem el temps de SEARCH), a aquest metode de escritura continu en el temps se l'anomena Interleaving factor.

    L'estructura d'un fitxer en un disk-pack és la següent: en la primra cara del disk-pack es troba el dirctori amb un apuntador al primer fitxer. El directori és la llista de fitxers accessibles amb el seu nom, propietari, data de creació, data de caducitat, etc. i a més un apuntador a l'inici de fitxer.

    L'adreçament a un disc magnetic és el següent: Canal/Dispositiu/Cilindre/Plat/Cara/Sector.

    Els disquettes al contrari que els discos, normalment estan aturats, i la eva capacitat pot ser de doble densitat (720 Kb- 80 pistes 9 sectors per pistes) o d'alta densitat (1.44 Mb- 80 pistes, 18 sectors per pista).

    Discos Optics

    Són discos on la gravació no es fa de forma magnètica sino de forma física (amb tecnologia làser). Els diferents tipus que hi ha són els següents:

    • CD-ROM : capacitat de 650 Mb amb només una cara.

    • DVD-ROM: Digital Video Disk, amb una capcitat entre 4,7 a 17 Gb, són més ràpids que els CD-ROM's.

    L'origen dels CD-ROM's el trobem en els CD de audio. I aquests dispositius poden ser de només lectura (1 làser per llegir) o de lectura/escriptura (amb 2 lasers, un per llegir i un altre per escriure). Els CD-ROM només tenen una pista en espiral que va des del centre fins a fora, i la densitat de gravació és constant.

    CLV vs CAV: CLV és Constant Linear Velocity (la podem trobar als CD-ROM amb velocitat angular diferent) i CAV és Constant Angular Velocity (que la podem trobar als discos magnètics).

    L'adreçament és com segueix: Canal/Dispositiu/Minut/Segon/Sector. On cada segon conté 75 sector de 2 Kb cadascun.

    Les utilitats del CD-ROM, entre d'altres, són:

    • Transferència de software.

    • Emmagatzematge de dades fixes.

    • Emmagatzematge de dades historiques.

    • Imtages

    • .........

    Els CD-ROM's tenen un baix preu, tenen una cpacitat relativament alta, gran fiabilitat i poden fer accés directe o seqüèncial.

    TEMA 3.- FITXERS COM A TAD'S

    Fitxer lògic i físic

    Fixetr lògic: objecte d'un programa. Un objecte és un element d'un programa que pren un valor (constant) o ve diferents valors (variable) d'un cert tipus. Un tipus abans de 1965 (ALGOL) era un domini, però després de 1965 un tipus passar a ser un domini més operacions.

    El TAD proporciona encapsulament:

    • els valors del domini només poden ser manipulats per les operacions del TAD.

    • Es coneix la definició de les operacions pero la seva implementació queda amagada.

    Els objectes poden ser:

    • estructurats: tupla, taula, etc.

    • no estructurats: enters, reals, naturals, etc.

    Un fitxer lògic és un objecte variable d'un programa i que és una instanciació d'un TAD.

    Fitxer físic: és la implementació del fitxer lògic en un suport físic.

    Independència física de les dades

    La distinció entre fitxer lògic i fitxer físic es fa per obtenir independència física de les dades, que no és més que fent un canvi del suport de memòria externa o de sistema operatiu (tecnologia) no ens obliga a canviar els programes ja fets sobre aquesta tecnologia.

    Fitxer lògic

    L'accés es pot fer de quatre formes diferents:

  • Accés seqüèncial per posició

  • Accés seqüèncial per valor.

  • Accés directe per posició.

  • Accés directe per valor.

  • Exemple:

    Tipificació: tipificació dels fitxers lògics segons l'accès, segons les combinacions dels quatre diferents tipus d'accés podem tenir 15 fitxers diferents, però nomès quatre ens interessen.

    • Fitxer seqüèncial: amb accès seqüèncial per posició.

    • Fitxer relatiu: amb accés seqüèncial per posició i accés directe per posició.

    • Fitxer per valor: amb accés directe per valor.

    • Fitxer seqüèncial per valor: amb accés directe per valor i accés directe seqüèncial per valor.

    Fitxer Fisic

    Implementacions

    Fitxers seqüèncial: implementacions amb tipus d'estructures consecutives. La contigüitat pot ser:

    · Contigüitat física: cintes.

    · Contigüitat temporal: interleaving factor.

    · Contigüittat lògica: apuntadors en discos.

    Fitxers relatius: només es pot implementar en disc. Requereix mecanismes per calcular l'adreça al dsc d'un registre que ocupa una posició determinada. El primer que hem de calcular és l'adreça relativa (longitud del registre * posició que ocupa). A partir de l'adreça relativa el sistema operatiu calculará l'adreça absoluta en el suport.

    Fitxer per valor i seqüèncial per valor: s'implementen amb dos fitxers relatius. En un fitxer tenim les dades i en l'altre, que és l'index, és un fitxer relatiu amb dos camps: (valor i posició). Els indexos poden ser de diferents tipus: arbres B, arbres B+, hashing, etc.

    Creació

    La creació de fitxers físics es pot fer de dos formes:

    • Per programa: mitjançant una operació d'obrir el fitxer. En el nostre TAD aquesta operació és obrir, però en molt llengutages és open.

    • Per JCLC (job Control Language): és un llenguatge de control de tasques, que entre d'altres moltes coses permet crear fitxers, especificant més carcaterístiques que pe programa.

    Rendiment

    A qui preocupa el rendiment sobre el fitxer físic? Als programadors no preocupa perque treballen amb el fitxer logic, en canvi als dissenyadors si preocupa perque a més de dissenyar el fitxer logic també han de pensar amb el fitxer físic.

    El rendiment es mesurem per la correlació d'espai/temps del fitxer lògic respecte a l'espai/temps del fitxer físic.

    Espai: si tenim una base de dades de 20 bytes per rehistre y 10 registres necessitariem 200 bytes per guardar les dades però necessitem mes espai per guardar els controls del fitxer (aproximadament 250 bytes). Per tat no ens hem de passar i tampoc quedar-nos curts.

    El temps depen del nombre d'accessos.

    • En el acces seqüèncial per posició es poden donar els següents casos:

    · Fitxer lògic: 1.- existex el registre i el fitxer està ordenat N/2 accessos.

    2.- existeix el registre i el fitxer no està ordenat N/2 accesos

    3.- no existeix el registre i el fitxer està ordenat N/2 accesos

    4.- no existeix el registre i el fitxer no està ordenat N accesos

    · Fitxer físic: N/2f a N/f accesos; on f és el factor de bloqueig.

    • Accés directe per posició o per valor:

    · Fitxer lògic: 1'accés sempre (donen el valor o la posició i accedim directament).

    · Fitxer físic: Hashing 1,2 accesos.

    Dicotomies: log n accessos.

    Arbres B logd ((n+1)/2) accesos; on d és l'ordre de l'arbre B

    En general es necesirtaran N accesos.

    Associació de fitxers lògics i físics

    Possibilitats

    • 1 fitxer lògic associat amb un fitxer físic (és la situació normal e ideal).

    • 1 fitxer lògic amb n fitxers físics. Poden obrir simultàneament o no els diferents fitxers.

    · No simultàneament: obrir (f, F1,c)

    .

    tancar(f)

    obrir(f, F2,c)

    .

    tancar(f)

    · Simultàneament: no te sentit fer-ho en fitxers físics però si en base de dades.

    Obrir(f,F1,c)

    Obrir(f,F2,c)

    .

    tancar(f)

    • 1 fitxer físic amb n fitxers lògics:

    · No simultàneament: obrir (f1, F,c)

    .

    tancar(f1)

    obrir(f2, F,c)

    .

    tancar(f2)

    · Simultànemanet: obrir(f1,F,c)

    obrir(f2,F,c)

    .

    tancar(f1)

    tancar(f2)

    Aquesta última forma d'obrir fitxers pot produir el problema de la concurrència, que consisteix en que dos persones poden treure informació a l'hora i per tant tenir el doble d'informació. Per solucionar aquest problema apareix el concepte de transacció.

    Transacció: és un conjunt d'operacions que s'executen com si fossin una sola.

    Quan es vol actualitzar un registre s'ha de bloquejar (block) fins que acaba l'actualització. I amés les actualitzacions s'han de fer en forma de transaccions.

    El fitxers compartits poden lligar n fitxers lògics amb un físic, i les base de dades poden lligar n fitxers lògics amb un fitxers físic.

    Binding

    Binding vol dir lligam. És el moment en que s'associa el fitxer lògic i el fitxer físic. El moment del binding pot ser:

    • Amb declaracions: f és fitxer físic. La comprobació de tipus es fà en la compilació.

    • En instruccions: es fa quan executem obrir. La comprobació de tipus es fa en execució, això dona més possibilitats d'associació).

    Instruccions d'un llengutage vs operacions d'un TAD

    Instruccions:

    • Els llenguatges proporcionen instruccions per treballar amb fitxers.

    • Són diferents per a cada llenguatge.

    • No estàn formalitzades.

    Operacions TAD

    • Donen una visió formal del que permet fer cada tipus de fitxer.

    Comparació:

    • Les operacions donen definicions precises per especificacions algebràiques o axiomàtiques, possibilitat d'estandarització, possiblitat de que els constructors facin implementacions diferents d'un mateix fitxer.

    • Les instruccions barrejen les especificacions amb les implementacions, dificultad de coneixer que fa una instrucció perque no està formalitzada i amés estàn molt lligades a la tecnologia.

    TEMA 4.- TAD DE FITXERS SEQ., RELATIU, PER VALOR i SEQ. PER VALOR

    Operacions dels fitxers

    Fitxer seqüencial:

    Obrir (f, F, mode) mode =C (Creació), L (lectura), A (Actualització), E (Extensió).

    Escriure (f, r)

    Llegir (f, r)

    Modificar (f, r) suposa lectura prèvia i modificació sense còpia.

    Tancar (f)

    FDF (f)

    Estat (f)

    Fitxer relatiu

    Obrir (f, F, mode) mode =C (Creació), L (lectura), A (Actualització).

    Escriure (f, r, p)

    LlegirDirecte (f, r, p)

    Modificar (f, r) suposa lectura prèvia i modificació sense còpia.

    Esborrar (f) lectura prèvia tant directe com seqüencial.

    Posicionar (f, p) previ a lectura sequencial

    LlegirSeqüencial (f,r ) salta verges

    Tancar (f)

    FDF (f) només per LlegirSequencial.

    Estat (f)

    Fixter per valor

    Obrir (f, F, mode) mode =C (Creació), L (lectura), A (Actualització).

    Escriure (f, r)

    LlegirValor (f, r, Ci=V)

    Modificar (f, r) suposa lectura prèvia i modificació sense còpia.

    Esborrar (f) lectura prèvia.

    Tancar (f)

    FDF (f)

    Estat (f)

    Fitxer seqüèncial per valor

    Obrir (f, F, mode) mode =C (Creació), L (lectura), A (Actualització).

    Escriure (f, r)

    LlegirValor (f, r, Ci=V)

    Modificar (f, r) suposa lectura prèvia tant per valor com sequencial.

    Esborrar (f) lectura prèvia, tant per valor com sequencial.

    Posicionar (f, Ci{= | > | >=} V)

    LlegirSeqüencial (f, r) posicionar prèviament.

    Tancar (f)

    FDF (f)

    Estat (f)

    En Posicionar ens apareix la gamma de claus que vol dir trobar un nom per aproximació. Pe fer un accés seqüèncial des del principi hem d'utilitzar el valor més petit (W-") o utilitzar la clau genèrica (* llegir tot).

    Lectures

    • Fitxer seqüencial:

    • Lectura amb accés seqüencial per posició des de l'inici del fitxer.

    Llegir(f, r)

    Mentre ¬FDF(f) fer

    Tractar

    Llegir (f, r)

    Fmentre

    • Fitxer relatiu

    • Lectura amb accés directe per posició: LlegirDirecte(f, r, pos)

    • Lectura amb accés seqüencial des d'una posició p.

    Posicionar (p)

    LlegirSequencial (f, r)

    Mentre ¬FDF(f) fer

    Tractar

    LlegirSequencial

    Fmentre

    • Fitxer per valor

    • Lectura amb accés directe per valor.

    LlegirValor(f, r, Ci=V)

    Mentre estat(f)"4 fer

    Tractar

    LlegirValor(f, r, Ci=V)

    Fmentre

    • Fitxer sqüencial per valor

    • Lectura amb accés directe per valor: igual que la lectura amb accés directe per valor del fitxer per valor.

    • Lectura amb accés seqüèncial per valor.

    Posicionar(f, Ci {=, >, >=} V)

    LlegirSequencial (f, r)

    Mentre estat(f)"4 fer

    Tractar

    LlegirSeqüencial (f, r)

    Fmentre

    TEMA 5.- ALGORISMES DE TRACTAMENT SEQ. DE FITXERS

    Introducció al tractament puntual i seqüencial

    PUNTUAL

    SEQUENCIAL

    - Usen accés directe

    - S'executen on line (extracció de diners d'un caixer automàtic)

    - S'executen sobre base de dades

    - Accés seqüèncial

    - S'executen en BATCH (pagament de nomines)

    - S'executen en fitxers.

    Modificació en sequencies amb i sense còpia

    Modificació sense còpia

    Obrir (f, F, `A');

    Llegir (f,r)

    Mentre ¬FDF(f) fer

    r:=T(r);

    Modificar (f,r);

    Llegir (f,r);

    Fmentre

    Tancar (f);

    Modificació amb còpia

    Obrir (f1,F1, `L');

    Obrir (f2,F”, `C');

    Llegir(f1, r1);

    Mentre ¬FDF(f1) fer

    r2:=T(r1);

    Escriure (f2,r2),

    LEGIR (F1,R1);

    Fmentre

    Tancar (f1);

    Tancar (f2);

    Consulta d'un valor i d'un cjt de valors

    Consulta d'un valor

    Hipotesis: F està ordenat i ci és l'identificador.

    Obrir (f, F, `L');

    Llegir (f, r);

    Stop := fals

    Mentre ¬FDF (f) " r.ci<Vb ¬stop fer

    Opció

    Cas r.ci<Vb fer llegir (f,r);

    Cas r.ci=Vb fer <tractar_trobat>; srop:=cert;

    Cas r.ci>Vb fer <tractar_no_trobat>; stop:=cert;

    Fopció

    Fmentre

    Si FDF(f) _! <tractar_no trobat> fsi

    Tancar (f);

    Problemes:

    • Mai hem de barrejar FDF amb condicions sobre registres.

    • Atenció amb la condició de sortida del bucle. No posar condicions sobre registres.

    Consulta d'un conjunt de valors

    Hipotesis: F i C estàn ordenats i, vb i vc són indetificadors (vb valors de F i vc valors de C).

    Obrir (f, F, `L');

    Obrir (c, C, `L');

    Llegir (f, rf);

    Llegir (c, rc);

    Mentre ¬ FDF (f) " ¬FDF(c) fer

    Opció

    Cas rc.ci>fr.ci fer llegir (f, rf);

    Cas rc.ci=rf.ci fer <tractar_trobat>; llegir (f, rf); llegir (c, rc);

    Cas rc.ci<rf.ci fer <tractar_no_trobat>; llegir (c, rc);

    Fopció

    Fmentre

    Tancar (f);

    Mentre ¬FDF(c) fer

    <tractar_no_trobat>;

    llegir (c, rc);

    fmentre

    tancar (c);

    Idees interesants:

    • Sempre s'ha de tancar tan aviat com es pugui un fitxer.

    • Val la pena tenir sempre els fitxers (F, C) ordenats.

    • Val la pena agrupar valors i fer consulta de varis valors alhora.

    Fusió

    Hipotesis: F1 i F2 estan ordenats, i no cal tenir camps identificadors.

    Obrir (f1, F1, `L'); Obrir (f2, F2, `L'); Obrir (f, F, `C');

    Llegir (f1,r1); Llegir (f2,r2);

    Mentre ¬FDF (f1) " ¬FDF (f2) fer

    Opció

    Cas r1.ci<r2.ci fer escriure (f, r1); Llegir (f1,r1);

    Cas r1.ci=r2.ci fer escriure (f, r1); escriure (f, r2);

    Llegir (f1, r1); Llegir (f2, r2);

    Cas r1.ci>r2.ci fer escriure (f, r2); llegir (f2, r2);

    Fopció

    Fmentre

    Si FDF (f1) _! tancar(f1);

    Mentre ¬FDF (f2) fer

    Escriure (f, r2);

    Llegir (f2, r2);

    Fmentre

    Tancar (f2)

    Sino Tancar (f2);Mentre ¬FDF(f2) fer

    Escriure (f, r1);

    Llegir (f1, r1);

    Fmentre

    Tancar (f1);

    Fsi

    Tancar (f);

    Idea de Feijen-Dwyer

    L'idea es tenir dos fitxers: un fitxer mestre (on s'emmagatzemen les dades de l'empresa) i el fitxer de moviments (que guardarà le speticions de moviments).

    L'idea consisteix en eliminar moviments que no s'ha de fer, es a dir, si un es dona de baixa i d'alta es queda tal qual, doncs amb aquesta idea aquests dos fets no es reflexarien en el fitxer mestre només en el fitxer de moviments on despareixerien.

    TEMA 6.- INTRODUCCIÓ A LES BASES DE DADES

    Concepte de B.D. Objectius per a un SGBD

    Concepte de BD:

    • Conjunt de fitxers interrelacionats amb integració i compartició de dades (però a interrelació no es pot fer amb fitxers, al igual que la compartició i l'integració). Integració dades sense repeticions i sense redundancies. Compartició de dades vol dir que molts usuaris poden accedir alhora. Interrelació és la conexió que hi ha entre diferents relacions o conjunts d'entitats.

    • Representació d'entitats interrelacionades amb integració i compartició de dades.

    • Conjunt de dades que representen entitats i les seves interrelacionals amb integració i compartició de dades.

    L'estructures de dades utiltzades fins ara en una base de dades ha sigut:

    • Arbres (model jeràrquic -IBM).

    • Xarxes (model en xarxa -Codasyl).

    • Taules (model relacional -Codd).

    Quan parlem d'entitas de classes es parla com si fossin entitats i les interrelacions que hi ha entre ells, i quan perlem d'entitats ocurrència parlem del contingut de les entitats (ocurrència normalment) i la relació amb els altres continguts de les altres entitats.

    Objectius per un SGBD

    Un SGBD (DBMS), sistema de gestió de dades, és un software complex que ha de permetre:

    • Compartir dades.

    • Integració de dades.

    • Expresar interrelacions.

    • Moltes coses més.

    Aquestes moltes coses són:

    • Possibilitat de fer consultes complexes i no previstes.

    L'SGBD ha de permetre consultes tan complicades com es puguin imaginar l'usuari i l'SGBD ha de permetre conslutes Ad-hoc (al moment) sense que hagi d'estar prèviament definides.

    • Elasticitat als canvis.

    Ha de ser fàcil fer canvis, els canvi possibles podrían ser:

    • Afegir/suprimir atributs.

    • Afegir/suprimir o modificar entitats o interrelacions.

    • Canvis de tecnologies: d'emmagatzemament, indepèndencia física de les dades.

    • Canvis de la visió d'un usuari o aplicacios sense afectar a altres visions o aplicacions (indepèndencia lògica de les dades).

    • Evitar la redundància de les dades.

    Una redundància de dades pot ser:

    • Simples repeticions.

    • Agregats o dades calculades.(Ex. Si tenim els atributs article, preu unitari, quantitat i preu total, aquest últim és una redundància ja que es calcula amb dos atributs ja existents).

    El problema de les redundàncies estriba en:

    • L'ocupació inecessaria d'espai.

    • La dificultat de les actualitzacions.

    Les redundàncies controlades són les redundàncies que per motius d'eficiencia s'ha de posar (calculs molt llargs o un nombre molt gran de lectures).

    • Integritat.

    Consisteix en assegurar que les dades siguin correctes i consistents.

    • Correctes: dades que reflexen correctament la realitat.

    • Consistent: han de complir les regles d'integritat del model, les restriccions d'integritat de l'ususari (estàtiques -edat [0.200], i dinàmiques -sou mai pot baixar), i ha d'evitar les contradiccions a les dades originals per actualització de dades redundants.

    Si la nostra BD és inconsistent per catastrofes de qualsevol tipus llavors hem de fer la Recuperació de dades amb l'ajut de:

    • Còpies de seguretat.

    • Dietari: on emmagatzemen les notacions de les transaccions fetes (.log, .journal).

    • Concurrència d'usuaris.

    Per tractar els accessos concurrents els SGBD fan servir el concepte de transacció que no és més que un conjunt d'operacions simples que s'executen com si fossin una sola.

    Per treballar concurrentment les transaccions podem bloquejar algunes dades que utilitzen: bloqueig (lock). Els bloqueigs es poden fer al nivel de camp, registre BD, pàgina. La majoria de SGBD bloquejen a nivell de pàgina.

    • Distribució de dades.

    Segons on posem les dades podem tenir:

    • BD centralitzades: tota la BS és a la mateixa localització. Només cal un SGBD: Pot haver terminals a llocs allunyats del punt d'emmagatzemament.

    • BD distribuides: ara tenm diferents punts d'emmagatzemament i per tant possibles SGBD locals per gestionar dades. Els avantatges són que les dades locals estan més disponibles i es poden processar més eficientment. Els incovenients són que es complica la gestió de les consultes, la integritat, de la recuperació, de la concurrència, etc. Pot ser que els SGBD locals siguin diferents amb els problemes que això comporta.

    • Seguretat

    Existeixen autoritzacions o drets d'accés a diferents nvells: BD, algunes entitats, alguns atributs, alguns valors d'alguns atributs, etc.

    SQL: GRANT per autoritzar

    REVOKE per desautoritzar.

    • Mecanisme d'identificació d'usuaris: passwords, preguntes, targetes, radiografies, veu, retina. El millor metode és alguna combinació de més d'un mecanisme.

    • Comptatge d'intents errats.

    • Codificació de passwaord i altra informació relacionada amb mecanismes de seguretat.

    Arquitectura d'un SGBD

    L'estandar es proposat per ANSI/X3/SPARC.

    Conceptes previs:

    • Empresa: tota organització amb objectius comuns.

    • Aplicació: tota part d'una organització amb objectius propis.

    El comité ANSI/SPARC va proposar una arquitectura de 3 nivells:

    • Aplicacions: nivell extern.

    • Empresa: nivell conceptual

    • Emmagatzemament: nivell intern.

    Un esquema és la descripció del que hi ha dins de cada nivell. Un mapping és una mena de guia per conectar la informació del diferents esquemes.

    Per crear una base de dades cal donar-li un nom, definir l'esquema conceptual, definir els esquemes externs, definir l'esquema intern i compilar-lo tot.

    L'esquema conceptual conté la descripció de: entitats, interrelacions, atributs d'entitats, atributs d'interrelacions, restriccions d'integritat estatiques o dinàmiques, etc.

    L'esquema intern conté la descripció de l'organització física: camins d'accés, buffers, nombre i tamany, formats, etc.

    Els esquemes externs són subconjunts de l'esquema conceptual, són diferents visions o aplicacions de la informació de la nostra empresa anomendades vistes (views).

    L'esquema intern facilita la independencia de les dades i l'esquema conceptual facilita la independencia lògica de les dades.

    Independència física:els canvis a l'esquema intern no afecten ni a l'esquema conceptual ni als esquemes externs.

    Independència lògica: un canvi a l'esquema conceptual no afecta a les aplicacions que no l'utilitzen i si afecta al propi conceptual i a l'esquema intern. Un canvi en l'extensió d'un esquema extern només afecta al propi esquema extern i a res mes.

    Flux de dades i control

    1.- Arriba la petició al SGBD.

    2.- Mira si hi ha vista per a la petció, mira si existeix la taula demanada a l'esquema conceptual, i mira quina es la mllor forma de buscar la informació (esquema intern).

    3.- Diu el que vol al SO.

    4.- El So es qui posa la informació al buffer, encara que hi ha SGBD que això ho fan els mateixos, i li comunica al SGBD.

    5.- Per últim el SGBD dona la nformació a l'usuari.

    Una pàgina és la unitat de transferència entre la memòria externa i el buffer.

    Un segment és la unitat de transferència entre el buffer i la memòria interna.

    Model de BD.

    Els components d'un model són:

    • Estructura de dades (Arbres).

    • Operacions sobre l'estructura (llegir un node, recorrer l'arbre, inserir un node, etc.).

    • Regles d'integritat del model (un node no pot tenir més d'un pare).

    Historia dels models de base de dades:

    Usuaris i llenguatges de BD

    • Usuaris informàtics: programdors d'aplicacions, dissenyadors, administradors de BD, etc.

    • Usuaris no informàtics: paramètrics (donen paràmetres per l'execució de'un programa. No tenen perque conèixer la BD. Hi ha un programa preconcebut) i finals (fan consultes no previstes a les BD. Han de coneixer minimament el contingut de la BD i un llenguatge d'alt nivell, SQL, i no hi ha programa preconcebut).

    Tipus de classificació de llengutages de BD:

    1.- Primera calsssificació:

    • DDL (Date Definition Language): Llenguatge de definició de dades. Serveix per definir l'estructura de dades, concretament definim l'esquema conceptual, l'intern i els esquemes externs.

    • DML: Llenguatge de manipulació que serveix per realitzar les operacions.

    2.- Segona classificació:

    • Autosuficients (Self): llenguatges que no necessiten de cap altre llenguatge per funcionar (SQL interactiu).

    • Hostatjats (host): són llenguatge que necessiten un llenguatge amfitrió per funcionar. SQL hostatjat en Cobol, Pascal, C, Fortran, ADA, etc.

    3.- Tercera classificació:

    • Declaratius: especifiquen que es vol fer i no cal concretar com s'ha de fer (SQL).

    • Procedurals: especifiquen el com es vol fer les operacions sobre la BD (algebra relacional).

    Idea de l'ABD i del diccionari de dades

    L'ABD (Administrador de Base de Dades) és una persona o equip que s'encarrega de:

    • És l'interlocutor amb els usuaris sobre canvis en els esquemes.

    • Decideix la estructura física i l'estratègia dela camins d'accès.

    • Es responsabilitza del manteniment i funcionament de l aBD.

    • Controla el rendiment.

    • Defineix les autoritzacions.

    • Defineix les estratègies de back-up, journals (dietaris) i recuperacions.

    • S'encarrega d'utilitzar el diccionari de dades.

    El diccionari de dades conté: l'esquema conceptual, l'intern i els externs. En model relacional s'anomena catàleg. Podem estandaritzar, definir sinonims, fer cross-references, entre d'altres coses, en el diccionari de dades.

    TEMA 7.- EL MODEL RELACIONAL

    Conceptes i terminlogia

    Exemple:

    Domini: és un conjunt dde valors.

    Atribut: és el paper o rol que juga un domini en una relació. Els noms dels atributs han de ser tots diferents en una relació. Els atributs han de ser univaluats (els atributs són aplicacions). El domini és diferent del atributs. El nombre de dominis és diferent i pot no coincidir amb el nombre d'atributs.

    Relació: donats els conjunts de valors D1, D2,..., Dn no necessariament disjunts o diferents, anomenats dominis s'anomena relació el subconjunt del producte cartesià del Di dominis.

    R " D1 x D2 x....x Dn

    Producte cartesià: " subconjunt del productes cartesià, en un conjunt no pot haver elements repetits, en un conjunt no hi ha ordre entre els elements.

    Tuple: element d'una relació, una fila d'una taula o d'una relació:

    Grau: donar el nombre d'atributs d'una relació: En l'exemple 4.

    Cardinalitat: nombre de tuples de la relació. En l'exemple 2. La cardinalitat mínima és 0 i la màxima és el producte aritmètic de les cardinalitats dels dominis que formen la clau primaria.

    R(A1:D1, A2:D2, ......., An:Dn) _! |D1|*|D2|

    Valors nuls: (NULL) hi ha desconeguts i inaplicables.

    Claus: una superclau és el conjunt d'atributs que serveixen per identificar les tuples d'una relació (poden ser tots els atributs). Una clau és una superclau que no té cap subconjunt propi que sigui superclau. Una clau pot ser un atribut identificador, o més d'un atribut no identificador.

    Tipus de claus:

    • claus candidates: qualsevol clau d'una relació (dni, num_matr).

    • Clau primaria: la clau escollida (num_matr).

    • Clau secundaria o alternatives: claus no escollides (dni).

    • Clau forana: una clau forana acompleix sempre que els atributs que la formen estan definits sobre el mateix domini semàntic que els atributs de la clau primària referenciada que estarà en una altra relació o en la pròpia relació.

    El domini sintactic correspon al tipus de dades que proporcionen els llenguatges de programació.

    El domini semantic: SQL CREATE DOMAIN

    semàntcis: domini_empl, domini_edat; sintàctics: enter;

    Domini_empl: enter empleats(num_matr: domini_empl,

    Domini_edat: enter edat: domini_edat, .......)

    Intensió d'una relació: és el significat o semantica de la relació. Consta dels atributs de la relació, el paper o rol que juguen, la clau primària,.... Diu quins atributs té i no varia amb el temps. És diferent del grau.

    Extensió d'una relació: conjunt de tuples d'una relació en un instant donat. Diu quins tuples i és variable amb el tmeps. No és ho mateix que la cardinalitat.

    Esquema de la relació: és una representació o especificació de la intensió. Consta de la capçalera i de la clau primària.

    Ex: estudiants (dni, num_matr, nom, edat).

    Diferències entre fitxer i relació:

    1.- Els valors dels atributs d'una relació han de ser atòmics i simples.

    PERSONES

    Nom

    Idiomes

    Pere

    Cat, angl, frances

    en un fitxer si, no en una relació

    2.- Dues tuples no poden ser iguals en una relació:

    PERSONES

    Nom

    Edat

    Pere

    25

    en un fitxer si, no en una relació

    Pere

    25

    3.- L'ordre de les tuples és irrellevant en una relació. En un fitxer l'ordre és important.

    PERSONES

    Nom

    Edat

    En fitxer

    1

    Pere

    25

    2

    Maria

    50

    4.- L'ordre dels atributs en un tuple és irrelevant en una relació.

    1

    2

    En fitxer

    PERSONES

    Nom

    Edat

    Pere

    25

    Pere

    25

    El model relacional

    Dades històriques:

    • Autor del model: Codd.

    • Divulgador del model: Date.

    • Any de la creació de la primera versió: 1969.

    • Any d'aparició de la segona versió: 1989.

    Components:

    • Estructura de dades: relació o taula.

    • Operacions sobre l'estructura: llenguatges d'algebra relacional o de càlcul relacional (SQL).

    • Regles d'integritat

    Les regles d'integritat són les següents:

    • Entitat: els atributs que formen part de la clau primaria tenen valors únics en conjunt, i nop oden tenir valors nuls. Ex

    • Grups_assig

      (assig,

      num_grup,

      ......)

      Ibd

      10

      Ibd

      10

      Ibd

      20

      Fbd

      20

      Ibd

      NULL

      • Referencial: els valors de les claus foranes poden ser només valors de la clau primaria referenciada o valors nuls.

      • Departaments

        (codi_dpt,

        Nom_dpt,)

        VE

        Vendes

        AD

        Administració

        Empleats

        (num_empl,

        Nom,

        Codi_dpt)

        1

        Pere

        VE

        2

        Maria

        VE

        3

        Joan

        NULL

        4

        Ana

        AD

        Que pasa en una clau forana si s'esborra o modifica la clau prmaria refernciada?. Les solucions són les restriccions, la cascada i l'anul-lació.

        · Restricció: consisteix en no permetre esborrar o modificar el valor de la clau primaria si hi ha tuples a la clau forana que es referencia.

        · Cascada: consisteix en esborrar o modificar els valors de la clau forana juntamanet amb els de la clau primaria referencial.

        ·Anul-lació: consisteix en esborrar el valor de la clau primaria i posar els valors nulls a les claus foranes que la referencien, sempre que els atributs de la clau forana admetin valors nuls.

        En SQL podem implementar aquests tres cassos amb:

        ON DELETE RESTRICT ON UPDATE RESTRICT

        CASCADE CASCADE

        SET NULL SET NULL

        • Domini: donats atributs deinits sobre un mateix domini semàntic i les operacions permeses pel dissenyador en aquest domini semàntic, aquestes operacions seràn les úniques que es podran realitzar amb aquests atributs (les operacions que es poden fer entre diferents atributs depenen dels dominis semàntics dels atributs).

        Conexions en el model relacional

        El model relacional és un model uniforme en el sentit que només té un tipus d'elements les relacions. Les conexions en el model relacional es fan mitjançant les claus foranes de les propies relacions.

        Mentre que els models pre-relacionals necessitaven apuntadors.

        Historia. Sistemes relacionals més coneguts.

        Hi ha dues grans famílies:

        Basats en l'algebra relacional

        Basats en el calcul relacional

        • MIMER

        Universitat d'Upsala (Suècia)

        Sistema comercial

        Llenguatge basat en l'algebra

        • PEPIN

        Universitat d'Orsay (França)

        Sistema no comercial

        Llenguatge basat en l'algebra

        • Campus

        Universitat de Niza (França)

        Sistema comercial

        Llenguatge basat en l'algebra

        LAGRIF (l)

        Orientats a tuples

        Orientats a dominis

        Derivats de l'ALPHA (l)

        Derivats de l'SQUARE (l)

        • QBE (l) : Query by example.

        • ACCESS (l)

        • QUELL (l)

        Llengutage d'INGES

        • RDO (l)

        Llenguatge de RDB.

        • SEQUEL (l) dona lloc a SQL. Estandar de creació i manipulació de B.D relacionals.

        • SQL DS

        • DB2

        • ORACLE

        • INFORMIX

        • SYBASE

        • ACCESS

        TEMA 8.- INTRODUCCIÓ ALS MODELS SEMÀNTICS

        Objectius dels models semàntics

        Permeten fer una bona modelització del món real. Tenen molta expressivitat.

        Els inconvenients son que no tenen SGBD que implementin aquests models directament.

        L'estrategia per dissenyar BD queda de la següent forma:

        • Dissenyar un model semàntic.

        • Traduir a model relacional, o algún model segons l'SGBD que volguem utilitzar.

        • Model entitat-interrelació (ER De CHEN)

        Nom: entitat-interrelació (Entity-RelationShip)

        Extended Entity Relationship (EER).

        Autor: CHEN

        Any: 1975/76

        Característiques: molt utilitzat, molt expressiu, i te una representació gràfica.

        Representació gràfica dels components bàsics

        • Atributs d'entitats i interrelacions

        Nosaltres no posarem els atributs d'entitats.

        Entitats classe i ocurrència

        Conectivitats de les interrelacions

        Entitats obligatories i opcionals

        Pot ser que algun empleat sigui cap del departament.

        L'entita empleats és obligatoria en CAP i PERTINENÇA, en canvi l'entitat departamentsés obligatoria amb PERTINENÇA però en canvi és opcional amb CAP.

        Graus de les interrelacions

        Grau 1 reflexives

        Grau 2 binaries.

        Grau 3 ternaries.

        Grau 4 quaternaries.

        Grau n n-àries.

        Reflexives

        Ternaries

        Serveixen per expresar informació historica, informació del temps i no poden contenir zeros al quantificar.

        Entitats fortes i dèbils

        Una entitat és dèbil si per si sola no es pot identificar pero si amb la seva entitat forta. Un dèbil no pot tenir mai dos entitats fortes, si poden derivar d'altres entitats dèbils. Ara la clau primaria es forma amb la clau primaria de l'entitat forta i la clau primerai de l'entitat dèbil.

        Generalitazció i subconjunts

        Generalització: d'una superclase només es va a una subclase i per tant necessitem un classificador. Aquí la intersecció entre les entitats subclase és buida.

        Subconjunt: la interseció de les entitats suclase pot no ser buida, es a dir, es pot pertanyer a les dues entitats.

        IBD-16

        Realitat

        Informació

        Coneixements

        Dades

        Múltiple

        Múltiple

        Únic

        Mon real

        Mon de les representacions

        Mon de les concepcions

        Observació

        Abstracció

        70

        60

        Representació

        Interpretació

        entitat

        valor

        atribut

        Aquestes dues o ens interesa

        Pere

        Maria

        Joan

        Dni1

        Dni2

        Dni3

        pes

        70

        60

        nom

        DNI

        Representació en forma de taula

        Pes

        Nom

        Dni

        70

        Pere

        Dni1

        70

        Maria

        Dni2

        60

        Joan

        Dni3

        60 és una dada com a intersecció de fila O i columna pes, però no és una dada aïlladament.

        Aquí l'identificador podria ser el dni i no el nom perque poden haver dues persones amb els mateixos noms.

        Pes

        Nom

        Dni

        70

        Pere

        Dni1

        70

        Maria

        Dni2

        60

        Joan

        Dni3

        La memòria externa no és volatil, és més barata i a més és ilimitada, aquestes són les raons de que s'escolleixi la memòria externa.

        relació

        relation

        relació

        relation

        Interrelació

        relationship

        Idiomes

        Estudiant

        WA

        programes

        buffer

        Reg

        CPU

        Aquest és l'esquema

        Final de bloc

        Descriptor

        Esquema d'un bloc

        byte

        Bit de control de paritat

        Possible cas de la codificació

        Esquema d'un disk-pack

        Capçalera

        Tape mark

        ....

        IBG

        Eof, fi de fitxer

        Introducció a les bases de dades

        1

        2

        3

        4

        5

        6

        7

        8

        1

        2

        3

        4

        5

        6

        7

        8

        Sin interleaving factor

        Con interleaving factor=2

        Nom

        edat

        R1

        Joan

        28

        R2

        Maria

        17

        R3

        Pere

        40

        R4

        Laura

        35

        1.- Joan 28, María 17, Pere 40, Laura 35

        3.- R3 pere 40

        2.- per nom Joan 28, Laura 35, María 17, Pere 40.

        4.- edat: 28 Joan

        Programa1

        F

        Programa 2

        F1

        F2

        Vb

        Programa 3

        R

        c1

        ci

        cn

        Programa 4

        F

        (mestre)

        C

        (Consulta)

        Exemple:

        F

        C

        3

        4

        4

        5

        8

        8

        10

        23

        12

        14

        F

        F2

        F1

        Programa 5

        Exemple:

        F1

        F2

        F

        3

        3

        3

        12

        7

        3

        24

        12

        7

        17

        12

        12

        17

        24

        Estudiants

        Assignatures

        Interrelacions classe

        Avaluació (nota)

        Pere Ana

        . . . . . .

        IBD FBD ES:E EDA

        . . . . . . .

        Nivell classe

        Nivell ocurrència

        Interrelacions ocurrència

        A

        B

        C

        SGB

        +

        dades

        Esquema BD centralitzada

        SGBD local

        +

        part dades

        A

        B

        C

        D

        Esquema d'una BD distribuida

        Esquema

        extern

        Esquema

        extern

        Esquema

        intern

        Esquema

        conceptual

        . . . . . . . . .

        N

        1

        1

        Mappings extren-concpetual

        Mappings concpetual-intern

        WA

        Prog1

        ............

        WA

        ProgN

        buffer

        segment

        pàgina

        SGBD

        SO

        control

        dades

        Esquema del flux de dades i control d'un SGBD

        Model jerarquic

        Model en xarxa

        Model relacional

        Model semantic

        Esquema dels models que mes s'aproximen a la forma de pensar d'una persona

        Enter

        String[30]

        Real

        domini

        Estudiants

        Dni

        Num_matr

        Nom

        Pes

        Atributs

        12345678

        173

        Pere

        74,5

        relació

        87654321

        945

        Maria

        52,3

        Tuple

        NOM

        Entitats

        Interrelacions

        Nom

        ESTUDIANTS

        Dni

        Nom

        Num_matr

        Adreça

        Tlf

        ASSIGNATURES

        Codi

        Nom

        credits

        Examen

        Nota

        DEPARTAMENTS

        EMPLEATS

        pertinença

        Entitats classe

        Entitats ocurrencia

        1 2 3

        1 2 3 4 5

        Interrelacions de classes i ocurrencies

        COTXES

        MATRICULES

        1

        1

        Un cotxe una matricula, una matricula en un cotxe

        1:1

        DEPARTAMENTS

        EMPLEATS

        MAGATZEM

        PRODUCTES

        N

        M

        N

        1

        1:N

        N:M

        Un empleat només pot estar a un departament, però un departament pot tenir N empleats

        Un magatzem pot tenir M productes diferents i N magatzems poden tenir el ateix producte.

        matriculació

        emmagatzemament

        pertinença

        quantitat

        EMPLEATS

        DEPARTAMENTS

        1

        1

        O

        O

        Cap

        Avaluació

        CONVOCATORIES

        Nota

        N

        M

        ESTUDIANTS

        ASSIGNATURES

        P

        N:M:P

        N

        EMPLEAT

        Data baixa

        Contractació

        M

        1

        DATA D'ALTA

        FABRIQUES

        1:N:M

        1:1:N

        N

        HORA INICI

        Horari fi

        Assignació

        1

        1

        PROFESOR

        AULES

        1:1:1

        1

        TESI

        1:1

        Lectura

        1

        1

        DOCTORAND

        TRIBUNAL

        1

        ON

        maternitat

        1:N

        parella

        1

        1

        PERSONES

        PERSONES

        OM

        NO

        Amics

        N:M

        PERSONES

        1

        FILLS

        Afiliació-paterna

        N

        EMPLEATS

        Generalització

        CLIENTS

        ESTRANGERS

        NACIONALS

        CASATS

        ESPORTISTES

        EMPLEATS

        Subclase

        Superclase

        Subconjunt

        Tipus de

        Classificador

        Nacionals"Estrangers="

        Casats"Esportistes""