언어 선택
durumis AI가 요약한 글
- 개념적 데이터 모델링은 엔티티와 속성을 정의하고, 엔티티 간의 관계를 ERD로 표현하여 데이터를 논리적으로 구성하는 과정입니다.
- 엔티티는 독립적인 데이터 저장 단위이며, 속성은 엔티티가 가진 데이터를 의미하며, 관계는 엔티티 간의 상호작용을 나타냅니다.
- 데이터베이스 설계에서 사용되는 기본 키, 외래 키, 카디널리티, 옵셔널리티 등의 개념을 통해 데이터 모델링을 체계적으로 수행할 수 있습니다.
개념적 데이터 모델링은 연관된 정보를 엔티티 단위로 분리하고, 엔티티간의 관계를 ERD로 표현 하는 과정이다.
엔티티 분리와 속성 정의
엔티티란, 실재하고 독립적이면서 데이터들을 저장할 수 있는 어떤 것을 의미한다.
또, 속성이란 엔티티가 가지고 있는 데이터를 의미한다.
예를 들어 학교의 선생님과 학생은 위의 조건을 만족한다.
여기서 선생님은 이름, 나이, 과목등의 데이터를 포함 하고 있는 엔티티이고 학생 또한 이름, 학년, 나이, 학번등의 데이터를 포함하고 있는 엔티티다.
여기서 분리된 엔티티는 논리적 데이터 모델링 과정에서 관계형 데이터베이스의 테이블이 되고 속성들은 그 테이블의 컬럼이 된다.
식별자와 키
한국은 주민등록번호 제도를 통해서, 각각의 국민을 고유하게 식별하고 있다.
이 때, 주민의 주민등록번호는 이 사람이 누구인지 식별할 수 있게 하는 식별자다.
주민등록번호는 특정인을 고유하게 식별할 수 있도록 하는 것이므로, 다른 사람과는 중복되지 않는다.
ERD로 엔티티를 표현할 때도, 식별자를 지정하여 고유하게 해당 정보를 확인할 수 있도록 해야한다.
여기서 지정된 식별자는 논리적 데이터 모델링 과정에서 기본 키(Primary Key)가 된다.
만약 자연스럽게 식별자로 지정할만한 고유한 속성이 존재하지 않는다면, 인조 키(Artificial Key)를 사용한다.
하지만 모든 상황에서 인조적으로 생성된 키는 변경될 위험이 없어 보편적으로 사용된다.
엔티티에서 식별자로 사용이 될 수도 있는 속성들을 모두 후보 키(Candidate Key)라고 부르며
기본 키를 제외하고 그 외에 식별자로 사용할 수 있는 속성들을 대체 키(Alternate Key)라고 한다.
그리고 이 대체 키들은, 성능 향상을 위해 인덱스를 걸기에 좋다.
이 외에 부서와 사원간의 소속을 의미하는 엔티티에서는 부서 번호와 사원 번호를 함께 키로 사용하는 경우가 있다. 이는 중복 키(Composite Key)라고 한다.
관계 파악
관계란 엔티티간의 상호 작용을 의미하며, 관계는 존재에 의한 관계와 행위에 의한 관계로 나뉜다.
- 존재에 의한 관계
회사를 예를 들면, 사원은 부서가 존재하지 않으면 있을 수 없으므로 존재에 의한 관계다.
- 행위에 의한 관계
사원은 신청을 통해 부서를 옮길 수 있다. 이 때는 행위에 의한 관계다.
이 관계는 논리적 데이터 모델링 과정에서 외래 키(Foreign Key), 결합(Join)등으로 표현 된다.
카디널리티(Cardinality)
하나의 엔티티와 다른 엔티티의 관계를 카디널리티라고 한다. 이는 서로간에 수적 관계를 표현한다.
이는 각 엔티티끼리의 1:1관계(일대일), 1:N관계(일대다), N:M(다대다)관계등으로도 표현 된다.
위 관계중 N:M 관계는 관계형 데이터베이스에서는 표현이 불가능하므로 중간 테이블을 만들어서 표현 한다.
옵셔널리티(Optionality)
댓글 시스템을 예시로, 각 댓글은 반드시 하나의 작성자를 가지고 있지만 작성자의 입장에서는 댓글을 작성하지 않을 수 있다.
위 경우에는 작성자(Mandatory)-댓글(Optional)의 관계를 가진다.
필수는 Mandatory라고 하고, 선택적 옵션은 Optional이라고 한다.
즉 엔티티의 인스턴스가 해당 데이터를 필수적으로 가져야하는지, 선택적으로 가져야하는지를 표현한다.