DBMS-avaimet: ehdokas-, super-, ensisijainen, vierasavaintyypit esimerkin kanssa
Mitรค avaimet ovat DBMS:ssรค?
AVAIMET DBMS:ssรค on attribuutti tai attribuuttijoukko, joka auttaa sinua tunnistamaan rivin (tuple) relaatiossa (taulukossa). Niiden avulla voit lรถytรครค kahden taulukon vรคlisen suhteen. Avaimet auttavat sinua yksilรถimรครคn taulukon rivin yhden tai useamman sarakkeen yhdistelmรคllรค kyseisessรค taulukossa. Nรคppรคin on hyรถdyllinen myรถs yksilรถllisen tietueen tai rivin lรถytรคmisessรค taulukosta. Tietokanta-avain on hyรถdyllinen myรถs yksilรถllisen tietueen tai rivin lรถytรคmisessรค taulukosta.
Esimerkiksi:
| henkilรถstรถkortti | Etunimi | Sukunimi |
|---|---|---|
| 11 | Andrew | Johnson |
| 22 | Tomi | Puu |
| 33 | Alex | Terve ja reipas |
Yllรค annetussa esimerkissรค tyรถntekijรคtunnus on ensisijainen avain, koska se yksilรถi tyรถntekijรคtietueen. Tรคssรค taulukossa millรครคn muulla tyรถntekijรคllรค ei voi olla samaa tyรถntekijรคtunnusta.
Miksi tarvitsemme avaimen?
Tรคssรค on joitain syitรค kรคyttรครค sql-avainta DBMS-jรคrjestelmรคssรค.
- Avaimet auttavat sinua tunnistamaan minkรค tahansa taulukon tietorivin. Tosimaailman sovelluksessa taulukko voi sisรคltรครค tuhansia tietueita. Lisรคksi tietueita voidaan kopioida. RDBMS-avaimet varmistavat, ettรค voit yksilรถidรค taulukkotietueen nรคistรค haasteista huolimatta.
- Voit luoda suhteen taulukoiden vรคlille ja tunnistaa niiden vรคlisen suhteen
- Auttaa sinua vahvistamaan identiteettiรค ja eheyttรค suhteessa.
Avaintyypit DBMS:ssรค (tietokannan hallintajรคrjestelmรค)
DBMS:ssรค on pรครคasiassa kahdeksan erilaista avainta, ja jokaisella avaimella on omat toiminnallisuutensa:
- Super-avain
- Pรครคavain
- Ehdokkaiden avain
- Vaihtoehtoinen avain
- viiteavain
- Yhdistelmรคavain
- Yhdistelmรคavain
- Korvaavaavain
Katsotaanpa kutakin DBMS:n avainta esimerkillรค:
- Super Key - Superavain on ryhmรค yksittรคisiรค tai useita avaimia, jotka identifioivat taulukon rivit.
- Pรครคavain - on taulukon sarake tai sarakeryhmรค, joka tunnistaa yksilรถllisesti jokaisen taulukon rivin.
- Ehdokasavain โ on joukko attribuutteja, jotka yksilรถivรคt taulukon monikot. Ehdokasavain on superavain, jolla ei ole toistuvia mรครคritteitรค.
- Vaihtoehtoinen avain - on taulukon sarake tai sarakeryhmรค, joka tunnistaa yksilรถllisesti jokaisen taulukon rivin.
- Vieras avain - on sarake, joka luo suhteen kahden taulukon vรคlille. Vieraiden avainten tarkoitus on yllรคpitรครค tietojen eheyttรค ja mahdollistaa navigoinnin kohteen kahden eri esiintymรคn vรคlillรค.
- Yhdistelmรคavain โ sisรคltรครค kaksi tai useampia mรครคritteitรค, joiden avulla voit tunnistaa tietyn tietueen yksilรถllisesti. On mahdollista, ettรค jokainen sarake ei vรคlttรคmรคttรค ole ainutlaatuinen tietokannassa.
- Yhdistelmรคavain โ on kahden tai useamman sarakkeen yhdistelmรค, jotka yksilรถivรคt taulukon rivit. Sarakkeiden yhdistelmรค takaa ainutlaatuisuuden, vaikka yksittรคistรค ainutlaatuisuutta ei taata.
- Korjaava avain - Keinotekoista avainta, jonka tarkoituksena on yksilรถidรค jokainen tietue, kutsutaan sijaisavaimeksi. Tรคllaiset avaimet ovat ainutlaatuisia, koska ne luodaan, kun sinulla ei ole luonnollista ensisijaista avainta.
Mikรค on Super-avain?
Superavain on ryhmรค yksittรคisiรค tai useita avaimia, jotka identifioivat taulukon rivit. Superavaimella voi olla lisรคmรครคritteitรค, joita ei tarvita yksilรถlliseen tunnistamiseen.
Esimerkiksi:
| EmpSSN | EmpNum | Empname |
|---|---|---|
| 9812345098 | AB05 | Nรคkyy |
| 9876512345 | AB06 | Roslyn |
| 199937890 | AB07 | Jaakob |
Yllรค annetussa esimerkissรค EmpSSN ja EmpNum nimi ovat superavaimia.
Mikรค on ensisijainen avain?
PรรAVAIN in DBMS on taulukon sarake tai sarakeryhmรค, joka tunnistaa yksilรถllisesti jokaisen taulukon rivin. Ensisijainen avain ei voi olla kaksoiskappale, mikรค tarkoittaa, ettรค sama arvo voi esiintyรค taulukossa vain kerran. Taulukossa voi olla vain yksi ensisijainen avain.
Sรครคnnรถt ensisijaisen avaimen mรครคrittรคmiseksi:
- Kahdella rivillรค ei voi olla samaa ensisijaisen avaimen arvoa
- Jokaisella rivillรค on oltava ensisijainen avaimen arvo.
- Ensisijaisen avaimen kenttรค ei voi olla tyhjรค.
- Ensisijaisen avaimen sarakkeen arvoa ei voi koskaan muuttaa tai pรคivittรครค, jos jokin vierasavain viittaa kyseiseen ensisijaiseen avaimeen.
Esimerkiksi:
Seuraavassa esimerkissรค StudID on ensisijainen avain.
| StudID | Rulla nro | Etunimi | Sukunimi | Sรคhkรถposti |
|---|---|---|---|---|
| 1 | 11 | Tomi | Hinta | abc@gmail.com |
| 2 | 12 | Nick | Wright | xyz@gmail.com |
| 3 | 13 | Dana | Natan | mno@yahoo.com |
Mikรค on vaihtoehtoinen avain?
VAIHTOEHTOISET AVAimet on taulukon sarake tai sarakeryhmรค, joka tunnistaa yksilรถllisesti jokaisen taulukon rivin. Taulukossa voi olla useita vaihtoehtoja ensisijaiseksi avaimeksi, mutta vain yksi voidaan asettaa ensisijaiseksi avaimeksi. Kaikkia avaimia, jotka eivรคt ole ensisijaisia โโavaimia, kutsutaan vaihtoehtoisiksi avaimille.
Esimerkiksi:
Tรคssรค taulukossa StudID, Roll No, Email on hyvรคksytty ensisijaiseksi avaimeksi. Mutta koska StudID on ensisijainen avain, Roll No, Sรคhkรถpostista tulee vaihtoehtoinen avain.
| StudID | Rulla nro | Etunimi | Sukunimi | Sรคhkรถposti |
|---|---|---|---|---|
| 1 | 11 | Tomi | Hinta | abc@gmail.com |
| 2 | 12 | Nick | Wright | xyz@gmail.com |
| 3 | 13 | Dana | Natan | mno@yahoo.com |
Mikรค on ehdokasavain?
EHDOKASAvain SQL:ssรค on joukko attribuutteja, jotka tunnistavat yksilรถllisesti taulukon monikot. Ehdokasavain on superavain, jolla ei ole toistuvia mรครคritteitรค. Ensisijainen avain tulee valita ehdokasavaimista. Jokaisessa taulukossa on oltava vรคhintรครคn yksi ehdokasavain. Taulukossa voi olla useita ehdokasavaimia, mutta vain yksi ensisijainen avain.
Ehdokasavaimen ominaisuudet:
- Sen tulee sisรคltรครค ainutlaatuisia arvoja
- SQL:n ehdokasavaimella voi olla useita mรครคritteitรค
- Ei saa sisรคltรครค nolla-arvoja
- Sen tulee sisรคltรครค vรคhimmรคiskentรคt ainutlaatuisuuden varmistamiseksi
- Tunnista jokainen tietue yksilรถllisesti taulukossa
Ehdokasavain Esimerkki: Annetussa taulukossa Stud ID, Roll No ja email ovat ehdokasavaimia, jotka auttavat meitรค yksilรถimรครคn opiskelijatietueen taulukossa.
| StudID | Rulla nro | Etunimi | Sukunimi | Sรคhkรถposti |
|---|---|---|---|---|
| 1 | 11 | Tomi | Hinta | abc@gmail.com |
| 2 | 12 | Nick | Wright | xyz@gmail.com |
| 3 | 13 | Dana | Natan | mno@yahoo.com |

Mikรค on vieras avain?
ULKOMAAN AVAIN on sarake, joka luo suhteen kahden taulukon vรคlille. Vieraiden avainten tarkoitus on yllรคpitรครค tietojen eheyttรค ja mahdollistaa navigoinnin kohteen kahden eri esiintymรคn vรคlillรค. Se toimii ristiviittauksena kahden taulukon vรคlillรค, koska se viittaa toisen taulukon ensisijaiseen avaimeen.
Esimerkiksi:
| DeptCode | Osaston nimi |
|---|---|
| 001 | tiede |
| 002 | Englanti |
| 005 | tietokonetta |
| Opettajan tunnus | Fname | Lnimi |
|---|---|---|
| B002 | David | Warner |
| B017 | Sara | Joseph |
| B009 | mikrofoni | brunton |
Tรคssรค avaimessa dbms-esimerkissรค meillรค on koulussa kaksi pรถytรครค, opetus ja osasto. Ei kuitenkaan ole mahdollista nรคhdรค, mikรค haku toimii millรค osastolla.
Tรคssรค taulukossa lisรครคmรคllรค vieraan avaimen Deptcodessa opettajan nimeen, voimme luoda suhteen kahden taulukon vรคlille.
| Opettajan tunnus | DeptCode | Fname | Lnimi |
|---|---|---|---|
| B002 | 002 | David | Warner |
| B017 | 002 | Sara | Joseph |
| B009 | 001 | mikrofoni | brunton |
Tรคmรค kรคsite tunnetaan myรถs referenssinรค Integrity.
Mikรค on yhdistelmรคavain?
YHDISTETYT AVAIN sisรคltรครค kaksi tai useampia mรครคritteitรค, joiden avulla voit tunnistaa tietyn tietueen yksilรถllisesti. On mahdollista, ettรค jokainen sarake ei vรคlttรคmรคttรค ole ainutlaatuinen tietokannassa. Yhdistettynรค muihin sarakkeisiin tai sarakkeisiin yhdistelmรคavainten yhdistelmรคstรค tulee kuitenkin ainutlaatuinen. Yhdistetyn avaimen tarkoitus tietokannassa on yksilรถidรค jokainen taulukon tietue.
Esimerkiksi:
| Tilausnumero | PorductID | tuotteen nimi | Mรครคrรค |
|---|---|---|---|
| B005 | JAP102459 | Hiiri | 5 |
| B005 | DKT321573 | USB | 10 |
| B005 | OMG446789 | LCD-nรคyttรถ | 20 |
| B004 | DKT321573 | USB | 15 |
| B002 | OMG446789 | Laser-tulostin | 3 |
Tรคssรค esimerkissรค OrderNo ja ProductID eivรคt voi olla ensisijaisia โโavaimia, koska ne eivรคt yksilรถi tietuetta. Tilaustunnuksen ja tuotetunnuksen yhdistelmรคavainta voidaan kuitenkin kรคyttรครค, koska se tunnistaa yksilรถllisesti kunkin tietueen.
Mikรค on yhdistelmรคavain?
KOMPOSIITTIAvain on kahden tai useamman sarakkeen yhdistelmรค, jotka yksilรถivรคt taulukon rivit. Sarakkeiden yhdistelmรค takaa ainutlaatuisuuden, mutta yksittรคistรค ainutlaatuisuutta ei taata. Siksi ne yhdistetรครคn yksilรถimรครคn tietueet taulukossa.
Ero yhdistetyn avaimen ja yhdistelmรคavaimen vรคlillรค on se, ettรค mikรค tahansa yhdistelmรคavaimen osa voi olla vierasavain, mutta yhdistelmรคavain voi tai ei ehkรค olla osa viiteavainta.
Mikรค on sijaisavain?
KORVAKAVAIMET on Keinotekoista avainta, jonka tarkoituksena on yksilรถidรค jokainen tietue, kutsutaan korvikeavaimeksi. Tรคllainen osaavain dbms:ssรค on ainutlaatuinen, koska se luodaan, kun sinulla ei ole luonnollista ensisijaista avainta. Ne eivรคt anna mitรครคn merkitystรค taulukon tiedoille. Korjaava avain DBMS:ssรค on yleensรค kokonaisluku. Korvausavain on arvo, joka luodaan juuri ennen tietueen lisรครคmistรค taulukkoon.
| Fname | Sukunimi | Aloitusaika | End Time |
|---|---|---|---|
| Anne | Seppรค | 09:00 | 18:00 |
| tunkki | Francis | 08:00 | 17:00 |
| Anna | McLean | 11:00 | 20:00 |
| Nรคkyy | Willam | 14:00 | 23:00 |
Yllรค olevassa esimerkissรค on esitetty eri tyรถntekijรคn vuoroajat. Tรคssรค esimerkissรค tarvitaan korvaava avain jokaisen tyรถntekijรคn yksilรถlliseen tunnistamiseen.
Korvaavat avaimet sisรครคn sql ovat sallittuja, kun
- Millรครคn omaisuudella ei ole ensisijaisen avaimen parametria.
- Taulukossa, kun ensisijainen avain on liian suuri tai monimutkainen.
Ero ensisijaisen avaimen ja ulkoavaimen vรคlillรค
Seuraavassa on tรคrkein ero ensisijaisen avaimen ja viiteavaimen vรคlillรค:
| Pรครคavain | viiteavain |
|---|---|
| Auttaa sinua yksilรถimรครคn tietueen taulukossa. | Se on taulukon kenttรค, joka on toisen taulukon ensisijainen avain. |
| Ensisijainen avain ei koskaan hyvรคksy nolla-arvoja. | Vieras avain voi hyvรคksyรค useita nolla-arvoja. |
| Ensisijainen avain on klusteroitu indeksi, ja DBMS-taulukon tiedot jรคrjestetรครคn fyysisesti klusteroidun indeksin jรคrjestyksessรค. | Vieras avain ei voi luoda automaattisesti indeksiรค, klusteroitua tai ei-klusteroitua. Voit kuitenkin luoda indeksin manuaalisesti vieraalle avaimelle. |
| Taulukossa voi olla yksi ensisijainen avain. | Taulukossa voi olla useita vieraita avaimia. |
Yhteenveto
- Mikรค on avain DBMS:ssรค: DBMS:n avain on attribuutti tai attribuuttijoukko, joka auttaa sinua tunnistamaan rivin (tuple) relaatiossa (taulukossa)
- Avaimet sisรครคn RDBMS voit luoda suhteen taulukoiden vรคlille ja tunnistaa niiden vรคlisen suhteen
- Kahdeksan tyyppistรค avainta DBMS:ssรค ovat Super, Primary, Candidate, Alternate, Foreign, Compound, Composite ja Surrogate Key.
- Superavain on ryhmรค yksittรคisiรค tai useita avaimia, jotka identifioivat taulukon rivit.
- Taulukon saraketta tai sarakkeiden ryhmรครค, joka auttaa meitรค yksilรถimรครคn jokaisen taulukon rivin, kutsutaan ensisijaiseksi avaimeksi.
- Kaikkia DBMS:n erilaisia โโavaimia, jotka eivรคt ole ensisijaisia โโavaimia, kutsutaan vaihtoehtoisiksi avaimille
- Superavainta, jossa ei ole toistuvaa attribuuttia, kutsutaan ehdokasavaimeksi
- Yhdistelmรคavain on avain, jossa on monia kenttiรค, joiden avulla voit tunnistaa tietyn tietueen yksilรถllisesti
- Avainta, jolla on useita mรครคritteitรค taulukon rivien yksilรถimiseksi, kutsutaan yhdistelmรคavaimeksi
- Keinotekoista avainta, jonka tarkoituksena on yksilรถidรค jokainen tietue, kutsutaan sijaisavaimeksi
- Ensisijainen avain ei koskaan hyvรคksy nolla-arvoja, kun taas vierasavain voi hyvรคksyรค useita nolla-arvoja.
