Vastus: Miks ma leian, et see vaade vajab WITH CHECK OPTION kitsendust, mis keelab sellise muudatuse tegemise?
Süsteemi õpitavuse, kasutamise efektiivsuse, meeldejäävuse, ja arusaadavuse seisukohalt on oluline, et
süsteemi osade käitumine on ootuspärane, järjekindel ja võimalikult väheste eranditega - kokkuvõtlikult järgiks ortogonaalse disaini printsiipi. Olen ortogonaalse disaini printsiibist kirjutanud "Andmebaasid I" materjalides. Tarkvarakeelkeel, mis on kavandatud ortogonaalse disaini printsiipi arvestades:
- pakub suhteliselt väikese hulga keelekonstruktsioone
- koos terviklike ja järjekindlate reeglitega nende konstruktsioonide kombineerimise kohta
- ning iga konstruktsioonide kombinatsioon on legaalne ja sisulist tähendust omav.
SQL on näide keelest, mis paraku paljudes kohtades RIKUB ortogonaalse disaini printsiibi põhimõtteid ning nagu on näha käesolevast näitest, siis võimaldab ka luua süsteeme, mis omakorda seda printsiipi rikuvad.
Baastabel, virtuaalne tabel e vaade, kitsendus, UPDATE ja INSERT operatsioon kuuluvad SQLi põhiliste konstruktsioonide hulka.
Ortogonaalse disaini printsiibi mõtte kohaselt:
- INSERT ja UPDATE operatsioonid toimivad ühtemoodi nii baastabelitel kui virtuaalsetel tabelitel (seega, näiteks, kuna UPDATE lause baastabelist ridu ei kustuta, siis ei tee see seda ka virtuaalsete tabelite korral).
- Kitsendusi jõustatakse ühtemoodi nii baastabelitel kui virtuaalsetel tabelitel, st ei lubata nendes teha muudatusi, mis lähevad vastuollu neile defineeritud kitsendustega. Virtuaalse tabeli alampäringus olev piirang (predikaat) on selle tabeli kitsendus, mis ütleb, millistele tingimustele vastavad read selles tabelis sisalduvad.
Tulles tagasi jutu alguses olnud näite juurde, siis siin tuleks lisaks vaatele teha funktsioon, mille sisuks on etteantud koodiga tellimuse kinnitamine.