Vincoli intrarelazionali

I vincoli intrarelazionali sono regole che descrivono la struttura dei dati all'interno di una singola relazione (rappresentabile da una singola tabella). Si distinguono nei seguenti tipi:

vincolo di unicità

impedisce che all'interno di un attributo sia inserito due volte lo stesso valore;

vincolo di obbligatorietà

impedisce che all'interno di un attributo sia lasciato un valore non inserito;

vincolo di chiave primaria

oltre ad unire insieme i due precedenti vincoli (unicità ed obbligatorietà) consente al DBMS di utilizzare l'attributo indicato come elemento identificatore e di accesso ai dati di ogni t-upla della relazione (ogni riga della tabella);

vincolo di dominio

indica se nel dominio dei valori di un attributo della relazione ce ne siano alcuni che non possono essere assunti; per esempio, si potrebbe desiderare che l'utente non possa inserire (anche per distrazione) valori negativi all'interno di una colonna chiamata «prezzo»

vincolo di tupla

fissando una tupla, indica se nel dominio dei valori di un attributo della relazione ce ne siano alcuni che non possano essere assunti, a seconda del valore attualmente presente in un altro attributo; per esempio, si potrebbe desiderare che il «prezzo di vendita» di un prodotto sia sempre superiore al suo «costo di acquisto»

L'unico vincolo intrarelazionale che durante la progettazione del livello logico è stato espresso in forma grafica è stato quello di «chiave primaria», utilizzando convenzionalmente la sottolineatura. Gli altri tipi di vincolo si sarebbero potuti esprimere solo a parole (o in SQL).

Nella derivazione di alcune associazioni uno ad uno, si sarebbe potuto obiettare di aver ottenuto tabelle che non rispettavano il «vincolo di unicità», proprio perchè non si era in grado di esprimere questo tipo di vincolo, come invece, per esempio, quello di «chiave primaria».