Introduzione all'Informatica: Attributi, Entità, Relazioni e Database, Slides of Computer Science

Una introduzione alle basi dell'informatica, spiegando concetti come attributi, entità, relazioni e database. Vengono descritti attributi come caratteristiche di entità e relazioni, con esempi di dominio e tipi diversi come multiplo, opzionale e composito. Le entità e relazioni vengono rappresentate attraverso l'esempio di una tabella di impiegati e relazioni come 'recita'. Il documento conclude con una spiegazione di come identificare righe univocamente attraverso chiavi e il funzionamento di query select-from-where.

Typology: Slides

2018/2019

Uploaded on 08/28/2019

annalaura-taverna-1
annalaura-taverna-1 🇬🇧

3

(1)

4 documents

1 / 14

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Modello Entità-Relazione (ER)
Entità: Sono oggetti del mondo reale di cui vogliamo memorizzare (salvare) informazioni.
Possono essere sia concrete che astratte. Esempi di entità sono i dipendenti e i clienti
di un’azienda, i prodotti in un magazzino, un viaggio, fermate di autobus, ecc. "
Relazioni: Sono collegamenti tra due o più entità. "
Attributi: caratteristiche di entità e relazioni. Ad esempio, gli attributi di un cliente
potrebbero essere nome completo, indirizzo, numero di telefono, indirizzo e-mail, ecc. #
Gli attributi hanno un dominio. Il dominio di un attributo è l'insieme di valori che l'attributo
può avere, e dipende dall'attributo stesso. Ad esempio, un nome cliente conterrà solo
stringhe (carattere senza numeri), mentre il totale del conto bancario dovrebbe essere un
numero maggiore o uguale a 0. #
Gli attributi possono essere di diversi tipi:
$Semplice: questi sono gli attributi che non possono essere divisi in altri attributi, ad es.
L'età di uno studente, lo stipendio di un dipendente, ecc.
$Multiplo: questi attributi possono assumere valori multipli, ad esempio l'elenco degli
esami di uno studente.
$Composto:Questi attributi possono essere suddivisi in più parti, ad es. l'indirizzo può
essere suddiviso in nome della via, numero, codice postale, ecc.
$Opzionale: Questi attributi non sono necessari, ad esempio Il numero della patente di
guida (dato che non tutti hanno la patente!) "
Entità e relazioni possono essere rappresentati: "
ENTITA’ ATTORE: nome, data di nascita, morte, nazionalità "
ENTITA’ FILM: titolo, anno "
Come possiamo collegare le entità film e attore? Tramite la relazione recita! "
Relazione «Recita» : Nome attore, titolo film
In questa relazione, il nome dell'attore si riferisce all'attributo di nome nell'entità «Attore»,
mentre il titolo del film si riferisce all'attributo del titolo nell'entità «Film» "
Quindi, un database è l'insieme di entità e relazioni riguardo alla parte del mondo reale di
cui vogliamo memorizzare informazioni. Gli oggetti memorizzati in un database come uno
studente specifico, un cliente specifico, un prodotto specifico, vengono chiamati ennuple.
Quindi, nella rappresentazione tabellare, le ennuple sono le righe e gli attributi sono le
colonne. Abbiamo visto anche i vincoli delle informazioni memorizzate in una ennupla.
Queste sono chiamate dipendenze funzionali e si scrivono nel modo seguente: X Y e
viene letto come X determina Y, dove X è il determinante e Y il dipendente. "
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe

Partial preview of the text

Download Introduzione all'Informatica: Attributi, Entità, Relazioni e Database and more Slides Computer Science in PDF only on Docsity!

Modello Entità-Relazione (ER)

  • Entità: Sono oggetti del mondo reale di cui vogliamo memorizzare (salvare) informazioni. Possono essere sia concrete che astratte. Esempi di entità sono i dipendenti e i clienti di un’azienda, i prodotti in un magazzino, un viaggio, fermate di autobus, ecc.
  • Relazioni: Sono collegamenti tra due o più entità.
  • Attributi: caratteristiche di entità e relazioni. Ad esempio, gli attributi di un cliente potrebbero essere nome completo, indirizzo, numero di telefono, indirizzo e-mail, ecc. Gli attributi hanno un dominio. Il dominio di un attributo è l'insieme di valori che l'attributo può avere, e dipende dall'attributo stesso. Ad esempio, un nome cliente conterrà solo stringhe (carattere senza numeri), mentre il totale del conto bancario dovrebbe essere un numero maggiore o uguale a 0. Gli attributi possono essere di diversi tipi:
  • Semplice: questi sono gli attributi che non possono essere divisi in altri attributi, ad es. L'età di uno studente, lo stipendio di un dipendente, ecc.
  • Multiplo: questi attributi possono assumere valori multipli, ad esempio l'elenco degli esami di uno studente.
  • Composto:Questi attributi possono essere suddivisi in più parti, ad es. l'indirizzo può essere suddiviso in nome della via, numero, codice postale, ecc.
  • Opzionale: Questi attributi non sono necessari, ad esempio Il numero della patente di guida (dato che non tutti hanno la patente!) Entità e relazioni possono essere rappresentati: ENTITA’ ATTORE: nome, data di nascita, morte, nazionalità ENTITA’ FILM: titolo, anno Come possiamo collegare le entità film e attore? Tramite la relazione recita! Relazione «Recita» : Nome attore, titolo film In questa relazione, il nome dell'attore si riferisce all'attributo di nome nell'entità «Attore», mentre il titolo del film si riferisce all'attributo del titolo nell'entità «Film» Quindi, un database è l'insieme di entità e relazioni riguardo alla parte del mondo reale di cui vogliamo memorizzare informazioni. Gli oggetti memorizzati in un database come uno studente specifico, un cliente specifico, un prodotto specifico, vengono chiamati ennuple. Quindi, nella rappresentazione tabellare, le ennuple sono le righe e gli attributi sono le colonne. Abbiamo visto anche i vincoli delle informazioni memorizzate in una ennupla. Queste sono chiamate dipendenze funzionali e si scrivono nel modo seguente: X→ Y e viene letto come X determina Y, dove X è il determinante e Y il dipendente.

Le dipendenze funzionali sono utili per evitare dati non corretti all'interno del database. Ad esempio, potrebbe accadere nella vita reale che un uomo muore prima di nascere? Naturalmente no, quindi abbiamo che la data di nascita determina la data di morte, o data di nascita [freccia] data di morte. Come possiamo sapere se una dipendenza funzionale è soddisfatta nella nostra tabella? Verifichiamo che se due righe della tabella hanno lo stesso valore del determinante, devono avere lo stesso valore anche sui dipendenti Volo (Determinante) →Partenza (Dipendente) Abbiamo anche visto come identificare in modo univoco ogni riga di una tabella. Questo è fondamentale, perché possiamo avere due righe identiche ma abbiamo bisogno di trattarli in modo diverso! Una società può avere due o più dipendenti con lo stesso nome che hanno lo stesso stipendio. Quindi come possiamo distinguerli? Con un insieme speciale di attributi chiamato chiave. La chiave può essere uno o più attributi che ci permette di identificare in modo univoco ogni riga della tabella. ID= 1, MARIO ROSSI, 1200 ID= 2, MARIO ROSSI, 1200 In questo caso la chiave della tabella è l'attributo Id, creato per superare la mancanza di una chiave. Non è obbligatorio creare l'attributo id, poiché una tabella può già avere un attributo che può essere utilizzato come chiave. Un esempio è la matricola di uno studente, perché non ci saranno mai due studenti con la stessa matricola !!! Per assicurare l'identificazione delle righe di una tabella, la chiave deve essere un attributo il cui valore è sempre diverso tra tutte le righe della tabella. Abbiamo anche visto come rappresentare graficamente le entità e le relazioni. Ciò è possibile attraverso il linguaggio ER. Un esempio di raffigurazione di un entità è la seguente:

IMPIEGATO

NOME/STRINGA

ETA’/INTERO>

STIPENDIO/INTERO>

Esempio: Relazione che ci consente di conoscere dove vivono gli impiegati Questa relazione ha un grado pari a due, perché lega due entità (impiegato e città). Quindi, la relazione (cioè il diamante) non deve essere conteggiata nel rapporto. Ogni relazione ha un vincolo di cardinalità, che indica quante volte un oggetto nel database può essere coinvolto in una relazione. Questo esempio dice che ogni dipendente può risiedere in una sola città, e una città arbitraria può essere la residenza di qualsiasi numero di dipendenti. Quindi, in generale abbiamo che i vincoli di cardinalità sono scritti come (min,max) Dove min è il numero minimo di occorrenze e max è il numero massimo. I valori di min e max possono essere:

  • min = 0 (non è obbligatorio) min = 1 (almeno 1) max = 1(al massimo 1) max = N (senza limiti) Come possiamo chiedere informazioni a un database? Utilizzando il linguaggio SQL. In dettaglio, abbiamo visto le seguenti operazioni:
  1. Creazione di tabelle
  2. Inserimento/eliminazione di righe
  3. Operatori: select distinct, select count, like, order by, min, max, sum, avg 4). Clausolaselect-from-where

IMPIEGATO

NOME

ETA’

CITTA’

NOME

VIVE

Esempi

  • create table nome_tabella ( nome_attributo dominio [vincoli], nome_attributo dominio [vincoli], [altri vincoli interni], [vincoli esterni]
  • create table Corso ( codice integer not null, nome character varying (100) not null, aula charachter varying (10) not null, primary key (codice)
  • create table Prodotto ( codice integer not null,) Nome integer not null, primary key (codice)
  • (^) insert into nome_tabella (attributo1,......attributoN)
    • values (valore1,……valoreN)
    • delete from nome tabella
    • Where condizione Esempi : insert into Studenti (Nome,Cognome) values (‘Mario’,’Rossi’) delete from Studenti Where nome=‘Mario’ and Cognome=‘Rossi’ Gli operatori si utilizzano insieme alla parola chiave select, e prendono come parametro la colonna sulla quale vogliamo applicare l’operatore. Esempio: Select avg (stipendio) Calcola la media della colonna stipendio. Il funzionamento è valido per tutti gli operatori La clausola select-from-where ci consente di chiedere informazioni al database. In dettaglio: select colonne della tabella che mi interessano from Tabella a cui voglio chiedere i dati where condizioni che mi consentono di selezionare soltanto le righe che voglio

Relazione Uno a Uno: In questo esempio, abbiamo una relazione tra la tabella Clienti e la tabella Indirizzi. Se ogni indirizzo può appartenere ad un solo cliente, questa relazione è "uno a uno". Solitamente questa relazione non è usata, perché è possibile aggiungere semplicemente una colonna (cioè un attributo) in una delle due tabelle e rimuovere la relazione. In questo caso, possiamo aggiungere direttamente l'attributo "indirizzo" all'interno della tabella Clienti. Cliente Cliente Cliente Indirizzo Indirizzo Indirizzo

Relazione Uno a Molti: Questo è il tipo di relazione più comunemente utilizzato. Prendi in considerazione un sito web di e- commerce, con le seguenti caratteristiche:

  • I clienti possono effettuare molti ordini.
  • Gli ordini possono contenere molti elementi. In questi casi avremmo bisogno di creare relazioni «Uno a Molti». Cliente Cliente Cliente (^) Ordine Ordine Ordine

Infine, abbiamo visto UML. UML è un linguaggio standard per specificare, visualizzare, costruire e documentare sistemi. È anche utilizzato nella creazione del database, per vedere come i diversi utenti interagiranno con il sistema (nel nostro caso, come gli utenti chiederanno informazioni al database). I diagrammi UML non sono fatti solo per gli sviluppatori ma anche per gli utenti aziendali, le persone comuni e chiunque sia interessato a comprendere il sistema. Il sistema non deve essere necessariamente software. Come abbiamo visto, ci sono diverse persone coinvolte nella progettazione di un sistema: Cliente Esperto di Dominio Analista di Sistema Designer Sviluppatore Software Utente Finale Manutentore del sistema Esempio di come interagiscono: Il Comune XYZ intende automatizzare la gestione delle informazioni relative alle multe effettuate sul suo territorio. In particolare, intende dotare ogni poliziotto di un dispositivo portatile che gli consenta di comunicare al sistema informatico il veicolo a cui è stata fatta la multa, il luogo in cui è stata fatta l’infrazione e la sua natura. Il sistema informatico comunicherà per posta la multa al cittadino interessato. Il Comune annuncia una gara d'appalto per la costruzione e la manutenzione del sistema, che è stata vinta dalla società ABC. Cliente : Municipio XYZ Esperto di Dominio : funzionario del comune o altro esperto designato professionista del codice stradale Utente Finale : Poliziotti Analisti di sistema, sviluppatori software, manutentori : impiegati dell’azienda ABC Ci siamo concentrati sugli schemi concettuali, ovvero i diagrammi dei casi d'uso. Un caso d'uso è un insieme omogeneo di funzionalità a cui accede un insieme omogeneo di utenti. Esempio: Commessi Ikea che vogliono verificare se un prodotto è disponibile Insieme di utenti : commessi Ikea Funzionalità : verificare la disponibilità di un prodotto Come mostrato in precedenza, chi interagisce con il sistema si chiama Attore Cosa caratterizza un attore? Il ruolo che ha interagendo con il sistema. Lo stesso utente può essere rappresentato da diversi attori (può avere diversi ruoli). Inoltre, diversi utenti possono essere rappresentati dallo stesso attore.

Ecco come attori e casi d’uso sono rappresentati: Come rappresentiamo l’interazione fra un attore e un caso d’uso? Con una freccia

Use Case

Abbiamo visto anche come specificare gli attori: In questo caso, A è un caso specifico dell’attore B In questo esempio, uno studente scontato è un caso speciale di studente Il Machine Learning (ML) insegna ai computer a fare ciò che viene naturale per gli esseri umani e gli animali: imparare dall'esperienza. Gli algoritmi di apprendimento automatico utilizzano metodi computazionali per "apprendere" le informazioni direttamente dai dati senza basarsi su un'equazione predeterminata come modello. Gli algoritmi migliorano adattivamente le loro prestazioni in quanto aumenta il numero di campioni disponibili per l'apprendimento. Applicazioni reali del ML:

  • (^) Finanza computazionale, per credit scoring e trading algoritmico
    • Elaborazione delle immagini e visione artificiale, per il riconoscimento facciale, il rilevamento del movimento e il rilevamento di oggetti
    • Biologia computazionale, per il rilevamento di tumori, la scoperta di farmaci e il sequenziamento del DNA
    • Natural language processing
  • Un algoritmo di apprendimento supervisionato prende un insieme noto di dati di input e risposte note ai dati (output) e forma un modello per generare previsioni ragionevoli per la risposta ai nuovi dati.
  • L'apprendimento non supervisionato trova modelli nascosti o strutture intrinseche nei dati. È usato per trarre inferenze da set di dati costituiti soltanto da dati di input, senza risposte.