SlideShare a Scribd company logo
1 of 18
Download to read offline
Corso di Basi di Dati e Laboratorio




 Presentazione del corso di
        Laboratorio
              Alfio Ferrara - Stefano Montanelli




 A.A. 2005/2006             Basi di Dati e Laboratorio   1




Programma

• Il laboratorio è complessivamente
  composto di 48 ore
• E’ previsto lo svolgimento di un progetto
  finale
• Due temi principali:
   – DBMS
         • PostgreSQL
         • MySQL
   – Database e Web
         • Apache
         • PHP

 A.A. 2005/2006             Basi di Dati e Laboratorio   2




Programma

Le tecnologie che verranno illustrate a lezione sono
state selezionate sulla base dei seguenti criteri:

• Soluzioni disponibili per diverse piattaforme
  (e.g., Windows, Linux)
• Soluzioni Open Source
Per la realizzazione del progetto, gli studenti
possono adottare le soluzioni tecnologiche che
ritengono opportune purché esse consentano di
realizzare completamente le specifiche richieste

 A.A. 2005/2006             Basi di Dati e Laboratorio   3




                                                             1
Esercitazioni

• Algebra relazionale
• SQL
• Progettazione di una base di dati
  relazionale
   – Specifica di un problema
   – Definizione del modello E/R
   – Traduzione nel modello relazionale
   – Strumenti CASE per il supporto alla
     progettazione
         •   Caratteristiche degli strumenti CASE
         •   Un prodotto commerciale: ERWin
         •   Un prodotto non commerciale: DbDesigner4
         •   Esempi di progettazione
 A.A. 2005/2006           Basi di Dati e Laboratorio    4




DBMS

• Introduzione
   – Architettura c/s dei DBMS
   – Prodotti a confronto
         •   Oracle
         •   Access
         •   SQLServer
         •   PostgreSQL
         •   MySQL
• MySQL
   – Architettura
   – Creazione di database e utenti
   – Tabelle, chiavi primarie, chiavi esterne
   – Vincoli di integrità referenziale

 A.A. 2005/2006           Basi di Dati e Laboratorio    5




DBMS

• PostgreSQL
   – Architettura
   – Creazione di database e utenti
   – Tabelle, chiavi primarie, chiavi esterne
   – Vincoli di integrità referenziale
• PLSQL ed Embedded SQL
   – Trigger
   – Procedure
   – Funzioni



 A.A. 2005/2006           Basi di Dati e Laboratorio    6




                                                            2
Database e Web

• Introduzione al Web
   – Architettura client-server
   – La condizione stateless
   – Protocolli e standard del Web
         • HTTP
         • HTML
         • XML
   – Funzioni di un browser
   – Prospettive (Web Service e Semantic Web)




 A.A. 2005/2006          Basi di Dati e Laboratorio   7




Database e Web

• Programmazione Web
   – La funzione delle pagine dinamiche
   – Script lato client e script lato server
   – Programmi CGI
   – Uso degli script lato server
   – Tecnologie a confronto
         • PHP
         • ASP
         • JSP
   – Il Web procedurale: ASP.NET
   – Uso degli script lato client
         • Javascript

 A.A. 2005/2006          Basi di Dati e Laboratorio   8




Database e Web

• I Web Server
   – Funzioni di un Web server
   – Servizi e porte di comunicazione
   – Directory di pubblicazione e directory virtuali
   – Tecnologie a confronto
         • Apache
         • Internet Information Services (IIS)
         • Tomcat
   – Configurazione di un server Apache




 A.A. 2005/2006          Basi di Dati e Laboratorio   9




                                                          3
Database e Web
• PHP
   – Introduzione al linguaggio
   – File di configurazione: php.ini
   – Strutture del linguaggio
   – Passaggio di parametri: GET/POST
   – Interazione con database: MySQL e
     PostgreSQL
   – Persistenza di stato: Cookie e Sessioni
   – PEAR
         • Classi astratte per la connessione ad un database
         • Classi per l’interazione con la posta elettronica
   – Supporto per XML
 A.A. 2005/2006           Basi di Dati e Laboratorio          10




DBMS
• PostegreSQL
   – http://www.postgresql.org
   – DBMS relazionale Open Source (licenza BSD)
   – Applicazione Client – Server
   – La distribuzione consiste in un server e una
     applicazione client da riga di comando (psql)
   – Possibilità di usare una GUI per l’amministrazione del
     server (pgAdmin III)
• MySQL
   – http://www.mysql.com
   – DBMS relazionale Open Source (licenza GPL)
   – Applicazione Client – Server
   – La distribuzione consiste in un server e una
     applicazione client da riga di comando (mysql)
   – Possibilità di usare una GUI per l’amministrazione del
     server (phpMyAdmin)

 A.A. 2005/2006           Basi di Dati e Laboratorio          11




PostgreSQL
• Possibilità offerte per l’installazione:
   – Compilazione dei sorgenti
         • Prevalentemente per Linux/MacOSX
   – Utilizzo di una distribuzione binaria
         • Disponibile sia per Linux/MacOSX sia per Windows
   – PostgreSQL può essere installato senza possedere i
     privilegi di root (in una porzione del FileSystem
     completamente accessibile all’utente che esegue
     l’installazione)
• Installare la versione stabile più recente
   – Ad oggi la versione 8.1




 A.A. 2005/2006           Basi di Dati e Laboratorio          12




                                                                   4
PostgreSQL – Linux
   • ./configure
   • Gmake
   • Su
   • Gmake install
   • Adduser postgres
   • Mkdir /usr/local/pgsql/data
   • Chown postgres /usr/local/pgsql/data
   • Su - postgres
   • /usr/local/pgsql/bin/initdb -D
     /usr/local/pgsql/data
   • /usr/local/pgsql/bin/postmaster -D
     /usr/local/pgsql/data > logfile 2>&1&
   • /usr/local/pgsql/bin/createdb test
   • /usr/local/pgsql/bin/psql test




 A.A. 2005/2006             Basi di Dati e Laboratorio          13




PostgreSQL – Windows
• Installare la versione 8.1 supportata nativamente
  da Windows
   – E’ preferibile utilizzare una versione 2K/XP di
     Windows
• Eseguire l’installer e seguire la procedura di
  installazione
   –   Installare come servizio
   –   Creare l’account per l’inizializzazione del servizio
   –   Creare l’utente superuser del DBMS
   –   Impostare il cluster che il DBMS dovrà utilizzare
         • Se non ci sono esigenze particolari, non modificare le opzioni
           di default



 A.A. 2005/2006             Basi di Dati e Laboratorio          14




PostgreSQL

• Account per l’inizializzazione del servizio
   – E’ l’account di sistema che “lancia” il servizio
     PostgreSQL
   – E’ preferibile che non abbia privilegi di
     amministrazione sulla macchina
   – NON è un utente del DBMS
• Superuser del DBMS
   – E’ l’utente con privilegi di amministrazione su
     PostgreSQL
   – E’ inizialmente l’unico utente configurato per
     l’accesso al DBMS

 A.A. 2005/2006             Basi di Dati e Laboratorio          15




                                                                            5
PostgreSQL

• Inizialmente su PostgreSQL sono presenti
  due database (template0, template1) che
  sono i modelli da cui vengono generati
  nuovi database
• Prima connessione al DBMS
      – E’ necessario specificare l’utente e il database
        a cui connettersi
      – psql –U <nomesuperuser> template1




    A.A. 2005/2006        Basi di Dati e Laboratorio   16




MySQL

• Possibilità offerte per l’installazione:
      – Compilazione dei sorgenti
            • Prevalentemente per Linux/MacOSX
      – Utilizzo di una distribuzione binaria
            • Disponibile sia per Linux/MacOSX sia per Windows
• Installare la versione stabile più recente
      – Ad oggi la versione 5.0.15




    A.A. 2005/2006        Basi di Dati e Laboratorio   17




MySQL – Linux
•    groupadd mysql
•    useradd -g mysql mysql
•    gunzip < mysql-VERSION.tar.gz | tar -xvf –
•    cd mysql-VERSION
•    ./configure --prefix=/usr/local/mysql
•    make
•    make install
•    scripts/mysql_install_db
•    chown -R root /usr/local/mysql
•    chown -R mysql /usr/local/mysql/var
•    chgrp -R mysql /usr/local/mysql
•    cp support-files/my-medium.cnf /etc/my.cnf
•    /usr/local/mysql/bin/mysqld_safe --user=mysql &




    A.A. 2005/2006        Basi di Dati e Laboratorio   18




                                                                 6
MySQL – Windows

•       Se si utilizza una versione 2K/XP è
        necessario avere i permessi di
        amministratore
•       Scompattare il file della distribuzione in
        una cartella temporanea
•       Eseguire il file setup.exe e seguire la
        procedura di installazione
      – Se si utilizza una versione 2K/XP,
        selezionare il server mysqld-nt
      – Installare con supporto alle connessioni
        remote

    A.A. 2005/2006        Basi di Dati e Laboratorio       19




MySQL

•       Inizialmente su MySQL è presente il
        database di sistema MySQL che contiene
        tutte le impostazioni del DBMS
•       Prima connessione al DBMS
      – MySQL accetta di default connessione da
        parte di qualsiasi utente
      – L’utente root è creato automaticamente e ha
        privilegi di amministrazione sul DBMS
      –      mysql –u root –p
            • L’opzione –p viene specificata se root ha una
              password

    A.A. 2005/2006        Basi di Dati e Laboratorio       20




Web Server
• Apache – HTTP server
      – http://www.apache.org/
      – Il server Apache deve la sua diffusione all’elevata
        flessibilità nelle opzioni di configurazione
      – Il file httpd.conf contiene le direttive di configurazione
        del server
• Installare la versione stabile più recente
      – Ad oggi la versione 2.0.55




    A.A. 2005/2006        Basi di Dati e Laboratorio       21




                                                                     7
Apache – Linux
• ./configure –prefix=/usr/local/apache --enable-
  module=rewrite --enable-shared=rewrite --enable-
  module=proxy --enable-shared=proxy
• make
• make install




 A.A. 2005/2006       Basi di Dati e Laboratorio   22




Apache – Windows

• Se si utilizza una versione 2K/XP è
  necessario avere i permessi di
  amministratore
• Eseguire l’installer scaricato dal sito e
  seguire la procedura di installazione
   – Installare Apache come servizio
   – Specificare nome del server, dominio, e-mail
     dell’amministratore del Web Server




 A.A. 2005/2006       Basi di Dati e Laboratorio   23




Linguaggi

• PHP
   – http://www.php.net/
   – Linguaggio di scripting opensource
   – La versione 5 introduce nel linguaggio il
     paradigma ad oggetti
   – Retro-compatibilità largamente garantita, con
     alcune significative eccezioni:
         • Supporto XML
• Installare la versione stabile più recente
   – Ad oggi la versione 5.0.4


 A.A. 2005/2006       Basi di Dati e Laboratorio   24




                                                        8
PHP – Linux
• ./configure --with-apxs=/usr/bin/apxs --
  prefix=/usr/local/php-4.3.0/ --with-pgsql --with-
  dom --with-dom-xslt --with-dom-exslt --with-config-
  file-path=/etc/php/ --enable-track-vars --enable-
  trans-sid --enable-ftp --with-wddx --enable-ctype -
  -with-gd --with-freetype-dir=/usr --with-zlib-
  dir=/usr --enable-gd-native-ttf --with-expat-
  dir=/usr --with-imagemagick --with-recode --with-
  gettext
• make
• make install




 A.A. 2005/2006        Basi di Dati e Laboratorio                 25




PHP – Windows
• Scaricare la versione binaria priva di installer e
  scompattare il package in una cartella temporanea
• Creare la cartella di installazione di PHP (e.g.,
  c:php), di seguito chiamata PHPinstallDIR.
• Leggere il file install.txt e seguire la procedura di
  installazione manuale in modalità SAPI module per
  Apache2
• Copiare le seguenti librerie in PHPinstallDIR:
   –   fdftk.dll                            –   msql.dll
   –   fribidi.dll                          –   ntwdblib.dll
   –   gds32.dll                            –   php5apache2.dll
   –   libeay32.dll                         –   php5ts.dll
   –   libmhash.dll                         –   ssleay32.dll
   –   libmysql.dll                         –   yaz.dll
 A.A. 2005/2006        Basi di Dati e Laboratorio                 26




PHP - Windows

• Copiare il file php.ini-recommended in
  PHPinstallDIR, rinominarlo come php.ini e
  modificarlo come segue:
   – Modificare le direttive
         • include_path = quot;PHPinstallDIRincludesquot;
         • extension_dir = quot;PHPinstallDIRextensionsquot;
   – Abilitare le seguenti estensioni
         • extension=php_mysql.dll
         • extension=php_pgsql.dll
         • extension=php_xsl.dll
• Copiare il contenuto della cartella
  extensions in PHPinstallDIRextensions
 A.A. 2005/2006        Basi di Dati e Laboratorio                 27




                                                                       9
PHP – Windows

 • Configurare il server Apache per il
   supporto al PHP come modulo
    – Aggiungere al file httpd.conf di Apache le
      seguenti righe:
          • LoadModule php5_module
            quot;PHPinstallDIR/php5apache2.dllquot;
          • AddType application/x-httpd-php .php
          • PHPIniDir quot;PHPinstallDIRquot;

 • Aggiungere PHPinstallDIR alla variabile di
   sistema path


  A.A. 2005/2006        Basi di Dati e Laboratorio      28




Progetto

 Applicazione di basi di dati per la gestione di
                 aste on-line
Una società commerciale intende offrire ai propri clienti
registrati un'applicazione Web che permetta loro di gestire la
compravendita di oggetti mediante aste on-line




  A.A. 2005/2006        Basi di Dati e Laboratorio      29




Descrizione
• Come in quelle tradizionali, anche nelle aste on-line la
  caratterizzazione del servizio sta nel fatto che il prezzo di
  vendita di un oggetto deriva da una contrattazione in cui
  l'acquirente decide il prezzo che è disposto a pagare
• L'oggetto viene messo all'asta dal venditore ad un prezzo
  minimo fissato (base d'asta), al di sotto del quale non vi
  saranno assegnazioni
• Nel caso in cui il valore minimo venga superato, chi ha
  fatto l'offerta più elevata risulta vincitore e si vede
  assegnato l'oggetto
• Esiste anche un tempo massimo di durata dell'asta,
  superato il quale le contrattazioni si fermano e vengono
  valutate le condizioni d'assegnazione
• Durante il periodo di contrattazione, i potenziali acquirenti
  possono intervenire nella contrattazione rilanciando il
  prezzo e cercando di aggiudicarsi l'oggetto
  A.A. 2005/2006        Basi di Dati e Laboratorio      30




                                                                  10
Descrizione
• L'asta può riguardare un oggetto di qualsiasi genere. Per
  questo motivo gli oggetti messi all'asta vengono
  classificati rispetto ad una tassonomia di categorie che
  permettono una rapida ed efficiente consultazione degli
  oggetti attualmente disponibili per la contrattazione
• In seguito ad un acquisto, l’acquirente è chiamato ad
  esprimere un giudizio relativamente alla propria
  soddisfazione in merito alla transazione effettuata. Tale
  giudizio ha lo scopo di valutare il comportamento dei
  venditori e contribuisce a delineare la reputazione di
  ciascuno di essi
• Tutte le contrattazioni avvengono in valuta EURO
• Sono previste le seguenti categorie d’utenza
   – Utenti non registrati
   – Utenti registrati
   – Amministratori

 A.A. 2005/2006              Basi di Dati e Laboratorio            31




Specifiche essenziali

• Utenti non registrati. Funzionalità
  minime:
   – Scorrere la tassonomia delle categorie di
     oggetti in vendita
   – Consultare l'elenco degli oggetti all'asta
   – NON sono autorizzati a presentare offerte
     d'acquisto
   – NON possono visionare i dettagli relativi ad
     un'asta (e.g., base d'asta, ultima offerta, nome
     del venditore, scadenza del periodo
     contrattazione)

 A.A. 2005/2006              Basi di Dati e Laboratorio            32




Specifiche essenziali
• Utenti registrati. Sono caratterizzati da
  informazioni anagrafiche (e.g., nome, cognome,
  indirizzo) e tecniche (e.g., codice identificativo,
  username, password). Funzionalità minime:
   – Iniziare una nuova asta
        • Definisce la base d’asta
        • Definisce i termini del periodo di contrattazione
        • Colloca l'oggetto all'asta in una delle categorie di vendita
          previste dalla tassonomia
   – Partecipare ad un'asta
        • Visiona lo stato corrente di un oggetto all'asta (e.g., base
          d'asta, venditore, termini di contrattazione, ultima offerta)
        • Rilancia le ultime offerte. Rilancio minimo di almeno 1 EURO
          rispetto alla precedente ultima offerta

 A.A. 2005/2006              Basi di Dati e Laboratorio            33




                                                                          11
Specifiche essenziali

• Utenti registrati. Funzionalità minime:
   – Esprimere giudizi sulle contrattazioni concluse
         • Giudizio espresso mediante intero 1 ≤ V ≤ 5 (V=1
           soddisfazione minima – V=5 soddisfazione
           massima) e un commento testuale a discrezione
           dell'acquirente
   – Specificare interessi
         • Selezionando dalla tassonomia una o più categorie
           di vendita
         • Un utente può rilanciare un'offerta per qualsiasi
           oggetto all'asta indipendentemente dagli interessi
           dichiarati


 A.A. 2005/2006          Basi di Dati e Laboratorio       34




Specifiche essenziali

• Amministratori. Funzionalità minime:
   – Aggiornamento della tassonomia delle
     categorie di vendita
         • Aggiunta di categorie
         • Modifica di categorie
         • Cancellazione di categorie
   – Gestione degli utenti “maliziosi” sulla base
     della loro reputazione
         • La reputazione si misura con la media aritmetica
           dei giudizi ricevuti
         • L'amministratore può decidere di disabilitare gli
           utenti con reputazione R < 2

 A.A. 2005/2006          Basi di Dati e Laboratorio       35




Specifiche essenziali

• Amministratori. Funzionalità minime:
   – Storico aste
         • Visionare per ogni utente registrato le offerte da lui
           presentate (raggruppate per oggetto)
         • Visionare per ogni oggetto, la sequenza
           cronologica di offerte ricevute
         • L'elenco delle transazioni concluse




 A.A. 2005/2006          Basi di Dati e Laboratorio       36




                                                                    12
Specifiche essenziali

• Ulteriori vincoli:
  – La cancellazione di una categoria implica la
    cancellazione di tutte le corrispondenti sotto-
    categorie
  – Non è possibile cancellare una categoria se
    esistono oggetti all'asta appartenenti a quella
    categoria
  – Non possono esistere due categorie con il
    medesimo nome



 A.A. 2005/2006       Basi di Dati e Laboratorio    37




Specifiche essenziali
• Ulteriori vincoli:
   – In ogni momento il venditore può ridurre la base d'asta
   – Durante il periodo di contrattazione, il venditore NON
     può ritirare un oggetto dall'asta e NON può aumentare
     la base d'asta
   – Durante il periodo di contrattazione, il venditore può
     visualizzare la sequenza cronologica e l'entità delle
     offerte ricevute
   – Al termine del periodo di contrattazione, se la base
     d'asta non è stata raggiunta, il venditore può decidere
     di ritirare l'oggetto dall'asta o di modificare la base
     d'asta e i termini di contrattazione a suo piacimento

 A.A. 2005/2006       Basi di Dati e Laboratorio    38




Specifiche essenziali

• Ulteriori vincoli:
   – Gli oggetti in vendita all'asta sono associati ad
     un'immagine e ad una descrizione testuale
   – Il termine della contrattazione deve essere
     fissato con una data e un'orario
   – Un oggetto NON può essere collocato in più di
     una categoria di vendita
   – Un utente registrato NON può presentare
     offerte per oggetti che lui stesso ha messo
     in vendita

 A.A. 2005/2006       Basi di Dati e Laboratorio    39




                                                               13
Specifiche aggiuntive
• La tassonomia delle categorie di vendita è
  specificata mediante un file XML il cui schema è
  descritto nel file categoria.xsd
   – Le categorie sono organizzate in una gerarchia nella
     quale ogni categoria può avere N sotto-categorie
     distribuite su M livelli, con N,M ∈N.




 A.A. 2005/2006       Basi di Dati e Laboratorio    40




Specifiche aggiuntive
• Funzionalità previste:
   – Acquisizione della tassonomia delle categorie di
     vendita. L'applicazione Web deve permettere
     all'amministratore l'acquisizione un file XML conforme
     allo schema categoria.xsd da cui derivare la
     tassonomia delle categorie che verrà utilizzata per
     classificare gli oggetti in vendita
   – Esportazione della tassonomia delle categorie di
     vendita. L'applicazione deve permettere
     all'amministratore la memorizzazione della
     tassonomia delle categorie in un file XML conforme
     allo schema categoria.xsd


 A.A. 2005/2006       Basi di Dati e Laboratorio    41




Specifiche aggiuntive
• categoria.xsd
 <?xml version=quot;1.0quot; encoding=quot;ISO-8859-1quot; ?>
 <xs:schema
     xmlns:xs=quot;http://www.w3.org/2001/XMLSchemaquot;>
 <xs:element name=quot;namequot; type=quot;xs:stringquot;/>
 <xs:element name=quot;descriptionquot; type=quot;xs:stringquot;/>
 <xs:attribute name=quot;categoryidquot; type=quot;xs:stringquot;/>
 <xs:element name=quot;categoryquot;>
 <xs:complexType><xs:sequence>
   <xs:element ref=quot;namequot;/>
   <xs:element ref=quot;descriptionquot; minOccurs=quot;0quot;/>
   <xs:element ref=quot;categoryquot; minOccurs=quot;0quot;
                                maxOccurs=quot;unboundedquot; />
 </xs:sequence>
 <xs:attribute ref=quot;categoryidquot; use=quot;requiredquot;/>
 </xs:complexType></xs:element></xs:schema>
 A.A. 2005/2006       Basi di Dati e Laboratorio    42




                                                              14
Specifiche aggiuntive
• Esempio di file XML conforme a categoria.xsd
 <?xml version=quot;1.0quot; encoding=quot;ISO-8859-1quot;?>
 <category categoryid=quot;Aquot;
    xmlns:xsi=quot;http://www.w3.org/2001/XMLSchema-instancequot;
    xsi:noNamespaceSchemaLocation=quot;categoria.xsdquot;>
  <name>Example A</name>
  <description>Long description</description>
  <category categoryid=quot;Bquot;>
   <name>Example B</name>
   <description>Long description</description>
  </category>
  <category categoryid=quot;Cquot;>
   <name>Example C</name>
   <description>Long description</description>
  </category>
 </category>
 A.A. 2005/2006             Basi di Dati e Laboratorio            43




Specifiche aggiuntive
• Funzionalità previste
   – Navigazione per similarità della tassonomia di
     categorie. Dato un prodotto, l’applicazione deve
     permettere ad un qualsiasi utente di visualizzare un
     elenco di prodotti simili con associata una misura di
     similarità con il prodotto indicato. La similarità tra due
     prodotti viene calcolata mediante euristiche basate
     sulle categorie di appartenenza:
         • due oggetti della stessa categoria hanno similarità massima
         • la similarità fra oggetti di diverse categorie è proporzionale
           alla lunghezza della porzione di albero da attraversare per
           transitare da una categoria all’altra



 A.A. 2005/2006             Basi di Dati e Laboratorio            44




Specifiche aggiuntive

• Esempi di similarità                             Sim(D,E) = Sim(B,C)

                                                   Sim(D,E) > Sim (D,C)




 A.A. 2005/2006             Basi di Dati e Laboratorio            45




                                                                            15
Specifiche aggiuntive

• Si richiede:
   – la definizione dell’algoritmo e delle funzioni
     necessarie a implementare le euristiche
     presentate definendo anche le necessarie
     misure di similarità
   – l’implementazione del meccanismo e
     dell’interfaccia di navigazione fra gli oggetti
     d’asta basati sulla valutazione della similarità




 A.A. 2005/2006        Basi di Dati e Laboratorio      46




Specifiche aggiuntive
• Funzionalità previste
   – Notifica di nuove aste. Quando un oggetto viene
     inserito in una categoria C per la vendita all'asta, tutti
     gli utenti interessati a C riceveranno automaticamente
     una email che li informa della nuova asta e dei relativi
     dettagli (e.g., base d'asta, venditore, termini di
     contrattazione)
   – Notifica di nuove offerte. Quando un'offerta O viene
     rilanciata con una nuova offerta, l'utente che ha
     presentato O viene automaticamente notificato via
     email del fatto che la sua offerta è stata superata.
     Nella email vengono riportati i dettagli della nuova
     offerta


 A.A. 2005/2006        Basi di Dati e Laboratorio      47




Indicazioni per la discussione

• In sede di discussione del progetto è
  necessario considerare le seguenti
  indicazioni:
   – Creare almeno un utente amministratore
   – Creare almeno un utente registrato
   – (Per coloro che implementano le specifiche
     aggiuntive) Preparare un file XML conforme
     allo schema categoria.xsd contenente
     una tassonomia di categorie di vendita che
     contenga almeno 20 categorie distribuite su 5
     livelli

 A.A. 2005/2006        Basi di Dati e Laboratorio      48




                                                                  16
Valutazione
• I progetti validi vengono valutati in modo
  differente in base alle funzionalità sviluppate:
   – Range di valutazione -2 / +3. Progetti che realizzano
     correttamente TUTTE le specifiche essenziali
   – Range di valutazione -2 / +5. Progetti che, oltre alle
     specifiche essenziali, realizzano correttamente TUTTE
     le specifiche aggiuntive
• Per la realizzazione del progetto, gli studenti
  possono adottare le soluzioni tecnologiche
  che ritengono opportune purché esse
  consentano di realizzare completamente le
  specifiche richieste

 A.A. 2005/2006           Basi di Dati e Laboratorio            49




Svolgimento
• Il progetto è obbligatorio e costituisce parte
  integrante dell’esame
• Lo sviluppo dell’interfaccia Web è una componente
  obbligatoria
• Il progetto deve essere funzionante in sede d’esame,
  avvalendosi di un calcolatore portatile o on-line
• Il progetto può essere svolto in gruppi non superiori
  alle tre unità. Per la valutazione dell’elaborato avrà
  luogo un apposito colloquio a cui tutti i membri del
  gruppo sono tenuti a partecipare
• I progetti sufficienti avranno validità UN ANNO a
  decorrere dall'appello di consegna
• Utilizzare la mailing list BDLAB per scambiarsi
  considerazioni, dubbi, perplessità
 A.A. 2005/2006           Basi di Dati e Laboratorio            50




Materiale da consegnare
• Documentazione tecnica, in cui sono descritte in
  maniera esauriente le scelte di progettazione concettuale
  e di progettazione logica della base di dati e gli aspetti
  metodologici
   – Schema concettuale ER della base di dati
   – Schema relazionale della base di dati
   – Esauriente descrizione delle funzioni realizzate, l'elenco dei
     prodotti software e dei linguaggi utilizzati
• Manuale utente, comprendente le istruzioni d'uso e le
  note tecniche relative all'installazione dell'applicazione e
  alla dotazione software necessaria per il corretto
  funzionamento
• Prodotti software, comprendenti il dump SQL della base
  di dati e TUTTI i sorgenti che costituiscono il progetto

 A.A. 2005/2006           Basi di Dati e Laboratorio            51




                                                                      17
Materiale da consegnare

• La documentazione tecnica e il manuale
  utente dell'applicazione devono essere
  consegnati sia in formato cartaceo che in
  formato elettronico
• I prodotti software devono essere
  consegnati in formato elettronico (floppy
  disk o cd-rom)




 A.A. 2005/2006    Basi di Dati e Laboratorio   52




Materiale da consegnare

• Tutto il materiale deve essere consegnato
  in una busta chiusa:
   – Indicare sulla busta: Progetto di Basi di dati
       e Laboratorio 2005/2006
   – Specificare nome, cognome, matricola,
     indirizzo di posta elettronica di ciascun
     componente del gruppo




 A.A. 2005/2006    Basi di Dati e Laboratorio   53




Modalità di consegna

• Il progetto deve essere consegnato il
  giorno stesso dell'appello scritto d'esame
  ai docenti presenti in aula
   – Per coloro che hanno sostenuto i compitini
     l’ultima scadenza per la consegna è l’appello
     di aprile
• I progetti consegnati saranno corretti
  secondo calendario di discussione che
  verrà pubblicato per ogni appello d'esame
  sul sito Web del corso
   – http://islab.dico.unimi.it/basi/
 A.A. 2005/2006    Basi di Dati e Laboratorio   54




                                                      18

More Related Content

What's hot

Apache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e https
Apache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e httpsApache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e https
Apache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e httpsFulvio Corno
 
Build a SQL Server machine - the right way (Italian)
Build a SQL Server machine - the right way (Italian)Build a SQL Server machine - the right way (Italian)
Build a SQL Server machine - the right way (Italian)Danilo Dominici
 
PostgreSQL: Prima configurazione
PostgreSQL: Prima configurazionePostgreSQL: Prima configurazione
PostgreSQL: Prima configurazioneEnrico Pirozzi
 
Installing Apache tomcat with Netbeans
Installing Apache tomcat with NetbeansInstalling Apache tomcat with Netbeans
Installing Apache tomcat with NetbeansDavide Nardone
 
Novità di SQL Server 2017
Novità di SQL Server 2017Novità di SQL Server 2017
Novità di SQL Server 2017Gianluca Hotz
 

What's hot (7)

Apache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e https
Apache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e httpsApache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e https
Apache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e https
 
Apache HTTP Server
Apache HTTP ServerApache HTTP Server
Apache HTTP Server
 
Build a SQL Server machine - the right way (Italian)
Build a SQL Server machine - the right way (Italian)Build a SQL Server machine - the right way (Italian)
Build a SQL Server machine - the right way (Italian)
 
PostgreSQL: Prima configurazione
PostgreSQL: Prima configurazionePostgreSQL: Prima configurazione
PostgreSQL: Prima configurazione
 
PostgreSQL : Tuning
PostgreSQL : TuningPostgreSQL : Tuning
PostgreSQL : Tuning
 
Installing Apache tomcat with Netbeans
Installing Apache tomcat with NetbeansInstalling Apache tomcat with Netbeans
Installing Apache tomcat with Netbeans
 
Novità di SQL Server 2017
Novità di SQL Server 2017Novità di SQL Server 2017
Novità di SQL Server 2017
 

Similar to Laboratorio Di Basi Di Dati 01 Introduzione

Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Server
Laboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato ServerLaboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato Server
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Serverguestbe916c
 
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
Laboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato ClientLaboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato Client
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Clientguestbe916c
 
Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, in...
Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, in...Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, in...
Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, in...Fulvio Corno
 
DbUp - A real case of database migration
DbUp - A real case of database migrationDbUp - A real case of database migration
DbUp - A real case of database migrationAndrea Cirioni
 
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Natale Vinto
 
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Meet Magento Italy
 
Best Practices on SQL Server
Best Practices on SQL ServerBest Practices on SQL Server
Best Practices on SQL ServerGianluca Hotz
 
SQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with SparkSQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with SparkAlessio Biasiutti
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)jampslide
 
ASP.NET Core Web Framework Benchmarks
ASP.NET Core Web Framework BenchmarksASP.NET Core Web Framework Benchmarks
ASP.NET Core Web Framework BenchmarksNicolò Carandini
 
Benchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQLBenchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQLEDB
 
Il cielo è sempre più azure
Il cielo è sempre più azureIl cielo è sempre più azure
Il cielo è sempre più azureKlab
 
Stack tecnologico Per Linked Data
Stack tecnologico Per Linked DataStack tecnologico Per Linked Data
Stack tecnologico Per Linked DataSynapta
 
Stack tecnologico Per Linked Data
Stack tecnologico Per Linked DataStack tecnologico Per Linked Data
Stack tecnologico Per Linked DataDavide Allavena
 
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileLe Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileI.S.I.S. "Antonio Serra" - Napoli
 
Basi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativiBasi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativiMajong DevJfu
 
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLMySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLPar-Tec S.p.A.
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databasesGianluca Hotz
 
Private Cloud per le amministrazioni piemontesi - Alessandro Assom, ARPA
Private Cloud per le amministrazioni piemontesi - Alessandro Assom, ARPAPrivate Cloud per le amministrazioni piemontesi - Alessandro Assom, ARPA
Private Cloud per le amministrazioni piemontesi - Alessandro Assom, ARPACSI Piemonte
 
Richiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriRichiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriFulvio Corno
 

Similar to Laboratorio Di Basi Di Dati 01 Introduzione (20)

Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Server
Laboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato ServerLaboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato Server
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Server
 
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
Laboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato ClientLaboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato Client
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
 
Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, in...
Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, in...Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, in...
Componenti dello stack LAMP - PHP, il linguaggio, l'installazione - MySQL, in...
 
DbUp - A real case of database migration
DbUp - A real case of database migrationDbUp - A real case of database migration
DbUp - A real case of database migration
 
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
 
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
 
Best Practices on SQL Server
Best Practices on SQL ServerBest Practices on SQL Server
Best Practices on SQL Server
 
SQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with SparkSQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with Spark
 
JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)JAMP DAY 2010 - ROMA (1)
JAMP DAY 2010 - ROMA (1)
 
ASP.NET Core Web Framework Benchmarks
ASP.NET Core Web Framework BenchmarksASP.NET Core Web Framework Benchmarks
ASP.NET Core Web Framework Benchmarks
 
Benchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQLBenchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQL
 
Il cielo è sempre più azure
Il cielo è sempre più azureIl cielo è sempre più azure
Il cielo è sempre più azure
 
Stack tecnologico Per Linked Data
Stack tecnologico Per Linked DataStack tecnologico Per Linked Data
Stack tecnologico Per Linked Data
 
Stack tecnologico Per Linked Data
Stack tecnologico Per Linked DataStack tecnologico Per Linked Data
Stack tecnologico Per Linked Data
 
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il MobileLe Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
Le Applicazioni di Internet Web, FTP, Posta e App pr il Mobile
 
Basi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativiBasi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativi
 
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQLMySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
MySQL Tech Tour 2015 - Soluzioni di alta disponibilità con MySQL
 
Azure PaaS databases
Azure PaaS databasesAzure PaaS databases
Azure PaaS databases
 
Private Cloud per le amministrazioni piemontesi - Alessandro Assom, ARPA
Private Cloud per le amministrazioni piemontesi - Alessandro Assom, ARPAPrivate Cloud per le amministrazioni piemontesi - Alessandro Assom, ARPA
Private Cloud per le amministrazioni piemontesi - Alessandro Assom, ARPA
 
Richiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatoriRichiami su Linux - Webmin - Reti di calcolatori
Richiami su Linux - Webmin - Reti di calcolatori
 

More from guestbe916c

Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
Laboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M LLaboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M L
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M Lguestbe916c
 
Corso Di Basi Di Dati 09 Modelli Controllo
Corso Di  Basi Di  Dati 09  Modelli ControlloCorso Di  Basi Di  Dati 09  Modelli Controllo
Corso Di Basi Di Dati 09 Modelli Controlloguestbe916c
 
Esercitazioni 02 S Q L
Esercitazioni 02  S Q LEsercitazioni 02  S Q L
Esercitazioni 02 S Q Lguestbe916c
 
Esercitazioni 01 Algebra Relazionale
Esercitazioni 01  Algebra RelazionaleEsercitazioni 01  Algebra Relazionale
Esercitazioni 01 Algebra Relazionaleguestbe916c
 
Corso Di Basi Di Dati 10 Transazioni
Corso Di  Basi Di  Dati 10  TransazioniCorso Di  Basi Di  Dati 10  Transazioni
Corso Di Basi Di Dati 10 Transazioniguestbe916c
 
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
Laboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q LLaboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q L
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q Lguestbe916c
 
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettuale
Corso Di  Basi Di  Dati 06  Esercizi Di Progettazione ConcettualeCorso Di  Basi Di  Dati 06  Esercizi Di Progettazione Concettuale
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettualeguestbe916c
 
Corso Di Basi Di Dati 03 Progettazione Concettuale
Corso Di  Basi Di  Dati 03  Progettazione ConcettualeCorso Di  Basi Di  Dati 03  Progettazione Concettuale
Corso Di Basi Di Dati 03 Progettazione Concettualeguestbe916c
 
Corso Di Basi Di Dati 05 Normalizzazione
Corso Di  Basi Di  Dati 05  NormalizzazioneCorso Di  Basi Di  Dati 05  Normalizzazione
Corso Di Basi Di Dati 05 Normalizzazioneguestbe916c
 
Corso Di Basi Di Dati 04 Progettazione Logica
Corso Di  Basi Di  Dati 04  Progettazione LogicaCorso Di  Basi Di  Dati 04  Progettazione Logica
Corso Di Basi Di Dati 04 Progettazione Logicaguestbe916c
 
Corso Di Basi Di Dati 02 S Q L D M L
Corso Di  Basi Di  Dati 02  S Q L  D M LCorso Di  Basi Di  Dati 02  S Q L  D M L
Corso Di Basi Di Dati 02 S Q L D M Lguestbe916c
 
Corso Di Basi Di Dati 02 S Q L Query
Corso Di  Basi Di  Dati 02  S Q L   QueryCorso Di  Basi Di  Dati 02  S Q L   Query
Corso Di Basi Di Dati 02 S Q L Queryguestbe916c
 
Esercitazioni 03 Algebra + S Q L
Esercitazioni 03  Algebra +  S Q LEsercitazioni 03  Algebra +  S Q L
Esercitazioni 03 Algebra + S Q Lguestbe916c
 
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
Corso Di  Basi Di  Dati 01  Algebra Relazionale   OttimizzazioniCorso Di  Basi Di  Dati 01  Algebra Relazionale   Ottimizzazioni
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioniguestbe916c
 
Esercitazioni 04 Progettazione Concettuale E Logica
Esercitazioni 04  Progettazione Concettuale E LogicaEsercitazioni 04  Progettazione Concettuale E Logica
Esercitazioni 04 Progettazione Concettuale E Logicaguestbe916c
 
Corso Di Basi Di Dati 08 Protezione Dei Dati
Corso Di  Basi Di  Dati 08  Protezione Dei DatiCorso Di  Basi Di  Dati 08  Protezione Dei Dati
Corso Di Basi Di Dati 08 Protezione Dei Datiguestbe916c
 
04 Progettazione Logica
04  Progettazione Logica04  Progettazione Logica
04 Progettazione Logicaguestbe916c
 
06 Normalizzazione
06  Normalizzazione06  Normalizzazione
06 Normalizzazioneguestbe916c
 

More from guestbe916c (20)

Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
Laboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M LLaboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M L
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
 
Corso Di Basi Di Dati 09 Modelli Controllo
Corso Di  Basi Di  Dati 09  Modelli ControlloCorso Di  Basi Di  Dati 09  Modelli Controllo
Corso Di Basi Di Dati 09 Modelli Controllo
 
Esercitazioni 02 S Q L
Esercitazioni 02  S Q LEsercitazioni 02  S Q L
Esercitazioni 02 S Q L
 
Esercitazioni 01 Algebra Relazionale
Esercitazioni 01  Algebra RelazionaleEsercitazioni 01  Algebra Relazionale
Esercitazioni 01 Algebra Relazionale
 
Corso Di Basi Di Dati 10 Transazioni
Corso Di  Basi Di  Dati 10  TransazioniCorso Di  Basi Di  Dati 10  Transazioni
Corso Di Basi Di Dati 10 Transazioni
 
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
Laboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q LLaboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q L
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
 
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettuale
Corso Di  Basi Di  Dati 06  Esercizi Di Progettazione ConcettualeCorso Di  Basi Di  Dati 06  Esercizi Di Progettazione Concettuale
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettuale
 
Corso Di Basi Di Dati 03 Progettazione Concettuale
Corso Di  Basi Di  Dati 03  Progettazione ConcettualeCorso Di  Basi Di  Dati 03  Progettazione Concettuale
Corso Di Basi Di Dati 03 Progettazione Concettuale
 
Corso Di Basi Di Dati 05 Normalizzazione
Corso Di  Basi Di  Dati 05  NormalizzazioneCorso Di  Basi Di  Dati 05  Normalizzazione
Corso Di Basi Di Dati 05 Normalizzazione
 
Corso Di Basi Di Dati 04 Progettazione Logica
Corso Di  Basi Di  Dati 04  Progettazione LogicaCorso Di  Basi Di  Dati 04  Progettazione Logica
Corso Di Basi Di Dati 04 Progettazione Logica
 
Corso Di Basi Di Dati 02 S Q L D M L
Corso Di  Basi Di  Dati 02  S Q L  D M LCorso Di  Basi Di  Dati 02  S Q L  D M L
Corso Di Basi Di Dati 02 S Q L D M L
 
Corso Di Basi Di Dati 02 S Q L Query
Corso Di  Basi Di  Dati 02  S Q L   QueryCorso Di  Basi Di  Dati 02  S Q L   Query
Corso Di Basi Di Dati 02 S Q L Query
 
Algebra
AlgebraAlgebra
Algebra
 
Esercitazioni 03 Algebra + S Q L
Esercitazioni 03  Algebra +  S Q LEsercitazioni 03  Algebra +  S Q L
Esercitazioni 03 Algebra + S Q L
 
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
Corso Di  Basi Di  Dati 01  Algebra Relazionale   OttimizzazioniCorso Di  Basi Di  Dati 01  Algebra Relazionale   Ottimizzazioni
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
 
S Q L
S Q LS Q L
S Q L
 
Esercitazioni 04 Progettazione Concettuale E Logica
Esercitazioni 04  Progettazione Concettuale E LogicaEsercitazioni 04  Progettazione Concettuale E Logica
Esercitazioni 04 Progettazione Concettuale E Logica
 
Corso Di Basi Di Dati 08 Protezione Dei Dati
Corso Di  Basi Di  Dati 08  Protezione Dei DatiCorso Di  Basi Di  Dati 08  Protezione Dei Dati
Corso Di Basi Di Dati 08 Protezione Dei Dati
 
04 Progettazione Logica
04  Progettazione Logica04  Progettazione Logica
04 Progettazione Logica
 
06 Normalizzazione
06  Normalizzazione06  Normalizzazione
06 Normalizzazione
 

Laboratorio Di Basi Di Dati 01 Introduzione

  • 1. Corso di Basi di Dati e Laboratorio Presentazione del corso di Laboratorio Alfio Ferrara - Stefano Montanelli A.A. 2005/2006 Basi di Dati e Laboratorio 1 Programma • Il laboratorio è complessivamente composto di 48 ore • E’ previsto lo svolgimento di un progetto finale • Due temi principali: – DBMS • PostgreSQL • MySQL – Database e Web • Apache • PHP A.A. 2005/2006 Basi di Dati e Laboratorio 2 Programma Le tecnologie che verranno illustrate a lezione sono state selezionate sulla base dei seguenti criteri: • Soluzioni disponibili per diverse piattaforme (e.g., Windows, Linux) • Soluzioni Open Source Per la realizzazione del progetto, gli studenti possono adottare le soluzioni tecnologiche che ritengono opportune purché esse consentano di realizzare completamente le specifiche richieste A.A. 2005/2006 Basi di Dati e Laboratorio 3 1
  • 2. Esercitazioni • Algebra relazionale • SQL • Progettazione di una base di dati relazionale – Specifica di un problema – Definizione del modello E/R – Traduzione nel modello relazionale – Strumenti CASE per il supporto alla progettazione • Caratteristiche degli strumenti CASE • Un prodotto commerciale: ERWin • Un prodotto non commerciale: DbDesigner4 • Esempi di progettazione A.A. 2005/2006 Basi di Dati e Laboratorio 4 DBMS • Introduzione – Architettura c/s dei DBMS – Prodotti a confronto • Oracle • Access • SQLServer • PostgreSQL • MySQL • MySQL – Architettura – Creazione di database e utenti – Tabelle, chiavi primarie, chiavi esterne – Vincoli di integrità referenziale A.A. 2005/2006 Basi di Dati e Laboratorio 5 DBMS • PostgreSQL – Architettura – Creazione di database e utenti – Tabelle, chiavi primarie, chiavi esterne – Vincoli di integrità referenziale • PLSQL ed Embedded SQL – Trigger – Procedure – Funzioni A.A. 2005/2006 Basi di Dati e Laboratorio 6 2
  • 3. Database e Web • Introduzione al Web – Architettura client-server – La condizione stateless – Protocolli e standard del Web • HTTP • HTML • XML – Funzioni di un browser – Prospettive (Web Service e Semantic Web) A.A. 2005/2006 Basi di Dati e Laboratorio 7 Database e Web • Programmazione Web – La funzione delle pagine dinamiche – Script lato client e script lato server – Programmi CGI – Uso degli script lato server – Tecnologie a confronto • PHP • ASP • JSP – Il Web procedurale: ASP.NET – Uso degli script lato client • Javascript A.A. 2005/2006 Basi di Dati e Laboratorio 8 Database e Web • I Web Server – Funzioni di un Web server – Servizi e porte di comunicazione – Directory di pubblicazione e directory virtuali – Tecnologie a confronto • Apache • Internet Information Services (IIS) • Tomcat – Configurazione di un server Apache A.A. 2005/2006 Basi di Dati e Laboratorio 9 3
  • 4. Database e Web • PHP – Introduzione al linguaggio – File di configurazione: php.ini – Strutture del linguaggio – Passaggio di parametri: GET/POST – Interazione con database: MySQL e PostgreSQL – Persistenza di stato: Cookie e Sessioni – PEAR • Classi astratte per la connessione ad un database • Classi per l’interazione con la posta elettronica – Supporto per XML A.A. 2005/2006 Basi di Dati e Laboratorio 10 DBMS • PostegreSQL – http://www.postgresql.org – DBMS relazionale Open Source (licenza BSD) – Applicazione Client – Server – La distribuzione consiste in un server e una applicazione client da riga di comando (psql) – Possibilità di usare una GUI per l’amministrazione del server (pgAdmin III) • MySQL – http://www.mysql.com – DBMS relazionale Open Source (licenza GPL) – Applicazione Client – Server – La distribuzione consiste in un server e una applicazione client da riga di comando (mysql) – Possibilità di usare una GUI per l’amministrazione del server (phpMyAdmin) A.A. 2005/2006 Basi di Dati e Laboratorio 11 PostgreSQL • Possibilità offerte per l’installazione: – Compilazione dei sorgenti • Prevalentemente per Linux/MacOSX – Utilizzo di una distribuzione binaria • Disponibile sia per Linux/MacOSX sia per Windows – PostgreSQL può essere installato senza possedere i privilegi di root (in una porzione del FileSystem completamente accessibile all’utente che esegue l’installazione) • Installare la versione stabile più recente – Ad oggi la versione 8.1 A.A. 2005/2006 Basi di Dati e Laboratorio 12 4
  • 5. PostgreSQL – Linux • ./configure • Gmake • Su • Gmake install • Adduser postgres • Mkdir /usr/local/pgsql/data • Chown postgres /usr/local/pgsql/data • Su - postgres • /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data • /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data > logfile 2>&1& • /usr/local/pgsql/bin/createdb test • /usr/local/pgsql/bin/psql test A.A. 2005/2006 Basi di Dati e Laboratorio 13 PostgreSQL – Windows • Installare la versione 8.1 supportata nativamente da Windows – E’ preferibile utilizzare una versione 2K/XP di Windows • Eseguire l’installer e seguire la procedura di installazione – Installare come servizio – Creare l’account per l’inizializzazione del servizio – Creare l’utente superuser del DBMS – Impostare il cluster che il DBMS dovrà utilizzare • Se non ci sono esigenze particolari, non modificare le opzioni di default A.A. 2005/2006 Basi di Dati e Laboratorio 14 PostgreSQL • Account per l’inizializzazione del servizio – E’ l’account di sistema che “lancia” il servizio PostgreSQL – E’ preferibile che non abbia privilegi di amministrazione sulla macchina – NON è un utente del DBMS • Superuser del DBMS – E’ l’utente con privilegi di amministrazione su PostgreSQL – E’ inizialmente l’unico utente configurato per l’accesso al DBMS A.A. 2005/2006 Basi di Dati e Laboratorio 15 5
  • 6. PostgreSQL • Inizialmente su PostgreSQL sono presenti due database (template0, template1) che sono i modelli da cui vengono generati nuovi database • Prima connessione al DBMS – E’ necessario specificare l’utente e il database a cui connettersi – psql –U <nomesuperuser> template1 A.A. 2005/2006 Basi di Dati e Laboratorio 16 MySQL • Possibilità offerte per l’installazione: – Compilazione dei sorgenti • Prevalentemente per Linux/MacOSX – Utilizzo di una distribuzione binaria • Disponibile sia per Linux/MacOSX sia per Windows • Installare la versione stabile più recente – Ad oggi la versione 5.0.15 A.A. 2005/2006 Basi di Dati e Laboratorio 17 MySQL – Linux • groupadd mysql • useradd -g mysql mysql • gunzip < mysql-VERSION.tar.gz | tar -xvf – • cd mysql-VERSION • ./configure --prefix=/usr/local/mysql • make • make install • scripts/mysql_install_db • chown -R root /usr/local/mysql • chown -R mysql /usr/local/mysql/var • chgrp -R mysql /usr/local/mysql • cp support-files/my-medium.cnf /etc/my.cnf • /usr/local/mysql/bin/mysqld_safe --user=mysql & A.A. 2005/2006 Basi di Dati e Laboratorio 18 6
  • 7. MySQL – Windows • Se si utilizza una versione 2K/XP è necessario avere i permessi di amministratore • Scompattare il file della distribuzione in una cartella temporanea • Eseguire il file setup.exe e seguire la procedura di installazione – Se si utilizza una versione 2K/XP, selezionare il server mysqld-nt – Installare con supporto alle connessioni remote A.A. 2005/2006 Basi di Dati e Laboratorio 19 MySQL • Inizialmente su MySQL è presente il database di sistema MySQL che contiene tutte le impostazioni del DBMS • Prima connessione al DBMS – MySQL accetta di default connessione da parte di qualsiasi utente – L’utente root è creato automaticamente e ha privilegi di amministrazione sul DBMS – mysql –u root –p • L’opzione –p viene specificata se root ha una password A.A. 2005/2006 Basi di Dati e Laboratorio 20 Web Server • Apache – HTTP server – http://www.apache.org/ – Il server Apache deve la sua diffusione all’elevata flessibilità nelle opzioni di configurazione – Il file httpd.conf contiene le direttive di configurazione del server • Installare la versione stabile più recente – Ad oggi la versione 2.0.55 A.A. 2005/2006 Basi di Dati e Laboratorio 21 7
  • 8. Apache – Linux • ./configure –prefix=/usr/local/apache --enable- module=rewrite --enable-shared=rewrite --enable- module=proxy --enable-shared=proxy • make • make install A.A. 2005/2006 Basi di Dati e Laboratorio 22 Apache – Windows • Se si utilizza una versione 2K/XP è necessario avere i permessi di amministratore • Eseguire l’installer scaricato dal sito e seguire la procedura di installazione – Installare Apache come servizio – Specificare nome del server, dominio, e-mail dell’amministratore del Web Server A.A. 2005/2006 Basi di Dati e Laboratorio 23 Linguaggi • PHP – http://www.php.net/ – Linguaggio di scripting opensource – La versione 5 introduce nel linguaggio il paradigma ad oggetti – Retro-compatibilità largamente garantita, con alcune significative eccezioni: • Supporto XML • Installare la versione stabile più recente – Ad oggi la versione 5.0.4 A.A. 2005/2006 Basi di Dati e Laboratorio 24 8
  • 9. PHP – Linux • ./configure --with-apxs=/usr/bin/apxs -- prefix=/usr/local/php-4.3.0/ --with-pgsql --with- dom --with-dom-xslt --with-dom-exslt --with-config- file-path=/etc/php/ --enable-track-vars --enable- trans-sid --enable-ftp --with-wddx --enable-ctype - -with-gd --with-freetype-dir=/usr --with-zlib- dir=/usr --enable-gd-native-ttf --with-expat- dir=/usr --with-imagemagick --with-recode --with- gettext • make • make install A.A. 2005/2006 Basi di Dati e Laboratorio 25 PHP – Windows • Scaricare la versione binaria priva di installer e scompattare il package in una cartella temporanea • Creare la cartella di installazione di PHP (e.g., c:php), di seguito chiamata PHPinstallDIR. • Leggere il file install.txt e seguire la procedura di installazione manuale in modalità SAPI module per Apache2 • Copiare le seguenti librerie in PHPinstallDIR: – fdftk.dll – msql.dll – fribidi.dll – ntwdblib.dll – gds32.dll – php5apache2.dll – libeay32.dll – php5ts.dll – libmhash.dll – ssleay32.dll – libmysql.dll – yaz.dll A.A. 2005/2006 Basi di Dati e Laboratorio 26 PHP - Windows • Copiare il file php.ini-recommended in PHPinstallDIR, rinominarlo come php.ini e modificarlo come segue: – Modificare le direttive • include_path = quot;PHPinstallDIRincludesquot; • extension_dir = quot;PHPinstallDIRextensionsquot; – Abilitare le seguenti estensioni • extension=php_mysql.dll • extension=php_pgsql.dll • extension=php_xsl.dll • Copiare il contenuto della cartella extensions in PHPinstallDIRextensions A.A. 2005/2006 Basi di Dati e Laboratorio 27 9
  • 10. PHP – Windows • Configurare il server Apache per il supporto al PHP come modulo – Aggiungere al file httpd.conf di Apache le seguenti righe: • LoadModule php5_module quot;PHPinstallDIR/php5apache2.dllquot; • AddType application/x-httpd-php .php • PHPIniDir quot;PHPinstallDIRquot; • Aggiungere PHPinstallDIR alla variabile di sistema path A.A. 2005/2006 Basi di Dati e Laboratorio 28 Progetto Applicazione di basi di dati per la gestione di aste on-line Una società commerciale intende offrire ai propri clienti registrati un'applicazione Web che permetta loro di gestire la compravendita di oggetti mediante aste on-line A.A. 2005/2006 Basi di Dati e Laboratorio 29 Descrizione • Come in quelle tradizionali, anche nelle aste on-line la caratterizzazione del servizio sta nel fatto che il prezzo di vendita di un oggetto deriva da una contrattazione in cui l'acquirente decide il prezzo che è disposto a pagare • L'oggetto viene messo all'asta dal venditore ad un prezzo minimo fissato (base d'asta), al di sotto del quale non vi saranno assegnazioni • Nel caso in cui il valore minimo venga superato, chi ha fatto l'offerta più elevata risulta vincitore e si vede assegnato l'oggetto • Esiste anche un tempo massimo di durata dell'asta, superato il quale le contrattazioni si fermano e vengono valutate le condizioni d'assegnazione • Durante il periodo di contrattazione, i potenziali acquirenti possono intervenire nella contrattazione rilanciando il prezzo e cercando di aggiudicarsi l'oggetto A.A. 2005/2006 Basi di Dati e Laboratorio 30 10
  • 11. Descrizione • L'asta può riguardare un oggetto di qualsiasi genere. Per questo motivo gli oggetti messi all'asta vengono classificati rispetto ad una tassonomia di categorie che permettono una rapida ed efficiente consultazione degli oggetti attualmente disponibili per la contrattazione • In seguito ad un acquisto, l’acquirente è chiamato ad esprimere un giudizio relativamente alla propria soddisfazione in merito alla transazione effettuata. Tale giudizio ha lo scopo di valutare il comportamento dei venditori e contribuisce a delineare la reputazione di ciascuno di essi • Tutte le contrattazioni avvengono in valuta EURO • Sono previste le seguenti categorie d’utenza – Utenti non registrati – Utenti registrati – Amministratori A.A. 2005/2006 Basi di Dati e Laboratorio 31 Specifiche essenziali • Utenti non registrati. Funzionalità minime: – Scorrere la tassonomia delle categorie di oggetti in vendita – Consultare l'elenco degli oggetti all'asta – NON sono autorizzati a presentare offerte d'acquisto – NON possono visionare i dettagli relativi ad un'asta (e.g., base d'asta, ultima offerta, nome del venditore, scadenza del periodo contrattazione) A.A. 2005/2006 Basi di Dati e Laboratorio 32 Specifiche essenziali • Utenti registrati. Sono caratterizzati da informazioni anagrafiche (e.g., nome, cognome, indirizzo) e tecniche (e.g., codice identificativo, username, password). Funzionalità minime: – Iniziare una nuova asta • Definisce la base d’asta • Definisce i termini del periodo di contrattazione • Colloca l'oggetto all'asta in una delle categorie di vendita previste dalla tassonomia – Partecipare ad un'asta • Visiona lo stato corrente di un oggetto all'asta (e.g., base d'asta, venditore, termini di contrattazione, ultima offerta) • Rilancia le ultime offerte. Rilancio minimo di almeno 1 EURO rispetto alla precedente ultima offerta A.A. 2005/2006 Basi di Dati e Laboratorio 33 11
  • 12. Specifiche essenziali • Utenti registrati. Funzionalità minime: – Esprimere giudizi sulle contrattazioni concluse • Giudizio espresso mediante intero 1 ≤ V ≤ 5 (V=1 soddisfazione minima – V=5 soddisfazione massima) e un commento testuale a discrezione dell'acquirente – Specificare interessi • Selezionando dalla tassonomia una o più categorie di vendita • Un utente può rilanciare un'offerta per qualsiasi oggetto all'asta indipendentemente dagli interessi dichiarati A.A. 2005/2006 Basi di Dati e Laboratorio 34 Specifiche essenziali • Amministratori. Funzionalità minime: – Aggiornamento della tassonomia delle categorie di vendita • Aggiunta di categorie • Modifica di categorie • Cancellazione di categorie – Gestione degli utenti “maliziosi” sulla base della loro reputazione • La reputazione si misura con la media aritmetica dei giudizi ricevuti • L'amministratore può decidere di disabilitare gli utenti con reputazione R < 2 A.A. 2005/2006 Basi di Dati e Laboratorio 35 Specifiche essenziali • Amministratori. Funzionalità minime: – Storico aste • Visionare per ogni utente registrato le offerte da lui presentate (raggruppate per oggetto) • Visionare per ogni oggetto, la sequenza cronologica di offerte ricevute • L'elenco delle transazioni concluse A.A. 2005/2006 Basi di Dati e Laboratorio 36 12
  • 13. Specifiche essenziali • Ulteriori vincoli: – La cancellazione di una categoria implica la cancellazione di tutte le corrispondenti sotto- categorie – Non è possibile cancellare una categoria se esistono oggetti all'asta appartenenti a quella categoria – Non possono esistere due categorie con il medesimo nome A.A. 2005/2006 Basi di Dati e Laboratorio 37 Specifiche essenziali • Ulteriori vincoli: – In ogni momento il venditore può ridurre la base d'asta – Durante il periodo di contrattazione, il venditore NON può ritirare un oggetto dall'asta e NON può aumentare la base d'asta – Durante il periodo di contrattazione, il venditore può visualizzare la sequenza cronologica e l'entità delle offerte ricevute – Al termine del periodo di contrattazione, se la base d'asta non è stata raggiunta, il venditore può decidere di ritirare l'oggetto dall'asta o di modificare la base d'asta e i termini di contrattazione a suo piacimento A.A. 2005/2006 Basi di Dati e Laboratorio 38 Specifiche essenziali • Ulteriori vincoli: – Gli oggetti in vendita all'asta sono associati ad un'immagine e ad una descrizione testuale – Il termine della contrattazione deve essere fissato con una data e un'orario – Un oggetto NON può essere collocato in più di una categoria di vendita – Un utente registrato NON può presentare offerte per oggetti che lui stesso ha messo in vendita A.A. 2005/2006 Basi di Dati e Laboratorio 39 13
  • 14. Specifiche aggiuntive • La tassonomia delle categorie di vendita è specificata mediante un file XML il cui schema è descritto nel file categoria.xsd – Le categorie sono organizzate in una gerarchia nella quale ogni categoria può avere N sotto-categorie distribuite su M livelli, con N,M ∈N. A.A. 2005/2006 Basi di Dati e Laboratorio 40 Specifiche aggiuntive • Funzionalità previste: – Acquisizione della tassonomia delle categorie di vendita. L'applicazione Web deve permettere all'amministratore l'acquisizione un file XML conforme allo schema categoria.xsd da cui derivare la tassonomia delle categorie che verrà utilizzata per classificare gli oggetti in vendita – Esportazione della tassonomia delle categorie di vendita. L'applicazione deve permettere all'amministratore la memorizzazione della tassonomia delle categorie in un file XML conforme allo schema categoria.xsd A.A. 2005/2006 Basi di Dati e Laboratorio 41 Specifiche aggiuntive • categoria.xsd <?xml version=quot;1.0quot; encoding=quot;ISO-8859-1quot; ?> <xs:schema xmlns:xs=quot;http://www.w3.org/2001/XMLSchemaquot;> <xs:element name=quot;namequot; type=quot;xs:stringquot;/> <xs:element name=quot;descriptionquot; type=quot;xs:stringquot;/> <xs:attribute name=quot;categoryidquot; type=quot;xs:stringquot;/> <xs:element name=quot;categoryquot;> <xs:complexType><xs:sequence> <xs:element ref=quot;namequot;/> <xs:element ref=quot;descriptionquot; minOccurs=quot;0quot;/> <xs:element ref=quot;categoryquot; minOccurs=quot;0quot; maxOccurs=quot;unboundedquot; /> </xs:sequence> <xs:attribute ref=quot;categoryidquot; use=quot;requiredquot;/> </xs:complexType></xs:element></xs:schema> A.A. 2005/2006 Basi di Dati e Laboratorio 42 14
  • 15. Specifiche aggiuntive • Esempio di file XML conforme a categoria.xsd <?xml version=quot;1.0quot; encoding=quot;ISO-8859-1quot;?> <category categoryid=quot;Aquot; xmlns:xsi=quot;http://www.w3.org/2001/XMLSchema-instancequot; xsi:noNamespaceSchemaLocation=quot;categoria.xsdquot;> <name>Example A</name> <description>Long description</description> <category categoryid=quot;Bquot;> <name>Example B</name> <description>Long description</description> </category> <category categoryid=quot;Cquot;> <name>Example C</name> <description>Long description</description> </category> </category> A.A. 2005/2006 Basi di Dati e Laboratorio 43 Specifiche aggiuntive • Funzionalità previste – Navigazione per similarità della tassonomia di categorie. Dato un prodotto, l’applicazione deve permettere ad un qualsiasi utente di visualizzare un elenco di prodotti simili con associata una misura di similarità con il prodotto indicato. La similarità tra due prodotti viene calcolata mediante euristiche basate sulle categorie di appartenenza: • due oggetti della stessa categoria hanno similarità massima • la similarità fra oggetti di diverse categorie è proporzionale alla lunghezza della porzione di albero da attraversare per transitare da una categoria all’altra A.A. 2005/2006 Basi di Dati e Laboratorio 44 Specifiche aggiuntive • Esempi di similarità Sim(D,E) = Sim(B,C) Sim(D,E) > Sim (D,C) A.A. 2005/2006 Basi di Dati e Laboratorio 45 15
  • 16. Specifiche aggiuntive • Si richiede: – la definizione dell’algoritmo e delle funzioni necessarie a implementare le euristiche presentate definendo anche le necessarie misure di similarità – l’implementazione del meccanismo e dell’interfaccia di navigazione fra gli oggetti d’asta basati sulla valutazione della similarità A.A. 2005/2006 Basi di Dati e Laboratorio 46 Specifiche aggiuntive • Funzionalità previste – Notifica di nuove aste. Quando un oggetto viene inserito in una categoria C per la vendita all'asta, tutti gli utenti interessati a C riceveranno automaticamente una email che li informa della nuova asta e dei relativi dettagli (e.g., base d'asta, venditore, termini di contrattazione) – Notifica di nuove offerte. Quando un'offerta O viene rilanciata con una nuova offerta, l'utente che ha presentato O viene automaticamente notificato via email del fatto che la sua offerta è stata superata. Nella email vengono riportati i dettagli della nuova offerta A.A. 2005/2006 Basi di Dati e Laboratorio 47 Indicazioni per la discussione • In sede di discussione del progetto è necessario considerare le seguenti indicazioni: – Creare almeno un utente amministratore – Creare almeno un utente registrato – (Per coloro che implementano le specifiche aggiuntive) Preparare un file XML conforme allo schema categoria.xsd contenente una tassonomia di categorie di vendita che contenga almeno 20 categorie distribuite su 5 livelli A.A. 2005/2006 Basi di Dati e Laboratorio 48 16
  • 17. Valutazione • I progetti validi vengono valutati in modo differente in base alle funzionalità sviluppate: – Range di valutazione -2 / +3. Progetti che realizzano correttamente TUTTE le specifiche essenziali – Range di valutazione -2 / +5. Progetti che, oltre alle specifiche essenziali, realizzano correttamente TUTTE le specifiche aggiuntive • Per la realizzazione del progetto, gli studenti possono adottare le soluzioni tecnologiche che ritengono opportune purché esse consentano di realizzare completamente le specifiche richieste A.A. 2005/2006 Basi di Dati e Laboratorio 49 Svolgimento • Il progetto è obbligatorio e costituisce parte integrante dell’esame • Lo sviluppo dell’interfaccia Web è una componente obbligatoria • Il progetto deve essere funzionante in sede d’esame, avvalendosi di un calcolatore portatile o on-line • Il progetto può essere svolto in gruppi non superiori alle tre unità. Per la valutazione dell’elaborato avrà luogo un apposito colloquio a cui tutti i membri del gruppo sono tenuti a partecipare • I progetti sufficienti avranno validità UN ANNO a decorrere dall'appello di consegna • Utilizzare la mailing list BDLAB per scambiarsi considerazioni, dubbi, perplessità A.A. 2005/2006 Basi di Dati e Laboratorio 50 Materiale da consegnare • Documentazione tecnica, in cui sono descritte in maniera esauriente le scelte di progettazione concettuale e di progettazione logica della base di dati e gli aspetti metodologici – Schema concettuale ER della base di dati – Schema relazionale della base di dati – Esauriente descrizione delle funzioni realizzate, l'elenco dei prodotti software e dei linguaggi utilizzati • Manuale utente, comprendente le istruzioni d'uso e le note tecniche relative all'installazione dell'applicazione e alla dotazione software necessaria per il corretto funzionamento • Prodotti software, comprendenti il dump SQL della base di dati e TUTTI i sorgenti che costituiscono il progetto A.A. 2005/2006 Basi di Dati e Laboratorio 51 17
  • 18. Materiale da consegnare • La documentazione tecnica e il manuale utente dell'applicazione devono essere consegnati sia in formato cartaceo che in formato elettronico • I prodotti software devono essere consegnati in formato elettronico (floppy disk o cd-rom) A.A. 2005/2006 Basi di Dati e Laboratorio 52 Materiale da consegnare • Tutto il materiale deve essere consegnato in una busta chiusa: – Indicare sulla busta: Progetto di Basi di dati e Laboratorio 2005/2006 – Specificare nome, cognome, matricola, indirizzo di posta elettronica di ciascun componente del gruppo A.A. 2005/2006 Basi di Dati e Laboratorio 53 Modalità di consegna • Il progetto deve essere consegnato il giorno stesso dell'appello scritto d'esame ai docenti presenti in aula – Per coloro che hanno sostenuto i compitini l’ultima scadenza per la consegna è l’appello di aprile • I progetti consegnati saranno corretti secondo calendario di discussione che verrà pubblicato per ogni appello d'esame sul sito Web del corso – http://islab.dico.unimi.it/basi/ A.A. 2005/2006 Basi di Dati e Laboratorio 54 18