SQL ÂüÁ¶¼
ALTER TYPE¹®Àº »ç¿ëÀÚ Á¤ÀÇ ±¸Á¶ À¯ÇüÀÇ ¼Ó¼º ¶Ç´Â ¸Þ¼Òµå ½ºÆåÀ» Ãß°¡Çϰųª
»èÁ¦Çϱâ À§ÇØ »ç¿ëµË´Ï´Ù.
È£Ãâ
ÀÌ ¸í·É¹®Àº ÀÀ¿ëÇÁ·Î±×·¥¿¡ Æ÷ÇԵǰųª µ¿Àû SQL¹®À» »ç¿ëÇÏ¿©
¹ßÇàµÉ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸í·É¹®Àº µ¿ÀûÀ¸·Î ÁغñÇÒ ¼ö ÀÖ´Â ½ÇÇà °¡´ÉÇÑ ¸í·É¹®ÀÔ´Ï´Ù. ±×·¯³ª DYNAMICRULES BIND ¹ÙÀÎµå ¿É¼ÇÀÌ Àû¿ëµÇ¸é, ¸í·É¹®À» µ¿ÀûÀ¸·Î ÁغñÇÒ ¼ö
¾ø½À´Ï´Ù(SQLSTATE 42509).
±ÇÇÑ ºÎ¿©
¸í·É¹®ÀÇ ±ÇÇÑ ºÎ¿© ID¿¡¼ °®°í Àִ Ư±Ç¿¡ ´ÙÀ½
Áß ÃÖ¼ÒÇÑ Çϳª´Â Æ÷ÇԵǾî¾ß ÇÕ´Ï´Ù.
- SYSADM ¶Ç´Â DBADM ±ÇÇÑ
- À¯Çü ½ºÅ°¸¶¿¡ ´ëÇÑ ALTERIN Ư±Ç
- SYSCAT.DATATYPESÀÇ DEFINER Ä÷³¿¡ ±â·ÏµÈ À¯ÇüÀÇ Á¤ÀÇÀÚ
±¸¹®
>>-ALTER TYPE--type-name---------------------------------------->
.-,----------------------------------------------------------------------------------------.
V (1) |
>---------------+-ADD ATTRIBUTE--| attribute-definition |-------------------------------------+--+>
| .-RESTRICT-. |
+-DROP ATTRIBUTE--attribute-name-+----------+---------------------------------+
+-ADD--| method-specification |-----------------------------------------------+
| .-RESTRICT-. |
'-DROP--+-METHOD--method-name--------------------------------+--+----------+--'
+-METHOD--method-name--(--+-------------------+---)--+
| | .-,-----------. | |
| | V | | |
| '----data-type---+--' |
'-SPECIFIC METHOD--specific-name---------------------'
>--------------------------------------------------------------><
ÁÖ:
- ¼Ó¼º°ú ¸Þ¼Òµå µÑ´Ù°¡ Ãß°¡µÇ°Å³ª »èÁ¦µÉ °æ¿ì, ¸ðµç ¸Þ¼Òµå ½ºÆå
ÀÌÀü¿¡ ¸ðµç ¼Ó¼º ½ºÆåÀÌ ¹ß»ýÇØ¾ß ÇÕ´Ï´Ù.
¼³¸í
- À¯Çü À̸§
- º¯°æµÉ ±¸Á¶È À¯ÇüÀ» ½Äº°ÇÕ´Ï´Ù. īŻ·Î±×¿¡ Á¤ÀÇµÈ ±âÁ¸ÀÇ À¯Çü(SQLSTATE
42704)À̾î¾ß Çϰí, À¯ÇüÀº ±¸Á¶È À¯Çü(SQLSTATE 428DP)À̾î¾ß ÇÕ´Ï´Ù. µ¿Àû SQL¹®¿¡¼, CURRENT SCHEMA Ư¼ö ·¹Áö½ºÅÍ´Â ±ÔÁ¤ÈµÇÁö
¾ÊÀº ¿ÀºêÁ§Æ® À̸§ÀÇ ±ÔÁ¤ÀÚ·Î »ç¿ëµË´Ï´Ù. Á¤Àû SQL¹®¿¡¼,
QUALIFIER precompile/bind ¿É¼ÇÀº ³»ÀçÀûÀ¸·Î ±ÔÁ¤ÈµÇÁö ¾ÊÀº
¿ÀºêÁ§Æ® À̸§ÀÇ ±ÔÁ¤ÀÚ¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
- ADD ATTRIBUTE
- ±âÁ¸ÀÇ ±¸Á¶È À¯ÇüÀÇ ÃÖÁ¾ ¼Ó¼º ´ÙÀ½¿¡ ¼Ó¼ºÀ» Ãß°¡ÇÕ´Ï´Ù.
- ¼Ó¼º Á¤ÀÇ
- ¼Ó¼º Á¤ÀÇÀÇ ¼¼ºÎ ¼³¸í¿¡ ´ëÇØ¼´Â
CREATE TYPE(±¸Á¶È)¿¡¼ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.
- ¼Ó¼º À̸§
- ¼Ó¼º¿¡ ´ëÇÑ À̸§À» ÁöÁ¤ÇÕ´Ï´Ù. À̸§Àº ÇØ´çµÇ´Â ±¸Á¶È À¯ÇüÀÇ ´Ù¸¥ ¼Ó¼º(°è½ÂµÈ
¼Ó¼ºÀ» Æ÷ÇÔÇÏ¿©)À̳ª, ÇØ´çµÇ´Â ±¸Á¶È À¯ÇüÀÇ ºÎ¼Ó À¯Çü¿¡ ´ëÇÑ ´Ù¸¥ ¼Ó¼º°ú
°°À¸¸é ¾È µË´Ï´Ù(SQLSTATE 42711).
¼ú¾î¿¡¼ Ű¿öµå·Î »ç¿ëµÇ´Â ¿©·¯ À̸§µéÀº ½Ã½ºÅÛ¿¡¼ »ç¿ëÇϵµ·Ï ¿¹¾àµÇ¾î ÀÖÀ¸¹Ç·Î,
¼Ó¼º À̸§À¸·Î »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù(SQLSTATE 42939). SOME, ANY, ALL, NOT,
AND, OR, BETWEEN, NULL, LIKE, EXISTS, IN, UNIQUE, OVERLAPS, SIMILAR, MATCH¿Í °°Àº
À̸§µéÀÌ ÀÖ°í, ºñ±³ ¿¬»êÀÚµµ Æ÷ÇԵ˴ϴÙ.
- µ¥ÀÌÅÍ À¯Çü 1
- ¼Ó¼ºÀÇ µ¥ÀÌÅÍ À¯ÇüÀ» ÁöÁ¤ÇÕ´Ï´Ù. À̰ÍÀº
LONG VARCHAR, LONG VARGRAPHIC, ¶Ç´Â LONG VARCHARÀ̳ª LONG VARGRAPHICÀ» ±âÃÊ·Î ÇÏ´Â
±¸º° À¯Çü À̿ܿ¡, CREATE TABLE ¾Æ·¡¿¡ ³ª¿µÇ´Â µ¥ÀÌÅÍ À¯Çü Áß ÇϳªÀÔ´Ï´Ù(SQLSTATE 42601).
µ¥ÀÌÅÍ À¯ÇüÀº ±âÁ¸ÀÇ
µ¥ÀÌÅÍ À¯ÇüÀ» ½Äº°ÇØ¾ß ÇÕ´Ï´Ù(SQLSTATE 42704). ½ºÅ°¸¶
À̸§ ¾øÀÌ µ¥ÀÌÅÍ À¯ÇüÀ» ÁöÁ¤ÇÒ °æ¿ì, SQL °æ·ÎÀÇ
½ºÅ°¸¶¸¦ °Ë»öÇÏ¿© À¯ÇüÀÌ ÇØ¼®µË´Ï´Ù. ´Ù¾çÇÑ µ¥ÀÌÅÍ À¯Çü¿¡
´ëÇÑ ¼³¸íÀº CREATE TABLE¿¡ ÀÖ½À´Ï´Ù. ¼Ó¼º µ¥ÀÌÅÍ À¯ÇüÀÌ ÂüÁ¶ À¯ÇüÀÏ °æ¿ì,
ÂüÁ¶ÀÇ ¸ñÇ¥ À¯ÇüÀº Á¸ÀçÇÏ´Â ±¸Á¶È À¯ÇüÀ̾î¾ß ÇÕ´Ï´Ù(SQLSTATE 42704).
¼Ó¼º À¯ÇüÀÌ DATALINK·Î Á¤ÀÇµÈ ±¸Á¶È À¯ÇüÀº ÀÔ·ÂµÈ Å×À̺íÀ̳ª ÀÔ·Â ºä¿¡ ´ëÇÑ
µ¥ÀÌÅÍ À¯ÇüÀ¸·Î¸¸ È¿À²ÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù(SQLSTATE 01641).
·±Å¸ÀÓ¿¡¼ À¯ÇüÀÇ ÀνºÅϽº¿¡ Á÷Á¢ ¶Ç´Â °£Á¢ÀûÀ¸·Î °°Àº À¯ÇüÀÇ ´Ù¸¥ ÀνºÅϽº³ª
ÇØ´çµÇ´Â ºÎ¼Ó À¯Çü Áß Çϳª°¡ Æ÷ÇԵǵµ·Ï ÇÏ´Â À¯Çü Á¤ÀǸ¦ ±ÝÁöÇϱâ À§ÇØ,
ÇØ´çµÇ´Â ¼Ó¼º À¯Çü Áß Çϳª°¡ Á÷Á¢ ¶Ç´Â °£Á¢ÀûÀ¸·Î ÀÚü¸¦ »ç¿ëÇÏ´Â °Í°ú °°ÀÌ
À¯ÇüÀÌ Á¤ÀǵÇÁö ¾Êµµ·Ï ÇÏ´Â Á¦ÇÑ»çÇ×ÀÌ ÀÖ½À´Ï´Ù(SQLSTATE 428EP). ±¸Á¶È À¯Çü¿¡¼ ÀÚ¼¼ÇÑ ¼³¸íÀ» ÂüÁ¶ÇϽʽÿÀ.
- lob ¿É¼Ç
- LOB À¯Çü°ú ¿¬°üµÈ ¿É¼Ç(¶Ç´Â LOB À¯Çü¿¡ ±âÃÊÇÑ
±¸º° À¯Çü)À» ÁöÁ¤ÇÕ´Ï´Ù. lob ¿É¼ÇÀÇ ¼¼ºÎ ¼³¸í¿¡ ´ëÇØ¼´Â CREATE TABLE¿¡¼
ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.
- µ¥ÀÌÅÍ ¸µÅ© ¿É¼Ç
- DATALINK À¯Çü°ú ¿¬°üµÈ ¿É¼Ç(¶Ç´Â DATALINK À¯Çü¿¡ ±âÃÊÇÑ
±¸º° À¯Çü)À» ÁöÁ¤ÇÕ´Ï´Ù. µ¥ÀÌÅ͸µÅ© ¿É¼ÇÀÇ ¼¼ºÎ ¼³¸í¿¡ ´ëÇØ¼´Â
CREATE TABLE¿¡¼ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.
DATALINK À¯ÇüÀ̳ª DATALINK¿¡¼ Àü·¡µÇ´Â ±¸º° À¯Çü¿¡ ´ëÇØ ¾î¶² ¿É¼Çµµ
ÁöÁ¤ÇÏÁö ¾ÊÀ» °æ¿ì, ±âº»°ªÀº LINKTYPE URL ¹× NO LINK CONTROL ¿É¼ÇÀÔ´Ï´Ù.
- DROP ATTRIBUTE
- ±âÁ¸ÀÇ ±¸Á¶È À¯Çü ¼Ó¼ºÀ» »èÁ¦ÇÕ´Ï´Ù.
- ¼Ó¼º À̸§
- ¼Ó¼ºÀÇ À̸§. ¼Ó¼ºÀº À¯ÇüÀÇ ¼Ó¼ºÀ¸·Î¼ Á¸ÀçÇØ¾ß
ÇÕ´Ï´Ù(SQLSTATE 42703).
- RESTRICT
- ±âÁ¸ÀÇ Å×À̺í, ºä, Ä÷³, Ä÷³ À¯Çü ³»¿¡ ÁßøµÈ ¼Ó¼º, ¶Ç´Â »öÀÎ È®ÀåÀÇ À¯ÇüÀ¸·Î
À¯Çü À̸§À» »ç¿ëÇÒ °æ¿ì ¾î¶² ¼Ó¼ºµµ »èÁ¦µÉ ¼ö ¾ø°Ô ÇÏ´Â ±ÔÄ¢ÀÌ ½ÃÇàµË´Ï´Ù.
- ADD ¸Þ¼Òµå ½ºÆå
- À¯Çü À̸§¿¡ ÀÇÇØ ½Äº°µÇ´Â À¯Çü¿¡ ¸Þ¼Òµå ½ºÆåÀ» Ãß°¡ÇÕ´Ï´Ù.
¸Þ¼Òµå´Â º°µµÀÇ CREATE METHOD¹®À» »ç¿ëÇÏ¿© ¸Þ¼Òµå¿¡ ³»¿ëÀ» Á¦°øÇÒ ¶§±îÁö »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
¸Þ¼Òµå ½ºÆå¿¡ ´ëÇØ¼´Â CREATE TYPE(±¸Á¶È)¿¡¼
ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.
- DROP METHOD
- »èÁ¦µÉ ¸Þ¼ÒµåÀÇ ÀνºÅϽº¸¦ ½Äº°ÇÕ´Ï´Ù. ÁöÁ¤µÈ ¸Þ¼Òµå´Â ±âÁ¸ ¸Þ¼Òµå
³»¿ëÀ» °¡Áö°í ÀÖÁö ¾Ê¾Æ¾ß ÇÕ´Ï´Ù(SQLSTATE 428ER). DROP METHOD¹®À» »ç¿ëÇÏ¿©,
ALTER TYPE DROP METHOD¸¦ »ç¿ëÇϱâ ÀÌÀü¿¡ ¸Þ¼Òµå ³»¿ëÀ» »èÁ¦Çϵµ·Ï ÇϽʽÿÀ.
ÁöÁ¤µÈ ¸Þ¼Òµå´Â īŻ·Î±×¿¡ ¼³¸íµÈ ¸Þ¼Òµå¿©¾ß ÇÕ´Ï´Ù(SQLSTATE
42704). CREATE TYPE¹®¿¡ ÀÇÇØ ³»ÀçÀûÀ¸·Î »ý¼ºµÇ´Â ¸Þ¼Òµå(¿¹:
mutators ¹× observers)´Â »èÁ¦ÇÒ ¼ö ¾ø½À´Ï´Ù(SQLSTATE 42917).
»èÁ¦µÉ ¸Þ¼Òµå ½ºÆåÀ» ½Äº°ÇÒ ¼ö ÀÖ´Â ¸î °¡ÁöÀÇ ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
- METHOD ¸Þ¼Òµå À̸§
- Ưº°ÇÑ ¸Þ¼Òµå¸¦ ½Äº°Çϰí, À̸§ÀÌ ¸Þ¼Òµå À̸§À̰í ÁÖÁ¦ À¯ÇüÀÌ À¯Çü À̸§ÀÎ
¸Þ¼Òµå ÀνºÅϽº°¡ Á¤È®È÷ Çϳª ÀÖ´Â °æ¿ì¿¡¸¸ À¯È¿ÇÕ´Ï´Ù. ±×·¯¹Ç·Î ½Äº°µÇ´Â ¸Þ¼Òµå¿¡´Â ÀÓÀÇ °³¼öÀÇ
¸Å°³º¯¼ö°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. À¯Çü À¯Çü À̸§¿¡ ´ëÇØ ÀÌ À̸§ÀÇ ¸Þ¼Òµå°¡ ÀüÇô
Á¸ÀçÇÏÁö ¾ÊÀ» °æ¿ì, ¿À·ù°¡ ¹ß»ýÇÕ´Ï´Ù(SQLSTATE 42704). ¸í¸íµÈ µ¥ÀÌÅÍ À¯Çü¿¡ ´ëÇØ
À̸§ÀÌ ¸Þ¼Òµå À̸§ÀÎ Çϳª ÀÌ»óÀÇ ¸Þ¼Òµå°¡ ÀÖÀ» °æ¿ì, ¿À·ù°¡ ¹ß»ýÇÕ´Ï´Ù(SQLSTATE 42854).
- METHOD ¸Þ¼Òµå À̸§(µ¥ÀÌÅÍ À¯Çü,...)
- »èÁ¦ÇÒ ¸Þ¼Òµå¸¦ °íÀ¯ÇÏ°Ô ½Äº°ÇÏ´Â ¸Þ¼Òµå ½Ã±×´Ïó¸¦
Á¦°øÇÕ´Ï´Ù. ¸Þ¼Òµå ¼±Åà ¾Ë°í¸®ÁòÀº »ç¿ëµÇÁö ¾Ê½À´Ï´Ù.
- ¸Þ¼Òµå À̸§
- ƯÁ¤ À¯Çü¿¡ ´ëÇØ »èÁ¦µÉ ¸Þ¼ÒµåÀÇ À̸§. À̸§Àº
°íÀ¯ÇÏÁö ¾ÊÀº ½Äº°ÀÚ¿©¾ß ÇÕ´Ï´Ù.
- (µ¥ÀÌÅÍ À¯Çü,...)
- ¸Þ¼Òµå°¡ Á¤ÀÇµÉ ¶§ ¸Þ¼Òµå ½ºÆåÀÇ ÇØ´ç À§Ä¡¿¡¼ ÁöÁ¤ÇÑ µ¥ÀÌÅÍ À¯Çü°ú
ÀÏÄ¡ÇØ¾ß ÇÕ´Ï´Ù. µ¥ÀÌÅÍ À¯ÇüÀÇ ¼ö¿Í µ¥ÀÌÅÍ À¯ÇüÀÇ
³í¸®Àû º´ÇÕÀº »èÁ¦µÉ ƯÁ¤ ¸Þ¼Òµå ÀνºÅϽº¸¦ ½Äº°ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.
¸Å°³º¯¼öÈµÈ µ¥ÀÌÅÍ À¯Çü¿¡ ´ëÇÑ Á¤¹Ðµµ ¶Ç´Â ½ºÄÉÀÏ, ±æÀ̸¦
ÁöÁ¤ÇÏ´Â °ÍÀº ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù.
´ë½Å, µ¥ÀÌÅÍ À¯Çü ÀÏÄ¡¸¦
ãÀ» ¶§ ÀÌµé ¼Ó¼ºÀÌ ¹«½ÃµÊÀ» Ç¥½ÃÇϱâ À§ÇØ ºó °ýÈ£¸¦ ¾µ ¼ö
ÀÖ½À´Ï´Ù.
¸Å°³º¯¼ö °ªÀÌ ´Ù¸¥ µ¥ÀÌÅÍ À¯Çü(REAL ¶Ç´Â DOUBLE)À» ³ªÅ¸³»±â
¶§¹®¿¡ FLOAT()´Â »ç¿ëµÉ ¼ö ¾ø½À´Ï´Ù(SQLSTATE 42601).
±×·¯³ª, ±æÀÌ, Á¤¹Ðµµ ¶Ç´Â ½ºÄÉÀÏÀÌ ÄÚµåÈµÈ °æ¿ì, ±× °ªÀº
CREATE TYPE¹®¿¡ ÁöÁ¤µÈ °Í°ú Á¤È®È÷ ÀÏÄ¡ÇØ¾ß ÇÕ´Ï´Ù.
0<n<25´Â REAL À¯ÇüÀ̰í 24<n<54´Â DOUBLE À¯ÇüÀ» ÀǹÌÇϱâ
¶§¹®¿¡ FLOAT(n) À¯ÇüÀÌ n¿¡ ´ëÇØ Á¤ÀÇµÈ °ª°ú ÀÏÄ¡ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.
ÀÏÄ¡(Matching)´Â À¯ÇüÀÌ REALÀÎÁö ¶Ç´Â DOUBLEÀÎÁö¿¡ µû¶ó ¹ß»ýÇÕ´Ï´Ù.
ÁöÁ¤µÈ ½Ã±×´Ïó¿¡ ÇØ´çµÇ´Â ¸Þ¼Òµå°¡ ¸í¸íµÈ µ¥ÀÌÅÍ À¯Çü¿¡ ´ëÇØ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é,
¿À·ù°¡ ¹ß»ýÇÕ´Ï´Ù(SQLSTATE 42883).
- SPECIFIC METHOD ƯÁ¤ À̸§
- ¸Þ¼Òµå°¡ Á¤ÀÇµÉ ¶§ Á¦°øµÇ°Å³ª ±âº»°ªÀ¸·Î ¼³Á¤µÈ ƯÁ¤ À̸§À»
»ç¿ëÇÏ¿©, »èÁ¦µÉ ƯÁ¤ ¸Þ¼Òµå¸¦ ½Äº°ÇÕ´Ï´Ù.
ƯÁ¤ À̸§ÀÌ ±ÔÁ¤µÇÁö ¾ÊÀº À̸§ÀÏ °æ¿ì, ¸Þ¼Òµå´Â À¯Çü À̸§¿¡ ´ëÇØ
ÁöÁ¤µÈ µ¥ÀÌÅÍ À¯ÇüÀÇ ½ºÅ°¸¶¿¡¼ ³»ÀçÀûÀ¸·Î ±ÔÁ¤µË´Ï´Ù.
ƯÁ¤ À̸§Àº À¯Çü À¯Çü À̸§¿¡ ´ëÇØ ¸Þ¼Òµå¸¦ ½Äº°ÇØ¾ß Çϸç, ±×·¸Áö ¾ÊÀ¸¸é
¿À·ù°¡ ¹ß»ýÇÕ´Ï´Ù(SQLSTATE 42704).
- RESTRICT
- ÁöÁ¤µÈ ¸Þ¼Òµå°¡ ±âÁ¸ ¸Þ¼Òµå ³»¿ëÀ» °®´Â µ¥ ÀÖ¾î¼ Á¦ÇѵÊÀ» ³ªÅ¸³À´Ï´Ù.
DROP METHOD¹®À» »ç¿ëÇÏ¿©,
ALTER TYPE DROP METHOD¸¦ »ç¿ëÇϱâ ÀÌÀü¿¡ ¸Þ¼Òµå ³»¿ëÀ» »èÁ¦Çϵµ·Ï ÇϽʽÿÀ.
±ÔÄ¢
- ¼Ó¼ºÀ» Ãß°¡Çϰųª »èÁ¦ÇÏ´Â °ÍÀº ´ÙÀ½ Áß ÇÑ °æ¿ì¿¡ ÇØ´çµÉ ¶§ À¯Çü À¯Çü
À̸§¿¡ ´ëÇØ Çã¿ëµÇÁö ¾Ê½À´Ï´Ù(SQLSTATE 55043).
- À¯ÇüÀ̳ª ÇØ´çµÇ´Â ºÎ¼Ó À¯Çü Áß Çϳª°¡ ±âÁ¸ Å×À̺íÀ̳ª ºäÀÇ À¯ÇüÀÔ´Ï´Ù. ¶Ç´Â,
- ÇØ´ç À¯ÇüÀÌ Á÷Á¢ ¶Ç´Â °£Á¢À¸·Î À¯Çü À̸§À» »ç¿ëÇÏ´Â
Å×À̺íÀÇ Ä÷³ÀÌ Á¸ÀçÇÕ´Ï´Ù. Á÷Á¢ »ç¿ë°ú °£Á¢ »ç¿ëÀ̶ó´Â
¿ë¾î´Â ±¸Á¶È À¯Çü¿¡ Á¤ÀǵǾî ÀÖ½À´Ï´Ù.
- À¯ÇüÀ̳ª ÇØ´çµÇ´Â ºÎ¼Ó À¯Çü Áß Çϳª°¡ »öÀÎ È®Àå¿¡¼ »ç¿ëµË´Ï´Ù.
- À¯ÇüÀº À¯ÇüÀ̳ª ÇØ´çµÇ´Â ºÎ¼Ó À¯Çü Áß ¾î´À ÇϳªÀÇ ÃÑ ¼Ó¼º ¼ö°¡
4082¸¦ ÃʰúÇϵµ·Ï ¼Ó¼ºÀ» Ãß°¡ÇÏ¿© º¯°æÇÒ ¼ö´Â ¾ø½À´Ï´Ù(SQLSTATE 54050).
- ADD ATTRIBUTE ¿É¼Ç:
- ADD ATTRIBUTE´Â »õ·Î¿î ¼Ó¼º¿¡ ´ëÇÑ observer ¹× mutator ¸Þ¼Òµå¸¦ »ý¼ºÇÕ´Ï´Ù.
ÀÌ ¸Þ¼ÒµåµéÀº CREATE TYPE(±¸Á¶È)¿¡ ¼³¸íµÈ °Íó·³
±¸Á¶È À¯ÇüÀÌ ÀÛ¼ºµÉ ¶§ »ý¼ºµÈ °Í°ú À¯»çÇÕ´Ï´Ù. ÀÌ ¸Þ¼ÒµåµéÀÌ ±âÁ¸ ¸Þ¼Òµå³ª ÇÔ¼ö¿Í
»óÃæµÇ°Å³ª À̸¦ ´ëüÇÒ °æ¿ì, ALTER TYPE¹®ÀÌ ½ÇÆÐÇÕ´Ï´Ù(SQLSTATE 42745).
- À¯Çü(¶Ç´Â ÇØ´çµÇ´Â ºÎ¼Ó À¯Çü)¿¡ ´ëÇÑ INLINE LENGTH°¡ °ªÀÌ 292 ÀÌÇÏÀÎ
»ç¿ëÀÚ¿¡ ÀÇÇØ ¸í½ÃÀûÀ¸·Î ÁöÁ¤µÇ¾ú°í, Ãß°¡µÈ ¼Ó¼ºÀ¸·Î ÀÎÇØ ÁöÁ¤µÈ ÀζóÀÎ ±æÀ̰¡
º¯°æµÈ À¯Çü¿¡ ´ëÇÑ constructor ÇÔ¼öÀÇ °á°ú Å©±â(¼Ó¼º¸¶´Ù 32 ¹ÙÀÌÆ® + 10 ¹ÙÀÌÆ®)º¸´Ù
ÀÛ°Ô µÉ °æ¿ì, ¿À·ù°¡ ¹ß»ýÇÕ´Ï´Ù(SQLSTATE 42611).
- DROP ATTRIBUTE ¿É¼Ç:
- ±âÁ¸ÀÇ ¼öÆÛ À¯Çü¿¡¼ °è½ÂµÈ ¼Ó¼ºÀº »èÁ¦ÇÒ ¼ö ¾ø½À´Ï´Ù(SQLSTATE 428DJ).
- DROP ATTRIBUTE´Â »èÁ¦µÈ ¼Ó¼ºÀÇ mutator ¹× observer ¸Þ¼Òµå¸¦ »èÁ¦ÇÑ ÈÄ
»èÁ¦µÈ ¸Þ¼Òµå¿¡ ´ëÇÑ Á¾¼Ó¼ºÀ» È®ÀÎÇÕ´Ï´Ù.
ÁÖ
- ¼Ó¼º Ãß°¡ ¶Ç´Â »èÁ¦·Î À¯ÇüÀÌ º¯°æµÉ °æ¿ì, ÀÌ À¯ÇüÀ̳ª ÀÌ À¯ÇüÀÇ ºÎ¼Ó À¯ÇüÀ»
¸Å°³º¯¼ö³ª °á°ú·Î »ç¿ëÇÏ´Â ÇÔ¼ö³ª ¸Þ¼ÒµåÀÇ ¿µÇâÀ» ¹Þ´Â ¸ðµç ÆÐŰÁö°¡
À¯È¿ÇÏÁö ¾Ê°Ô µË´Ï´Ù.
- ¼Ó¼ºÀÌ ±¸Á¶È À¯Çü¿¡ Ãß°¡µÇ°Å³ª ±¸Á¶È À¯Çü¿¡¼ »èÁ¦µÉ °æ¿ì:
- À¯ÇüÀÇ INLINE LENGTH°¡, À¯ÇüÀÌ ÀÛ¼ºµÉ ¶§ ½Ã½ºÅÛ¿¡¼ °è»êµÈ °æ¿ì,
INLINE LENGTH °ªÀº º¯°æµÈ À¯Çü°ú, º¯°æÇÏ·Á´Â ÇØ´çµÇ´Â ¸ðµç ºÎ¼Ó À¯Çü¿¡
´ëÇØ ÀÚµ¿À¸·Î ¼öÁ¤µË´Ï´Ù. INLINE LENGTH °ªÀº ¶ÇÇÑ ½Ã½ºÅÛ¿¡¼
INLINE LENGTH°¡ °è»êµÇ¾ú°í À¯Çü¿¡ INLINE LENGTH°¡ º¯°æµÈ À¯ÇüÀÇ ¼Ó¼ºÀÌ Æ÷ÇԵǴÂ
¸ðµç ±¸Á¶È À¯Çü¿¡ ´ëÇØ ÀÚµ¿À¸·Î(¹Ýº¹ÀûÀ¸·Î) ¼öÁ¤µË´Ï´Ù.
- ¼Ó¼º Ãß°¡ ¶Ç´Â »èÁ¦¿¡ ÀÇÇØ ¿µÇâÀ» ¹Þ´Â À¯ÇüÀÇ INLINE LENGTH¸¦ »ç¿ëÀÚ°¡
¸í½ÃÀûÀ¸·Î Á¤ÀÇÇÏ¿´À¸¸é, ±× ƯÁ¤ À¯Çü¿¡ ´ëÇÑ INLINE LENGTH´Â º¯°æµÇÁö ¾Ê½À´Ï´Ù.
¸í½ÃÀûÀ¸·Î ÁöÁ¤µÈ ÀζóÀÎ ±æÀÌ¿¡ ´ëÇØ ƯÈ÷ ÁÖÀÇÇØ¾ß ÇÕ´Ï´Ù.
³ªÁß¿¡ À¯Çü¿¡ ¼Ó¼ºÀÌ Ãß°¡µÉ °¡´É¼ºÀÌ ÀÖÀ¸¸é, Ä÷³ Á¤ÀÇ¿¡¼ À¯ÇüÀ̳ª ÀÌ¿¡ ÇØ´çµÇ´Â
ºÎ¼Ó À¯ÇüÀÇ »ç¿ëÀ» À§ÇØ, ÀζóÀÎ ±æÀÌ´Â ÀνºÅϽºÈµÈ ¿ÀºêÁ§Æ®ÀÇ ±æÀÌ¿¡¼ Áõ°¡
°¡´É¼ºÀ» °í·ÁÇÒ¸¸Å ÃæºÐÈ÷ Ä¿¾ß ÇÕ´Ï´Ù.
- »õ·Î¿î ¼Ó¼ºÀÌ ÀÀ¿ëÇÁ·Î±×·¥¿¡ º¸¿©Áö°Ô µÇ¸é, ±âÁ¸ º¯È¯ ÇÔ¼ö´Â µ¥ÀÌÅÍ À¯ÇüÀÇ »õ ±¸Á¶¿¡
ÀÏÄ¡µÇµµ·Ï ¼öÁ¤µÇ¾î¾ß ÇÕ´Ï´Ù.
¿¹
¿¹ 1: ALTER TYPE¹®À» »ç¿ëÇÏ¿©
»óÈ£ ÂüÁ¶ À¯Çü ¹× Å×ÀÌºí ¼øÈ¯À» Çã¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. EMPLOYEE
¹× DEPARTMENT »óÈ£ ÂüÁ¶ Å×À̺íÀ» °í·ÁÇϽʽÿÀ.
´ÙÀ½ ¿¬¼ÓÀº À¯Çü ¹× Å×À̺íÀÌ ÀÛ¼ºµÇµµ·Ï ÇÕ´Ï´Ù.
CREATE TYPE DEPT ...
CREATE TYPE EMP ... (À¯Çü REF(DEPT)ÀÇ DEPTREF ¼Ó¼º Æ÷ÇÔ)
ALTER TYPE DEPT ADD ATTRIBUTE MANAGER REF(EMP)
CREATE TABLE DEPARTMENT OF DEPT ...
CREATE TABLE EMPLOYEE OF EMP (DEPTREF WITH OPTIONS SCOPE DEPARTMENT)
ALTER TABLE DEPARTMENT ALTER COLUMN MANAGER ADD SCOPE EMPLOYEE
´ÙÀ½ ¿¬¼ÓÀº À̵é Å×ÀÌºí ¹× À¯ÇüÀÌ »èÁ¦µÇµµ·Ï ÇÕ´Ï´Ù.
DROP TABLE EMPLOYEE (DEPARTMENTÀÇ MANAGER Ä÷³ÀÇ ¿µ¿ª ÁöÁ¤ÀÌ Ãë¼ÒµÇ¾ú½À´Ï´Ù)
DROP TABLE DEPARTMENT
ALTER TYPE DEPT DROP ATTRIBUTE MANAGER
DROP TYPE EMP
DROP TYPE DEPT
¿¹ 2: ALTER TYPE¹®À» »ç¿ëÇÏ¿©
ºÎ¼Ó À¯ÇüÀ» ÂüÁ¶ÇÏ´Â ¼Ó¼ºÀ» °¡Áø À¯ÇüÀ» ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
CREATE TYPE EMP ...
CREATE TYPE MGR UNDER EMP ...
ALTER TYPE EMP ADD ATTRIBUTE MANAGER REF(MGR)
¿¹ 3:
ALTER TYPE¹®À» »ç¿ëÇÏ¿© ¼Ó¼ºÀ» Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.
´ÙÀ½ ¸í·É¹®Àº SPECIAL ¼Ó¼ºÀ» EMP À¯Çü¿¡ Ãß°¡ÇÕ´Ï´Ù. ¿ø·¡ÀÇ
CREATE TYPE¹®¿¡ ÀζóÀÎ ±æÀ̰¡ ÁöÁ¤µÇÁö ¾Ê¾ÒÀ¸¹Ç·Î, DB2´Â 13À» ´õÇÏ¿© ÀζóÀÎ ±æÀ̸¦
´Ù½Ã °è»êÇÕ´Ï´Ù(»õ ¼Ó¼º¿¡ ´ëÇÑ 10 ¹ÙÀÌÆ® + ¼Ó¼º ±æÀÌ + 2
LOB ÀÌ¿Ü ¼Ó¼º¿¡ ´ëÇÑ 2 ¹ÙÀÌÆ®).
ALTER TYPE EMP ...
ADD ATTRIBUTE SPECIAL CHAR(1)
¿¹ 4
ALTER TYPE¹®À» »ç¿ëÇÏ¿© À¯Çü°ú ¿¬°üµÇ´Â ¸Þ¼Òµå¸¦ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.
´ÙÀ½ ¸í·É¹®Àº BONUS¶ó°í ÇÏ´Â ¸Þ¼Òµå¸¦ Ãß°¡ÇÕ´Ï´Ù.
ALTER TYPE EMP ...
ADD METHOD BONUS (RATE DOUBLE)
RETURNS INTEGER
LANGUAGE SQL
CONTAINS SQL
NO EXTERNAL ACTION
DETERMINISTIC
BONUS ¸Þ¼Òµå´Â CREATE METHOD¹®À» ¹ßÇàÇÏ¿© ¸Þ¼Òµå ³»¿ëÀ» ÀÛ¼ºÇÒ ¶§±îÁö »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
À¯Çü EMP¿¡ SALARY¶ó°í ÇÏ´Â ¼Ó¼ºÀÌ Æ÷ÇԵǾî ÀÖ´Ù°í °¡Á¤ÇÒ °æ¿ì, ´ÙÀ½Àº
¸Þ¼Òµå ³»¿ë Á¤ÀÇÀÇ ¿¹ÀÔ´Ï´Ù.
CREATE METHOD BONUS(RATE DOUBLE) FOR EMP
RETURN CAST(SELF.SALARY * RATE AS INTEGER)
ÀÌ ¸í·É¹®¿¡ ´ëÇØ¼´Â CREATE METHOD¿¡¼ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.
[ ÆäÀÌÁöÀÇ ¸Ç À§ | ÀÌÀü ÆäÀÌÁö | ´ÙÀ½ ÆäÀÌÁö | ¸ñÂ÷ | »öÀÎ ]