- Avaimilla on tärkeä rooli relaatiotietokannassa.
- Sitä käytetään yksilöimään mikä tahansa tietue tai tietorivi taulukosta. Sitä käytetään myös luomaan ja tunnistamaan taulukoiden välisiä suhteita.
Esimerkiksi, ID:tä käytetään avaimena opiskelijataulukossa, koska se on yksilöllinen jokaiselle opiskelijalle. PERSON-taulukossa passin_numero, lisenssin_numero ja SSN ovat avaimia, koska ne ovat yksilöllisiä jokaiselle henkilölle.
Avainten tyypit:
1. Ensisijainen avain
- Se on ensimmäinen avain, jota käytetään yksilöimään entiteetin yksi esiintymä yksilöllisesti. Entiteetti voi sisältää useita avaimia, kuten näimme PERSON-taulukossa. Näistä luetteloista sopivin avain tulee ensisijaiseksi avaimeksi.
- EMPLOYEE-taulukossa tunnus voi olla ensisijainen avain, koska se on yksilöllinen jokaiselle työntekijälle. EMPLOYEE-taulukossa voimme jopa valita ensisijaiseksi avaimeksi License_Number ja Passport_Number, koska ne ovat myös ainutlaatuisia.
- Jokaisen entiteetin ensisijaisen avaimen valinta perustuu vaatimuksiin ja kehittäjiin.
2. Ehdokasavain
- Ehdokasavain on attribuutti tai attribuuttien joukko, joka voi yksilöidä monikon.
- Ensisijaista avainta lukuun ottamatta muita määritteitä pidetään ehdokasavaimena. Ehdokasavaimet ovat yhtä vahvoja kuin ensisijainen avain.
Esimerkiksi: EMPLOYEE-taulukossa id sopii parhaiten ensisijaiselle avaimelle. Muut attribuutit, kuten SSN, Passport_Number, License_Number jne., katsotaan ehdokasavaimeksi.
3. Super Key
Superavain on attribuuttijoukko, joka voi yksilöidä tuplen. Superavain on ehdokasavaimen superjoukko.
Esimerkiksi: Yllä olevassa EMPLOYEE-taulukossa for(EMPLOEE_ID, EMPLOYEE_NAME) kahden työntekijän nimi voi olla sama, mutta heidän EMPLYEE_ID ei voi olla sama. Siksi tämä yhdistelmä voi olla myös avain.
Superavain olisi EMPLOYEE-ID (EMPLOYEE_ID, EMPLOYEE-NAME) jne.
4. Vieras avain
- Vieraat avaimet ovat taulukon sarake, jota käytetään osoittamaan toisen taulukon perusavaimeen.
- Jokainen työntekijä työskentelee tietyllä osastolla yrityksessä, ja työntekijä ja osasto ovat kaksi eri kokonaisuutta. Emme siis voi tallentaa osaston tietoja työntekijätaulukkoon. Siksi linkitämme nämä kaksi taulukkoa yhden taulukon perusavaimen kautta.
- Lisäämme DEPARTMENT-taulukon ensisijaisen avaimen Osastotunnus uudeksi attribuutiksi EMPLOYEE-taulukkoon.
- EMPLOYEE-taulukossa Osastotunnus on vierasavain, ja molemmat taulukot liittyvät toisiinsa.
5. Vaihtoehtoinen avain
Relaatiossa voi olla yksi tai useampi attribuutti tai attribuuttien yhdistelmä, joka yksilöi yksilöllisesti jokaisen suhteen. Näitä attribuutteja tai niiden yhdistelmiä kutsutaan ehdokasavaimiksi. Yksi avain valitaan ensisijaiseksi avaimeksi näistä ehdokasavaimista, ja jäljellä olevaa ehdokasavainta, jos se on olemassa, kutsutaan vaihtoehtoiseksi avaimeksi. Toisin sanoen, vaihtoehtoisten avainten kokonaismäärä on ehdokasavainten kokonaismäärä miinus ensisijainen avain. Vaihtoehtoinen avain voi olla olemassa tai ei. Jos suhteessa on vain yksi ehdokasavain, sillä ei ole vaihtoehtoista avainta.
Esimerkiksi, työntekijäsuhteella on kaksi attribuuttia, Employee_Id ja PAN_No, jotka toimivat ehdokasavaimina. Tässä suhteessa Työntekijän_tunnus valitaan ensisijaiseksi avaimeksi, joten toinen ehdokasavain, PAN_No, toimii vaihtoehtoisena avaimena.
ero binääripuun ja binäärihakupuun välillä
6. Yhdistelmäavain
Aina kun ensisijainen avain koostuu useammasta kuin yhdestä määritteestä, sitä kutsutaan yhdistelmäavaimeksi. Tämä avain tunnetaan myös nimellä Concatenated Key.
Esimerkiksi, työntekijäsuhteissa oletamme, että työntekijälle voidaan määrätä useita rooleja ja työntekijä voi työskennellä useissa projekteissa samanaikaisesti. Ensisijainen avain koostuu siis kaikista kolmesta attribuutista, nimittäin Emp_ID, Emp_role ja Proj_ID yhdessä. Nämä attribuutit toimivat siis yhdistelmäavaimena, koska ensisijainen avain sisältää useamman kuin yhden attribuutin.
7. Keinotekoinen avain
Satunnaisesti määritettyjen tietojen avulla luotuja avaimia kutsutaan keinotekoisiksi avaimille. Nämä avaimet luodaan, kun ensisijainen avain on suuri ja monimutkainen, eikä sillä ole yhteyttä moniin muihin suhteisiin. Keinoavainten data-arvot on yleensä numeroitu sarjajärjestyksessä.
Esimerkiksi, Ensisijainen avain, joka koostuu Emp_ID:stä, Emp_rolesta ja Proj_ID:stä, on suuri työntekijäsuhteissa. Joten olisi parempi lisätä uusi virtuaalinen attribuutti, joka tunnistaa jokaisen suhteen yksilöllisesti.