LUGTrieste http://trieste.linux.it/ Alessandro jekil Tanasi alessandro@lonerunners.net http://www.lonerunners.net/



Documenti analoghi
LUGTrieste Alessandro jekil Tanasi

Indice generale. Capitolo 3 Introduzione a PHP...43 Sintassi e istruzioni di base Variabili, operatori e commenti Array...

Introduzione a MySQL

Configurazione avanzata di XAMPP

DBMS (Data Base Management System)

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

DATABASE.

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Capitolo 13. Interrogare una base di dati

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Installazione & Configurazione Php e MySQL su Mac Os X. Php

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Volumi di riferimento

Al giorno d oggi, i sistemi per la gestione di database

Dispensa di database Access

Introduzione a phpmyadmin

Mac Application Manager 1.3 (SOLO PER TIGER)

Lezione 1. Introduzione e Modellazione Concettuale

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Aspetti applicativi e tecnologia

Database & FreeBSD. Come configurare il sistema operativo ottimizzando le prestazioni sul DB. GufiCon#3 Milano, 12 Ottobre 2002

Manuale utente Volta Control

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Lezione V. Aula Multimediale - sabato 29/03/2008

Lezione 8. Metadati, Viste e Trigger

Organizzazione degli archivi

Lezione 9. Applicazioni tradizionali

Informatica DR KLOE Calcolo

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Corso sul linguaggio SQL

Indice Configurazione di PHP Test dell ambiente di sviluppo 28

Console di Amministrazione Centralizzata Guida Rapida

Facoltà di Farmacia - Corso di Informatica

OpenVAS - Open Source Vulnerability Scanner

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Basi di Dati e Microsoft Access

Lezioni di Laboratorio sui Data Base

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

L architettura di un DBMS

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

ARCHIVIA PLUS VERSIONE SQL SERVER

Sistemi per la gestione di database: MySQL ( )

Le Basi di Dati. Le Basi di Dati

Definizione di domini

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

Progettazione di Basi di Dati

Guida all'uso Di mylittleadmin

Corso di Informatica RDBMS RDBMS. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi avanzati di gestione dei Sistemi Informativi

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

Costruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query

Installazione MS SQL Express e utilizzo con progetti PHMI

I database relazionali (Access)

MagiCum S.r.l. Progetto Inno-School

Introduzione ai database relazionali

SQL Server Introduzione all uso di SQL Server e utilizzo delle opzioni Olap. Dutto Riccardo - SQL Server 2005.

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

Apache 2, PHP5, MySQL 5

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at] .

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Laboratorio di Basi di Dati e Web

Introduzione al corso

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Guida all amministrazione VPH Webmin/Virtualmin

GERARCHIE RICORSIVE - SQL SERVER 2008

Informatica per le discipline umanistiche 2 lezione 10

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

PROGRAMMAZIONE MODULARE. Periodo mensile. Ore previste

DBMS e Linguaggi di programmazione nell'era di Internet

2.1 Installazione e configurazione LMS [4]

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Il web server Apache Lezione n. 3. Introduzione

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software

Installazione di Moodle. Preparato per: Gruppo A, Piattaforma di E - Learning Preparato da: Cinzia Compagnone, Vittorio Saettone

Fate doppio click sul file con nome postgresql-8.0.msi e impostate le varie voci come riportato nelle immagini seguenti:

CREAZIONE DI UN SOTTOSITO

Informatica I per la. Fisica

GUIDA UTENTE PRIMA NOTA SEMPLICE

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

L'autore Competenze informatiche

Il software di gestione immobiliare più facile da usare. Modulo Web v5.2.

Archivi e Basi di Dati

Access. P a r t e p r i m a

Concetti fondamentali dei database database Cos'è un database Principali database

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Transcript:

LUGTrieste http://trieste.linux.it/ Alessandro jekil Tanasi alessandro@lonerunners.net http://www.lonerunners.net/ 1

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

IL MODELLO RELAZIONALE I dati sono memorizzati in un modello relazionale[1] ideato da Codd[2] e riassunto nelle sue 12 regole. Relazione: ogni riga (record) è diversa dalle altre i dati possono essere associati Studente Si opera su tabelle Matricola Nome Cognome 1 Pippo Rossi 2 Pluto Verdi [1] http://www.acm.org/classics/nov95/toc.html [2] http://en.wikipedia.org/wiki/edgar_f._codd 3

PERCHE SCEGLIERE MySQL? MySQL è un RDBMS[1] 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 [1] Affermazione discutibile, ma facciamo finta di niente per il momento :) 4

PRESTAZIONI Ha prestazioni di tutto rispetto, può confrontarsi con concorrenti commerciali. fonte http://www.eweek.com Test eseguito dalla rivista eweek nel febbraio 2002 5

INSTALLAZIONE DA BINARI Esistono binari precompilati con diversi compilatori per molte piattaforme. groupadd mysql useradd g mysql mysql cd /usr/local gunzip < /PATH/TO/MYSQL VERSION OS.tar.gz tar xvf ln s FULL PATH TO MYSQL VERSION OS mysql cd mysql scripts/mysql_install_db user=mysql chown R root. chown R mysql data chgrp R mysql. bin/mysqld_safe user=mysql & Oppure si può utilizzare un gestore di pacchetti se disponibile apt get install mysql server mysql common mysql client 6

INSTALLAZIONE DA SORGENTI Personalizzare e ottimizzare l'installazione, guardare le opzioni con./configure --help groupadd mysql useradd g mysql mysql gunzip < mysql VERSION.tar.gz tar xvf cd mysql VERSION./configure prefix=/usr/local/mysql make make install cp support files/my medium.cnf /etc/my.cnf cd /usr/local/mysql bin/mysql_install_db user=mysql chown R root. chown R mysql var chgrp R mysql. bin/mysqld_safe user=mysql & 7

FILE DI CONFIGURAZIONE Nel file di configurazione my.cnf vengono memorizzate le opzioni per l'avvio del server #commento [gruppo] commenti nome del programma o del gruppo per cui valgono le opzioni sottostanti opzione --opzione opzione=valore --opzione=valore set-variable = variabile=valore --set-variable variabile=valore [mysqld] port=3306 socket=/tmp/mysql.sock set variable = key_buffer_size=16m [mysqldump] quick 8

FUNZIONAMENTO I dati* vengono rappresentati sul file system con directory (database) e file (tabelle). Datadir Directory File Le prestazioni sono limitate da quelle del file system. *I dati InnoDB sono memorizzati in modo diverso dall'apposito gestore 9

GLI UTENTI Ogni utente dispone di propri privilegi. Le utenze sono memorizzate nel database mysql, al cui interno ci sono le tabelle di sistema: user : contiene le utenze e i loro privilegi db : contiene la lista dei database host : contiene l'elenco degli host tables_priv : indica i privilegi sulle tabelle columns_priv : indica i privilegi sui campi Per modificare i permessi si utilizza mysqladmin oppure GRANT, meglio non operare a mano sulle tabelle di sistema, possono non essere consistenti. 10

REGISTRI E VARIABILI 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 alcune possono essere cambiate a runtime variabili di sessione: mantenute per ogni client che si connette variabili di stato: contengono informazioni statistiche 11

SQL : STRUCTURED QUERY LANGUAGE Specifica come i dati devono essere definiti e come devono essere manipolati Controlla il DBMS Manipola dati Amministrazione utenti Facile e naturale da utilizzare Linguaggio universale per l'interrogazione di DBMS. Alcuni statements: SELECT nome FROM clienti ORDER BY nome DELETE * FROM criceti WHERE eta = 1 CREATE TABLE tabella (day DATE NOT NULL, nome VARCHAR(10)) 12

TIPI DI DATI Numerici INT, FLOAT, DOUBLE, DECIMAL StringheN u CHAR, VARCHAR, BLOB, TEXT, ENUM, SET Temporali DATE, TIME, DATETIME, TIMESTAMP Speciali Specifiche OpenGIS ENUM e SET sono enumerazioni, cioè variabili che devono essere scelte tra dei valori predefiniti, la seconda consente una scelta multipla 13

TIPI DI TABELLE ISAM Vecchio modello ad accesso sequenziale MyISAM Maggiore dimensione, migliore gestione indicie e compressione, portabilità MERGE Costrutto logico che incorpora più tabelle MyISAM BDB Il gestore metta a disposizione transazioni e recovery automatico InnoDB Il gestore metta a disposizione transazioni, locking migliore, recovery automatico e gestione chiavi esterne HEAP Tabelle temporanee tenute in memoria 14

JOIN Un enunciato che utilizza dati da più tabelle Join completo nella parte FROM compaiono più tabelle SELECT tab1.*, tab2.* FROM tab1, tab2 WHERE tab1.ind = tab2.ind Join sinistro mostra le righe che soddisfano il join ma anche le righe della tabella di sinistra SELECT tab1.*, tab2.* FROM tab1 LEFT JOIN tab2 ON tab1.ind = tab2.ind Join destro mostra le righe che soddisfano il join ma anche le righe della tabella di destra SELECT tab1.*, tab2.* FROM tab1 RIGHT JOIN tab2 ON tab1.ind = tab2.ind 15

INDICI Un indice serve per trovare facilmente le informazioni. Da utilizzare su tutti i campi che vengono utilizzati nelle ricerche o join. Gatto Mucca Tartaruga Animale Gatto Mucca Gatto Tartaruga Gatto si possono avere molti indici per una tabella indici fulltext indici su colonne multiple aumentano le prestazioni nelle ricerca ma le rallentano nelle modifiche 16

SUBQUERY Una subquery è una query annidata in una altra SELECT * FROM tabella1 WHERE colonna1 = (SELECT colonna2 FROM tabella2) Vantaggi: le query possono essere strutturate un metodo alternativo all'uso dei join sono facilmente leggibili in certi casi l'utilizzo delle subquery aumenta le prestazioni ci risparmia i salti mortali con i join 17

TRANSAZIONI Insieme di query eseguite senza interruzioni COMMIT (esecuzione), ROLLBACK (annullamento) BEGIN #qui facciamo tutte le query COMMIT BEGIN #qui facciamo tutte le query ERROR 1060 blablabla ROLLBACK Tabelle transazionali: BDB, InnoDB Tabelle non transazionali: ISAM, MyISAM, HEAP 18

CHIAVI ESTERNE Le chiavi esterne (foreign key) definiscono delle relazioni tra tabelle a livello logico, cioè una relazione tra un un campo di una tabella e un campo di un altra. Il DBMS userà queste relazioni per mantenere l'integrità relazionale. IdUser Nome 1 Gianni 2 Pippo 3 Gigi IdUser Fattura 1 AEFRG 3 FGRGE 3 GRSAE 2 GTESA Ogni fattura deve essere associata ad un utente Le chiavi esterne aiutano a mantenere la consistenza dei dati 19

CLIENT 20

AVVIO E ARRESTO mysqld : il demone server mysqld_safe : uno script che si occupa di gestire in modo sicuro il demone datadir=directory indica la posizione della directory dei programmi basedir=directory indica la posizione della directory dei dati defaults file=file legge il file di opzioni indicato al posto di quello di default pid file=file indica la posizione del file pid socket=file indica la posizione del socket port=numero la porta su cui il server è in ascolto nice=numero il valore di nice con cui viene eseguito il server L'arresto avviene con il comando mysqladmin shutdown oppure SHUTDOWN 21

BACKUP Medoti di backup: backup fisico a mano (tar ecc..) utile solo in casi particolari mysqldump: ritorna una rappresentazione SQL dei database, molto comoda da usare mysqlhotcopy: script perl che esegue la copia fisica di tabelle e db Controllo delle tabelle: myisamchk: controlla e ripara mysqlcheck: controlla, ripara e ottimizza, può essere usato con il server in esecuzione 22

OTTIMIZZAZIONE 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: aumentare la cache disabilitare i gestori non usati compliare con librerie statiche 23

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 il locale il server deve ascoltare solo su localhost 24

PhpMyAdmin E' un utility di amministrazione utilizzabile via web, richiede un server web e il modulo php Manipolare dati, tabelle, database Ogni utene gestisce il suo database Eseguire query SQL Creazione automatica di query complesse Amministrare utenti e privilegi Esportare dati in formato CSV, XML, Latex Effettuare backup/restore dei dati Monitorare il server 25

MySQLCC GUI per l'amministrazione platform indipendent e GPL amministrazione utenze e tabelle supporto per server multipli editor di query visualizza le immagini nei BLOB utile per testare e ottimizzare le query strumento orientato ai programmatori http://www.mysql.com/products/mysqlcc/ 26

MySQL Administrator facile da utilizzare multipiattaforma statistiche in tempo reale facile ottimizzazione backup e restore gestione repliche gestione variabili server controllo dei log strumento orientato ai sistemisti http://www.mysql.com/products/administrator/ 27

QUERY BROWSER editor di query utile per testare e ottimizzare le query strumento orientato ai programmatori http://dev.mysql.com/downloads/query-browser/1.1.html 28

DB DESIGNER 4 strumento grafico per la realizzazione di schemi logici query editor reverse engeneering version control vari plugin purtroppo non supporta le viste http://www.fabforce.net/dbdesigner4/ 29

INTERFACCIAMENTO 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. 30

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à 31

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 32

MAXDB Implementazione di MySQL certificata per l'utilizzo con SAP studiato per gestire un gran numero di transazioni supporta le stored procedures distribuito con interfaccia grafica e web supporta meno interfacce di programmazione funzioni di amministrazione (job scheduling, eventi, allarmi) disponibile per poche piattaforme usa un protocollo proprietario di rete 33

IL LATO OSCURO Funzionalità non supportate: Trigger [*] Stored Procedure [*] Viste [*] -- come commento Privilegi a livello di record Mancanza del supporto a particolari tipi di query (ad es. alberi) Vecchie versioni non supportano: l'integrità referenziale le subquery Potremmo discutere il fatto che MySQL attualmente sia un DBMS [*] supportato dalla versione 5 attualmente in alpha 34

RIFERIMENTI SQL M. J. Hernandez, Mondadori Basi di dati, modelli e linguaggi di interrogazione P. Atzeni, McGrawHill 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/ 35

DOMANDE DOMANDE...E POMODORI Grazie per la Vostra attenzione 36

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/ [ 37