Constraints huma regoli li jinforċaw mid-database fuq id-data fit-tabelli — garantendo l-integrità tad-data fil-livell tad-database (mhux biss fil-kodiċi tal-applikazzjoni). L-aktar importanti: PRIMARY KEY, FOREIGN KEY, UNIQUE, , , u .
Constraints huma regoli li jinforċaw mid-database fuq id-data fit-tabelli — garantendo l-integrità tad-data fil-livell tad-database (mhux biss fil-kodiċi tal-applikazzjoni). L-aktar importanti: PRIMARY KEY, FOREIGN KEY, UNIQUE, , , u .
NOT NULLCHECKDEFAULTCREATE TABLE users (
id INT PRIMARY KEY, -- unique + not null identifier
email VARCHAR(255) UNIQUE NOT NULL, -- must be unique AND present
age INT CHECK (age >= 0 AND age <= 120), -- must satisfy a condition
country VARCHAR(2) DEFAULT 'US', -- default value if not provided
role VARCHAR(20) NOT NULL DEFAULT 'user',
manager_id INT REFERENCES users(id) -- FOREIGN KEY (referential integrity)
);
PRIMARY KEY → uniquely identifies a row (unique + not null, indexed)
FOREIGN KEY → references another table's key (referential integrity)
UNIQUE → no duplicate values allowed in this column
NOT NULL → the column must have a value (can't be NULL)
CHECK → the value must satisfy a condition (age >= 0, status IN (...))
DEFAULT → a value used when none is provided on insert
-- ❌ relying only on application code to enforce uniqueness:
-- a race condition or a bug or a different app could insert a duplicate
-- ✅ a UNIQUE constraint guarantees it at the DB level — ALWAYS enforced,
-- regardless of which code or how many apps access the database
email VARCHAR(255) UNIQUE
Constraints tad-database huma l-aħħar linja ta' difiża għall-integrità tad-data — jinforċaw mingħajr ma jimpurta x'kodiċi jiddaħħal id-data (applikazzjonijiet multipli, scripts, bidliet manuali, jew kodiċi buggy), u għandhom il-kapacità li jmeċċtu race conditions li jmissu l-checks fil-livell tal-applikazzjoni.
CHECK (price > 0) -- prices must be positive
CHECK (status IN ('active', 'inactive')) -- only valid statuses
CHECK (end_date > start_date) -- logical consistency
CHECK jinforċa regoli ta' negozju/dominju direttament fl-iskema.
Constraints huma essenzjali għall-manteniment tal-integrità tad-data — huma garantiżżu li d-data fid-database tiegħek tissodisfa regoli (uniċità, preżenza, valuri validi, referenzi validi) fil-livell tad-database, li huwa fundamentali għal applikazzjonijiet affidabbli, u għalhekk l-għarfien tagħhom huwa importanti.
">L-għarfien tal-tipi ta' constraint (PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK, DEFAULT) u x'jinforċa kull wieħed minnhom huwa neċessarju għal disinn korrett ta' skema.
L-aktar punt importanti minn aspett kunċettwali huwa għaliex jinforċaw fil-livell tad-database aktar milli biss fil-kodiċi tal-applikazzjoni: il-constraints tad-database huma l-aħħar linja ta' difiża għall-integrità tad-data — jimmorru dejjem mingħajr ma jimpurta liema kodiċi jew kemm ta' applikazzjonijiet jakkessaw id-data, jaqbdu bugs li jista' jingħaddu l-checks tal-applikazzjoni, u importantement huma jmeċċtu race conditions li l-validazzjoni fil-livell tal-applikazzjoni ma tistax (eż. żewġ inserts simultanji li jgħaddu ambjin iċ-ċeck ta' uniċità tal-app imma constraint UNIQUE korrettament jirrifjuta d-duplikat).
Dipendenza biss fuq il-kodiċi tal-applikazzjoni għall-integrità hija riskjuża; constraints jipprovdu garantija.
L-għarfien ta' CHECK constraints għall-infurżament ta' regoli tad-dominju/negozju (valuri validi, valuri permessi, konsistenza loġika) direttament fl-iskema huwa valjevoli wkoll.
Bħalissa l-integrità tad-data hija kritika għal applikazzjonijiet affidabbli, u bħalissa constraints jipprovdu garantiji fil-livell tad-database li jipproteġu kontra bugs, race conditions, u data inconsistent b'modi li l-kodiċi tal-applikazzjoni waħdu ma jistax, l-għarfien ta' constraints — it-tipi, il-garantiji tal-integrità tagħhom, u l-importanza tal-infurżament fil-livell tad-database — huwa għarfien importanti u fundamentali għad-disinn ta' databases robusti u aspett ewlieni tal-bini ta' applikazzjonijiet li d-data tagħhom tibqa' konsistenti u valida.