Конспект администрации
Andmebaasi võtmete liigid (Database Keys)
- Primary key
- Foreign key
- Unique key
- Simple key
- Composite key
- Compound key
- Superkey
- Candidate key
- Alternate key
Võtmed on komponendid, mis tagavad andmete terviklikkuse, unikaalsuse ja tõhusa ligipääsu neile. Neid kasutatakse laialdaselt tabeli ridade ainulaadseks tuvastamiseks.
Samuti kasutatakse võtmeid seoste loomiseks erinevate veergude ja tabelite vahel relatsiooniandmebaasis.
Primary key
- Primary key on unikaalne võti, mis tähendab, et see suudab üheselt tuvastada iga kirje tabelis.
- Selle väärtused peavad olema ainulaadsed ning need ei tohi korduda.
- Primaarvõti ei tohi olla NULL, sest see peab andma kehtiva ja unikaalse identifikaatori iga kirje jaoks.

create table employees (
id int primary key,
name varchar(100),
position varchar(50)
);

Foreign key
- Foreign key on ühe tabeli komponent, mis viitab teise tabeli primaarvõtmele.
- Võõrvõti ühes tabelis osutab primaarvõtmele teises tabelis, luues nende vahel seose.
- See aitab ühendada kahte või enamat tabelit, võimaldades nendevahelisi seoseid. See on oluline andmete terviklikkuse säilitamiseks ja liigsete andmete vältimiseks.
- Võõrvõtmed toimivad ristviidetena tabelite vahel.

create table departments (
id int primary key,
name varchar(100)
);
create table employees (
id int primary key,
name varchar(100),
department_id int,
foreign key (department_id) references departments(id)
);

Unique key
- Unique key võivad sisaldada ühte NULL-väärtust.
- Tabelis võib olla rohkem kui üks unique key.
- Unique key saab uuendada või kustutada ning see ei mõjuta tabeli terviklikkuse piiranguid.

create table users (
id int primary key,
username varchar(50) UNIQUE,
email varchar(100) UNIQUE
);

Simple key
- Simple key koosneb ainult ühest veerust (atribuudist).
- Simple key on lihtsam määratleda ja hallata — piisab vaid ühest väljast.
create table customers (
customer_id int primary key,
name varchar(100),
email varchar(100)
);

Composite key
- See toimib primaarvõtmena, kui tabelis puudub primaarvõti.
- Kahe või enama atribuudi abil moodustatakse liitvõti.
- Erinevad atribuudi kombinatsioonid võivad tagada erineva täpsuse ridade unikaalse tuvastamise osas.

create table order_items (
order_id int,
product_id int,
quantity int,
primary key (order_id, product_id)
);

Compound key
- Compound key on eriline tüüpi composite key, mida kasutatakse tabeli primaarvõtmena.
- Kõik liitvõtmed on composite key, kuid mitte kõik ühendvõtmed ei ole liitvõtmed.
create table order_items (
order_id int,
product_id int,
quantity int,
primary key (order_id, product_id)
);

Superkey
- Superkey on üks või mitu välja, mis üheskoos võimaldavad üheselt tuvastada ridu tabelis. See võib sisaldada NULL-väärtusi ridades.
- Superkey võib sisaldada ka lisaattribuute, mis ei ole vajalikud unikaalsuse tagamiseks.

create table employees (
emp_id int,
email varchar(100),
phone varchar(20),
name varchar(100)
);

Candidate key
- Candidate key on minimaalne supervõti, mis tähendab, et see suudab üheselt tuvastada kirje, kuid ei sisalda liigseid atribuute.
- See on supervõti ilma korduvate andmeteta, mida nimetatakse potentsiaalvõtiks.

create table users (
id int primary key,
username varchar(50) UNIQUE,
email varchar(100) UNIQUE
);

Alternate key
- Alternate key on mis tahes potentsiaalvõti tabelis, mida ei ole valitud primaarvõtmeks. Teisisõnu, kõik võtmed, mida ei ole määratud primaarvõtmeks, loetakse alternatiivvõtmeteks.
- Alternate key nimetatakse ka teisesevõtmeks, kuna see suudab üheselt tuvastada kirjeid tabelis samamoodi nagu primaarvõti.
- Alternate key võib koosneda ühest või mitmest veerust (väljast), mis võimaldavad kirjet üheselt tuvastada, kuid see ei ole primaarvõti.

create table employees (
emp_id int primary key,
email varchar(100) UNIQUE
);


