3.3. ¿ÜºÎŰ

Chapter 2ÀÇ weatherÅ×À̺í°ú citiesÅ×À̺íÀ» »ìÆìº¾½Ã´Ù. ´ÙÀ½ÀÇ ¹®Á¦Á¡À» »ý°¢Çغ¾½Ã´Ù. weather Å×ÀÌºí¿¡ ¾Æ¹«µµ ÇàÀ» »ðÀÔÇÒ ¼ö ¾øµµ·Ï ¸¸µé¾î citiesÅ×À̺í°ú ÀÏÄ¡ÇÏ´Â Ç׸ñÀÌ ¾øµµ·Ï ÇÏ°í ½Í½À´Ï´Ù. ÀÌ´Â µ¥ÀÌÅÍÀÇ ÂüÁ¶ ¹«°á¼ºÀÇ º¸ÀüÀ̶ó°í ÀÏĽÀ´Ï´Ù. °¡Àå ´Ü¼øÇÑ µ¥ÀÌÅͺ£À̽º ½Ã½ºÅÛ¿¡¼­´Â cities Å×À̺íÀ» ÃÖÃÊ·Î Á¡°ËÇÏ¿© ÀÏÄ¡ÇÏ´Â ·¹ÄÚµåÀÇ Á¸Àç ¿©ºÎ¸¦ È®ÀδϴÙ. ±× ÈÄ »õ·Î¿î weather ·¹Äڵ带 »ðÀÔÇϰųª °ÅºÎÇÕ´Ï´Ù. ÀÌ ¹æ¹ýÀº ¸¹Àº ¹®Á¦¸¦ °¡Áö°í ÀÖÀ¸¸ç ºÒÆíÀ» ¾ß±âÇϹǷΠPostgreSQL¸¦ ÅëÇØ ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Ù.

½Å±Ô Å×À̺íÀÇ ¼±¾ðÀº ´ÙÀ½°ú °°½À´Ï´Ù.

CREATE TABLE cities (
        city     varchar(80) primary key,
        location point
);

CREATE TABLE weather (
        city      varchar(80) references cities(city),
        temp_lo   int,
        temp_hi   int,
        prcp      real,
        date      date
);

´ÙÀ½Àº À¯È¿ÇÏÁö ¾ÊÀº ·¹Äڵ带 »ðÀÔÇÏ´Â °æ¿ìÀÔ´Ï´Ù.

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".

¿ÜºÎŰ¿¡ ÀÇÇÑ ÇൿÀ¸·Î ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¿øÈ°ÇÏ°Ô Æ©´×µÉ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Æ©Å丮¾óÀº °£´ÜÇÑ ¿¹Á¦ÀÇ ¹üÀ§¸¦ ³Ñ¾î¼­Áö ¾ÊÀ¸¹Ç·Î ÀÚ¼¼ÇÑ Á¤º¸´Â Chapter 5À» ÅëÇØ ¾òÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù. ¿ÜºÎŰÀÇ ¿Ã¹Ù¸¥ »ç¿ëÀº µ¥ÀÌÅͺ£À̽º ¾ÖÇø®ÄÉÀ̼ÇÀÇ Ç°Áú Çâ»óÀ¸·Î À̾îÁý´Ï´Ù. ±×·¯¹Ç·Î ÀÌ ºÎºÐÀ» ¹è¿ì±â¸¦ °­·ÂÈ÷ ±ÇÇÕ´Ï´Ù.