Vastus (18.01.2024 00:42): Tõstutundetu unikaalsus tähendab näiteks, et kui süsteemis on registreeritud isiku meiliaadress Mati@mets.ee, siis mõnele teisele isikule meiliaadressi mati@mets.ee registreerida ei saa.
Tõstutundetu unikaalsuse jaoks MS Accessis piisab kui defineerite unikaalsuse kitsenduse. MS Access, erinevalt paljudest teistest andmebaasisüteemidest, kasutab tõstutundetut stringide võrdlemist.
Seega näiteks
SELECT *
FROM Isik
WHERE perenimi='METS';
leiab nii isikud perenimega mets, Mets kui ka METS. Unikaalsuse e kordumatuse kontrollimisel kasutatakse väärtuste võrdlemist. MS Accessi jaoks on järgnev tõene väide: Mati@mets.ee=mati@mets.ee
Seega veerus
e_meil ei saa need väärtused samaaegselt olla.
Võrdluseks - PostgreSQLis ja Oracles on unikaalsuse kontroll vaikimisi tõstutundlik, st Mati@mets.ee<>mati@mets.ee ja erinevatel isikutel võivad sellised meiliaadressid olla registreeritud.
PostgreSQLis tuleks sellise reegli jõustamiseks luua kas funktsioonil (
upper või
lower) põhinev unikaalne indeks või
EXCLUDE kitsendus. EXCLUDE kitsendus on unikaalsuse kitsenduse edasiarendus, mille puhul saab väärtuste unikaalsuse e kordumatuse kontrollimiseks kasutada ka mõnda muud operaatorit kui võrdsuse kontrolli operaator (=), mida kasutab UNIQUE kitsendus. Oracles tuleks luua funktsioonil (
upper või
lower) põhinev unikaalne indeks.
Ei indekseid ega ka EXCLUDE kitsendust SQL standard ette ei näe, st tegemist on võimalustega, mis on spetsiifilised konkreetsele andmebaasisüteemidele.