Memodelkan relasi 1:N dengan foreign key

Pengantar Basis Data Relasional dalam SQL

Timo Grossenbacher

Data Journalist

Model basis data saat ini

Pengantar Basis Data Relasional dalam SQL

Model basis data berikutnya

Pengantar Basis Data Relasional dalam SQL

Menerapkan relasi dengan foreign key

  • Foreign key (FK) menunjuk ke primary key (PK) tabel lain
  • Domain FK harus sama dengan domain PK
  • Tiap nilai FK harus ada pada PK tabel lain (kendala FK atau "integritas referensial")
  • FK bukan key sebenarnya
Pengantar Basis Data Relasional dalam SQL

Sebuah kueri

SELECT * FROM professors LIMIT 8;
 id |    firstname    |  lastname   | university_s..
  --+-----------------+-------------+-------------
  1 | Karl            | Aberer      | EPF
  2 | Reza Shokrollah | Abhari      | ETH
  3 | Georges         | Abou Jaoudé | EPF
  4 | Hugues          | Abriel      | UBE
  5 | Daniel          | Aebersold   | UBE
  6 | Marcelo         | Aebi        | ULA
  7 | Christoph       | Aebi        | UBE
  8 | Patrick         | Aebischer   | EPF
SELECT * FROM universities;
 id  |   university   | university_city
<hr />--+----------------+-----------------
 EPF | ETH Lausanne   | Lausanne
 ETH | ETH Zürich     | Zurich
 UBA | Uni Basel      | Basel
 UBE | Uni Bern       | Bern
 UFR | Uni Freiburg   | Fribourg
 UGE | Uni Genf       | Geneva
 ULA | Uni Lausanne   | Lausanne
 UNE | Uni Neuenburg  | Neuchâtel
 USG | Uni St. Gallen | Saint Gallen
 USI | USI Lugano     | Lugano
 UZH | Uni Zürich     | Zurich
Pengantar Basis Data Relasional dalam SQL

Menentukan foreign key

CREATE TABLE manufacturers (
 name varchar(255) PRIMARY KEY);

INSERT INTO manufacturers 
VALUES ('Ford'), ('VW'), ('GM');

CREATE TABLE cars ( model varchar(255) PRIMARY KEY, manufacturer_name varchar(255) REFERENCES manufacturers (name)); INSERT INTO cars VALUES ('Ranger', 'Ford'), ('Beetle', 'VW');
-- Throws an error!
INSERT INTO cars 
VALUES ('Tundra', 'Toyota');
Pengantar Basis Data Relasional dalam SQL

Menentukan foreign key untuk tabel yang sudah ada

ALTER TABLE a 
ADD CONSTRAINT a_fkey FOREIGN KEY (b_id) REFERENCES b (id);
Pengantar Basis Data Relasional dalam SQL

Mari kita terapkan!

Pengantar Basis Data Relasional dalam SQL

Preparing Video For Download...