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이다>와 같은 인스턴스 끼리의 관계, 페어링 형성
즉, 다음과 같이 정리됨
- 차수: 하나의 엔터티와 다른 엔터티 간의 레코드 연결 방식
- 페어링: 두 엔터티 간의 특정 연결을 설명하고 정보를 제공
반응형
'일상 기록' 카테고리의 다른 글
2024 SQLD 시험 준비 - 개념 정리 4편 <성능 데이터 모델링, 정규화, 반정규화> (0) | 2024.03.08 |
---|---|
2024 SQLD 시험 준비 - 개념 정리 3편 <식별자> (1) | 2024.03.06 |
2024 SQLD 시험 준비 - 개념 정리 1편 <데이터 모델의 이해> (0) | 2024.03.03 |
인공지능, 블록체인, 데이터 무료 교육 과정 추천 및 후기 by 서울 ICT 이노베이션 스퀘어 (0) | 2024.02.14 |
2024년 자격증 시험 등록 - SQLD, 등록 및 준비 (1) | 2024.02.04 |
댓글