Introduzione ai database



Documenti analoghi

Introduzione ai database

DBMS (Data Base Management System)

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

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

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

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

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

Dispensa di database Access

Le Basi di Dati. Le Basi di Dati

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

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

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

TEORIA sulle BASI DI DATI

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Basi di Dati e Microsoft Access

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

Organizzazione degli archivi

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

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

Il database management system Access

Sistemi per la gestione di database: MySQL ( )

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

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

I database relazionali (Access)

Base Dati Introduzione

DATABASE.

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

I database. Cosa sono e a cosa servono i Database

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

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

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

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

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

I Sistemi Informativi

Database. Si ringrazia Marco Bertini per le slides

Introduzione ai database relazionali

Sistemi Informativi e Basi di Dati

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

Facoltà di Farmacia - Corso di Informatica

Informatica per le discipline umanistiche 2 lezione 10

SQL (STRUCTURED QUERY LANGUAGE)

MySQL Database Management System

Operazioni sui database

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

Corso di Laboratorio di Basi di Dati

Archivi e Basi di Dati

Introduzione al data base

Preparazione. Introduzione a MySQL: costruzione di una base di dati e gestione degli accessi. Accesso all area condivisa. Avvio Server MySQL

Introduzione a MySQL

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Progettazione di un Database

Laboratorio di Basi di dati

Corso di Informatica (Basi di Dati)

corso di Access MICROSOFT ACCESS Docente: Andrea Mereu Università degli studi di Cagliari 16 aprile 9 maggio 2012

DATABASE RELAZIONALI

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

Organizzazione delle informazioni: Database

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Corso di Informatica Generale 1 IN1. Linguaggio SQL

User Tools: DataBase Manager

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

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

Sistemi centralizzati e distribuiti

Esercizio sui data base "Gestione conti correnti"

PROGRAMMA DI CLASSE 5AI

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

1. BASI DI DATI: GENERALITÀ

OSSIF WEB. Manuale query builder

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

Progettazione di Basi di Dati

Microsoft Access. Microsoft Access

Programma del Corso per Segretaria d Azienda:

Capitolo 13. Interrogare una base di dati

Il linguaggio SQL: query innestate

disponibili nel pacchetto software.

DATABASE. A cura di Massimiliano Buschi

L ARCHIVIAZIONE E LA GESTIONE DATI ATTRAVERSO L INTERAZIONE TRA MICROSOFT ACCESS ED EXCEL 1 INTRODUZIONE

Structured Query Language parte 1

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

Informatica I per la. Fisica

Istruzioni DML di SQL

DOCUMENT MANAGEMENT SYSTEM E VISTE UTILIZZO DEL DMS E DELLE VISTE IN AZIENDA

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

MySQL Database Management System

Istruzioni SQL 1. Query di selezione 2 Istruzione SELECT 2 Istruzione SELECT DISTINCT 2 ORDER BY 3 WHERE 3 La condizione LIKE 4 BETWEEN AND 5

Progettaz. e sviluppo Data Base

Corso sul linguaggio SQL

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

Database Lezione 1. Sommario. - Introduzione - Tabelle e chiave primaria - Query - Calcoli ed alias - Ordinamento

Il linguaggio SQL: viste e tabelle derivate

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

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

CONTENUTI 1. INTRODUZIONE CONCETTI BASICI SU EQUINOX CMS XPRESS ACCESSO A EQUINOX CMS XPRESS PAGINA D INIZIO...

Definizione di domini

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Informatica (Basi di Dati)

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Transcript:

Introduzione ai database I concetti fondamentali Modificato ed espanso da B.C. 12/2011 Ing. Stefano Allegrezza stefanoallegrezza@libero.it

Database e DBMS Cosa sono un DB e un DBMS Database (DB) e......dbms (Data Base Management System, Sistema di gestione)

Definizione di Database (DB) Una Base di dati (Database) può essere definito come un insieme di dati tra loro correlati, memorizzati su un supporto di memoria di massa, costituenti un tutt'uno, che possono essere manipolati da più programmi applicativi

Definizione di DBMS Un Data Base Management System (DBMS) è un insieme di dati tra loro collegati e in aggiunta un sistema software per la gestione di essi esso si occupa dell'aggiornamento, della manutenzione e della consultazione di un insieme di registrazioni contenute in un supporto di memoria di massa. Il DBMS, pertanto, è costituito dal database +un insieme di programmi, che sono rivolti alla gestione di dati memorizzati in archivi.

DBMS: esempio Si consideri una banca che registri le informazioni relative ai suoi clienti e ai loro depositi Il DBMS dovrà disporre programmi per. Gestire i conti esistenti (aggiungere/togliere denaro) Creare i nuovi conti Avere informazioni su un certo conto Generare estratti conto mensili Man mano che si manifestano nuove esigenze, può essere necessario modificare le applicazioni esistenti o disporre di nuovi programmi Ad esempio si supponga che intervengano nuove disposizioni in materia bancaria. occorrerà allora aggiornare il sistema informativo

Operazioni effettuabili su un DB Consistono fondamentalmente in: immissione e cancellazione di dati, modifica di dati già introdotti, ricerca di dati attraverso criteri definiti dall'utente, ordinamento e classificazione dei dati singolarmente o secondo vari criteri, stampa di rapporti o relazioni.

Tipi di Database Database Database Database Database gerarchici reticolari ad oggetti relazionali

Database gerarchici Sviluppati negli anni 60, ma ancora utilizzati ai giorni nostri Sono basati su strutture ad albero

Database reticolari Sviluppati all inizio degli anni 70 Detti anche CODASYL o a rete; sono basati sull uso di grafi e sono stati sviluppati successivamente al modello gerarchico

Database ad oggetti Sono un evoluzione del modello relazionale. Sviluppati negli anni 80 estendono ai database il paradigma della programmazione ad oggetti

Database relazionali Non solo sono i più utilizzati, ma sono anche i più semplici perché si appoggiano ad un modo di rappresentate i dati a noi familiare: le tabelle Oggi i principali database in circolazione sono di tipo relazionale, e questo perché praticamente tutti gli insiemi di dati che corrispondono a entità complesse organizzate come imprese, scuole, associazioni, implicano collegamenti (relazioni) tra i vari dati: ai fornitori sono collegate le merci, agli alunni i corsi, ai corsi i professori, e così via.

Database relazionali: un po di storia Sono stati proposti per la prima volta nel 1970 da E.F. Codd (IBM) Sono nati con lo scopo di superare le limitazioni dei modelli di database allora esistenti Si sono affermati con relativa lentezza I primi sistemi commerciali sono apparsi sul mercato nel 1981

Il mitico testo di C. Date

Database: vantaggi L'utilizzo di un database presenta i seguenti vantaggi: permette un "uso intuitivo" delle procedure di gestione: la gestione avviene con comandi e menu facilmente intelligibili all'utente, restando nascosti tutti i dettagli fisici del programma; evita la programmazione per compiti comuni: il programma incorpora una serie di funzioni che consentono di svolgere operazioni senza la necessità di un linguaggio di programmazione;

Database: vantaggi riduce le ripetitività e duplicazioni: basti pensare agli archivi (cartacei) delle biblioteche, in cui i volumi sono ordinati per autori e per titoli; un database permette di relazionare dati tra loro, ciò che riduce di molto le duplicazioni; riduce i costi: i database sono prodotti standard, per questo risultano più economici di applicazioni su misura; garantisce un certo livello di sicurezza, soprattutto in ambienti multiutente.

File e database: differenze File: Record e Campi Si opera su di un record alla volta Database relazionale: Tabelle Righe (record) Colonne (campi) Operazioni su tabelle

Database: rappresentazione interna

Gli elementi di un database Tabelle Maschere Query Report

Le tabelle Le informazioni di un database devono essere raggruppate in tabelle Le tabelle sono rappresentate mediante griglie suddivise in righe e colonne: Le colonne sono composte da campi Le righe sono chiamate record La prima riga di una tabella è detta intestazione e contiene il nome dei campi

Esempio di Tabella Intestazione Record Cognome Nome Indirizzo Città Rossi Mario Via Tripoli, 12 Roma Verdi Antonio Piazza Mazzini Macerata Bianchi Paolo Via Liguria, 23 Ancona Moretti Luca Via Napoli, 56 Macerata Marconi Andrea Via Roma, 88 Rimini Campo Colonna

Tabella: esempio con MS Access Si può quindi dire che una tabella è formata da: RECORD i quali sono costituiti da CAMPI

Chiave primaria Definizione: La chiave primaria è un campo che identifica in modo univoco i record (righe) della tabella. Esempi: Un codice fiscale consente di identificare in modo univoco la persona: non esistono due codici fiscali identici Il numero di telefono è unico nella rubrica Il codice ISBN di un libro può essere utilizzato come chiave primaria L'indirizzo MAC in una LAN Il numero di targa o di telaio di un veicolo

Chiave primaria La chiave primaria è importante perché la regola fondamentale per stabilire relazioni tra tabelle è che il campo di collegamento non deve avere ripetizioni, ossia ogni record deve potere essere identificato in maniera univoca. Il campo che permette l'identificazione di ogni record è detto "chiave primaria" e deve essere comune alle tabelle che si intende correlare. Per ogni tabella deve essere indicato quale campo funge da chiave primaria.

Accesso concorrente ai dati

Locking nei files Per evitare collisioni e possibile corruzione dei dati! File e Record locking Esempi File: documento word, foglio elettronico ecc, un solo utente. Record: sistema transazionale Race condition

Locking Esplicito lock tables Unlock tables Implicito Select for update I locks sono fatti privati

Locking nel DB MySQL Tipi: Read lock (shared lock) Write lock (exclusive lock) Livelli Tabella Righe Colonne

Database: sicurezza Vengono definiti privilegi di accesso Per individui o gruppi Tramite chiavi e password Diritti di: Creazione Modifica Lettura Record e tabelle nascosti

Transazione DB Es: trasferimento fondi banca start transaction o begin Commit (OK) o rollback (lascia perdere)

MySQL comandi da file (script) Azioni ripetitive Query complesse da modificare shell> mysql < text_file C:\> mysql -e "source batch-file"

I dati all'interno di un DB Campi di righe di tabelle Tipo dati Intero, binario (bit, bool) stringa, data

I dati: vincoli di integrità Not null Primary key Check Triggers The integrity constraints implemented in Oracle fully comply with ANSI X3.135-1989 and ISO 9075-1989 standards.

DB: I triggers Azione associata ad una tabella che scatta automaticamente quando la tabella viene toccata con un (insert update o delete) CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt Type Time (before o after) event

DB: le stored procedures

MySQL: privilegi Il concetto di privilegio GRANT SELECT ON database.* TO user@'localhost'; GRANT SELECT ON database.* TO user@'localhost' IDENTIFIED BY 'password'; GRANT SELECT, INSERT, DELETE ON database TO username@'localhost' IDENTIFIED BY 'password' select * from mysql.user where User='username';

User Account Privileges Explained: In Windows operating systems NT, 2000, XP, Vista, 7, Windows Server 2003 and Microsoft operating systems to come, there are certain class privileges or restrictions that the operating system imposes on the logged-in user, depending on how the computer is configured. Computer Administrator, or Administrators Group accounts allow full unrestricted control over all computer functions including updating the operating system, adding/removing hardware and drivers, software installation, upgrading, or removal, viewing, altering, creating or deleting of other user accounts, establishing passwords and priviliges for other users, backing up files and folders and restoring backups to fix a corrupted system. Power Users have less privileges than Administrators and may be able to install, update and modify some programs, but cannot do anything that overwrites or deletes any files critical to the operating system; ie: cannot run Windows Update. (More details about Power Users) Standard Users are a new class of Windows Vista and 7 users that have similar privileges to W2k/XP Power Users, but can elevate to Administrator when needed, without logging off, or switching users. More info Users, or Limited Users have limited priviliges. They can run already installed programs, create and files and folders, then delete them, manage their own password, upgrade programs that do not impact operating system files, surf the Net and create email

MySQL privilegi II This is a list of privileges that you can grant: (mysql V5.1) Privilegio Significato ALL [PRIVILEGES] Sets all simple privileges except GRANT OPTION ALTER Enables use of ALTER TABLE CREATE Enables use of CREATE TABLE CREATE TEMPORARY TABLES DELETE Enables use of DELETE DROP Enables use of DROP TABLE EXECUTE Not implemented FILE Enables use of SELECT... INTO OUTFILE and LOAD DATA INFILE INDEX Enables use of CREATE INDEX and DROP INDEX INSERT Enables use of INSERT LOCK TABLES Enables use of LOCK TABLES on tables for which you have the SELECT privilege PROCESS Enables the user to see all processes with SHOW PROCESSLIST REFERENCES Not implemented Enables use of CREATE TEMPORARY TABLE

MySQL privilegi III RELOAD Enables use of FLUSH REPLICATION CLIENT are Enables the user to ask where slave or master servers REPLICATION SLAVE from the master) Needed for replication slaves (to read binary log events SELECT Enables use of SELECT SHOW DATABASES SHUTDOWN SHOW DATABASES shows all databases Enables use of MySQLadmin shutdown SUPER Enables use of CHANGE MASTER, KILL, PURGE MASTER LOGS, and SET GLOBAL statements, the MySQLadmin debug command; allows you to connect (once) even if max_connections is reached UPDATE Enables use of UPDATE USAGE Synonym for privileges GRANT OPTION Enables privileges to be granted

Database: sicurezza Vengono definiti privilegi di accesso Per individui o gruppi Tramite chiavi e password Diritti di: Creazione Modifica Lettura Record e tabelle nascosti

Le relazioni Oltre che memorizzare delle informazioni, un database è anche in grado di memorizzare le eventuali relazioni che possono esistere tra i dati. Molto spesso infatti un database non è formato da una sola serie di informazioni, anzi è probabile che il complesso informativo che viene gestito sia composto da diversi tipi di informazione collegati tra loro.

Le relazioni: esempio Pensiamo ad un azienda che ha bisogno di rifornirsi di materiali di vario genere per il proprio lavoro. Potrebbe essere predisposto un elenco dei vari materiali necessari, all interno del quale verranno riportate anche le informazioni relative al fornitore, ad esempio Nome e Telefono. E facile immaginare che se più prodotti vengono reperiti presso lo stesso fornitore, il Nome e Telefono di quest ultimo compariranno molte volte con un evidente spreco di spazio

Le relazioni: esempio Per risolvere questo inconveniente, ci viene in aiuto la possibilità che hanno i programmi di gestione dei database, di organizzare il database su più tabelle mettendole in RELAZIONE (collegamento logico) tra di loro. Si potrebbero quindi suddividere le nostre informazioni in due tabelle: la prima riporterebbe i nomi dei prodotti e un codice che identifica il fornitore (anche se i codici sono ripetuti sprechiamo molto meno spazio di prima), mentre la seconda

Le relazioni: esempio Attraverso il COD. FORNITORE si crea quella che viene definita RELAZIONE e il database che permette di gestire relazioni tra i dati assume il nome di DATABASE RELAZIONALE

Le relazioni: tipi Si possono stabilire tre tipi di relazione: uno a uno: si tratta di relazioni tra elementi che hanno una corrispondenza univoca: ad un elemento di una tabella ne corrisponde uno soltanto in un'altra e viceversa; uno a molti: sono relazioni che si stabiliscono tra un record di una tabella e più records di un'altra tabella, ma non il contrario; molti a molti: un record può essere relazionato a più di un record di un'altra tabella e viceversa; questo tipo di relazione è normalmente definita tramite una terza tabella che costituisce un "ponte" tra le due da relazionare.

Le relazioni in Access

Le relazioni: esercizi Definire le tabelle e le relazioni necessarie per gestire l archivio dei libri di casa Definire le tabelle e le relazioni per gestire l archivio dei contatti (ovvero la rubrica )

Esercizio: Creazione di una tabella Si crei una tabella Contatti con i seguenti campi: Cognome, Nome, Indirizzo, Cap, Città, Provincia, Telefonofisso, TelefonoCellulare, Email Con Access: Selezionare File->Nuovo->Database Crea una tabella in visualizzazione Struttura Per ogni campo (colonna della tabella) deve esserne specificato il nome ed il tipo di dato, volendo la descrizione

Le maschere In una tabella i dati possono essere inseriti: considerando la tabella come se fosse un foglio tipo Excel oppure: utilizzando le maschere (di inserimento)

Le maschere L inserimento dei dati può essere facilitato con la creazione di maschere. Le maschere sono sono utili anche per la visualizzazione ordinata del contenuto delle tabelle. Nelle maschere si possono introdurre anche elementi grafici e i campi possono essere formattati secondo stili diversi.

Le maschere: esempio

Le Query Una query è uno strumento che consente di effettuare interrogazioni sui contenuti delle tabelle e anche di eseguire specifiche azioni sui dati.

SQL: Structured query language Permette di manipolare il DB anche senza usare programmi

L SQL E un linguaggio utilizzato per interagire con i database relazionali SQL = Structured Query Language (linguaggio di interrogazione strutturato) Standard ANSI e ISO È universalmente accettato dai produttori di sistemi per database MySQL Microsoft Access, Microsoft SQL server Oracle IBM DB2 Può essere inglobato in linguaggi di programmazione tradizionali come C, C++, Java, PHP È in grado di effettuare le diverse operazioni per l interazione con un database: interrogazione, inserimento di nuovi dati, modifica di dati esistenti, eliminazione di dati esistenti

SQL: caricamento dati insert into Persone (Nome,Cognome,Sesso,Data_Nascita) values ('Andrea','Geili','M','23/05/1980'), ('Sara','Bort','F','12/01/2000'); load data infile 'nome_file.txt' into table nome_tabella;

Query SQL, esempi: SELECT Societa, paese FROM clienti WHERE paese <> 'USA SELECT Cognome, Nome from persone WHERE eta > 30 SELECT, UPDATE, DELETE, INSERT, WHERE

select Nome,Cognome from Persone where Data_Nascita='23/05/1980'; L'opzione (clausola, clause) WHERE serve quindi per stabilire i criteri di visualizzazione; gli operatori logici usati sono: >, <, =, >=, < =, < >, like, and, or, not, between, is null

Select avanzate Select * from impiegati where nome LIKE '%celli' Bertuccelli bonuccelli bocelli. Select * from Persone where Nome like 'A%'; '%A'??... '%A%'?? Select * from inventario where peso>30 and costo>200; select * from Persone order by Identificativo asc; select * from Persone order by Identificativo desc; select * from Persone into outfile 'nome_file.txt';

Select avanzate II select count(nome_campo) from nome_tab; effettua la conta dei valori del nome_campo select sum(nome_campo) as nome_col from nome_tab; effettua la somma dei valori del nome_campo select avg(nome_campo) as nome_col from nome_tab; effettua la media dei valori del nome_campo select min(nome_campo) as nome_col from nome_tab; mostra il valore minimo dei valori del nome_campo select max(nome_campo) as nome_col from nome_tab; mostra il valore massimo dei valori del nome_campo

Select between SELECT * FROM impiegati WHERE stipendio <= 1200 AND Stipendio > 300; Equivale a: Select * from impiegati WHERE stipendio between 301 and 1200

Subquery Sono select all'interno di altri comandi A differenza delle SELECT, che restituiscono una tabella formata da righe e colonne, le subquery possono restituire un valore singolo (scalare), una singola riga, una singola colonna, oppure una normale tabella.

Subquery: operazioni scalari SELECT colonna1 FROM tabella1 WHERE colonna1 = (SELECT MAX(colonna2) FROM tabella2); Questa query estrae i valori di colonna1 nella tabella tabella1 che sono uguali al valore massimo di colonna2 nella tabella tabella2.

Subquery: crea colonne SELECT s1 FROM tabella1 WHERE s1 > ANY (SELECT s1 FROM tabella2); Questa query seleziona da tabella1 i valori di s1 che sono maggiori di almeno 1 dei valori di s1 su tabella2.

Subquery: crea righe SELECT colonna1,colonna2 FROM tabella1 WHERE (colonna1,colonna2) IN (SELECT colonna1,colonna2 FROM tabella2); Questa query estrae le righe di tabella1 in cui i valori di colonna1 e colonna2 sono ripetuti in una riga di tabella2. L'espressione "(colonna1,colonna2)" è, appunto, un costruttore di riga.

SQL: join (unisci, unione) per ottenere dati da più tabelle correlate tra loro inner join, outer join e cross join. Join si può usare nelle select, update e delete

Cross (X) join (pesante!) La cross join è concettualmente la più semplice, ma non viene usata molto in quanto fa un "prodotto (cross) cartesiano" delle due tabelle; ecco come funziona: ogni riga della prima tabella viene combinata con tutte le righe della seconda. Ipotizzando di avere una tabella di 5 righe e una di 6, il risultato sarà una tabella di 30 righe. select * from tabella1 cross join tabella2; Select * from tabella1, tabella2; Access e DB2 l'accettano solo con WHERE Oracle non aveva la Join

Inner Join La inner join si effettua andando a cercare righe corrispondenti nelle due tabelle, basandosi sul valore di determinate colonne; si distinguono in INNER JOIN e LEFT JOIN Le query di tipo INNER JOIN ('unione interna') sono le più comuni nonché il tipo predefinito. Corrispondono all'unione cartesiana di due tabelle e all'eliminazione di tutti i record risultanti che non trovano riscontro nelle condizioni della query.

Inner join: Implicita ed esplicita SELECT contatti.nome, contatti.cognome, telefoni.telefono FROM contatti, telefoni WHERE contatti.id = telefoni.id_persona; SELECT contatti.nome, contatti.cognome, telefoni.telefono FROM contatti INNER JOIN telefoni ON contatti.id = telefoni.id_persona;

Outer join Le outer join si dividono in left (outer) join, right (outer) join e full outer join (*)

Left join Ogni elemento della prima tabella (quella a sinistra, left) farà parte del risultato, anche se non c'è corrispondenza con l'altra tabella della join

Right join Come la left join, solo che la tabella più importante è quella a destra

Quindi... INNER JOIN prende tutti i records da una tabella che hanno qualche elemento in relazione nella seconda tabella LEFT JOIN prende TUTTI i records dalla tabella di sinistra (la prima) ma, se hai selezionato qualche colonna dalla tabella di destra, se non ci sono record, queste colonne contengono null from the LEFT linked table but if you have selected some columns from the RIGHT table, if there is no related records, these columns will contain NULL RIGHT JOIN me left, solo che prende tutti i record dalla seconda tabella (right) FULL JOIN prende tutti i record da entrambe le tabelle e inserisce NULL nelle colonne per cui non esistono record correlati nella seconda tabella

SQL: DML e DDL Data Definition Language Data Manipulation Language

DDL CREATE DATABASE crea un nuovo database ALTER DATABASE - modifica un database CREATE TABLE crea una nuova tabella ALTER TABLE - modifica una tabella DROP TABLE - cancella una tabella CREATE INDEX crea un indice

DML SELECT - estrae dati da un database UPDATE - modifica dati in un database DELETE - cancella dati da un database INSERT INTO - inserisce nuovi dati in un database

Esempi SQL create database corso_php; CREATE TABLE nome_tabella (nome_campo tipo_campo opzioni_campo, nome_campo tipo_campo opzioni_campo ecc., CHIAVI E INDICI); CREATE TABLE giocatori (id_giocatore INT (11) UNSIGNED NOT NULL AUTO_INCREMENT, nome_giocatore VARCHAR (100), anno_nascita DATE, ruolo VARCHAR (1), PRIMARY KEY(id_giocatore), UNIQUE(id_giocatore), INDEX(id_giocatore));

I report I report consentono di visualizzare in anteprima o stampare i dati secondo uno specifico formato. Esempi: Etichette postali Elenchi Buste Lettere tipo Fatture Schede di libri

I report Un report consente di visualizzare i dati memorizzati in tabelle o query del DB Tale visualizzazione non ha lo scopo di consentire inserimenti o modifiche, ma di PRESENTARE i dati in un formato efficace su carta o su video

I report I report visualizzano efficacemente i risultati di una o più query o i dati di una o più tabelle

DBMS: prodotti

La piattaforma LAMP! Linux Apache MySQL Perl/PHP/Python

MySQL Open source Licenza GNU MySQL AB (Svezia) acquistata da Oracle Usato da Wordpress (blog) Joomla (CMS), wikipedia, Youtube, Google, Facebook e Twitter...

Microsoft Access È un semplice DBMS È poco adatto alla gestione di grosse quantità di dati

Test 1 Che cosa è una database? 1. Una collezione di informazioni importanti 2. Una insieme di dati tra loro correlati 3. Un documento di Access 4. Un particolare programma preposto all'archiviazione di dati

Test 2 Che cosa significa DBMS? 1. Data Base Micro Soft 2. Data Bit Main Software 3. Device Base Multi Software 4. Data Base Management System

Test 3 A cosa servono le tabelle? A contenere i dati grezzi del database A selezionare e o modificare i dati A inserire o visualizzare i dati A produrre stampe dei dati

Test 4 A cosa servono i report? A contenere i dati grezzi del database A selezionare e o modificare i dati A inserire o visualizzare i dati A produrre stampe dei dati

Test 5 A cosa servono le maschere? A contenere i dati grezzi del database A selezionare e o modificare i dati A inserire o visualizzare i dati A produrre stampe dei dati

Test 6 A cosa servono le query? A contenere i dati grezzi del database A selezionare e o modificare i dati A inserire o visualizzare i dati A produrre stampe dei dati