resum bases de dades i

15
Estudis d'Informàtica i Multimèdia Resum Bases de Dades I Guillem Solà Aranda Resum Bases de Dades I pàgina 1 de 15 Índex de continguts Conceptes Introductoris...........................................................................................................2 1.-Els tres mons..................................................................................................................2 2.- El món conceptual........................................................................................................2 3.-Les representacions........................................................................................................2 La memòria externa...........................................................................................................2 Introducció a les BD................................................................................................................3 Evolució.............................................................................................................................3 Objectius i serveis..............................................................................................................3 Arquitectura.......................................................................................................................3 Models de BD....................................................................................................................3 Llenguatges i usuaris..........................................................................................................4 Administració de la BD......................................................................................................4 El model relacional i l'àlgebra relacional.................................................................................5 Introducció.........................................................................................................................5 Estructura de les dades.......................................................................................................5 Operacions del model relacional........................................................................................5 Regles d'integritat..............................................................................................................5 Àlgebra relacional....................................................................................................................6 Disseny de bases de dades.......................................................................................................7 Disseny conceptual: el model ER......................................................................................7 Disseny lògic: la transformació del model ER al model relacional...................................8 Teoria de la normalització.......................................................................................................9 conceptes previs d'àlgebra de conjunts..............................................................................9 Conceptes bàsics d'àlgebra relacional................................................................................9 Anomalies de disseny.........................................................................................................9 Teoria de la normalització..................................................................................................9 Aplicació de la teoria de normalització al disseny de BD relacionals.............................10 El llenguatge SQL..................................................................................................................11 Introducció.......................................................................................................................11 Sentències de definició.....................................................................................................11 sentències de manipulació................................................................................................13 sentències de control........................................................................................................14 Subllenguatges especialitzats...........................................................................................15

Upload: guillem-sola-aranda

Post on 07-Apr-2015

48 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: resum Bases de Dades I

Estudis d'Informàtica i Multimèdia

Resum Bases de Dades I

Guillem Solà Aranda

Resum Bases de Dades I pàgina 1 de 15

Índex de contingutsConceptes Introductoris...........................................................................................................2

1.­Els tres mons..................................................................................................................22.­ El món conceptual........................................................................................................23.­Les representacions........................................................................................................2La memòria externa...........................................................................................................2

Introducció a les BD................................................................................................................3Evolució.............................................................................................................................3Objectius i serveis..............................................................................................................3Arquitectura.......................................................................................................................3Models de BD....................................................................................................................3Llenguatges i usuaris..........................................................................................................4Administració de la BD......................................................................................................4

El model relacional i l'àlgebra relacional.................................................................................5Introducció.........................................................................................................................5Estructura de les dades.......................................................................................................5Operacions del model relacional........................................................................................5Regles d'integritat..............................................................................................................5

Àlgebra relacional....................................................................................................................6Disseny de bases de dades.......................................................................................................7

Disseny conceptual: el model ER......................................................................................7Disseny lògic: la transformació del model ER al model relacional...................................8

Teoria de la normalització.......................................................................................................9conceptes previs d'àlgebra de conjunts..............................................................................9Conceptes bàsics d'àlgebra relacional................................................................................9Anomalies de disseny.........................................................................................................9Teoria de la normalització..................................................................................................9Aplicació de la teoria de normalització al disseny de BD relacionals.............................10

El llenguatge SQL..................................................................................................................11Introducció.......................................................................................................................11Sentències de definició.....................................................................................................11sentències de manipulació................................................................................................13sentències de control........................................................................................................14Subllenguatges especialitzats...........................................................................................15

Page 2: resum Bases de Dades I

Conceptes Introductoris1.­Els tres mons– Món real: la part de la realitat que ens interessa, composta per objectes.– Món conceptual: coneixements obtinguts observant el món real. 

– El procés d'observació/abstracció per a modelitzar la realitat– Món de les representacions: representació física de les dades (coneixements del món real)

– analitzar els objectes del món real– dissenyar una representació informàtica concreta

– La interpretació: procés invers al de la representació.

2.­ El món conceptual– lingüísticament informació = subjecte + predicat

– subjecte = entitat– com a individu o instància– com a classe o tipus

– predicat = atributs + valors– l'atribut A com a aplicació de E sobre V. {Entitat}­­­­­Atribut­­­­­>{Valor}– entitats multiatribut: una entitat pot tenir més d'un atribut

– El temps: element caracteritzador de la informació però encara no hi ha facilitats específiques.– Domini de l'atribut: conjunt de tots els valors vàlids

– valor nul: quant el valor sigui desconegut o no existeixi.– Identificadors: atributs concebuts com a aplicació injectiva (cada element de la imatge un de l'origen com a màx.)– Clau: atribut o conjunt d'atributs que permet identificar les entitats individuals.– Atributs multivalor: no pot ser seria una correspondència. Restricció del sistema relacional.

3.­Les representacions– representació tabular: una columna per cada atribut

– representació informàtica: fitxer de dades– registre: entitat equivalent a una fila de la taula– camp: valor d'un atribut d'una entitat– capçalera de la taula: equivalent dels atributs

– Bases de Dades: conjunt de fitxers de dades interrelacionats– possibilitats d'organització com les del món no informàtic

– Accés a les dades– seqüencial per posició SP: després d'accedir a un registre s'accedeix als següent per posició.– directe per posició DP: s'accedeix al registre que ocupa la posició p– seqüencial per valor SV: després d'accedir a un registre s'accedeix al següent respecte un atribut– directe per valor DV: s'accedeix al registre que coincideix amb un valor doat

– Nivell lògic: programació senzilla i independent de les realitzacions.– Nivell físic: quant hem de considerar la realització física.

La memòria externa– no volatilitat i gran capacitat– bloc: el que s'escriu en cada operació E/S– registre: unitat de transferència al programa d'usuari– Discs durs:

– temps d'accés: cerca + espera– temps de transferència

– del disc al buffer local– del buffer local al buffer de l'ordinador

Resum Bases de Dades I pàgina 2 de 15

Page 3: resum Bases de Dades I

Introducció a les BD– concepte de BD: representació integrada dels conjunts d'entitats d'instància corresponents a les diferents entitats 

tipus del SI i de les seves interrelacions

Evolució– anys 60­70: sistemes totalment centralitzats, un gran ordinador per a tota l'empresa i una xarxa de terminals sense 

intel∙ligència ni memòria.– anys 80: SGBD relacionals. Els processos són independents dels aspectes físics de la BD.– anys 90: BD distribuïda. Un programa pot treballar amb diverses BD com si es tractés d'una sola.

– disponibilitat: més alta ja que si cau un sistema queden la resta– cost: es pot reduir fent que les dades que més utilitzi un usuari quedin mes aprop

– entorn client/servidor C/S: els dos processos s'executen en un mateix sistema o en un de separat.– Fourth Generation Lenguages 4GL: fàcils i potents.

– tendències actuals: multimèdia, TAD, OO, web, Data Warehouse (còpia de la BD per a la consulta i anàlisi)

Objectius i serveis– consultes no predefinides i complexes amb resposta automàtica: llenguatge SQL– flexibilitat als canvis i independència entre les dades i els processos usuaris

– independència física de les dades: es poden fer canvis de la tecnologia sense afectar ningú– independència lògica de les dades: visions adaptades a cada tipus d'usuari, canviar un atribut sense que afecti 

els programes de consulta. – eliminar la redundància: la mateixa dada en diversos llocs pot causar la pèrdua d'integritat si no ho fa el SGBD– integritat de les dades: les regles d'integritat del model/usuari no permeten fer operacions errònies.

– processos de restauració del SGBD permeten donar un estat consistent anterior a l'incident– concurrència d'usuaris: l'accés de diversos usuaris pot produir problemes d'interferència.

– transacció de BD: les operacions s'executen com una unitat, o totes o cap. COMMIT o ROLLBACK– bloqueig d'unes dades en benefici d'una transacció limitant els accessos

– seguretat: autoritzacions, drets d'accés, tècniques d'encriptació.

Arquitectura– ANSI/SPARC: tres esquemes

– nivell extern: visions lògiques dels processos usuaris, Podem unir entitats per que semblin una sola...– nivell conceptual: una sola descripció lògica, única i global. Entitats, tipus, relacions, regles d'identitat.– nivell intern: una única descripció física. Camins d'accés, codificació, gestió de l'espai...

– independència de les dades– física: quan els canvis en l'organització física no afecten als programes o usuaris– lògica: quan els usuaris no es veuen afectats pels canvis en el nivell lògic.

– flux de dades1. consulta al SGBD, verifica la sintaxi i que el programa estigui autoritzat2. consulta l'esquema intern per saber com s'ha de fer físicament la consulta3. comprova els buffers i si no hi és la carrega4. extreu la consulta seguint l'esquema intern5. aplica les transformacions lògiques de l'esquema extern6. el SGBD retorna el retorn al programa di dóna per acabada la consulta

Models de BD– model jeràrquic: registres interrelacionats en forma d'arbre– model en xarxa: ara un registre no està limitat a ser “fill” d'un sol registre tipus– model relacional: taules basades en el concepte matemàtic de relació– model relacional amb objectes: ara les dades són TAD.

– models semàntics i els funcionals utilitzats en l'etapa de disseny. – model ER (entity­relationship) és el més estès

Resum Bases de Dades I pàgina 3 de 15

Page 4: resum Bases de Dades I

Llenguatges i usuaris– DDL data definition language: ordres declaratives per l'escriptura d'esquemes, p.e. CREATE TABLE– DML data management language: per usar la BD p.e. SELECT, INSERT, UPDATE i DELERE

– declaratius: s'especifica que es vol fer sense explicar com s'ha de fer– procedimentals: cal conèixer més qüestions del funcionament del SGBD per detallar com cal fer les operacions

– Llenguatges 4GL: de molt alt nivell. Combinen elements procedimentals amb declaratius– Interfícies visuals: tipus Windows, permeten consultar i actualitzar la BD fàcilment.– crides a funcions de llibreries per fer consultes en SQL des del nostre llenguatge– llenguatge hostatjat, incloure directament les instruccions del llenguatge de BD al nostre programa

Administració de la BD– els administradors de la BD son responsables del manteniment, backups, emergències, integritat, disseny físic, 

rendiment, assessorar als programadors, control de la seguretat

Resum Bases de Dades I pàgina 4 de 15

Page 5: resum Bases de Dades I

El model relacional i l'àlgebra relacionalIntroducció– model relacional: model de dades que té en compte els tres aspectes següents

– estructura: ha de permetre representar la informació que ens interessa del món real– manipulació: mitjançant les ordres d'actualització i consulta– integritat: mitjançant l'establiment de regles que les dades han de complir

– objectiu: percebuda per l'usuari com una estructura lògica simple i uniforme– valors de dades atòmics: no és possible descompondre'ls 

Estructura de les dades– conjunt de relacions– un domini D: conjunt de valors atòmics

– domini predefinit: proporcionats pel llenguatge de base de dades– definit per l'usuari 

– una relació es compon de l'esquema i l'extensió – l'esquema de la relació consisteix en un nom de relació R i un conjunt d'atributs {A1,A2,... , An}

– l'extensió de la relació d'esquema  R{A1, A2,... , An} és un conjunt de tuples que són parells de dades– grau d'una relació: nombre d'atributs que pertanyen al seu esquema– cardinalitat d'una relació: nombre de tuples que pertanyen a la seva extensió– diferències entre relacions i fitxers

– atomicitat dels valors dels atributs, sense estructura interna– no­repetició de les tuples– no­ordenació de les tuples– no­ordenació dels atributs

– superclau d'una relació d'esquema: subconjunt dels atributs d'una tupla tals que no n'ha ha amb la mateixa combinació

– clau candidata d'una relació: superclau de C tal que cap subconjunt propi de C no és superclau– clau primària CP: clau candidata que serveix per identificar les tuples d'una relació– cau alternativa: clau candidata no escollida com a clau primària– clau forana CF: subconjunt  dels atributs de l'esquema d'una relació que

– existeix una relació S que té per clau primària CP– coincideixen amb els valors per a CP d'alguna tupla s de S

Operacions del model relacional– actualització i consulta de les dades– llenguatges basats en àlgebra relacional: 

– inspirats en la teoria de conjunts– llenguatges procedimentals: els passos que formen una consulta descriuen un procediment

– basats en el càlcul relacional– fonament teòric basat en el càlcul de predicats de la lògica matemàtica– llenguatges declaratius: respon la consulta en termes de les relacions emmagatzemades

– SQL: combina l'àlgebra relacional i el càlcul relacional

Regles d'integritat– unicitat de la clau primària: no hi pot haver dues tuples amb la mateixa CP– integritat d'entitat de la clau primària: la CP no pot ser un valor NUL– integritat referencial: un valor d'una CF ha de ser present a la clau primària corresponent o bé ser NUL– restricció d'esborrat/modificació: si una tupla té una clau primària referenciada per una clau forana– actualització en cascada d'esborrat/modificació: si també es fa amb les tuples que referencien– anul∙lació en cas d'esborrat/modificació: cal posar als valors referenciats valors NUL – integritat de domini, condicions:

– primera: un atribut ha de tenir un valor del seu domini– segona: un operador determinat només es pot aplicar sobre valors que tinguin dominis adequats per a aquell 

operador. (Els SGBD i SQL no la suporten)

Resum Bases de Dades I pàgina 5 de 15

Page 6: resum Bases de Dades I

Àlgebra relacional– tancament relacional: en totes les operacions tant els operands com el resultat són relacions– classificació de les operacions

– segons si es poden o no expressar en termes d'altres operacions– primitives: operacions a partir de les quals podem definir la resta– no primitives: (intersecció i combinació)

– segons el nombre de relacions– binàries: dues relacions com a operands– unàries: una única relació com a operand (selecció i projecció)

– si s'assemblen o no a la teoria de conjunts– conjuntistes: unió, intersecció, diferència i producte cartesià– específicament relacionals: selecció, projecció i combinació

– operacions conjuntistes– Unió T  T∪S : una i altre sense repetits

– relacions compatibles entre si– tenen el mateix grau– es pot establir una bijecció entre els elements de T i de S

– Intersecció T∩S :que surtin a ambdues relacions– diferència T – S : són a la primera i no a la segona– producte cartesià TS : concatenació de les dues relacions sense repetits

– operacions específicament relacionals– selecció T C : escull unes tuples i n'elimina la resta – projecció T [A i , A j , ... , Ak ] : escollir alguns atributs– combinació T [C ]S : concatena les tuples amb una condició de combinació

– dues relacions sense cap nom d'atribut en comú– combinació natural T∗S : equicombinació seguida de l'eliminació dels atributs superflus

– combinacions externes: preserven el resultat de totes les tuples de T o S o ambdues– combinació externa esquerra T [C ]ES : conserva tots els resultats de T– combinació externa dreta T [C ]DS : conserva tots els resultats de S– combinació externa plena T [C ]PS : conserva tots els resultats de T i S– també s'aplica a la combinació natural *– es posa NUL als valors que no satisfan la condició

Resum Bases de Dades I pàgina 6 de 15

Page 7: resum Bases de Dades I

Disseny de bases de dadesDisseny conceptual: el model ER– entity­relationship, entitat­interrelació: per reflectir l'estructura i integritat de les dadesConstruccions bàsiques :– entitat: objecte del món real únic del qual ens interessen algunes propietats (atributs)

– instàncies o ocurrències concretes: objectes individuals– tipus o classes d'entitats: conjunt d'objectes

– atributs han de ser univaluats: un sol valor per cada ocurrència d'una entitat– interrelació: associació entre entitats

– atributs de interrelacions: tenen un cert domini, valor atòmic i univaluats– grau de les interrelacions: nombre d'entitats que associa una interrelació– binàries: entre dues entitats

– connectivitat un a un (1:1): un atribut estaria a qualsevol costat– connectivitat un a molts (1:N): un atribut estaria a N– connectivitat molts a molts (M:N): solen tenir atributs– dependència d'existència a les interrelacions binàries

– entitat obligatòria a la interrelació: entitat individual que només pot existir si hi ha com a mínim una altra entitat individual associada amb aquesta mitjançant una interrelació binària determinada

– entitat opcional a la interrelació: cas contrari– ternàries: connectivitat M:N:P, M:N:1, N:1:1 i 1:1:1

– Si fixades ocurrències concretes de les altres dues, és possible connectar­hi un  o moltes ocurrències de la primera entitat ?

– n­àries: pot tenir n+1 tipus de connectivitat– interrelacions recursives: alguna entitat està 

associada més d'una vegada– binària: associen dues instàncies de la mateixa 

entitat– n­ària: més de dues instàncies– es pot etiquetar cada línia amb un rol

– entitats dèbils: entitat on els atributs no la identifiquen completament. Ha de participar en una interrelació que ajuda a identificar­la. – Ha de ser binària amb connectivitat 1:N i l'entitat dèbil ha de ser al costat N. L'entitat del 

costat 1 és obligatòria– generalització/especialització: reflecteix que una entitat superclasse es pot especialitzar en 

entitats subclasse– l'entitat superclasse: permet modelitzar les característiques comunes– l'entitat subclasse: permet modelitzar les característiques pròpies– tota ocurrència d'una entitat subclasse també és una entitat de la superclasse– herència de propietats: les característiques de l'entitat superclasse es propaguen cap a 

les subclasse– procés d'especialització: primer s'identifica les necessitats comunes i posteriorment les 

específiques– procés de generalització: primer les específiques i després s'identifiquen les característiques comunes– classificació:

a) disjunta D: una mateixa ocurrència no pot aparèixer a dues entitats subclasse diferentsb) encavalcada S: el cas contrari a la disjunta1. total T: l'entitat superclasse ha de pertànyer a alguna de les entitats subclasse2. parcial P: el contrari a la total

– entitats associativa: considerar una interrelació entre entitats com si fos una entitat– sempre que usem una entitat dèbil podrem substituir­la per una 

associativa (però no adequat)

Resum Bases de Dades I pàgina 7 de 15

SUPERCLASSE

SUBC1 SUBC2

D, T

EDIFICI

DESPATX

1

N

SITUACIÓ

EDIFICI

NºDESPATX

1 NDESPATX EDIFICI

M

N ASSIGNACIÓ

ENTITATclau primària

atribut

ENTITAT2

atribut INTERRELACIÓ

N

1 obligatòria

opcional

PERSONA AMISTATN

MPERSONA

CASAMENT

N

MDATAN

marit

muller

Page 8: resum Bases de Dades I

Disseny lògic: la transformació del model ER al model relacional– cada entitat del model ER es transforma en una relació del model relacional amb els seus atributs.– interrelacions binàries

– connectivitat 1:1: afegir a qualsevol de les dues relacions una clau forana que referenciï l'altre– connectivitat 1:N: afegir a l'entitat del costat N una clau forana que referenciï l'altre relació– connectivitat M:N: nova relació amb clau primària la de les dues entitats interrelacionades– dependència d'existència: una entitat opcional en una relació pot prendre valors nuls que cal evitar

– interrelacions ternàries: nova relació amb atributs les claus primàries de les entitats interrelacionades– connectivitat M:N:P: clau primària tots els atributs– connectivitat M:N:1: clau primària els atributs de M i N– connectivitat N:1:1: clau primària del costat N i qualsevol de les entitats amb 1– conectivitat 1:1:1: clau primària dues entitats qualsevol

– interrelacions n­àries: nova relació– totes amb “molts”: clau primària amb tots els atributs– alguns amb “un”: clau primària amb les claus de n­1 de les entitats interrelacionades

– interrelacions recursives: com a les interrelacions no recursives– clau forana per a binàries 1:1 i 1:N– relació per a binàries M:N i n­àries

– entitats dèbils: clau forana sempre al costat N d'una interrelació que formarà part de la clau primària– generalització/especialització: les entitats subclasse i superclasse es transformen en una nova relació

– superclasse: clau primària la clau de l'entitat superclasse i tots els atributs comuns– subclasse: clau primària la clau de l'entitat subclasse i els atributs específics

– entitats associatives: la transformació de la interrelació que l'origina és alhora la seva transformació

Resum Bases de Dades I pàgina 8 de 15

Page 9: resum Bases de Dades I

Teoria de la normalitzacióconceptes previs d'àlgebra de conjunts– correspondència: qualsevol subconjunt del producte cartesià entre els conjunts O i I – funcions (aplicacions): subconjunt de les correspondències on cada element de O es relaciona amb un, i només un, 

element de I– injectiva: cada element del conjunt I es relaciona, com a molt, amb un element del conjunt O– exhaustiva: cada element de I es relaciona, com a mínim, amb un element de O– bijectiva: cada element de I es relaciona amb un, i només un, element de O

Conceptes bàsics d'àlgebra relacional– intensió d'una relació: nom de la relació i atributs (capçalera de la taula)– extensió: conjunt de tuples (valors de la taula)– dependència funcional: restricció sobre una relació {X } {Y } (X, Y subconjunts de la tupla) que garanteix que 

donat un valor de {X} aquest determina de manera única {Y}. Cada valor de {X} té associat un, i només un, {Y}– {Y} depèn funcionalment de {X}– {X} determina funcionalment {Y}– no necessitem examinar l'extensió de la relació atès que és una propietat de d'intensió– dependència funcional completa: quan cap subconjunt propi de {X} determina funcionament {Y}

Anomalies de disseny– totes les dependències funcionals que hi pugui haver a les diferents relacions que formen part del disseny lògic han 

de ser dependències funcionals completes– anomalies de modificació: obliguen a modificar totes les tuples que guarden un fet determinat, si aquest canvia– anomalies d'esborrament: es poden perdre fets elementals sense voler– anomalies d'inserció: no poder inserir fets elementals de manera independent– tota relació que no presenta un concepte únic del món real pot presentar redundàncies, anomalies i inconsistències

Teoria de la normalització– tota relació ha de descriure un concepte semàntic únic– formes normals FN: conjunt de restriccions que ha de complir una relació– 1FN: cap atribut de la relació és en si mateix una relació (atòmic)

– exemple: dos números de telèfon en una mateixa cel∙la– solució: o crear dues columnes tel_1, tel_2 o fer una nova taula amb (id_client, num_tel)

– 2FN: 1FN + tot atribut no clau depèn funcionalment en forma completa de la clau primària– només es pot violar amb una clau primària composta– cal evitar que hi hagi dependències funcionals no completes respecte a la clau– exemple: Persona(nom, habilitat, direcció)

– habilitat i direcció potser no casen– solució: projectar una nova relació

– 3FN: 2FN + cap atribut no clau depèn funcionalment de cap altre conjunts d'atributs no clau– cal evitar la dependència funcional entre atributs no clau– exemple: Torneig(torneig, any, guanyador, data_guanyador)

– indueix error ja que pot ser que guanyador i data_guanyador no casin– solució: projectar una nova relació

– FN de Boyce­Codd: 1FN + tots els determinants són clau candidata de la relació– determinant: conjunt {X} de la dependència funcional {X } {Y } (els orígens de la fletxa)– exemple: tutorEstudiant(id_tutor, seg_soc_tutor, id_estudiant)

– pot ser que id_tutor i seg_soc_tutor no casin– solució: fer servir només una de les dues claus

– Conclusions sobre dependències funcionals en les FN– sempre és possible normalitzar fins a la FNBC– el procés de normalització no és únic– en aplicar un procés de normalització el model final equival a l'inicial

Resum Bases de Dades I pàgina 9 de 15

Page 10: resum Bases de Dades I

– el model lògic final és millor que l'inicial– elimina redundàncies i anomalies i separa fets semànticament diferents

– axiomes d'Armstrong– reflexivitat: ∀ X ,{X } {X }

– augmentativitat: ∀ X ,Y si {X } {Y }⇒{X , Z } {Y }

– distributivitat: ∀ X ,Y , Z si {X }{Y }∧{X }{Z}⇒{X }{Y , Z}

– transitivitat: ∀ X ,Y , Z si {X }{Y }∧{Y } {Z}⇒{X }{Z }

– pseudotransitivitat: ∀ X ,Y , Z ,W si {X }{Y }∧{Y , Z}{W }⇒{X , Z} {W }

– l'aplicació exhaustiva dels axiomes d'Armstrong sobre un conjunt de dependències funcionals L, obté la clausura o tancament de L representada com L+

– la clausura d'un conjunt d'atributs i un conjunt L de dependències funcionals entre aquests atributs permet:a) veure si una dependència funcional determinada és certa en una empresa o organitzaciób) calcular el conjunt de claus candidatesc) determinar si dos models lògics aparentment diferents són equivalents o no

– 4FN: FNBC + no té dependències multivaluades independents– les dependències que s'originen en una relació que presenta fets multivaluats independents són immediates– sigui R una relació amb esquema R(A1,A2,...,An) i siguin {X} {Y} {Z} atributs de R. Aleshores, la dependència 

multivaluada independent {X}   {→ Y} existeix si, i només si,el conjunt de valors possibles de {Y} per a un parell {X,Z} depèn únicament del valor de {X}, llavors també existirà la d.m.i. {X}   {→ Z}

– conclusions de les depenències multivaluades independents:– la relació té clau composta formada, com a mínim, per tres atributs– sempre es donen per parelles– si {X} {→ Y} i {X} {→ Z} en R hi ha <x,y,z> i <x,y',z'> per simetria també hi han <x,y,z'> i <x,y',z>– una dependència funcional {X}   {→ Y} és un cas particular de d.m.i. on el conjunt de valors que pren 

l'atribut dependent {Y} es restringeix a un únic valor.– per normalitzar a 4FN cal evitar les d.m.i. i s'han de projectar en relacions diferents– només quan les dependències multivaluades siguin independents la relació violarà la 4FN, – si les dependències multivaluades són dependents la relació aleshores presenta repeticions inevitables

– 5FN: 4FN + no té dependències de projecció­combinació sense variació d'informació– dependències de projecció­combinació sense variació: la relació no està en 5FN. Hi ha d'haver una llei de 

simetria i la relació original es pot descompondre en relacions noves i sempre podem reconstruir la relació original de manera exacta

– dependències de projecció­combinació amb variació: descomposta la relació original ja no es pot reconstruir, aleshores la relació original presentava un únic fet del món real i ja estava en 5FN

– conclusions sobre les formes basades en fets multivaluats– les dependències funcionals i les dependències multivaluades independents són relativament fàcils d'identificar– les dependències de projecció­combinació que no tenen un significat intuïtiu poden ser difícils de descobrir– conclusions

– una relació només pot violar la 4FN o 5FN si s'ha obtingut com a conseqüència d'una interrelació entre entitats, com a mínim, ternària

– les dependències de projecció­combinació són un cas particular de les d.m.i.

Aplicació de la teoria de normalització al disseny de BD relacionals– disseny fet des de zero, dos punts de vista extrems

– mètodes descendents: partim d'una única relació, relació universal, amb tots els atributs i dependències funcionals entre aquests atributs. Caldrà aplicar de manera reiterada un procés de normalització per obtenir un esquema relacional que caracteritzarà la BD de la organització

– mètodes ascendents: partim d'un conjunt d'atributs d'interès per a una determinada organització i de les respectives dependències funcionals, després es construeix un esquema relacional que caracteritza la base de dades de la organització

– mètodes mixtos: disseny conceptual de la BD mitjançant un model semàntic de dades– desprès traduir el model a un disseny equivalent en el model relacional, obtenim el disseny lògic de la BD

– normalització necessària si partim del mètode descendent, convenient al final del procés dels mètodes mixtos, així eliminarem redundàncies i evitarem les anomalies de disseny

– el seguiment correcte de qualsevol metodologia condueix a un disseny lògic que verifica, almenys, la 3FN– desnormalització: per augmentar el rendiment pot interessar duplicar atributs– BD relacionals amb objectes: incorporen relacions que no estan en 1FN

Resum Bases de Dades I pàgina 10 de 15

Page 11: resum Bases de Dades I

El llenguatge SQLIntroducció– tres nivells en SQL2 o SQL92

– introductori (entry): inclou SQL89 i les definicions de clau primària i clau forana per crear una taula– intermedi (intermediate): afegeix algunes ampliacions– complet (full): conté totes les ampliacions

– taules en lloc de relacions– columnes en lloc d'atributs– files en lloc de tuples– SQL hostatjat: per utilitzar­lo des d'un llenguatge de programació, rutines SQL/CLI (SQL/Call level interface)

Sentències de definició– nomenclatura

– paraules en negreta són paraules reservades del llenguatge– [ ... ] es podria posar o no– { A | ... | B } hem de posar una opció obligatòriament

– sentències de definició• creació d'esquemes

CREATE SCHEMA { [nom_esquema] | [AUTHORIZATION usuari ]} [llista_elements_esquema]

• esborrat d'esquemesDROP SCHEMA nom_esquema {RESTRICT | CASCADE}

– RESTRICT només es pot esborrar si no conté cap element – CASCADE esborra encara que no estigui completament buit

• creació de BDCREATE DATABASE nom_base_de_dades

• esborrat de BDDROP DATABASE nom_base_de_dades

• creació de taulesCREATE TABLE nom_taula (definició_columna [, definició_columna...] 

[,restriccions_taula] )

definició_columna ésnom_columna { tipus_dades | domini } [def_defecte] [restric_col]

– tipus de dades: CHARACTER, BIT, DECIMAL(precisió, escala), INTEGER, REAL, DATE...– una de les restriccions de taula era la definició de claus foranesFOREIGN KEY clau_forana REFERENCES taula [(clau_primària)]

[ON DELETE {NO ACTION / CASCADE / SET DEFAULT / SET NULL}]

• modificació d'una taulaALTER TABLE nom_taula {acció_modificar_columna / acció_modificar_restricció_taula}

– acció_modificar_columna pot ser:{ADD [COLUMN] columna def_columna |

ALTER [COLUMN] columna {SET def_defecte | DROP DEFAULT} |

DROP [COLUMN] columna {RESTRICT | CASCADE}}

– acció_modificar_restricció_taula pot ser:{ADD restricció | DROP CONSTRAINT restricció {RESTRICT | CASCADE}

Resum Bases de Dades I pàgina 11 de 15

Page 12: resum Bases de Dades I

– si volem modificar una taula és que volem fer una d'aquestes operacions– ADD columna: afegir una columna– ALTER columna: modificar les definicions per defecte d'una columna– DROP columna: esborrar la columna– ADD restricció: afegir alguna nova restricció a la taula– DROP CONSTRAINT restricció: esborrar alguna restricció de la taula

• esborrat de taulesDROP TABLE nom_taula {RESTRICT | CASCADE}

• creació de dominisCREATE DOMAIN nom_domini [AS] tipus_dades [def_defecte] [restriccions_domini];

– restriccions_domini té:[CONSTRAINT nom_restricció] CHECK (condicions)

• modificació d'un domini semànticALTER DOMAIN nom_domini {acció_modificar_domini | acció_modif_restricció_domini};

– acció_modificar_domini pot ser{SET def_defecte | DROP DEFAULT}

– acció_modif_restricció_domini pot ser{ADD restriccions_domini | DROP CONSTRAINT nom_restricció}

• esborrat de dominis creats per l'usuariDROP DOMAIN nom_domini {RESTRICT | CASCASDE}

• definició d'una asserció: no disponible en productes comercialsCREATE ASSERTION nom_asserció CHECK (condicions)

• esborrat d'una assercióDROP ASSERTION nom_asserció

• creació d'una vistaCREATE VIEW nom_vista [(llista_columnes)] AS (consulta) [WITH CHECK OPTION];

– taules fictícies anomenades derivades– la no existència real de les vistes fa que puguin ser actualitzables o no– WITH CHECK OPTION: per assegurar­nos que compleix la condició d'una clàusula WHERE

• esborrat d'una vistaDROP VIEW nom_vista {RESTRICT | CASCASDE}

– definicions per defecte– def_defecte: permet especificar quina nomenclatura donem als valors per omissióDEFAULT {literal | funció | NULL}

– literal: un valor– funció: CURRENT_USER, SESSION, USER, SYSTEM_USER, CURRENT_DATE, CURRENT_TIME, 

CURRENT_TIMESTAMP– NULL: opció per defecte

– restriccions de columna– NOT NULL: no pot tenir valors nuls– UNIQUE: no pot tenir valors repetits, és una clau alternativa– PRIMARI KEY:  no pot tenir valors ni repetits ni nuls, és una clau primària– REFERENCES taula [(columna)]: és clau forana de la taula especificada

Resum Bases de Dades I pàgina 12 de 15

Page 13: resum Bases de Dades I

– CHECK (condicions): ha de complir les condicions especificades– restriccions de taula

– UNIQUE: no poden tenir valors repetits, és una clau alternativa– PRIMARI KEY:  no poden tenir valors ni repetits ni nuls, és una clau primària– FOREIGN KEY: (columna [, columna]) REFERENCES taula  (columna [, columna]): clau forana– CHECK (condicions): ha de complir les condicions especificades

sentències de manipulació• inserció de files a una taula

INSERT INTO nom_taula [(columnes)]  

{ VALUES ({v1|DEFAULT|NULL}, ..., {vn|DEFAULT|NULL}) | <consulta>};

• esborrat de files d'una taulaDELETE FROM nom_taula [WHERE condicions]

• modificació de files d'una taulaUPDATE nom_taula

SET columna = {expressió|DEFAULT|NULL} [,{expressió|DEFAULT|NULL}] 

WHERE condicions;

• consultes d'una BD relacional: AS ens permet reanomenar les columnesSELECT [DISTINCT] nom_columna_a_seleccionar [(AS) col_reanomenada]

[, nom_columna_a_seleccionar [(AS) col_reanomenada]...]

FROM taula_a_consultar [[AS] taula_reanomenada]

[WHERE condicions];

– DISTINCT: files resultants sense repetició– funcions d'agregació

– COUNT ens dóna el número total de files seleccionades– SUM suma els valors d'una columna– MIN ens dóna el valor mínim d'una columna– MAX ens dóna el valor màxim d'una columna– AVG calcula el valor mitjà d'una columna

– subconsultes: consulta inclosa dins una clàusula WHERE o HAVING d'una altra consulta. Per expressar certes condicions cal obtenir el valor com a resultat d'una subconsulta.

– BETWEEN: condició que vol trobar un valor entre uns límits concretsWHERE columna BETWEEN limit1 AND limit2;

– IN, NOT IN: per veure si un valor coincideix amb les elements d'una llistaWHERE columna [NOT] IN {(valor1,..., valorN)}

– LIKE: per veure si una columna de tipus caràcter compleix alguna característica determinada– '_' per cada caràcter individual que vulguem considerar– '%' per expressar una seqüència de caràcters que pot ser capWHERE columna LIKE característica;

– IS NULL: per veure si un valor és nulWHERE columna IS [NOT] NULL;

– ANY/SOME i ALL: per veure si una columna compleix que totes/algunes files compleixen una condicióWHERE columna operador_comparació {ALL|ANY|SOME} subconsulta;

– EXISTS: per veure si una subconsulta produeix alguna fila de resultatsWHERE [NOT] EXISTS subconsulta;

– ordenació de les dades obtingudesORDER BY columna_ordenació [DESC] [, columna [DESC]...];

Resum Bases de Dades I pàgina 13 de 15

Page 14: resum Bases de Dades I

– consultes amb agrupació de files d'una taulaSELECT FROM nom_columnes_a_seleccionar FROM taula_a_consultar

[WHERE] condicions]

GROUP BY columnes_segons_les_quals_es_vol_agrupar

[HAVING condicion_per_grups]

[ORDER BY columna_ordenació [DESC] [, columna [DESC]...]];

– GROUP BY: per agrupar files segons les columnes que indiqui aquesta clàusula– HAVING: condicions de cerca per a grups de files, com WHERE però ara pels grups obtinguts

– consultes a més d'una taula– combinació: crea una sola taula fent coincidir el valor de les columnes relacionadesSELECT columnes 

FROM taula1 t1 JOIN taula2 t2 { ON t1.atribut = t2.atribut} 

[WHERE condicions]

– combinació natural: equicombinació entre columnes del mateix nom eliminant les repetidesSELECT columnes

FROM taula1 NATURAL JOIN taula2

[WHERE condicions]

– combinació interna: es queda amb les files que tenen valors idèntics en les columnes que compara SELECT columnes FROM t1 [NATURAL] [INNER] JOIN t2

– combinació externa: permet obtenir tots els valors de la taula que hem posat a la dreta, esquerra o tots els valors d'ambdues taules

SELECT columnes FROM t1 [NATURAL] {LEFT|RIGHT|FULL} [OUTER] JOIN t2

– unió: permet unir consultes de dues o més sentències SELECT FROMSELECT columnes FROM taula [WHERE condicions]

UNION [ALL]

SELECT columnes FROM taula [WHERE condicions]

– ALL ens mostrarà totes les files obtingudes de fer la unió– intersecció: intersecció de dues sentències SELECT FROMSELECT columnes FROM taula [WHERE condicions]

INTERSECT [ALL]

SELECT columnes FROM taula [WHERE condicions]

– diferència: diferència entre dues o més sentències SELECT FROMSELECT columnes FROM taula [WHERE condicions]

EXCEPT [ALL]

SELECT columnes FROM taula [WHERE condicions]

sentències de control• iniciació de transaccions: unitat lògica de treball

SET TRANSACTION {READ ONLY|READ WRITE};

• finalització de transaccions: acceptar/rebutjar{COMMIT|ROOLBACK} WORK;

• autoritzacionsGRANT privilegis ON objecte TO usuaris [WITH GRANT OPTION];

– privilegis pot ser

Resum Bases de Dades I pàgina 14 de 15

Page 15: resum Bases de Dades I

– ALL PRIVILEGES: tots els privilegis– USAGE: utilització de l'objecte especificat– SELECT: consultes– INSERT[(columnes)]: d'inserció, es pot especificar les columnes– UPDATE[(columnes)]: modificació– REFERENCES[(columnes)]: referència de l'objecte en restriccions d'integritat

– objectes ha de ser– DOMAIN: domini– TABLE: taula– Vista

– usuaris: – PUBLIC– llista amb el nom dels usuaris

– WITH GRANT OPTION: permet que l'usuari que especifiquem pugui autoritzar altres usuaris

• desautoritzacionsREVOKE [GRANT OPTION FOR] privilegis ON objecte FROM usuaris {RESTRICT|CASCADE};

– GRANT OPTION FOR: desautoritza el dret a autoritzar– CASCADE: desautoritza tots els usuaris que l'usuari autoritzat hagi pogut autoritzar– RESTRICT: no permet l'operació si l'usuari ha autoritzat a altres

Subllenguatges especialitzats– SQL hostatjat: permet inserir sentències SQL mitjançant un precompilador– SQL/CLI: incloure sentències SQL en un llenguatge determinat mitjançant llibreries

– interfície ODBC (open database connectivity): defineix una llibreria de funcions SQL

Resum Bases de Dades I pàgina 15 de 15