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


Lezioni informatica, Appunti di Elementi di Informatica

Appunti di tutte le lezioni di Gianluca Pozzato.

Tipologia: Appunti

2020/2021

In vendita dal 04/01/2021

Cancc
Cancc 🇮🇹

4.6

(10)

8 documenti

1 / 22

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
STORIA DEL CALCOLO AUTOMATICO !
L’essere umano è in grado di fare certe operazioni ma preferisce farsi aiutare da una macchina in
quanto fare una qualsiasi operazione è noioso, incline di errore e serve del tempo. !
La prima macchina nota di calcolo è l’abaco che risale al V millennio a.c. ed aveva lo scopo di
assistere l’essere umano mentre fa i calcoli spostando le palline. L’abaco è un supporto perché la
logica dell’operazione è di competenza dell’utente. La prima vera innovazione arriva nel XVII d.c.
con la pascalina, la quale permette di fare delle somme e la logica sta all’interno, è cablata
all’interno della macchina. Permetteva però di fare solo addizioni e sottrazioni. Le moltiplicazioni e
le divisioni potevano essere calcolate mediante ripetizioni di addizioni e sottrazioni ma così la
logica dell’operazione torna all’utente. Anche se si modifica la macchina per gestire
moltiplicazione e divisione, arriverà l’esigenza poi di usare la radice quadrata o il logaritmo e così i
problemi si rimandano solo. La logica che governa le operazioni è “cablata” nella macchina
calcolatrice. La soluzione è trattare tale logica come parte dell’input della macchina. !
Nel 1840 Charles Babbage introduce il primo esempio di macchina di calcolo programmabile, in
grado di eseguire operazioni ma anche di essere in grado di ricevere come input la logica di
controllo di una nuova operazione. Questo è simile al computer che è una macchina
programmabile dove la logica dell’operazione può essere un input della macchina stessa. !
Alan Turing, padre dell’informatica e dell’intelligenza artificiale, introduce la macchina di Turing,
non è una macchina fisica ma è un progetto teorico che raggiunge risultati clamorosi, lui ha
tracciato a livello concettuale cosa si può fare con le macchine reali ovvero quali sono i problemi
che il computer può risolvere e quali no. Alla base del suo funzionamento c’è la stessa idea alla
base della macchina analitica. !
John von Neumann descrive un calcolatore eettivamente costruibile partendo dalla macchina di
Babbage e passando per le idee di Turing; è importante perché è il modello concreto su cui si
basano i computer moderni. !
Precisazione su termini: !
Informatica (informazione automatica) —> Information and Communication Technology, risvolti
fisico-matematici e teorie e tecniche di comunicazione !
Computer science—>informatica come scienza basata su modellizzazione, formalizzazione e
verifica sperimentale ( teoria degli atomi, logica formale, teoria del linguaggio )!
Temi dell’informatica: sicurezza, strutture dei dati, basi di dati, sistemi operativi… !
INFORMATICA: informazione automatica, insieme dei processi e delle tecnologie che consentono
di creare, raccogliere, elaborare, immagazzinare e diondere l’informazione. !
Computer: elaboratore elettronico digitale—> elabora solo informazioni binarie!
Hardware: componente fisica sistema informatico !
Algoritmo: insieme delle operazioni per risolvere un problema !
Software: insieme di programmi che fanno funzionare l’hardware!
#
La rappresentazione delle informazioni!
Un elaborato elettronico o pc basa il suo comportamento o attività sulla necessità di gestire dei
dati, elaborare o immagazzinare dati, che poi sono informazioni.!
Come il computer memorizza e gestisce al suo interno le informazioni. !
Ci sono informazioni di vario genere all'interno di un computer come immagini, suoni, testi.!
E' suciente che l'informazione sia rappresentabile in modo digitale. Il computer è un qualunque
dispositivo classificato come elaboratore elettronico come il computer desktop, portatile,
smartphone, smart tv..!
Elaboratore elettronico DIGITALE.!
Il computer conosce solo due elementi che sono lo 0 e l'1. Posso assumere solo gli stati di ON/
OFF, acceso e spento. Tutto ciò che riusciamo ad esprimere con questi due simboli in modo
digitale, è suciente perché qualunque informazione possa essere gestita ed elaborata all'interno
della macchina.!
Noi essere umani a volte abbiamo a che fare con segnali analogici per esempio, cioè un insieme
continuo di valori che trasmettono molte informazioni, sensibili alle interferenze. un segnale di
questo genere deve essere rappresentato con i segnali 0 e 1.!
Segnali digitali —> insieme discreto di valori.!
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16

Anteprima parziale del testo

Scarica Lezioni informatica e più Appunti in PDF di Elementi di Informatica solo su Docsity!

STORIA DEL CALCOLO AUTOMATICO

L’essere umano è in grado di fare certe operazioni ma preferisce farsi aiutare da una macchina in quanto fare una qualsiasi operazione è noioso, incline di errore e serve del tempo. La prima macchina nota di calcolo è l’abaco che risale al V millennio a.c. ed aveva lo scopo di assistere l’essere umano mentre fa i calcoli spostando le palline. L’abaco è un supporto perché la logica dell’operazione è di competenza dell’utente. La prima vera innovazione arriva nel XVII d.c. con la pascalina, la quale permette di fare delle somme e la logica sta all’interno, è cablata all’interno della macchina. Permetteva però di fare solo addizioni e sottrazioni. Le moltiplicazioni e le divisioni potevano essere calcolate mediante ripetizioni di addizioni e sottrazioni ma così la logica dell’operazione torna all’utente. Anche se si modifica la macchina per gestire moltiplicazione e divisione, arriverà l’esigenza poi di usare la radice quadrata o il logaritmo e così i problemi si rimandano solo. La logica che governa le operazioni è “cablata” nella macchina calcolatrice. La soluzione è trattare tale logica come parte dell’input della macchina. Nel 1840 Charles Babbage introduce il primo esempio di macchina di calcolo programmabile, in grado di eseguire operazioni ma anche di essere in grado di ricevere come input la logica di controllo di una nuova operazione. Questo è simile al computer che è una macchina programmabile dove la logica dell’operazione può essere un input della macchina stessa. Alan Turing, padre dell’informatica e dell’intelligenza artificiale, introduce la macchina di Turing, non è una macchina fisica ma è un progetto teorico che raggiunge risultati clamorosi, lui ha tracciato a livello concettuale cosa si può fare con le macchine reali ovvero quali sono i problemi che il computer può risolvere e quali no. Alla base del suo funzionamento c’è la stessa idea alla base della macchina analitica. John von Neumann descrive un calcolatore effettivamente costruibile partendo dalla macchina di Babbage e passando per le idee di Turing; è importante perché è il modello concreto su cui si basano i computer moderni. Precisazione su termini: Informatica (informazione automatica) —> Information and Communication Technology , risvolti fisico-matematici e teorie e tecniche di comunicazione Computer science—>informatica come scienza basata su modellizzazione, formalizzazione e verifica sperimentale ( teoria degli atomi, logica formale, teoria del linguaggio ) Temi dell’informatica: sicurezza, strutture dei dati, basi di dati, sistemi operativi… INFORMATICA: informazione automatica, insieme dei processi e delle tecnologie che consentono di creare, raccogliere, elaborare, immagazzinare e diffondere l’informazione. Computer : elaboratore elettronico digitale—> elabora solo informazioni binarie Hardware : componente fisica sistema informatico Algoritmo : insieme delle operazioni per risolvere un problema Software : insieme di programmi che fanno funzionare l’hardware La rappresentazione delle informazioni Un elaborato elettronico o pc basa il suo comportamento o attività sulla necessità di gestire dei dati, elaborare o immagazzinare dati, che poi sono informazioni. Come il computer memorizza e gestisce al suo interno le informazioni. Ci sono informazioni di vario genere all'interno di un computer come immagini, suoni, testi. E' sufficiente che l'informazione sia rappresentabile in modo digitale. Il computer è un qualunque dispositivo classificato come elaboratore elettronico come il computer desktop, portatile, smartphone, smart tv.. Elaboratore elettronico DIGITALE. Il computer conosce solo due elementi che sono lo 0 e l'1. Posso assumere solo gli stati di ON/ OFF, acceso e spento. Tutto ciò che riusciamo ad esprimere con questi due simboli in modo digitale, è sufficiente perché qualunque informazione possa essere gestita ed elaborata all'interno della macchina. Noi essere umani a volte abbiamo a che fare con segnali analogici per esempio, cioè un insieme continuo di valori che trasmettono molte informazioni, sensibili alle interferenze. un segnale di questo genere deve essere rappresentato con i segnali 0 e 1. Segnali digitali —> insieme discreto di valori.

Quando ci sono due valori: segnale binario Vantaggi del digitale: sistema molto semplice, su due soli valori, non ambiguo (non sensibile alle interferenze), riproducibile senza errori. IL BIT. Binary Digit (cifra binaria) Ci sono tanti interruttori in un pc, ciascuno di questo è un bit, che possono essere accesi o spenti, che permette di rappresentare un segnale binario, un segnale discreto su due valori, 0 o 1, acceso o spento. Tutto ciò che viene rappresentato è una sequenza di valori a sua volta. A seconda della configurazione del bit, se ON o OFF, capiremo se si tratta di un immagine, un numero, o un carattere. Sistema binario perché è semplice, un bit all'interno del computer viene realizzato grazie alla presenza di questi piccoli interruttori. Elementi per realizzazione di un bit: presenza/assenza di carica elettrica, direzione di magnetizzazione, presenza/assenza di corrente/tensione, passaggio/ non passaggio di luce. es. quando circuito elettrico: quando corrente circola corrisponde a valore 1 del bit, quando non circola 2. Quindi all'interno della macchina, nei vari componenti ci sono questi interruttori, che a ciascun interruttore corrisponde una lampadina, quando è su 1 è accesa ON, se è spenta vale 0. Con un bit possiamo rappresentare due sole informazioni, avendo a disposizione un bit, quindi un interruttore e la corrispondente lampadina, per rappresentare delle informazioni possono assumere due funzioni: SI/NO, VERO/FALSO,... con un bit, basta stabilire una convenzione tra i due possibili valori e le due informazioni. All'interno di un pc utilizzando un solo bit posso rappresentare due informazioni diverse, corrispondenza tra i due valori e le due informazioni quindi. Es. questionario Con un bit non posso assumere più di due valori. Si possono utilizzare 2 bit con i quali ho 4 soluzioni, con 3 bit ho invece 8 soluzioni (tutte le possibile combinazioni). Con N bit si rappresentano 2N^ di informazioni Il K—> 1024 Se abbiamo a disposizione K informazioni quante bit abbiamo bisogno? Dobbiamo scegliere N in modo che 2N^ maggiore o uguale a K, se sono uguali ogni combinazione va bene, se 2N^ è maggiore di K alcune combinazioni non corrispondono a informazioni sono uno “spreco”, trovi il minimo. es. 2N> 61 —> 5 bit non sono sufficienti (32) occorrono almeno 6 bit (64) Riassumendo: -1 bit può assumere 2 valori e può rappresentare 2 informazioni -N bit possono assumere 2N^ valori, che permettono di rappresentare 2N^ informazioni Quindi: per rappresentare K informazioni, si devono usare N bit in modo che 2 N^ >K 8 bit formano un byte 8 bit—> 256 informazioni diverse. Il byte viene utilizzato come unità di misura per esprimere la capacità della memoria, la potenza di un calcolatore, la velocità di trasmissione di una linea. RAPPRESENTAZIONE DEI NUMERO -Numero =concetto che rappresenta una quantità (quindici) -Numerale =simbolo che rappresenta una quantità (15)

- I numerali differenziano dai numeri come le parole si differiscono dai concetti che rappresentano. Sistema di numerazione decimale Decimale :alfabeto di 10 cifre base da 0 a 10 Numerale 245: 2 centinaia,4 decine,5 unità

Se chiediamo al computer di ordinare alfabeticamente le stringhe 3 e 20431, il computer mette prima il 20431. Con l’ASCII esteso sono insufficienti per alcuni sistemi si scrittura come quella giapponese. Non esiste un sono ASCII esteso, uno per ogni lingua, questo porta ad avere difficoltà. La soluzioni è di definire uno standard che utilizzi più bit e che comprenda tutti i sistemi di scrittura—> Unicode Utilizza fino a 4 byte per ogni carattere 8*4 bit= 32 bit per ogni carattere 232 oltre 4 miliardi possibili rappresentabili Attualmente sono rappresentati oltre 98000 caratteri UTF (unicode transformation format) definisce come codificare il numero di un carattere Unicode come sequenza bit. Unicode ha introdotto UTF8 e UTF16. Alcuni caratteri vengono codificati con 8 bit altri con 16 e pochi con 32. I caratteri codificati con 8 bit coincidono con i caratteri ASCII. Con UTF-16 alcuni caratteri vengono rappresentati con 16 bit altri con 32 bit. Codifica delle immagini Vi sono varie tecniche utilizzate per memorizzare in modo digitale, e poi elaborarla. Quando vuoi scannerizzare un documento in bianco e nero, lo scanner digitalizza l’informazione, definisce una sorta di griglia sull’immagine reale e poi va a vedere con un laser se in corrispondenza di ogni riga o colonna quel puntino è bianco o nero e in base al colore produce una sequenza di bit che corrispondono ai puntini in cui è suddivisa l’immagine. Questi puntini sono i pixel. L’idea è di suddividere un’immagine in una griglia formata da linee e distanze. Pixel—> Picture element Può essere codificato in binario con la convenzione che: 0 è un pixel bianco e 1 è il pixel nero. La griglia una volta analizzata diventa una griglia di bit. La sequenza di bit viene letta da sx a dx. Non sempre il contorno della figura coincide conte linee della griglia quindi digitalizzando dobbiamo approssimare. Come avere un immagine più fedele? Aumento la risoluzione ovvero aumentiamo il numero di pixel e si rimpiccioliscono i quadratini della griglia. La rappresentazione di un immagine mediante pixel si chiama bitmap. Con un solo bit per pixel si possono codificare solo 2 colori (bianco e nero). Per codificare più informazioni dobbiamo usare più bit. Se ho un immagine con tonalità di grigio:

- 16 livelli di grigio—> 4 bit

- 256 livelli di grigio—> 8 bit

- Se uso k bit—> 2k tinte diverso

Possiamo associare una rappresentazione binaria a ogni possibile colore di pixel? Il modello più usato è Truecolor e RGB, red, green, blu. Un’immagine è ottenuta mescolando vari livelli dei 3 colori primari. Ci sono 256 valori possibili per ogni colore primario. Per la codifica a colori per ciascun pixel ci sono 3 byte quindi 24 bit, 3 perché ciascun byte viene usato per rappresentare il livello di ciascun dei colori primari. Il pixel lo si ottiene attraverso una fusione di un certo livello di rosso, verde o blu. Quanti colori possiamo rappresentare? 2^24 colori= 16.777.216 colori Quanto spazio occupa un immagine a colori: Es. immagina 150x200 pixel occorrono 3 byte (24 bit) per pixel 150x200x3= 90.000 byte Per limitare l’utilizzo di spazio esistono tecniche di compressione delle immagini che consentono di ridurre le dimensione di spazio occupato. Per esempio si può abbreviare lo spazio della rappresentazione. Es: 0000000 o 7* È un esempio di Lossless, senza perdita di informazione, questa è identica all’originale. Formati compressi Lossless: gif, tiff, png.

Le tecniche lossy causano perdita di informazione, con lo scopo di risparmiare molto più spazio della lossless (jpeg). Codifica immagini in movimento Le immagini in movimento sono fotogrammi o frame, sequenze di immagini. Sono tante immagini. Una sequenza di immagini in movimento occupano ancora più spazio, sono memorizzate solo le differenze tra un fotogramma e l’altro. Esistono vari formati, soprattutto lossy: mpeg, divx, avi, quicktime; che memorizzano anche i suoni. Codifica dei suoni Il suono è uno dei mezzi principali di comunicazione, anche questi possono essere codificati in digitale. Un suono è un onda di pressione che si ha in presenza di un mezzo. Quando un suono viene rilevato dall’orecchio o da un microfono viene trasformato in uno stimolo o segnale elettrico. La durata, l’intensità e la variazione nel tempo della pressione dell’aria sono le quantità fisiche che rendono un suono diverso da ogni altro. Variando l’ampiezza nel tempo cambia il suono che viene prodotto, entrambi le grandezze sono analogiche. Bisogna passare a sequenza di 01. Per passare ad una rappresentazione digitale si deve approssimare. Per rappresentare il suono all’interno del computer si deve approssimare facendo campionamenti sull’onda, si va a prendere in considerazioni solo un numero di istanti di tempo. Invece di aere tutti gli infiniti stati di tempo e i rispettivi valori del suono, si campiona il suono. Rilevo quanto vale l’ampiezza. Il telefono usa 8000 campionamenti al secondo, numero di campionamenti fatta in un secondo. 8kHz—> unità di misura Hertz corrisponde a 1/secondo, numero di campionamenti ogni secondo. Quindi maggiore è la frequenza dei campionamenti, migliore sarà la precisione con cui il segnale viene memorizzato e la fedeltà all’originale. Occorre discretizzare anche l’ampiezza di ogni campione, per poterla esprimere con un numero binario. Si approssima anche il livello di ampiezza. Ci sarà un peggioramento ma non posso fare altrimenti. A ogni livello viene assegnata una sequenza binaria. Ogni campione viene approssimato al livello più vicino e quindi ogni campione sarà quindi espresso dal numero binario corrispondente al livello più prossimo. La sequenza dei valori numerici ottenuta dai campioni è quindi digitalizzata, si ha una discretizzazione in tempo e una sul valore. Diversi formati: mov, wav, mpeg, avi, midi. Formato midi—> codifica lento e gli strumenti che devono eseguirle: solo musica Formato mp3—> tecnica lossy, molto diffusa e molto efficiente (tecnica di compressione) Una sequenza di bit non ha significato di per sé. Come fa il computer a riconoscere una sequenza di bit come immagine, numero, lettera, video o musica? Utilizza dei metadati, ad esempio il formato del file. Un metadati indica cosa si sta rappresentando. ESERCIZI -il numero binario 1000100100100100100010 è pari —> vero, indipendente da quanto è lungo il bit meno significativo (a destra) è zero quando il numero è pari -il numero binario 11111111111111111 è una potenza di due—> falso, non è una potenza ma è il massimo numero esprimibile con 17 bit -il numero binario 100000000000 è una potenza di due—> vero, perché tutte le potenze di due hanno questa forma -il numero binario 1111111111 è il più grande numero esprimibile in binario con 10 bit—> vero -a quale numero decimale corrisponde il numero binario 100101101-> 301 -a quale numero binario corrisponde il numero 202-> 11001010

-un suono campionato alla frequenza di 1024 Hz occupa 20 KB. La dimensione dei campioni è di 16 bit. Qual è la durata del suono? Durata del suono? Frequenza campione 1024 Spazio 20 KB Dimensione 16 bit Dimensione campione 2 byte, dimensione file 20KB(1024) Numero complessivo campioni—> 20KB/ 2 b= 1024x10= 10240 campioni 1024Hz= 1024 campioni al secondo; 10240/1024= 10 secondi -un secondo di suono campionato a 512 Hz occupa 1Kb. Quanti valori distinti possono avere i campioni? Dimensione del campione? Frequenza campione 512 Hz Durata del suono 1 secondo 512 campioni in totale Dimensione del file con il suono 1 KB Dimensione del singolo campione= 1024B (1 KB)/512= 2 byte-> 16 bit L’architettura dell’elaboratore La macchina di Von Neumann ha un nucleo fondamentale che è costituito da CPU e RAM. Sono presente i dispositivi di input/output e la memoria secondaria. La funzione della CPU è di elaborare i dati, è il processore che va ad eseguire le funzioni del computer. La RAM ha lo scopo di memorizzare per il momento e la memoria secondaria ha lo scopo di mantenere l’informazione. I dispositivi di input/output servono per interagire.

  1. Il computer lo avviamo e per funzionare programmi e dati risiedono in memoria secondaria. Quando il computer acceso c’è l’avvio del sistema operativo. Il sistema operativo quando il computer è spento risiede nella memoria secondaria.
  2. i programmi per essere eseguiti devono essere portati in memoria principale, nella memoria RAM. Così anche i dati per essere utilizzati dai programmi.
  3. la CPU, central processing unit , esegue i programmi eseguendo le istruzioni di cui sono composti.
  4. avviene l’input/output e la memorizzazione su memoria secondaria. RAM La memoria principale insieme alla CPU è una componente fondamentale del calcolatore perché permette di memorizzare sia il programma che i dati. Fisicamente è formata da componenti elettronici come transistor, resistenze e condensatori miniaturizzati. Ogni unità elementare può trovarsi a due livelli di tensione elettrica (o carica del condensatore): ecco il corrispettivo fisico del bit. La RAM è strutturata con una sequenza di celle o locazioni di memoria. Abbiamo tante celle ciascuna contenente 8 bit, ogni cella memorizza 1 byte. Quali operazioni si possono compiere sulla memoria? -lettura del contenuto di una cella -scrittura in una cella Per leggere e scrivere in una cella è necessario conoscerne l’indirizzo. Specificando l’indirizzo di una cella, la CPU è in grado di leggere e/o modificare il valore del byte memorizzato in quella cella. Gli indirizzi delle celle vengono espresse con sequenze di bit, codificano il numero. Lo spazio di indirizzamento è l’insieme o il numero delle celle indirizzabili direttamente. Il numero delle celle indirizzabili è una potenza di 2; con: -16 bit si indirizzano 2^16 = 65536 celle -32 bit si indirizzano 2^32 = 4294967296 Il numero di celle indirizzabili= numero di informazioni rappresentabile con un certo numero di bit.

Dimensioni della memoria L’unita di misura della memoria è il byte. Si usano dei multipli: -Kilobyte= 1024 byte 2^10 byte -Megabyte= 1024 kilobyte 2^20 byte -Gigabyte= 1024 megabyte 2^30 byte RAM —> Random Acess Memory, memoria ad accesso casuale. Si chiama così perché si può accedere direttamente alle varie celle, una volta noto il loro indirizzo; il tempo necessario per accedere ad una cella è lo stesso, indipendentemente dalla posizione della cella nella frequenza. Il termine “random” indica proprio il fatto che non vi sono differenze nell’accesso alle varie celle della memoria. Caratteristiche:

  • la RAM è veloce : il tempo di lettura/scrittura di una cella è compreso in media tra 5- nano secondi -la RAM è volatile : formata da componenti elettronici, se viene tolta dall’alimentazione anche per un breve periodo di tempo, tutto ciò che contiene viene perso -la RAM è relativamente costosa ROM Significa Read -Only Memory, è una memoria in sola lettura, non può essere modificata e non può essere volatile. Questa memoria serve per l’avvio del computer, è veloce quasi quanto la RAM, conserva le informazioni anche quando la macchina è spenta, sono circuiti in cui sono scritti i codici per far avviare la macchina. Gli aggiornamenti servono ad avere la versione più robusta del sistema operativo. La ROM è una memoria a parte. La ROM si trova nella zona della CPU e RAM. MEMORIA CACHE È una memoria più veloce della RAM ed è più costosa, è localizzata tra la CPU e la RAM. Questa memorizza i dati di uso più frequente, evitando alla CPU di doverli recuperare tutte le volte dalla RAM. Influisce pesantemente sulle prestazioni e sul costo della CPU. Le dimensioni tipiche sono 512KB CPU La CPU, central processing unit, esegue i programmi scritti in linguaggio macchina. I programmi sono sequenze di istruzioni in linguaggio macchina. Le istruzioni sono comandi elementari ad esempio: somma due numeri, leggi la memoria, scrivi in memoria, confronta due numeri… La CPU è in grado di eseguire un numero limitato di istruzioni che si suddividono in:
  • aritmetiche, logiche
  • di salto
  • di lettura/scrittura in memoria
  • lettura/scrittura verso dispositivi I/O Combinando in modo diverso queste sequenze anche molto lunghe di istruzioni si possono fare svolgere al computer compiti completamente diversi. La CPU è formata da:

Control unit Arithmetic Logic Unit Registri Control unit È la parte più importante, ha le funzioni di eseguire le istruzioni dei programmi, coordina le attività del processore e controlla il flusso delle istruzioni tra il processore e la memoria. Non ha il compito di controllare. Il processore di un computer esegue in modo ciclico le attività fetch-decode-execute

  1. fetch, preleva dalla memoria principale la prossima istruzione da seguire
  2. decode, decodifica l’istruzione e preleva gli operandi specificati
  3. execute, esegue l’istruzione utilizzando la componente opportuna e memorizza i risultati e ricomincia. Viene chiamato ciclo della macchina. L’esecuzione prevede l’invio dei comandi opportuni all’unità relativa: -calcoli -> Arithmetic Logic Unit -lettura/scrittura dati -> memoria

della prossima istruzione da eseguire

  1. Il registro program counter contiene l’indirizzo 1 quindi viene letta da RAM l’istruzione all’indirizzo 1
  2. Viene memorizzata nel registro instruction register
  3. La control unit incrementa l’indirizzo contenuto nel registro program counter, apprestando la CPU all’esecuzione dell’istruzione seguente
  4. La control unit decodifica l’istruzione OUT 3
  5. Dato che si tratta di un’istruzione di output, la esegue dando comando all’unita di output
  6. EXECUTE alla stampante Memoria secondaria e dispositivi di input e output Memoria Secondaria È un componente fondamentale perché una memoria aggiunta per superare limitazioni della RAM. È una memoria capiente, è relativamente poco costosa e non è volatile ma è lenta. La CPU può eseguire ed elaborare esclusivamente programmi e dati che risiedono in memoria principale. I programmi e i dati risiedono in memoria secondaria, perciò devono essere copiati in memoria principale. Quando si esegue un programma, il sistema operativo lo copia da memoria secondaria in RAM; l’operazione si chiama loading o caricamento. È composta da: supporti di memorizzazione e dispositivi di memorizzazione. Il supporto è il componente fisico in cui vengono immagazzinati i dati; i dispositivi leggono e scrivono i dati dal o sul supporto di memorizzazione. Il supporto è ad esempio il dvd il dispositivo è il lettore dvd. La memoria secondaria è realizzabile con tecnologie diverse come magnetiche, ottica, flash allo stato solido. La memoria magnetica sfrutta il fenomeno fisico della polarità, sul supporto sono presenti particelle magnetiche. La testina di lettura o scrittura cambia o rileva la polarità delle particelle. Prese due particelle magnetiche adiacenti, stessa polarità-> 0; diversa polarità-> 1 La memoria ottica sfrutta la riflessione della luce di un laser. Sul supporto sono presenti delle minuscole scanalature. Gerarchia di memoria È una classificazione ragionata, nel senso che si possono leggere queste memorie in funzione di 3 modalità: dimensioni, costi e tempi di accesso. REGISTRI -> un centinaio di byte milionesimi di microsecondi CACHE -> decide di migliaio kilobyte millesimi di microsecondi MEMORIA PRINCIPALE -> gigabyte centesimi di microsecondi DISCO FISSO -> centinaia di gigabyte-terabyte decine di microsecondi SUPPORTI ESTERNI -> centinaia di gigabyte-terabyte millisecondi di secondi Dispositivi input e output Servono a comunicare e interagire con l’elaboratore; non necessariamente con un essere umano. I dispositivi input sono tastiera, mouse, microfono, scanner, fax. Dispositivo output sono stampanti, video proiettori, casse. Questi dispositivi si collegano con il bus: linea di comunicazione per la trasmissione di informazioni tra i vari componenti del sistema. Fisicamente, è un insieme di collegamenti; tutti i componenti dl sistema sono collegati al bus. Il bus di sistema che collega la CPU ad altri dispositivi del computer. Il bus locale è un’evoluzione del bus di sistema per il collegamento Il sistema operativo Il software L’hardware da solo è soltanto un insieme di ferro, plastica e silicio e non è sufficiente per il funzionamento dell’elaboratore. Occorre utilizzare i software che è un insieme di programmi che permettono di trasformare un insieme di circuiti elettronici in un oggetto in grado di svolgere funzioni di varia natura. I computer sono programmabili: possono svolgere compiti diversi in base a istruzioni contenute nei programmi. Il sistema operativo è invece un insieme di programmi che interagiscono e cooperano tra di loro per:

- Gestire efficientemente il computer e le sue specifiche

Velocità e costo

- Creare un ambiente virtuale per facilitare l’interazione uomo-macchina

Il software di base coincide con il sistema operativo. Es. stampa di un file che si chiama “documento” A livello fisico questa operazione è complessa e richiede operazioni coordinate dalla CPU. Il sistema operativo fornisce all’utente un comando di stampa. Il sistema operativo esegue un comando seguendo i seguenti passi:

  1. Verifiche si si tratta di un comando valido
  2. Lo traduce per la macchina fisica
  3. Eseguito il comando, a) fornisce un riscontro all’utente b) si pone in attesa di un nuovo comando da parte dell’utente Funzioni svolte dal sistema operativo Si occupa dell’accensione e configurazione della macchina, il bootstrap. Si occupa della gestione del processore, della gestione della memoria sia principale (RAM) e virtuale, offre un linguaggio ad alto libello per l’interazione con l’utente e si occupa della gestione e dell’accesso alle informazioni su memoria secondaria il File System. Si occupa in oltre della gestione e deluso ottimale delle risorse di input/output; fa da supporto per le comunicazioni tra elaboratori, ai programmi applicativi come installazione e accesso alle risorse di sistema Bootstrap Il computer è spento, la RAM è vuota, per far partire il computer si mettono i programmi in memoria secondaria. Il sistema operativo e le altre app sono in memoria secondaria, per caricare i programmi in memoria secondaria ci serve il file System, cioè il sistema operativo ma questo risiede in RAM. Usiamo un piccolo programma chiamato BIOS che ha il compito di caricare un pezzo del sistema operativo e lo trasporta da memoria secondaria a RAM. Ma questo BIOS è un programma e quindi dove si trova? Si trova nella ROM, già impresso nel circuito. All’avvio della macchina viene immediatamente eseguito il programma BIOS presente nella ROM che va poi nella RAM. Non si può memorizzare direttamente il sistema operativo nella ROM? No perché la ROM è a sola lettura significa che non è modificabile. Il sistema operativo cambia con gli aggiornamenti. Bootstrap : all’accensione della macchina, un programma, BIOS, in ROM cerca sulla memoria secondaria il sistema operativo e ne carica una parte in RAM. È possibile impostare un ordine di ricerca per l’avvio della macchina. L’ordine tipico è floppy disk, cd/dvd, Hard disk. Live cd contiene un sistema operativo che non necessita di installazione su hard disk. In seguito viene poi caricata la prima parte del sistema operativo, questo comprende:

- i programmi per gestire processi e CPU

- I programmi per gestire la memoria

- I programmi per gestire le periferiche e I/O

- I programmi per gestire i File System

- Il programma che crea l’interfaccia grafia o testuale per l’utente

Parte dei programmi del sistema operativo devono sempre essere mantenuti in RAM per essere sempre pronti per l’esecuzione. All’avvio vengono identificati tutti i dispositivi di memoria secondaria e tutte le periferiche e vengono avviati i relativi programmi di gestione (driver). Alcuni sistemi verificano anche lo stato delle risorse hardware, per esempio lo stato dei dischi. Gestione dei processi I moderni sistemi operativi sono multitasking ovvero è possibile eseguire più programmi allo stesso tempo. Come possono eseguire più programmi contemporaneamente? Il sistema operativo alterna i programmi assegnando la CPU a turno:

  1. In ogni istante un solo programma è eseguito è eseguito dalla CPU
  2. Se l’alternanza è frequente si ha l’impressione che i programmi vengono eseguiti contemporaneamente. Se un programma effettua un’istruzione di I/O che succede? Il sistema operativo assegna la CPU a un altro processo e la restituisce al primo quando l’I/O è terminato.

Protocolli di comunicazione —> è necessario disciplinare la comunicazione sulla rete per evitare il caos. In una telefonata seguiamo un semplice protocollo: il chiamante conosce il numero del destinatario, il destinatario identifica il chiamante, gli interlocutori parlano la stessa lingua e parla un solo interlocutore per volta.

• In una comunicazione tra due calcolatori: il calcolatore chiamante conosce l’indirizzo del

calcolatore destinatario, il destinatario identifica l’indirizzo del chiamante, i calcolatori parlano la stessa lingua e infine generalmente trasmette uno alla volta. Protocollo: insieme di regole che definisce in modo preciso tutto gli aspetti della comunicazione. Il protocollo definisce:

- come è strutturato un messaggio

- Come associare un indirizzo all’elaboratore

- Quale percorso far eseguire ai messaggi per arrivare a destinazione

- Come rilevare e gestire gli errori di comunicazione

Il protocollo usato in internet e anche nella maggior parte delle altre reti è TCP/IP Transmission Control Protocol/ Internet Protocol. Come si connettono due computer tra di loro? Non è possibile collegare fisicamente e direttamente ogni computer a tutti i computer con cui comunica. Ci sono due tipologie di connessioni basate sul fatto che la connessione è indiretta attraverso nodi intermedi. Il collegamento indiretto ha due tecniche: commutazione di circuito o commutazione di pacchetto. La commutazione di circuito è la normale rete telefonica. Ogni telefono è collegato a un centrale la quale a sua volta è collegata ad altre centrali. Quando si telefono, la chiamata instauro un circuito: tutte le risorse necessaria vengono prenotate ad uso esclusivo all’inizio della connessione. Le centrali “costruiscono” un percorso tra chiamante e chiamato che dura tutto e solo il tempo della chiamata. Gli svantaggi sono: si verifica il circuito occupato anche se la banda non è usata interamente quindi gli altri calcolatori non possono utilizzare i collegamenti finché il circuito non viene rilasciato quindi c’è poca efficienza. I vantaggi sono la garanzia di servizio: dato che le risorse necessarie sono prenotate, la banda è costante e garantita. La commutazione di pacchetto è la tecnica usata per internet. La base è che si rinuncia alla garanzia di servizio per aumentare l’efficienza. Si fa il Best Effort delivery-> non abbiamo nessuna garanzia ma il servizio fa il meglio possibile a seconda della situazione. Non c’è garanzia di servizio ma il vantaggio è che abbiamo risolto il problema dell’efficienza. Il sistema organizza i dati in pacchetti che vengono buttati sulla rete e attraverso la rete raggiungono il destinatario; non ci sono risorse riservate alla comunicazione. Messaggi vengono suddivisi in pacchetti di dimensione fissa, ogni pacchetto contiene l’indirizzo del mittente e del destinatario ed è trasmesso separatamente. Ogni pacchetto può seguire un percorso diverso ed infine il destinatario riassembla i pacchetti per formare il massaggio. Quindi l’ordine dei pacchetti può non essere mantenuto durante la trasmissione infatti il destinatario attende tutti i pacchetti per ricomporre i messaggi. Ogni pacchetto occupa il mezzo trasmissivo per un breve tempo quindi si ha un effetto di parallelismo, per cui un elaboratore può essere coinvolto in più comunicazioni contemporaneamente. Pacchetto IP contiene lo spazio per scrivere: informazione, un numero progressivo per identificare e l’indirizzo IP del destinatario. Come fare arrivare i pacchetti a destinazione? Chi sceglie la strada da fare? Ogni nodo conosce i nodi vicini e in particolare sa come fare a smistare i pacchetti in arrivo. Ogni nodo ritrasmette i pacchetti ricevuti al nodo più vicino alla destinazione, questo processo si chiama instradamento. I nodi possiedono una tabella che indica per ogni destinazione a quale vicino trasmette il pacchetto. Inoltre la scelta del nodo di inoltro dipende anche da situazioni temporanee di carico della rete, guasti, alternative di inoltro… In caso di guasto i pacchetti passano da un altra parte, è presente una connettività maggiore. Cosa succede quando ci colleghiamo da casa? Dall’elaboratore di casa al provider è un atto di collegamento di commutazione di circuito, la linea risulta occupata. Dal provider a un altro punto sulla rete internet è in corso una commutazione di pacchetto. Ci sono due modo per classificare reti:

  • Topologia, in base a quali collegamenti esistono tra i calcolatori:

- a anello -> i nodi sono collegati in una struttura circolare, ogni nodo è collegato solo ad altri due

nodi, il segnale emesso da un nodo passa al successivo, finché non raggiunge il destinatario, viene trasmesso al nodo seguente

- a stella -> i nodi sono collegati a un nodo centrale, la comunicazione tra due nodi avviene

attraverso il nodo centrale, l’informazione trasmessa da un nodo viene smistata dal nodo centrale verso il nodo di destinazione

- a bus -> tutti i nodi sono collegati a una stessa linea, il segnale emesso da un nodo percorre

tutta la linea

- Punto-punto -> i nodi sono collegati a coppie e operano allo stesso livello, la comunicazione è

diretta tra due nodi Esistono anche topologie miste.

  • Estensione, in basa all’area coperta dalla rete:

- Rete personale, Personal Area Network ->collega due dispositivi vicini a un utente. Raggio di

una decina di metri, spesso sono wireless o usano bluetooth

- Rete locale, local Area Network -> collega due computer in un’area non più vasta di un palazzo

- Rete metropolitana, Metropolitan Area Network -> una rete locale, collega i computer di una

singola organizzazione in un’area delle dimensioni di una città

- Rete geografica, Wide Area Network -> collega computer distribuiti su aree molto vaste.

Internet È la rete delle reti. Cioè, collega fra loro tutte le reti locali, metropolitane, geografiche e singoli computer di tutto il mondo. Internet con la i minuscola vuol dire reti locali collegare tra di loro grazie a protocolli TCP/IP. Internet con la i maiuscola specifica internet che collega fra di loro reti locali di tutto il mondo. È nata a partire dagli anni ’60 in ambiente accademico USA con finanziamenti militare; l’idea centrare era quella di collegare tra di loto reti indipendenti. Internet con la i minuscola è un modo per connettere due reti. Per connettere due sottoreti occorre un calcolatore che si possa collegare ad entrambe le sottoreti. Il calcolatore che si attacca alla due sottoreti deve essere in grado di far passare i pacchetti da una sottorete all’altra, quando chiesto. Questi calcolatori che intercorrono due o più sottoreti e che sono capaci di passare i pacchetti da una sottorete all’altra si chiamano internet gateaway o internet router; quando un router inoltra un pacchetto proveniente da una sottorete ad un’altra sottorete svolge IP forwarding. Le reti locali si collegano a internet tramite un dispositivo chiamato router. Applicando questa metodologia otteniamo internet con la i maiuscola. I computer connessi in rete sono host. Ogni elaboratore deve possedere un nome, altrimenti sarebbe impossibile comunicare con esso-> naming. Il nome si chiama indirizzo e viene usato per identificare l’elaboratore e per localizzare l’elaboratore nella rete. Un elaboratore possiede due tipi di indirizzi: IP e indirizzo logico. Gli indirizzi ip sono numerici e hanno attualmente un formato a 4 byte. Ad esempio 130.192.156.1 -> 130.192= identifica la rete dell’università di Torino -> .156= rete locale del dipartimento di informatica -> .1= identifica un elaboratore appartenente alla rete locale del Dipartimento di informatica Gli indirizzi IP permettono di localizzare un elaboratore, cioè di sapere a quale parte di internet è collegato in modo da recapitargli i messaggi. L’indirizzo IP in ciascun byte non si supera il 255 perché 2^8 fa 256. Se un indirizzo IP è comporto da 4 byte, quanti elaboratori possono essere collegati contemporaneamente? Con 32 bit possiamo rappresentare circa 4 miliardi di elaboratori. Gli indirizzi IP sono utilizzati dai programmi di comunicazione, ma sono ostici per gli umani quindi possono avere un nome logico, più semplice e intuitivo. Gli indirizzi logici sono composti da due o più parti separate da punti, ad esempio www.unito.it Specificano domini, sottodomini, sotto-sottodomini e così via fino a identificare il singolo elaboratore collegato in rete. I domini di primo livello possono essere:

- geografici : .it-.uk-.de

- generici : .com-.org-.edu

- unito.it: unito è il sottodominio

- pianeta.di.unito.it : identifica l’elaboratore “pianeta” appartenente al sotto- sottodominio del

dipartimento di informatica Per localizzare un elaboratore occorre conoscere il suo indirizzo IP. Il DNS è il servizio che gestisce la traduzione tra indirizzi logici e indirizzi IP. Internet offre servizi come: posta elettronica, Voice over IP, videogiochi, file sharing, Instant messanging e World Wide Web.

database è quello di memorizzare grandi quantità di informazioni in modo da facilitare la modifica e il reperimento. Prima soluzione: Il file System è una soluzione ma ha svantaggi come l’organizzazione dei file a carico dell’utente e quando sono tanti i dati i file diventano difficili da gestire. Seconda soluzione: foglio elettronico dove si trova una difficile condivisione tra più utenti ed è difficile reperire informazioni. Quindi l’unica soluzione è la base di dati ovvero database. I sistemi informativi organizzano e gestiscono le informazioni necessarie alle attività di un’organizzazione, inizialmente questi non erano automatizzati. I database sono adatti a memorizzare dati omogenei che devono essere strutturati come i dati all’anagrafe; sono gestiti da DBMS, database management System , sistema di gestione di basi di dati. Il DBMS è indispensabile. I vantaggi dei DBMS sono:

  • permettono di considerare i dati come risorsa di un’organizzazione, risorsa precisa e riutilizzabile
  • offrono un modello formale della realtà di interesse, risorsa comune a disposizione di molteplici utenti e applicazioni.
  • controllo centralizzato dei dati, permette la riduzione di ridondanze e incoerenze.
  • indipendenza dei dati, sviluppo di applicazioni flessibili e modificabili Gli svantaggi dei DBMS sono:
  • complessi, costosi, hanno specifici requisiti in termini di software e hardware
  • Difficili separate servizi utili da quelli inutili
  • Inadatti alla gestione di poche informazioni condivise da un numero basso di utenti Un DBMS gestisce insieme di dati: grandi, persistenti e condivisi (se non c’è condivisione non c’è DBMS), garantendo: affidabilità, privatezza, efficacia ed efficienza. Quando si ha la condivisione inevitabilmente c’è la concorrenza in quanto nello stesso momento più applicazioni possono accedere al medesimo dato, tali accessi non devono interferire tra loro per garantire l’integrità dei dati. I database forniscono meccanismi per gestire la concorrenza e regolarmente gli accessi.

- AFFIDABILITÀ: garantisce il contenuto del DB in caso di malfunzionamenti hardware o

software, i dbms danno backup e recovery

- PRIVATEZZA: gli utenti svolgono solo determinate azioni sui dati, con meccanismi di

autorizzazione

- EFFICIENZA: le operazioni devono essere svolte in tempi accettabili per l’utente nonostante la

grande mole di dati. Quindi i dbms cercano di utilizzare meglio le risorse di spazio, memoria e tempo.

- EFFICACIA: cercano di rendere produttiva l’attività dell’utente, offrendo funzionalità articolate,

potenti e flessibili Gli utenti del database sono: l’amministratore della base dei dati che è responsabile della progettazione, controllo e amministrazione della base di dati; progettisti e programmatori di applicazioni e gli utenti. Per costruire i database vengono utilizzati dei modelli che è un insieme di concetti utilizzati per organizzare i dati di interesse e descrivere una struttura. Il modello logico dei dati viene adottato dei DBMS per l’organizzazione dei dati come ad esempio il modello relazionale. Questo modello è indipendente dal modo in cui i dati sono memorizzati internamente descrive i dati a livello intermedio tra ciò che vede l’utente a livello dell’implementazione. Il modello relazionale viene introdotto negli anni 70 e successivamente affermato negli anni 80, attualmente è il modello di CB più diffuso: probabilmente ogni DB che incontriamo è relazionale. Questo modello è basato sul concetto di relazione e di tabella, ci sono concetti di natura diversa ma riconducibili l’uno all’altro. La relazione è la rappresentazione di un’entità complessa tramite attributi. Graficamente, una relazione può essere rappresentata da una tabella. Come nei fogli elettronici, sono organizzati in tabelle. Le entità, ovvero i fatti, compongono le righe che si chiamano Record; le caratteristiche delle entità sono le colonne ovvero Attributi; il valore di un attributo per una specifica entità compone le celle ovvero Campi. Tutti i record di una tabella hanno lo stesso formato, cioè gli stessi attributi. In una tabella devono essere definiti uno o più attributi attraverso i quali è possibile distinguere sempre qualsiasi coppia di record di una stessa tabella —> chiave primaria I software prendono in input un entity relationship e sputano il modello relazionale. Il modello relazionale è basato su tabelle organizzate in base a relazioni e insiemi.

Dati due insiemi A [1,2,4] B [a,b] AxB= 1,a-1,b-2,a-2,b-4,a-4,b Una relazione su insieme A e B potrebbe essere: 1,a-1,b-4,b Lo schema relazionale è come è fatta la tabella, come è intestata, l’istanza sono i valori, le tuple. Negli schemi ci sono i vincoli che esistono nella realtà come ad esempio due studenti con stessa matricola. La chiave è l’insieme di attributi usato per identificare univocamente le tuple di una relazione. La chiave è una superchiave minimale. L’insieme di tutti gli attributi di una relazione è superchiave della relazione. Un altro vincolo è quello di integrità referenziale, è un vincolo che riguarda Modello di Entità- Relazioni (entity relationship) La progettazione si divide in 2 fasi:

  1. Prima fase, progettazione concettuale
  2. Seconda fase, progettazione logica e fisica La progettazione concettuale fa riferimento a un modello concettuale dei dati. I modelli concettuali ci consentono di descrivere l’organizzazione dei dati a un livello di astrazione. La progettazione logica si occupa della traduzione dello schema concettuale nel modello di rappresentazione dei dati e fa riferimento a un modello logico dei dati. Il modello Entità- Relazione è un modello concettuale dei dati. Fornisce una serie di strutture (costrutti, astrazioni) atte a descrivere la realtà di interesse, ovvero per la descrizione dell’organizzazione dei dati a un alto livello di astrazione. La prima astrazione è l’entità. L’entità è una classe di oggetti che hanno proprietà comuni ed esistenza autonoma ai fini dell’applicazione di un interesse ad esempio nell’università “studente”; in quanto hanno caratteristiche comuni. Il triangolo è il segno usato per rappresentare le entità. Ogni entità ha un nome che la identifica univocamente. La seconda astrazione è la relazione. Rappresenta un legame logico tra due o più entità. L’occorrenza di relazione e una n-upla costituita da occorrenza di entità. Graficamente si raffigura con un rombo. Tra due entità possono esserci relazioni diverse. Ci possono essere anche relazioni a tre entità che è diversa da una relazione binaria, significa che le occorrenze sono triple e non coppie, non sono frequenti. Più frequenti sono le relazioni ricorsivi cioè avere una relazione tra entità e se stessa. Sono relazioni all’interno dello stesso insieme. Esempio l’impiegato ha dei colleghi all’interno degli impiegati. Gli elementi sono in relazione con elementi della stessa classe. Quando c’è questo tipo di relazione si possono specificare i ruoli per specificare la relazione. I collegamenti sono i segmenti che partono dal rombo. Esempio la RAM è componente del computer e computer che è composto dalla RAM. Gli attributi sono un altra astrazione, questi descrivono le caratteristiche di entità o relazioni che sono di interesse fini all’applicazione. Come ad esempio: cognome, stipendio, età… gli attributi si rappresentano con un segmento e un pallino che si collega con l’entità o con la relazione. Un attributo associa a ciascuna occorrenza di entità o di relazione un valore appartenente al dominio dell’attributo. Vuol dire che ogni attributo ha un dominio: se l’attributo e il voto è per forza un numero fra 18-30. Si possono avere anche attributi composti ovvero è comodo raggruppare attributi che presentano nel loro significato e uso, esempio l’attributo indirizzo è composto da via , civico e CAP. Ci sono impiegati che sono descritti da un codice, cognome, stipendio e età. Poi ci sono dei dipartimenti descritti da un nome e un numero di telefono. Poi abbiamo dei progetti che hanno nome, budget e data di consegna. Infine ci sono delle sedi descritte da città e indirizzo composto da numero civico, via e cap. C’è una relazione di composizione tra il dipartimento e le sedi. C’è una relazione di partecipazione tra impiegato e progetto, la partecipazione viene descritta dalla data di inizio. L’impiegato afferisce ai dipartimenti e quando iniziano il rapporto c’è una data, relazione impiegato- dipartimento, caratterizzata dalla data di affluenza. L’impiegato dirige il dipartimento, relazione impiegato-dipartimento.

Infine ci sono delle sedi descritte da città in modo univoco, e indirizzo composto da numero civico, via e cap. C’è una relazione di composizione tra il dipartimento e le sedi. C’è una relazione di partecipazione tra impiegato e progetto, la partecipazione viene descritta dalla data di inizio; la partecipazione è opzionale per gli impiegati perché 0,N; ogni progetto vede la partecipazione di almeno un impiegato perché 1,N. L’impiegato afferisce ai dipartimenti e quando iniziano il rapporto c’è una data, relazione impiegato- dipartimento, caratterizzata dalla data di affluenza. Il singolo impiegato può afferire ad un dipartimento e a uno solo 0,1; ad ogni dipartimento invece afferisce da 1 a infiniti impiegati 1,N. L’impiegato dirige il dipartimento, relazione impiegato-dipartimento. Un impiegato dirige un dipartimento 0,1; è un dipartimento ha uno e un solo dirigente fra gli impiegati 1,1. Il dipartimento compone una sede, relazione dipartimento-sede. Un dipartimento compone una ed una sola sede 1,1; la sede si compone minimo uno massimo N dipartimenti 1,N. Traduzione da E-R a Relazionale L’algoritmo riceve l’Input che è lo schema E-R e si trasforma in l’output è uno schema di database relazionale. L’algoritmo prevede due passi: la traduzione delle entità e la traduzione delle relazioni. 1 passo: traduzione entità -ogni entità genera una tabella -gli attributi diventano i campi della tabella -le identificazioni dell’entità sono chiavi della tabella -quando le identificazioni sono più di una, la chiave primaria sono i due attributi insieme -quando ci sono due chiavi, una è primaria l’altra è candidata es: matricola e codice fiscale. 2 passo: traduzione relazioni -si guarda la cardinalità delle relazioni -se la relazione è N:N-> si parte da E1(id1, attr1) e E2( id2, attr2) si traduce creando una nuova tabella R(id1, id2, attr), si mette la chiave della prima tabella, la chiave della seconda tabella e l’attributo della relazione. La chiave di questa nuova relazione è l’unione di id1 e id -bisogna aggiungere i vincoli a id1 e id2 perché nella nuova tabella nella parte id1 devono apparire valori che erano già presenti in id1 così come per id2. -se la relazione è 1:N-> si parte sempre da E1 e E2, ci sono due alternative che sono valide entrambe. 1. Si crea una nuova tabella R(id1, id2, attr) la chiave diventa soltanto id1, vuol dire che non dovrò mai ripetere i valori di E1. I vincoli sono come prima.

  1. Possiamo non creare la nuova tabella ma modificare una di quelle esistenti, modifichiamo la E che da (id1, attr1) diventa (id1, attr1, id2, attr), la chiave resta id1.

-se la relazione è 1:1-> si parte sempre da E1 e E2 e creo la nuova tabella R(id1, id2, attr). La chiave può essere sia id1 e id2, una è primaria e l’altra è candidata, si fanno poi partire i vincoli. Oppure possiamo modificare una tabella aggiungendo id2 facendola diventare chiave candidata, sia con una modello che con l’altro. ESERCIZI ESAME es. Dato questo schema bisogna costruire lo schema delle tabelle. Relazione molti a molti, N:N. 1 passo: traduzione entità Studente (matricola, nome cognome) Corso(codice, titolo, CFU) 2 passo: traduzione relazione Esame(matrStudente, codiceCorso, data, voto) es. Relazione uno a molti, 1:N

  1. Docente(matricola, cognome, ruolo) Dipartimento (nome, città)
  2. Afferenza (matrdocente, nomeDip, Data)