Data Modeling
데이터베이스의 모델링은 몇 가지 단계를 거쳐 정형화된 테이블로 구현되고, 각 테이블은 데이터베이스 설계 단계에서 결정된 관계를 통해서 서로 연관성을 갖는다.
따라서 데이터베이스를 설계한다는 것은 사용자의 요구를 분석하고, 요구에 따르는 개념을 정립한 후 논리적인 데이터베이스의 설계에 들어가며, 이를 구체적으로 구현하는 물리적인 설계 단계를 거쳐 완성된다.
또한 데이터베이스의 설계는 프로그램의 개발과 밀접한 관련을 맺으며 완성되어 가기 때문에 각 단계에서 프로그램과의 연관성을 반드시 고려해야 한다.
이를 도식적으로 나타내면 다음과 같다.
1) 사용자의 요구 분석 ( 1단계 )
사용자의 요구를 개념적으로 정립하는 단계로서 실제 업무와 관련된 흐름을 파악하고, 각 업무의 연관성을 정확히 파악해야 한다.
2) 논리적인 설계 ( 2단계 ) - Conceptual Data Modeling
논리적인 설계 또는 개념적인 데이터 모델링이라고 하며, 전산화의 대상인 업무에서 실제 저장하고 관리해야 할 정보가 무엇이지 도식화 해내는 과정이다.
이 과정에서 ER-Diagram이 사용된다.
- ER-Diagram ( Entity-Relationship )
- 구성 요소- Entity : 업무의 대상으로 보관할 필요성이 있는 정보를 의미한다. 이러한 Entity는 보통 명사형으로 나타나고 사물의 범주나 유형이 될 수 있다. Entity는 여러 개의 instance로 구성되며, 그 구체적인 사항들은 Attribute로 나타난다.
- Attribute : Entity에 대한 정보를 기술하는 것으로 Entity를 식별, 확인, 분류, 표현된 상태를 나타낼 수 있는 모든 항목을 의미한다. 이러한 attribute에는 업무에 필수적인 항목 뿐만 아니라 필수적이지 않은 항목도 포함 될 수 있다.
- Relationship : entity 간의 관계를 나타내는 것으로, 업무의 정보 요구 사항을 연결하는 업무 규칙을 의미한다. 따라서 이러한 관계는 반드시 entity 간의 양방향으로 나타난다.
- 관계도 :
- 하나의 Entity는 여러 개의 instance를 가지며, 각각의 instances는 하나의 Entity로 볼 수도 있다.
- Entity 간의 관계를 Relationship 이라 한다.
- Entity의 속성을 정의하고, 상태를 나타내는 역할을 담당하는 것을 Attribute라 한다.
- 관계의 유형 ( Relationship Type )
- 의미 : Entity의 instance간의 관계를 의미한다.
- 종류
M:1 유형 : Many-to-One (예. 고객과 영업사원, 부서와 직원)
M:M 유형 : Many-to-Many (예. 환자와 간호사, 주문과 상품)
1:1 유형 : One-to-One (예. 휠체어와 장애인, 자동차와 운전수) - 주의 사항 : M:M의 관계에서는 두 Entity들로부터 Attribute가 조합되어 나타나는 내용(Relationship 자체의 Attribute)을 어느 Entity에 나타내어야 하는 지가 모호하므로 Design 단계에 들어가지 전에 두 Entity 사이에 또 하나의 Entity를 추가하여 두 개의 M:1 관계로 반드시 전환시켜 주어야 한다.
3) 물리적 설계 ( 3단계 ) - Database Design
물리적 설계 또는 Database Design 이라 하며, 이 단계는 도식화된 정보를 실제 사용할 Table형식으로 Mapping하는 단계로서 앞서의 Entity는 Table로, Attribute는 Column으로 나타난다.
논리적인 설계가 체계적으로 도식화 되었다면 이 단계는 Table 생성시 Data Type, Data의 길이, PK, FK 등을 만들어 주면 된다.