- Raktai vaidina svarbų vaidmenį reliacinėje duomenų bazėje.
- Jis naudojamas unikaliai identifikuoti bet kokį įrašą ar duomenų eilutę iš lentelės. Jis taip pat naudojamas ryšiams tarp lentelių nustatyti ir nustatyti.
Pavyzdžiui, ID naudojamas kaip raktas Mokinio lentelėje, nes jis yra unikalus kiekvienam mokiniui. Lentelėje PERSON paso_numeris, licencijos_numeris, SSN yra raktai, nes kiekvienam asmeniui jie yra unikalūs.
Raktų tipai:
1. Pirminis raktas
- Tai pirmasis raktas, naudojamas unikaliai identifikuoti vieną ir tik vieną objekto egzempliorių. Objekte gali būti keli raktai, kaip matėme lentelėje PERSON. Iš tų sąrašų tinkamiausias raktas tampa pirminiu raktu.
- Lentelėje EMPLOYEE ID gali būti pagrindinis raktas, nes jis yra unikalus kiekvienam darbuotojui. Lentelėje EMPLOYEE mes netgi galime pasirinkti Licencijos_numeris ir Paso_numeris kaip pirminius raktus, nes jie taip pat yra unikalūs.
- Kiekvieno subjekto pirminio rakto pasirinkimas priklauso nuo reikalavimų ir kūrėjų.
2. Kandidato raktas
- Kandidato raktas yra atributas arba atributų rinkinys, galintis unikaliai identifikuoti seką.
- Išskyrus pirminį raktą, likę atributai laikomi kandidatu. Kandidatų raktai yra tokie pat stiprūs kaip ir pirminis raktas.
Pavyzdžiui: Lentelėje EMPLOYEE id geriausiai tinka pirminiam raktui. Likę atributai, tokie kaip SSN, Passport_Number, License_Number ir kt., laikomi kandidato raktu.
3. Super raktas
Super raktas yra atributų rinkinys, galintis unikaliai identifikuoti seką. Super raktas yra kandidato rakto superrinkinys.
Pavyzdžiui: Aukščiau pateiktoje EMPLOYEE lentelėje (EMPLOEE_ID, EMPLOYEE_NAME) dviejų darbuotojų vardai gali būti vienodi, bet jų EMPLYEE_ID negali būti toks pat. Taigi šis derinys taip pat gali būti raktas.
Super raktas būtų EMPLOYEE-ID (EMPLOYEE_ID, EMPLOYEE-NAME) ir kt.
4. Užsienio raktas
- Užsienio raktai yra lentelės stulpelis, naudojamas nukreipti į kitos lentelės pirminį raktą.
- Kiekvienas darbuotojas dirba konkrečiame įmonės padalinyje, o darbuotojas ir skyrius yra du skirtingi subjektai. Taigi negalime saugoti skyriaus informacijos darbuotojų lentelėje. Štai kodėl mes susiejame šias dvi lenteles per vienos lentelės pirminį raktą.
- Kaip naują atributą lentelėje EMPLOYEE pridedame pirminį lentelės DEPARTMENT raktą Skyriaus_ID.
- Lentelėje EMPLOYEE Skyriaus_ID yra išorinis raktas ir abi lentelės yra susijusios.
5. Alternatyvus klavišas
Gali būti vienas ar daugiau atributų arba atributų derinys, kuris vienareikšmiškai identifikuoja kiekvieną santykio eilutę. Šie atributai arba atributų deriniai vadinami kandidatiniais raktais. Vienas raktas pasirenkamas kaip pirminis iš šių kandidatų raktų, o likęs kandidato raktas, jei toks yra, vadinamas alternatyviu raktu. Kitaip tariant, bendras alternatyvių raktų skaičius yra bendras kandidatų raktų skaičius, atėmus pirminį raktą. Alternatyvus raktas gali būti arba nebūti. Jei santykyje yra tik vienas kandidato raktas, jis neturi alternatyvaus rakto.
Pavyzdžiui, darbuotojo ryšys turi du atributus, Employee_Id ir PAN_No, kurie veikia kaip kandidato raktai. Šiame santykyje darbuotojo_ID pasirenkamas kaip pirminis raktas, todėl kitas kandidatas raktas PAN_No veikia kaip alternatyvus raktas.
tokia svetainė kaip coomeet
6. Sudėtinis raktas
Kai pirminis raktas susideda iš daugiau nei vieno atributo, jis vadinamas sudėtiniu raktu. Šis raktas taip pat žinomas kaip sujungtas raktas.
Pavyzdžiui, darbuotojų santykiuose darome prielaidą, kad darbuotojui gali būti priskirti keli vaidmenys, o darbuotojas vienu metu gali dirbti prie kelių projektų. Taigi pirminis raktas bus sudarytas iš visų trijų atributų, būtent Emp_ID, Emp_role ir Proj_ID kartu. Taigi šie atributai veikia kaip sudėtinis raktas, nes pirminis raktas apima daugiau nei vieną atributą.
7. Dirbtinis raktas
Raktas, sukurtas naudojant savavališkai priskirtus duomenis, yra žinomas kaip dirbtiniai raktai. Šie raktai sukuriami, kai pirminis raktas yra didelis ir sudėtingas ir neturi ryšio su daugeliu kitų ryšių. Dirbtinių raktų duomenų reikšmės paprastai sunumeruojamos nuoseklia tvarka.
Pavyzdžiui, pirminis raktas, kurį sudaro Emp_ID, Emp_role ir Proj_ID, yra didelis darbuotojų santykiuose. Taigi būtų geriau pridėti naują virtualų atributą, kad kiekviena santykio eilutė būtų identifikuojama unikaliai.