Che materia stai cercando?

Sql (basi di dati)

Appunti di Basi dati su Sql basati su appunti personali del publisher presi alle lezioni del prof. Lenzerini, dell’università degli Studi La Sapienza - Uniroma1, facoltà di Ingegneria dell'informazione, Corso di laurea in ingegneria informatica e automatica. Scarica il file in formato PDF!. Scarica il file in formato PDF!

Esame di Basi di dati docente Prof. M. Lenzerini

Anteprima

ESTRATTO DOCUMENTO

SQL

DEFINIZIONE DEI DATI

Create table

Permette di creare istanza vuota di una tabella

sintassi

CREATE TABLE NomeTabella (

NomeAttributo Dominio [vincoli]

NomeAttributo Dominio [vincoli]

….

NomeAttributo Dominio [vincoli]

[AltriVincoli]

)

Tramite DEFAULT è possibile applicare valore di default all’attributo.

WARNING È importante definire una primary key o attributi unique altrimenti la tabella

potrà avere ennuple completamente uguali.

Create domain

Permette di creare domini personalizzati da domini predefiniti tramite check

sintassi

CREATE DOMAIN NomeDominio

AS DominioPresistente [Default][Vincoli]

Alter table

Permette di modificare una tabella, essenziale per creare vincoli foreign key

sintassi

ATLER TABLE NomeTabella

ADD Attributo|Vincolo

CONSTRAINT permette di

dare un nome al vincolo 1

Drop table

Permette di eliminare una tabella

sintassi

DROP TABLE NomeTabella RESTRICT|CASCADE

I parametri RESTRICT e CASCADE specificano come eliminare le tabelle collegate:

- RESTRICT => elimina solo se non ci sono riferimenti ad essa

- CASCADE => elimina tabella e tutte le tabelle che si riferiscono ad essa

Vincoli intrarelazionali

Esprimono condizioni sui valori di ogni tupla

- PRIMARY KEY => assegna chiave primaria, valore univoco identificativo (NOT NULL)

- NOT NULL => il valore non può essere NULL

- UNIQUE => permette di creare una superchiave per l’attributo

OSS Attributo1 UNIQUE… attribuito2 UNIQUE =/= UNIQUE( attributo1, attributo2)

- CHECK => vincoli sulle tuple (ex. Permette di assegnare valori predefiniti nelle quali

possono rientrare i valori delle tuple)

Vincoli interrelazionali

Permettono di associare informazioni su relazioni differenti

- CHECK => permette di creare vincoli complessi tra tabelle, tra cui vincoli di inclusione.

- REFERENCES FOREIGN KEY

e => definiscono vincoli di integrità referenziali, gli

attributi referenziati devono essere delle primary key (o unique) nella tabella di arrivo.

Può essere creato solo se tabella da referenziare esiste già, richiede utilizzo di alter

table ciclci per doppia referenziazione.

sintassi

- REFERENCES Attributo

- FOREIGN KEY (Attributo, Attributo, …) REFERENCES NomeTabella( Attr, Attr, …)

OSS il dominio di un attributo

referenziato corrisponde con il

dominio dell’attributo nell’altra

tabella 2

Extra foreign key

Il vincolo di foreign key permette inoltre di settare le azioni nel caso di aggiornamento

(ON UPDATE) o cancellazione (ON DELETE) della tabella.

sintassi

ON UPDATE NO ACTION|RESTRICT|CASCADE|SET DEFAULT|SET NULL

ON DELETE NO ACTION|RESTRICT|CASCADE|SET DEFAULT|SET NULL

- NO ACTION => genera errore al momento della verifica del vincolo

- RESTRICT => genera errore immediato, non aspetta fine transazione

DEFERRED

WARNING anche se 1

- CASCADE => cancella tupla che referenzia e tupla referenziata

- SET DEFAULT => sostituisce referenziata con valore default

- SET NULL => sostituisce referenziata con NULL

Le transazioni

- Atomiche => le operazioni non si possono suddividere

- Consistenti => rispettano i vincoli

OSS I vincoli DEFERRED possono essere violati durante le operazioni ma devono

essere rispettati alla fine della transazione, altrimenti viene annulata per intero

- Isolate => gestiscono sezione critica nel caso di transazioni simultanee

- Durevoli => una volta effettuate sono definitive

sintassi

BEGIN;

BEGIN|UPDATE|DELETE SintassiOperazioneManipolazioneDati

COMMIT;

DEFERRED => applicabile sui vincoli di foreign key, permette di controllare il vincolo solo alla

1 fine della transazione 3

MANIPOLAZIONE DEI DATI

Insert

Permette di inserire tuple nella tabella

sintassi

INSERT INTO Tabella [(Attributi)]

VALUES

(valori),

(valori),

….

valori;

Se non specifico attributi prendo tutti, è possibile inserire elementi tramite select

Delete

Permette di eliminare tuple

sintassi

DELETE FROM Tabella

[WHERE Condizione]

Fare attenzione a vicoli cascade

Update

Permetti di modificare tuple

sintassi

UPDATE NomeTabella

SET Attributo = Espressione|select…|null|default

[WHERE Condizione] 4


PAGINE

10

PESO

3.61 MB

AUTORE

duke0000

PUBBLICATO

6 mesi fa


DETTAGLI
Esame: Basi di dati
Corso di laurea: Corso di laurea in ingegneria informatica e automatica
SSD:
A.A.: 2018-2019

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher duke0000 di informazioni apprese con la frequenza delle lezioni di Basi di dati e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università La Sapienza - Uniroma1 o del prof Lenzerini Maurizio.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Basi di dati

Basi di dati
Appunto
Basi di Dati - Come fare gli esercizi e tutta la teoria
Appunto
Linguaggi e Tecnologie per il Web - Come fare gli esercizi 4, 5 e 6
Appunto
Algoritmi e Strutture Dati - Tutta la teoria e tutti i codici che servono
Appunto