Please enable JavaScript.
Coggle requires JavaScript to display documents.
PROGETTAZIONE DI UN DATABASE, MODELLAZIONE DEI DATI FASI 1 - 2 - 3,…
PROGETTAZIONE DI UN DATABASE
DEFINIZIONE
Significa progettare le strutture, prima logiche e poi fisiche, di un database in modo che possano accogliere nel modo migliore possibile i dati di cui un utente ha bisogno.
FASE 1: ANALISI
TECNICA/STRATEGIE DI PROGETTAZIONE
BOTTOM - UP
Si suddividono le specifiche in modo da sviluppare semplici schemi parziali ma dettagliati, che poi vengono integrati tra loro
TOP - DOWN
Si parte da uno schema iniziale molto astratto ma completo, che viene successivamente raffinato fino ad arrivare allo schema finale
INSIDE - OUT
Lo schema si sviluppa "a macchia d'olio", partendo da concetti più importanti, aggiungendo quelli a essi correlati, e così via
FASE 2: CONCETTUALE
COMPLETEZZA
Tutti gli aspetti rilevanti della realtà devono essere modellati
CHIAREZZA
Il modello deve essere leggibile e rappresentare le informazioni in maniera comprensibile
CORRETTEZZA
Uso corretto degli strumenti
INDIPENDENZA
Indipendente dallo strumento informatico che verrà utilizzato
FASE 3: LOGICA
Creazione di uno schema secondo uno dei seguenti modelli
RELAZIONALE
Sviluoppato da Edgar Frank Codd all'inizio degli anno '70
Pubblica l'articolo "modello per l'archiviazione di grandi banche dati" dove struttura attraverso TABELLE e RELAZIONI
AD OGGETTI
Periodo storico anni '80
Estensione alle base di dati del paradigma Object Oriented.
OODBMS --> Object DBMS
Jasmin sviluppato dalla Fujitus alla fine degli anni '90
ORDBMS --> Object-Relational Database Management System
PostgreSQL completamente opensource e probabilmente il più robusto del mondo Linux/Unix
Hanno la possibilità di definire nuovi tipi di dati e comportamenti che vengono inglobati nell'oggetto stesso (classe)
XML
Fine anni '90
Linguaggio similie al HTML con cui condivide il Markup (tag)
E' possibili definire dei tag in base a ciò che ci serve al momento
GERARCHICO
Anni 60'
Dati sono organizzati secondo una struttura ad albero
Permette di rappresentare i dati sfruttando una relazione tra segmenti padri e segmenti figli. Ogni padre può avere molti figli, ma ogni figlio può avere solo un padre
SVANTAGGI
Tra schema logico e realizzazione fisica esiste una dipendenza stretta e vincolante
Operazioni di ricerca non sono efficienti in quanto sono viste ad alberi generici e solo nel caso siano di tipo gerarchico sarebbero di semplice realizzazione
Ogni elemento prende il nome di segmento
Radice è il record principale del database da cui partono uno o più sottoalberi
RETICOLARE
Anni 60'
Rappresentabile tramite un grafo
Ogni elemento è costituito da un record che può connettersi ad altri N record, N con N (N:N)
Per poter realizzare le connessioni tra i diversi record si usano dei RECORD CONNETTORI
Si può vedere come un'estensione del modello gerarchico, dove non esiste nessuna radice, ma ogni nodo può essere il punto di partenza per raggiungere un determinato campo
SVANTAGGI
Se i dai non sono tra loro direttamente connessi la loro ricerca è difficoltosa
E' estremamente rigido in caso di modifiche successive alla sua creazione
Per realizzare due reticoli indipendenti è necessario duplicare i dati introducendo un'inutile ridondanza
I link sono realizzati con i puntatori, quindi esiste uno spreco di spazio per le memorie esterne
NoSql
CARATTERISTICHE
Utilizzo di tabelle e campi per memorizzare i dati
Schema fisso delle tabelle: nome, elenco di campi, ognuno con i rispettivi tipi , con una chiave primari che identifica univocamente, una riga della tabella
Relazione tra due o più campi di tabelle, condizione che lega tra loro le rispettive righe a cui i campi appartengono mediante chiavi esterne
Accesso ai dati garantito con le proprietà ACID, cioè Atomicità, Consistenza, Isolamento e Durabilità
ESEMPI DI MAGGIOR SUCCESSO
Redis, Memcached, HBase
Realizzano un database chiave/valore e fanno corrispondere alle chiavi valori formati da famiglie di colonne
Neo4j
Implementa un database a grafo usando strutture con relazioni libere tra i nodi del grafo
Mongo DB
Database orientato ai documenti
Cassandra, Big Table, Simple DB
Utilizzano un database column-oriented che immagazzina dati in sezioni di colonne. Alcune delle principali soluzioni di questo tipo sono state realizzate da Facebook, Google e Amazon
Firebase
Non ci sono ne tabelle nè record. Tutti i dati inseriti vanno a costituire un albero JSON. In grado di aggiornare i dati istantaneamente
JSON è un formato per lo scambio dati completamente indipendente dal linguaggio di programmazione
FASE 4: FISICA - IMPLEMENTAZIONE
Completamento dello schema logico in funzione dell'organizzazione fisica dei dati e dei meccanismi
FASE 5: REALIZZAZIONE
Serve a soddisfare le richieste specificate nel progetto utilizzando gli strumenti informatici di alto livello
MODELLAZIONE DEI DATI FASI 1 - 2 - 3
Consiste in una rappresentazione astratta delle strutture dei dati di un database. L'atto di creazione di un modello prende il nome di modellazione dei dati (data modeling). Serve per tradurre i dati dal punto di vista dell'utente all'punto di vista dell'applicazione/database, cioè per trasportarli dal mondo reale al mondo informatic.
MODELLAZIONE FUNZIONALE FASI 4 - 5
Thea Capraro