Fondamenti di Informatica 22-­‐05-­‐2013 Come detto nella lezione precedente, partendo da un diagramma ER, attraverso l’algoritmo di Mapping ogni entità viene trasformata in tabella. Di queste tabelle si definiscono le chiavi primarie (nel nostro esempio le chiavi primarie sono ID_CLIENTE e ID_PRODOTTO) . Di seguito si trasformano i tipi di relazione in tabelle seguendo questo schema: M : N (molti a molti) si crea una nuova tabella con due campi, che sono le chiavi esterne delle tabelle iniziali. La chiave primaria della tabella relazione sono le due chiavi esterne insieme, contemporaneamente. RT à TAB 1 : (N (uno a molti) la relazione viene inclusa dal lato N 1) : (1 (uno a uno) la relazione viene inclusa o a destra o a sinistra della tabella (in genere dal lato che genera meno campi NULL ossia mancanza di informazioni) Una volta creato un database, i due problemi principali sono come interrogare il database e come costruire delle interfacce che permettano ad un utente di accedere al database. INTERROGAZIONI I due linguaggi utilizzati per creare le interrogazioni sono il QBE e l’SQL. Il QBE (query by example), è un linguaggio visuale che permette di interrogare il database mentre l’SQL (structured query language) è un linguaggio dichiarativo (il C è imperativo). È stato dimostrato matematicamente che l’SQL è il più semplice linguaggio per scrivere interrogazioni. Il QBE non dispone di tutte le istruzioni per una completa interrogazione del DB. Prima di iniziare a parlare del linguaggio SQL è bene tenere a mente i alcuni importanti concetti: la piramide di Anthony è un modello gerarchico dell’organizzazione delle industrie A livello direzionale e manageriale opera l’informatica analitica ( OLAP On-­‐Line Analytical Processing), a livello manageriale e operativo si trova invece l’informatica transazionale (OLTP On-­‐Line transation processing). Nel passare dal livello più basso a quello più alto i dati vengono sintetizzati. Al livello direzionale arrivano i KPI (indicatori chiave i prestazione -­‐key performance indicator). SQL Distinguiamo due categorie di query: estrazione o selezione e aggregazione. QUERY DI ESTRAZIONE Nel campo dell’informatica a livello transazionale inseriamo le query di estrazione. Questa fanno parte delle operazioni CRUD (Create, Read, Update, Delete). Ad ogni operazione corrisponde un'equivalente istruzione in linguaggio SQL. La tavola CRUD indica i metodi di accesso alle informazioni. Operazione Create SQL INSERT Read (Retrieve) SELECT Update UPDATE Delete (Destroy) DELETE La struttura generica di una query di estrazione è la seguente: SELECT [ATTRIBUTE LIST] * FROM [TABLE LIST] WHERE [CONDITION] Nella select si specifica l’attribute list cioè la lista degli attributi di cui ho bisogno per scrivere l’interrogazione (es. SELECT nome, cognome, indirizzo). Il simbolo * permette di prendere tutte le colonne da una tabella specificata nella FROM. Nella FROM vanno indicate le tabelle che vanno messe in Join. Esempio di query di selezione: si vogliono scegliere i prodotti con prezzo compreso tra 3 e 5€ SELECT ID, NOME, PREZZO FROM PRODUCT WHERE ((PREZZO>3) AND (PREZZO<5)) In alcuni casi per rispondere a una query è necessario avere informazioni presenti in più tabelle. Per rimediare a questo il DB può effettuare la Join (unione), ossi la combinazione del contenuto di due o più tabelle che consente di generare un gruppo di risultati contenente le righe e le colonne di ciascuna tabella. Esempio: si vuole l’elenco dei prodotti comprati dal Signor Mario Rossi il giorno 20 giugno 2013 SELECT ID_PRODOTTO, NOME_PRODOTTO FROM CLIENTE, ACQUISTA, PRODOTTO WHERE ID_CLIENTE=CLIENTE_ID AND CONDIZIONE DI JOIN ACQUISTA.ID_PRODOTTO=PRODOTTO_ID AND CLIENTE.NOME= “MRIO” AND CONDIZIONE DI FILTRO CLIENTE.COGNOME= “ROSSI” AND ACQUISTA.DATA= “20/6/2013” QUERY DI AGGREGAZIONE Una seconda categoria di query è rappresentata dalle query di aggregazione che chiedono informazioni aggregate e sono strumenti di supporto decisioni SSD per il livello direzionale. Le operazioni di SUM, COUNT, AUG, STDDEV, MIN, MAX… si possono effettuare aggregano i dati dei livelli sottostanti piramide di Anthony). USER INTERFACE La struttura di un programma segue il seguente schema: Il DATA LAYER A è programmato con SQL oppure con C, C++; JAVA. Il BUSINESS RULES LAYER è programmato con JAVA o con C++. Gli utenti comunicano con il PRESENTATION LAYER attraverso la CHI (computer human interface). Fra i vari modi per creare un’interfaccia i principali sono: -­‐ -­‐ BY PROGRAM(C, PHP, JAVA); BY DESIGN (VB, FLASH) Esistono interface di vari tipi come le audio computer interface, le brain computer interface, video computer interface etc…. L’insieme delle varie CHI costituisce la disciplina chiamata Computer Human Interaction. Le applicazioni si dividono in DESKTOP APPLICATION (word) e WEB APPLICATION, (DESKTOP APPLICATION + WEB APPLICATION= HYBRID APPLICATION). Le Desktop ap devono essere installate e possono essere usate senza connessione. Delle web ap l’utente vede sul computer solo la presentation layer ,non devono essere installate e per usarle bisogna connettersi a un browser. FORM Un form è un insieme di campi e validatori di campo che permettono all’utente di interagire con il database. A ogni campo è associato un validatore di campo per il controllo delle informazioni inserite nei campi. In informatica, un form (letteralmente formulario, modulo) è un termine usato per indicare l'interfaccia di un'applicazione che consente all'utente client di inserire e inviare al web server uno o più dati liberamente digitati dallo stesso. Esempio controlls o widgets Claudia Morelli William Ria