Online Mind Mapping and Brainstorming

Create your own awesome maps

Online Mind Mapping and Brainstorming

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