MySQL 5

2,863 views

Published on

Il motore di database MySQL, suo funzionamento e utilizzo. Le novita' introdotte dalla versione 5.
Talk tenuto da Alessandro Tanasi (http://www.tanasi.it)

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,863
On SlideShare
0
From Embeds
0
Number of Embeds
57
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

MySQL 5

  1. 1. LUGTrieste http://trieste.linux.it/ Alessandro “jekil” Tanasi alessandro@lonerunners.net http://www.lonerunners.net/ 1
  2. 2. LE BASI DI DATI 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 ✔ 2
  3. 3. PERCHE SCEGLIERE MySQL? MySQL[1] è un RDBMS general purporse 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 3
  4. 4. PRESTAZIONI Ha prestazioni di tutto rispetto, può confrontarsi con concorrenti commerciali. fonte http://www.eweek.com 4 Test eseguito dalla rivista eWeek nel febbraio 2002
  5. 5. INSTALLAZIONE Metodi di installazione: binari precompilati con diversi compilatori per molte piattaforme compilazione dei sorgenti utilizzo del gestore di pacchetti della propria distribuzione Procedura: aggiunta di un gruppo e un utente copia dei binari creazione delle tabelle di sistema La procedura di installazione è accuratamente descritta nel file readme Configurazione La configurazione di mysql e dei programmi relativi viene memorizzata nel file my.cnf 5
  6. 6. FUNZIONAMENTO 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 query registro delle query lente registro degli aggiornamenti (testo e binario) registro degli errori Le variabili contengono: variabili di sistema: indicano come il server è stato configurato variabili di sessione: mantenute per ogni client che si connette variabili di stato: contengono informazioni statistiche 6
  7. 7. TIPI GESTITI Tipi di dati: numerici, stringhe (caratteri e binari), temporali, speciali (OpenGIS) Tipi di tabelle: ISAM Vecchio modello ad accesso sequenziale MyISAM Maggiore dimensione, migliore gestione indici e compressione, portabilità MERGE Costrutto logico che incorpora più tabelle MyISAM BDB Il gestore mette a disposizione transazioni e recovery automatico InnoDB Il gestore mette a disposizione transazioni, locking migliorato, recovery automatico e gestione chiavi esterne HEAP Tabelle temporanee tenute in memoria 7
  8. 8. FUNZIONALITA' 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 8
  9. 9. NUOVE FUNZIONALITA' 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... 9
  10. 10. UTILIZZO 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 10
  11. 11. CLIENT 11
  12. 12. OTTIMIZZAZIONE Meccanismi di ottimizzazione automatici: l'ottimizzatore delle query la cache delle query Per i programmatori: Per gli amministratori: usare gli indici utilizzo della cache usare poco il casting e le funzioni disabilitare i gestori non usati non sprecare spazio compilare con librerie statiche dichiarare le colonne NOT NULL provare query scritte in vari modi usare OPTIMIZE TABLE 12
  13. 13. SICUREZZA 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 13
  14. 14. STRUMENTI 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 14
  15. 15. INTERFACCIAMENTO Esistono API per tutti i linguaggi di programmazione più utilizzati, ad esempio: ● C / C++ / C# ● Java Possibilità di includere il ● Perl server in modo ● Python embedded ● Delphi nell'applicazione. ● Ruby ● PHP ● e molti altri.. 15
  16. 16. ALTA AFFIDABILITA' Idea: una serie di macchine che condividono gli stessi dati, se una cade 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à 16
  17. 17. CLUSTER 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 17
  18. 18. MAXDB 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 18
  19. 19. CRITICHE 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 Vecchie versioni non supportano: l'integrità referenziale le subquery Trigger [*] Stored Procedure [*] Viste [*] 19 [*] supportato dalla versione 5
  20. 20. RIFERIMENTI “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/ 20
  21. 21. LINKS [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 21
  22. 22. DOMANDE DOMANDE..  Grazie per la Vostra attenzione 22
  23. 23. COPYRIGHT Questo documento viene rilasciato sotto licenza  Alcoolware, la quale non è altro che una normale  licenza Creative Commons Attribute­NonCommercial­ ShareALike [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/ 23

×