Che materia stai cercando?

Riassunto esame Informatica, prof. Ferrara, libro consigliato Informazione, conoscenza e web per le scienze umanistiche, Ferrara Appunti scolastici Premium

Riassunto per l'esame di Fondamenti di informatica per scienze umanistiche, basato su rielaborazione di appunti personali e studio del libro adottato dal docente Informazione, conoscenza e web per le scienze umanistiche, Ferrara. Gli argomenti trattati sono: che cosa è l'informatica, la teoria di Shannon, il codice, il calcolatore elettronico.

Esame di Fondamenti di Informatica per Scienze umanistiche docente Prof. A. Ferrara

Anteprima

ESTRATTO DOCUMENTO

Livello fisico--> rappresentazione dei dati a basso livello attraverso uno schema fisico (file

sequenziali e di record), nascosto all'utente finale e gestito internamente dal DBMS relazionale.

Livello esterno--> visione dei dati all'utente esterno, attraverso schemi esterni chiamati viste.

{Ontologia, informatica--> introdurre nell'intelligenza artificiale basi di conoscienza in grado di

descrivere in maniera dichiarativa un dominio applicativo d'interesse (knowledge that). In seguito

verranno introdotti anche metodi di problem solving. La prima è basata su ontologie mentre la

seconda su meccanismi di ragionamento.

Semantic web--> espansione del web che consente l'interpretazione del linguaggio informatico dagli

utenti umani. Ciò avviene attraverso l'istituzione di ontologie in tutti i domini d'interesse.

Per ontologia si intende quindi:

-Un vocabolario condiviso, che descrive una determintata realtà d'interesse.

-Un formalismo (linguaggio), che consente di esprimere concetti, proprietà e relazioni attraverso il

vocabolario.

-Un insieme di regole, che specificano i concetti in modo coerente e non ambiguo.}

MODELLO CONCETTUALE

E' la struttura usata in fase di progettazione, che attraverso uno schema concettuale rappresenta la

realtà categorizzandoli in classi di oggetti e nelle loro relazioni. Descrive i dati in modo indipendente

dal modello logico.

Il sistema usato si chiama ER (entity relationship) dove abbiamo appunto le entità, che

rappresentano le categorie di oggetti aventi delle proprietà in comune (disegnati graficamente come

un rettangolo con all'interno il nome del gruppo), collegati, da un motivo logico, dalle relazioni

(rappresentati da un rombo con all'interno l'iniziale della relazione).

Alle entità e alle relazioni vengono aggiunti gli attributi, cioè determinate informazioni che

completano il quadro delle notizie (es. la data di nascita, la città di residenza di un autore). Gli attributi

si indicano con un cerchio vuoto.

Per evitare che nel software siano inseriti dati che si possano confondere, ad ogni entità va attribuito

anche un id, cioè un codice di identificazione utile al calcolatore per la distinzione di altri dati simili.

L'id viene indicato con un cerchio annerito e può essere anche esterno (es. quando due numeri di

matricola si possono confondere s eprovenienti da due università diverse). L'id solitamente

rappresenta la chiave interna dell'entità, e non può avere valore nullo.

Si possono inoltre formare gerarchie di generalizzazione, cioè una data entità può comprendere

un'entità di espansione minore che comunque mantiene le caratteristiche dell'entità principale (es. gli

studenti sono persone). Si tratta quindi di un legame di specializzazione, dove le entità principali si

chiamano entità padre mentre quelle minori entità figlie.

Tutti gli attributi dell'entità padre andranno anche alle figlie, mentre non è vero il contrario.

Le gerarchie possono essere totali, quando l'unione delle entità minori danno forma esattamente a

quella principale, oppure parziali, quando ciò non avviene.

Inoltre possono essere esclusive, quando i componenti delle entità minori non possono essere

mischiate ad altre (es. maschio-femmina), o sovrapposte, quando invece possono sovrapporsi (es.

lavoratore-studente).

Queste caratteristiche danno forma a quattro possibilità di combinazione.

Nello schema ER vengono rappresentate attraverso una freccia che parte dalle sottoclassi per

arrivare all'entità principale, tra parentesi devono essere indicate anche se sono intere o sovrapposte

e parziali o totali.

Le relazioni possono essere anche ricorsive, cioè legami logici fra elementi interni alla stessa entità

(es.opera e il suo seguito). Per distinguere le due direzioni possibili della relazione, si aggiungono due

termini che qualificano il ruolo dei due oggetti dell'entità.

La cardinalità corrisponde ai legami massimi e minimi che vigono fra due entità, precisamente al

numero di soggetti di un'entità che può interagire con l'altra (es. una persona può essere residente in

una sola città--> cardinalità max 1, cardinalità min 1. Una città invece può avere più persone-->

cardinalità max N, cardinalità min 0).

Le relazioni possono essere divise in 3 categorie: 1 a 1, corrispondenza unica, 1 a N, corrispondenza

unica a senso unico, N a N, non c'è corrispondenza unica.

MODELLO RELAZIONALE

E' il risultato della nozione di relazione matematica, cioè il prodotto fra ogni elemento di ogni dominio

per ogni elemento degli altri (prodotto cartesiano), da cui estrapoleremo solo le corrispondenze

corrette. La rappresentazione grafica avviene per mezzo di tabelle.

Inizialmente si forma una tabella per ogni entità, dove ogni colonna rappresenta un diverso attributo,

mentre le righe rappresentano i diversi inserimenti di dati.

L'insieme di righe si chiama tupla, l'insieme di colonne, attributo, e ogni casella si può definire cella.

Il numero delle righe si chiama cardinalità, quello delle colonne si chiama grado, le caselle contenente

i nomi delle colonne schema della relazione.

Lo schema è la struttura invariabile della tabella, mentre l'istanza è la parte variabile cioè da

immettere. La singola casellina è il valore della relazione.

Ogni colonna ha un insieme di informazioni dello stesso tipo. Le righe sono orientate ai valori, cioè

hanno un valore univoco che permette di riconoscermi nella riga.

[In informatica viene creato un dominio a seconda della tipologia del dato (testo, numero), ogni

colonna avrà lo stesso dominio]

Per inserire un valore nullo--> si usa il valore NULL. Inserendolo in una casella vuota, serve a far

funzionare la relazione anche se manca un'informazione non obbligatoria nelle righe. Questo valore

introduce una nuova istituzione di verità (non lo so, oltre a vero e falso).

Per trasformare nella tabella le gerarchie di generalizzazione--> vi sono tre possibilità: eliminare

le entità figlie e mantenere solo quella padre (quella usata), eliminare l'entità padre e tenere solo le

entità specializzate, oppure sostituire delle relazioni generiche a quelle di gerarchizzazione.

Devono quindi essere eliminate le gerarchie. Nel primo caso, dopo aver accorpato tutti i dati nell'unica

entità padre, per evitare perdite d'informazioni, bisogna inserire un ulteriore attributo (TIPO) che

definirà a quale sottoclasse appartiene al momento dell'inserimento. Nel caso di gerarchie totali il

valore non potrà essere nullo, nel caso di gerarchie esclusive il numero di possibilità da inserire sarà

uguale al numero di entità accorpate, nelle gerarchie sovrapposte dovrà esserci la possibilità di

inserire valori misti.

Per trovare una riga--> es. "Trova età < 20", "Trova età < 20 and/or città = 'MI'"

Tra le richieste possono vigere dei connettivi che influenzano il risultato dell'interrogazione, questi

connettivi sono and, or e not a.

A B AND A B OR A NOT A

V V V V V V V F

V F F V F V F V

F F F F F F

Per mettere in relazione due tabelle--> il metodo più semplice è di aggiungere un attributo alla

prima tabella riguardante la seconda, in cui verrà immesso il codice corrispondente della seconda

tabella. Questo nel caso in cui almeno una delle due entità abbia una corrispondenza univoca con

l'altra (film-produzione).

[Il fatto che tutte le caratteristiche di una realtà possano essere rappresentate esclusivamente

attraverso dei valori che descrivono i singoli oggetti, si chiama orientamento ai valori.]

Nel caso in cui le corrispondenze delle entità sono multiple (film-attori), si creerà un ulteriore tabella

che rappresenterà la relazione (PARTECIPA (film, attore)), in cui ogni riga sarà il legame di un

soggetto di un'entità con un soggetto dell'altra (Pulp Fiction-John Travolta, Pulp Fiction-Uma

Thurman). Bisogna mettere nella tabella anche gli attributi della relazione dello schema ER.

L'attributo o la tabella per mettere in collegamento le due tabelle si definisce chiave esterna, in

quanto contiene e gestisce le chiavi primarie. Può contenere valori nulli.

Per garantire una coerenza di dati--> il DBMS usa una serie di vincoli, che garantiscono che le

corrispondenze siano corrette e coerenti sia internamente che rispetto allo schema della base di dati:

-Vincoli di dominio--> funzione che permette di confinare dei valori entro un certo range (es. età > 0

and età < 120).

Vi è anche il vincolo di dominio NotNull che impedisce l'inserimento di valori nulli.

-Vincoli di chiave--> ogni riga di ogni tabella deve essere identificata univocamente, si usa il concetto

di primary key, che solitamente è l'id e non ammette valori nulli.

-Vincoli di integrità referenziale--> garantiscono che i legami fra righe di tabelle diverse siano

coerenti. Quindi che si possa risalire, partendo da un dato, alle informazioni riguardo alle tabelle

legate.

Algebra relazionale

L'algebra relazionale è un linguaggio che consente l'interrogazione e l'estrazione di informazioni dalla

base di dati attraverso operazioni logiche nella tabella.

Ogni operazione dell'algebra relazionale ha un input e un output. L'operazione di input avviene

attraverso le tabelle di partenza su cui si deve svolgere l'operazione algebrica. L'operazione di output

consiste invece nella restituzione di una tabella filtrata a seconda della nostra richiesta/condizione;

sarà quindi una tabella con lo stesso o minor numero di righe.

Sulla seconda tabella si possono poi fare ulteriori operazioni, portando così il riusultato sempre più

vicino a quello ricercato.

L'operazione di partenza è quella di selezione, indicata con la lettera greca sigma seguita da una

parentesi contenente il nome della tabella.

La selezione filtra le righe della tabella che corrispondono alle caratteristiche di vincolo che ho

comandato (questa condizione prende il nome di condizione di selezione, es. persone con età

maggiore di 20). Mantiene le stesse colonne e filtra soltanto le righe.

In SQL selezione = FROM Condizione di selezione = WHERE

La seconda operazione è quella di proiezione, indicata con P greco, che invece fa l'operazione

inversa. Prende tutte le righe ma prende in considerazione solo alcune colonne (es. colonne:

nazionalità e nome). La condizione di proiezione è posta sotto il P greco.

In SQL = SELECT

[Posso fare una catena che fa internamente la selezione ed esternamente la proiezione.

Es.--> recuperare i cognomi delle persone che hanno più di 20 anni. Prima internamente faccio la

selezione in cui elimino le persone con meno di 20 anni. In seguito su questa tabella virtuale faccio la

proiezione.

Si legge "Seleziona le persone che hanno più di 20 anni e restituiscimi solo i cognomi".

Queste due operazioni non si possono invertire, in quanto la proiezione butta via le altre colonne.]

Una terza categoria di operazioni nell'algebra relazionale sono le operazioni insiemistiche. Esse

sono l'intersezione, l'unione e la differenza. Per effettuare ciò, gli elementi dei due insiemi devono

essere compatibili, cioè devono avere lo stesso tipo e numero di attributi.

Intersezione--> crea un insieme che contiene solo le righe che compaiono in entrambi gli insiemi

d'ingresso.

Unione--> crea un insieme riportanti tutte le righe degli insiemi in ingresso.

Differenza--> crea un insieme che riporta le righe che compaiono solamente in un insieme e non

nell'altro.

L'ultima operazione è il prodotto cartesiano che, come già citato, crea una combinazione fra tutti gli

elementi dle primo insieme con il secondo.

Linguaggio SQL

SQL--> Standard Query Language, è un linguaggio dichiarativo che permette l'interazione tra l'utente

e il DBMS (praticamente ogni DBMS è affiancato da un linguaggio SQL). Infatti, attraverso delle

semplici sequenze di operazioni, è in grado di dare il risultato dell'interrogazione richiesta dall'utente.

I comandi di SQL possono essere SQL DDL, che consentono di definire e strutturare lo schema

(create table), o SQL DML, che consentono l'interrogazione dei dati contenuti nella base di dati.

Acces--> -creazione base di dati: File--> Nuovo-->Database vuoto

-creazione tabella: Visualizzazione struttura--> Crea una tabella

-Dopodichè aggiungo gli attributi, di cui specificherò vincoli e dominio per ognuno.

-Specificare la chiave primaria, selezionandola e usando l'apposito tasto.

-Chiave esterna: Strumenti?--> Relazioni. Collego gli attributi designati delle tabelle con la funzione

drag&crop. Possiamo anche aggiungere il vincolo di integrità referenziale.

In SQL:

Creazione tabella (DDL)--> CREATE TABLE + nome tabella + ( + attributi, ognuno a capo uno con a

fianco le loro caratteristiche.

Es.--> CREATE TABLE Autore (

nome .....

nazionalità .......

anno .......

Inserimento--> ogni tabella deve essere inserita delle sue informazioni, quest'operazione avviene

attraverso INSERT INTO e VALUES, dove nella prima vengono individuati i campi in cui saranno

inseriti i termini, mentre nella seconda vengono inseriti i termini.

Le stringhe di testo sono poste sotto ".. " mentre i numeri no.

Es.--> INSERT INTO Autore (nome, nazionalità, anno, residenza,..)

VALUES ("Umberto Eco", "IT", 1932, "Alessandria",..)

Modifica e eliminazione delle righe--> usiamo i comandi UPDATE (+ SET) e DELETE.

Con l'ausilio del comando WHERE si specifica su cosa si agisce, in assenza vengono cancellate tutte

le righe della tabella.

Es.--> UPDATE film

SET durata= 130

WHERE titolo= "Il sesto senso"

DELETE FROM persona

WHERE nazionalità= "it"

Attraverso la modifica e la cancellazione è possibile che avvenga la violazione del vincolo di integrità

referenziale, in quanto potrebbero entrare nuovi dati che si sovrappongono a quelli vecchi.

Il sistema può reagire automaticamente rifiutando il nuovo inserimento e dando come risultato errore

(se si è impostati il comando NO ACTION nelle caratteristiche degli attributi, predefinito) oppure

aggiornando automaticamente il nuovo risultato, aggiungendo una riga ad esempio (se si è impostati

il comando CASCADE).

Modifica e cancellazione delle tabelle--> usiamo ALTER (modifica) e DROP (elimina).

Es.--> ALTER TABLE persona

ALTER COLUMN nazione

SET NOT NULL

DROP TABLE film

Interrogazione--> SELECT, corrisponde alla tabella di output in cui posso decidere di proiettare tutti

gli attributi dell'entità (in questo caso si usa select *) o soltanto alcuni (select autore.nome,

autore.nazionalità,..)

FROM (prendi da), corrisponde alla tabella da cui attingiamo le informazioni (from e il nome della

tabella).

In SQL queste sono le due operazioni minime.

WHERE (in cui), corrisponde all'operazione con cui si seleziona una clausola (where

autore.nazionalità = "IT")

Es.--> trovare la nazionalità degli autori nati dopo il 1900

SELECT nazionalità

FROM autore

WHERE nascita>1900

Mettere in relazione più tabelle--> La rappresentazione algebrica del collegamento fra due tabelle è

il grafico cartesiano, attraverso la quale vengono esplicitati tutti i collegamenti fra le varie tabelle

(persone X città). Devono esser però tenute in conto solo le coincisioni vere fra i vari attributi.

Questa operazione di coincisione si chiama JOIN (in algebra R S).

In SQL si tratta semplicemente di collegare la chiave interna della tabella di proiezione alla chiave

esterna, a seconda che quest'ultima sia presente in un'entità o in una tabella ulteriore.

Es.--> nome degli affittuari di case mq>50

SELECT persone.nome In questo caso la chiave esterna è

FROM persone, case contenuta nell'entità case.

WHERE persone.id = case.affittuario AND case.mq>50

Es.--> nome ed età dei proprietari di case con possesso>50% o mq>50 In questo caso la

SELECT persone.nome, persone.età chiave esterna è nella

FROM persone, case, possiede tabella POSSIEDE,

WHERE persone.id=possiede.persone AND case.id=possiede.case AND che collega le

(possiede.possesso>50 OR case.mq>50) chiavi interne.

In alternativa uso il comando INNER JOIN

Es.--> titolo opere scritti da autori francesi

SELECT opera.titolo

FROM autore INNER JOIN opera ON id= autore

WHERE autore.nazionalità = "FR"

Criteri di ordinamento--> ORDER BY, attraverso questo comando decidiamo in che ordine ci

appaiono le colonne.

Es.--> SELECT

FROM

ORDER BY titolo, autore

Altri comandi--> DISTINCT, messa a fianco a select ci permette di non trovare ripetizioni nel

risultato.

IS NOT NULL, messa a fianco ad un attributo durante la clausola where ci permette di eliminare dalla

proiezione le righe in cui il valore di quell'attributo è nullo.

{ROWDSOURCING

Deriva dal concetto di folla e esternatizzazione di un'attività. Il primo a parlarne fu Jeck Howe in una

rivista, egli ne definisce 2 proprietà fondamentali: un alto numero di persone e una procedura di

selezione degli interventi degli utenti. Si tratta di tante persone che non sanno di lavorare insieme e

che cooperano insieme non sapendo. Oggi è diviso in 4 settori fondamentali:

Crouf fauding: raccolta di fondi condivisa (la prima campagna di Obama online).

Crowdwodvoting: creare dei temi che poi vengono votati (come le magliette che hanno una

selezione del prodotto migliore).

Crodwingston: produrre conoscenza collettiva (come Wikipedia).

Croudcreation: si intende dare lavoro che porta alla creazione di un lavoro. Un risultato di

conoscienza, artistico ecc..

Video su Croudcreation: l'idea di questo esperimento è stato di prendere il disegno di una banconota

da 100 dollari e tagliarlo in 10.000 pezzi e dividerlo per le persone. Quindi 1 cent l'uno. Il video

ottenuto è un filmato in cui gli utenti dovevano ridisegnare il pezzettino della banconota che gli è stato

dato, creando così una ricomposizione contemporanea degli utenti. Un risultato artistico.


PAGINE

12

PESO

23.49 KB

PUBBLICATO

+1 anno fa


DETTAGLI
Corso di laurea: Corso di laurea in scienze umanistiche per la comunicazione
SSD:
Università: Milano - Unimi
A.A.: 2014-2015

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Francois Reget di informazioni apprese con la frequenza delle lezioni di Fondamenti di Informatica per Scienze umanistiche e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Milano - Unimi o del prof Ferrara Alfio.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Fondamenti di informatica per scienze umanistiche

Informatica per Scienze umanistiche - Appunti
Appunto
Fondamenti di Informatica: appunti completi
Appunto