본문 바로가기
소프트웨어 공학

데이터 모델의 구성요소 : 개체, 속성, 관계

by iwuooh 2021. 11. 19.

개체(Entity)의 정의 및 특징

개체는 데이터베이스에 표현하고자 하는 것으로 생각하는 개념이나 정보 단위 같은 대상을 일컫는다. 현실 세계에 존재하는 것으로 유형일 수도, 무형일 수도 있는 정보로서 서로 연관된 속성들로 구성된다. 독립적으로 존재하고 그 자체로서도 구별할 수 있고 유일한 식별자(Unique Identifier)에 의해서도 식별할 수 있다. 영구적(Persistence)으로 존재하고 다른 개체와 하나 이상의 관계(Relationship)를 맺으며 정보를 제공하는 역할을 수행한다. 업무 프로세스에 의해 이용된다. 개체는 세 가지 요소로 구성되는데, 개체가 가진 특성인 속성, 속성으로만 기술된 개체의 정의인 개체 타입, 개체를 구성하고 있는 각 속성이 값을 가지며 하나의 개체를 나타내는 개체 인스턴스가 바로 그것이다. 개체 인스턴스의 집합을 개체 세트라고도 한다. 개체를 선정하는 방법도 여러 가지가 있는데, 프로젝트 분석에 관한 내용이 구체적으로 명시된 업무 기술서를 사용하거나 실무를 담당하고 있는 담당자와의 면담을 통해서 개체를 선정할 수 있다. 또한 실제 업무를 견학할 수도 있다. 자료 흐름도(DFD)를 통해서 해당 프로젝트의 분석을 수행했을 때는 자료 흐름도의 자료 저장소(Data Store)인 데이터베이스를 이용한다. 개체를 선정한 후 개체명을 지정할 때는 되도록 단수명사를 사용하고 약어 사용은 제한한다. 해당 업무에서 실제로 사용하는 용어를 이용하는 것이 좋고, 개체명은 중복되지 않고 유일해야 한다.

속성(Attribute)의 정의 및 특징

속성은 데이터베이스를 구성하는 가장 작은 논리적 단위라 할 수 있다. 파일 구조상에서는 데이터 항목에 해당한다. 개체에서 알아봤듯이, 속성은 개체를 구성함으로써 개체의 특성을 기술한다. 속성의 특성에 따라서 3가지로 분류할 수 있는데 기본 속성(Basic Attribute), 설계 속성(Designed Attribute), 파생 속성(Derived Attribute)이 있다. 기본 속성은 업무 분석을 통해 정의한 것으로 속성 중에 가장 많고 일반적이다. 설게 속성은 업무상 존재하는 것이 아니라 설계 과정에서 도출해내는 속성이다. 파생 속성은 다른 속성으로부터 파생된 속성을 말한다. 계산이나 변형 등의 영향을 받아서 발생하는데 되도록 적게 정의하는 것이 바람직하다. 속성으로 지정할 때는 후보군을 최대한 크게 잡는 것이 좋은데, 원시(Source) 속성은 제하지 않고, 작은 단위로 후보군을 만들고 가장 가까운 개체에 할당하는 것이 일반적이다. 이렇게 지정한 속성의 속성명은 웹이나 클라이언트-서버 환경 등 어떤 상황에서든 사용자 인터페이스에 나타나기 때문에 명확하게 명시하여 혼란이 생기지 않도록 해야 한다. 따라서 개체명은 속성명으로 사용할 수 없으며 개체에서 유일하게 식별되도록 정해야 한다.

관계(Relationship)의 정의 및 특징

관계는 개체와 개체 간 또는 속성과 속성 간의 논리적인 연결을 의미한다. 관계의 형태에 따라 일 대 일(1:1) 관계, 일 대 다(1:N) 관계, 다 대 다(N:N) 관계가 있다. 일 대 일 관계는 한 개체의 원소가 다른 개체 원소 한 개와 대응하는 것을 말한다. 일 대 다 관계는 한 개체의 원소가 다른 개체의 여러 원소와 대응하는 것을, 다 대 다 관계는 한 개체의 여러 원소가 다른 개체의 여러 원소와 대응하는 것을 의미한다. 처리해야 할 업무의 형태에 따라 종속관계(Dependent Relationship), 중복 관계(Redundant Relationship), 재귀 관계(Recursive Relationship), 배타 관계(Exclusive Relationship) 등이 있다. 종속 관계는 두 개체 사이의 주, 종 관계를 표현하며 식별 관계와 비식별 관계로 다시 한번 나누어진다. 중복 관계는 두 개체 사이에 주번 이상의 종속 관계가 발생하는 관계이다. 재귀 관계는 개체가 자기 자신과 관계를 맺는 것으로 순환 관계라고도 한다. 배타 관계는 개체의 속성을 기준으로 개체의 특성을 분할하는 관계를 말한다.

댓글