Middle
Τι είναι η ακεραιότητα των αναφορικών συνδέσεων;
sobes.tech AI
Απάντηση από AI
Η αναφορά ακεραιότητας (Referential Integrity) είναι μια ιδιότητα των δεδομένων σε μια σχεσιακή βάση δεδομένων που διασφαλίζει ότι οι αναφορές μεταξύ των πινάκων παραμένουν έγκυρες. Προλαμβάνει τα ακόλουθα προβλήματα:
- Τη διαγραφή μιας γραμμής από τον "γονικό" πίνακα στην οποία αναφέρονται γραμμές στον "παιδικό" πίνακα.
- Την αλλαγή του πρωτεύοντος κλειδιού στον "γονικό" πίνακα στο οποίο αναφέρονται γραμμές στον "παιδικό" πίνακα, χωρίς να ενημερώνονται αυτές οι αναφορές.
- Την εισαγωγή μιας γραμμής στον "παιδικό" πίνακα με αναφορά σε ένα μη υπαρκτό πρωτεύον κλειδί στον "γονικό" πίνακα.
Εφαρμόζεται μέσω εξωτερικών κλειδιών (FOREIGN KEY).
Παραδείγματα περιορισμών για τα εξωτερικά κλειδιά:
- ON DELETE CASCADE: Όταν διαγράφεται μια γραμμή στον "γονικό" πίνακα, διαγράφονται και οι αντίστοιχες γραμμές στον "παιδικό" πίνακα.
- ON DELETE SET NULL: Όταν διαγράφεται μια γραμμή στον "γονικό" πίνακα, το αντίστοιχο εξωτερικό κλειδί στον "παιδικό" πίνακα τίθεται σε NULL.
- ON DELETE RESTRICT: Η διαγραφή μιας γραμμής από τον "γονικό" πίνακα απαγορεύεται αν υπάρχουν αναφορές σε αυτήν στον "παιδικό" πίνακα.
- ON UPDATE CASCADE: Όταν ενημερώνεται το πρωτεύον κλειδί στον "γονικό" πίνακα, ενημερώνονται και τα αντίστοιχα εξωτερικά κλειδιά στον "παιδικό" πίνακα.
-- Παράδειγμα πίνακα "users" (γονικός)
CREATE TABLE users (
user_id INT PRIMARY KEY,
username VARCHAR(255) NOT NULL
);
-- Παράδειγμα πίνακα "orders" (παιδικός) με εξωτερικό κλειδί
CREATE TABLE orders (
order_id INT PRIMARY KEY,
user_id INT,
order_date DATE,
FOREIGN KEY (user_id) REFERENCES users(user_id)
ON DELETE CASCADE /* Παράδειγμα περιορισμού */
ON UPDATE CASCADE /* Παράδειγμα περιορισμού */
);