Anahtarlar
Önceki Gelişmiş Özellikler Sonraki
Anahtarlar
SQL Dili kısmındaki weather ve cities tablolarını tekrar ele alalım ve weather tablosuna girilecek kayıtlardan cities tablosundaki kayıtlarla eşleşmeyecek olanlarının tabloya girilmeyeceğinden emin olmak istediğinizi varsayalım. Buna verilerin göreli bütünlüğünün sağlanaması diyoruz. Basitleştirmeli veritabanı sistemlerinde bu şöyle gerçeklenir: Önce cities tablosunda eşleşen bir kaydın olup olmadığına bakılır ve yeni weather kaydının tabloya girilip girilmeyeceğine karar verilir. Bu yaklaşım çok sakıncalı sorunlar içerir, ancak PostgreSQLTM bunu sizin için yapabilir.
Tabloların yeni bildirimleri şöyle olurdu:
CREATE TABLE cities (
        city     varchar(80) primary key,
        location point
);

CREATE TABLE weather (
        city     varchar(80) references cities(city),
        tmp_lo   int,
        tmp_hi   int,
        prcp     real,
        date     date
);
Şimdi geçersiz bir kaydı girmeye çalışalım:
INSERT INTO weather VALUES ('Berkeley', 45, 53, 0.0, '1994-11-28');
ERROR:  insert or update on table "weather" violates foreign key constraint
"weather_city_fkey"
DETAIL:  Key (city)=(Berkeley) is not present in table "cities".
Anahtarların davranışları uygulamanıza en iyi şekilde uyarlanabilir. Bu eğitmende bu basit örnekten daha ileri gitmeyeceğiz, fakat daha fazla bilgi edinmek isterseniz, PostgreSQLTM 8.0 belgelerindeki Veri Tanımlama kısmına bakabilirsiniz. Anahtarları doğru şekilde kullanarak veritabanı uygulamalarınızın kalitesini oldukça arttırabilirsiniz, dolayısıyla anahtar kullanımını iyi öğrenmenizi öneririz.
Önceki Üst Ana Başlık Sonraki
Sanal Tablolar Başlangıç Hareketler
Bir Linux Kitaplığı Sayfası