-
1. 엔티티(Entity) 속성(Attribute) 인스턴스(Instance)
- 엔티티(Entity)
- 데이터 모델링에서 관리해야 할 정보의 대상을 의미
- 사람, 사물, 사건 등을 나타내며, 현실 세계의 개체를 데이터로 표현
- 속성(Attribute)
- 엔티티가 가지는 특성이나 정보를 나타내는 요소
- 엔티티를 설명하거나 구분하는 데 필요한 데이터를 저장
- 학생 엔티티의 속성으로 학번, 이름, 나이 등이 있을 수 있다.
- 인스턴스(Instance)
- 엔티티의 실제 데이터
- 엔티티의 한 개체를 특정한 값으로 나타낸다.
- 학생 엔티티에서 학번이 20231234이고 이름이 "홍길동"인 경우가 하나의 인스턴스
2. 모델링
- 현실 세계의 복잡한 문제를 해결하기 위해 이를 단순화하여 표현하는 과정
- 시스템의 구조나 동작을 이해하고 설계하기 위한 추상화 작업
- 데이터 모델링에서는 데이터를 체계적으로 정리하고 구조화하여 데이터베이스에 반영
특징
1. 단순화 (Simplification)
- 현실을 단순화하여 핵심 요소에 집중하고, 불필요한 세부 사항을 제거
- 단순화를 통해 복잡한 현실 세계를 이해하고 표현하기 쉬워짐
2. 추상화 (Abstraction)
- 현실세계를 일정한 형식에 맞추어 간략하게 대략적으로 표현하는 과정
- 다양한 현상을 일정한 양식인 표기법에 따라 표현
3. 명확화 (Clarity)
- 대상에 대한 애매모호함을 최대한 제거하고 정확하게 현상을 기술하는 과정
- 명확화를 통해 모델을 이해하는 이들의 의사소통을 원활히 함
유의점
1. 중복 (Duplication)
- 한 테이블 또는 여러 테이블에 같은 정보를 저장하지 않도록 설계
2. 비유연성 (Inflexibility)
- 사소한 업무 변화에 대해서도 잦은 모델 변경이 되지 않도록 주의
- 데이터 정의를 프로세스와 분리
업무(내용)이 바뀔 때 변화주기가 용이해야 함!
ex. 시험 성적 테이블에서 과목 추가 또는 학생 추가하는 경우
3. 비일관성 (Inconsistency)
- 데이터베이스 내의 정보가 모순되거나 상반된 내용을 갖는 상태를 의미
- 데이터간 상호연관 관계를 명확히 정의
- 데이터 품질 관리 필요
- 데이터의 중복이 없더라도 비일관성은 발생할 수 있음
- 데이터 연결 시 특정 대상에 대한 정보가 다르면 안됨
데이터 모델링의 3단계
1.개념적 모델링
- 업무 중심적이고 포괄적(전사적)인 수준의 모델링
- 추상화 수준이 가장 높음
- 업무를 분석 뒤 업무의 핵심 엔터티(Entity)를 추출하는 단계
- 도출된 핵심 엔터티(Entity)들과의 관계들을 표현하기 위해 ERD 작성
2. 논리적 모델링
- 개념적 모델링의 결과를 토대로 세부속성, 식별자, 관계 등을 표현하는 단계
- 데이터 구조를 정의하기 때문에 비슷한 업무나 프로젝트에서 동일한 형태의 데이터 사용 시 재사용 가능
- 동일한 논리적 모델을 사용하는 경우 쿼리도 재사용 가능
- 데이터 정규화 수행
- 재사용성이 높은 논리적 모델은 유지보수가 용이해짐
3. 물리적 모델링
- 논리 모델링이 끝나면 이를 직접 물리적으로 생성하는 과정
- 데이터베이스 성능, 디스크 저장구조, 하드웨어의 보안성, 가용성 등을 고려
- 가장 구체적인 데이터 모델링
- 추상화 수준은 가장 낮음(가장 구체적인 모델링이므로)
3. 데이터 모델의 표기법(ERD : Entity Relationship Diagram)
- 논리적 설계에서 만들어지는 엔터티(Entity)와 엔터티 간의 관계(Relationship)를 시각적으로 표현한 다이어그램, 엔터티와 엔터티간의 관계를 한눈에 확인할 수 있는 포괄적 설계도
- 1976년 피터 첸(Peter Chen)이 만든 표기법, 데이터 모델링 표준으로 사용
ERD 작성 절차
① 엔터티를 도출한 후 그린다
② 엔터티 배치
③ 엔터티 간의 관계를 설정
④ 관계명을 서술
⑤ 관계의 참여도 기술
⑥ 관계의 필수 여부를 확인
'CS > SQL' 카테고리의 다른 글
[SQLD] 관계(Relationship) (0) 2025.02.10 [SQLD] 속성(Attribute) (0) 2025.02.08 [SQLD] 엔티티(Entity) (0) 2025.02.07 SQL JOIN (0) 2025.01.25 SQL, NoSQL (0) 2025.01.09 댓글
- 엔티티(Entity)