데이터 전문가 지식포털 DBGuide.net

  • 로그인
  • 회원가입
  • IT용어사전
  • 사이트맵

D가이드

  • DA
  • SQL
  • 데이터실무
  • DB보안
  • DBMS
    • Tibero
    • Altibase
    • Cubrid
    • Oracle
    • MS-SQL
    • DB2
    • Sybase
    • Informix
    • MySQL
  • 기타
  • 산출물

D라운지

  • 전문가칼럼
  • 기술자료
  • 시장동향
  • 뉴스클리핑
  • Case Study
  • 세미나 자료
    • 주제별 보기
    • 행사별 보기
  • 리포트
  • 제품홍보관

D스토리

  • 데이터이야기
  • DB Q&A
  • DB 노하우
  • DB 튜닝서비스
  • 데이터 직무소개
  • 데이터 인터뷰

빅데이터아카데미

빅데이터 청년인재

사이버교육

  • 전체교육
  • (빅)데이터
  • 데이터아키텍처
  • 프로젝트관리
  • Oracle
  • MS-SQL Server
  • 대용량 DB
  • OS
  • Tool
  • JAVA
  • Cubrid
  • DB동향
  • Tibero
  • (자격검정)SQL과정

데이터 자격시험

  • 시험안내
    • 국가공인 데이터아키텍처전문가
    • 데이터아키텍처준전문가
    • 국가공인 SQL전문가
    • 국가공인 SQL개발자
    • 국가공인 데이터분석전문가
    • 국가공인 데이터분석준전문가
  • 시험일정
  • 시험접수
    • 접수안내
    • 접수신청
    • 접수조회/수정
    • 접수확인서 출력
    • 환불신청
    • 수험표출력
  • 시험결과
    • 시험결과조회
    • 자격증 출력
    • 보수교육
  • 시험교재
    • DA가이드
    • SQL가이드
    • 분석가이드
    • 분석가이드(개정)
  • 자격활용
    • 기업우대    
    • 공공우대
    • 대학우대
  • 고객센터
    • 공지사항
    • 자료실
    • 자주하는질문
    • 자격불편신고

기술자료

HomeD라운지기술자료rss

지식라이브러리

  • 전문가칼럼
  • 기술자료
  • 시장동향
  • 뉴스클리핑
  • Case Study
  • 세미나 자료
    • 주제별보기
    • 행사별보기
  • 리포트
  • 제품 홍보관
    • 제품 콘텐츠관
    • 제품 상세검색


Etc

지식라이브러리 : 전문가 칼럼
전문가칼럼 보기
원문을 보시려면 로그인 하셔야 합니다. 로그인
추천 : 0회 추천하기
tf
제목 정규화와 응집도에 대한 고찰
분류 Etc 조회수 4324
작성일자 2016.09.26 출처 엔코아
첨부파일 작성자 dbguide

정규화와 응집도에 대한 고찰



생짜배기 컴맹이었던 필자가 본의 아니게 IT에 관련된 일을 시작하여 이제는 누가 봐도 IT인이 되었고, 그러면서 이것저것 IT 이론들에 대해서도 주워들은 것도 조금 생기게 되었다. 그래 봤자 High-End 급의 이론들은 아니고, Classic한 것이 대부분이지만 말이다. 하지만 이러한 이론들도 모이고 모이다 보니 그 중 몇몇 개에 대해서는 재미있는 성향을 발견하곤 한다. 그 중에 하나를 오늘 소개해 드릴까 하는데, 바로 정규화(Normalization)와 응집도(Cohesion)에 대한 이야기이다.

'정규화'는 데이터베이스 모델링 이론 중 가장 기초적인 이론! '응집도' 역시 소프트웨어 공학 내용 중 거의 앞부분에 나오는 고전적인 이론이다. 사실 정규화와 응집도에 대한 이론을 잘 알고 계신 분들은 공감하시겠지만, 이 두 가지 이론을 얘기하다 보면 사용하는 단어만 달랐지, 그 내용은 거의 동일하다는 느낌을 받게 된다. 그럼 먼저 Novice 단계의 분들을 위해 두 이론을 되짚어 보며, 공통점을 찾아 보도록 하자.



1. 정규화

정규화(Normalization)란 관계형 데이터베이스의 설계에서 데이터의 중복을 최소화하도록 데이터를 구조화하는 프로세스를 말한다(위키백과 참조). 이렇게 얘기하면 잘 와닿지 않는 부분도 있으니 예를 한 번 들어 보겠다.



이런 식으로 DB 테이블을 만든다면 아래와 같은 상황이 생긴다.

1) '홍길동' 학생이 이번에 DAP 자격증을 취득하였다면 해당 테이블에 DAP 관련된 정보(자격증, 자격증번호, 취득일)외에도 '홍길동' 학생의 정보(이름, 주소, 핸드폰번호)를 불필요하게 같이 넣어줘야 한다 (삽입이상 : Insertion Anomaly).

2) '강감찬' 학생의 OCP 자격증 정보가 잘못 입력되어서 자격증 정보를 삭제해야 한다면 자격증 정보뿐만 아니라 '강감찬' 학생 정보도 같이 같이 삭제된다(삭제이상 : Deletion Anomaly).

어찌 보면 독립적으로 다뤄져야 할 정보들(학생, 자격증)을 한 테이블에 섞어 놓았을 때 생기는 현상인데, 이 문제를 해결하기 위해선 다음과 같이 테이블을 나눠야 한다.



이런 식으로 데이터의 삽입, 삭제, 변경 시 이상(Anomaly)현상을 해결해서 데이터의 중복을 배제하고 정합성을 지키자는 것이 정규화 이론의 목표라 할 수 있겠다(샘플 참조: http://force44.blog.me/130100972038).



2. 응집도

응집도 (cohesion)란 프로그램의 한 모듈이 해당 기능을 수행하기 위해 얼마만큼의 연관된 책임과 아이디어가 뭉쳐있는지를 나타내는 정도이다(정의 참조 : http://lazineer.tistory.com/93). 예를 들면 평균을 계산하는 프로그램 모듈을 만들었으면, 그 내용이 평균을 내기 위한 코딩 내용으로 채워져 있어야 하는 것은 당연한 것이고, 표준 편차나 분산(Varience)을 구하는 코딩 내용이 섞여져 있으면 응집도가 떨어진다는 내용이다. 즉, 한 프로그램 모듈 내에 이것 저것 비즈니스 기능들이 섞여져 있다면 해당 모듈은 이해하기 힘들고 재사용 및 유지·보수가 어려워지게 되며, 관련된 다른 모듈의 변화에 민감할 수 밖에 없다는 이론이다.

자, 이렇게 두 가지 이론을 함께 두고 보니 어디선가 공통점이 느껴지지 않는가? 독립할 수 있는 정 ....

지식라이브러리 : 전문가 칼럼 : 덧글보기
전문가 칼럼게시글에 대한 덧글
덧글내용 날짜 작성자 삭제여부
이전, 다음 게시물 목록
이전글 네트워크 분석의 이론과 적용 사례
다음글 엑셀보다 쉬운 SAS 엔터프라이즈 가이드
스크랩목록
사이버교육02)3708-5391
빅데이터아카데미02)3708-5393
자격시험02)3708-5415
청년인재02)3708-5394

DBGuide.net 데이터 전문가 지식포털

  • 개인정보보호정책
  • 관련사이트
  • 콘텐츠 불법 사용 규제
  • 이메일무단수집거부
  • Contact Us
  • rss

서울시 중구 세종대로9길 42 부영빌딩 8층 한국데이터산업진흥원 | 사업자등록번호 : 102-82-08963 | 통신판매번호 : 2013-서울종로-0591 | 대표자명 : 민기영

Copyright ⓒ KOREA Data Agency. All rights reserved.