L i n u x D a y 2 0 0 5. Alessandro Carichini alexsoft@riminilug.it

Documenti analoghi
FirebirdSQL: Il DataBase open e affidabile

Group. Belluno, 27 ottobre 2007

Tool. Basi di Dati e Sistemi Informativi Prof. Marco Di Felice Dott.sa Sara Zuppiroli A.A

2011 Politecnico di Torino 1

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1

Basi di Dati-IX. Basi di dati e web. Introduzione. Schema. Basi di dati e web. Corso di Laurea in Informatica Anno Accademico 2013/2014

A livello fisico, un istanza di base di dati Oracle è composta. Gubiani & Montanari Oracle Database 3

TCL PAD: UN EDITOR DI TESTO ESTENDIBILE, INCORPORABILE E CON INTERFACCE DI TEXT-PROCESSING

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013

APPENDICE 4 AL CAPITOLATO TECNICO

Master In Tecnologia e Gestione di Sistemi Open Source

SISTEMI OPERATIVI, RETI, INTERNET

Connessione con MySQL

MySQL per amministratori di database

DATABASE PER IL WEB. Programmazione Web 1

Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2013/2014

DBMS: MySQL CORSO DI BASI DI DATI 2014/2015

PROGRAMMAZIONE DIDATTICA DI DIPARTIMENTO A.S. 2017/2018

LE NOVITÀ Eppur si muove...61 Applicazioni ad alta disponibilità...62 Sicurezza...62

SQLite. 2018/ Laboratorio 8. Massimo Lauria

PHP - MYSQL Ing. Bruno Di Caprio

Migrazioni da Oracle a PostgreSQL. Gabriele Bartolini 2ndQuadrant Italia /

PostgreSQL 8.4. Associazione Italiana PostgreSQL Users Group ConfSL 2009 Speaker's Corner Bologna, 13 Giugno 2009

Corso di PHP. Prerequisiti. 8.1 PHP e MySQL. Conoscenza MySQL Tecnica della programmazione

Domande utili alla preparazione dell orale di Informatica all Esame di Stato

Linux Day Montebelluna. Linux Day MontelLUG

L accesso alla rete wireless di UniFe e la sua integrazione con la federazione IDEM. Relatore: Michele Lugli

Tecnologie di Sviluppo per il Web

In rete. I computers si parlano in modalità: Peer to Peer (P2P) o... Client/server

LUGTrieste Alessandro jekil Tanasi

SQL. Lezione 1. Docente: Alberto Belussi

Solution Integrator 18/06/16.

Internet: cenni su struttura e funzionamento.

Linguaggi e Traduttori

REQUISITI TECNICI HR INFINITY ZUCCHETTI

Esercitazione 2 SQL 1 (installazione MySQL)

Associazione Italiana PostgreSQL Users Group ConfSL 2009 Bologna, 13 Giugno Gabriele Bartolini

MySQL Server e Workbench.

C o r s o L i b e r o d i Emiliano Gabrielli <AlberT@SuperAlberT.it> GrUSP.it

Introduzione a phpmyadmin

Esercitazione: Il DBMS MySQL. Insegnamento di Basi di Dati. Laurea in Ingegneria Informatica SAPIENZA Università di Roma

Vincoli, procedure e regole attive in SQL. SQL: vincoli, trigger 1

CREATE VIEW. CREATE VIEW <nome_vista> AS (SELECT <lista_campi> FROM <lista_tabelle> WHERE <condizione>);

Introduzione a MySQL

Laboratorio Progettazione Web PHP e MySQL. Andrea Marchetti IIT-CNR 2014/2015

Introduzione a Linux Lezione 1 Introduzione a Linux

Una metodologia di progettazione di applicazioni web centrate sui dati

Aiutiamo i nostri clienti ad incorporare connettività, servizi web, embedded computing e automazione nei loro prodotti e soluzioni.

La connessione ai database MySQL tramite script PHP versione 5.5

Unità D3. Sicurezza nelle basi di dati. Sicurezza e concorrenza nelle basi di dati. Controllo accesso. Protezione e integrità dati

Database, SQL & MySQL. Dott. Paolo PAVAN Maggio 2002

PHP Introduzione (cont'd)

Tecnologie di Sviluppo per il Web

We W t e n t e n t e Com o p m o p n o e n n e t n i t i Sof o t f w t ar a e Wetnet engine Wetnet Database Wetnet Web-Supervisor

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni

SISTEMI OPERATIVI. Struttura dei. Sistemi Operativi. Giorgio Giacinto 2015

Ing. Claudio Kutufà Cooperazione Internazionale e non solo: Una soluzione completamente opensource per le biblioteche case study: Asmara Public

Stored Procedures. Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma

Sistemi distribuiti open source per reti di comunicazione

Laboratorio di Basi di Dati

Proposta UNIF Progetto: Portale delle fonti di energia rinnovabile. Obiettivi

Lezione 8. Metadati, Viste e Trigger

Strumenti per l automazione del testing di applicazioni web Javascript-based

Laboratorio di Basi di Dati Per Bioinformatica

Sommario. Introduzione... xi. Capitolo 1 Sistemi Informativi Capitolo 2 Modelli dei dati e database relazionali... 15

MySQL. Basi di Dati e Sistemi Informativi Prof. Marco Di Felice Dott.sa Sara Zuppiroli A.A

Per poter interagire con un database in rete mediante uno script php bisogna. innanzitutto cerare una connessione. Ciò si ottiene mediante la funzione

Installare Apache, PHP, MySQL sul Raspberry PI Zero

Basi di Dati Architetture Client/Server

Solution Integrator 28/12/16.

Connessione con MySQL

INFORMATICA NOVITÀ IL LINGUAGGIO JAVA. Massimiliano Bigatti. Guida alla programmazione di base IN ALLEGATO AL VOLUME

10 anni di Genropy. I had a dream


Strumenti Software per Esercitazioni (ambiente Windows) Basi di Dati L LS Ing. Gestionale

TECN.PROG.SIST.INF. I Socket Roberta Gerboni

Ministero del Lavoro e della Previdenza Sociale

ESAME DI STATO I.T.E. A.S

MySQL: il database open source che ha sfidato i giganti

Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo

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

MS Access Un DBMS relazionale per Windows?

Sistemi avanzati di gestione dei Sistemi Informativi

GP SCHEDULA SCHEDULAZIONE PIANIFICAZIONE CARICHI MACCHINA RACCOLTA DATI DI PRODUZIONE EFFICIENZE RISORSE

ESERCITAZIONE: AZIENDA

Il corso fornisce le competenze per progettare e sviluppare programmi usando WebSphere MQ.

A. Veneziani Primi elementi di Linguaggio SQL

Programmare server. Programmazione Web 1

APPUNTI DELLA LEZIONE DI DATABASE DEL 20/10/2016 (POMERIGGIO)

Come portare la vostra intranet su IBM i con Drupal e Zend Server

Quale Framework PHP utilizzare?

MySQL Database Management System

Nome e indirizzo del datore di lavoro

Antonello Alonzi

iseries Informazioni preliminari su Client Access Express

Modulo 10: Basi di dati e loro gestione

Installazione e configurazione di Java DB in Windows (7)

Transcript:

SQLite: il DataBase tascabile Alessandro Carichini alexsoft@riminilug.it Rimini 27 Novembre Linux Day 2005

SQL è uno standard Ogni RDBMS moderno contiene SQL Esistono diverse versioni (ISO) SQL 1992 SQL 1999 SQL 2003 Conoscerne la sintassi ci permette l'interrogazione di qualsiasi RDBMS che lo implementa

SQLite: una panoramica Libreria C sviluppata nel 2000 da Richard Hipp Motore SQL (SQL-92*) Singolo File No Server, No Client No Account OpenSource (Public Domain) Crossplatform Nessuna Configurazione da effettuare

SQLite: SQL-92* Caratteristiche SQL NON Implementate: ALTER TABLE GRANT e REVOKE RIGHT OUTER JOIN Transazioni Nidificate TRIGGER con alcune limitazioni VISTE (VIEW) in sola Lettura

Lo scopo del Dr Hipp Semplice da Amministrare Semplice da Operare Semplice da usare nei programmi Semplice da mantenere e personalizzare SMALL, FAST & RELIABLE (piccolo, veloce e affidabile)

SQLite: Linguaggi supportati C / C++ Perl PHP TCL JAVA FreePascal / Delphi Basic / Gambas Python Ruby.NET

SQLite: quale versione? Versione 2.x Stable Non è compatibile con la 3.0 Maggiormente implementata Versione 3.x Testing fino a poco tempo fa Più potente con maggiori features Non è compatibile con la 2.0 Ancora giovane e poco implementata

SQLite 2: Caratteristiche Versione attuale: 2.8.x Typeless Ogni campo è TEXT tranne PRIMARY KEY Attenzione all'operatore + su campi che vengono considerati ALFANUMERICI meglio usare La Tipizzazione è facoltativa PRIMARY KEY è INTEGER (32 bit) Lock in Lettura/Scrittura sul File

SQLite 3: Caratteristiche Versione attuale: 3.2.x Typeness NULL INTEGER REAL TEXT BLOB (encoding UTF-8, UTF-16BE, UTF-16LE) PRIMARY KEY a 64 bit Lock del File in sola Scrittura

SQLite vs Tutti Caratteristiche SQLite Firebird MySQL PostgreSQL Versione 3,2 1,5 4,1 8,1 GPL - IPL - OpenSouce / BSD - Licenza Public Domain OpenSource Commerciale OpenSource Hardware S.O. Pentium S.O. S.O. Linux/Win32/ Unix/ Win32 / Solaris/ OsX / Piattaforma OsX / FreeBSD FreeBSD Linux / Win32 Unix / Win32 SQL92 Linguaggio SQL92 Entry* SQL92 Intermedio SQL 99 Store Procedure SI SI NO SI Triggers SI SI NO SI Views SI (lettura) SI SI Transactions ACID ACID SI* ACID SMP / 64Bit SI* SI* NO SI / SI

...e le performance? 25.000 INSERT INTO ecco la classifica: SQLite 2.7 0,91 sec. MySQL 3.2 2,18 sec. PostgreSQL 7,1 4,90 sec. Fonte: http://www.sqlite.org/speed.html

SQLite: Quando Usarlo Embedded Devices Palmari (PalmOS), LinuxBox, etc.. Siti Web Soprattuto se in PHP5 Alternativa ai Text-Based XML Berkeley DB Applicazioni Ad-Hoc che utilizzino un DB

SQLite: Quando NON Usarlo Applicazioni Client/Server Manca Gestione Account Locking poco flessibile Siti Web con molto traffico Continui R/W sul file Su File System con limitazioni di dimensione del singolo file (Fat32)

SQLite: Installazione Binario/Sorgente SQLite (www.sqlite.org) sqlite Libreria Dinamica (API) libsqlite.so Eventuale installazione del modulo che aggangia la libreria in C per il proprio linguaggio preferito

SQLite: Amministrazione Command-Line sqlite e sqlite3 www.sqlite.org GUI (QT) SQLite Browser (Supporta solo la Versione 3.0) sqlitebrowser.sourceforge.net WEB SQLiteManager www.sqlitemanager.org

SQLite Command-Line Come tutte le command-line dei DBServer mysql, isql e psql Amministrazione completa: Comandi SQL Import / Export di un DB Esempio: Conversione dalla Versione 2.x alla 3.x sqlite OLD.DB.dump sqlite3 NEW.DB Integrabile in script bash come comando Unix pipe, redirect, etc..

SQLiteBrowser

SQLiteManager

Programming: PERL Modulo driver DBI Modulo CPAN DBD::SQLite2 #!/usr/bin/perl use DBI; $myfiledb = addressbook.db ; $dbh = DBI->Connect( DBI:SQLite2:dbname=$myFileDB,, ) or die( $DBI::errstr ); $sth = $dbh->prepare( INSERT INTO MYTABLE (NOME) VALUES('ALESSANDRO') ); if ($sth->execute() < 0); { print ERROR EXECUTE $DBI::errstr ; } $dbh->disconnect();

Programming: PHP PHP5 Incluso (se non compilato con without-sqlite) PHP4 Se compilato con with-sqlite Libreria PEAR (API) php.ini extension= sqlite.so Da sorgente.php con la funzione dl() dl( sqlite.so )

Esempio in PHP4 <?php?> if (!extension_loaded("sqlite")) { dl("sqlite.so"); } $hdl = sqlite_open("addressbook.db", 0666, $err); $res = sqlite_query("select * from MYTABLE", $hdl); while ($row = sqlite_fetch_array($res, SQLITE_ASSOC)){ printf("%s",$row{'nominativo'}); printf("%s",$row{'telefono'}); } sqlite_close($hdl);

SQLite Extensions SQLiteSecure Encryption Extension for SQLite www.voidbrain.com/sqlitesec.html SQLite_on_Sockets Client/Server extension www.it77.de/sqlite/sqlite_sockets.htm usqliteserver SQLite network wrapper users.libero.it/irwin/

SQLite Based AmaROK: KDE Music Player amarok.kde.org GNUnet: Ambiente P2P Anonimo www.gnunet.org BACULA: Backup/Restore di PC in LAN www.bacula.org Sql-Scripts: Database di script SQL www.sql-scripts.com...e molti altri ancora vedere su www.sqlite.org/cvstrac/wiki?p=sqliteusers

Domande?

Grazie per l'attenzione Alessandro Carichini alexsoft@riminilug.it