Laboratorio di Basi di Dati Per Bioinformatica

Documenti analoghi
Laboratorio di Basi di Dati e Web

Laboratorio di Basi di Dati

Basi di Dati: Corso di laboratorio

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

Corso di Informatica (Basi di Dati)

Basi di dati SQL. Standardizzazione di SQL. Linguaggi di Interrogazione: SQL. Prof.Angela Bonifati

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

Domini elementari, 2. Basi di dati. Domini elementari, 4. Domini elementari, 3. Domini definiti dagli utenti. Domini elementari, 5

Basi di Dati e Sistemi Informativi. Structured Query Language

Basi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

Basi di Dati Relazionali

Dichiarazione degli schemi in SQL DDL 1

Basi di Dati prof. Letizia Tanca

Corso di Basi di Dati A.A. 2013/2014

Gestione delle tabelle

Modello Relazionale. Esempio (Relazione) A x B. Introduzione. Relazione: definizione. I fattori del successo. Relazione

SQL - Tipi di dato Il linguaggio SQL

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. SQL - Tipi di dato. SQL - Tipi di dato numerici. SQL - Tipi di dato numerici

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle

Il linguaggio SQL: DDL di base

SQL. Storia e standard

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

Introduzione a PostgreSQL

SQL Laboratorio di Basi di Dati a.a. 2002/2003

SQL (STRUCTURED QUERY LANGUAGE)

SQL. SQL (Structured Query Language) è un linguaggio di interrogazione per basi di dati relazionali

SQL: Concetti Base -Prima Parte-

5 SQL : Definizione e manipolazione dei dati

DDL DML. Tipi di linguaggi per basi di dati. Si distinguono due categorie:

DUE GRUPPI DI COMANDI

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia:

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

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

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL: fondamenti. Il linguaggio SQL


SQL Sintassi Dei Comandi

SQL. Alcune note sulla definizione dei dati

SQL (STRUCTURED QUERY LANGUAGE)

LABORATORIO di INFORMATICA

SQL aspetti essenziali

Laboratorio di Basi di Dati Introduzione a SQL

Corso sul linguaggio SQL

Definizione di domini

Linguaggio SQL Descriviamo la notazione usata nel seguito:

Definizione e manipolazione dei dati in SQL

Descrizione del linguaggio SQL Definizione del database. Giovanna Rosone 02-03/03/2010

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

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov.

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL

SQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza)

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/

SQL. Storia un po piu in dettaglio. SQL: "storia" Tre livelli per SQL-2. Standard, dialetti, mercato

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

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

Basi di Da( MySQL & MySQL Workbench. Anna Monreale

DATABASE PER IL WEB. Programmazione Web 1

Introduzione a MySQL

Caratteristiche dei linguaggi per Database

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

Corso di Basi di Dati A.A. 2015/2016

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

Corso sul linguaggio SQL

SQL: DDL, VI, Aggiornamenti e Viste

Corso di Informatica Generale 1 IN1. Linguaggio SQL

SQL. SQL: una visione panoramica. SQL: "storia" Definizione dei dati

Cap. 2 - Il Modello Relazionale. Concetti e definizioni

Interrogazioni nidificate

SQL. (Structured Query Language) Eugenio Di Sciascio

Linguaggio SQL. Structured Query Language

LEZIONE. Un linguaggio per le basi di dati relazionali. Stand-alone SQL. 96 BLOCCO TEMATICO A Le basi di dati

Domini elementari in SQL

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

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

MS Access: Tutorial Tabelle, Relazioni

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

OBIETTIVI DELL'ESERCITAZIONE

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

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

ARCHITETTURA DI UN DBMS

Riferimenti semi-bibliografici:

Basi di Dati: Corso di laboratorio

The world s most advanced class on PostgreSQL o quasi! 4 Marzo 8 Aprile L'Antipasto 11 Marzo

DATA BASE MANAGEMENT SYSTEM

Basi di dati Basi di dati per bioinformatica

RELAZIONI E BASI DI DATI

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

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a

Esercitazione sulle libpq - libreria C per PostgreSQL

GUIDA BASE ALL SQL by DaD

Corso di Informatica. Access. Struttura tabella. Tabelle - esempi 11/01/2008

Lezione del modulo 7 SQL e database del giorno 04/05/2006 tot. ore 3. Lo Standard SQL

Elena Baralis 2007 Politecnico di Torino 1

Informatica per le discipline umanistiche 2 lezione 10

DB2 Universal Database (UDB) DB2 Universal Database (UDB)

Transcript:

Laboratorio di Basi di Dati Per Bioinformatica Laurea in Bioinformatica - A.A. 2010/11 Docente: Carlo Combi Email: carlo.combi@univr.it Lezione 1

SQL Structured Query Language SQL è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali È un linguaggio con varie funzionalità: Definizione delle strutture dati e dei vincoli di ( DDL integrità (Data Definition Language Linguaggio per modificare dati (Data Manipulation ( DML Language Linguaggio per interrogare la base di dati (Query ( Language

Definizione Dati in SQL Istruzione CREATE TABLE: Definisce uno schema di relazione (o tabella) e ne crea un istanza vuota Specifica attributi, domini, vincoli CREATE TABLE NomeTabella (Attributo Tipo [Valore Default][Vincolo Attributo] {, Attributo Tipo [Valore Default][Vincolo Attributo]} {, Vincolo Tabella} )

Domini Domini elementari (predefiniti): Carattere: singoli caratteri o stringhe anche di lunghezza variabile Boolean: valori booleani Numerici, esatti e approssimati Data, ora, intervalli di tempo Domini definiti dall utente

Dominio CARATTERE Permette di rappresentare singoli caratteri oppure stringhe. La lunghezza delle stringhe può essere fissa o variabile. character [varying][(lunghezza)] Forme abbreviate: character character varying (20) CHAR ( VARCHAR(20

Dominio Boolean Tipicamente usato per rappresentare valori di verità. Rappresenta valori true/false, Yes/No, 1/0 Il valore NULL sta per unknown boolean

Dominio TIPI NUMERICI ESATTI Permette di rappresentare valori interi o valori decimali in virgola fissa. SQL mette a disposizione 4 diversi tipi: NUMERIC DECIMAL INTEGER SMALLINT numeric [(Precisione [, Scala])] decimal [(Precisione [, Scala])] Numeri in base decimale Se non interessa avere una rappresentazione della parte frazionaria numeric(4,2) 4 cifre significative, 2 cifre dopo la virgola

Dominio TIPI NUMERICI APPROSSIMATI Permette di rappresentare valori numerici approssimati mediante una rappresentazione in virgola mobile. SQL mette a disposizione 3 diversi tipi: FLOAT REAL DOUBLE PRECISION SQL-standard notazione: ( mantissa float [(Precisione)] (Precisione = cifre

Domini per il TEMPO Permettono di rappresentare istanti di tempo in tre diverse forme: ( day DATE (year, month, ( second TIME (hour, minute, ( second TIMESTAMP (tutti i campi da year a time [(Precisione)][with time zone] timestamp [(Precisione)][with time zone]

CREATE TABLE: Esempio CREATE TABLE Impiegato ( Matricola CHAR(6), Nome VARCHAR(20), Cognome VARCHAR(20), Qualifica VARCHAR(20), Stipendio FLOAT )

Vincoli intrarelazionali Vincoli di integrità: proprietà che devono essere soddisfatte da ogni istanza della base di dati Vincoli di integrità intrarelazionali: si riferiscono a singole relazioni della base di dati: NOT NULL: attributo non nullo UNIQUE: definisce (super)chiavi PRIMARY KEY: definisce la chiave primaria ( NULL (una sola, implica NOT CHECK(condizione): vincolo generico

NOT NULL Il valore nullo non è ammesso come valore dell attributo. Il valore dell attributo deve essere specificato in fase di inserimento. Nome VARCHAR(20) NOT NULL

UNIQUE Impone che i valori di un attributo (o di un insieme di attributi) siano una superchiave, quindi tuple differenti della tabella non possono avere gli stessi valori. Si può definire su un solo attributo Matricola CHAR(6) UNIQUE un insieme di attributi Nome VARCHAR(20), Cognome VARCHAR(20), ( UNIQUE(Nome,Cognome

Su più attributi: attenzione! Nome VARCHAR(20) NOT NULL, Cognome VARCHAR(20) NOT NULL, ( UNIQUE(Nome,Cognome Nome Impone che non ci siano due righe che abbiano uguali sia il nome che il cognome VARCHAR(20) NOT NULL UNIQUE, Cognome VARCHAR(20) NOT NULL UNIQUE, Impone che non ci siano due righe che abbiano lo stesso nome o lo stesso cognome

PRIMARY KEY Specifica la chiave primaria della relazione Si usa una sola volta per tabella Implica una definizione di NOT NULL Due forme: Nella definizione di un attributo, se forma da solo la chiave primaria Matricola CHAR(6) PRIMARY KEY Come elemento separato (necessario quando la ( attributi chiave primaria e composta da piu Nome VARCHAR(20), Cognome VARCHAR(20), ( KEY(Nome,Cognome PRIMARY

CREATE TABLE: Esempio CREATE TABLE Impiegato ( Matricola CHAR(6) PRIMARY KEY, Nome VARCHAR(20) NOT NULL, Cognome VARCHAR(20) NOT NULL, Qualifica VARCHAR(20), Stipendio FLOAT DEFAULT 0.0, UNIQUE(Cognome, Nome) ) Il valore che deve assumere l attributo quando viene inserita una riga nella tabella senza che sia specificato un valore per l attributo stesso. Se non specificato, si assume come valore di default null

CREATE TABLE: esempio Check CREATE TABLE Impiegato ( Matricola CHAR(6) PRIMARY KEY, Nome VARCHAR(20) NOT NULL, Cognome VARCHAR(20) NOT NULL, Qualifica VARCHAR(20), Stipendio FLOAT DEFAULT 100.0, UNIQUE(Cognome, Nome), CHECK (Stipendio>= 100) )

INSERT Come popolare una tabella (inserimento righe): INSERT INTO NomeTabella [(ElencoAttributi)] VALUES (Elenco di Valori); Esempio: INSERT INTO Impiegato(Matricola,Nome,Cognome) VALUES ( A00001, Mario, Rossi );

SQL: Creazione Tabelle e inserimento dati CREATE TABLE indirizzi ( nome varchar(20), cognome varchar(20), indirizzo varchar(50), email varchar(30) ); INSERT INTO indirizzi VALUES ('Mario', 'Rossi', 'via Dante, 3', 'mario@rossi.com' );

PostgreSQL

PostgreSQL Sistema di gestione di basi di dati relazionali ad oggetti sviluppato in varie fasi fin dal 1977 È largamente considerato il sistema di gestione di basi di dati Open Source più avanzato L interazione tra un utente (programmatore della base di dati o utente finale) e la base di dati segue il modello client-server

PostgreSQL Per ogni connessione stabilita vengono coinvolti tre processi UNIX: il postmaster: processo deamon con funzione di supervisione (gestisce le basi di dati presenti sul server); l applicazione front-end dell utente (psql): ogni utente che si connette lancia questo programma; un back-end database server (per ogni ( connessione

Uso locale di PostgreSQL Il server dbserver è anche un server PostgreSQL sono disponibili tante basi di dati quanti sono gli utenti. Ogni utente accede alla propria base di dati: dblabxxx e la base di dati dell utente userlabxxx Come ci si connette? export PGUSER = userlabxxx psql -h <nome server> -d <nome database> psql h dbserver -d dblabxxx

Uso locale di PostgreSQL Il nome della tabella e univoco in una base di dati. Quindi non possono essere create due tabelle con lo stesso nome Terminare ogni comando con il carattere `;

Lavorare in psql psql è un client a riga di comando, distribuito insieme a PostgreSQL psql, pur essendo semplice, è molto potente e permette l interazione diretta con il server PostgreSQL

Accesso all archivio psql h dbserver d dblabxxx Noteremo, lavorando dalla linea di comando, un messaggio di benvenuto ed il cambiamento del prompt: psql (8.4.5, server 8.3.8) connessione SSL (cifratura: DHE-RSA-AES256-SHA, bit: 256) Digita "help" per aiuto. dblabxx=>

Introduzione alla sintassi di psql Un breve sommario dei quattro comandi slash principali. \h per l aiuto su SQL \? per l aiuto sui comandi psql \g per l esecuzione delle query \q per uscire da psql una volta terminato

Comandi slash \a attiva e disattiva la modalità di allineamento \c[onnect] [nomedb - [utente]] si connette ad un nuovo database \C <titolo> titolo della tabella \d <table> ( vista descrive la tabella (o la \d{t i s v} elenca tabelle/indici/sequenze/viste \d{p S l} elenca permessi/tabelle di sistema/large object \da elenca gli aggregati

Comandi slash \dd [oggetto] elenca i commenti per tabella, tipo, funzione o operatore \df elenca le funzioni \do elenca gli operatori \dt elenca i tipi di dati \e [file] permette la modifica del buffer della query attuale o di [file] con un editor esterno \echo <testo> scrive il testo sullo stdout \f <sep> cambia il separatore dei campi

Comandi slash \g [file] ( pipe invia la query al backend (e I risultati in [file] o \h [cmd] aiuto sulla sintassi dei comandi sql; * per tutti i comandi \H ( disinserita attiva o disattiva la modalita HTML (attualmente \i <file> legge ed esegue la query da file \l elenca tutti i database \o [file] invia tutti I risultati della query nel [file] o pipe \p mostra il contenuto del buffer della query attuale

Comandi slash \pset <opt> mostra l output della tabella; <opt>={ format border expanded fieldsep null recordsep tuples_only ttitle tableattr pager} \q esce da psql \r cancella il buffer della query \s [file] stampa lo storico dei comandi (history) e lo salva in [file] \set <var> <valore> imposta una variabile interna \t visualizza solo le righe \T <tags> imposta gli attributi dei tag HTML per le tabelle

\unset <var> Comandi slash elimina una variabile interna \w <file> \x \z scrive il buffer della query attuale su <file> attiva e disattiva l ouptut esteso elenca i permessi di accesso alle tabelle \! [cmd] esce sulla shell o esegue un comando

Tipi di Dati principali in PostgreSQL varchar(n): stringa di lunghezza variabile minore o uguale a "n" char: carattere singolo char(n): stringa di lunghezza fissa di "n" caratteri boolean: valore booleano integer: un intero di non più di nove cifre float: un numero in virgola mobile real: numero reale date: data time: l'orario timestamp: data + orario interval: intervallo di tempo bytea: stringa binaria di lunghezza variabile