관계란 두개이상의 엔터티간에 논리적으로 연결된 의미있는 연관성이다
정형 -> 정해진 형식과 구조를 가지는 데이터베이스
관계형 -> 정형데이터 베이스중의 하나로 엔터티끼리의 관계를 이용해 데이터를 조합해서 새로운 정보를 만들어내는 데이터베이스
계층형 -> 데이터를 계층적으로 표현함
예시)레지스트리 편집기-> 윈도우 운영 체제와 설치된 프로그램의 설정 정보(데이터베이스)를 수정, 삭제, 추가할 수 있는 강력한 시스템 도구

관계의 분류
- 존재적 관계-> 단순히 소속되거나 포함되는 관계
- 행위적관계 -> 행위로 인해 연결되는 관계
ERD와 클래스 다이어그램 관계표현방식

ERD는 존재적이던 행위적이던 실선으로 표시하고 UML은 존재적관계는 실설 행위적관계는 점선으로 표시한다
클래스 다이어 그램은 객체(java) 프로그래밍 영역에서 사용하는 설계다
관계표기 및 읽는법
관계명과 관계차수 관계선택성 개념을 추가해서 더 많은 정보를 표현할수 있다
IE표기법과 Barker 표기법이 있음
관계표현의 3요소
- 관계명 ->두 엔터티간 논리적 관계를 현재형 동사로 명시 -> 표기법 상관없이 동일하게 작성해야한다
- 관계차수 -> 인스턴스가 얼마나 관계에 참여하는지 (1:1,1:N,N:M)명시
- 관계선택성 -> 인스턴스가 반드시 관계에 참여해야 하는지 여부를 명시함
관계차수
고객과 상품이있으면 고객1이 상품을 산다고할때 고객1이 하나의 상품만 살수 있다면 1:1의 관계이고
고객1이 상품 ABC를 구매한다고 하면 1대 다의 관계가 되는데 여기서 다는 M으로 볼수 있음 따라서 1:M의 관계가 성립한다
고객1,2,3이 상품 ABC를 산다면 다대 다 즉 N:M의 관계라고 할수 있다
M이나 N을 까치발(<) 기호를 사용해서 표시한다
IE 표기방식에서 관계차수 해석
하나를 문자 I로 표시 숫자 1로 해석하면 편하다

하나의 학생이 하나의 강의를 수강하거나 여러 강의를 수강할수 있다
하나의 강의를 한명만듣거나 여러명이 들을수도 있다
Barker표기 방식에서 관계차수 해석
Barker에서는 I를 안쓴다 안써도 하나가 기본적으로 있는것이다

하나의 학과가 여러교수나 한명이 될수도 있다
어떤 교수는 특정 하나의 학과에 소속되어야한다
관계표기법 - 관계선택성
관계선택성은 반드시 참여해야하는가를 기준으로 함
IE표기법
선택관계를 기호 O으로 표시함 이 기호가 없으면 필수 관계로 반드시 참여한다는 의미다

하나의 학생이 여러 수강을 할수도있고 하나를 수강할수도 있고 안할수도 있다
어떤 수강은 반드시 특정 하나의 학생으로 처리되어야한다
Barker 표기법
O대신 점선으로 표시한다

하나의 학과는 여러 교수를 가질수 있고 하나의 교수를 가질수도있고 교수를 가지고있지 않을수도 있다
관계체크 사항
요구사항으로 부터 엔터티들 끼리의 무슨 관계가 있는가? 체크리스트
- 두개의 엔터티 사이에 관심있는 연관규칙이 있는가?
- 두개의 엔터티 사이에 정보의 조합이 발생하는가
- 업무기술서,장표(엔터티)에 관계연결에 대한 규칙(관계차수,선택성)이 써잇는가?
- 업무기술서,장표(엔터티)에 관계연결을 가능하게 하는 동사(관계명)가 있는가?
ERD
ERD란 엔터티간 논리적인 관계를 그림으로 도식화한것
필요성
- 복잡한 요구사항을 시각화
- 구성원간 의사소통 도구
- 개념적 모델링의 산출물
ERD 그리는 순서
- 엔터티 뽑기
- 적당히 배치 -> 제일 중심은 왼쪽상단에 위치 시킴
- 관계선그리기
- 관계명 쓰기
- 관계차수 작성
- 관계선택성 표시
엔터티와의 관계
일반적으로 다른 엔터티와 최소 하니이상의 관계를 맺어야하지만 예외적으로 코드성 엔터티와 통계성 엔터티는 직접적인 관계 없이 독립적으로 존재가능하다
코드성 엔터티
어떤 데이터를 코드화 시켜서 관리하는 엔터티
국가 코드 같이 어디에도 쓰일수 있는것은 관계를 표현 하면 데이터 모델이 복잡해지기 때문에 예외적으로 생략한다
통계성 엔터티
특정기간 수치 데이터를 저장하는용도로 사용하기 때문에 다른 엔터티와 연결할 필요가 없다 분석이나 리포트 목적으로 사용함
'📘꼬부기의 성장서재 > 이기적SQLD 기출문제' 카테고리의 다른 글
| 정규화 (0) | 2026.03.04 |
|---|---|
| 식별자 (0) | 2026.03.04 |
| 속성 (0) | 2026.03.04 |
| 엔터티 (0) | 2026.03.03 |
| 데이터 모델링의 정의 (0) | 2026.03.02 |