Insegnamento obbligatorio per la Laurea Triennale in Ingegneria Informatica, collocato al II pd del II anno. Il corso descrive i sistemi per la gestione di basi di dati, considerando sia le metodologie di progettazione di basi di dati, sia lo sviluppo di applicazioni di interrogazione e gestione di basi di dati. L'attività di laboratorio permette di sperimentare l'uso dei prodotti commerciali e open-source più diffusi.
The course, compulsory for the Bachelor degree in Computer Engineering, is offered on the 2nd semester of the 2nd year. The course presents database management systems and introduces both database design methodologies and the development of applications for database querying and management. Laboratory sessions allow experimental activities on the most widespread commercial and open-source products.
- Conoscenza degli aspetti fondamentali di un sistema per la gestione di basi di dati
- Conoscenza della struttura e delle proprietà del modello relazionale dei dati
- Conoscenza dei linguaggi di interrogazione di una base di dati relazionale: algebra relazionale e linguaggio SQL
- Capacità di scrivere interrogazioni in algebra relazionale e in linguaggio SQL
- Conoscenza del modello concettuale Entità-Relazione per la rappresentazione dei dati e della metodologia per la progettazione concettuale e logica relazionale di una base di dati
- Capacità di progettare una base di dati relazionale
- Conoscenza dei costrutti SQL per la gestione delle viste, del controllo dell'accesso e per la gestione delle transazioni
- Conoscenza delle modalità di interazione tra SQL e linguaggi di programmazione
- Capacità di progettare e sviluppare un'applicazione che esegue l'accesso a una base di dati
- Conoscenza delle basi di dati attive e dei costrutti del linguaggio SQL per la definizione dei trigger
- Capacità di scrivere trigger nel linguaggio SQL.
- Knowledge of the main characteristics of a database management system
- Knowledge of the structure and properties of the relational model
- Knowledge of query languages for a relational database: Relational algebra and SQL language
- Ability to write queries in the relational algebra and SQL languages
- Knowledge of the conceptual Entity-Relationship model for data representation and of the methodology for conceptual and logical design of a relational database
- Ability to design a relational database
- Knowledge of the SQL statements for view management, data access control, and transaction management
- Knowledge of the interaction techniques between SQL statements and programming languages
- Ability to design and develop an application accessing a database
- Knowledge of active database systems and SQL statements for trigger definition
- Ability to write triggers in the SQL language.
Competenze di base di programmazione.
Basic programming skills.
Argomenti trattati nelle lezioni e relativo peso in crediti:
- Caratteristiche di un sistema per la gestione di basi di dati (0.2 cr.)
- Caratteristiche del modello relazionale dei dati (0.2 cr.)
- Algebra relazionale: operatori principali e definizione delle interrogazioni (0.4 cr.)
- Linguaggio SQL: istruzioni per la definizione delle basi di dati e l'elaborazione dei dati (1 cr.)
- Modello concettuale dei dati (modello Entità-Relazione) e metodologia di progettazione concettuale e logica relazionale di una base di dati (0.8 cr.)
- Linguaggio SQL: istruzioni per la gestione delle viste, del controllo dell'accesso, e per la gestione delle transazioni (0.4 cr.)
- SQL per le applicazioni: architetture client-server, integrazione delle istruzioni SQL in un linguaggio di programmazione, stored procedures, progettazione di un'applicazione client-server web-based con accesso a una base di dati (0.7 cr.)
- Basi di dati attive e costrutti del linguaggio SQL per la definizione dei trigger (1.05 cr.)
Class topics and their weight in credits:
- Characteristics of a database management system (0.2 cr.)
- Characteristics of the relational model (0.2 cr.)
- Relational algebra (0.4 cr.): main operators and query definition
- SQL language: statements for data definition and processing (1 cr.)
- Conceptual data model (Entity-Relationship) and methodology for the conceptual and logical design of a relational database (0.8 cr.)
- SQL language: statements for view management, data access control, and transaction management (0.4 cr.)
- SQL for applications: client-server architectures, integration of SQL statements into a programming language, stored procedures, design of a client-server web-based architecture accessing a database (0.7 cr.)
- Active database systems and SQL statements for trigger definition (1.05 cr.)
Il corso comprende esercitazioni in aula inerenti gli argomenti trattati nelle lezioni, e in particolare il linguaggio SQL, l'algebra relazionale e la progettazione concettuale e logica di una base di dati, i trigger (2.2 cr.). Gli studenti svolgeranno inoltre esercitazioni individuali durante il corso, per cui dovranno predisporre una relazione individuale che contribuirà a determinare il voto finale.
Il corso comprende esercitazioni in laboratorio sull'utilizzo del linguaggio SQL, sulla progettazione di un'applicazione client-server con accesso a una base di dati, sui trigger (1.05 cr.). L'attività di laboratorio permette di sperimentare l'uso dei prodotti commerciali e open-source più diffusi.
The course includes lectures in the classroom, whose topics are described earlier, and practices on the lecture topics, and in particular SQL language, relational algebra, and conceptual and logical database design, and triggers (2.2 cr.). Students will prepare an individual written report on the exercises proposed during the course. The report will contribute to the final exam grade. The course includes laboratory sessions on the SQL language, the design of a client-server architecture accessing a database, and triggers (1.05 cr.). Laboratory sessions allow experimental activities on the most widespread commercial and open-source products
Il testo di riferimento, che copre buona parte degli argomenti è: Atzeni, Ceri, Fraternali, Paraboschi, Torlone, 'Basi di dati', V edizione, McGraw Hill, 2018.
Il seguente testo è un supporto alle esercitazioni: Baralis, Belussi, Psaila, 'Basi di dati: temi d'esame svolti', Esculapio, 2000.
Sono disponibili copie dei lucidi utilizzati nelle lezioni, esempi di scritti di esame ed esercizi, e i manuali per le esercitazioni di laboratorio. Tutto il materiale didattico è scaricabile dal sito web del corso o attraverso il Portale.
The reference book, covering the majority of the course topics, is: Atzeni, Ceri, Fraternali, Paraboschi, Torlone, 'Basi di dati', V edizione, McGraw Hill, 2018.
The following book supports practices: Baralis, Belussi, Psaila, "Basi di dati: temi d’esame svolti", Esculapio, 2000. Copies of the slides used during the lectures, examples of written exams and exercises, and manuals for the activities in the laboratory will be made available. All teaching material is downloadable from the course website or the Portal.
Modalità di esame: Prova scritta tramite PC con l'utilizzo della piattaforma di ateneo; Elaborato progettuale individuale;
L'esame è costituito da una prova scritta della durata 90 minuti e dalla valutazione delle relazioni sulle esercitazioni individuali assegnate durante il corso.
La prova scritta sarà finalizzata a valutare
- il livello di conoscenza degli operatori dell'algebra relazionale, la capacità di formulare interrogazioni in linguaggio SQL, la conoscenza dei fondamenti di progettazione di basi di dati relazionali e le procedure per la gestione attiva di una base di dati relazionale
- l'abilità pratica di interagire con i principali sistemi per la gestione delle basi di dati presenti sul mercato, applicare il linguaggio SQL per rispondere a richieste mirate e integrare dichiarazioni SQL all'interno dei più comuni linguaggi di programmazione.
La valutazione delle relazioni sulle esercitazioni individuali consegnate sarà finalizzata a valutare l'abilità di
- progettare e sviluppare applicazioni Web che interagiscono con una base di dati relazionale,
- formulare interrogazioni in algebra relazionale e nel linguaggio SQL,
- progettare basi di dati relazionali e procedure per la gestione attiva delle basi di dati (trigger).
Lo prova scritta è costituita da domande di teoria a risposta chiusa e esercizi che prevedono una risposta aperta e/o risposta chiusa. Il valore di ogni esercizio/domanda sarà indicato prima del testo dell’esercizio/domanda. Le risposte errate alle domande a risposta chiusa possono comportare una penalizzazione. Le risposte mancanti valgono zero.
La prova scritta comprende:
- 3 domande a risposta chiusa relative ai principali argomenti trattati durante il corso (teoria del modello relazionale, gestione dei vincoli d’integrità, gestione delle viste, gestione delle transazioni, sicurezza, SQL per le applicazioni (connessione alla base di dati, JDBC, HTML, PHP)) (max 3 punti)
- 1-3 esercizi relativi alla scrittura di interrogazioni di accesso ai dati di una base di dati mediante algebra relazionale con risposta aperta e/o risposta chiusa (max 4 punti)
- 2-3 esercizi relativi alla scrittura di interrogazioni di accesso ai dati mediante linguaggio SQL con risposta aperta e/o risposta chiusa (max 11 punti)
- 1-2 esercizi relativi alla scrittura di trigger con risposta aperta e/o risposta chiusa (max 3 punti)
- 2-3 esercizi sulla progettazione concettuale di una base di dati relazionale con risposta aperta e/o risposta chiusa (max 7 punti).
- 1-2 esercizi sulla progettazione logica di una base di dati relazionale e la definizione dei vincoli d'integrità referenziale con risposta aperta e/o risposta chiusa (max 3 punti).
Durante la prova scritta gli studenti non possono consultare libri o appunti e non possono utilizzare dispositivi elettronici di nessun tipo, a parte quello utilizzato per l’esame stesso.
Le relazioni individuali assegnate durante il corso sono facoltative (max 2 punti).
Il voto finale è definito in base alla valutazione della prova scritta e delle relazioni delle esercitazioni individuali assegnate durante il corso. Le relazioni delle esercitazioni individuali sono considerate solo se la valutazione della prova scritta è pari o superiore a 18. La valutazione degli esercizi si basa sulla correttezza del risultato e sull'appropriatezza delle metodologie di risoluzione applicate.
Exam: Computer-based written test using the PoliTo platform; Individual project;
The exam includes a written part, which lasts 90 minutes, and the evaluation of the report on the individual practices assigned during the course.
The written part will assess
- the knowledge of the relational algebra operators, the capability to write queries in SQL, the key aspects to design relational databases, and active database systems.
- the working knowledge of the SQL language and how to integrate SQL statements into a programming language, and the major relational database systems.
The individual practices’ reports will assess
- the ability to design and develop a web application to access a database.
- the ability to write queries in both relational algebra and SQL.
- the ability to design relational databases and active database systems.
The written part consists of closed-ended theoretical questions and a set of exercises that require to answer open-ended question and/or a closed-ended question. The points assigned to each exercise/question will be specified within the text of the exercise/question. Wrong answers to closed-ended questions may cause a penalty (negative points). Missing answers yield zero points (no penalty).
The written part consists of
- 3 closed-ended questions on the main course topics (theory of relation model, integrity constraints’ management, materialized views’ management, transactions’ management, security, SQL for applications (connection to databases, JDBC, HTML, PHP)) (max 3 points)
- 1-3 exercises on writing queries to access data in a relational database through relational algebra with open-ended questions and/or closed-ended questions. (max 4 points)
- 2-3 exercises on writing queries to access data in a relational database through SQL language with open-ended questions and/or closed-ended questions. (max 11 points)
- 1-2 exercises on triggers with open-ended questions and/or closed-ended questions (max 3 points)
- 2-3 exercises on conceptual database design with open-ended questions and/or closed-ended questions (max 7 points)
- 1-2 exercises on logical database design and on the definition of referential integrity constraints with open-ended questions and/or closed-ended questions (max 3 points)
Students are not allowed to use textbooks, notes, or additional electronic devices apart from the one used for the exam.
The delivery of individual practices’ reports during the course is optional (max 2 points).
The final exam grade is defined by evaluating both the written part and the reports. The grade of the reports is considered only if the written part evaluation is 18 or above. Exercises are evaluated according to the correctness of the proposed solution and to the appropriateness of the adopted methodologies of resolution.
Modalità di esame: Test informatizzato in laboratorio; Prova scritta tramite PC con l'utilizzo della piattaforma di ateneo; Elaborato progettuale individuale;
L'esame è costituito da una prova scritta della durata 90 minuti e dalla valutazione delle relazioni sulle esercitazioni individuali assegnate durante il corso.
La prova scritta sarà finalizzata a valutare
- il livello di conoscenza degli operatori dell'algebra relazionale, la capacità di formulare interrogazioni in linguaggio SQL, la conoscenza dei fondamenti di progettazione di basi di dati relazionali e le procedure per la gestione attiva di una base di dati relazionale
- l'abilità pratica di interagire con i principali sistemi per la gestione delle basi di dati presenti sul mercato, applicare il linguaggio SQL per rispondere a richieste mirate e integrare dichiarazioni SQL all'interno dei più comuni linguaggi di programmazione.
La valutazione delle relazioni sulle esercitazioni individuali consegnate sarà finalizzata a valutare l'abilità di
- progettare e sviluppare applicazioni Web che interagiscono con una base di dati relazionale,
- formulare interrogazioni in algebra relazionale e nel linguaggio SQL,
- progettare basi di dati relazionali e procedure per la gestione attiva delle basi di dati (trigger).
Lo prova scritta è costituita da domande di teoria a risposta chiusa e esercizi che prevedono una risposta aperta e/o risposta chiusa. Il valore di ogni esercizio/domanda sarà indicato prima del testo dell’esercizio/domanda. Le risposte errate alle domande a risposta chiusa possono comportare una penalizzazione. Le risposte mancanti valgono zero.
La prova scritta comprende:
- 3 domande a risposta chiusa relative ai principali argomenti trattati durante il corso (teoria del modello relazionale, gestione dei vincoli d’integrità, gestione delle viste, gestione delle transazioni, sicurezza, SQL per le applicazioni (connessione alla base di dati, JDBC, HTML, PHP)) (max 3 punti)
- 1-3 esercizi relativi alla scrittura di interrogazioni di accesso ai dati di una base di dati mediante algebra relazionale con risposta aperta e/o risposta chiusa (max 4 punti)
- 2-3 esercizi relativi alla scrittura di interrogazioni di accesso ai dati mediante linguaggio SQL con risposta aperta e/o risposta chiusa (max 11 punti)
- 1-2 esercizi relativi alla scrittura di trigger con risposta aperta e/o risposta chiusa (max 3 punti)
- 2-3 esercizi sulla progettazione concettuale di una base di dati relazionale con risposta aperta e/o risposta chiusa (max 7 punti).
- 1-2 esercizi sulla progettazione logica di una base di dati relazionale e la definizione dei vincoli d'integrità referenziale con risposta aperta e/o risposta chiusa (max 3 punti).
Durante la prova scritta gli studenti non possono consultare libri o appunti e non possono utilizzare dispositivi elettronici di nessun tipo, a parte quello utilizzato per l’esame stesso.
Le relazioni individuali assegnate durante il corso sono facoltative (max 2 punti).
Il voto finale è definito in base alla valutazione della prova scritta e delle relazioni delle esercitazioni individuali assegnate durante il corso. Le relazioni delle esercitazioni individuali sono considerate solo se la valutazione della prova scritta è pari o superiore a 18. La valutazione degli esercizi si basa sulla correttezza del risultato e sull'appropriatezza delle metodologie di risoluzione applicate.
Exam: Computer lab-based test; Computer-based written test using the PoliTo platform; Individual project;
The exam includes a written part, which lasts 90 minutes, and the evaluation of the report on the individual practices assigned during the course.
The written part will assess
- the knowledge of the relational algebra operators, the capability to write queries in SQL, the key aspects to design relational databases, and active database systems.
- the working knowledge of the SQL language and how to integrate SQL statements into a programming language, and the major relational database systems.
The individual practices’ reports will assess
- the ability to design and develop a web application to access a database.
- the ability to write queries in both relational algebra and SQL.
- the ability to design relational databases and active database systems.
The written part consists of closed-ended theoretical questions and a set of exercises that require to answer open-ended question and/or a closed-ended question. The points assigned to each exercise/question will be specified within the text of the exercise/question. Wrong answers to closed-ended questions may cause a penalty (negative points). Missing answers yield zero points (no penalty).
The written part consists of
- 3 closed-ended questions on the main course topics (theory of relation model, integrity constraints’ management, materialized views’ management, transactions’ management, security, SQL for applications (connection to databases, JDBC, HTML, PHP)) (max 3 points)
- 1-3 exercises on writing queries to access data in a relational database through relational algebra with open-ended questions and/or closed-ended questions. (max 4 points)
- 2-3 exercises on writing queries to access data in a relational database through SQL language with open-ended questions and/or closed-ended questions. (max 11 points)
- 1-2 exercises on triggers with open-ended questions and/or closed-ended questions (max 3 points)
- 2-3 exercises on conceptual database design with open-ended questions and/or closed-ended questions (max 7 points)
- 1-2 exercises on logical database design and on the definition of referential integrity constraints with open-ended questions and/or closed-ended questions (max 3 points)
Students are not allowed to use textbooks, notes, or additional electronic devices apart from the one used for the exam.
The delivery of individual practices’ reports during the course is optional (max 2 points).
The final exam grade is defined by evaluating both the written part and the reports. The grade of the reports is considered only if the written part evaluation is 18 or above. Exercises are evaluated according to the correctness of the proposed solution and to the appropriateness of the adopted methodologies of resolution.