Linguaggi e operazioni nei database, Università di Cassino

Slide dall'Università degli Studi di Cassino e del Lazio Meridionale sui linguaggi nei database. Il Pdf esplora i concetti chiave dei linguaggi e delle operazioni sui database, come DDL e DML, e i vincoli di integrità (PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE, CHECK), con esempi di sintassi. Questo documento di Informatica, adatto per l'Università, fornisce una panoramica schematica e concisa.

Mostra di più

19 pagine

C. Marrocco
Università degli Studi di Cassino e
del Lazio Meridionale
Linguaggi nei database
Un DBMS deve:
definire come i dati sono organizzati in informazioni
(definire gli schemi e operare sugli schemi) attraverso un
opportuno linguaggio di definizione dei dati, il Data
Definition Language (DDL);
manipolare e gestire i dati (ovvero le istanze con
interrogazioni e aggiornamenti) tramite un opportuno
linguaggio di gestione chiamato Data Manipulation
Language (DML).
C. Marrocco
Università degli Studi di Cassino e
del Lazio Meridionale
Operazioni in un database
Le operazioni nel modello relazionale sono
essenzialmente di due tipi:
Operazioni di modifica dei dati del database
(update)
Interrogazioni (cioè letture) del database per
il recupero delle informazioni (query)

Visualizza gratis il Pdf completo

Registrati per accedere all’intero documento e trasformarlo con l’AI.

Anteprima

Linguaggi nei database

Un DBMS deve: definire come i dati sono organizzati in informazioni (definire gli schemi e operare sugli schemi) attraverso un opportuno linguaggio di definizione dei dati, il Data Definition Language (DDL); manipolare e gestire i dati (ovvero le istanze con interrogazioni e aggiornamenti) tramite un opportuno linguaggio di gestione chiamato Data Manipulation Language (DML). C. Marrocco Università degli Studi di Cassino e del Lazio Meridionale

Operazioni in un database

. Le operazioni nel modello relazionale sono essenzialmente di due tipi: - Operazioni di modifica dei dati del database (update) - Interrogazioni (cioè letture) del database per il recupero delle informazioni (query) C. Marrocco Università degli Studi di Cassino e del Lazio Meridionale

Linguaggi di interrogazione per basi di dati relazionali

  • Procedurali - specificano le modalità di generazione del risultato ("come") - Es: Algebra relazionale
  • Dichiarativi - specificano le proprietà del risultato ("che cosa") - Es: Calcolo relazionale - Es: SQL (parzialmente dichiarativo) C. Marrocco Università degli Studi di Cassino e del Lazio Meridionale

Il linguaggio SQL

Originariamente "Structured Query Language" è un linguaggio con varie funzionalità: - contiene sia il DDL sia il DML - ne esistono varie versioni Un po' di storia: - prima proposta SEQUEL (IBM Research, 1974); - prime implementazioni in SQL/DS (IBM) e Oracle (1981); - dal 1983 ca., "standard de facto" - vero e proprio standard dal 1986, poi 1989, 1992, 1999, 2003, 2008, 2011, e 2016 C. Marrocco Università degli Studi di Cassino e del Lazio Meridionale

Utilizzare un DBMS basato su SQL

Un DBMS basato su SQL consente di gestire basi di dati relazionali; dal punto di vista sistemistico è un server.

  • Quando ci si connette ad un DBMS basato su SQL, si deve indicare, implicitamente o esplicitamente, su quale basi di dati si vuole operare.
  • Se si vuole operare su una base di dati non ancora esistente, si utilizzerà un meccanismo messo a disposizione dal server per la sua creazione.
  • Coerentemente con la filosofia del modello relazionale, una base di dati in SQL è caratterizzata da schema (livello intensionale) e istanza (quella corrente - livello estensionale).
  • In più, una base di dati SQL è caratterizzata da un insieme di metadati chiamato catalogo o dizionario. C. Marrocco Università degli Studi di Cassino e del Lazio Meridionale

Creazione di una tabella

L'istruzione più importante del DDL di SQL è CREATE TABLE - definisce una relazione (specificando attributi e vincoli) - crea un'istanza vuota dello schema · Sintassi: CREATE TABLE NomeTabella ( NomeAttributo Dominio [Default] [Vincoli] NomeAttributo Dominio [Default] [Vincoli] [AltriVincoli] ) C. Marrocco Università degli Studi di Cassino e del Lazio Meridionale

Definizione dati in SQL

  • Dominio è il tipo di dati specificato. ' Default indica il valore di default ed è un valore opzionale.
  • Vincoli è un insieme di vincoli intrarelazione definiti sull'attributo in questione ed è anch'esso opzionale.
  • Altri Vincoli sono costrutti opzionali utilizzati per aggiungere ulteriori vincoli intrarelazionali o vincoli interrelazionali. C. Marrocco Università degli Studi di Cassino e del Lazio Meridionale

Domini predefiniti

  • Carattere: singoli caratteri o stringhe, anche di lunghezza variabile · char(n) o character(n) - stringhe di lunghezza fissa · varchar(n) (o char varying(n)) - stringhe di lunghezza variabile . nchar(n) e nvarchar(n) (o nchar varying(n)) - come sopra ma UNICODE
  • Numerici: esatti e approssimati · int o integer, smallint, tinyint, bigint - interi · numeric, (o numeric(p), numeric(p,s)) - valori numerici esatti nonnegativi · decimal, (o decimal(p), decimal(p,s)) - valori numerici esatti anche negativi · float, float(p), real , double - valori numerici reali Università degli Studi di Cassino e del Lazio Meridionale C. Marrocco

Domini predefiniti: Data, ora, intervalli di tempo

  • Data, ora, intervalli di tempo · Date, time, timestamp, year · time with timezone, timestamp with timezone, interval
  • Bit: singoli bit o stringhe di bit · bit(n) · bit varying(n)
  • Introdotti in SQL 1999 · boolean · enum (valore1, valore2, ... ), set (valore1, valore2, ... ) · BLOB, CLOB (text), NCLOB (binary/character large object): per grandi immagini e testi C. Marrocco Università degli Studi di Cassino e del Lazio Meridionale

Domini definiti dall'utente

  • L'istruzione CREATE DOMAIN definisce un dominio (semplice) con vincoli e valori di default, utilizzabile in definizioni di relazioni (In MySQL non è implementata).
  • Sintassi CREATE DOMAIN NomeDominio AS DominioPreesistente [Default] [Vincoli]
  • Esempio: CREATE DOMAIN voto AS SMALLINT DEFAULT NULL CHECK ( VALUE >= 18 AND VALUE <= 30 ) . Il nuovo dominio ed il dominio di partenza (quello che compare dopo la clausola AS) sono compatibili, ed inoltre i valori del nuovo dominio devono rispettare i vincoli indicati nella definizione. C. Marrocco Università degli Studi di Cassino e del Lazio Meridionale

Vincoli

  • NOT NULL (su singoli attributi) specifica il vincolo che il valore dell'attributo deve essere diverso da NULL.
  • UNIQUE specifica che uno o più attributi siano a valore unico. Specifica quindi un vincolo di chiave sia per il singolo attributo (dopo la specifica del dominio) che per più attributi: UNIQUE (Attributo, Attributo) .
  • CHECK specifica una condizione che deve verificare il valore di un dato attributo. C. Marrocco Università degli Studi di Cassino e del Lazio Meridionale

Vincoli: PRIMARY KEY e FOREIGN KEY

  • PRIMARY KEY specifica che uno o più attributi sono chiave primaria di una relazione (implica NOT NULL e UNIQUE).
  • FOREIGN KEY specifica un vincolo di integrità referenziale tramite la parola chiave REFERENCES che stabilisce la chiave primaria di riferimento. La specifica (opzionale) delle politiche di violazione del vincolo di chiave esterna avviene attraverso le opzioni ON DELETE SET NULL, ON DELETE SET DEFAULT, ON DELETE CASCADE, ON DELETE NO ACTION, ON UPDATE CASCADE. C. Marrocco Università degli Studi di Cassino e del Lazio Meridionale

Esempio di creazione tabella

CREATE TABLE Studenti ( matricola INTEGER PRIMARY KEY, nome VARCHAR (20) NOT NULL, cognome VARCHAR (20) NOT NULL, corsoLaurea VARCHAR (20) , indirizzo VARCHAR (100) , FOREIGN KEY (corsoLaurea) REFERENCES Corsi di Laurea (nomeCorso) _ _ ON DELETE SET NULL, UNIQUE (cognome, nome, indirizzo) ) C. Marrocco Università degli Studi di Cassino e del Lazio Meridionale

Modifica di una tabella

L'istruzione che permette di modificare una tabella è ALTER TABLE - Solitamente serve ad aggiungere o eliminare attributi e vincoli. Ad esempio può essere usato per realizzare vincoli di integrità referenziali "ciclici" in cui R, referenzia R2 ed R2 referenzia R1. In tal caso si può definire prima R, senza vincolo di foreign key, poi R, con il vincolo di foreign key verso Ry, ed infine aggiungere il vincolo di foreign key ad R. con il comando alter table.

  • Sintassi: ALTER TABLE NomeTabella [ADD NomeAttributo Dominio [Default] [Vincoli] ] [ADD CONSTRAINT NomeVincolo Vincoli] Per modificare un dominio si utilizza ALTER DOMAIN. C. Marrocco Università degli Studi di Cassino e del Lazio Meridionale

Eliminazione di una tabella

L'istruzione che permette di eliminare una tabella è DROP TABLE · Sintassi: DROP TABLE NomeTabella [RESTRICT | CASCADE] -RESTRICT elimina la tabella solo se non ci sono riferimenti ad essa - CASCADE elimina la tabella e tutte le tabelle che si riferiscono ad essa (in MySQL non ha effetto). N.B. Per eliminare un dominio/vista/schema si utilizza sempre il comando DROP. C. Marrocco Università degli Studi di Cassino e del Lazio Meridionale

Operazioni di manipolazione dei dati

Sono operazioni di - inserimento: INSERT - eliminazione: DELETE - modifica: UPDATE di una o più ennuple di una relazione, sulla base di una condizione che può coinvolgere anche altre relazioni C. Marrocco Università degli Studi di Cassino e del Lazio Meridionale

Inserimento (INSERT)

Sintassi: INSERT INTO NomeTabella (Attributi) VALUES (Elencovalori) Esempio: INSERT INTO Studenti VALUES (1500, ' Claudio' , ' Marrocco' , 'Informatica' , 'Via Di Biasio' ) . l'ordinamento delle liste di attributi (se presente) e valori è significativo. · le liste di attributi e valori devono avere lo stesso numero di elementi. · se la lista di attributi è omessa, si fa riferimento a tutti gli attributi della relazione, secondo l'ordine con cui sono stati definiti. · se la lista di attributi non contiene tutti gli attributi della relazione, per quelli mancanti viene inserito il valore nullo o il valore di default. C. Marrocco Università degli Studi di Cassino e del Lazio Meridionale

Cancellazione (DELETE)

Sintassi: DELETE FROM NomeTabella WHERE Condizione Esempio: DELETE FROM Studenti WHERE (matricola=1500) · elimina le ennuple che soddisfano la condizione · può causare (se i vincoli di integrità referenziale sono definiti con politiche di cascade) eliminazioni da altre relazioni · NB: se la where viene omessa, si intende where true e quindi si eliminano tutte le ennuple della tabella C. Marrocco Università degli Studi di Cassino e del Lazio Meridionale

Modifica (UPDATE)

Sintassi: UPDATE NomeTabella SET Attributo = Espressione {, Attributo=Espressione} [WHERE Condizione] Esempio: UPDATE Studenti SET nome='Claudio', cognome= 'Marrocco' WHERE (matricola=1500) vengono modificate le ennuple della tabella che soddisfano la condizione WHERE C. Marrocco Università degli Studi di Cassino e del Lazio Meridionale

Non hai trovato quello che cercavi?

Esplora altri argomenti nella Algor library o crea direttamente i tuoi materiali con l’AI.