티스토리 뷰

반응형

앞에서 정의한 내용을 바탕으로, 모델링을 순차적으로 진행해보겠다!


먼저 이 장에서 하게 될 엔티티와 속성을 정하는 과정은

가장 쉽지만 추상적이고 딱히 답이 없는..? 그런 과정이 되겠다.


하지만 여기서 정의하는게 개인적으로는 중요하고 또 중요하다고 생각한다.

여기서 이름 하나를 잘못 지어 놓으면, 속성을 정하거나 이후에 관계맺기를 할 때마다 헷갈리기 때문이다.

프로그래밍할 때 언제나 변수명 정하느라 멍 때리며 시간 보내는 나에겐 중요한 작업이당.


예제로 '수강관리 시스템'의 DB를 설계해보장! 

1. 엔티티 식별하기

우리가 다루는 정보들이 무엇인지 정의한다.

시스템에서 다룰 데이터들의 집합을 정의하는거라고 한다.

여기서 정해진 엔티티들은 DB에서 어떻게 사용되냐 하면, 각각 하나의 테이블을 이룬다.

그러니까 앞으로  '엔티티 = 테이블' <- 요런 공식을 적용해도 무방하겠다.


이렇게 말로만 보면 무슨말인지 모르겠으니 예를들어보자.
수강관리 시스템에서 우리가 다룰 정보들을 나열하면 교실, 강의, 과목, 강사, 학생, 매니저(한 강의에 대해서 관리하는 사람) 등이 있다.


요렇게.


참고로 앞장에서 말했듯, 저건 eXERD라는 툴을 이용했다.
Eclipse에다가 eXERD플러그 인을 설치해서 사용한건데 디비 모델링할때 유용하다.


여하튼.


엔티티를 정의하는 데에 있어서 중요한 것은, 고객이 원하는 정보가 무엇인지를 명확히 알아야 한다는 것이다.

엔티티 뿐만아니라 모델링하는 과정에서 이런 디비시스템을 의뢰한 고객과 자주 소통하며 어떤 시스템을 원하는지를 명확하게 알고, 서로 같은 그림을 그려야 이후에 고생하지 않는다.

따라서 이 과정에는 고객이 반드시 개입되어야 한다(고 한다).


2. 엔티티의 속성 식별하기

각 엔티티에 필요한 정보들을 정의한다.

엔티티를 정의한 후에는 속성을 정의하는데, 요 속성들은 테이블을 구성하는 값에 대응된다.

테이블의 '속성(attribute) = 컬럼(column)' <- 요렇게 알고 있으면 된다.


'강의'라는 엔티티의 속성에는 강의명, 내용, 시작일, 종료일 등의 정보가 정의될 수 있는데, 요놈들이 테이블에 들어 있는 컬럼들을 이룬다는 뜻이다.


요렇게.


엔티티명을 잘 지어야 속성에 어떤 값이 들어갈지 명확해지고, 중복되는 의미의 엔티티를 지어놓으면 컬럼을 만들때 산으로 간다.

그러니까 엔티티, 속성 정하는 과정을 너무 우습게 보면 큰 코 다친다는 말씀이다.



이런 식으로 각각의 엔티티에 대하여 모두 컬럼을 지정해주면 끄읓-이 난다.




반응형
댓글
댓글쓰기 폼