Upload
haliem
View
216
Download
0
Embed Size (px)
Citation preview
2
L E B A S I D I D A T I
● Database
Una collezione di dati, che contengono le informazioni di
interesse per il nostro sistema informativo
● Gestore del Database (DBMS Data Base Management System)
Si occupa della corretta gestione dei nostri dei dati (database)
✔ assicura integrità e consistenza
✔ sicurezza
✔ affidabilità e disponibilità
✔ efficienza e gestione errori
✔ condivisione
3
P E R C H E S C E G L I E R E M y S Q L ?
Velocità Capacità Facilità d'uso Supporto del linguaggio SQL Connettività e sicurezza Portabilità Dimensioni ridotte Costi (licenza GPL e commerciale) Open Source Disponibile per oltre 20 piattaforme
Utilizzato da: NASA, Yahoo, Google Ad, Slashdot, HP, AOL
MySQL[1] è un RDBMS general purporse
4
P R E S T A Z I O N I
Ha prestazioni di tutto rispetto, può confrontarsi con concorrenti commerciali.
Test eseguito dalla rivista eWeek nel febbraio 2002
fonte http://www.eweek.com
5
I N S T A L L A Z I O N E
Metodi di installazione: binari precompilati con diversi compilatori per molte piattaforme compilazione dei sorgenti utilizzo del gestore di pacchetti della propria distribuzione
La procedura di installazione è accuratamente descritta nel file readme
Procedura: aggiunta di un gruppo e un utente copia dei binari creazione delle tabelle di sistema
ConfigurazioneLa configurazione di mysql e dei programmi relativi viene memorizzata nel file my.cnf
6
F U N Z I O N A M E N T O
I dati vengono rappresentati sul file system con directory (database) e file (tabelle)
Le utenze sono memorizzate all'interno delle tabelle di sistema contenute nel database mysql
I registri di log memorizzano gli eventi generati dal DBMS:registro generale delle queryregistro delle query lenteregistro degli aggiornamenti (testo e binario)registro degli errori
Le variabili contengono:variabili di sistema: indicano come il server è stato configuratovariabili di sessione: mantenute per ogni client che si connettevariabili di stato: contengono informazioni statistiche
7
T I P I G E S T I T I
Tipi di tabelle: ISAM
Vecchio modello ad accesso sequenziale MyISAM
Maggiore dimensione, migliore gestione indici e compressione, portabilità
MERGECostrutto logico che incorpora più tabelle MyISAM
BDBIl gestore mette a disposizione transazioni e recovery automatico
InnoDBIl gestore mette a disposizione transazioni, locking migliorato, recovery automatico e gestione chiavi esterne
HEAPTabelle temporanee tenute in memoria
Tipi di dati:numerici, stringhe (caratteri e binari), temporali, speciali (OpenGIS)
8
F U N Z I O N A L I T A '
Chiavi primarie e esterne
definizione di relazioni tra tabelle
Integrità referenziale
vincoli che mantengono i dati consistenti
Indici
su più colonne
fulltext, utili per fare ricerce nel testo
Transazioni
insieme di istruzioni che devono essere eseguite in modo atomico
Subquery
possibilità di annidare una query dentro l'altra, un'alternativa ai join
9
N U O V E F U N Z I O N A L I T A '
La versione 5.0 introduce:
Viste
tabella “virtuale” generata dal DBMS
Stored procedures/functions
blocco di istruzioni memorizzate e eseguite sul DBMS
Trigger
procedura scatenata da un evento
Cursori
il programma può accedere alle righe della tabella una alla volta
Information Schema
permette l'accesso ai metadati che definiscono i database
Altro...
10
U T I L I Z Z O
Avvio mysqld : il demone server mysqld_safe : script che gestisce in modo sicuro il demone
Utilizzo mysql : client testuale strumenti grafici
Medoti di backup mysqldump: ritorna una rappresentazione SQL dei database mysqlhotcopy: script perl che esegue la copia fisica di tabelle e db
Controllo delle tabelle myisamchk: controlla e ripara mysqlcheck: controlla, ripara e ottimizza, usato con il server in
esecuzione
11
C L I E N T
12
O T T I M I Z Z A Z I O N E
Meccanismi di ottimizzazione automatici: l'ottimizzatore delle query la cache delle query
Per i programmatori: usare gli indici usare poco il casting e le funzioni non sprecare spazio dichiarare le colonne NOT NULL provare query scritte in vari modi usare OPTIMIZE TABLE
Per gli amministratori: utilizzo della cache disabilitare i gestori non usati compilare con librerie statiche
13
S I C U R E Z Z A
Impedire accesso al file system, gli utenti non devono poter leggere la directory dei dati Proteggere i file di opzioni Rimuovere account anonimi (vengono installati di default!!) Specificare gli host da cui si collegano gli utenti se possibile Usare connessioni SSL Volendo il server puo' essere messo in una jail chroot Se utilizzato in locale il server deve ascoltare solo su localhost
14
S T R U M E N T I
Strumenti per amministratori PhpMyAdmin [2]
interfaccia web, amministrazione MySqlAdministrator [3]
amministrazione, controllo, setup MySqlCc [4]
amministrazione base, modifica dati
Strumenti per programmatori QueryBrowser [5]
creazione query assistita DbDesigner [6]
diagrammi logici AquaStudio [7]
creazione query e struttura
15
I N T E R F A C C I A M E N T O
Esistono API per tutti i linguaggi di programmazione più utilizzati, ad esempio:● C / C++ / C#● Java● Perl● Python● Delphi● Ruby● PHP● e molti altri..
Possibilità di includere il server in modo embedded nell'applicazione.
16
A L T A A F F I D A B I L I T A '
Idea: una serie di macchine che condividono gli stessi dati, se unacade le altre prendono il suo posto
inizialmente i dati sono replicati su tutte le macchine gli slave vengono aggiornati
attraverso il binary log del master se il master cade gli slave
prendono il suo posto
Vantaggi: fault tolerance niente single point of failure fail over automatico facilità
17
C L U S T E R
Idea: distribuire il carico di lavoro su un pull di macchine
la macchina MGM coordina i nodi i nodi DBx contengono il database
e soddisfano le richieste
il motore NDB cluster gestisce il cluster in modo trasparente al sistema operativo
18
M A X D B
Implementazione di MySQL certificata per l'utilizzo con SAP®
studiato per gestire un gran numero di transazioni supportava già le stored procedures distribuito con interfaccia grafica e web funzioni di amministrazione (job scheduling, eventi, allarmi) disponibile per poche piattaforme supporta sistemi di backup online
19
C R I T I C H E
Funzionalità non supportate: -- come commento Privilegi a livello di record Mancanza del supporto a particolari tipi di query (ad es. alberi) Supporto ai trigger non completo Supporto elementare ai cursori
[*] supportato dalla versione 5
Vecchie versioni non supportano: l'integrità referenziale le subquery Trigger [*] Stored Procedure [*] Viste [*]
20
R I F E R I M E N T I
“SQL” M. J. Hernandez, Mondadori
“Basi di dati, modelli e linguaggi di interrogazione” P. Atzeni, McGraw-Hill
“Basi di dati, architetture e linee di evoluzione” P. Atzeni, McGraw-Hill
“MySQL” P. DuBois, Pearson
“SQL The Complete Reference” J. R. Groff, McGraw-Hill
“Foundamentals of database systems” Elmasri/Navathe, Addison Wesley
“MySQL Reference Manual” http://dev.mysql.com/doc/
21
L I N K S
[1] Homepage MySQL http://www.mysql.com
[2] PhpMyAdmin http://www.phpmyadmin.net
[3] MySQL Administrator http://www.mysql.com/products/administrator/
[4] MySQLCc http://www.mysql.com/products/mysqlcc/
[5] Query Browser http://www.mysql.com/products/query-browser/
[6] DbDesigner http://www.fabforce.net/dbdesigner4/
[7] Aqua Studio http://www.aquafold.com
22
D O M A N D E
DOMANDE..
Grazie per la Vostra attenzione
23
C O P Y R I G H T
Questo documento viene rilasciato sotto licenza Alcoolware, la quale non è altro che una normale licenza Creative Commons AttributeNonCommercialShareALike [1] ma con l'aggiunta che se mi incontrate dobbiamo andare a bere qualcosa.In sintesi è liberamente distribuibile per usi non commerciali, copiabile e modificabile purchè citiate l'autore e la fonte.Se volete distribuire questo documento sul vostro sito siete pregati per favore di comunicarmelo in modo che possa spedirvi le nuove versioni.
[1] http://creativecommons.org/licenses/by-nc-sa/2.0/