Create your own awesome maps

Even on the go

with our free apps for iPhone, iPad and Android

Get Started

Already have an account?
Log In

basi di dati - vincoli d'integrità by Mind Map: basi di dati - vincoli d
0.0 stars - reviews range from 0 to 5

basi di dati - vincoli d'integrità

CREATE TABLE

comando SQL per creare tabella corrisponde a schema relazionale R = (A1, A2, ...An)

CREATE TABLE <nome tabella> ( <nome attributo> <tipo attributo>,   <nome attributo> <tipo attributo>, ..., <integrity constraint>, <integrity constraint> )

al momento della creazione si specificano attributi e vincoli

vincoli possono essere aggiunti anche dopo con ALTER TABLE

CREATE TABLE personale ( nr_passaporto integer, nome varchar(100), cognome varchar(100) UNIQUE, assunzione date, ditta varchar(100) NOT NULL, PRIMARY KEY (nr_passaporto), FOREIGN KEY ditta references ditte (nome) );

domain constraints

tipo di un attributo

char

varchar

integer

date

...

CHECK (predicato)

limita ulteriormente valori ammessi

CHECK (stipendio > 3000)

CHECK non solo su singolo attributo ma altri attributi della tabella o altre tabelle

CHECK (stipendio < 6000 OR funzione = "manager")

UNIQUE

il valore dell'attributo non può avere lo stesso valore in due tuple diverse

NOT NULL

attributo deve avere un valore

referential integrity

assicurano che valori che sono comuni a varie tabelle rimangano consistenti

primary key

identifica univocamente una tupla

automaticamente NOT NULL e UNIQUE

singolo attributo o combinazione di n attributi

foreign key

lega il valore di una tabella alla primary key di un'altra tabella

FOREIGN KEY <attributo questa tabella > references <altra tabella> (<attributo in altra tabella>)

azioni

INSERT

se provo a inserire una tupla con un valore nella foreign key che non esiste nella primary key della tabella corrispondente, INSERT fallisce

non esiste ON INSERT CASCADE

DELETE

se provo a eliminare una tupla la cui primary key è referenziata da qualche altra tupla in altre tabelle, DELETE fallisce

a meno che ...

UPDATE

se provo a modificare il valore di una FOREIGN key con un valore che non esiste nella primary key della tabella corrispondente, UPDATE fallisce

se provo a modificare il valore di una PRIMARY key referenziata da qualche altra tupla in altre tabelle, UPDATE fallisce

a meno che ...

cascadind actions

se non specificato altrimenti DBMS blocca azione che infrange vincolo

si specificano nel constraint FOREIGN KEY

ON DELETE CASCADE

DELETE si propaga e vengono eliminate tuple che referenziano a primary key eliminata

ON UPDATE CASCADE

UPDATE si propaga e vengono modificate tutte le tuple che referenziano alla primary key modificata

cosa sono e utilità

regole che devono valere sempre

definite dal database designer

fatte rispettare dal DBMS

per mantenere consistenza dati