8.12. ¿ÀºêÁ§Æ® ½Äº°ÀÚ µ¥ÀÌÅÍÇü

¿ÀºêÁ§Æ® ½Äº°ÀÚ(OID)´ÂPostgreSQLÀÇ ³»ºÎ¿¡¼­ ¿©·¯°¡Áö ½Ã½ºÅÛ Å×À̺íÀÇ ÇÁ¶óÀ̸Ӹ® Ű·Î¼­ »ç¿ëµË´Ï´Ù. ¶Ç, Å×À̺í ÀÛ¼º½Ã¿¡WITH OIDS°¡ ÁöÁ¤µÇ°í ÀÖ´ÂÁö,default_with_oids¼³Á¤ º¯¼ö°¡ À¯È¿ÇÑ °æ¿ì¸¦ Á¦¿ÜÇØ, À¯Àú ÀÛ¼ºÀÇ Å×ÀÌºí¿¡´Â OID´Â Ãß°¡µÇÁö ¾Ê½À´Ï´Ù. oidµ¥ÀÌÅÍÇüÀº ¿ÀºêÁ§Æ® ½Äº°ÀÚ¸¦ ³ªÅ¸³À´Ï´Ù. oid¿¡´Â º°¸íÇüµµ ¸î°³Àΰ¡ ÀÖ½À´Ï´Ù. regproc, regprocedure, regoper, regoperator, regclass, ¹× regtypeÀÔ´Ï´Ù. Table 8-19¿¡ °³¿ä¸¦ ³ªÅ¸³À´Ï´Ù.

oidµ¥ÀÌÅÍÇüÀº ÇöÀç, ºÎÈ£ ¾øÀ½ 4¹ÙÀÌÆ® Á¤¼ö·Î¼­ ½ÇÀåµÇ°í ÀÖ½À´Ï´Ù. À̰ÍÀº, ´ë±Ô¸ð µ¥ÀÌÅͺ£À̽ºÀÇ Àüü¿¡ °ÉÃļ­ ÀÏÀÇ·Î Çϱ⿡´Â ÃæºÐÇÏÁö´Â ¾Ê½À´Ï´Ù. ´ë±Ô¸ð °³º°ÀÇ Å×ÀÌºí³»¿¡ À־ ÃæºÐÇÏÁö ¾ÊÀ»Áöµµ ¸ð¸¨´Ï´Ù. ±× ¶§¹®¿¡, À¯Àú ÀÛ¼º Å×À̺íÀÇ OID¿­À» ÇÁ¶óÀ̸Ӹ® Ű·Î¼­ »ç¿ëÇÏ´Â °ÍÀº ÃßõÇÒ ¼ö ¾ø½À´Ï´Ù. OIDÀÇ »ç¿ëÀº, ½Ã½ºÅÛ Å×ÀÌºí¿¡ÀÇ ÂüÁ¶ÀÇ °æ¿ì¿¡°Ô¸¸ Ãßõ µË´Ï´Ù.

oidµ¥ÀÌÅÍÇü ÀÚü´Â, ºñ±³ ÀÌ¿ÜÀÇ ¿¬»êÀº °ÅÀÇ ½Ç½ÃÇÏÁö ¾Ê½À´Ï´Ù. ±×·¯³ª, Á¤¼ö·Î¼­ ij½ºÆ® ÇÒ ¼öµµ ÀÖ¾î ±× °æ¿ì Ç¥ÁØÀÇ Á¤¼ö ¿¬»êÀÚ¸¦ »ç¿ëÇØ Á¶ÀÛÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù (À̰ÍÀ» ½Ç½ÃÇϸé, ºÎÈ£ ÷ºÎ¿Í ºÎÈ£ ¾øÀ½ÀÇ »çÀÌ¿¡ È¥¶õÀÌ ÀϾ ¼öµµ ÀÖ´Â ÀÏ·Î ÁÖÀÇÇØ ÁÖ¼¼¿ä).

The OID alias types have no operations of their own except for specialized input and output routines. These routines are able to accept and display symbolic names for system objects, rather than the raw numeric value that type oid would use. The alias types allow simplified lookup of OID values for objects. For example, to examine the pg_attribute rows related to a table mytable, one could write: --> OIDÀÇ º°¸í µ¥ÀÌÅÍÇüÀº, Àü¿ëÀÇ ÀÔÃâ·Â ·çƾ À̿ܿ¡´Â ¿¬»êÀ» ½Ç½ÃÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ·¯ÇÑ ·çƾ¿¡¼­´Â,oidÇüÀÌ »ç¿ëÇÏ´Â °Í °°Àº ¹Ì°¡°øÀÇ ¼öÄ¡´Â ¾Æ´Ï°í, ½Ã½ºÅÛ ¿ÀºêÁ§Æ®¿ëÀÇ ½Éº¼¸íÀ» ¹Þ¾ÆµéÀ̰ųª Ç¥½ÃÇϰųª ÇÒ ¼ö ÀÖ½À´Ï´Ù. º°¸í µ¥ÀÌÅÍÇü¿¡ ÀÇÇØ, ¿ÀºêÁ§Æ®ÀÇ OIDÄ¡ÀÇ °Ë»öÀÌ °£´ÜÇÏ°Ô µË´Ï´Ù. ¿¹¸¦ µé¸é,mytableÅ×ÀÌºí¿¡ °ü·ÃÇÑpg_attributeÇàÀ» È®ÀÎÇÏ·Á¸é , ÀÌÇÏ¿Í °°ÀÌ ±â¼úÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

SELECT * FROM pg_attribute WHERE attrelid = 'mytable'::regclass;

´ÙÀ½°ú °°ÀÌ ±â¼úÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.

SELECT * FROM pg_attribute
  WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'mytable');

ÈÄÀÚµµ ±×·¸°Ô ³ª»ÚÁö ¾ÊÀº °Í ó·³ º¸ÀÔ´Ï´Ù¸¸, °úµµÇÏ°Ô ´Ü¼øÈ­ µÇ°í ÀÖ½À´Ï´Ù. ´Ù¸¥ schema¿¡mytableÅ×À̺íÀÌ ´Ù¼ö ÀÖ´Â °æ¿ì¿¡´Â, ¿Ã¹Ù¸¥ OID¸¦ ¼±ÅÃÇϱâ À§Çؼ­, º¸´Ù º¹ÀâÇÑSELECT°¡ ÇÊ¿äÇÕ´Ï´Ù. regclassÀÔ·Â º¯È¯¿¡¼­´Â schema ÆÐ½ºÀÇ ¼³Á¤¿¡ µû¶ó Å×ÀÌºí °Ë»öÀ» Ãë±ÞÇϱ⠶§¹®¿¡, ÀÚµ¿ÀûÀ¸·Î"¿Ã¹Ù¸¥ °Ë»ö"À» ½Ç½ÃÇÕ´Ï´Ù. °°ÀÌ Å×À̺íÀÇ OID¸¦regclass¿¡ ij½ºÆ® ÇÏ´Â °ÍÀº, ¼öÄ¡ÀÇ OIDÀÇ ½Éº¼ Ç¥½Ã¿¡ Æí¸®ÇÕ´Ï´Ù.

Table 8-19. ¿ÀºêÁ§Æ® ½Äº°ÀÚ µ¥ÀÌÅÍÇü

À̸§ ÂüÁ¶ ¼³¸í °ªÀÇ ¿¹
oid ¸ðµÎ ¼öÄ¡ ¿ÀºêÁ§Æ® ½Äº°ÀÚ 564182
regproc pg_proc ÇÔ¼ö¸í sum
regprocedure pg_proc ÀÎÀÚÀÇ ÇüŸ¦ °¡Áö´Â ÇÔ¼ö sum(int4)
regoper pg_operator ¿¬»êÀÚ¸í +
regoperator pg_operator ÀÎÀÚÀÇ ÇüŸ¦ °¡Áö´Â ¿¬»êÀÚ operator with argument types *(integer,integer) or -(NONE,integer)
regclass pg_class ¸±·¹À̼Ǹí pg_type
regtype pg_type µ¥ÀÌÅÍÇü¸í integer

¸ðµç OID º°¸íÇüÀº schema ¼ö½Ä¸íÀ» ¹Þ¾Æµé¿© Ãâ·Â½Ã¿¡ schema ¼ö½Ä¸íÀ» Ç¥½ÃÇÕ´Ï´Ù. ´Ù¸¸, ÇöÀçÀÇ °Ë»ö ÆÐ½º·Î ¿ÀºêÁ§Æ®¸¦ ã¾Æ³¾ ¼ö ¾øÀ¸¸é, ¼ö½ÄÇÏÁö ¾Ê°í Ãâ·ÂÇÕ´Ï´Ù. regproc¿Íregoperº°¸íÇüÀº, ÀÏÀÇÀÎ(overload Çϰí ÀÖÁö ¾Ê´Ù) À̸§¸¸À» ÀÔ·ÂÀ¸·Î¼­ ¹Þ¾ÆµéÀ̱â (À§ÇØ)¶§¹®¿¡, ÀÌ·¯ÇÑ »ç¿ë¿¡´Â Çѵµ°¡ ÀÖ½À´Ï´Ù. ´ëºÎºÐÀÇ °æ¿ì,regprocedure¶Ç´Âregoperator¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÀûÀýÇÕ´Ï´Ù. regoperatorÀÇ °æ¿ì, ´ÜÇ× ¿¬»êÀÚ´Â ¹Ì»ç¿ëÀÇ ¿ÀÆÛ·£µå¸¦NONE¶ó°í ±â¼úÇÏ´Â °Í¿¡ ÀÇÇØ ÁöÁ¤µË´Ï´Ù.

OID º°¸íÇüÀÇ ÇÑÃþ ´õ ¼Ó¼ºÀ¸·Î¼­ ÀÌ·¯ÇÑ ÇüÅÂÀÇ ÇϳªÀÇ »ó¼ö°¡ ÀúÀåµÈ Ç¥Çö½Ä¿¡ ÀÖÀ» °æ¿ì(¿­ÀÇ µðÆúÆ®½ÄÀ̳ª ºä µî), ÂüÁ¶µÇ´Â ¿ÀºêÁ§Æ®¿¡ÀÇ ÀÇÁ¸¼ºÀ» »ý¼ºÇÕ´Ï´Ù. ¿¹¸¦ µé¸é, ¿­ÀÌnextval('my_seq'::regclass)¶ó°í ÇÏ´Â µðÆúÆ®½ÄÀ» °¡Áö´Â °æ¿ì,PostgreSQL´Â µðÆúÆ®½ÄÀÌmy_seq¼ø¼­¿¡ ÀÇÁ¸ÇÏ´Â °ÍÀ» ÀÌÇØÇÕ´Ï´Ù. ½Ã½ºÅÛÀº ¸ÕÀú ÀÌ µðÆúÆ®½ÄÀÌ »èÁ¦µÇÁö ¾Ê´Â ÀÌ»ó ÀÌ ¼ø¼­¸¦ »èÁ¦½ÃŰÁö ¾Ê½À´Ï´Ù.

½Ã½ºÅÛÀÌ »ç¿ëÇÏ´Â ÀÌÁ¦(¹ú½á) 1°³ÀÇ ½Äº°ÀÚÀÇ ÇüÅ´Âxid, Áï Æ®·£Àè¼Ç(transaction)(»ý·«ÇØxact) ½Äº°ÀÚÀÔ´Ï´Ù. À̰ÍÀºxmin½Ã½ºÅÛ¿­ ¹×xmax½Ã½ºÅÛ¿­ÀÇ µ¥ÀÌÅÍÇüÀÔ´Ï´Ù. Æ®·£Àè¼Ç(transaction) ½Äº°ÀÚ´Â 32 bit lengthÀÔ´Ï´Ù.

½Ã½ºÅÛÀÌ »ç¿ëÇÏ´Â 3¹øÂ°ÀÇ ½Äº°ÀÚ´Âcid, Áï Ä¿¸àµå ½Äº°ÀÚÀÔ´Ï´Ù. À̰ÍÀºcmin½Ã½ºÅÛ¿­ ¹×cmax½Ã½ºÅÛ¿­ÀÇ µ¥ÀÌÅÍÇüÀÔ´Ï´Ù. Ä¿¸àµå ½Äº°ÀÚµµ 32 bit lengthÀÔ´Ï´Ù.

½Ã½ºÅÛÀÌ »ç¿ëÇÏ´Â ¸¶Áö¸· ½Äº°ÀÚ´Âtid, Áï ŸǮ ½Äº°ÀÚ(Çà ½Äº°ÀÚ)ÀÔ´Ï´Ù. À̰ÍÀºctid½Ã½ºÅÛ¿­ÀÇ µ¥ÀÌÅÍÇüÀÔ´Ï´Ù. Æ©Çà ID´Â Å×ÀÌºí³»ÀÇ ÇàÀÇ ¹°¸®Àû À§Ä¡¸¦ ½Äº°Çϱâ À§ÇÑ Á¶(ºí·Ï ¹øÈ£, ºí·Ï³»ÀÇ Å¸ÇÁ¸£ÀÎÁ§½º)ÀÔ´Ï´Ù.

(½Ã½ºÅÛ¿­ÀÇ ÀÚ¼¼ÇÑ °ÍÀºSection 5.4À¸·Î ¼³¸íÇÕ´Ï´Ù. )