Bases de Dades

Esteu aquí

Crèdits
6
Tipus
Obligatòria
Requisits
Departament
ESSI
Aquesta assignatura té com objectiu que l'estudiantat tingui una visió general sobre què és una base de dades, què és un model de base de dades, quins són els seus diferents tipus d'usuaris i llenguatges. En concret s'aprofundeix en el model relacional de bases de bases i en els components lògics que aquest model de bases de dades proveeix, i es practica la creació i l'ús d'aquests components mitjançant el llenguatge SQL. L'assignatura inclou una introducció al disseny de bases de dades relacional, i també l'estudi de temes importants per a l'ús de les bases de dades en el desenvolupament de sistemes software com són els privilegis, les transaccions, i els índexs. Finalment, també es fa una petita introducció als nous sistemes de gestió de bases de dades NOSQL.

Professorat

Responsable

  • Carme Quer Bosor ( )
  • Sergi Nadal Francesch ( )

Altres

  • Antoni Urpi Tubella ( )
  • Carme Martin Escofet ( )
  • Francisco Miguel Rodero Blánquez ( )
  • Jordi Casanovas Muñoz ( )
  • Marc Molinuevo Garcia ( )
  • Marc Oriol Hilari ( )
  • María José Casañ Guerrero ( )
  • Pau Carbonell Vives ( )
  • Quim Motger de la Encarnacion ( )
  • Santiago Rivas Contreras ( )
  • Vicent Picornell Alandete ( )
  • Xavier Burgués Illa ( )

Hores setmanals

Teoria
2
Problemes
0
Laboratori
2
Aprenentatge dirigit
0
Aprenentatge autònom
6

Competències

Competències Tècniques

Competències tècniques comunes

  • CT2 - Utilitzar d'una manera apropiada teories, procediments i eines en el desenvolupament professional de l'enginyeria informàtica en tots els seus àmbits (especificació, disseny, implementació, desplegament -implantació- i avaluació de productes) de manera que es demostri la comprensió dels compromisos adoptats a les decisions de disseny.
    • CT2.2 - Demostrar coneixement i capacitat d'aplicació de les característiques, funcionalitats i estructura de les bases de dades, que permetin fer-ne un ús adequat així com el disseny, l'anàlisi i la implementació d'aplicacions basades en elles.
    • CT2.3 - Dissenyar, desenvolupar, seleccionar i avaluar aplicacions, sistemes i serveis informàtics i, al mateix temps, assegurar-ne la fiabilitat, la seguretat i la qualitat en funció de principis ètics i de la legislació i la normativa vigents.
    • CT2.4 - Demostrar coneixement i capacitat per a aplicar les eines necessàries a l'emmagatzematge, el processament i l'accés als sistemes d'informació, fins i tot els que es basen en la web.
  • CT8 - Planificar, concebre, desplegar i dirigir projectes, serveis i sistemes informàtics en tots els àmbits, liderar-ne la posada en marxa, la millora contínua i valorar-ne l'impacte econòmic i social.
    • CT8.6 - Demostrar comprensió de la importància de la negociació, dels hàbits de treball efectius, del lideratge i de les habilitats de comunicació en tots els entorns de desenvolupament de software.
    • CT8.7 - Controlar versions i configuracions del projecte.

Competències Transversals

Actitud adequada davant el treball

  • G8 [Avaluable] - Tenir motivació per a la realització professional i per a afrontar nous reptes, tenir una visió àmplia de les possibilitats de la carrera professional en l'àmbit de l'enginyeria en informàtica. Sentir-se motivat per la qualitat i la millora contínua, i actuar amb rigor en el desenvolupament professional. Capacitat d'adaptació als canvis organitzatius o tecnològics. Capacitat de treballar en situacions de carència d'informació i/o amb restriccions temporals i/o de recursos.
    • G8.2 - Actuar amb rigor en el desenvolupament professional. Estar motivat i tenir una actitud proactiva per la qualitat en el treball. Disposar de capacitat d'adaptació als canvis organitzatius o tecnològics. Tenir capacitat de treballar en situació de restriccions temporals i/o de recursos.

Objectius

  1. Tenir una visió general sobre què és una base de dades, què és un model de base de dades, quins són els tipus d'usuaris de les bases de dades, i quines són les categories de llenguatges de bases de dades.
    Competències relacionades: CT2.2, CT2.4,
  2. Conèixer els objectius d'un sistema de gestió de bases de dades i la seva arquitectura.
    Competències relacionades: CT2.2, CT2.4,
  3. Conèixer el model relacional de bases de dades, els seus llenguatges (SQL i àlgebra relacional) i els components habituals d'una base de dades relacional.
    Competències relacionades: CT2.2, CT2.4,
  4. Ser capaç de definir, crear i manipular els components habituals d'una base de dades relacional.
    Competències relacionades: CT2.2, CT2.4, CT2.3,
  5. Ser capaç de construir programes per gestionar bases de dades relacionals.
    Competències relacionades: CT2.2, CT2.4, CT2.3,
  6. Saber escollir entre diverses sentències SQL, components d'una base de dades, o programes que gestionin una base de dades, que implementin una mateixa funcionalitat, quin/a s'adequa més a uns criteris de qualitat definits.
    Competències relacionades: CT2.4, CT2.3,
  7. Saber escollir entre quins tipus de components o programes de gestió de bases de dades estudiats a l'assignatura són més adequats, segons els criteris de qualitat definits, per a la implementació d'un cert comportament d'una aplicació.
    Competències relacionades: CT2.4, CT2.3,
  8. Tenir una visió general de com s'integra el disseny d'una base de dades dins el procés de desenvolupament d'una aplicació.
    Competències relacionades: CT2.2, CT2.3,
  9. Ser capaç de transformar models conceptuals simples expressats en UML al model relacional.
    Competències relacionades: CT2.2, CT2.3,
  10. Conèixer el concepte de transacció i les seves implicacions.
    Competències relacionades: CT2.2, CT2.4, CT2.3,
  11. Conèixer i saber identificar els tipus d'interferències que es poden produir entre transaccions i la seva relació amb els nivells d'aïllament que defineix l'SQL Standard.
    Competències relacionades: CT2.2, CT2.4, CT2.3,
  12. Conèixer la tècnica de control de concurrència de reserves.
    Competències relacionades: CT2.2, CT2.4, CT2.3,
  13. Conèixer les possibles estructures físiques per l'emmagatzematge de les dades, i les seves implicacions en quan a eficiència.
    Competències relacionades: CT2.4, CT2.3,
  14. Conèixer els mètodes d'accés a les dades, i les seves implicacions en quan a eficiència.
    Competències relacionades: CT2.4, CT2.3,
  15. Ser capaç de participar amb actitud proactiva en la realització d'exercicis en equips de 2 o més persones, seguint els rols assignats a cadascú que poden canviar durant la realització dels exercicis
    Competències relacionades: G8.2, CT8.6,
  16. Ser capaç d'arribar a una versió dels exercicis que compleixi uns criteris de qualitat donats, en un temps i amb uns recursos limitats.
    Competències relacionades: G8.2, CT8.6, CT8.7,
  17. Ser capaç de configurar l'entorn per a la implementació i execució de components de bases de dades i programes que accedeixen a bases de dades, a partir dels recursos que s'ofereix a l'estudiantat.
    Competències relacionades: CT8.7,
  18. Conèixer les principals característiques de les bases de dades de sistemes NOSQL, entendre en què es diferencien respecte els sistemes relacionals, i haver vist una classificació de tipus de sistemes NOSQL que existeixen en l'actualitat.
    Competències relacionades: CT2.2,

Continguts

  1. Introducció
    Concepte de base de dades. Disseny i models de bases de dades. Tipus d'usuaris. Categories de llenguatges. Concepte de sistema de gestió de base de dades (SGBD). Objectius desitjables per a les bases de dades que els SGBD han de proporcionar. Arquitectura dels SGBD.
  2. El model relacional
    Objectius i origen. Estructura de dades amb la qual es construeixen les bases de dades relacionals. Operacions que proveeix el model relacional per manipular i consultar les dades. Regles d'integritat que han de complir les dades d'una base de dades relacional.
  3. Llenguatges: Àlgebra relacional i SQL
    Introducció. Àlgebra relacional: operacions de l'àlgebra relacional; consultes. SQL: creació de taules; inserció, esborrat i modificació de files d'una taula; consultes sobre una base de dades. Consideracions sobre la implementació de consultes.
  4. Components lògics
    Concepte de component lògic d'una base de dades: de dades i de control. Presentació de components lògics de dades: esquemes, dominis i taules, assercions i vistes. Presentació de components lògics de control: procediments emmagatzemats, disparadors i privilegis.
  5. Procediments emmagatzemats i disparadors
    Implementació de procediments emmagatzemats en llenguatge Pl/pgSQL. Implementació de disparadors en PostgreSQL. Consideracions sobre el disseny i implementació de procediments i disparadors.
  6. Programació amb SQL
    Programació en Java i JDBC. Consideracions sobre el disseny i implementació de programes que accedeixen a bases de dades.
  7. Introducció al disseny de bases de dades relacionals
    Etapes de disseny d'una base de dades. Introducció a la comprensió de models conceptuals UML simples. Traducció de models conceptuals UML simples a model relacional de base de dades.
  8. Transaccions i concurrència
    Concepte de transacció. Propietats ACID de les transaccions. Interferències entre transaccions. Serialitzabilitat. Recuperabilitat. Tècniques de control de concurrència. Nivells d'aïllament. Reserves i nivells d'aïllament.
  9. Estructures físiques d'emmagatzemament i mètodes d'accés
    Introducció. Mètodes d'accés per poder fer consultes i actualitzacions de dades d'una base de dades. Costos dels mètodes d'accés.
  10. NOSQL
    Introducció. Diferències amb els SGBD relacionals tradicionals. Objectius dels SGBD NOSQL. Exemples de sistemes que requereixen aquest tipus de SGBD.

Activitats

Activitat Acte avaluatiu


T/P. Estudi de la introducció a les bases de dades

Es presenten els continguts relacionats amb el tema a estudiar
Objectius: 1 2
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

T/P. Estudi del model relacional de bases de dades

Es presenten els continguts relacionats amb el tema a estudiar. Es fan els exercicis que planteja el professorat.
Objectius: 3
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

T/P. Estudi dels components lògics de dades

Es presenten els continguts relacionats amb el tema a estudiar. Es fan els exercicis que planteja el professorat.
Objectius: 3 4
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

T/P. Estudi de components lògics de control

Es presenten els continguts relacionats amb el tema a estudiar. Es fan els exercicis que planteja el professorat.
Objectius: 3 4 7
Continguts:
Teoria
1h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

T/P. Exercicis: Privilegis, vistes i assercions

Es resolen exercicis a classe amb l'ajuda del professorat.
Objectius: 3 4 7
Continguts:
Teoria
3h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

T/P. Estudi introducció al disseny de bases de dades relacionals

Es presenten els continguts relacionats amb el tema a estudiar. Es fan els exercicis que planteja el professorat.
Objectius: 8 9
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

T/P. Exercicis: Traducció a model relacional

Es resolen exercicis a classe amb l'ajuda del professorat.
Objectius: 8 9
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

T/P. Estudi de transaccions i concurrència

Es presenten els continguts relacionats amb el tema a estudiar. Es fan els exercicis que planteja el professorat.
Objectius: 10 11 12
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

T/P. Exercicis: Transaccions i Concurrència

Es resolen exercicis a classe amb l'ajuda del professorat.
Objectius: 10 11 12
Continguts:
Teoria
3h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
4h

T/P. Estudi d'emmagatzematge i mètodes d'accés

Es presenten els continguts relacionats amb el tema a estudiar. Es fan els exercicis que planteja el professorat.
Objectius: 13 14
Continguts:
Teoria
3h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
4h

T/P. Exercicis: Emmagatzematge i mètodes d'accés

Es resolen exercicis a classe amb l'ajuda del professorat.
Objectius: 13 14
Continguts:
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
3h

T/P NOSQL

Es presenten els continguts relacionats amb el tema a estudiar.
Objectius: 1 18
Continguts:
Teoria
1h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
1h

Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
5h

L: Preparació de l'entorn i estudi previ

Preparació de l'entorn per a la implementació, creació i execució de components de bases de dades a partir dels recursos proveits pel professorat. Estudi preliminar de la base de dades que s'usarà a les primeres classes de laboratori i de les sentències més bàsiques del llenguatge SQL.

Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

L. Estudi de SQL 1

Es formen equips de laboratori. Es presenta la forma de treballar de les classes de laboratori. En equip es resol un qüestionari de laboratori sobre el tema tractat a la classe. Es passa una pregunta en paper individual sobre el tema tractat a la classe.
Objectius: 3 4 6
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h

L. Estudi de SQL 2

En equip es resol un qüestionari de laboratori sobre el tema tractat a la classe. Es passa una pregunta en paper individual sobre el tema tractat a la classe.
Objectius: 3 4 6 15 16 17
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

L. Exercicis: SQL

En equip es resol un qüestionari de laboratori sobre el tema tractat a la classe. Es passa una pregunta en paper individual sobre el tema tractat a la classe.
Objectius: 3 4 6 15 16 17
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

L. Estudi d'àlgebra relacional

En equip es resol un qüestionari de laboratori sobre el tema tractat a la classe. Es passa una pregunta en paper individual sobre el tema tractat a la classe.
Objectius: 3
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

L. Estudi de SQL i d'àlgebra relacional

En equip es resol un qüestionari de laboratori sobre el tema tractat a la classe. Es passa una pregunta en paper individual sobre el tema tractat a la classe.
Objectius: 3 4 6 15 16 17
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

L. Estudi de laboratori: Àlgebra i SQL

L'estudiantat repassa els exercicis de laboratori i d'exàmens de SQL i àlgebra relacional.

Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

L. Exercicis: Procediments bàsics.

En equip es resol un qüestionari de laboratori sobre el tema tractat a la classe. Es passa una pregunta en paper individual sobre el tema tractat a la classe.
Objectius: 3 4 6 15 16 17
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

L. Exercicis: Disparadors bàsics

En equip es resol un qüestionari de laboratori sobre el tema tractat a la classe. Es passa una pregunta en paper individual sobre el tema tractat a la classe.
Objectius: 4 6 15 16 17
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

L. Exercicis: Procediments/disparadors.

En equip es resol un qüestionari de laboratori sobre el tema tractat a la classe. Es passa una pregunta en paper individual sobre el tema tractat a la classe.
Objectius: 4 6 15 16 17
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

L: Estudi de laboratori de Procediments i Disparadors

L'estudiantat repassa els exercicis de laboratori i d'exàmens de Procediments i Disparadors

Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

L. Exercicis: Programació amb SQL - JDBC bàsica

En equip es resol un qüestionari de laboratori sobre el tema tractat a la classe. Es passa una pregunta en paper individual sobre el tema tractat a la classe.
Objectius: 4 6 15 16 17
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

L. Exercicis: Programació SQL - JDBC

En equip es resol un qüestionari de laboratori sobre el tema tractat a la classe. Es passa una pregunta en paper individual sobre el tema tractat a la classe.
Objectius: 3 5 15 16 17
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

L. Estudi de laboratori de Programació amb SQL

L'estudiantat repassa els exercicis de laboratori i d'exàmens de Programació amb SQL

Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
2h

L. Examen parcial

L'estudiantat: Resol l'examen de manera individual; No pot consultar cap tipus de material; Lliura l'examen resolt al professor.
Objectius: 1 2 3 4 6 8 9 16
Setmana: 8 (Fora d'horari lectiu)
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
15h

Examen final

L'estudiant: Resol l'examen de manera individual; No pot consultar cap tipus de material; Lliura l'examen resolt al professor.
Objectius: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Setmana: 15 (Fora d'horari lectiu)
Teoria
3h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
16h

Metodologia docent

Classes de teoria/problemes (2.3 hores per setmana).
Aprenentatge autònom: Per preparar les classes pot ser necessari llegir i comprendre uns materials i/o apunts indicats pel professorat. Posteriorment a la classe, cal repassar i resoldre exercicis sobre el tema d'estudi.
Classes de teoria. En les classes de teoria es presenta una part dels continguts de l'assignatura. Normalment el professorat usa transparències, que es poden trobar en el material del curs.
Classes de problemes. En les classes de problemes, es resolen exercicis sobre continguts presentats durant les classes de teoria.

Classes de laboratori (1.7 hores per setmana).
Aprenentatge autònom: L'aprenentatge autònom és individual. Cada setmana prèviament a la classe de laboratori els estudiants tindran una feina a fer a casa que acabarà amb la resolució d'un qüestionari moodle/LearnSQL.
Classes de laboratori: El treball a classe serà en equips de 2. Els estudiants tenen la possibilitat de compartir els dubtes en l'equip de laboratori, i si és el cas, de preguntar els dubtes no resolts al professorat. A continuació es fan les activitats que ha indicat el professorat i finalment resolen el qüestionari de classe.
Avaluació: En cada classe, es contesta una pregunta de manera individual per fer un seguiment del treball d'aprenentatge autònom i del que s'ha fet durant la classe. L'avaluació es basa també en els exercicis que es resolen durant la classe.

Recursos relacionats amb les classes de laboratori:
Tota la documentació, material i qüestionaris d'exercicis relacionats amb els continguts de les classes de laboratori es posaran a disposició a través de la plataforma moodle/LearnSQL.
A part del feed-back que el professorat donar als estudiants durant les classes, la plataforma moodle/LearnSQL disposa d'un corrector d'exercicis de bases de dades que dóna també feed-back sobre les solucions dels exercicis.

Cal assistir a les classes del GRUP ON S'ESTÀ MATRICULAT, tant en el cas de teoria/problemes com en el de laboratori.

Mètode d'avaluació

La qualificació de les competències tècniques es basa en:

- NL - Nota de laboratori. Es basa en:
. Resolució satisfactòria del qüestionari corresponent a cada classe.
. Notes de la pregunta que es contesta durant cada classe.

- NEP - Nota examen parcial. En l'examen parcial hi entren els temes: 1, 2, 3, 4 (sense procediments emmagatzemats ni disparadors), i 7.

- NEF - Nota examen final. En l'examen final hi entren els temes: 4 (només procediments emmagatzemats ni disparadors), 5, 6, 8, 9 i 10.

Qualificació final = 0.40*NEP + 0.50*NEF + 0.10*NL

CAL ANAR a les classes del GRUP ON S'ESTÀ MATRICULAT.

Tindran qualificació final No Presentat (NP) els estudiants que no hagin lliurant cap dels exàmens.

Qualsevol intent de frau realitzat durant el curs en el marc de l'assignatura comportarà l'aplicació de la normativa acadèmica general de la UPC

Qualificació de la competència transversal: Tindrà valors A, B, C o D (on A correspon a un nivell excel.lent, B correspon a un nivell desitjat, C correspon a un nivell suficient i D correspon a un nivell no superat). Un bona avaluació d'aquesta competència la tindrà qui tingui:
Actitud proactiva en el desenvolupament professional.
- Rigor: Actuïn amb rigor a les classes (la seva actitud a classe sigui l'adequada segons les guies donades per als diferents tipus de classe, ja sigui de teoria, de problemes o de laboratori).
- Respecte: Actuïn amb respecte cap als companys, i en cas de treball amb grup amb interdependència positiva cap a la resta dels membres del grup.
Capacitat d'adaptació als canvis organitzatius i/o tecnològics.
- Adaptació: Col·laborin activament en les activitats d'aprenentatge cooperatiu en grup o en parelles que es realitzen. Acceptin i realitzin els rols que se'ls assigna en aquestes activitats i si és el cas els canvis de rol indicats pel professor.
Actitud proactiva per a la qualitat i millora continua.
- Millora: Arribin, majoritàriament, a solucions (en els qüestionaris de laboratori d'estudi) que passin tots els jocs de prova (independentment del nombre d'intents que necessitin).
- Qualitat. Arribin, majoritàriament, a solucions d'exercicis (en els lliuraments en general) que compleixin els criteris de qualitat establerts a l'assignatura per cada tipus d'exercici.
Capacitat d'adaptació en situacions de restriccions temporals o de recursos.
- Restriccions: En general, acabin els exercicis en el temps i amb els recursos proporcionats.

Bibliografia

Bàsica:

Complementaria:

Web links

Capacitats prèvies

Conèixer les estructures de dades a memòria interna.
Ser capaç de fer programes de complexitat mitjana.