01 데이터 모델링과 데이터 모델의 개념
- 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정
- 추상화
- 2단계 데이터 모델링
- 개념적 데이터 모델링
- 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업
- 논리적 데이터 모델링
- 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업
- 데이터 모델
- 데이터 모델링의 결과물을 표현하는 도구
- 개념적 데이터 모델
- 사람의 머리로 이해할 수 있도록 현실 세계를 개념적 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구
- ex. 개체-관계 모델
- 논리적 데이터 모델
- 개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구
- ex. 관계 데이터 모델
- 데이터 모델의 구성
- 데이터 구조
- 정적 특징
- 개념적 데이터 모델에서 개념적 구조 - 현실 세계를 개념 세계로 추상화했을 때 어떤 요소로 이루어져 있는지 표현
- 논리적 데이터 모델에서 논리적 구조 - 데이터를 어떤 모습으로 저장할 것인지 표현
- 연산
- 동적 특징
- 제약조건
- 데이터 무결성 유지 목적
- 구조적 측면의 제약 사항
- 연산을 적용하는 경우 허용할 수 있는 의미적 측면의 제약 사항
02 개체-관계 모델
- 개체-관계 모델
- 개체와 개체 간의 관계를 이요해 현실 세계를 개념적 주고로 표현
- 핵심 요소 : 개체, 속성, 관계
- 개체-관계 다이어그램E-R 다이어그램 (=ERD)구성 요소의미예시
| Entity (개체) | 데이터가 저장되는 대상 | 사용자(User), 주문(Order), 제품(Product) |
| Attribute (속성) | 개체나 관계가 가지는 고유한 특성 | 이름, 이메일, 가격, 수량 등 |
| Relationship (관계) | 개체 간 연결 | 사용자가 주문한다, 제품이 주문에 포함된다 |
- Entitiy (개체)
- 다른 개체와 구별되는 이름을 가지고 있고, 각 개체만의 고유한 특성이나 상태 (=속성)을 하나 이상 가지고 있음
- 예 ) 서점에 필요한 개체 : 고객, 책 / 학교에 필요한 개체 : 학과, 과목
- 파일 구조의 레코드와 대응됨
- ERD에서 사각형으로 표현
- Attribute (속성)
- 의미 있는 데이터의 가장 작은 논리적 단위
- 파일 구조의 필드와 대응됨
- ERD에서 타원으로 표현
- entity type (개체 타입)
- 파일 구조의 레코드 타입에 대응됨
- entity instance (개체 인스턴스) = entity occurrence (개체 어커런스)
- 실체화된 개체
- 파일 구조의 레코드 인스턴스에 대응됨
- entity set (개체 집합)

- 널 값은 공백/0과는 의미가 다름
- 키 (KEY) 속성
- ERD에서 밑줄로 표현
- 각 개체 인스턴스를 식별하는 데 사용
- 모든 개체 인스턴스의 키 속성 값이 달라야됨
- 둘 이상의 속성들로 구성되기도 한다.
- Relationship (관계)
- 개체 집합들 사이의 대응 관게 = 매핑 (MAPPING)
- ERD에서 마름모로 표현
- 관계의 유형
- 이항 관계
- 삼항 관계
- 순환 관계 : 개체 타입 1개가 자기 자신과 맺는 관계
- 매핑 카디널리티 기준 (1:1, 1:N, N:M)
- 관계의 참여 특성
- 필수적 참여 (전체 참여)
- EX. 모든 고객은 책을 반드시 구매해야된다면, 고객 개체가 책 개체와의 구매 관계에 반드시 참여해야 된다는 것
- ERD에서 이중선으로 표현
- 선택적 참여 (부분 참여)
- 개체 인스턴스 중 일부만 관계에 참여해도 되는 것
- EX. 고객에 구매하지 않은 책이 존재할 수도 있음
- 필수적 참여 (전체 참여)
- 개체의 종속성
- 약한 개체 - 다른 개체의 존재 여부에 의존적인 개체 (ERD에서 이중 삼각형, 이중 마름모 )
- 강한 개체 - 다른 개체의 존재 여부를 결정하는 개체
- 강한 - 약한 은 일반적으로 일대다
- 약한은 강한의 관계에 필수적으로 참여
- 약한은 강한의 키를 포함하여 키를 구성
03 논리적 데이터 모델
ERD로 표현된 개념적 구조를 DB에 저장할 형태로 표현한 논리적 구조
- 데이터베이스의 논리적 구조 = 데이터베이스의 스키마
- 관계 데이터 모델
- DB의 논리적 구조 : 2차원 테이블 형태
- 계층 데이터 모델 (위에가 1, 아래가 다 N인 형태 / 객체에 상하관계 부여)
-
- DB의 논리적 구조 : 트리(TREE) 형태
- 루트 역할 개체 존재, 사이클이 존재하지 X ( = 순환관계 X)
- 부모 개체 / 자식 개체 ( 1:N )
- 두 개체 사이에 하나의 관계만 정의 가능
- 개념적 구조 모델링 어려워 구조 복잡해질 수 있음
- 데이터의 삽입, 삭제, 수정, 검색이 쉽지 않음 -> 트리에서의 연산이 어려워서
-
- 네트워크 데이터 모델
- DB의 논리적 구조 : 그래프 형태
- 개체 간에는 1:N 관계만 허용됨 (오너 / 멤버)
- 두 개체 간의 관계를 여러 개 정의할 수 있어 이름으로 구별함 = 레이블링 필요
- 데이터의 삽입, 삭제, 수정, 검색이 쉽지 않고 구조 복잡
- 순환 관계 가능