Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


RELATIONAL DATABASES (prof Diamantini, orale), Sbobinature di Database Relazionali

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

2022/2023

In vendita dal 17/02/2024

marika-salvatori-1
marika-salvatori-1 🇮🇹

3.3

(4)

13 documenti

1 / 58

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
1
2.10.23
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:
1. Algoritmi per modellare flusso di lavoro
2. Da1: sono l’informazione, come ca>uriamo l’ambiente esterno
In realtà l’aspe>o dei da1 non vis1 solo come input, ma come risorsa ed elemento allo stesso
livello degli algoritmi che è interessante tra>are. L’informazione va considerata come supporto alla
conoscenza umana, dai da1 deriva tu>e le forme di conoscenza e informazione più ricche. Quindi
se li rappresen1amo in modo efficace, con delle rappresentazioni che ci perme>ono di estrarre
conoscenze in modo efficiente abbiamo un grande vantaggio.
Nella definizione c’è anche la parte ‘specialmente per mezzo di macchine automa1che’, ma la
definizione sta in piedi anche senza la macchina, se ci si me>e troppa enfasi si rischia di essere
troppo specifici, mentre l’informa1ca ha aspeR teorici e metodologi, più teorici che prescindono
dalla macchina che va ad eseguirli.
L’informa1ca da un certo punto di vista ha più a vedere con l’uomo, con la sua intelligenza, che con
la macchina.
Cer1 aspeR dell’informa1ca non possono prescindere però da linguaggi tecnici.
Come si coniugano intelligenza e computer?
Nel tempo si è fa>o un lavoro di stra1ficazione per costruire dei modi di vedere la macchina
sempre più vicini all’uomo e sempre più lontani dai livelli di funzionamento della macchina.
Vedremo meccanismi astraR di rappresentazione (di da1).
I da1 sono un modo per rappresentare la realtà.
ObieRvi corso:
- Grande quan1tà di da1 (efficienza e corre>ezza)
- ORca organizza1va (supporto allo svolgimento, efficacia ed efficienza aziendale)
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a

Anteprima parziale del testo

Scarica RELATIONAL DATABASES (prof Diamantini, orale) e più Sbobinature in PDF di Database Relazionali solo su Docsity!

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:

  1. Algoritmi per modellare flusso di lavoro
  2. Da1: sono l’informazione, come ca>uriamo l’ambiente esterno In realtà l’aspe>o dei da1 non vis1 solo come input, ma come risorsa ed elemento allo stesso livello degli algoritmi che è interessante tra>are. L’informazione va considerata come supporto alla conoscenza umana, dai da1 deriva tu>e le forme di conoscenza e informazione più ricche. Quindi se li rappresen1amo in modo efficace, con delle rappresentazioni che ci perme>ono di estrarre conoscenze in modo efficiente abbiamo un grande vantaggio. Nella definizione c’è anche la parte ‘specialmente per mezzo di macchine automa1che’, ma la definizione sta in piedi anche senza la macchina, se ci si me>e troppa enfasi si rischia di essere troppo specifici, mentre l’informa1ca ha aspeR teorici e metodologi, più teorici che prescindono dalla macchina che va ad eseguirli. L’informa1ca da un certo punto di vista ha più a vedere con l’uomo, con la sua intelligenza, che con la macchina. Cer1 aspeR dell’informa1ca non possono prescindere però da linguaggi tecnici. Come si coniugano intelligenza e computer? Nel tempo si è fa>o un lavoro di stra1ficazione per costruire dei modi di vedere la macchina sempre più vicini all’uomo e sempre più lontani dai livelli di funzionamento della macchina. Vedremo meccanismi astraR di rappresentazione (di da1). I da1 sono un modo per rappresentare la realtà. ObieRvi corso:
  • Grande quan1tà di da1 (efficienza e corre>ezza)
  • ORca organizza1va (supporto allo svolgimento, efficacia ed efficienza aziendale)

BASI DI DATI

Archivi tradizionali e mo.vazioni per lintroduzione 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:

  • Processi produRvi, ad esempio di trasformazione
  • Risorse, cioè ciò che viene usato dai processi produRvi (materiali, risorse umane, macchin.) Per fare stare in piedi un sistema, va ges1to e organizzato, mo1vo per cui esiste il so-osistema organizza0vo (so>osistema del sistema aziendale), cioè il management, che ges1scono e coordinano l’insieme delle risorse aziendali, pianificando e controllando che man mano che si sviluppano le cose si s1ano rispe>ando i piani. La risorsa primaria che usa il sistema organizza1vo è l’informazione per organizzare, pianificare e controllare. In ques1 modelli lavoriamo con dei da1, che perme>ono di fare delle previsioni. Esempio: approvvigionamento materie prime Quale quan1tà?
  • Dipende da quanto e cosa devo produrre
  • Più del previsto/ritardi: scarsità di m.p. la produzione si ferma
  • Mi cautelo con scorte di magazzino.... con perdita di efficienza Avere strumen1 che ges1scono in automa1co la risorsa per la ges1one, il dato, è fondamentale. Prima che arrivasse l’informa1ca in generale le organizzazioni prevedono il sistema informa1vo, componente del sistema organizza1vo, che nel complesso si occupa di ges1re la risorsa informazione, crearla, acquisirla, elaborarla, conservarla. Il sistema informa1vo ha dei suoi processi dedica1 al tra>are le informazioni. Il sistema informa1co è la porzione informa1zzata del sistema informa1vo, cioè quella che fa uso di macchinari per la ges1one del dato. Le finalità dell’automazione sono infaR l’aumento della capacità elabora1va e l’incremento dell’efficienza (riduzione dei tempi e dei meccanicismi) e dell’efficacia (realizzazione di strumen1 u1li ai fini dell’aumento dell’output). Il sistema informa1co perme>e dunque di avere importan1 riflessioni sull’organizzazione riducendo le risorse slack, estendendo le capacità elabora1ve dei singoli, favorendo strategie che aumentano la capacità elabora1va e supportando sistemi informa1vi ver1cali. Si 1ene conto dei da1 fin dall’an1chità, con l’anagrafe, che è u1le per qualsiasi pianificazione e ges1one di erogazione di servizi di una pubblica amministrazione. Per cui all’inizio del Medioevo i monaci hanno ricominciato a tener traccia, costruendo delle anagrafi, grazie a ba>esimi, matrimoni, mor1. A mano a mano si è passa1 da scrivere delle semplici pagine diverse, fino a scrivere dei fogli forma>a1 precompila1 con dei campi, quindi l’informazione è più organizzata e stru>urata. Successivamente con delle targhe>e di metallo si ha la prima automazione, perché si

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

  • Da1 per la pianificazione strategica: trend di mercato, share dei compe1tor
  • Da1 per la pianificazione e il controllo: budget
  • Da1 opera1vi: da1 di produzione
  • Da1 transazionali: da1 che corrispondono a processi fisici, reali, documen1 che cer1ficano il verificarsi di un evento nel mondo reale (contra>o, fa>ura, cartellino 1mbrato) Principali cara>eris1che I da1 sembrano uno diverso dall’altro e non organizza1, in realtà non è così. I da1 dei diversi livelli sono quasi complementari. a. Il grado di formalizzazione, cioè quanto i da1 sono stru>ura1, regolari, a livello opera1vo sono molto formalizza1, perché le persone devono rispe>are le procedure. Se si pensa invece ai compe1tor o alle leggi, documen1 usa1 a livelli più al1, sono relazioni, report, e ogni report è diverso dall’altro. Range del grado di formalizzazione 1pica è che più vado in alto più è difficile stru>urarla, prevedere una stru>ura. Questo è importante perché più una procedura è standardizzata, è stru>urata, più posso costruire un algoritmo in un sojware. Lo stesso per i da1, si descrivono meglio se sono formalizza1. Nelle gerarchie ho dei con1nui cicli di pianificazione e controllo, si definiscono gli obieRvi, si controllano i risulta e per qualsiasi problema si va a definire azioni correRve. Ipo1zzo, eseguo, misuro e vedo come sta andando, andando a correggere se necessario. Esempi di processo:
  • Opera1vo: produzione di corto periodo, evasione ordini, erogazione s1pendi
  • Ges1onale: piani di produzione di lungo periodo, pianificazione delle risorse, controllo scostamen
  • Strategico: scelta del segmento di mercato

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:

  1. il dato è l’input di un programma e la stru>ura del dato è definito nel programma, quindi il dato è strumentale al programma che lo manipola, mentre il dato esiste di per se, dunque dovrebbe esserci indipendenza. Quindi come conseguenza pra1ca se voglio riportare un dato in più bisogna ricambiare la stru>ura dei da1 del programma che comporta una spesa sia in termini di tempo che di risorse.
  2. Le funzioni sono specifiche di ogni area quindi associare un dato a una funzione, che però sono meno frazionabili, in quanto sono condivisi e u1li a più par1 dell’azienda. Quindi se costruiamo i sojware per funzioni, ci troviamo con il sistema commerciale che ha il suo programma ges1one ordini, che definisce e ges1sce su file i propri da1. Poi abbiamo un magazzino che ha un programma che memorizza nel disco, così pure per il sistema contabile. Per le diverse funzionalità esistono dei da1 specifici, ma chiaramente alcuni da sono necessari a più sistemi, come ad esempio i da1 del cliente. Questo comporterebbe delle repliche dei da1, che copia1 vanno a creare problemi, come il fa>o che averli duplica non li rende mai aggiorna1, perché ogni parte dell’azienda non comunica con l’altra, è un elemento di grande inefficienza. Definire queste interfacce è difficilissimo perché nella realtà scrivere chi ha bisogno di un dato e chi necessita nell’aggiornamento è molto complicato.

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)

  • persistente: i da1 sono in memoria di massa in maniera robusta rispe>o ai guas1 (si deve essere in grado di recuperare i da1 in qualsiasi condizione, si deve pensare a meccanismi che vanno al di là della copia dei da1)
  • grandezza: richiede una ges1one sofis1cata per non andare a caricare tu>o in memoria principale e poi riscaricare
  • condivise: ges1one centralizzata dei da1, così da garan1re la condivisione, basi di da uniche e integrate, sincronizzando da1 e processi, garantendo tracciabilità di aggiornamen e dell’informazione direzionale à contributo importante all’efficienza e alla qualità delle aziende una conseguenza di ciò è avere un pull di da1 senza avere più un programma che le definisce, ora ho il DBMS che ha al suo interno una porzione della base dei da1, dizionario di da1, che con1ene una descrizione dei da1 centralizzata, che può essere usata dai vari programmi.
  • Privatezza: i possono definire meccanismi di autorizzazione
  • Affidabilità: legata alla persistenza, il dato va conservato a lungo termine Se ci fosse un guasto a metà di una transazione bancaria, come un bonifico, si perde lo stato di avanzamento, ma il DBMS 1ene traccia dello stato di avanzamento e lo conserva in una memoria stabile in modo da essere in grado di portare a termine l’operazione. Se c’è un guasto dopo il bonifico, magari si rompe il disco dove erano salva1 i da1, anche qui interviene il DBMS,
  • Efficien1: i tempi di accesso ai da1 vanno oRmizza1, i DBMS hanno tante funzioni, quindi per implementare la loro efficienza sono state sviluppate della applicazioni di qualità
  • Efficacia : devo avere funzionalità poten1 e flessibili, significa avere funzionalità complesse ma comandi complessi che perme>ono di esprimere funzionalità complesse in maniera semplice. Lezione 8. UTENTI Possono essere divisi in:
  • ProgeRs1 e amministratori base di da1: decidono come organizzare i da dell’organizzazione, quindi come definirne lo schema, la stru>ura. Se>a le autorizzazioni, ges1sce l’affidabilità, si occupa di oRmizzare l’efficienza della base di da1 mediante stru>ure chiamate indici.
  • Uten1: sono le persone che lavorano nell’organizzazione: o Uten1 finali/terminalis1: figure che lavorano a livello opera1vo, che hanno delle funzioni più rou1narie e interagiscono con la base di da1 tramite programmi terminalis o Uten1 casuali/analis1, livello più alto della piramide, ges1onale/direzionale, per estrarre da1 u1li a prendere le decisioni. Sono casuali perché eseguono operazioni non previste a priori, poiché le esigenze non sono sempre le stesse. Si riesce ad estrarre informazioni per cui il programma non era stato creato. Sono uten sofis1ca1 perché è necessario avere delle competenze.
  • Programmatori: coloro che proge>ano le applicazioni, il sojware dovrà accedere ai da1, e i programmatori prevedono un modo per o>enere l’accesso a ques1 da1, interagendo con il sojware. Le applicazioni che vengono scri>e sono u1lizzate dai terminalis1, quindi automa1zzano le operazioni aziendali. Ques1 uten1 dovranno avere modo di accedere ai da1, che all’interno del disco sono raggruppa con stringhe di 1 e 0, un modo cruciale del DBMS è di riconoscere i da1 memorizza1 nel disco, di basso livello (1 e 0) ma offre agli uten1 un linguaggio di più alto livello, più astra>o che può essere u1lizzato in maniera trasparente, per implementare l’efficacia. È uno degli elemen1 di difficoltà nello sviluppo di un DBMS, che hanno richiesto degli inves1men1. Il DBMS consente l’indipendenza dei da1 dalla rappresentazione fisica. Dobbiamo parlare di modelli per rappresentare i da1 a diversi livelli. MODELLO DI DATI “è come fosse la tavolozza dei colori per un pi=ore. Ci perme=e di disegnare rappresentazioni della realtà.” modello di da0: un insieme di costruR u1lizza1 per organizzare i da1 di interesse e descriverne la dinamica. Presen1 anche in altri linguaggi di programmazione. È un insieme di costruR, di elemen1 che usiamo per rappresentare i da1 e descriverli. Abbiamo dei meccanismi di stru>urazione. Un possibile modo per descrivere le cara>eris1che dei da1 è una stru>ura simile a una tabella In ogni base di da1 esisteranno: ➢ Schema: invariante nel tempo e descrivente la stru>ura (aspe>o intensionale - relazione e a>ribu1)

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

ARCHITETTURA THREE-TIER

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.

MODELLO RELAZIONALE

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à:

  • È un insieme: o Non c’è ordinamento tra le n-uple o Ogni elemento è dis1nto da ogni altro elemento di quell’insieme, non esistono due elemen1 iden1ci o Ciascuna ennupla è internamente ordinata poiché il valore i-esimo proviene dal dominio i-esimo. Si può rappresentare sia sul piano cartesiano, che in tabella, in base agli u1lizzi.

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:

  • Mi porto sempre dietro il significato del valore
  • Non ho può l’obbligo di tenere le cose in un determinato ordine Possiamo parlare di tabelle invece che di relazioni, ma solo alcuni tabelle rappresentano relazioni secondo il modello relazionale, devono valere delle condizioni: Þ I valori di ogni colonna sono tra loro omogenei rispetto al significato dell’attributo Þ Le righe sono diverse tra loro (come da definizione di insieme) Þ Le intestazioni delle colonne sono diverse tra loro L’ordinamento tra righe e colonne è sempre irrilevante, questa caratteristica è propria delle relazioni. Una base di dati si definisce dunque come un insieme di relazioni collegate tra loro dove i riferimenti fra dati in relazioni diverse sono rappresentati attraverso i valori dei domini che compaiono nelle ennuple. Il modello relazione permette di esprimere le relazioni tra tabelle diverse usando valori dei domini che compaiono nella tabella, invece di usare i puntatori. Così ci si è completamente scollegati dal livello fisico, si hanno solo dati e proprietà. A prescindere dal blocco di memoria in cui sono i dati nel disco, l’utente vede sempre la stessa tabella.

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”, ...):

  • potrebbero non esistere valori “non utilizzati”
  • valori “non utilizzati” potrebbero diventare significativi
  • in fase di utilizzo (nei programmi) sarebbe necessario ogni volta tener conto del “significato” di questi valori Si risolve il problema utilizzando quelli che vengono definiti come valori nulli (non appartenenti al dominio) che denotano l’assenza di un valore del dominio. Dunque, è possibile scrivere che t[A] per ogni attributo A può essere un valore appartenente al dominio(A) oppure un valore NULL (si può usare anche per gli interi) à NULL = simbolo speciale che denota mancanza di informazioni e non va quindi visto come una stringa. I DBMS non distinguono tipi di valore nullo, cioè il perché si ha un valore nullo, se è per informazione sconosciuta o inesistente Si introduce quindi la nozione di vincolo di integrità. Sto rappresentando nelle tabelle una realtà e voglio assicurarmi che i dati siano rappresentativi della realtà, e per fare ciò non è sufficiente che siano solo sintatticamente corrette. bisogna controllare che i valori siano semanticamente significativi, cioè corrispondano alla realtà. Esso costituisce una proprietà che le istanze devono obbligatoriamente soddisfare per rappresentare informazioni corrette per una successiva applicazione. Un vincolo è quindi una Non si possono avere troppi valori nulli poiché esistono istanze di basi di dati che pur essendo sintatticamente corrette non rappresentano informazioni possibili ai fini delle applicazioni utili e di interesse per l’organizzazione. Lo stesso principio si estende anche a tutti i tipi di valori che, pur compresi nel dominio dell’attributo, non rappresentano situazioni reali.

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:

  • Descrizione più accurata della realtà
  • Contributo alla ‘qualità dei dati’, ma irrigidiscono i sistemi
  • Utili nella progettazione
  • Usati dai DBMS nella esecuzione delle interrogazioni Vincoli intrarelazionali: ➢ Vincoli su valori (o vincoli di dominio) Caso particolare dei vincoli di ennupla: viene coinvolto un singolo attributo(riguarda un singolo valore di ogni singola tupla ➢ Vincoli di ennupla Esprimono condizioni sui valori di ogni ennupla indipendentemente dalle altre Caso particolare:
  • Vincoli di dominio: coinvolgono un solo attributo ➢ Vincoli di chiave Permettono di identificare univocamente le ennuple di una relazione. 13/ IDENTIFICAZIONE DELLE ENNUPLE La sintassi di queste due tipologie di vincoli è semplice: la condizione è esprimibile attraverso un’espressione booleana di atomi che confrontano valori di attributo o espressioni aritmetiche su di essi. Nel nostro caso potremmo avere come vincoli sensati i seguenti: (VOTO >= 18) AND (VOTO<=30) (VOTO=30) OR NOT (LODE = “e lode”) In questo esempio si ha che:
  • Matricola è chiave… poiché superchiave minimale, ha un solo argomento
  • Cognome_Nome_Nascita è chiave… poiché superchiave minimale sono necessari tutti e tre per essere identificativi
  • Cognome_corso è chiave… “casualmente”