Andmebaaside ajaveeb

Mõtteid andmebaasidest, andmebaasisüsteemidest ja nende kavandamisest

Kas PostgreSQLis peaks vaate alampäringus kasutama SELECT ... FOR UPDATE?

Ei! Tõsi on see, et PostgreSQLis saab erinevalt Oraclest (12.1) vaate alampäringus kasutada SELECT ... FOR UPDATE.


Mida tähendab WITH CHECK OPTION vaate definitsioonis?

See on vaatega seotud kitsendus, mida tuleks siduda sellise alampäringuga vaatega, mille korral lubab andmebaasisüsteem vaate kaudu andmeid muuta. Erinevates andmebaasisüsteemides on erinevad piirangud vaadetele, mille kaudu saab andmeid muuta.


Kas Oracles saab defineerida vaadetele kitsendusi?

Jah saab. Esiteks saab vaadetele lisada WITH CHECK OPTION (andmemuudatus vaate kaudu peab rahuldama vaate alampäringu tingimusi) ja WITH READ ONLY (vaade on ainult lugemiseks, st kirjutuskaitsega) kitsendused. Neid kitsendusi jõustatakse ...


Kuidas jõustada MS Accessis kitsendus, et kui üks ja sama töötaja omab ühte ja sama rolli mitu korda, siis ei tohi rolli omamise ajaperioodid kattuda?

Saan jõustada nõrgema kitsenduse, mille kohaselt andmete registreerimise hetke seisuga ei tohi ühel ja samal töötajal olla ühe ja sama rolli kohta rohkem kui üks kehtiv rolli omamine. Kehtiv rolli omamine on selline, mille puhul hetke aeg jääb rolli ...


Kuidas jõustada MS Accessis kitsendus, et mittelõpetatud tubade nimetused peavad olema unikaalsed?

Kui andmebaasis defineerida tabelis Tuba unikaalsuse kitsendus UNIQUE (nimetus), siis on nimetus globaalselt unikaalne. Seega, kui tuba on lõpetatud, siis uuesti sama nimetusega tuba registreerida ei saa. Järelikult selline UNIQUE kitsendus ...


Kuidas jõustada MS Accessis kitsendus, et tuba saab aktiivsesse seisundisse viia ainult siis, kui see tuba on seotud vähemalt ühe kategooriaga?

Eeldame, et seisund "Aktiivne" on koodiga 2. Tuleb luua CHECK kitsendus.ALTER TABLE TubaADD CONSTRAINT chk_tuba_aktiivne_peab_olema_kategooriaga CHECK (NOT EXISTS (SELECT *FROM Tuba...


Kuidas leida andmebaasist andmeid, mida seal justkui ei ole? Näiteks on andmebaasis andmed külaliste ja nende hotellide reserveerimiste kohta ja pean leidma külalised, kes EI OLE, 2014. aastal ühegi reserveerimist alustanud.

Andmebaasi kontseptuaalne struktuur on antud juhul järgmine.[Külaline]-1----------------0..*-[Reserveerimine] Võimalik ülesande lahendus on selline.


Mida tähendab, et kirjutage INSERT lause nii, et see poleks tundlik veergude järjekorra muutmise suhtes?

Halb: INSERT INTO Isik VALUES ('39107070123', 'Mets');


Millised on MS Accessi eelised teiste SQL-andmebaasisüsteemide ees?

Iga töö jaoks on oma tööriistad. Töövahend pole universaalselt halb ega hea, vaid sellel on sobivad ja mittesobivad kasutusvaldkonnad. Ma pole nõus nendega, kes MS Accessi põlastavad ja selle peale nina kirtsutavad. Prototüüpide, üksikkasutajate andm...


Kas uuendatavate vaadete (vaated, mille kaudu andmebaasisüsteem põhimõtteliselt lubaks INSERT/UPDATE lauseid käivitada) puhul on ikka vaja WITH CHECK OPTION kitsendust kasutada?

Jah on. Näiteks, kui juhataja rollis kasutaja näeb sellise vaate CREATE VIEW kinnitamata_tellimuste_vaade ASSELECT tellimuse_kood, tellimuse_seisundi_liik_koodFROM TellimusWHEREtellimu...