AB kasutajate rollid:
-AB kasutaja - tavakasutaja, mis saab muuta, lisada, filtreerida ja otsida vastavalt vajadusele
-AB programmerija -loob funktsioonid protseduurid (trigerid)
- DBA - AB administratoor - tagab, et õiged kasutajad saavad oma õigused
- AB projekteerija - loob tabeleid ja AB struktuuri
DBA -AB administratoor liigid:
*süsteemiadmin
*AB arhitekt
*AB analüütik
*Data warehouse admin - админ хранилище данных (admeladu)
DBA kaks peamist eesmärki (ülesanded):
1. kasutajate toetus ja ligipääsu jagamine ja seadistamine
2. AB turvalisus ja jõudluse tagamine
AB turvalisus - 3 põhiaspekti:
*andmete konfidentsiaalsus (confidentiality)
GRANT role to user [identified by pwd] [with grant option];
REVOKE role from user;
*andmete kättesaadavus (availability)- доступность - andmed me samme kätte õigel ajal ja õigel kasutajal
*andmete terviklikkus(integrity) - целостность - usaldusväärne andmeallikad
| Risk | Ohutuse aspekt |
| Inimlikud vead | konfidentsiaalsus, kättesaadavus, terviklikkus |
| füüsilised vead (riistvara – hardware) | kättesaadavus, terviklikkus |
| operatsioonisüsteemi rikked | kättesaadavus, terviklikkus, konfidentsiaalsus |
| andmebaasisüsteemi rikked | kättesaadavus, terviklikkus, konfidentsiaalsus |
-COMMIT -COMMIT-käsku kasutatakse kõigi praeguse tehingu käigus tehtud muudatuste salvestamiseks andmebaasi. Kui tehing on kinnitatud, muutuvad muudatused püsivaks.
-ROLLBACK - Kui tekib viga, näiteks päringu probleem, saate ROLLBACK-i abil tühistada kõik tehingu käigus tehtud muudatused
-ROLLFORWARD - käsk taastab andmebaasi, rakendades andmebaasi logifailidesse salvestatud tehinguid.
-Data mining - väärtuslike mustrite ja järelduste avastamine suurte andmekogumite põhjal, kasutades masinõppe, statistika ja andmebaasisüsteemide meetodeid.
-Data warehouse - on erinevatest allikatest integreeritud andmete keskne hoidla. Need hoiavad praeguseid ja varasemaid andmeid, mis on organiseeritud viisil, mis on optimeeritud andmete analüüsimiseks, aruannete koostamiseks ja integreeritud andmete põhjal järelduste tegemiseks.
GROUP BY - lause rühmitab samade väärtustega read kokkuvõtete ridadeks, näiteks „leia klientide arv igas riigis”
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;
UNION ALL - käsk ühendab kahe või enama SELECT-lause tulemusjoukonna (lubab dubleeritud väärtusi)
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
GROUPING - Määrab, kas GROUP BY loendis olev veeruavaldis on agregeeritud või mitte
SELECT SalesQuota, SUM(SalesYTD) 'TotalSalesYTD', GROUPING(SalesQuota) AS 'Grouping'
FROM Sales.SalesPerson
GROUP BY SalesQuota WITH ROLLUP;
GO
- ROLLUP - operaator täiustab GROUP BY-klausli võimekust, võimaldades arvutada veergude kogumi vahe- ja kogusummasid.
select COALESCE(Department, 'Total') as Department SUM(Salary)
from Employee1
Group By ROLLUP (Department);
- CUBE - on GROUP BY-klausli laiendus, mis võimaldab genereerida kõik võimalikud rühmade kombinatsioonid määratud veergude jaoks, sealhulgas vahesummad ja kogusumma.
SELECT state, SUM(salary) AS salary
FROM salary_reports
GROUP BY CUBE(state)
ORDER BY state;
Erunevus ROLLUP and CUBE - ROLLUP teeb kokkuvõtte GROUP BY-klauslis kasutatud veergude hierarhia alusel. CUBE rühmitab kõikide väärtuste kombinatsioonide järgi. / Rollup summerib hierarhiliselt valitud veergud CUBE, arvatub summad igas veerus/kombinatrsioonis
Võtid
PRIMARY KEY – põhivõti/esimene võti
PRIMARY KEY – on tabeli veerg või veergude rühm, mis identifitseerib ainulaadselt iga tabeli rea. Primary key ei tohi olla dubleeritud, mis tähendab, et sama väärtus ei tohi tabelis esineda rohkem kui üks kord. Tabelis ei tohi olla rohkem kui üks primary key.
Selles näites on StudID esmane võti:

Esmase võtme määratlemise reeglid:
- Kaks rida ei tohi omada sama esmase võtme väärtust.
- Igal real peab olema esmase võtme väärtus.
- Esmase võtme väli ei tohi olla tühi.
- Esmase võtme veeru väärtust ei tohi kunagi muuta ega uuendada, kui mõni välisvõti viitab sellele esmasele võtmele.
ALTERNATE KEY – alternatiivne võti
ALTERNATE KEYS on tabeli veerg või veergude rühm, mis identifitseerib tabeli iga rea üheselt. Tabelil võib olla mitu esmavõtme valikut, kuid esmavõtmeks saab määrata ainult ühe. Kõiki võtmeid, mis ei ole esmavõtmed, nimetatakse alternatiivseteks võtmeteks.
Selles tabelis on StudID, Roll No ja Email kvalifitseeritud esmaseks võtmeks. Kuna StudID on esmane võti, muutuvad Roll No ja Email alternatiivseks võtmeks.

CANDIDATE KEY – kandidaata võti
CANDIDATE KEY SQL-is – on atribuutide kogum, mis identifitseerib tabelis olevad tuplid üheselt. Kandidaatvõti on supervõti, millel ei ole korduvaid atribuute. Esmane võti tuleks valida kandidaatvõtete hulgast. Igal tabelil peab olema vähemalt üks kandidaatvõti. Tabelil võib olla mitu kandidaatvõtit, kuid ainult üks esmane võti.
Kandidaatvõtme omadused:
- See peab sisaldama unikaalseid väärtusi.
- SQL-is võib kandidaatvõtmel olla mitu atribuuti.
- See ei tohi sisaldada nullväärtusi.
- See peaks sisaldama minimaalset arvu välju, et tagada unikaalsus.
- See peab identifitseerima unikaalselt iga tabeli kirje.
Kandidaatvõti Näide: Antud tabelis on Stud ID, registreerimisnumber ja e-post kandidaatvõtmed, mis aitavad meil tabelis õpilase andmeid üheselt identifitseerida.


(see sait oli selle hea näide)
FOREIGN KEY – VÄLISVÕTI
FOREIGN KEY – on veerg, mis loob seose kahe tabeli vahel. Välisvõtme eesmärk on säilitada andmete terviklikkus ja võimaldada navigeerimist kahe erineva entiteedi vahel. See toimib kahe tabeli vahelise ristviitena, kuna viitab teise tabeli põhivõtmele.
Näide:

Selles DBMS-i näites on meil kaks tabelit: õpetajad ja osakonnad koolis. Siiski pole võimalik näha, milline otsing toimib millises osakonnas.
Selles tabelis saame lisada välisvõtme Deptcode õpetaja nimele ja luua seose kahe tabeli vahel.

Seda kontseptsiooni tuntakse ka kui viite terviklikkust.
COMPOUND KEY – KOMPOSIITVÕTI
COMPOUND KEY – on kaks või enam atribuuti, mis võimaldavad teil kindlalt ära tunda konkreetse kirje. On võimalik, et iga veerg ei ole andmebaasis iseenesest unikaalne. Kuid kombineerituna teise veeruga või veergudega muutub komposiitvõtete kombinatsioon unikaalseks. Komponentvõtme eesmärk andmebaasis on kindlalt identifitseerida iga kirje tabelis.
Näide:

Selles näites ei saa OrderNo ja ProductID olla primaarvõti, kuna need ei identifitseeri kirjet üheselt. Siiski võiks kasutada Order ID ja Product ID liitvõtit, kuna see identifitseerib iga kirje üheselt.
COMPOSITE KEY – KOMPOSIITVÕTI
COMPOSITE KEY – on kahe või enama veeru kombinatsioon, mis identifitseerib tabelis unikaalselt ridu. Veergude kombinatsioon tagab unikaalsuse, kuigi individuaalselt unikaalsust ei tagata. Seetõttu kombineeritakse need, et identifitseerida tabelis unikaalselt kirjed.
Erinevus liitvõtme ja komposiitvõtme vahel on selles, et liitvõtme mis tahes osa võib olla võõrvõti, kuid komposiitvõti võib olla või mitte olla võõrvõtme osa.

SUPER KEY – SUPERVÕTI
SUPER KEY – Ühe või mitme atribuudi (veeru) kogum, mis võimaldab tuplit (kirjet) üheselt identifitseerida, on tuntud kui supervõti. See võib sisaldada lisatunnuseid, mis ei ole unikaalsuse seisukohalt olulised, kuid mis siiski identifitseerivad rea üheselt. Näiteks STUD_NO, (STUD_NO, STUD_NAME) jne.
- Supervõti on ühe või mitme võtme rühm, mis identifitseerib tabelis ridade unikaalsuse. See toetab NULL-väärtusi ridades.
- Supervõti võib sisaldada lisatunnuseid, mis ei ole unikaalsuse tagamiseks vajalikud.
- Näiteks, kui veerg „STUD_NO” suudab üliõpilast unikaalselt identifitseerida, moodustab sellele „SNAME” lisamine ikkagi kehtiva supervõtme, kuigi see ei ole vajalik.
Näide: Vaadake tabelit STUDENT

Supervõti võiks olla kombinatsioon STUD_NO ja PHONE, kuna see kombinatsioon identifitseerib üliõpilase üheselt.

UNIQUE KEY – UNIKAALNE VÕTI
UNIQUE KEY – tagab, et kõik veeru või veergude rühma väärtused on kogu tabelis unikaalsed. Lisaks, kui unikaalset võtit rakendatakse mitmele veerule korraga, peab iga nende veergude väärtuste kombinatsioon olema kogu tabelis unikaalne.
Unikaalsete võtmete teine omadus on see, et erinevalt primaarvõtmetest võivad need sisaldada NULL-väärtusi, mis võivad olla unikaalsed. Duplikaatidest mitte-null-väärtused ei ole aga lubatud.
Vaadakem näiteks tabelit nimega Student, kasutades käsku desc, et näidata veergu unikaalse võtmega:
desc Student;
+-----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| id | int(11) | YES | UNI | NULL | |
| name | varchar(60) | YES | | NULL | |
| national_id | bigint(20) | NO | | NULL | |
| birth_date | date | YES | | NULL | |
| enrollment_date | date | YES | | NULL | |
| graduation_date | date | YES | | NULL | |
+-----------------+-------------+------+-----+---------+-------+
Siin on veeru id märgitud UNI-võtmega, mis näitab, et tegemist on unikaalse võtmega. Lisaks näeme veeru Null all märget YES, mis tähendab, et veerg id võib sisaldada NULL-väärtusi.
SIMPLE KEY – LIHTSAM VÕTI
SIMPLE KEY – on üksik atribuut või veerg, mis identifitseerib tabelis iga rea või kirje üheselt. Näiteks võib üliõpilase ID olla lihtne võti üliõpilaste tabelis, kuna kahel üliõpilasel ei saa olla sama ID-d. Lihtsat võtit nimetatakse ka esmaseks võtmeks ja sellel on tavaliselt mõned piirangud, näiteks ei lubata nullväärtusi ega dubleeritud väärtusi. Lihtsat võtit võivad teised tabelid viidata ka välisvõtmena, et luua nende vahel seos.

Allikad
- DBMS Keys: Candidate, Super, Primary, Foreign Key Types with Example – https://www.guru99.com/dbms-keys.html
- Keys in Relational Model – https://www.geeksforgeeks.org/dbms/types-of-keys-in-relational-model-candidate-super-primary-alternate-and-foreign
- Understanding MySQL Keys: MUL, PRI, and UNI Explained – https://www.baeldung.com/sql/mysql-keys-mul-pri-uni
- What is the difference between a composite key and a simple key? – https://www.linkedin.com/advice/0/what-difference-between-composite-key-simple-txnce#:~:text=A%20simple%20key%20is%20also,establish%20a%20relationship%20between%20them.

