안녕하세요.
2cpu에 디비 관련 질문을 해도 되는지 모르겠습니다.
그러나 다른 커뮤니티들에 비해 이곳이 전문가 분들이 더 많이 계시는 것 같아서 질문을 남겨봅니다.
예전에 제가 대학교 다닐 때에는 디비 수업 시간에 정말 어쩔 수 없는 경우가 아니라면 null 값은 피해야 한다고 배웠습니다.
그리고 대부분의 null 값은 테이블 정규화를 통해서 없애는 것도 배웠고요... (물론 지금은 찾아보면서 해야합니다.)
그러다가 비교적 최근에 회사(작은 회사입니다...)에서 디비 테이블을 봐야 할 일이 있어서 디비 담당자분께 요청해서 디비 테이블을 봤습니다.
테이블이 여러개 있었는데 테이블마다 null 값이 제법 자주 들어있었네요.
그 때 그 때마다 추가로 필요한 속성 값이 있으면 개의치 않고 테이블에 컬럼을 추가하는 것 같았습니다.
별로 정규화를 시킨 것 같지도 않았고요... (사용하는 디비가 관계형이었습니다.)
이래도 되냐는 제 물음에 담당자들은 물론 다른 직원들도 별 문제 없지 않냐는 식으로 시큰둥한 반응이었네요.
여기서 궁금증이 생겼습니다.
학교에서 배운 것은 말 그대로 그냥 학교에서 배운 것일 뿐, 실제 현업에서는 테이블 정규화는 별로 개의치 않고 사용하는 경우가 잦은 편인가요?
요즘에는 추세가 굳이 관계형에서도 정규화를 하지 않고 쓰는 것인지 어떤 것인지 궁금합니다...
- ³× ÀϺδ ¸Â½À´Ï´Ù.
DBA°¡ ¾ø´Â °æ¿ì·Î °³¹ßµÇ´Â °æ¿ìµµ ¸¹°í, °³¹ß, °³¼±ÀÌ °è¼Ó ÁøÇàµÇ¸é¼ º¯°æ »çÇ×ÀÌ ¸¹±â ¶§¹®¿¡
(µµ¸ÞÀÎ ºÐ¼®ÀÌ À߸ø µÇ´Â °æ¿ì, Çö¾÷ÀÇ ¼öÁØ°ú °³¹ßÀÚ°¡ ¾ÆÁ÷ ¾÷¹« Æľǿ¡ ¹Ì¼÷ÇÑ °æ¿ì, »ç¾÷ ¹× ¾÷¹«°¡ °è¼Ó º¯°æµÇ´Â °æ¿ì µîµî)
NULL °ªÀ» Æ÷ÇÔÇϰųª Çʵ尪À» ¿©À¯ ÀÖ°Ô ¸¸µé¾î µÎ°í »ç¿ëÇÕ´Ï´Ù.
¿î¿µÁß¿¡ DB Çʵ带 Ãß°¡ÇÏ´Â°Ô ´õ ¸®½ºÅ© ÇÕ´Ï´Ù.
Àú´Â Á¤±ÔÈ µÇ¸é ¸¹Àº ÀÌÁ¡ÀÌ ÀÖ´Ù°í º¾´Ï´Ù.
±×·±µ¥ ÇÁ·Î±×·¥ ÇÏ´Â ÀÔÀå¿¡¼´Â ºÒÆíÇÑ JoinµîÀ» ÇؾßÇؼ ½È¾î ÇÕ´Ï´Ù.
Á¶Á÷¿¡ DA°¡ ÀÖ´Â °æ¿ìµµ Àû°í
ÇÁ·ÎÁ§Æ®°¡ ½ÃÀÏÀÌ Ã˹ÚÇÏ°Ô ÁøÇàµÇ¾î
Ç¥ÁØÀÌ ¹«½ÃµÇ´Â °æ¿ìµµ ¸¹¾Æ¼ ±×·¸½À´Ï´Ù.
ÃÖÃÊ °³¹ß½Ã Á¤±ÔÈ´Â ÇʼöÁö¸¸ À¯Áöº¸¼öÁß¿£ ¿Ø¸¸Çϸé Ãß°¡·Î Á¤±ÔÈ ÇÏÁø ¾Ê³×¿ä.
NULLÀº ÇÇÇØ¾ß ÇÏÁö¸¸ ÁÖ·Î ¼Ò½º¿¡¼ ÇØ°áÇÕ´Ï´Ù.
ÀÌÀ¯´Â NULL °ú ¹®ÀÚ¿ Á¶ÇÕ°ú ¿¬»êÀÌ ºÒ°¡´ÉÇÏ°í ¹®ÀÚ¸¦ ´Ù·ç´Â ÇÔ¼ö¿¡¼ ¿¡·¯°¡ ³ª´Â°ÍÀÌ ÁÖ¿ä ÀÌÀ¯Àä.
±×·±µ¥ DB¿¡¼ °¡Á®¿À´Â ¸ðµç ºÎºÐ¿¡ NULLÀ» ºí·©Å©·Î º¯È¯Çؼ º¯¼ö¿¡ ´ã´Â ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é ¹®Á¦°¡ »ç¶óÁ®¼ ÀÚ¿¬½º·¹ DB¿¡¼± ÇÇÇÒ ÇÊ¿ä°¡ ¾ø°Ô µÇ³×¿ä.
NULLÀÌ ¸¹À¸¸é DB ¼º´ÉÀÌ ³·¾ÆÁø´ÙÁö¸¸ »ç½Ç °¡·Î ÆøÀÌ ´Ã¾î³¯ ¼ö·Ï ¼Óµµ°¡ ¸¹ÀÌ ´À·ÁÁý´Ï´Ù.
±×·¡¼ NULLÀ» Á¦°ÅÇÏ¸é¼ °¡·Î ÆøÀ» ÁÙÀÌ·Á´Â °ÍÀε¥ ¿©·¯ ¼Ò½º¿¡¼ ÇØ´ç Ä÷³À» È£ÃâÇÏ´Â »óȲ¿¡ À̸¦ ÀÏÀÏÀÌ º¯°æÇÏ´Â ¾÷¹«·®ÀÌ ³Ê¹«³ª ¸¹¾Æ¼ Ä÷³À» ´Ã¸®´Â °ÍÀ¸·Î ³¡³À´Ï´Ù.
±³ÁýÇÕ°ú ÇÕÁýÇÕÀÇ °ü°è¿¡¼ ¹Ýº¹À» Á¦°ÅÇÏ¸é¼ °øÅë°ªÀ¸·Î(Å°) ¿¬°áÇϴ°ÍÀÌ ÇʼöÁö¸¸ ³Ê¹« ºó¹øÇÏ°Ô Join ÇÏ¸é ±×³É 1°³ Å×À̺í·Î ÇÕÄ¡´Â°Íµµ ÀÚÁÖ ÇÕ´Ï´Ù.
°á±¹ ¼Óµµ°¡ ´õ ºü¸£±âµµ Çؼ¿ä.
°³¹ßÀÚ PC¿¡¼ ¿©·¯¹ø Å×½ºÆ®ÇÏ´Â ¼Óµµ´Â ¹«ÀǹÌÇÕ´Ï´Ù. ÀÌ¹Ì DBij½Ã¿¡ µé¾î°¡ ¹ö·Á¼¿ä.
¿©·¯ À¯ÀúµéÀÌ ¿©·¯ ·¹Äڵ带 È£Ãâ°ú Á¶ÀÎÇÏ´Â »óȲ¿¡¼ ÇÁ·ÎÆÄÀÏ·¯·Î ÁöÄѺ¸¸ç Æ©´×ÇÏ¸é °á±¹¿£ 1°³ Å×À̺íÀÌ ºü¸¦¶§µµ Á¾Á¾ ÀÖ½À´Ï´Ù.
1-3Â÷ Á¤±ÔÈ¿¡ BCNF ±îÁö Çصµ ±Ã±ØÀûÀ¸·Ð ¼Óµµ¿Í ¾ÈÁ¤¼ºÀ» À§ÇÑ °ÍÀε¥ ¿äÁò¿£ ¼µåÆÄƼ ¶óÀÌºí·¯¸®°¡ ¸¹ÀÌ µµ¿ÍÁ༠DB´Â ´Ü¼øÈ ÇÏ´Â°Ô À¯ÇàÀÌ´õ¶ó±¸¿ä.
±×·¡µµ Àú´Â ²à²àÀÌ Á¶Àΰú ±×·ì¹ÙÀ̸¦ ¸¹ÀÌ »ç¿ëÇÕ´Ï´Ù. Æò»ó½Ã¿£ ¸ð¸£Áö¸¸ »ç°í ÅÍÁö¸é ¿øÀΠã´Â°Í°ú º¹±¸°¡ ÈξÀ ¼ö¿ùÇϴϱî¿ä.
½Ç¹«¿¡¼ DB´Â ´ëºÎºÐ PK¿Í FK °ü°è¸¦ ¸Î°ÔµË´Ï´Ù. Áï °ü°è¸¦ ¸Î´Â PK´Â nullÀÌ Á¸ÀçÇÏ¸é ¾ÈµÇ´Â°Çµ¥(µ¥ÀÌÅÍ Á¤ÇÕ¼ºÀ§¹Ý) ¾Æ¸¶ À§ ¼³¸íÀ» µÞ¹Þħ ÇØÁÖ°í ÀÖ½À´Ï´Ù.
nullÀº ¾ø¾îµµ Å©°Ô ¼º´É»óÀ̳ª ±âŸ ¹®Á¦°¡ µÇÁö´Â ¾ÊÀ¸³ª °ü°èÇüÀ϶§´Â ¹Ýµå½Ã ÇʼöÁ¶°ÇÀ» ¸¸Á·ÇØ¾ß µË´Ï´Ù.
Èì Çб³´Ù´Ò¶§ Àß °¡¸£ÄÑÁØ°Å °°³×¿ä.