Ingeniero Técnico en Informática de Sistemas
Introducció a les bases de dades
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
blocs Cr=Cb*f= 46754 registres
factor de bloqueig= 20
blocs Cr=Cb*f= 626100 registres
factor= infinit o capacitat teorica.
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
-
Referencial: els valors de les claus foranes poden ser només valors de la clau primaria referenciada o valors nuls.
-
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).
-
Dissenyar un model semàntic.
-
Traduir a model relacional, o algún model segons l'SGBD que volguem utilitzar.
Grups_assig | (assig, | num_grup, | ......) |
Ibd | 10 | ||
Ibd | 10 | ||
Ibd | 20 | ||
Fbd | 20 | ||
Ibd | NULL |
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
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:
• 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
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""
Descargar
Enviado por: | Alberto Seco |
Idioma: | catalán |
País: | España |