728x90
데이터 모델링
- 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정
- 데이터베이스 설계의 핵심 과정
2단계 데이터 모델링
- 개념적 데이터 모델링(conceptual modeling)
- 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업
- 논리적 데이터 모델링(logical modeling)
- 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업
데이터 모델
- 데이터 모델링의 결과물을 표현하는 도구(개념적, 논리적 모델이 존재함)
- 개념적 데이터 모델
- 현실 세계를 개념적으로 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구
- ex) 개체-관계 모델(E-R ahepf)
- 논리적 데이터 모델
- 개념적 구조를 논리적으로 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구
- ex) 관계 데이터 모델
데이터 모델은 일반적으로 3가지로 구성됨
- 데이터 구조(data structure)
- 어떤 요소로 이루어져 있는지(개념적), 데이터를 어떤 모습으로 저장할 것인지(논리적) 표현
- 표현 대상 정의(개체, 관계)
- 정적(static) → 자주 변하지 않기 때문
- 연산(operation)
- 데이터 구조에 따라 표현된 값들을 처리하는 작업
- 연산을 통해 한 상태에서 다른 상태로 전이
- 동적(dynamic) → 값이 연산에 의해 계속 변경될 수 있기 때문
- 제약조건(constraint)
- 데이터 무결성 유지를 위한 구조적 측면(허용될 수 있는 개체 인스턴스), 의미적 측면(허용되는 연산의 한계)의 제약사항
개체
- 개체(entity)
- 단독으로 존재할 수 있으며 다른 것과 구별되는 객체(object), 저장할 만한 가치가 있는 중요 데이터를 가지고 있는 사람이나, 사물
- 개체 타입(entity type)
- 이름과 속성(attribute)들로 정의됨
- 속성: 각 개체만의 고유한 특성이나 상태
- 개체 인스턴스(entity instance)
- 개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체
- 개체 집합(entity set)
- 한 개체 타입에 대한 개체 인스턴스들의 집합

속성(Attribute)
- 개체나 관계가 가지고 있는 고유한 특성
- 의미 있는 데이터의 가장 작은 논리적 단위

- 단일 값(single-valued) 속성
- 특정 개체를 구성하는 속성 값이 하나인 경우
- 예: 학생 개체의 이름 속성
- 다중 값(multi-valued)속성
- 한 개체에 대해 여러 개의 값을 가질 수 있는 속성
- 예: 학생 개체의 취미 속성, 도서 개체의 저자 속성
- 단순(simple) 속성
- 더 이상 작은 구성원소로 분해할 수 없는 속성
- 복합(composite) 속성
- 몇 개의 기본적인 단순 속성들로 분해할 수 있는 속성(ex. 집 주소)

- 유도(derived) 속성
- 속성의 값이 다른 속성이나 개체가 가지고 있는 값으로부터 유도되어 결정되는 속성(ex. 책(가격, 할인율, 판매가격)) 에서의 판매가격
- 저장(stored) 속성
- 유도 속성 생성에 사용된 속성(가격, 할인율)
널 속성
- 널(null) 값이 허용되는 속성
- 개체 인스턴스가 특정 속성 값을 가지고 있지 않다는 것을 명시적으로 표시하기 위함
- 널 값의 의미
- 해당되지 않은 경우(not applicable)
- 학생 개체 타입의 주민번호 속성: 외국 유학생
- 알 수 없는 경우(unknown)
- 값이 존재하지만 누락된 경우: 학생 개체 타입의 이름, 키
- 존재 여부를 모르는 경우: 학생 개체 타입의 취미, 휴대폰 번호
- 해당되지 않은 경우(not applicable)
키 속성
- 개체 집합에 존재하는 각 개체 인스턴스들을 식별하는 데 사용되는 속성
- 개체 인스턴스들의 키 속성 값은 모두 다르다.
- 키 속성으로 적합한 속성이 여러 개면 이 중 하나를 키로 사용한다.
관계
- 관계(relationship)
- 개체와 개체가 맺고 있는 의미 있는 연관성
- 관계 인스턴스
- 실제 속성 값으로 구성된 특정 개체 인스턴스들 간에 맺어진 실제 관계
- 관계 타입
- 개체 집합들 사이의 대응 관계(매핑)
관계도 개체처럼 속성을 가질 수 있다.
관계 유형
- 관계에 참여하는 개체 타입의 수 기준
- 이항 관계: 개체 타입 2개가 맺는 관계
- 삼항 관계: 개체 타입 3개가 맺는 관계
- 순환 관계: 개체 타입 1개가 자기 자신과 맺는 관계
- 매핑 카디널리티(mapping cardinality)
- 관계를 맺는 두 개체 집합에서, 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수
- 매핑 카디널리티 기준
- 일대일(1:1) 관계
- 일대다(1:N) 관계
- 다대다(N:M) 관계
일대일 관계
- 개체 집합 X의 각 원소는 집합 Y의 원소 하나와 관련될 수 있고,
- 개체 집합 Y의 각 원소도 집합 X의 원소 하나랑 관련될 수 있다.
- ex) 혼인관계 (남편 한명이 아내 한명과 혼인을 맺어야함)

일대다 관계
- 개체 집합 X의 각 원소는 임의의 수의 Y의 원소와 관련될 수 있지만,
- 개체 집합 Y의 각 원소는 많아야 하나의 X 원소와 관련될 수 있음
- ex) 부서 개체와 사원 개체(한 부서에는 여러명의 사원이 소속될 수 있지만 사원은 한 부서에만 속한다)

다대다 관계
- 개체 집합 X의 각 원소는 임의의 수의 개체 집합 Y 원소와 관련될 수 있고
- 개체 집합 Y의 각 원소도 임의의 수의 X 원소와 관련될 수 있음
- ex. 구매관계(한 고객은 여러권의 책을 구매할 수 있으며 책은 여러 고객한테 판매될 수 있음)

관계의 참여 특성
- 필수적 참여(전체 참여)
- X-Y 관계에서 개체 집합 X의 모든 개체 인스턴스가 X-Y 관계에 참여해야 하는 경우
- ex) 교수 - 소속 - 학과
- 선택적 참여(부분적 참여)
- X-Y 관계에서 개체 집합 X의 일부 개체 인스턴스만 X-Y 관계에 참여해도 되는 경우
- ex) 학생 - 등록 - 과목

관계의 종속성
- 존재 종속(existence dependence)
- 어떤 개체 y의 존재가 개체 x의 존재에 종속되는 경우
- x: 주 개체(dominant entity) 강한 개체
- y: 종속 개체(subordinate entity) 약한 개체
- 강한 개체 x를 삭제하면 약한 개체 y도 삭제해야 함
- 어떤 개체 y의 존재가 개체 x의 존재에 종속되는 경우
- 강한 개체와 약한 개체는 일반적으로 일대다의 관계이다.
- 약한 개체는 강한 개체와의 관계에 필수적으로 참여한다.
- 약한 개체는 강한 개체의 키를 포함하여 키를 구성한다.
논리적 데이터 모델
- E-R 다이어그램으로 표현된 개념적 구조를 데이터베이스에 어떤 형태로 저장할지 논리적으로 표현하는데, 이러한 논리적인 구조를 논리적 데이터 모델이라함
- 논리적 데이터 모델은 논리적 데이터 모델링의 결과이다.
- 또한 논리적 데이터 모델로 표현된 데이터베이스의 논리적 구조가 데이터베이스 스키마이다.
728x90
'Programming > SQL(DB)' 카테고리의 다른 글
| [MySQL] 데이터베이스 정규화 (0) | 2025.12.27 |
|---|---|
| [MySQL] 데이터베이스 설계(개념적 설계, 논리적 설계) (0) | 2025.12.26 |
| [MySQL] 프로그래머스 서울에 위치한 식당 목록 출력하기 (0) | 2025.02.13 |
| [MySQL] 프로그래머스 평균 일일 대여 요금 구하기 (0) | 2025.02.11 |
| [MySQL] SQL 테이블 변경, 조작, 함수 (1) | 2024.10.19 |