




































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
Una panoramica sull'informatica, definendo i concetti di computer, hardware, software, network, dispositivi periferici, input, output, dati, informazione, memoria e storage. Vengono inoltre spiegati i concetti di codice binario, conversione binario-decimale, bytes, BIT, ASCII, codifica e processore, con particolare attenzione alla processing unit e alla control unit.
Tipologia: Appunti
1 / 44
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





































computer = unione tra hardware e software, un dispositivo che accetta input, elabora dati, salva dati e produce output, in accordo ad un insieme di istruzioni (linguaggi di programmazione / applicazione) hardware = tutte quelle componenti elettroniche e meccaniche che definiscono fisicamente un dispositivo qualsiasi (PC, smartphone, laptop) software = un programma che dice al computer come eseguire un particolare compito network = due o più computer che sono connessi allo scopo di condividere e/ o scambiarsi dati, informazioni, programmi, applicazioni e servizi dispositivi periferici = utilizzati per espandere le capacità di input, output e salvataggio (storage) di un dispositivo, rappresentano qualcosa di esterno al computer, un oggetto opzionale che viene collegato alla macchina (es. cuffiette) input = qualsiasi tipo di dato sia fornito in ingresso ad uno o più computer output = un qualsiasi risultato prodotto dal computer dati = riferito a quei ‘simboli’ che rappresentano fatti, oggetti o idee, sono presenti nel computer allo stato grezzo, il computer deve elaborarli —> senza i dati il computer non lavora su nulla, non ha nulla da elaborare informazione = il risultato dell’elaborazione dei dati, che fornisce una sintesi rappresentativa ed esplicativa dei dati. Qualsiasi informazione deve essere rappresentata attraverso un linguaggio > codice binario memoria = area del computer che temporaneamente mantiene i dati in attesa di essere elaborati, registrati o forniti in output, può essere anche provvisoria storage = area del computer dove sono mantenuti permanentemente dati/ informazioni che non necessitano immediatamente di essere elaborati applicazione/servizio = collezione di algoritmi responsabili del controllo e del coordinamento di tutte le attività di un computer algoritmo = insieme di istruzioni, di operazioni, che eseguite in sequenza secondo la logica dell’algoritmo ci fa ottenere un determinato risultato
codice binario = un sistema di codifica che usa le cifre binarie 0 e 1 al fine di rappresentare lettere, cifre o altri caratteri all’interno di un computer o di un qualsiasi dispositivo elettronico. È detto binario perché dà solo due opzioni ossia 0 e 1, quindi meno scelte rispetto ad un dizionario > ha solo due possibilità, quindi meno possibilità di errore > dati precisi. Qualsiasi cosa che viene immagazzinata o recuperata da un dispositivo è rappresentata in codice binario. Si utilizza perché è più semplice. conversione binario > decimale = scrivere le potenze del due in ordine DECRESCENTE (partendo da 7) e sotto il risultato; partendo da destra metto il binario in posizione; vedo dove c’è l’1 e sommo i numeri corrispondenti conversione decimale > binario = scrivere solo i risultati della tabellina del 2 fino a 2 alla 7, partendo da sinistra; vedere tra questi qual è il numero più grande (inferiore a quello da convertire) e scrivere 1 sotto; sottrarre il numero di partenza a quello inferiore; il risultato della sottrazione sarà il nuovo numero di riferimento al quale dovremmo trovare inferiore e sottrarli se è pari finisce con 0; se è dispari finisce con 1 bytes = capacità di calcolo > i dispositivi elettronici veicolano le informazioni per mezzo di un numero fissato di byte (es. 16 bits= 2 bytes; 32 bits= 4 bytes; 64 bits= 8 bytes), il numero di byte identifica la potenza di un dispositivo maggiori bytes = maggiori prestazioni del dispositivo BIT (BInary digiT) = è l’unità di informazione attraverso la quale un dispositivo gestisce i tipi di informazione al suo interno. Un singolo BIT può avere solo due stati: 0 e 1, con un singolo BIT solo due elementi possono essere espressi: 1=A; 0=B. Per rappresentare tanti caratteri ci vogliono più BITS. Per rappresentare due elementi uso 1 BIT (0 e 1), se devo rappresentare quattro elementi uso 2 BITS (0 e 1; 0 e 1). 1 Byte —> 8 BITS > il numero esatto che ci vuole per rappresentare tutti i simboli/ massimo di volte che si possono unire 0 e 1. Attraverso l’uso dello stato di ogni BIT combinato con lo stato di altri BITS un ampio numero di elementi può essere rappresentato (es. 2 alla settima = 128 > possiamo rappresentare 128 elementi) ASCII (American Standard Code for Information Interchange) = tabella che contiene tutte le combinazioni per la traduzione degli oggetti in binario (traduzione di lettere in codice binario) codifica = metodo attraverso cui il computer standardizza il suo modo di parlare
Modello di Von Neumann = modello astratto base di quello che è un computer, composto da: memoria (MAR e MDR); processore (CPU) > processing unit (ALU e TEMP) e control unit (PC e IR); input (es. tastiera, mouse, hard disk); output (es. casse, stampante e hard disk) memoria = componente specifica del computer detta anche RAM , è un modulo che contiene dati e istruzioni che sono in esecuzione in maniera temporanea RAM (Random Access Memory) = è la rappresentazione della memoria di VN, una memoria temporanea che serve per calcolare, è organizzata come una sequenza di celle, ciascuna costituita da un singolo byte (8 bit). una cella di memoria è caratterizzata da un valore (il contenuto della cella stessa, come un numero binario) e da un indirizzo (grazie al quale possiamo raggiungere la cella). La lunghezza di una cella è dettata dal produttore del dispositivo, la quantità di celle dipende dalla dimensione della RAM utilizzata per quel dispositivo —> il numero di celle è quello che stabilisce la dimensione totale della RAM, spesso (quasi sempre) è una potenza di 2, troviamo sempre computer con 4, 8, 16 GB di RAM, raramente troviamo computer con 6, 12 GB di RAM. Le operazioni che possono essere eseguite all’interno della memoria sono di due tipi: load/ fetch = recuperare parti di dati e programmi, serve anche per leggere una locazione; store= immagazzinare parti di dati e programmi, serve anche per scrivere un valore x nella locazione A il tempo impiegato per fare un’operazione di fetch/store all’interno di una cella è lo stesso per tutte le celle. MAR (Memory Address Register) = registro della Central Processing Unit (CPU) —> si occupa degli indirizzi, li contiene MDR (Memory Data Register) = registro a cui ha accesso diretto l’Unità Aritmetica e Logica (ALU), si occupa dei dati, quindi contiene i valori delle celle
processore (CPU) = formato da processing unit e control unit, può effettuare operazioni di tipo:
firmware = è un programma integrato direttamente in un componente elettronico, lo scopo del programma è quello di “avviare” il componente stesso e consentirgli di interagire con altri componenti tramite l'implementazione di protocolli di comunicazione o interfacce di programmazione, è a stretto contatto con l’hardware e permette ai sistemi superiori di sfruttarlo. Il firmware più conosciuto è quello della scheda madre chiamato BIOS BIOS (Basic Input Output System) = è presente in ogni dispositivo che deve fare calcoli ed eseguire processi, è responsabile del corretto avvio del computer. Il BIOS è un software contenuto in un chip di memoria non volatile (permanente). Prima che il sistema operativo venga caricato il BIOS si occupa di fare diversi routine test denominati POST (Power On Set Test) per verificare il corretto funzionamento di tutto ciò che è installato nel dispositivo, lavora in maniera sequenziale, controlla tutte le app, una alla volta, per questo motivo è lento BOOTSTRAP = processo d’avvio attraverso cui il firmware è in grado di far partire il sistema operativo che si trova nel BOOT MBR (Master Boot Record) = viene sfruttato dal BIOS per avviare il firmware, il BIOS legge il contenuto del MBR e gli trasferisce il controllo, è una parte secondaria dove è posto il punto di inizio/avvio del sistema operativo (Boot Sector) UEFI (Unified Extensible Firmware Interface) = questo nuovo tipo di firmware sta sostituendo il BIOS nei computer moderni, controlla più app alla volta, controlla solo la CPU e la RAM singolarmente, per questo è più veloce e velocizza l’avvio del computer. L’interfaccia è molto più curata nei dettagli, non è più un interfaccia blu piena di scritte. UEFI utilizza GPT che è più potente di MBR Sistema Operativo (OS, Operating System) = il sistema definisce la modalità operativa del computer e definisce la modalità di utilizzo del computer da parte degli utenti, si colloca tra l’hardware della macchina e il software utilizzato dall’utente. Il sistema operativo sfrutta l’hardware e rappresenta l’ambiente in cui l’utente può operare. I sistemi operativi possono essere combinati all’interno di un dispositivo, si possono mescolare tra di loro, il sistema simula il parallelismo di poter usare più programmi contemporaneamente. sistema operativo batch = il computer esegue un programma, un solo programma alla volta, non fa più processi alla volta (computer vecchi) sistema operativo time sharing interattivo = il computer esegue più programmi alla volta condividendo il tempo a disposizione tra i processi attivi
sistema operativo real time = il sistema operativo garantisce l’esecuzione del programma in un tempo predefinito, si basa sulla velocità di reazione, quindi cercano di far ottenere output nel minor tempo possibile sistema operativo embedded = sistemi operativi che funzionano dentro i sistemi integrati —> sono dei sistemi operativi che non cambiano, non si possono aprire, sono stati creati apposta per quell’hardware sistema operativo hypervisor = sistema operativo che suddivide le risorse del computer per costruire più sistemi operativi dentro un unico sistema operativo attraverso l’operazione di virtualizzazione, dopo averli divisi li assegna ad utenti diversi I sistemi operativi possono essere: mono-task (mono programmazione) = gestisce un programma alla volta, dal punto di vista del task, un secondo programma può essere eseguito solo quando finisce quello prima (simile al batch) multi-task (multi programmazione) = il sistema operativo gestisce più programmi contemporaneamente, dedicando a ciascuno a turno un po’ di tempo di elaborazione (se è multi-task non è detto che sia multi-threading) multi-threading = un programma viene suddiviso in più thread, dei sotto processi, eseguiti contemporaneamente solamente quando gli si dà il comando. mono-utente = sistema operativo che gestisce un solo utente m u l t i - u t e n t e = s i s t e m a o p e r a t i v o c h e g e s t i s c e p i ù u t e n t i contemporaneamente. Se multi-utente e gestisce due account diversi, i dati si salvano tutti sulla stessa memoria ma sono accessibili solo da quell’account
SSD (Solid State Drive, Disco a Stato Solido) = sono dispositivi di storage che sfruttano la corrente e bruciano le celle (non letteralmente) di memoria, scrivendo dati in modo permanente. Gli SSD sono più leggeri, più resistenti, più veloci, più affidabili, più silenziosi e hanno un prezzo molto più alto rispetto agli hard disk risorse digitali = dati che sui dispositivi di memoria secondaria si archiviano, come i file di testo, immagini, video, suoni e in generale tutto ciò che è multimodale —> composta da più modalità, utilizza più modi per rappresentare cose (testo, audio ecc..) ipertesto = collegamento libero e interattivo fra informazioni poste in punti diversi di uno o più documenti, è composto da blocchi di testo e da interconnessioni fra questi blocchi che si attivano tramite un clic del mouse (es. wikipedia, quando cliccando su una parola in blu ci porta su un’altra pagina tramite un link) ipermedia = stesso concetto dell’ipertesto esteso all’integrazione di testo, grafici, animazioni ecc… immagini = le immagini possono essere immagini che rappresentano direttamente oggetti (immagini acquisite) oppure immagini generate artificialmente in qualità di simulazione di oggetti (immagini sintetizzate). Le immagini sono fatte di PIXEL —> valori numerici di colori che messi insieme formano l’immagine, più pixel abbiamo, più è grande la foto e più è pesante raster = è un metodo di rappresentazione dell’immagine, può essere definita come una collezione di pixel, i quali concorrono congiuntamente alla composizione di un’immagine all’interno di un reticolo discreto, la foto è molto ben dettagliata ma l’immagine pesa molto vettoriali = un immagine vettoriale può essere definita come una collezione di primitive, le quali concorrono congiuntamente alla definizione di un’immagine, l’immagine vettoriale usa funzioni matematiche o geometriche per rappresentare le immagini, queste sono immagini semplici, non complesse, come ad esempio i loghi dei brand, il vantaggio è che il file pesa poco scheduler (gestione dei processi) = si occupa degli stati dei processi init = stato iniziale di caricamento del processo di memoria: viene aperto il programma ready = il processo è pronto per essere eseguito ma non è ancora attivo running = il processo è in esecuzione da parte della CPU
terminated = il processo viene chiuso, è in corso di terminazione zombie = il processo ha concluso la sua esecuzione ma è ancora presente nella memoria RAM (uno stato di errore) waiting = il processo è sospeso in attesa di un evento, viene bloccato temporaneamente swapped = sposta la memoria RAM dei processi attivi meno utilizzati sull’hard disk, la memoria secondaria, così si libera la RAM e si possono aprire nuovi process, questi processi spostati sono più lenti a riaprirsi memoria primaria = è costituita dai registri della CPU, dalla memoria cache della CPU e dalla memoria RAM. La memoria primaria di una macchina è costituita da: stack = sistema dei dati in modo temporaneo che serviranno per una frazione di secondo, serve per delle funzioni veloci e non occupa tanto spazio, cresce, si carica, dall’alto verso il basso, si usa in funzioni e variabili; heap = cresce, si carica, dal basso vero l’alto, è un metodo di caricamento della memoria primaria che carica grandi quantità di dati; code segment = si trova sotto all’heap, contiene le istruzioni in linguaggio macchina del processo memoria virtuale = è la memoria che si usa in un dispositivo di storage per ampliare la memoria primaria, grazie alla memoria virtuale si effettua lo swap (scambio) = utilizza la memoria secondaria come se fosse primaria, le operazioni sono più lente a riaprirsi file = una sequenza di byte memorizzata sulla memoria secondaria che termina con il simbolo EOF (end of file) file system = è un modello astratto, una struttura attraverso cui il sistema operativo organizza la sua alberatura interna, ossia la struttura dei file e dei directory (cartelle) affinché possano avere uno scopo ben preciso e ogni cartella abbia una propria funzione. Il file system implementa meccanismi di protezione dei file, per restringere l’accesso ai soli utenti autorizzati e gestisce le richieste di accesso al file da parte dei processi
Donald Norman = uno dei più grandi esperti dell’usabilità, Norman identifica sette principi fondamentali per far si che un’interfaccia grafica sia definita come usabile: 1- conoscenza = riporta esempi del mondo reale, all’interno dell’interfaccia si sfruttano una serie di concetti che l’utente conosce già (attraverso la sua esperienza) per il sistema, così l’utente non deve studiarsi un nuovo sistema; 2- semplificazione = si fanno dei task facili per agevolare l’utente, bisogna rendere più semplici possibili i compiti da eseguire (nella semplificazione ci possono essere esempi di conoscenza); 3- visibilità = rende visibili le cose sul versante esecutivo, aiutando l’utente a capire cosa può fare e come può farlo, rende visibile e facilmente interpretabile sia lo stato del sistema sia il risultato di un’azione, riduce il GAP della valutazione GAP della valutazione = quantità di sforzo necessario per interpretare lo stato fisico del sistema GAP dell’esecuzione = distanza tra gli obiettivi dell’utente ed il modo di ottenerli tramite il sistema 4- correlazione = sistema attraverso cui si gestisce l’interfaccia, cerchiamo di collegare oggetti tra loro tramite il concetto di spazialità in maniera comoda, si può fare una mappatura ( mapping —> correlazione tra oggetti che devono avere un collegamento) 5- vincoli = 3 tipi di vincoli: fisici = progettazione fisica degli oggetti logici = utilizzano il ragionamento per determinare le alternative possibili culturali = dettati dalle convenzioni (legati alla cultura) 6- errori = bisogna interpretare ogni azione dell’utente come un tentativo di andare nella giusta direzione e quindi incoraggiarlo e non punirlo: (1) consentire di rimediare agli errori (es. tornare indietro) (2) prevenire gli errori (es. sicuro di voler cancellare) 7- standard = operazioni standard, esempio di funzionamenti arbitrari che risultano accettabili grazie agli standard principio di feedback = un sistema attraverso cui il sistema ci risponde con un feedback, tutto ciò che il sistema ci risponde alle nostre azioni, è un metodo per cui se rispetto dei vincoli mi rendo conto che funziona tutto, se faccio una cosa il feedback risponde
ICT (Information and Communication Technology) = branca che studia i sistemi informativi, si occupano di capire come vanno strutturate le infrastrutture del computer affinché si raggiunga uno scopo comune. Ogni sistema ICT è costituito da un insieme di elaboratori e sistemi di servizi, sia l’hardware che il software sono scelti in base alle specifiche caratteristiche del sistema IT/ICT; il ciclo di vita di un informazione viene gestito attraverso una base di dati che salvaguarda ogni informazione in essa contenuta, garantendo proprietà quali sicurezza, integrità etc; protocolli di comunicazione/trasmissione = consentono la comunicazione e lo scambio di informazioni utilizzando le differenti reti oggi disponibili sistema informativo (SI) = insieme di apparecchiature, procedure e persone che hanno il compito di raccogliere, scegliere, archiviare e comunicare le informazioni riguardanti l’attività di una realtà, il sistema informativo può essere definito come un sistema ICT che ha il compito di organizzare e gestire le informazioni necessarie per perseguire gli obiettivi. Il SI è caratterizzato dalle seguenti componenti:
database (base di dati) = grande contenitore di dati, informazioni etc, si parla di database solo quando si parla di grandi dimensioni; può essere configurato per far si che ospiti dati e informazioni in maniera strutturata, i database gestiscono un sacco di possibili problematiche che con i files non sono gestibili. I database non fanno si che si possano solo inserire i dati ma da qui possiamo anche prelevarli. Quindi un database è l’insieme di entità e relazioni riguardanti la porzione del mondo reale di cui vogliamo raccogliere informazioni DBMS (Database Management System) = applicazione che ci permette di interagire con i database, integrato con SQL, è il programma per gestire in SQL le nostre richieste sui database, i suoi dati si chiamano record. I suoi compiti: controllare le autorizzazioni, verificare l’integrità dei dati, interrogare e modificare il database (tramite SQL) smart city/smart world = concetto secondo il quale tutta la città/mondo è informatizzata unità di misura per il traffico su Internet = mega, giga (1 giga = circa un filmato), tera, peta, exa, zetta e yotta sistema informatico = parte del sistema informativo, appunto la sua parte informatica, si occupa ad esempio di detenere i dati in un database. un sistema informatico è quella porzione automatica del sistema informativo che gestisce le informazioni con tecnologia informatica approccio per files = i file vengono salvati in modo singolo, come se fossero oggetti a sé, se vogliamo inserire dei dati da qualche parte dobbiamo creare un file. Tramite questo approccio i dati sono duplicati per ogni software che li utilizza, si possono creare alcuni problemi dalla gestione separata delle stesse informazioni = presenza di duplicati, difficoltà di aggiornamento dei dati, possibile incoerenza tra le varie copie dei dati esistono due modelli che consentono di avere un’idea della struttura del database: modello in scala = “versione ridotta”, come un modellino, una miniatura. non è un buon modello per i database, va bene per delle strutture fisiche come i palazzi modello astratto = astrazione del problema per portarlo poi sotto un’altra forma (disegno), il modello astratto è più adatto per aiutarci a strutturare un database conoscenza astratta = riguarda i fatti generali che descrivono la struttura e la restrizione dei valori possibili
conoscenza concreta = le cose che effettivamente vogliamo rappresentare ci sono diversi modi per rappresentare i modelli astratti dei database: (1) modello logico gerarchico = i dati sono organizzati secondo una struttura ad albero, ogni albero è formato da una sola radice e da uno o più sottoalberi, il problema è che non ci sono collegamenti tra tutti gli oggetti del modello (2) modello a grafo = i dati sono organizzati come grafi, è ottimo per associare dati, è utile per i database che variano. è basato su due oggetti nodi e archi: quello che voglio rappresentare sono i nodi, i collegamenti tra gli oggetti sono gli archi. il problema è che è una rappresentazione un po’ macchinosa, bisogna indicare troppi dettagli per ogni arco e ogni nodo > troppe informazioni, spesso confusionario; (3) modello relazionale (o modello entità-relazione) = il modello più utilizzato, si basa sulla teoria degli insiemi e sulla logica, favorisce l’indipendenza dei dati, funziona meglio perché è graficamente comodo da rappresentare, è completo. È il modello più adatto per le basi relazionali entità = oggetti (astratti) che vogliamo rappresentare nel nostro sistema; relazioni = collegamenti tra questi oggetti (collegamenti tra entità), gli attributi possono anche essere parti di una relazione. Una relazione funziona da contenuto, al fine di collegare tabelle tra loro; attributi = caratteristiche delle entità e delle relazioni possiamo interagire con il database attraverso diversi linguaggi:
- (^) data definition language = consente di operare sulla struttura del database; - (^) data manipulation language = consente di operare sulla struttura e sui dati creati dal DDL; - (^) data control language = consente di operare sui permessi degli utenti, chi può accedere alle strutture e ai dati; - (^) query language = consente di estrarre informazioni dal database insiemi = collezioni di oggetti omogenei, servono per capire la gestione di un database, il corretto funzionamento del database, un insieme non ha elementi ripetuti, gli elementi non sono vincolati da una relazione d’ordine (gli insiemi si scrivono con la maiuscola, i componenti con la minuscola) gli insiemi possono essere: (1) intensionali = definiscono gli oggetti che sono nell’insieme con una frase (es. insieme dei numeri pari); (2) estensionali = nomino tutti gli oggetti che sono nell’insieme, faccio la lista completa di tutti gli elementi che lo compongono (es. 4, 2, 1, 3)
tipi di attributi:
- (^) semplici = gli attributi possono assumere solo un valore; - (^) multipli = gli attributi possono assumere più valori; - (^) composti = un attributo composto da altri attributi; - (^) opzionali = attributi che non sono obbligatori (opzionali) tabelle = con le tabelle possiamo rappresentare le entità e le relazioni, per crearle bisogna seguire delle regole struttura = non è il contenuto ma la tabella, quando creiamo un’entità non stiamo inserendo dati, stiamo solo dicendo come i dati devono essere inseriti vincolo = metodo per dare dei limiti a ciò che consento all’utente, il vincolo può essere restrittivo nei confronti del dominio concetto di istanza = l’istanza è ciò che è contenuto nella struttura/tabella ennupla = una riga di una tabella, una funzione che associa ad ogni attributo un elemento del suo dominio dipendenze funzionali = ci aiutano a mantenere dei vincoli logici, evitano inserimenti scorretti nelle tabelle, se io ho due attributi posso fare in modo che uno dipenda dall’altro. Attraverso un algoritmo possiamo controllare che la dipendenza rispetti i criteri ed i vincoli chiave = metodo per riconoscere un ennupla superchiave = una serie di attributi che identificano univocamente un ennupla, tutti gli attributi dell’entità possono essere superchiavi chiave primaria = è la superchiave con il minor numero di attributi (con meno dati ottengo più dati) identifica univocamente un insieme di attributi, il suo ruolo è quello di impedire agli attributi di essere duplicati incrementale = si utilizza per evitare che vi siano duplicati, quando metto un ID aggiungo 1, 2, 3, 4…. così saranno tutti diversi
forme normali = sono delle “regole” teoriche che aiutano nella funzione corretta delle strutture in modo ottimizzato affinché non ci siano errori di progettazione, normalizzano i dati del database e servono per creare correttamente le tabelle. le varie forme sono: prima forma normale (1NF) , seconda forma normale (2NF) , terza forma normale (3NF) , forma normale di Boyce-Codd (BCNF) , queste forme vengono applicate in sequenza: prima si applica la prima forma e vengono eliminati gli errori delle tabelle, poi la seconda forma e si ottimizza ancora, la terza forma normale fa altri lavori di ottimizzazione e l’ultima la rende praticamente perfetta linguaggio ER = un linguaggio visuale descrittivo (linguaggio grafico), sono schemi con cui noi possiamo indicare a qualcuno come è stato creato il nostro database, ci permette di creare un modello del mondo reale cosa ci serve per rappresentare un’entità: nome dell’entità, i suoi attributi, i tipi degli attributi ed eventuali vincoli sugli attributi record = un attributo composto formato da altri attributi che si può definire ogni volta che si specifica un attributo grado = è il numero di entità coinvolte nella relazione, quante entità sono collegate a quella relazione. relazione ricorsiva = grado 1 perché c’è solo un’entità collegata vincolo di cardinalità = serve ad indicare il numero di relazioni che si hanno tra ennuple di entità diverse collegate da una relazione, possono avere un minimo (min) e un massimo (max) come numero di collegamenti che possono essere effettuati da un’ennupla verso una altra ennupla, ciò vuol dire che dentro questa coppia che indica la cardinalità devo avere il numero minimo e massimo di collegamenti che possono essere messi insieme da una relazione valori di min e max: min 0= facoltativo, posso avere al minimo 0; min 1 = almeno 1 oggetto deve essere collegato; max 1 = al massimo mi posso collegare con 1 ennupla; max N = posso collegare tutti gli oggetti che voglio foreign key (chiavi esterne) = un mezzo per creare collegamenti tra oggetti