본문 바로가기
  • Be curious
일상 기록

2024 SQLD 시험 준비 - 개념 정리 2편 <엔터티, 속성, 관계>

by Minbook 2024. 3. 3.

SQLD 시험준비 (벼락치기) 개념정리 2번째 글

 

첫 번째 글인 <데이터 모델의 이해> 정리는 아래를 참고.

2024.03.03 - [일상 기록] - 2024 SQLD 시험 준비 - 개념 정리 1편 <데이터 모델의 이해>

 

엔터티 (Entity) 

엔터티 (Entity) 정의 및 개념

  • 데이터의 집합
  • 저장 및 관리되는 데이터
  • 개념, 사건, 장소 등의 명사
예를 들어, '고객'이라는 엔터티를 정리하면:
- 엔터티 : 고객
- 속성 (Attribute) : 고객 ID, 고객 이름, 주소지 등
- 식별자 (Identifier) : 고객 ID (고객을 식별할 수 있는 고유값)
- 인스턴스 : 특정 고객의 데이터 (고객ID: A10101010 / 이름: 김ㅇㅇ / 주소지: 서울시 ㅇㅇㅇ)

 

엔터티 특징

고유 식별자로 식별 가능

  • 인스턴스가 식별자에 의해 한 개씩만 존재하는지 검증 필요 (예: 이름이 동명이인이 있을 경우 식별할 수 있는 고유 값)

해당 업무에 필요 & 관리하고자 하는 정보

  • 설계하는 업무 시스템 구축에 필요한 정보

인스턴스들의 집합

  • 2개 이상의 인스턴스의 집합 (인스턴스가 1개일 경우 엔터티는 집합이 아니므로 성립되지 않음)

속성을 가짐

  • 2개 이상의 속성을 가짐
  • 인스턴스 하나에서 각 속성에 대해 1개의 속성값만 가짐

업무 프로세스에 의해 이용

  • 사용되지 않는 고립 엔터티는 제외

다른 엔터티와 최소 1개 이상 관계 성립

  • 다른 엔터티와 업무적 연관성을 가짐

 

엔터티 종류 / 분류

유무형에 따른 분류

유형 엔터티 - 물리적인 형태가 있음
- 지속적으로 활용되고 안정적인 엔터티
Ex) 사원, 제품 등
개념 엔터티 - 물리적인 형태가 없음
- 개념적으로 존재하며 정보로 구분되는 엔터티
Ex) 조직, 강의 등
사건 엔터티 - 비즈니스 프로세스에 따라 / 업무를 수행함에 따라 발생되는 엔터티
- 데이터 양이 많음
Ex) 주문, 판매, 청구 등

 

발생 시점에 따른 분류

기본 엔터티 - 키 엔터티
- 원래 존재하는 정보, 독립적으로 생성 및 관리
- 자신 고유의 주식별자를 가짐
Ex) 고객, 부서, 제품 등
중심 엔터티 - 기본 엔터티로부터 발행되는 행위 엔터티를 생성하는 중간 엔터티
Ex) 계좌, 주문, 수납 등
행위 엔터티
(사건 엔터티)
- 상위 두개 이상의 부모 엔터티로부터 발생되는 엔터티
- 비즈니스 프로세스를 실행하며 생성되는 엔터티
- 지속적으로 정보가 추가 및 변경됨 → 데이터 양이 많음
Ex) 주문, 수납 이력 등

 

엔터티 명명 규칙

  • 현업에서 사용하는 용어
  • 약자 / 약어 사용 지양함
  • 단수 명사 사용
  • 유일성 보장 (중복 x)
  • 명확성 / 생성 의미대로 이름 부여

 

엔터티 표기법

  • 주식별자 = 과목이름 일 경우 예시

 

속성 (Attribute) 

속성 (Attribute) 정의 및 개념

  • 엔터티가 가지는 항목, 최소의 의미/데이터 단위
  • 속성은 더 이상 분류되지 않음
  • 업무에 필요한 데이터 저장 / 업무에서 필요로 하는 고유한 성질, 특징
  • 인스턴스 구성 요소

 

속성의 특징

  • 업무에서 필요하고 관리하고자 하는 정보
  • 하나의 값만 가짐 = 속성의 원자성 (하나 이상의 속성값일 경우 정규화 필요)
  • 주 식별자에 함수적으로 종속됨, 기본키에 따라 속성 값도 변경될 수 있음
    ㄴ 예를 들어 제품 데이터가 있다고 하면 (제품의 ID, 원산지, 금액 등) 제품 ID (주식별자)를 기준으로 원산지를 뽑을지, 금액을 뽑을지 바뀌기 때문에 주식별자에 값에 따라 내용 (값의 결과)가 달라질 수 있다는 뜻임
기본 속성 - 비즈니스 프로세스에서 도출한 본래 속성
- 엔터티에 가장 일반적으로 많음
- 업무로부터 추출됨
Ex) 이름, ID, 전화번호, 일자 등
설계 속성 - 데이터 모델링 과정에서 업무 규칙화를 위해 발생하는 속성
Ex) 상품 코드, 지점 코드 등
파생 속성 - 다른 속성에 의해 만들어지는 속성 (↔ 저장 속성은 유도 속성을 생성하는 데 사용되는 속성)
Ex) 평균, 합계 등

 

함수적 종속성
- 한 속성의 값이 다른 속성 값에 종속 관계를 가짐
- 어떤 속성 값 A에 의해 다른 속성 값 B도 유일하게 결정되는 경우: B는 A에 함수적으로 종속됨 (A→B)

* 완전 함수적 종속 : 특정 컬럼이 기본키에 대해 완전하게 종속됨
- PK를 구성하는 컬럼이 2개 이상일 때 PK값 모두에 의한 종속관계 완전 함수적 종속
* 부분 함수적 종속 : 기본키 전체가 아니라 기본키 일부에 대해 종속됨
- PK 중 일부에 의해 종속

 

속성의 종류 / 분류

엔터티 구성방식에 따른 분류

PK (Primary Key) 기본키 - 엔터티를 식별할 수 있는 속성
FK (Foreign Key) 외래키 - 다른 엔터티와 관계에서 포함된 속성
일반 속성 - 엔터티에 포함되고 PK 나 FK에는 포함되지 않는 속성

 

분해 가능 여부에 따른 분류

단일 속성 - 하나의 의미로 구성 
Ex) 회원ID, 이름 등
복합 속성 - 여러개의 의미로 구성
Ex) 주소
다중값 속성 - 여러 값을 가짐, 엔터티로 분해 가능
Ex) 상품 리스트

 

도메인

  • 각 속성이 가질 수 있는 값의 범위 (예: 학년일 경우 1~4)
  • 엔터티 내에 속성에 대한 데이터 타입, 크기, 제약 사항에 대한 지정

 

관계 (Relationship)

관계의 개념

  • 엔터티 간의 논리적 관련성
  • 엔터티 정의에 따라 영향받음 (엔티티 정의에 따라 변경되기도 함)
  • 관계 정의 시 인스턴스 (각 행 데이터) 간의 논리적 연관성 파악하여 정의

 

관계의 종류

*ERD에서는 존재관계와 행위관계를 구분하지 않음

존재적 관계 - 한 엔터티 존재가 다른 엔터티 존재에 영향을 미침
- 엔터티 간의 연관된 상태
예) 학교 엔터티가 삭제되면 학생 엔터티의 존재에 영향을 미침
행위적 관계 - 엔터티 간에 발생하는 행위
예) 학생 엔터티 행동에 의해 수강 엔터티가 발생

 

관계의 구성 & 표기법

관계명 - 관계의 이름
- 관계에 엔티티가 참여하는 형태를 정의
차수 (Cardinality) - 관계가 어떤식으로 정의되느냐, 1:1 / 1:N : N:M 등으로 표현
- 관계 내 튜플의 전체 개수, 1은 직선 多는 삼발로 표시

완전 1:1 관계
- 하나의 엔터티에 관계되는 엔터티는 반드시 한개임
Ex) 학생은 반드시 전공부서가 있어야 함
선택적 1:1 관계
- 하나의 엔터티에 관계되는 엔터티가 하나이거나 없을 수 있음
1대N 관계
- 엔터티 하나의 행에 다른 엔터티 값이 여러개 있는 관계
Ex) 학생은 여러개의 복수전공을 보유할 수 있음
M대N 관계
- 두 엔터티가 다대다 연결 관계를 가지고 있음
- 조인 시 카데시안 곱이 발생 하므로, 두 엔터티를 연결하는 연결엔터티의 추가로 1대N관계로 해소
ㄴ중간엔터티를 통해서 해결
선택성 (Optionality) - 필수 관계, 선택 관계
- 엔터티가 관계에 있어 항상 참여하는지, 선택적 참여하는지 표기
- 필수는 I 선택은 O로 표시

 

관계의 페어링

  • 엔터티 안에 인스턴스가 개별적 관계를 가지는 것
  • 관계란 페어링의 집합
관계, 차수, 페어링
- 학생 ↔ 강의 : 두 엔터티는 관계를 가짐
- 한 학생이 여러 강의 수강할 수 있음 + 한 강의를 여러 학생이 수강할 수 있음 : M 대 N 관계
- 인스턴스 끼리의 관계: <학생이 A강의를 0000년도에 수강하였고 성적은 A이다>와 같은 인스턴스 끼리의 관계, 페어링 형성
즉, 다음과 같이 정리됨
- 차수: 하나의 엔터티와 다른 엔터티 간의 레코드 연결 방식
- 페어링: 두 엔터티 간의 특정 연결을 설명하고 정보를 제공

 

 

반응형

댓글