[질문]
홈페이지를 제작 중인데
DB를 짜려고 합니다.
통DB로 짜는게 쉽다는 말을 들어서
찾아보는데 무슨 말인지 영 감이 안옵니다.
통DB란 무엇인가요??
[답변]
안녕하세요. IT전문 컨설턴트입니다.
통DB라...^^
일반적으로 DB를 설계할때 정규화 기법을 활용하여 DB를 설계합니다.
정규화 기법의 경우, DB의 예상량과 추후 확장성, select의 빈도 등을 고려해서 설계를 하는것이 일반적입니다.
통DB라 하는 용어는 이런 정규화 방식을 거치지 않은 DB구성 방식을 의미합니다.
반대로 생각해 보면, 정규화가 가질수 있는 장점을 포기한 상태로 1~2개의 테이블로만 구성한다고 생각하면 이해하기 쉬울듯 합니다.
예를 들어서 생각해 본다면,
한 여행사에서 여행상품을 판매를 하고 있습니다. 제주도로 가는 여행상품을 파는데,
여행지 / 금액 / 비행편 / 인원 / 주소 / 예약자 등을 DB로 구성해 본다고 가정해 봅니다.
이때
북제주 / 200,000 / 대한항공 / 2명 / 서울시 마포구 연남동 / 홍길동
남제주 / 250,000 / 아시아나 / 3명 / 서울시 강남구 삼성동 / 김미미
서제주 / 200,000 / 대한항공 / 2명 / 서울시 마포구 연남동 / 홍길동
이런 방식으로 DB에 내용이 들어갈 수 있습니다.
여기서 대한항공과 아시아나 항공을 DB의 효율성 및 편의상 1:대한항공, 2:아시아나 항공으로 대치를 해서 DB에 넣고, 제주도에 해당하는 북제주:J1, 남제주 : J2, 서제주 : J3 형식으로 DB에 넣어 보겠습니다.
J1 / 200,000 / 1 / 2명
J2 / 250,000 / 2 / 3명
J3 / 200,000 / 1 / 2명
훨씬 DB가 효율적으로 운영됨을 볼수가 있습니다.
문제는 주소와 이름의 필드가 중복적으로 사용됨을 알수가 있습니다.
여기에 홍길동이란 회원이 주소를 변경하게 된다면, DB의 전체 내용에서 무결성이 깨어질수 밖에 없습니다.
이때. 정규화 기법을 사용한다면.. 회원 Table과 여행상품 Table을 분리(정규화)를 시킬수가 있습니다.
위의 간단히 줄인 DB와
회원 Table
1/서울시 마포구 연남동 / 홍길동
2/서울시 강남구 삼성동 / 김미미
주문 Table
J1 / 200,000 / 1 / 2 /1
J2 / 250,000 / 2 / 3 / 2
J3 / 200,000 / 1 / 2 /1
이렇게 효율적으로 바뀔수가 있습니다.
대신 개발적인 측면에서 주문Table과 회원Table을 Join해서 보여줘야 하기 때문에 난이도가 올라가겠죠..^^
그래서 통 DB가 개발이 쉽다는 표현이 나올수가 있습니다.
하지만, DB가 수십만건이 넘어간다고 할때.. 문제가 심각해질수 밖에 없겠죠.
인터넷사이트를 사용하다가 게시판이 갑자기 느려진다 생각이 든다면, 정규화를 사용하지 않고 통DB로 개발된 환경일 가능성이 가장 높습니다..
정규화와 관련된 부분은 DB관련 서적이나 인터넷상에도 많은 자료들이 있습니다. 참고하신다면 도움이 되실듯 합니다.
'ToTb Story > ToTb 네이버지식 Story' 카테고리의 다른 글
취업컨설팅 사이트 제작 견적은 어느정도..? (0) | 2009.10.06 |
---|---|
경매 회사 형식의 홈피를 제작 하려고 합니다. (0) | 2009.10.06 |
몰인몰이나 미니샵 기능의 솔류션이나 쇼핑몰 관련 문의 (0) | 2009.09.28 |
Microsoft OLE DB Provider for SQL Server 오류 어떻게 해결 하나요? (0) | 2009.09.17 |
ERP를 구축하려고 하는데 파워빌더 기반으로 만들떄의 장단점이 매우 궁금합니다. (0) | 2009.09.04 |
홈페이지 제작시 회원관리는? (0) | 2009.09.04 |
현수막 쇼핑몰을 만들려고 합니다. (0) | 2009.08.28 |
홈페이지 유지보수 관리 비용 적절한지... (0) | 2009.08.28 |
웹에서 PDF 파일을 볼 수 있게하려면.. (0) | 2009.08.28 |
me2DAY의 효용성 (0) | 2009.08.27 |
최근댓글