Strutture dati e database: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Blakky (discussione | contributi)
Blakky (discussione | contributi)
Riga 417:
 
=== MySQL ===
==== TIPITipi DIdi DATIdati GESTITIgestiti DAda MySQL ====
DATI DI TIPO NUMERICO
 
'''Numeri interi:'''
 
[[Immagine:Interi.gif]]
 
'''Numeri decimali:'''
 
[[Immagine:decimali.gif]]
 
''M+2 = totale complessivo delle cifre che fanno parte del numero, comprendendo anche il segno e il punto decimale.''
''D = totale delle cifre decimali.
 
''Es: DECIMAL (8,3) --> min -99999.999 max 99999.999''
 
'''Attributi applicabili ai dati di tipo numerico:'''
 
UNSIGNED: impedisce al campo di assumere valori negativi.
 
ZEROFILL: fa visualizzare una serie di numeri allineandoli in verticale in modo che gli spazi vuoti vengano riempiti con degli zeri.
 
AUTO_INCREMENT: può essere associato solo a campi con numeri interi; incrementa automaticamente di una unità il valore numerico del campo cui è attribuito per ogni nuovo record inserito.
 
----
 
DATI DI TIPO TESTO E MULTIMEDIALI
 
Una stringa è un gruppo di caratteri più o meno lungo; un acronimo è una stringa, ma lo sono anche una parola, un cognome e nome, un proverbio.
 
'''Dati di tipo testo'''
 
Stringhe fino a 255 caratteri sono considerate di piccole dimensioni e possono essere di due tipi:
 
CHAR (M): occupa un numero di bytes pari alla lunghezza dichiarata (M).
 
VARCHAR (M): occupa un numero di bytes variabile, pari al numero di caratteri occupati dal dato inserito, fino al massimo dichiarato (M).
 
'''Attributi applicabili ai dati di tipo CHAR e VARCHAR:'''
 
BINARY: impone che il contenuto venga considerato come una stringa binaria; di conseguenza il programma terrà conto di maiuscole e minuscole.
 
Stringhe di grandi dimensioni (oltre i 255 caratteri) vengono gestite nelle tipologie TEXT e BLOB. Tutti i tipi di file, in realtà, possono essere considerati come stringhe di dati; in questo senso TEXT e BLOB verranno applicati anche a dati di tipo multimediale.
 
'''Stringhe multimediali'''
 
[[Immagine:Multimedia.gif]]
 
Mentre TEXT significa solo "testo", il termine BLOB è acronimo di: Binary Large OBject. I campi di questo tipo vengono gestiti in modalità binaria.
 
'''Gruppi (array) di stringhe predefinite'''
 
MySQL prevede due tipi di dato per la gestione di campi di tipo testo che debbano contenere solo stringhe scelte tra un insieme di valori (array) predefiniti:
 
ENUM: può contenere solo uno dei valori appartenenti all'insieme
 
SET: può contenere anche due o più valori scelti tra quelli appartenenti all'insieme.
 
----
DATA, ORA, TIMESTAMP
 
Abbiamo due possibilità di gestione di questi dati:
 
'''Date Complete'''
 
TIMESTAMP(M)DATETIME: il valore contenuto in uno dei due tipi di campo contiene sempre tutte le informazioni assegnabili: anno, mese, giorno, ora, minuto, secondo.
 
M = valore pari da 4 a 14 che determina il tipo di visualizzazione:
 
TIMESTAMP (14): AAAMMGGHHMMSS
 
TIMESTAMP (12): AAMMGGHHMMSS
 
TIMESTAMP (10): AAMMGGHHMM
 
TIMESTAMP (8): AAAAMMGG
 
TIMESTAMP (6): AAMMGG
 
TIMESTAMP (4): AAMM
 
Valore massimo supportato da un campo di tipo TIMESTAMP:
su macchine a 32 bit: dal 1970 al 2030
su macchine a 64 bit: dal 1970 al 2106
 
TIMESTAMP permette la registrazione di un timbro temporale, fornendo così uno strumento di verifica dell'ordine di inserimento dei record.
Per memorizzare l'ora attuale di sistema in un campo di tipo TIMESTAMP si assegna il valore NULL al campo; questo non esclude la possibilità di memorizzare data ed ora al suo interno.
 
In un campo di tipo DATETIME possono essere memorizzati valori che appartengono ad un ambito temporale che va da:
 
minimo 1000-01-01 00:00:00 massimo 9999-12-31 23:59:59
 
Questo consente di superare le limitazioni di TIMESTAMP ma raddoppia l'utilizzo di memoria (da 4 a 8 byte).
 
'''Date parziali'''
 
Ogni campo gestisce una parte specifica:
 
date: anno-mese-giorno; time: ora-minuto-secondo; year: solo l'anno
 
DATE: min. 1000-01-01 max 9999-12-31
TIME: min. -838:59:59 max 838:59:59 (le ore non solo possono essere negative, ma anche superare la cifra 24 perchè il campo potrebbe servire a registrare il tempo che intercorre tra due date)
 
YEAR: min. 1901 max 2155
 
Il numero di anni diversi che si possono inserire tra 1901 e 2155 è 255
 
'''Y2K e input delle date'''
 
Salvo altre indicazioni MySQL interpreta le date in input come appartenenti all'intervallo 1970 (anno di nascita di Unix)-2069, quindi l'anno "90" è il 1990, mentre l'anno "03" è il 2003.
Stringhe riconosciute automaticamente come data:
20031029 -- 2003/10/29 -- 2003-10-29
 
=== PostgreSQL ===