


















































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Gli appunti riguardano la parte del corso tenuta dalla Professoressa Diamantini, essenziali per superare l'esame orale. Sono focalizzati su una comprensione approfondita dei concetti trattati durante le lezioni e forniscono una solida base per affrontare le domande e le discussioni durante l'esame orale. Includono le esercitazioni e molti esempi pratici che coprono tutti gli argomenti trattati durante le lezioni. Questi appunti sono dettagliati e organizzati in modo chiaro per facilitare lo studio e la comprensione degli argomenti. Sono integrati con le slide. Quindi riguardano la seconda parte del corso di PYTHON FUNDAMENTALS FOR DATA SCIENCE AND RELATIONAL DATABASES, ovvero quella che si sostanzia in un esame orale. Sono disponibili anche gli appunti della prima parte, riguardante Python (si trovano nel mio profilo).
Tipologia: Sbobinature
1 / 58
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!



















































Cos’è l’informa.ca? Studio sistema1co degli algoritmi che descrivono e trasformano l’informazione. Questa definizione si focalizza molto sul conce>o di algoritmo quindi non è sufficiente. Scienza del tra>amento razionale, specialmente per mezzo di macchine automa1che, dell’informazione, considerata come supporto alla conoscenza umana e alla comunicazione (accad. Di Francia) L’informa1ca ha due pilastri:
Archivi tradizionali e mo.vazioni per l ’ introduzione di un sistema per la ges.one di da. Che cos’è un sistema aziendale? Connessione di elemen1 che convergono verso l’obieRvo aziendale, cioè genericamente produrre valore. Come lo faccio? Posso immaginare un sistema produRvo come una scatola nera che prende in ingresso una serie di input e produce un output, questo input può essere semplificato con materie prime e in output prodoR fini1. Come si passa da input a output? Dentro la scatola nera c’è una serie di elemen1 che hanno due gambe:
Esistono anche dei sistemi di delega per cui chi è alla base del sistema può coordinarsi per risolvere le situazioni, da qui nasce il sistema orizzontale. Questo è funzionale nel momento in cui pianifico in una situazione di estrema incertezza, poiché sono più le eccezioni che la regola. CICLO DI PIANIFICAZIONE E CONTROLLO DATI Informazioni Tu>a l’organizzazione funziona se ho le informazioni necessarie. C’è una differenza tra informazioni e da1: dato = ‘datum’ = qualcosa di dato, qualcosa di presente (1mbrare un cartellino) informazioni = prevedono un’elaborazione di da1 finalizzata ad avere qualche informazione u1le Ogni livello lavora con i suoi da
Quindi l’informa1ca inizia ad essere applicata a livello opera1vo, e nel tempo si arriva a livelli più al1, senza mai andare ad automa1zzare però il lavoro, si ha solo uno strumento di supporto al lavoro della persona. Processi stru>ura1 sta a significare avere delle regole perfe>amente codificate, al punto da poterle inserire in un computer. Processi semi-stru>ura1: parzialmente determinate Decisioni non-stru>urate: non esplicite, richiedono intuizione e esperienza A livello opera1vo, le cose sono meccaniche sì, ma le decisioni vengono prese anche a livello opera1vo, anche nel momento in cui un operaio avvita una vita prende una decisione, se premere di più o meno, quindi sono soggeR a controllo. b. Da1 anali1ci, quan1ta1vi: riguardano una singola unità, un singolo elemento del lavoro ANALITICITA’ VS SINTESI dei da Ho processi di 1po opera1vo che producono da1 molto anali1ci, di de>aglio, che se elabora opportunamente riesco a o>enere da1 per il livello superiore, di repor1s1ca. Quindi i da1 di sintesi non sono solo un aggregato di qualche sistema, ma li posso derivare dai da anali1ci. Se prendo lo stesso insieme di da1 transazionali e li segmento per clien1, es fa>ure divide per cliente a, b, c, e calcolo il fa>urato, avrò informazioni sulla profi>abilità del cliente, dato u1le per la ges1one del cliente. Ancora se le segmento in aree geografiche di vendite, o>engo il diagramma u1le ai manager di area, che si preoccupano di ges1re in base alle aree geografiche oppure a livello ancora superiore per iden1ficare le mo1vazioni di eventuali problemi in base alle aree. Quindi i da1 di sintesi vengono dall’elaborazione di da1 più bassi, anali1ci, e in base alle procedure di elaborazione o>engo diverse informazioni. I da1 fondamentali sono quelli transazionali, che registrano even1 del mondo reale, da cui possiamo elaborare i da1 dei livelli superiori per prendere decisioni, ma a questo punto diventano informazioni. I da1 transazionali cos1tuiscono una risorsa strategica, perché più stabili nel tempo di altre componen1 (processi, tecnologie, ruoli umani), ad esempio i da1 delle banche o delle anagrafi. Come dovrei ges1re i da1? Non mi dovrei preoccupare tanto di ges1re qualsiasi dato, ma dovrei concentrarmi a ges1re bene i da1 transazionali. Qui si ha un’opportunità, i da1 transazionali sono strategici perché sono la sorgente prima di tu>e le altre informazioni, perché sono stabili (non sono soggeR a frequen1 cambiamen1). Il limite sta nel fa>o che col computer possiamo tra>are bene i livelli opera1vi, ma rappresentare i livelli più al1 che non sono stru>ura1, è ben più difficile, quindi per livelli superiori dobbiamo pensare a strumen1 di supporto per le decisioni. L’automazione inizia nel tra>amento e nella raccolta dei da1 di 1po transazionale, per poi muoversi verso l’alto. Inizialmente si vanno a automa1zzare singole operazioni, per poi andare a costruire sistemi sempre più integra1 che vedono l’azienda come un tu>’uno.
La tecnologia SSD sono più veloci, ma meno robuste dal punto di vista della memorizzazione dei da1 per un database, e sono molto più costose Lezione 7. SISTEMA OPERATIVO Si interfaccia con l’hardware della macchina perme>endo a un qualsiasi utente di usare la macchina. Dal punto di vista di file system l’astrazione è il conce>o di file, andiamo a scrivere sul disco, scrivendo all’interno di un file, non sarebbe possibile in altro modo. Quindi l’unità di scri>ura e memorizzazione dei da1 è l’idea di file. Usiamo un termine logico in contrasto a quello fisico, vediamo il disco in termini di file, che possiamo aprire, scrivere, cancellare, assegnargli diriR di accesso. A sua volta il file astrae l’idea che noi usiamo i se>ori per memorizzare l’informazione, quindi un file è un insieme di da1 che vengono tenu1 in blocchi di memoria. Il sistema opera1vo usa un altro 1po di blocchi, che possono rappresentare se>ori con1gui del disco, quindi più se>ori, grazie a blocchi più larghi riesco a caricare in memoria più informazioni in meno tempo. Ques1 blocchi vengono defini1 da sistema a sistema. Utente scrive file, il sistema divide il file in blocchi, e scrive blocco per blocco, ma per accedere a un bit o al blocco intero spendo lo stesso tempo. Quindi il sistema opera1vo ci perme>e di trascurare i de>agli fisici del disco, di oRmizzare l’uso della memoria secondaria. Abbiamo una memoria che possiamo immaginare come una serie di blocchi con1gui, il primo modo immaginato per memorizzare un file è quello di memorizzarlo in una sequenza di blocchi, il problema è che quando comincio a scrivere e cancellare file, si vengono a creare dei buchi, dei blocchi liberi sparsi, ma se dovessi memorizzare un file che occupa 4 blocchi, magari li avremmo non con1gui ma ci indica disco pieno. Avere blocchi con1gui non è un u1lizzo oRmale della memoria. Il problema di questa cosa è che la tecnologia dei dischi è lenta, perché nell’archite>ura di una memorizzazione in primis si avevano i nastri magne1ci, successivamente si hanno i dischi magne1ci che rendono più veloci l’accesso, i dischi sono organizza1 in tracce concentriche, ogni traccia è suddivisa in se>ori dove andiamo a memorizzare gli 1 e 0 che rappresentano la nostra informazione. Questo significa però che gli devo aggiungere un grado di libertà, la tes1na si deve muovere nel disco, devo avere un braccio meccanico che si sposta nel disco per arrivare alla traccia desiderata, una volta posizionata sulla traccia, il disco ruotando fa si che la porzione desiderata diven1 accessibile. Il problema è che il braccio meccanico ha tempi di risposta meccanici e non ele>ronici, quindi abbiamo diversi ordini di grandezza in base alle tempis1che con cui siamo abituazioni a lavorare. Una soluzione è tenere il disco in perenne rotazione, i dischi più performan1 sono a pila e hanno per ogni disco una tes1na in modo da raggiungere con un movimento più se>ori e quindi più informazioni. Ma tu>o ciò comporta un aumento di cos1.
Allora si è pensato di organizzare le informazioni in modo concatenato, prendendo una porzioncina del blocco, per memorizzare l’informazione sul blocco successivo, così posso organizzare i file in modo con1guo, ma memorizzarli anche in modo sparso, avendo una migliore ges1one della memoria. Quindi i sistemi opera1vi implementano le soluzioni in maniera oRmizzata per cercare di risolvere eventuali problemi. LIMITI DEGLI STRUMENTI GENERAL-PURPOSE Per digitalizzare un catalogo prodoR, abbiamo bisogno di definire com’è la scheda del prodo>o, quindi definisco una stru>ura del dato che deve essere manipolato, poi è necessaria un variabile di 1po file per memorizzarlo, il catalogo va compilato, aggiornato nei prodoR e nei prezzi, funzioni per venditore come sfogliare e mostrare il prodo>o. Eme>ere una fa>ura significa creare un documento e poterlo annullare, correggere, memorizzare, spedire al cliente. Tu>e le funzioni aziendali opera1ve possono essere riassunte nel creare, aggiornare, cancellare e ricerca in archivio. Si può quindi fare informa1ca aziendale con strumen1 general purpose cioè con ciò che abbiamo a nostra disposizione, ma ci sono dei limi1:
Sistema di ges1one base di da1 (DBMS) Database Management Systems: prodoR sojware che permettono di operare e gestire Basi di Dati ovvero collezioni di dati che supportano le operazioni utili ai fini dell’organizzazione. Tali basi di da1 saranno quindi: ➢ Grandi: poiché di dimensioni maggiori della memoria centrale dei sistemi di calcolo u1lizza ➢ Condivise: poiché ogni aRvità dell’organizzazione deve avere un proprio (so>o)sistema informa1vo ➢ Persisten1: poiché il loro tempo di vita deve essere indipendente dall’esecuzione dei programmi La centralizzazione della ges1one dovrà quindi garan1re: ➢ Affidabilità ➢ Privatezza ➢ Efficienza ➢ Efficacia Il DBMS è un programma ma allora come posso ges1re i da1 indipendentemente da un programma, ma i programmi applica1vi sono crea1 per risolvere un problema molto specifico e applica1vo, i sojware di base in cui rientra il sistema opera1vo e i sistemi di ges1one di base di da1, sono sojware che offrono funzionalità a un’ampia gamma di uten1 e di operazioni opera1ve, quindi di largo spe>ro applica1vo. Il sistema opera1vo offre la possibilità di scrivere file indipendentemente da altre funzioni, allo stesso modo per il DBMS che offre servizi per la ges1one dei da1. il DBMS si interpone tra disco e uten1 (di diverso 1po) perme>endogli di accedere ai da1, mediante servizi. Per descrivere le funzioni ad alto livello bisogna capire la definizione di DBMS: (proprietà fondamentali)
schema logico lasciano inalterato lo schema esterno. che consente di interagire con il livello esterno dei dati in modo indipendente dal livello logico. Quindi livello esterno e livello logico risultano indipendenti tra loro (e dal livello fisico) facendo sì che aggiunte o modifiche alle viste non richiedano modifiche al livello logico o fisico. Viceversa modifiche allo schema logico lasciano inalterato lo schema esterno. che consente di interagire con il livello esterno dei dati in modo indipendente dal livello logico. Quindi livello esterno e livello logico risultano indipendenti tra loro (e dal livello fisico) facendo sì che aggiunte o modifiche alle viste non richiedano modifiche al livello logico o fisico. Viceversa modifiche allo schema logico lasciano inalterato lo schema esterno. LINGUAGGI PER BASI DI DATI Devo interagire con il DBMS per o>enere i da1, i linguaggi sono abbastanza semplici grazie al livello logico. Linguaggio SQL è descriRvo. Interfacce amichevoli cioè senza linguaggio testuale à interfaccia grafica SQL = LINGUAGGIO DESCRITTIVO Se abbiamo una tabella e dobbiamo trovare i docen1 del lunedì, il linguaggio sarà: SELECT Docente FROM Orario WHERE Giorno = ‘Lunedì’ È un linguaggio più semplice rispe>o al linguaggio di Python. È un linguaggio testuale. INTERAZIONE NON TESTUALE = Access Tabella preimpostata che ha delle colonne e righe con spunte ecc, de>a Query by example Immagine archite>ura DBMS
I nostri sojware sono compos1 da tre componen1 fondamentali, che corrispondono all’interfaccia, alla logica interpreta1va e uno stato di da1. Ogni componente può essere implementata in un computer separato e ciò abilita le applicazioni di rete e perme>e di usare il computer con cara>eris1che specifiche per quella funzione. Es l’interfaccia sta sul computer (browser) sono i modi di proporre gli input di da1, non c’è dietro la logica, la richiesta a google viaggia per rete e arriva a un server che elabora secondo una logica per rimandare a>raverso la rete. Quindi i server non hanno bisogno di uno schermo ma di funzionalità di calcolo poten1, memoria e CPU sono magari potenziate. Il server se avrà necessità andrà a chiedere a un altro server che è il DBMS. VANTAGGI E SVANTAGGI DEI DBMS Vantaggi Con il DBMS nasce la data science à si passa dall’idea di pensare solo ai programmi (esecuzioni di algoritmi) alla necessità di rappresentare i da1 (sono un modello della realtà) Ges1rli in maniera centralizzata perme>e di renderli disponibili a tu>a l’azienda, contribuendo a mol1plicare le informazioni, a unire unità aziendali. Perme>ono di eliminare le copie di da1 che non sono allineate in quanto non aggiornate. Si può standardizzare, c’è qualcuno che pensa solo al DBMS e lo fa bene, piu>osto che avere un programmatore per azienda, il tu>o grazie ad economie di scala, che hanno permesso la distribuzione. Svantaggi Costo dei prodoR (di accesso e non è modulare, bisogna comprare tu>o o niente à non scorporablità delle funzionalità) La transazione verso l’u1lizzo dei DBMS a causa della proprietà dei da1 e meccanismi lega all’informa1ca. Non si ha poi la possibilità di scorporare funzionalità par1colari che potrebbero non essere di interesse per l’organizzazione con conseguente riduzione di efficienza. Nell’era dei big data abbiamo volumi di da1 enormi, dove il focus principale è l’analy1cs, l’analisi, dove il DBMS non funziona bene, quindi si cercano sistemi che lo superano. Infine il modello di transazione non scala nel caso di archite>ure cloud, il conce>o di schema risulta piu>osto rigido e le operazioni associa1ve sono par1colarmente costose.
Come organizzare tuR i da1? Come estrarre le informazioni di interesse? Organizzare i da1 significa riconoscere le informazioni fondamentali (es tabella con nome e numeri di telefono). Ci sono mol1 modi di organizzare anche in modo più stru>ura1. C’è bisogno di un modello che perme>e di organizzare le informazioni. Inizialmente ci si è basa1 sui modelli u1lizza1 nei linguaggi di programmazione, Cobol introduce il conce>o di ‘record’ e da qui derivano due modelli di da1, gerarchico e re1colare, che sta ad indicare come organizziamo le informazioni. Col conce>o di record si ha che il dato si compone di campi, all’inizio per rappresentarli a livello di computer ho una serie di 0 e 1, quindi mi assegno un’area di memoria, e il dato viene scomposto in bit (es bit dal 6-9 il nome, 10-13 l’indirizzo…). Questo conce>o di record si è evoluto col conce>o re1colare, i nostri da1 sono compos1 di par più semplici descriviamole e esprimiamo la correlazione con dei puntatori (cioè indirizzo della posizione di memoria in cui quel dato è memorizzato). Re1colare perché le frecce possono assumere le stru>ure più varie, in quello gerarchico le frecce potevano andare solo in modo gerarchico ad albero. Il modello relazionale fu proposto da E. F. Codd nel 1970 per favorire l’indipendenza, fisica e logica, dei da1. Quando arriva il modello relazionale supera i preceden1. A differenza dei due modelli logici tradizionali (gerarchico e re1colare) il modello relazionale u1lizza i valori, anche per i riferimen1 tra da1 in relazioni diverse, piu>osto che puntatori fra record. Fu reso disponibile sui DBMS dal 1981 basandosi appunto sul conce>o matema1co di relazione, con una piccola variante, poiché le relazioni hanno naturale rappresentazione per mezzo di tabelle. Ha una forte stru>ura teorica dietro, che ne ha garan1to diverse proprietà, ma con la rappresentazione delle tabelle è u1lizzabile da tuR. Da1 due insiemi D1 e D2 si definisce prodo>o cartesiano [D1 X D2] l’insieme delle coppie ordinate (d1,d2) tali che d1 ∈ D1 e d2 ∈ D2. Una relazione matema1ca R sugli insiemi D1 e D2, deR domini della relazione, è un so>oinsieme del prodo>o cartesiano [D1 X D2] quindi R ⊂ [D1 X D2]. Essa cos1tuisce un insieme di n-uple ordinate d1,…,dn tali che siano d1 ∈ D1 … dn ∈ Dn... Definire il nostro insieme di da1 come relazione matema1ca ne definisce delle proprietà:
Lezione 9. Il problema della tabella creata mediante relazione matema1ca è che non perme>e alle variabili di avere un significato esplicito. Quindi il modello relazionale usa la relazione matema1ca ma con una variante, ad ogni numero del piano cartesiano associamo un dominio, de>o a>ributo, che descrive il ruolo del dominio. Così si passa da una struttura posizionale ad una non posizionale. All’interno dell’insieme non posso trovare elementi identici, tutti gli attributi devono essere distinti. Matematicamente: invece che una n-upla ogni istanza rappresenta un insieme di coppie {(D1,v1),…,(Dn,vn)} dove ai è il nome dell’attributo e vi il valore nel dominio del relativo attributo. Ha 2 vantaggi:
Nel caso in cui siano presenti ordinazioni identiche avvenute in momenti differenti nello stesso tavolo occorrerà introdurre un attributo che indichi il numero di riga dell’operazione. INFORMAZIONE INCOMPLETA Il modello relazionale impone ai dati una struttura rigida che prevede la rappresentazione delle informazioni per mezzo di ennuple di formato corrispondente agli schemi di relazione. È quindi possibile che i dati disponibili non corrispondano al formato previsto. Si presentano dunque casi in cui determinati valori non risultano ammissibili a causa della presenza di: ➢ Valori sconosciuti ➢ Valori inesistenti ➢ Valori senza informazione (non si può lasciare una casella vuota) Un tale tipo di informazione incompleta potrebbe essere rappresentato mediante valori non utilizzati del dominio che però potrebbero diventare significativi o potrebbero non esistere. Sarebbe inoltre necessario, in fase di utilizzo dei programmi, tener conto del significato di tali valori. Non conviene (anche se spesso si fa) usare valori del dominio (0, stringa nulla, “99”, ...):
funzione booleana (un predicato) che associa ad ogni istanza il valore vero o falso conformemente al rispetto o meno delle condizioni esplicitate nel corpo del vincolo. I vincoli di integrità permettono dunque una descrizione più accurata della realtà contribuendo alla qualità dei dati. Inoltre essi risultano utili nella progettazione e vengono utilizzati dai DBMS nell’esecuzione delle interrogazioni. Notiamo però che non tutte le proprietà di interesse possono essere rappresentabili attraverso vincoli esplicitamente formulabili per cui potrebbero esserci vincoli non esprimibili. I vincoli di integrità quindi: