데이터모델
- 현실 세계의 복잡한 데이터 구조를 단순화, 추상화하여 체계적으로 표현한 개념적 모형
- 목적: 데이터의 관계, 접근 및 처리과정을 체계적으로 표현
데이터모델의 종류
데이터모델의 구분
- 개념적 데이터 모델
- 현실세계의 인식을 추상적 개념으로 표현
- 예: 개체-관계(E-R) 모델
- 논리적 데이터 모델
- 개념적 모델을 컴퓨터가 처리할 수 있는 구조로 변환
- 단순히 데이터모델이라고 하면 논리적 모델을 의미
- 예: 관계 모델, 계층 모델, 네트워크 모델
- 물리적 모델
- 데이터의 실제 저장 방법과 접근 경로 표현
- 레코드형식, 레코드 순서, 접근경로, 저장방법에 관한 정의
데이터모델의 구성요소(구조)
- 개체(Entity)
- 속성(Attribute)
- 관계(Relationship): 개체 간의 관계 또는 속성 간의 논리적인 연결
- 개체 타입(Entity Type): 개체를 구성하는 속성들의 집합
- 개체 인스턴스(Entity Instance): 구체적인 객체
- 개체 세트(Entity Set): 개체 인스턴스들의 집합
데이터모델에 표시해야할 요소⭐️
- 구조(Structure): 데이터 구조 및 개체 간 관계
- 연산(Operation): 데이터 처리 방법
- 제약조건(Constraint): 데이터의 논리적 제약조건
개체-관계 모델(Entity-Relation Model)⭐️⭐️
개체-관계 모델 개념
- 데이터베이스의 요구사항을 그래픽적으로 표현하는 모델
- 데이터를 개체(Entity), 속성(Attribute), 관계(Relationship)로 묘사
- 피터 첸에 의해 제안
- 특정 DBMS나 하드웨어에 독립적
- 가장 대표적인 개념적 데이터 모델
- 산출물: 개체-관계 다이어그램(ERD)
개체(Entity)
- 현실 세계에 독립적으로 존재하는 유무형의 정보로 서로 연관된 몇 개의 속성으로 구성됨
- 데이터베이스에 표현하려는 것으로 사람이 생각하는 개념이나 정보단위 같은 현실 세계 대상체
- 독립적으로 존재하거나 그자체로서도 구별 가능
- 유일한 식별자에 의해 식별 가능
- 다른 개체와 하나 이상의 관계 존재
속성(Attribute)
- 데이터베이스를 구성하는 가장 작은 논리적 단위
- 파일 구조상의 데이터항목/필드
- 개체의 고유한 특성 및 개체를 구성하는 항목 기술
속성의 수=차수(Degree)
- 참고)
튜플의 수=카디널리티(Cardinality)
속성의 유형
- 단일값 속성: 하나의 값만 갖는 속성(예: 이름, 학번)
- 다중값 속성: 여러 값을 갖는 속성(예: 취미)
- 단순 속성: 더이상 분해할 수 없는 속성(예: 성별)
- 복합 속성: 분해 가능한 속성(예: 주소, 생년월일)
- 유도 속성: 다른 속성에서 유도되는 속성(예: 주민번호와 성별)
- 널 속성: 값이 아직 결정되지 않거나 존재하지 않는 속성
- 키 속성: 개체를 구별하기 위한 속성
관계(Relationship)
관계의 종류
- 일대일(1:1): A의 원소와 B의 원소가 1대1로 대응
- 일대다(1:N): A의 원소가 B의 여러 원소와 대응, B의 원소는 A의 원소 하나와만 대응
- 다대다(N:M): A와 B의 원소 모두 여러 원소와 대응
- 다대다 관계 구현 시, 중간테이블을 통해 일대다와 다대일로 분해 필요
세발 표기법
ER 다이어그램 표기법⭐️
논리적 데이터 모델링
- 개념적 설계 단계에서 도출된 개체, 속성, 관계를 구조적으로 표현하는 과정
- 개념 모델에서 도출된 업무 데이터 및 규칙을 상세히 표현
- 모든 업무용 개체, 속성, 관계, 프로세스 등을 포함
- 데이터를 정규화하여 모델링
- 성능과 제약사항, 특정 DBMS에 독립적
- 종류: 관계형, 계층형, 네트워크형, 객체지향형
논리 데이터모델 품질 검증
논리 데이터모델 품질 기준
사진 출처
https://mieumje.tistory.com/91
https://hudi.blog/entity-relation-diagram/
https://www.edrawsoft.com/kr/diagram-tutorial/how-to-create-er-diagrams.html