본문 바로가기
DataBase

데이터 모델링에서 사용하는 기본 개념 1

by izen8 2009. 10. 31.
반응형

데이터 모델링에서 사용하는 기본 개념 1


Entity(엔터티, 개체), Attribute(어트리뷰트, 속성), Key(키)


작성자 : 김문규

최초 작성일 : 2009. 4.14

데 이터 베이스 모델링은 어느 정도의 경험만 있다면 누구나나 할 수 있습니다. 논리 정연하게 열심히 고민하면 이론적인 모든 것들이 자연히 그 결과로 나타내기 때문입니다. 하지만, 이론적인 기반없이 고민하는 경우 시간의 낭비가 심하고 후임자에게 그 논리를 설명해 주기 매우 어렵게 됩니다.
따라서, 공부하셔야죠~. 실전에 들어가기 전에 알아야 할 것들이 있으며 이를 간단하게 확인해 보죠.



1. Entity
데이터모델링의 기본으로 식별 되어야 하는 대상을 의미합니다. 테이블에 해당할 가능성이 매우 높습니다.
인사 시스템을 예로 들면, 사원, 부서... 이런 것들이겠지요.

여기서 주의할 점은 아래와 같습니다. (논리적 모델링을 기준으로...)
. 중복되는 데이터를 없앨 것
  - 중복되는 값이 여기저기 있으면 데이터 정합성이 깨질 가능성은 그만큼 높아집니다.
. 상속의 개념이 필요하다면 적극적으로 활용할 것
  - 중복되는 데이터를 줄이기 위한 방법일 수도 있습니다.
  - 또한 논리적으로도 데이터 구조가 명확해 지기도 합니다.
이 두가지만 주의한다면 추후에 DB의 유지, 보수가 매우 편해지게 됩니다.

또하나, 이름을 지을 때도 주의해야 합니다.
. 단수로 이름을 짓습니다.
. 한번에 알아 먹을 만하게 지어 주세요.
. 그렇다 하더라도 되도록 단순하게..
. 공백 없이 대문자로 통일하세요.
. 두가지 의미를 동시에 사용하지 마세요. (예. 수험생/재수생)
. 인스턴스 이름을 사용하지 마세요. (예. CAR != BMW)
. 축약어는 정해진 룰에 따라서.. (같은 DB내에서 중구난방의 축약어는 정말 으... 보기 싫죠?)

2. Attribute
엔터티를 설명하는 속성들 입니다. 테이블의 컬럼들이 될 가능성이 매우 높은 것들입니다.
관리 할만한 중요성이 있는
최소 의미 단위의 것들을
중복이 일어나지 않도록 선택하시면 됩니다.
이 값은 잠재적으로 Key가 될 수 있는 값들입니다.

3. Key
Key(키)란, 해당 엔터티를 잘 설명해줄 수 있는 중요한 속성입니다.
키의 조건은 아래 정도 입니다.
. 인스턴스를 유일하게 식별할 수 있어야 합니다.
. 널(Null)이 되어서는 안됩니다.
. 자주 변경되지 않는 값이면 좋겠습니다.
. 되도록이면 짧은 값이면 좋겠습니다. (마지막 두개는 해당 키를 인덱스로 사용할 경우에 대비해서 고려되는 조건입니다.)
일단, 키라면, Candidate Key(CK, 후보키)에 해당합니다.

1) Primary Key
Primary Key는 테이블을 대표하는 키값입니다. 이 값만 있다면 어떤 레코드라도 정확하게 꺼낼 수 있습니다.
학생 테이블에서 학번, 국민 테이블에서 주민번호등이 Primary Key로 사용될 수 있습니다. (물론 선택은 모델러에 따라 다를 수 있습니다. 아래에 설명할 인조키가 성능면에서 유리할 수 있기 때문입니다.)

2) Foreign Key
다른 테이블의 Primary Key 이며, 이 값을 참조해야만 하는 경우에 이 참조한 값을 Foreign Key라고 합니다.
예를 들면, 주문 테이블에 (주문자, 구매상품ID...) 있고 상품 테이블에 (상품ID, 상품 가격...) 이 있다고 할 때 상품테이블에서 상품 가격은 PK이고, 주문 테이블에 구매상품ID는 FK가 될 수 있습니다.
Relationship을 설명할 때, 사용되는 개념으로 두 테이블을 연결하는 고리 역할을 하는 키라고 생각하시면 되겠습니다. 


3) Artificial Key
한국말로는 인조키 입니다. 무의식중에 실은 굉장히 많이 쓰고 있습니다. 회원 테이블에서 '회원 번호' 같은 속성을 많이 사용해 보셨다면, 이 값이 바로 인조키에 해당합니다.
인 조키란, 테이블의 UID 후보가 너무 긴 경우에 성능 및 편의상 가짜 키를 하나 추가로 생성해서 사용하는 것을 가리킵니다. 예를들면 주민번호는 유일하지만 PK로 자주 사용하지는 않습니다. 이유는 꽤? 긴편이기 때문에 성능상, 편의상 인조키를 사용하는 것이 유리하기 때문입니다.

4) UID (Unique ID)
테이블을 대표하는 유일한 식별자 입니다.  앞서 Primary Key라는 개념을 설명했습니다. 이것과 같다고 생각하세요.

 

반응형

댓글