Sobes.tech
Junior

Τι είναι τα πρωτεύοντα και εξωτερικά κλειδιά, και ποιους περιορισμούς έχουν;

sobes.tech AI

Απάντηση από AI

Η Πρωτεύουσα Κλείδα (Primary Key) είναι μια στήλη ή ένας συνδυασμός στηλών σε μια οντότητα (πίνακας βάσης δεδομένων) που αναγνωρίζει μοναδικά κάθε εγγραφή σε αυτήν την οντότητα.

  • Περιορισμοί:
    • Μοναδικότητα: Οι τιμές της πρωτεύουσας κλείδας πρέπει να είναι μοναδικές εντός του πίνακα.
    • Μη δυνατότητα NULL: Η πρωτεύουσα κλείδα δεν μπορεί να περιέχει τιμές NULL.

Η Ξένη Κλείδα (Foreign Key) είναι μια στήλη ή ένα σύνολο στηλών σε μια οντότητα (υποπίνακας) που αναφέρεται στην πρωτεύουσα κλείδα σε μια άλλη οντότητα (μητρικό πίνακα). Ορίζει μια σχέση μεταξύ δύο πινάκων.

  • Περιορισμοί:
    • Ακεραιότητα αναφοράς: Οι τιμές της ξένης κλείδας πρέπει να ταιριάζουν με μια υπάρχουσα τιμή της πρωτεύουσας κλείδας στον μητρικό πίνακα ή να είναι NULL (αν επιτρέπεται).

Παράδειγμα σε SQL:

// Δημιουργία πίνακα με πρωτεύουσα κλείδα
CREATE TABLE Users (
    UserID INT PRIMARY KEY, // UserID - πρωτεύουσα κλείδα
    UserName VARCHAR(255)
);

// Δημιουργία πίνακα με ξένη κλείδα
CREATE TABLE Orders (
    OrderID INT PRIMARY KEY,
    UserID INT,
    OrderDate DATE,
    FOREIGN KEY (UserID) REFERENCES Users(UserID) // UserID - ξένη κλείδα, αναφέρεται στο Users.UserID
);