Lo sviluppo informatico nel campo lavorativo ha avuto una grande importanza soprattutto nelle aziende, in cui il problema principale era la gestione e la manutenzione degli archivi, sempre più grandi e sempre con meno spazio a disposizione per la loro sistemazione. E così l’informatica ha contribuito tanto, nel mondo degli archivi e dei Database.
La struttura di un Database
In informatica, il termine database, base di dati, indica un archivio dati, o un insieme di archivi ben organizzati e ben strutturati, in modo che possano costituire una base di lavoro per utenti diversi con programmi diversi.
Le parti fondamentali di un database sono:
• Record: le righe di una tabella dette anche “tuple”;
• Attributi: le colonne di una tabella cioè le caratteristiche delle entità, ogni attributo ha:
-un formato: ovvero il tipo di valori che assume
-una dimensione: cioè la quantità massima di caratteri o cifre inseribili
-l’opzionalità che indica se l’inserimento di un valore è obbligatorio o meno
• Entità: è un soggetto reale che si vuole presentare da un punto di vista concettuale, ogni suo elemento è detto istanza.
• Associazione: è un legame che stabilisce un’ interazione tra le entità
Il database è detto “modello concettuale”, che è quindi il modello iniziale, reale e senza un vero legame con gli archivi elettronici. Per la progettazione concettuale, il modello più diffuso è il “modello Entità/Associazioni”, indicato anche come modello E/R dall’inglese Entity/Relationship; per costruire questo modello E/R occorre individuare gli oggetti che compongono una realtà considerata,i principali sono:
- le “entità”,
- gli “attributi” di un’entità,
- le “associazioni” che sono le correlazioni logiche delle entità.
Le associazioni tra due entità si classificano in
• associazione “uno a uno” (biunivoca) indicata con “1 : 1”; l’associazione “1 : 1” si dice tale quando ogni istanza della prima entità si deve associare ad una sola istanza della seconda e viceversa.
• associazione “uno a molti” (semplice) indicata con “1 : N”; l’associazione “1 : N”, si dice tale quando ogni istanza della prima entità si può associare a una o più istanze della seconda entità, mentre ad ogni istanza della seconda entità si deve associare una sola istanza della prima.
• associazione “molti a molti” (complessa) indicata con “N : N”; l’associazione “N : N”, si dice tale se ad ogni istanza della prima entità si possono associare una o più istanze della seconda entità e ad ogni istanza della seconda entità si possono associare una o più istanze della prima.
Definito il “modello concettuale”, si può passare a definire il “modello logico”, cioè si può definire la struttura degli archivi adatti per organizzare i dati.
I tre principali modelli per le basi di dati sono:
1. gerarchico (rappresentabile tramite un albero, associazioni solo dall’ alto verso il basso);
2. reticolare (rappresentabile tramite un grafo, dove sono consentite anche associazioni tra entità che stanno in basso);
3. relazionale (attualmente il più diffuso, rappresentabile mediante tabelle e relazioni tra esse),
La “chiave primaria” è l’insieme di uno o più attributi che identificano in modo univoco una riga della tabella
Le “chiavi esterne” identificano una o più colonne di una tabella che si riferisce a una o più colonne di un'altra tabella sono dette anche “foreign key”.
Una volta creato questo modello, si può passare alle “operazioni relazionali”, che sono le operazioni che consentono di effettuare le “interrogazioni” (query) alla base di dati per ottenere le informazioni desiderate estraendo dalla tabella principale una nuova sottotabella.
E’ molto importante, all’ interno dei database, evitare la “ridondanza”, non solo perché viene sprecato spazio inutilmente, ma soprattutto per le possibili “anomalie” che ci possono essere.
Database Management System DBMS
Per gestire quantità sempre maggiori di dati, tabelle e relazioni sono nati e si sono sviluppati nel campo dell’informatica i Database Management System, conosciuti anche come DBMS.
Un DBMS è il software che consente di costruire e gestire una base di dati, realizzandola su memoria di massa a partire da un progetto definito a livello concettuale e tradotto poi in un modello logico dei dati.
Il DBMS è quindi il “gestore” dei database, e deve essere in grado di soddisfare alcune richieste degli utenti, che sono:
1. creare e cancellare database o modificarne la struttura: “linguaggio di definizione dei dati”, in inglese DDL (Data Definition Language),
2. inserire, modificare e gestire dati memorizzati: “linguaggio di manipolazione dei dati, in inglese DML (Data Manipulation Language).
3. interrogare il database, cioè leggere i dati:“linguaggio di interrogazione”, in inglese QL (Query Language).
Tra i DMBS più famosi ci sono Acces, Oracle, Sql Server, MySql.
Non è tutto..
Lo sviluppo tecnologico ha portato l’ informatica a svincolarsi dall’ hardware e di concentrarsi sempre di più sul problema da risolvere evitando di perdere tempo su problematiche legate al pc. La crescente estensione delle reti di computer e la connessione con altri dispositivi di tipo mobile ha rafforzato l’ idea di poter distribuire le risorse disponibili a tutti i computer connessi a una stessa rete.
Il Cloud Computing
In informatica con il termine inglese cloud computing si indica un insieme di tecnologie che permettono, tipicamente sotto forma di un servizio offerto da un provider al cliente, di memorizzare/archiviare e/o elaborare dati (tramite CPU o software) grazie all'utilizzo di risorse hardware/software distribuite e virtualizzate in Rete in un'architettura tipica client-server.
Il client può essere qualunque cosa, dal cellulare, al telefono, agli occhiali di google, al tablet ecc.
… comodo anche per le aziende
Anziché usare hardware per server e processi di backup per l’attivazione di dati e servizio clienti,si può inviare il tutto al cloud. È una proposta interessante per le medie aziende: riduce i costi di hardware e manodopera ed estende in modo rapido e facile i servizi con un investimento minimo. Il segreto di una strategia di cloud efficace consiste in una pianificazione che consenta di ottenere servizi personalizzati e un cloud affidabile e sicuro.
Quindi grazie al cloud computing si può:
• Distribuire più rapidamente le applicazioni
• Semplificare e ridurre i costi di gestione.
• Migliorare i livelli di disponibilità, velocità e affidabilità del servizio
I principali servizi che il cloud computing offre sono:
-SaaS (Software as a Service) Consiste nell'utilizzo di programmi installati su un server remoto,
cioè fuori dal computer fisico, spesso attraverso un server web.
cioè fuori dal computer fisico, spesso attraverso un server web.
-DaaS (Data as a Service) Con questo servizio vengono messi a disposizione via web solamente i dati ai quali gli utenti possono accedere tramite qualsiasi applicazione come se fossero
residenti su un disco locale.
residenti su un disco locale.
-PaaS (Platform as a Service) Invece che uno o più programmi singoli, viene eseguita in remoto una piattaforma software che può essere costituita da diversi servizi, programmi, librerie, etc.
Google Cloud Sql
Un paio di anni fa Google ha reso disponibile Google Cloud SQL che offre le potenzialità di un database relazionale in chiave cloud.
Da una soluzione simile si possono evidenziare alcuni interessanti vantaggi: allo sviluppatore è lasciato il compito di lavorare e creare il database e occuparsi della sola parte codice, senza dover gestire e mantenere l'infrastruttura hardware, pianificare backup o ridondanze.
Creare una nuova istanza di Cloud SQL è una operazione disponibile all’interno della console della Google APIs. Dopo la creazione del servizio possiamo creare database, tabelle, viste e ogni genere di oggetto supportato. Cloud SQL permette inoltre di importare/esportare i dati tramite la funzione “Import data”/“Export data”. Il pannello di Cloud SQL permette infine di poter eseguire del semplice SQL verso il nostro server.