5.1. Å×À̺íÀÇ ±âº»

RDBÀÇ Å×À̺íÀº Á¾ÀÌ¿¡ ¾²À̴ ǥ¿Í ¸¹ÀÌ ´à¾ÆÀÖ½À´Ï´Ù. Å×À̺íÀº Çà°ú ¿­·Î ±¸¼ºµÇ¾î ÀÖ½À´Ï´Ù. ¿­ÀÇ ¼ö¿Í ¼ø¼­´Â °íÁ¤µÇ°í ÀÖ¾î °¢°¢ÀÇ ¿­¿¡ À̸§À» ºÙÀÏ ¼ö ÀÖ°í ÀÖ½À´Ï´Ù. ÇàÀÇ ¼ö´Â º¯ÇÒ ¼ö ÀÖ½À´Ï´Ù. Áï, ÇàÀÇ ¼ö¶õ, ±× ½ÃÁ¡¿¡¼­ ¾ó¸¸Å­ÀÇ µ¥ÀÌÅͰ¡ ÀúÀåµÇ°í Àִ°¡¸¦ ³ªÅ¸³»´Â °ÍÀÔ´Ï´Ù. SQL¿¡¼­´Â Å×ÀÌºí ³»ÀÇ ÇàÀÇ ¼ø¼­´Â º¸ÁõµÇÁö ¾Ê½À´Ï´Ù. Å×À̺íÀ» ÀоîµéÀ̸é, ¸í½ÃÀûÀ¸·Î ¿ä±¸µÇÁö ¾Ê´Â ÀÌ»ó, ÇàÀº ·£´ý ¼ø¼­·Î ¹ÝȯµË´Ï´Ù. À̰Ϳ¡ ´ëÇØ¼­´Â Chapter 7À» ÂüÁ¶ÇØ Áֽʽÿä. °Ô´Ù°¡ SQL¿¡¼­´Â Çà¿¡ °íÀ¯ ½Äº°ÀÚ¸¦ ÁöÁ¤ÇÒ ¼ö ¾ø±â ¶§¹®¿¡, Å×ÀÌºí ³»¿¡ ¿ÏÀüÈ÷ µ¿ÀÏÇÑ ÇàÀÌ ¾ó¸¶µçÁö Á¸ÀçÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ´Â SQLÀÇ ±âÃʸ¦ ÀÌ·ç´Â »ê¼úÀûÀÎ ¸ðµ¨ÀÇ °á°úÀÌÁö¸¸, º¸ÅëÀº ¹Ù¶÷Á÷ÇÑ ÀÏÀÌ ¾Æ´Õ´Ï´Ù. ÀÌ ¹®Á¦ÀÇ ´ëó¹ý¿¡ ´ëÇØ¼­´Â º» ÀåÀÇ µÞºÎºÐ¿¡¼­ ¼³¸íÇϰڽÀ´Ï´Ù.

°¢°¢ÀÇ ¿­Àº µ¥ÀÌÅÍÇüÀÌ ÀÖ½À´Ï´Ù. µ¥ÀÌÅÍÇü¿¡ ÀÇÇØ, ¿­¿¡ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â °ªÀÌ Á¦Çѵ˴ϴÙ. ¶ÇÇÑ, ¿­¿¡ ÀúÀåµÇ´Â µ¥ÀÌÅÍ¿¡ Àǹ̸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ¾î µ¥ÀÌÅ͸¦ °è»ê¿¡ »ç¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù. ¿¹¸¦ µé¸é, ¼öÄ¡ÇüÀ̶ó°í ¼±¾ðµÈ ¿­Àº ÀÓÀÇÀÇ ÅØ½ºÆ® ij¸¯ÅÍ ¶óÀÎÀº ¹Þ¾ÆµéÀÌÁö ¾Ê½À´Ï´Ù. ±×¸®°í ¼öÄ¡ÇüÀÇ ¿­¿¡ ÀúÀåµÈ µ¥ÀÌÅÍ´Â »ê¼ú °è»ê¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰Ϳ¡ ´ëÇØ¼­, ij¸¯ÅÍ ¶óÀÎÇüÀ̶ó°í ¼±¾ðµÈ ¿­Àº °ÅÀÇ ¸ðµç Á¾·ùÀÇ µ¥ÀÌÅ͸¦ ¹Þ¾ÆµéÀÔ´Ï´Ù. ±×·¯³ª ¹®ÀÚ¿­ ¿¬°áÀÌ °¡´ÉÇÑ ¿¬»ê¿¡´Â »ç¿ëÇÒ ¼ö ÀÖÁö¸¸, »ê¼ú °è»ê¿¡´Â »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.

PostgreSQL¿¡´Â ´Ù¾çÇÑ ¾îÇø®ÄÉÀ̼ǿ¡ ÀÏÄ¡ÇÏ´Â ´Ù¼öÀÇ ³»Àå µ¥ÀÌÅÍÇüÀÇ ÁýÇÕÀ» Æ÷ÇÔÇÕ´Ï´Ù. ¶Ç À¯Àú°¡ µ¶ÀÚÀûÀÎ µ¥ÀÌÅÍÇüÀ» Á¤ÀÇÇÏ´Â Àϵµ °¡´ÉÇÕ´Ï´Ù. ´ëºÎºÐÀÇ ³»Àå µ¥ÀÌÅÍÇüÀº ºÐ¸íÇÑ À̸§°ú Àǹ̸¦ °¡Áö¹Ç·Î, ÀÚ¼¼ÇÑ ¼³¸íÀº Chapter 8À¸·Î ¹Ì·ç°Ú½À´Ï´Ù. ÀÚÁÖ »ç¿ëÇÏ´Â µ¥ÀÌÅÍÇüÀº Á¤¼ö¸¦ ³ªÅ¸³»´Â integer, ¼Ò¼ö¸¦ À§ÇÑ numeric, ¹®ÀÚ¿­À» À§ÇÑ text, ³¯Â¥¸¦ ³ªÅ¸³»´Â date, ½Ã°¢À» ³ªÅ¸³»´Â time, ±×¸®°í ³¯ÀÚ¿Í ½Ã°£ ¸ðµÎ¸¦ Æ÷ÇÔÇÏ´Âtimestamp°¡ ÀÖ½À´Ï´Ù.

Å×À̺íÀ» ÀÛ¼ºÇϱâ À§ÇØ, ÀûÀýÇÑ À̸§À» °¡Áø CREATE TABLE Ä¿¸Çµå¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÌ Ä¿¸Çµå¿¡¼­ ÃÖ¼ÒÇÑ »õ·Î¿î Å×À̺íÀ» À§ÇÑ À̸§°ú ¿­À» À§ÇÑ À̸§, °¢ ¿­À» À§ÇÑ µ¥ÀÌÅÍÇüÀ» ÁöÁ¤ÇÕ´Ï´Ù. ¿¹¸¦ µé¸é:

CREATE TABLE my_first_table (
    first_column text,
    second_column integer
);

ÀÌ·Î ÀÎÇØ µÎ °³ÀÇ ¿­À» °¡Áø my_first_table Å×À̺íÀÌ ÀÛ¼ºµË´Ï´Ù. ù ¹øÂ° ¿­ÀÇ À̸§Àº first_column·Î, µ¥ÀÌÅÍÇüÀºtextÀÔ´Ï´Ù. µÎ ¹øÂ° ¿­ÀÇ À̸§Àº second_column·Î, µ¥ÀÌÅÍÇüÀºintegerÀÔ´Ï´Ù. Å×À̺í°ú ¿­ÀÇ À̸§Àº Section 4.1.1¿¡¼­ ¼³¸íµÈ ½Äº°ÀÚÀÇ ±¸¹®À» µû¸¨´Ï´Ù. º¸Åë ŸÀÔ À̸§Àº ½Äº°ÀÚÀÌÁö¸¸ ¿¹¿Üµµ ÀÖ½À´Ï´Ù. ¿­ ¸®½ºÆ®´Â ÄÞ¸¶·Î ºÐ¸®µÇ¸ç, °ýÈ£·Î µÑ·¯½Î´Â °ÍÀ» ÁÖÀÇÇϽʽÿä.

¹°·Ð, ÀÌÀüÀÇ ¿¹¿¡¼­´Â ¼³¸íÀÌ ¸ñÀûÀ̱⠶§¹®¿¡ Çö½ÇÀûÀÌÁö´Â ¾Ê½À´Ï´Ù. ÀϹÝÀûÀ¸·Î, Å×À̺í°ú ¿­¿¡´Â ÀúÀåµÉ µ¥ÀÌÅÍ¿¡ µû¶ó À̸§ÀÌ Á¤ÇØÁý´Ï´Ù. ¾Æ·¡´Â º¸´Ù Çö½ÇÀûÀÎ ¿¹Á¦ÀÔ´Ï´Ù.

CREATE TABLE products (
    product_no integer,
    name text,
    price numeric
);

(numericÇüÀº ¼Ò¼ö¸¦ ÀúÀåÇÒ ¼ö°¡ ÀÖ¾î ±Ý¾×À» Ãë±ÞÇÏ´Â °æ¿ì¿¡ ÀϹÝÀûÀ¸·Î »ç¿ëµË´Ï´Ù. )

Tip: »óÈ£ ¿¬°üµÇ´Â Å×À̺íÀ» ¸¹ÀÌ »ý¼ºÇÒ ¶§ Å×À̺í°ú ¿­¿¡ ´ëÇØ Àϰü¼º ÀÖ´Â À̸§ÀÇ ÆÐÅÏÀ» °®µµ·Ï ÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. ¿¹¸¦ µé¾î, Å×À̺í¸íÀ¸·Î ´Ü¼öÀÇ ¶Ç´Â º¹¼öÀÇ ¸í»ç¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù. µÑ ´Ù À̷а¡³ª ´Ù¸¥ »ç¶÷µé¿¡ ÀÇÇØ ¼±È£µÇ¾îÁý´Ï´Ù.

Å×ÀÌºí¿¡ Æ÷ÇÔÇÒ ¼ö ÀÖ´Â ¿­ÀÇ ¼ö´Â Á¦ÇÑÀÌ ÀÖ½À´Ï´Ù. ¿­ÀÇ Å¸ÀÔ¿¡ ÀÇÁ¸Çϱ⠶§¹®¿¡, 250~1600ÀÇ »çÀ̰¡ µË´Ï´Ù. ±×·¯³ª ÀÌ·¸°Ô ¸¹Àº ¿­À» »ç¿ëÇÏ´Â °æ¿ìÀº µå¹°¸ç, ±×·¯ÇÑ °æ¿ì´Â ¼³°è¿¡ ¹®Á¦°¡ ÀÖ´Â Àϵµ ¸¹½À´Ï´Ù.

ÇÊ¿ä ¾ø´Â Å×À̺íÀÌ »ý°åÀ» °æ¿ì´Â DROP TABLE Ä¿¸Çµå¸¦ »ç¿ëÇØ Å×À̺íÀ» »èÁ¦ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é,

DROP TABLE my_first_table;
DROP TABLE products;

Á¸ÀçÇÏÁö ¾Ê´Â Å×À̺íÀ» »èÁ¦ÇÏ·Á°í Çϸé, ¿¡·¯°¡ ³³´Ï´Ù. ±×·¸Áö¸¸ Å×À̺íÀÇ Á¸Àç ¿©ºÎ¿Í °ü°è¾øÀÌ ½ºÅ©¸³Æ®°¡ µ¿ÀÛÇϵµ·Ï Çϱâ À§ÇØ, Å×À̺í ÀÛ¼ºÇϱâ Àü, ¿¡·¯ ¸Þ¼¼Áö¸¦ ¹«½ÃÇÏ¸ç ¹«Á¶°Ç »èÁ¦ÇÏ·Á°í ÇÏ´Â °ÍÀº SQL ½ºÅ©¸³Æ® ÆÄÀÏ¿¡¼­´Â ÈçÇÑ ÀÏÀÔ´Ï´Ù. (À̸¦ ½ÇÇàÇÏ°í ½Í´Ù¸é, ¿¡·¯ ¸Þ¼¼ÁöÀÇ Ãâ·ÂÀ» ¸·´Â DROP TABLE IF EXISTS º¯ÇüÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª À̰ÍÀº Ç¥ÁØ SQL°¡ ¾Æ´Õ´Ï´Ù. )

ÀÌ¹Ì Á¸ÀçÇÏ´Â Å×À̺íÀ» º¯°æÇÏ´Â ¹æ¹ýÀº º» Àå µÚ¿¡ ÀÖ´Â Section 5.5¸¦ ÂüÁ¶ÇϽʽÿä.

Áö±Ý±îÁö ¼³¸íÇÑ ÅøÀ» »ç¿ëÇØ, ÃæºÐÈ÷ ±â´ÉÇÏ´Â Å×À̺íÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. º» ÀåÀÇ ³ª¸ÓÁö¿¡¼­´Â Å×À̺í Á¤ÀÇ¿¡ ±â´ÉÀ» Ãß°¡ÇØ, µ¥ÀÌÅÍÀÇ ÂüÁ¶ ¹«°á¼º, ¾ÈÀü¼º, Æí¸®¼ºÀ» È®½ÇÈ÷ ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¸»ÇϰڽÀ´Ï´Ù. Áö±Ý Å×ÀÌºí¿¡ µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÏ°í ½Í´Ù¸é, º» ÀåÀÇ ³ª¸ÓÁö¸¦ Chapter 6·Î °Ç³Ê ¶Ù¾îµµ »ó°üÇÏÁö ¾Ê½À´Ï´Ù.