Analisi data base (db)

I data base e dbatrade.com, soluzioni e software personalizzato

Data WareHousing e Analisi db:

dbatrade.com crea software specifici personalizzati su DB a servizio dell’utente per facilitarne la consultazione, l’analisi dei dati in db, rendendo i dati un bene prezioso per le indagini di mercato, per le analisi di crescita, per lo sviluppo del proprio background e Know how, in un mercato sempre più concorrenziale.

Queste caratteristiche rendono le nostre realizzazioni software per analisi db adattabili per ogni singolo cliente/utente.

Articoli specifici sono presenti nel blog dbatrade.com nella categoria data base.

Cos’è un Data Base:

Un Database e’ una collezione organizzata di informazioni, i vantaggi dell’ utilizzo di un data base sono i seguenti:

  • Il ritrovamento dei dati è veloce
  • I dati occupano meno spazio
  • I dati possono essere condivisi da piu’ utenti
  • I dati ridondanti sono minori
  • L’ inconsistenza dei dati puo’ essere evitata
  • La sicurezza puo’ essere controllata

Esistono diversi tipi di database:

Elenco dei diversi tipi di db (data base)

  • Gerarchico
  • Reticolare
  • Relazionale

Data Base Gerarchico:

Organizzazione dei dati .

Nel modello gerarchico i dati sono organizzati in record connessi tra loro secondo strutture ad albero.

Ogni record del database, che non sia la radice dell’ albero, deve avere uno e un solo padre. Possono quindi esserci due record, su alberi diversi, che rappresentano la stessa informazione. Questo comporta problemi di ridondanza nel database e richiede controlli di consistenza durante il suo uso. Inoltre non e’ possibile memorizzare informazioni che non hanno padre.

La struttura gerarchica impone delle regole rigide sul modo di eseguire gli aggiornamenti e le interrogazioni: il livello più alto è il punto di accesso a tutte le informazioni. La cancellazione di un record del database comporta l’ eliminazione di tutti i record dipendenti gerarchicamente da esso. L’ aggiornamento di un dato richiede l’accesso e la modifica di diversi record per assicurare la consistenza del database.

Il modello gerarchico comporta la dipendenza dei programmi dalle strutture, quindi non possiamo modificare le strutture senza modificare i programmi.

Data Base Reticolare:

Organizzazione dei dati nel modello reticolare.

Nel modello reticolare i record sono legati tra loro con strutture ad anello (puntatori) che permettono all’utente di accedere ai dati più facilmente, senza i vincoli rigidi della struttura gerarchica. Ogni nodo puo’ essere il punto di partenza per raggiungere un determinato campo.

Un record può avere uno o più record padre e ciò permette di evitare i problemi di ridondanza.

Rimangono il problema della dipendenza dei programmi dalle strutture e il problema della complessita’ delle strutture stesse che crescono in proporzione alla crescita dei dati.
Per modificare, anche parzialmente, le strutture bisogna chiudere il DB e ricrearlo.

Data Base Relazionale:

I dati nel modello relazionele.

Nel modello relazionale i dati sono organizzati in tabelle che rappresentano sia le entità, sia le relazioni tra di esse: esistono quindi tabelle di entità e tabelle di relazioni.

Nel modello relazionale, a differenza dei precedenti, non c’è alcun meccanismo esplicito per rappresentare i legami logici tra i diversi tipi di record che non sia la relazione. La modifica di un dato o di un legame comporta la manipolazione di un solo record di una tabella.

Nel modello relazionale, a differenza dei precedenti, si realizza l’indipendenza logica, è cioè possibile modificare le strutture senza dover modificare i programmi.

Si possono inoltre modificare le strutture a DB aperto, con gli utenti collegati.

In particolare il db Relazionale è:

Un Database Relazionale è un insieme di tabelle che rappresentano ogni tipo di informazione.

Un Database Relazionale è un insieme di tabelle che rappresentano ogni tipo di informazione.

Per reperire i dati è sufficiente conoscere la loro struttura logica e non è necessario conoscere la loro locazione fisica.

Una Tabella è un’ insieme di informazioni attinenti tra loro. Una riga (o record) della tabella rappresenta un’ entità. Una colonna della tabella rappresenta un attributo di quell’ entità.

Nell’ intersezione tra una riga e una colonna può esserci un solo valore, che può essere significativo o nullo (NULL VALUE, diverso da zero e da blank). Non ci possono essere nomi di colonna duplicati.

L’ ordine nel quale le righe sono contenute non ha importanza.

L’ ordine nel quale le colonne sono contenute non ha importanza. Affinche’ un RDBMS possa dirsi relazionale deve essere in grado di eseguire le tre operazioni relazionali di base: la proiezione, la selezione e il join.

La Proiezione è una visualizzazione “verticale” della tabella (solo alcune colonne).

La Selezione è una visualizzazione “orizzontale” della tabella (solo alcune righe che soddisfano una condizione).

Il Join e’ l’ unione di record che sono memorizzati su tabelle diverse.

RDBMS Oracle

Oracle e i data base avanzati.

Oracle è un sistema complesso costituito da un software in grado di gestire un database relazionale in base a richieste effettuare nel linguaggio SQL (Structured Query Language).

In altre parole Oracle e’ l’ insieme dei seguenti componenti:

  • un database relazionale
  • un linguaggio SQL (un linguaggio di quarta generazione per l’accesso ai dati)
  • un insieme di programmi di gestione del database (il Kernel ed i Tool)

Oggetti:

In un database Oracle, oltre alle tabelle, esistono altri tipi di oggetti:

  • l’Indice:
    un oggetto che ha una entry per ogni valore che appare nella colonna indicizzata della tabella ed esegue un accesso rapido alle righe
  • Il Cluster:
    un insieme di tabelle che hanno una o più colonne in comune
  • Il Rollback segment:
    un segmento che memorizza i dati nella versione precedente la modifica
  • La Vista:
    una fotografia dinamica di una particolare selezione da una o più tabelle
  • La Sequence:
    un generatore di numeri progressivi
  • Il Sinonimo:
    la rinomina di un altro oggetto
  • Lo Snapshot:
    una copia in sola lettura di una una o più tabelle residenti su un database remoto, aggiornata periodicamente per riflettere lo stato attuale dei dati
  • La Procedure:
    un insieme di comandi PL/SQL eseguibile dall’ utente
  • Il Package:
    un insieme di procedure salvato nel database
  • Il Database link:
    un collegamento ad un database remoto, Oracle o non Oracle.

Kernel:

Il motore dei dati.

Il Kernel è il motore del nostro sistema, è un software di notevoli dimensioni che svolge le seguenti funzioni:

  • organizza la definizione e la memorizzazione dei dati
  • controlla e limita l’ accesso ai dati
  • permette il backup e il recovery dei dati
  • interpreta i linguaggi SQL e PL/SQL

Tool:

I Tool sono strumenti in grado di offrire vari servizi:

SQL*DBA consente di eseguire le operazioni di amministrazione del database (nelle versioni sucessive è utilizzato anche il server manager) Export scarica in un file la definizione della struttura e i dati del database Import carica nel database i dati letti da un file generato con Export SQL*Loader carica nel database i dati letti da un file ASCI SQL*Net consente la comunicazione, attraverso la rete, di database Oracle residenti su server e applicazioni residenti su client SQL*Plus consente di eseguire statement SQL e blocchi PL/SQL, consente di formattare, registrare e stampare il risultato delle query, consente di vedere le definizioni delle colonne di ogni tabella SQL*Forms consente lo sviluppo di applicazioni complesse, consente di programmare ad oggetti e di usare il PL/SQL, consente la produzione rapida di maschere di default per la manipolazione dei dati, consente la generazione di menu per il controllo e l’esecuzione di applicazioni SQL*ReportWriter consente di generare report complessi Precompilers consentono di inserire statement SQL all’ interno di programmi scritti in linguaggi di terza generazione.

Caratteristiche di Oracle e software analisi data base:

Le caratteristiche fondamentali di Oracle sono le seguenti:

  • Compatibilità nei confronti dello standard SQL
  • Portabilità sulla quasi totalità delle piattaforme
  • Connettibilità: capacità di accedere a dati presenti su macchine diverse integrando fonti di dati Oracle e non Oracle
  • Multiutenza: la possibilità, da parte di piu’ utenti, di condividere i dati.

A proposito di connettibilita’ due concetti sono essenziali:

  • Processing distribuito: un’ applicazione lavora su un nodo di una rete detto client ma accede a un database che risiede su un nodo diverso detto server. Il kernel di Oracle è installato sul nodo che possiede il database. Molte applicazioni si collegano allo stesso database. La gestione del database e’ separata dall’ esecuzione delle applicazioni.
  • Database distribuito: un insieme di database fisici visti come un unico database logico. L’ utente non deve sapere dove risiedono fisicamente i dati (location transparency). Ogni database fisico resta comunque autonomo rispetto agli altri (site autonomy).

ORACLE7 Server è dotato del meccanismo di Two-phase Commit. Tale meccanismo consente l’ esecuzione di operazioni di manipolazione che coinvolgono due o più database residenti su nodi diversi della rete (transazione distribuita).

Oracle garantisce un efficiente supporto della multiutenza e cioè la possibilità, da parte di più utenti, di condividere i dati con la sicurezza della consistenza in lettura ottenuta senza sacrificare le qualità delle performance. Il lock a livello di riga consente l’ aggiornamento concorrente di record diversi della stessa tabella da parte di processi utente differenti.

La consistenza in lettura permette di leggere i dati in uno stato immutato per tutta la durata della lettura stessa, nonostante le operazioni di modifica che possono aver luogo su quei dati.

La sicurezza dei dati è garantita dalla creazione di utenti Oracle con precisi privilegi, ruoli e profili.

Oracle consente di far uso di strumenti di ottimizzazione in gradi di migliorare le performance. E’ possibile una vera e propria metodologia di tuning che miri ad ottimizzare tanto gli statement SQL quanto il consumo da parte di Oracle di risorse di sistema (memoria, I/O).

Per l’ ottimizzazione degli statement SQL assume importanza il Query Optimizer, un modulo del kernel al quale spetta il compito di decidere il piano di esecuzione di uno statement. ORACLE7 permette di scegliere tra un approccio Rule based (basato su regole sintattiche) ed un approccio Cost based (basato sulla valutazione dei costi di accesso ai dati valutati basandosi sulla dimensione delle tabelle e la selettivita’ delle condizioni).

Il database Oracle possiede al suo interno il cosiddetto dizionario dati generato al momento della creazione del database. E’ formato da una serie di tabelle e viste di sistema (proprietà dell’ utente SYS) a disposizione degli utenti per la consultazione di tutte le informazioni necessarie per una completa e corretta gestione del database. La tabella che descrive tutto il dizionario dati si chiama DICTIONARY.

ORACLE7 server supporta sia l’ integrita’ dichiarativa che l’ integrita’ procedurale.

L’ integrità dichiarativa consiste nel controllare la rale integrità dei dati senza scrivere a questo scopo programmi, ma definendo direttamente nello statement di creazione della tabella dei vincoli (i constraint) che vengono processati in caso di inserimento, cancellazione o modifica dei dati.

L’ integrità procedurale si realizza invece tramite comandi PL/SQL memorizzati sotto forma di trigger di database associati alle tabelle. Essi scattano compiendo un’ operazione o un controllo ogni volta che le tabelle in questione vengono modificate.

Remo Ponzo

Per consulenze, informazioni e domande, contattatemi: Remo Ponzo

 

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Fornisci il tuo contributo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *