Autor: Hussein
Projektijuhtimine
Projekt – tegevus mis on ajaliselt piiratud, omab eesmärki, jaotatud ressursiga
Ressursid – materiaalsed ja inimlikud
| IT projekt | Äri-projekt | |
| Erinevused | lähteülesanne, eesmärgid selgutavad projekti käigus | selge ja konkreetne ülesanne |
| raske ette kujutuda projekti lõpp | täpne eesmärk ja tulemus | |
| tulevad riskid | riskid on ette määratud | |
| vahetulemused raske hinnata | vahetulemused määravad lõpptulemus | |
| Tulemus: | mittemiterajaline väärtus | materaaljne väärtus |
| Teostuslikkuse | teostusprojekt | |
Projektis juhitakse 9 komponendid:

Allhange – sõlmitatakse välisfirmaga leping, et mõned tegevused teeb teine firmal
Seosed – lepingud projekti sees oma inimressursiga
Projekti juhtimise tarkvara:
-MS project
-projectLibre (tasuta vabavara)
-JIRA veebipõhine
GANTT’I diagramm

SEO seadistamine
Mis on SEO?
SEO ehk Search Engine Optimization aitab otsingumootoritel teie sisu mõista ning kasutajatel teie veebisaiti leida. Õige SEO seadistamine mõjutab otsust, kas ja kuidas kasutajad teie veebilehele jõuavad. SEO seadistamine
Google indekseerimine
Google’i indekseerimine on protsess, mille käigus Google leiab teie lehe, töötleb selle sisu ja lisab selle oma indeksisse.
Tõhus SEO aitab tagada, et teie lehed indekseeritakse kiiremini ja korrektselt.
Plugini: Yoast SEO
Yoast SEO plugin toetab SEO seadistamist, võimaldades teil optimeerida pealkirju, meta kirjeldust, võtmesõnu ja sisemist linkimist.
Kasutame: Google Search Console



XML Sitemap
See on tekstifail, mida kasutatakse veebisaidi kõikide URL-ide kirjeldamiseks. See võib sisaldada metadata infot, näiteks viimast uuendamise aega, tähtsust ja keeleversioone.




kui me proovime oma nime kirjutada, leiame end

SEO ja optimeerimine
Muuda leht ja kasutame vähemalt 10 lehte

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.
Tabelis Lennuk kasutatakse lennukID-d esmase võtmena, et identifitseerida iga lennukit unikaalselt.
Igal kirjel peab olema erinev ID – dubleerimised ei ole lubatud.
CREATE TABLE Lennuk (
lennukID INT AUTO_INCREMENT, -- Iga lennuki unikaalne ID
mudel VARCHAR(50), -- Lennuki mudeli nimi
istekohtade_arv INT, -- Istekohtade arv lennukis
PRIMARY KEY (lennukID) -- Põhivõti (primary key)
);

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.
LennukAlternate’is on lennukID esmane võti, registreerimis_number aga alternatiivne võti – teine unikaalne identifikaator, mida ei valitud esmaseks.
CREATE TABLE LennukAlternate (
lennukID INT AUTO_INCREMENT, -- Põhivõti
registreerimis_number VARCHAR(20) UNIQUE, -- Alternatiivvõti
PRIMARY KEY (lennukID)
);

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.
LennukCandidate’is on nii lennukID kui ka registreerimis_number kandidaatvõtmed.
Mõlemat võiks kasutada esmase võtmena – me valisime lennukID.
CREATE TABLE LennukCandidate (
lennukID INT AUTO_INCREMENT, -- Võimalik põhivõti
registreerimis_number VARCHAR(20), -- Teine võimalik võti
PRIMARY KEY (lennukID), -- Valitud põhivõtmena
UNIQUE (registreerimis_number) -- Kandidaatvõti (teine võimalus)
);


(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.
Tabelis LennuGraafik on lennukID välisvõtmena, mis viitab tabelile Lennuk.
See loob seose, mille kohaselt iga lend peab kuuluma olemasoleva lennuki juurde.
CREATE TABLE LennuGraafik (
lendID INT AUTO_INCREMENT, -- Lennu graafiku ID
lennukID INT, -- Seos Lennuk tabeliga
kuupaev DATE, -- Lennu kuupäev
PRIMARY KEY (lendID), -- Põhivõti
FOREIGN KEY (lennukID) REFERENCES Lennuk(lennukID) -- Võõrvõti
);
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.
LennuMeeskondis moodustavad lendID ja pilootID koos liitvõtme.
See identifitseerib üheselt, milline piloot on millisele lennule määratud.
CREATE TABLE LennuMeeskond (
lendID INT, -- Lennu ID
pilootID INT, -- Piloodi ID
PRIMARY KEY (lendID, pilootID) -- Liitvõti (compound key)
);

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.

CREATE TABLE LennuAjad (
lennukID INT, -- Lennuki ID
kuupaev DATE, -- Lennu kuupäev
PRIMARY KEY (lennukID, kuupaev) -- Koosne (composite) võti
);
LennuAjadis kasutab komposiitvõti kahte veergu: lennukID ja kuupäev.
Koos muudavad need iga kirje unikaalseks – üks lennuk võib lennata mitu päeva, kuid mitte kaks korda samal päeval.

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.
LennukSuperkey’s võimaldavad nii lennukID kui ka registreerimis_number identifitseerida iga kirje unikaalselt.
Iga veergude kombinatsioon, mis tagab unikaalsuse, nimetatakse supervõtmeks.
CREATE TABLE LennukSuperkey (
lennukID INT,
registreerimis_number VARCHAR(20),
mudel VARCHAR(50),
PRIMARY KEY (lennukID) -- See on üks võimalik supervõti
);

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.
teine naide:
Tabelis Piloot on isikukood märgitud unikaalseks, mis tähendab, et kahel piloodil ei saa olla sama isikukoodi.
See tagab andmete järjepidevuse, ilma et see oleks esmane võti.
CREATE TABLE Piloot (
pilootID INT AUTO_INCREMENT, -- Piloodi ID
isikukood VARCHAR(11) UNIQUE, -- Iga piloodi isikukood on unikaalne
nimi VARCHAR(100), -- Piloodi nimi
PRIMARY KEY (pilootID) -- Põhivõti
);
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.

Tabel Lennujaam kasutab lihtsat võtit – ühte veergu (jaamID) – oma põhivõtmena.
Iga lennujaam on identifitseeritud ühe unikaalse ID-ga
CREATE TABLE Lennujaam (
jaamID INT AUTO_INCREMENT, -- Lennujaama ID
jaama_nimi VARCHAR(100), -- Lennujaama nimi
linn VARCHAR(100), -- Linn
PRIMARY KEY (jaamID) -- Lihtvõti (üks veerg)
);

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.
Objektide süntaks ja struktuur
Kuidas JavaScript sellega töötab?
Javascripti objektid on võimsad andmestruktuurid, mis võimaldavad teil organiseerida seotud andmeid ühte üksusesse. Objektid koosnevad võtmes-väärtuses paaridest, kus võti on sõne (string) ja väärtus võib olla mis tahes Javascripti andmetüüp (arv, sõne, massiiv, funktsioon jne). Objektid pakuvad suurepärast viisi andmete struktureerimiseks ja manipuleerimiseks. Igapäevaelus võime objekte kohata mitmel viisil. Siin on mõned näited, kus objekte võib leida:
- E-kaubandus – Veebipoodides kasutatakse objekte toodete esindamiseks, millel on omadused nagu nimi, hind, laoseis, kirjeldus, kategooria jne.
- Hotelli broneeringud – Hotellid kasutavad objekte broneeringute esindamiseks, kus iga broneeringu objekt võib sisaldada andmeid nagu kliendi nimi, kuupäevad, toa tüüp, hinnaarvutused jne.
- Autod – Iga auto võib olla objekt, millel on erinevad atribuudid nagu mark, mudel, värv, mootori maht, registrinumber jne.
- Õpilased – Iga õpilane võiks olla objekt, millel on omadused nagu nimi, vanus, klass, hinded, osalemised, tegevused jne.
Javascripti programmides on võimalik vajaduse korral luua ise kohandatud objekte, samuti kasutada sisseehitatud objekte, mis on Javascripti enda poolt pakutavad objektid. Mõned sisseehitatud on näiteks:
Mathobjekt sisaldab matemaatilisi funktsioone ja konstante. Seda kasutatakse sageli matemaatiliste arvutuste tegemiseks, nagu ümardamine, ruutjuur, trigonomeetria funktsioonid jne.Dateobjekt võimaldab töötada kuupäevade ja kellaaegadega. Selle abil saab luua uusi kuupäevaobjekte, saada juurde kuupäeva komponente (nagu päev, kuu, aasta) ja teha erinevaid toiminguid kuupäevade vahel.Arrayobjekt on sisseehitatud objekt, mida kasutatakse massiivide loomiseks ja manipuleerimiseks. See sisaldab mitmeid meetodeid, mis võimaldavad massiividega töötada, nagu elemendi lisamine, eemaldamine, sorteerimine, filtreerimine jne.Stringobjekt sisaldab meetodeid, mis võimaldavad töötada sõnedega. Näiteks, saate kasutada meetodeid nagulength(pikkuse saamine),toUpperCase(suurte tähtede kasutamine),substring(alamstringi võtmine) jne.Objectobjekt on JavaScripti alusobjekt, mida kasutatakse kõikide objektide baasina. Selle meetodeid saab kasutada objektide loomiseks, omaduste lisamiseks ja juurdepääsuks, objektide kopeerimiseks jne.
Objekti loomine
Objekti süntaks koosneb võtme-väärtuse paari paaridest, kus võti on sõne ja väärtus võib olla mis tahes Javascripti andmetüüp. Selles näites on loodud objekt nimega “auto”, millel on järgmised omadused (properties):
Objekti süntaks koosneb võtme-väärtuse paari paaridest, kus võti on sõne ja väärtus võib olla mis tahes Javascripti andmetüüp. Selles näites on loodud objekt nimega “auto”, millel on järgmised omadused (properties):
let auto = {
mark: "Toyota",
mudel: "Corolla",
aasta: 2022,
varv: "punane",
lisavarustus: ["kliimaseade", "elektriaknad", "navigatsioonisüsteem"]
};
// calling
console.log(auto);
Väljastamiseks trüki välja kogu objekt:

console.log(auto.mark); // Output: "Toyota"
console.log(auto.mudel); // Output: "Corolla"
console.log(auto.aasta); // Output: 2022
console.log(auto.varv); // Output: "punane"
console.log(auto.omadused); // Output: ["kliimaseade", "elektriaknad", "navigatsioonisüsteem"]

Objekti meetodid ja this kasutamine
Objektid Javascriptis võivad sisaldada mitte ainult omadusi, vaid ka meetodeid. Meetodid on objekti funktsioonid, mis võivad manipuleerida objekti omadustega või teostada muid toiminguid objekti kontekstis. this võtmesõna kasutatakse meetodite sees, et viidata objektile, mille sees meetod on kutsutud. Tekitame eelmisele auto objektile meetodi, mis kuvab auto täispika nime. Selleks, et meetod saaks kasutada sama objekti omadusi, siis tuleb kasutada this võtmesõna.
let autoOM = {
//omadused
mark: "Toyota",
mudel: "Corolla L",
aasta: 2022,
varv: "punane",
omadused: ["kliimaseade", "elektriaknad", "navigatsioonisüsteem"],
//meetodid
taisnimi: function() {
return this.mark + " " + this.mudel;
}
};
console.log(autoOM.taisnimi());

Meetodi lühendamine
Uus Javascript ES6 lubab nüüd meetodi panna kirja ka lühemalt.
//meetodid
taisnimi() {
return this.mark + " " + this.mudel;
}
Kui omadused on massiivis, siis kasuta for või forEach tsüklit.
let auto = {
//omadused
mark: "Toyota",
mudel: "Corolla L",
aasta: 2022,
varv: "punane",
omadused: ["kliimaseade", "elektriaknad", "navigatsioonisüsteem"],
//meetodid
taisnimi() {
return this.mark + " " + this.mudel;
},
kuvaOmadused() {
this.omadused.forEach(omadus => console.log(omadus));
}
};
auto.kuvaOmadused();

Objektide massiivid
Objektide massiiv on JavaScriptis andmete struktuur, mis koosneb mitmest objektist, mis on järjestatud indeksi alusel. Iga objekt on võti-väärtuse paaride kogum, kus võti on unikaalne ja väärtus on võti-väärtuse paari andmed. Objektide massiiv võib sisaldada mitmesuguseid andmetüüpe, sealhulgas teksti (string), numbreid, tõeväärtusi (boolean), funktsioone, muid objekte jne.
Objektide massiivi loomine ja kuvamine
Objektide massiivi loomine on suhteliselt lihtne. Alustame näiteks autode andmete salvestamisega. Iga auto on esindatud objektina, mis sisaldab teavet auto margi, mudeli ja tootmisaasta kohta.
let autod = [
{ mark: 'Toyota', mudel: 'Corolla', aasta: 2007 },
{ mark: 'Honda', mudel: 'Civic', aasta: 2012 },
{ mark: 'Tesla', mudel: 'Model 3', aasta: 2019 }
];
console.log(autod);
Kui soovime näha konkreetse auto andmeid, saame viidata auto positsioonile massiivis (pidage meeles, et massiivide indekseerimine algab 0-st)
console.log(autod[0]);

Ja selles objektis saan elemendid kätte “punkti-süntaksiga”, nagu eespool
console.log(autod[0].mark);
Kõikide mudelite nägemiseks kasutame jällegi forEach tsüklit
let autod = [
{ mark: 'Toyota', mudel: 'Corolla', aasta: 2007 },
{ mark: 'Honda', mudel: 'Civic', aasta: 2012 },
{ mark: 'Tesla', mudel: 'Model 3', aasta: 2019 }
];
autod.forEach((auto) => {
console.log(`
Mark: ${auto.mark},
Mudel: ${auto.mudel},
Aasta: ${auto.aasta}
`);
});
Objekti massiivi meetodid
JavaScripti massiivide meetodid on kasutatavad nii tavaliste massiivide kui ka objektide massiivide puhul. Sellised meetodid nagu push(), pop(), shift(), unshift(), splice(), slice(), forEach(), map(), filter(), reduce(), sort(), jne. on kõik kasutatavad sõltumata sellest, kas massiiv sisaldab lihtsaid andmetüüpe (näiteks stringid või numbrid) või keerukamaid andmeid (näiteks objekte või isegi teisi massiive).
Seda seetõttu, et JavaScriptis on massiivid objektid ning nii lihtsate andmetüüpide kui ka objektide hoiustamine massiivides toimub ühtemoodi. Andmete tüüp, mida massiiv sisaldab, ei mõjuta massiivide meetodeid. Näiteks uute objektide lisamine objektide massiivi push ja unshift abil.
let autod = [
{ mark: 'Toyota', mudel: 'Corolla', aasta: 2007 },
{ mark: 'Honda', mudel: 'Civic', aasta: 2012 },
{ mark: 'Tesla', mudel: 'Model 3', aasta: 2019 },
{ mark: 'BMW', mudel: '320i', aasta: 2015 },
{ mark: 'Ford', mudel: 'Focus', aasta: 2020 }
];
//Lisab uue objekti massiivi lõppu
autod.push({ mark: 'BMW', mudel: '320i', aasta: 2015 });
autod.unshift({ mark: 'Ford', mudel: 'Focus', aasta: 2020 });
Meetod splice ühaegselt kustutab ja lisab.
massiiv.splice(
{start indeks},
{mitu eemaldada},
{mida lisada}
);
Näiteks
//Eemaldab esimese objekti
autod.splice(0,1);
//Lisab objekti alates teisest indeksist, ei kustutata midagi
autod.splice(1,0,{ mark: 'Audi', mudel: 'A4', aasta: 2018 });
Massiivist otsimine
Objektide massiivist otsimiseks kasutame find meetodit, mis tahab käivitamiseks funktsiooni. Kasutame noolfunktsiooni, kuna see lühem.
//Otsimine
let otsing = autod.find(auto=>auto.aasta > 2018);
console.log(otsing);
Antud meetod leiab esimese vaste ja tagastab selle. Kui vastust ei leita, siis tuleb undefined. Mitme tingimuse seadmiseks kasuta && märke
//Otsimine
let otsing = autod.find(auto=>auto.aasta > 2018 && auto.mark === "Tesla");
console.log(otsing);

Kuna find leiab vaid ühe tulemuse, siis mitme vastuse saamiseks kasuta filter meetodit. Filter loob massiivist uue massiivi ja väljastab tingimustele vastavad elemendid.
Näiteks meil on arvud ja soovime sealt saada paarisarve
let arvud = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const filtreeritud = arvud.filter(arv => arv % 2 === 0);
console.log(filtreeritud);
Autode puhul saame pöörduda näiteks auto.aasta poole ja filtreerida need, mis on uuemad kui 2018
//Filtreerimine
let filter = autod.filter(auto=>auto.aasta > 2018);
console.log(filter);
Massiivi sorteerimine
Viimase meetodina vaatame sorteerimist sort. Lihtsalt sorteerimine objektide massivii puhul õigesti ei tööta. Seepärast peame kasutama võrdlusfunktsiooni.
autod.sort((a, b) => a.aasta - b.aasta);
console.log(autod);

Siin on (a, b) => a - b võrdlusfunktsioon, mis ütleb sort()-ile, et järjestada numbrid nende tegelike numbri väärtuste, mitte stringiväärtuste järgi. Funktsioon a - b tagastab negatiivse väärtuse, kui a on väiksem kui b, positiivse väärtuse, kui a on suurem kui b, ja 0, kui a ja b on võrdsed – just see, mida sort() vajab oma elementide õigesti järjestamiseks.
Ülesanne
Raamatu objekt
1. Loo objekt raamat, millel on vähemalt kolm omadust: pealkiri, autor, aasta.
let raamat = {
pealkiri: 'kuritegu ja karistus',
autor: 'Fyodor Dostoevsky',
aasta: 1866
};

2. Lisa meetod, mis kuvab esimese raamatu kirjelduse.
console.log(raamat.pealkiri);
Vastus:

3. Lisa meetod, mis muudab väljaandmise aastat ja prindi tulemused konsooli.
kuritegu ja karistus muudetud aasta 2020
let raamat = {
pealkiri: 'Kuritegu ja karistus',
autor: 'Fyodor Dostoevsky',
aasta: 1866
};
raamat.muudaAasta = function() {
this.aasta = 2020;
console.log(this.aasta);
};
raamat.muudaAasta();

Raamatukogu
1. Loo objekt raamatukogu, mille omaduseks on raamatud (massiiv raamatutest).
let raamatukogu = [
{ pealkiri: 'läänerindel on kõik vaikne', autor: 'Erih Remark', aasta: 1928},
{ pealkiri: 'Sipsik', autor: 'Eno Raud', aasta: 1962},
{ pealkiri: 'Jevgeni Onegin', autor: 'Aleksandr Pushkin', aasta: 1833}
];
2. Lisa meetod, mis kuvab kõik raamatud kenasti konsoolis.
raamatukogu.forEach((raamatud) => {
console.log(`
Pealkiri: ${raamatud.pealkiri},
Autor: ${raamatud.autor},
Aasta: ${raamatud.aasta}
`);
});

3. Lisa meetod, mis lisab uue raamatu.
raamatukogu.push({ pealkiri: 'midagi', autor: 'keegi', aasta: 2025 });
4. Lisa meetod, mis kuvab raamatukogu raamatute koguarvu.
console.log(raamatukogu.length)

5. Lisa meetod, mis arvutab, mitu raamatut on ilmunud pärast 2000. aastat.
let filter = raamatukogu.filter(raamatukogu=>raamatukogu.aasta > 2000);
console.log(filter.length);

6. Koosta oma meetod ja kirjuta mida meetod tähendab
raamatukogu.forEach((raamatud) => {
console.log(`
Pealkiri: ${raamatud.pealkiri + " - " + raamatud.autor},
Aasta: ${raamatud.aasta}
`);
});

Raamatute andmed
Ja see on töö leht link:
https://khusseintakhmazov24.thkit.ee/HTMLtood/ramatukogu/ramatukogu.html
valik plugin

Christmasify on lihtne kasutada jõuluteemaline plugin, mis lisab teie WordPressi veebilehele lund, jõuluvana, kaunistusi, muusikat ja kauni jõuluteemalise kirjatüübi. Kõik efektid on lülitatavad, nii et saate valida need, mis teile meeldivad! :DDD
Nagu öeldud, on see lihtne kasutada, nii et ma näitan teile, kuidas!
Pärast selle pistikprogrammi allalaadimist ilmub see vasakpoolsesse menüüsse, mis näeb välja järgmine:

seadistada:
Klõpsake lihtsalt soovitud valikutele:

Siin saate valida erinevaid valikuid lumekestest aktiveerimise kuupäevani ja aegumiseni, kui soovite, et plugin lõpetaks töö:
lumekristallid:

Muusika:

stiilid

erinevad asjad

(Ja jah, ka sina saad neid toetada)

eksemplar:

ja rõõmsat jõuluaega!
Tagasiside
Tagasiside vormi loomiseks kasutame Plugin Contact Form 7
Muudatused mis oli tehtud …
AB haldus konspekt
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.
Juhtlis ja veebikalkulator
Random pilti näitamine
|
|
Vastus: |
|
| Summa: |
Veebikalkulator: emojikon
|
|

