mail unicampaniaunicampania webcerca

    Stefano MARRONE

    Insegnamento di BASI DI DATI E SISTEMI INFORMATIVI

    Corso di laurea in MATEMATICA

    SSD: ING-INF/05

    CFU: 8,00

    ORE PER UNITÀ DIDATTICA: 68,00

    Periodo di Erogazione: Primo Semestre

    Italiano

    Lingua di insegnamento

    ITALIANO

    Contenuti

    Modello Relazionale. Linguaggio SQL e PostgreSQL. Progettazione di Basi di Dati. Sistemi Informativi e data warehousing. Linguaggio Python ed interfacciamento a basi di dati.

    Testi di riferimento

    Basi di dati 5/ed - Paolo Atzeni, Stefano Ceri, Piero Fraternali, Stefano Paraboschi e Riccardo Torlone - McGraw-Hill
    Sistemi Informativi Aziendali: Struttura e Applicazioni - Pighin, Marzona, Prentice Hall
    altro materiale fornito dal docente

    Obiettivi formativi

    Conoscenza e capacità di comprensione (knowledge and understanding):
    Conoscenze dei principi dell’organizzazione, manipolazione ed interfacciamento delle basi di dati (DB). Studio delle metodologie di sviluppo dei DB. Introduzione al DataWarehousing (con cenni alle problematiche di data mining e big data).

    Capacità di applicare conoscenza e comprensione (applying knowledge and understanding):
    Capacità di analizzare semplici domini applicativi e di definire modelli per la progettazione di DB relazionali. Capacità di scrivere query di media-bassa complessità in SQL per l’estrazione di informazioni nascoste nei dati. Capacità di sviluppare semplici programmi applicativi in linguaggio Python per l’interfacciamento in lettura e scrittura verso un DB relazionale. Uso di tecnologie DBMS standard per DB relazionali (Postgresql o simili). Introduzione ai database non relazionali.

    Abilità comunicative (communication skills):
    Capacità di motivare le scelte progettuali ed implementative effettuate in modo logico ed argomentato. Capacità di usare la terminologia propria delle basi di dati.

    Al termine dell'insegnamento lo studente dovrà dimostrare:
    - di saper progettare semplici basi di dati;
    - di saper far uso dei costrutti del linguaggio SQL nella creazione, popolamento ed interrogazione dei DB;
    - di avere compreso i meccanismi di base del modello relazionale e di esprimerne le proprietà teoriche nonché le tecniche, i metodi ed i linguaggi della progettazione.
    Capacità di apprendere (learnings skills):
    Capacità di integrare lo studio dei linguaggi proposti con riferimenti esterni in grado di dettagliare quanto presentato a corso e di fornire supporto alla fase di debugging.

    Prerequisiti

    Fondamenti di Informatica (conoscenza di un linguaggio di programmazione procedurale).

    Metodologie didattiche

    56 ore di lezione, 12 ore di attività di laboratorio. Data la presenza di una prova d’esame pratica è consigliata la frequenza alle lezioni di laboratorio.

    Metodi di valutazione

    L’esame si compone di due prove: una prova al calcolatore ed una prova orale.
    La prova al calcolatore mira ad accertarsi della competenze legate all’analisi ed allo sviluppo di query in SQL e di programmi in Python corretti. Si chiederà lo sviluppo di alcune query su una base di dati esistente e di semplici programmi di interfacciamento: la prova viene superata se quanto scritto è corretto e soddisfa i requisiti richiesti nella traccia.
    La prova orale mira a valutare le capacità di ragionamento sugli argomenti del corso la verifica delle conoscenze dello studente anche attraverso il collegamento di contenuti trasversali e la capacità espositiva.
    Non sono previste prove di esonero durante il corso.
    Il voto finale sarà espresso in trentesimi.
    Gli studenti dovranno presentarsi alla prova muniti di documento di riconoscimento. Non sarà consentita la consultazione di materiale didattico e/o elettronico personale (smartphone, tablet, etc..)

    Altre informazioni

    Verrà caricato on-line il materiale didattico nonché gli esempi mostrati al corso e le esercitazioni di laboratorio proposte.

    Programma del corso

    Introduzione
    Definizione di sistemi informativi, informazioni e dati. Basi di dati e sistemi di gestione di basi di dati. Modelli dei dati. Schemi e istanze. Linguaggi per le basi di dati. Utenti e progettisti. Vantaggi e svantaggi dei DBMS.

    Il Modello Relazionale
    Modelli logici nei sistemi di basi di dati. Relazioni e tabelle. Relazioni con attributi. Relazioni e basi di dati. Informazione incompleta e valori nulli. Vincoli di Integrità (vincoli di tupla, chiavi e valori nulli, vincoli di integrità referenziale).

    Algebra Relazionale
    Operatori di unione, intersezione e differenza. Ridenominazione. Selezione. Proiezione. Join (naturale, completo ed incompleto, esterno, prodotto cartesiano, theta-join ed equi-join). Interrogazioni. Equivalenze di espressioni algebriche.

    Linguaggio SQL
    Standardizzazione. Domini elementari. Definizione di schema. Definizione delle tabelle. Definizione dei domini. Specifica dei valori di default. Vincoli intrarelazionali e interrelazionali. Interrogazioni semplici. Gestione dei valori nulli. Join in SQL. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni di tipo insiemistico. Interrogazioni nidificate. Viste in SQL. Presentazione del software Postgresql.

    Progettazione di Basi di Dati
    Ciclo di vita dei sistemi informativi. Metodologie di progettazione e basi di dati. Il modello Entità – Relazione. Progettazione concettuale. Metodi e tecniche di progettazione logica: ristrutturazione del modello E/R e valutazione delle varianti di progetto. Indici e progettazione fisica di una Base di Dati.

    Sistemi Informativi
    Sistemi operazionali ed informazionali: schema di Anthony e relazione con i diversi tipi di sistemi informativi. Sistemi ERP. Sistemi Informazionali: Data Warehousing. Modello multidimensionale. Elementi di progettazione concettuale e logica nei Datawarehouse (schemi a stella ed a fiocco di neve). Il paradigma NoSQL. Processi di popolamento di una Datawarehouse: il paradigma ETL. Processi di analisi: operatori OLAP (drill down, Roll up, Slice, Dice, Pivot) e principi di data mining (problema della classificazione).

    Linguaggio Python
    Introduzione al linguaggio. Descrizione dei principali elementi linguistici: costrutti, liste, tuple, moduli e funzioni. Interfacciamento a basi di dati. Utilizzo del linguaggio per semplici analisi di tipo statistico.

    English

    Teaching language

    Italian

    Contents

    Relational Model. SQL and PostgreSQL language. Design of Databases. Information Systems and data warehousing. Python language and database interfacing

    Textbook and course materials

    Basi di dati 5/ed - Paolo Atzeni, Stefano Ceri, Piero Fraternali, Stefano Paraboschi e Riccardo Torlone - McGraw-Hill
    Sistemi Informativi Aziendali: Struttura e Applicazioni - Pighin, Marzona, Prentice Hall
    Notes from classes

    Course objectives

    Knowledge and understanding (knowledge and understanding):
    Knowledge of the principles of organization, manipulation and interfacing of databases (DB). Study of DB development methodologies. Introduction to DataWarehousing (with an outline of data mining and big data issues).

    Ability to apply knowledge and understanding (applying knowledge and understanding):
    Ability to analyze simple application domains and to define models for the design of relational DBs. Ability to write medium-low complexity queries in SQL to extract information hidden in the data. Ability to develop simple application programs in Python language for interfacing in reading and writing to a relational DB. Use of standard DBMS technologies for relational DBs (Postgresql or similar). Introduction to non relational databases.

    Communication skills (communication skills):
    Ability to motivate the design and implementation choices made in a logical and argued manner. Ability to use the terminology proper to databases.

    At the end of the course the student must demonstrate:
    - to know how to design simple databases;
    - to be able to make use of the constructs of the SQL language in creating, populating and querying DBs;
    - to have understood the basic mechanisms of the relational model and to express the theoretical properties as well as the design techniques, methods and languages.
    Learning skills (learnings skills):
    Ability to integrate the study of the proposed languages ​​with external references able to detail what was presented in the course and to provide support for the debugging phase.

    Prerequisites

    Fundamentals of Computer Science (knowledge of a procedural programming language).

    Teaching methods

    56 hours of lessons, 12 hours of laboratory work. Given the presence of a practical exam, attendance at laboratory classes is recommended.

    Evaluation methods

    The exam consists of two tests: a computer test and an oral test.
    The computer test aims to ascertain the skills related to the analysis and development of SQL queries and correct Python programs. We will ask for the development of some queries on an existing database and simple interfacing programs: the test is passed if what is written is correct and meets the requirements of the track.
    The oral exam aims at evaluating the reasoning skills on the topics of the course the verification of the student's knowledge also through the connection of transversal contents and the expository capacity.
    There are no exemption tests during the course.
    The final grade will be expressed in thirtieths.
    Students must present themselves for the test with an identification document. It will not be allowed to consult personal educational and / or electronic material (smartphone, tablet, etc.)

    Other information

    The didactic material will be uploaded online as well as the examples shown in the course and the proposed laboratory exercises.

    Course Syllabus

    Introduction
    Definition of information systems, information and data. Data bases and database management systems. Data models. Schemes and instances. Languages ​​for databases. Users and designers. Advantages and disadvantages of DBMS.

    The Relational Model
    Logical models in database systems. Reports and tables. Relations with attributes. Reports and databases. Incomplete information and null values. Integrity Constraints (tuple constraints, keys and null values, referential integrity constraints).

    Relational Algebra
    Merge, intersection and difference operators. Renaming. Selection. Projection. Join (natural, complete and incomplete, external, Cartesian product, theta-join and equi-join). Queries. Equivalences of algebraic expressions.

    SQL language
    Standardization. Elementary domains. Definition of schema. Definition of tables. Definition of domains. Specifying default values. Intrarelational and interrelational constraints. Simple queries. Management of null values. Join in SQL. Aggregated operators. Grouped queries. Set of types of questions. Nested queries. Views in SQL. Presentation of the Postgresql software.

    Design of Databases
    Life cycle of information systems. Design methodologies and databases. The Entity - Relationship model. Conceptual design. Logic design methods and techniques: restructuring of the E / R model and evaluation of the project variants. Indexes and physical design of a database.

    Informative system
    Operational and informational systems: Anthony's scheme and relationship with the different types of information systems. ERP systems. Information Systems: Data Warehousing. Multidimensional model. Elements of conceptual and logical design in Datawarehouses (star and snowflake patterns). The NoSQL paradigm. Population processes of a Datawarehouse: the ETL paradigm. Analysis processes: OLAP operators (drill down, Roll up, Slice, Dice, Pivot) and data mining principles (classification problem).

    Python language
    Introduction to language. Description of the main linguistic elements: constructs, lists, tuples, modules and functions. Interfacing to databases. Use of language for simple statistical analysis.

    facebook logoinstagram buttonyoutube logotype