3.2. Ustawienie kluczy głównych.
W tej części zmodyfikowano tabele, przypisując im klucze główne. Dodatkowo uwzględniono fakt niepowtarzalności numeru PESEL klientów.
ALTER TABLE samochody ADD PRIMARY KEY (id_auta);
ALTER TABLE cennik ADD PRIMARY KEY (klasa);
ALTER TABLE samochody_egzemplarze ADD PRIMARY KEY (nr_rejestracyjny);
ALTER TABLE pakiety_uslug ADD PRIMARY KEY (nr_uslugi);
ALTER TABLE klienci ADD PRIMARY KEY (id_klienta);
ALTER TABLE klienci ADD UNIQUE (pesel);
ALTER TABLE telefony_klienci ADD PRIMARY KEY (numer_telefonu);
ALTER TABLE wynajem ADD PRIMARY KEY (id_wynajmu);
3.3. Utworzenie kluczy obcych.
W tej części skryptu generuje się klucze obce, dbające o spójność bazy danych. Tak ustawione klucze obce zapobiegają usunięciu krotek z tabel, których atrybuty odwołują się do innych tabel (przykładowo: nie ma możliwości usunięcia klasy "C" z tabeli "cennik", gdy w tabeli "samochody" występuje co najmniej jeden samochód z tej klasy).
ALTER TABLE samochody ADD FOREIGN KEY (klasa) REFERENCES cennik(klasa)
ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE samochody_egzemplarze ADD FOREIGN KEY (id_auta) REFERENCES samochody(id_auta)
ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE telefony_klienci ADD FOREIGN KEY (id_klienta) REFERENCES klienci(id_klienta)
ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE wynajem ADD FOREIGN KEY (id_klienta) REFERENCES klienci(id_klienta)
ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE wynajem ADD FOREIGN KEY (nr_rejestracyjny) REFERENCES samochody_egzemplarze(nr_rejestracyjny)
ON UPDATE CASCADE;