SQLD. 1
1. 모델링
*엔터티 = 테이블 // 컬럼 = 속성 // 행 = 인스턴스
*모델링
개념: 현실 세계의 비즈니스 프로세스와 데이터 요구 사항을 추상적이고 구조화된 형태로 표현하는 과정
특징
1. 단순화: 현실을 단순화하여 핵심요소에 집중, 불필요한 세부 사항 제거
2. 추상화: 현실 세계를 간략하게 표현
3. 명확화: 정확하게 현상 기술
유의점
1. 중복: 같은 정보 저장 X (저장공간 낭비됨)
2. 비유연성: 잦은 모델 변경 X, 데이터 정의를 프로세스와 분리
3. 비일관성: DB내의 정보가 모순되거나 상반된 내용을 갖는 상태를 의미, 데이터 중복이 없어도 비일관성은 발생할 수 있음
모델링 3가지 요소
1. 대상: 업무가 관리하고자 하는 대상 (객체)
2. 속성: 대상들이 갖는 속성 (하나의 특징으로 정의 가능)
3. 관계: 대상들 간의 관계
모델링 3단계
1. 개념적: 업무 중심적이고 포괄적 수준, 추상화 수준이 가장 높음, 핵심 엔터티를 추출하는 단계, ERD 작성
2. 논리적: 개념적 모델링 결과 토대로 세부속성, 식별자, 관계 등을 표현, 데이터 정규화 수행
3. 물리적: 논리 모델링 끝나면 직접 물리적으로 생성, 추상화 수준 가장 낮음 (가장 구체적이기 때문)
*ERD: 엔터티와 엔터티 간의 관계를 시각적으로 표현한 다이어그램
작성 절차
엔터티 도출 후 그리기 -> 배치 -> 엔터티 간의 관계 설정 -> 관계명 서술 -> 관계 참여도 기술 -> 관계의 필수 여부 확인
2. 엔터티
* 엔터티: 현실 세계에서 독립적으로 식별 가능한 객체나 사물, 대상(인스턴스)들로 이루어진 집합
ex. 엔터티와 속성, 인스턴스 등의 관계
엔터티: 학생
속성: 학번, 이름, 학과 등
식별자: 학번
인스턴스: 특정 학생의 데이터 // 학번, 이름, 학과
엔터티 특징
1. 유일한 식별자에 의해 식별 가능
- 인스턴스가 식별자에 의해 1개씩만 존재하는 지 검증 필수
- 유일한 식별자는 엔터티의 인스턴스만의 고유 이름
2. 해당 업무에 필요하고 관리하고자하는 정보
- 설계하는 업무의 시스템 구축에 필요한 정보여야 한다. ex. 학교 시스템 구축 시 학생 정보 필, 다른 업무엔 불필
3. 인스턴스들의 집합
- 영속적으로 존재하는 2개 이상의 인스턴스의 집합
- 인스턴스가 1개 밖에 없는 엔터티는 집합 X, 따라서 성립 X
4. 엔터티는 반드시 속성을 가짐
- 각 엔터티는 2개 이상의 속성을 가짐
5. 엔터티는 업무 프로세스에 의해 이용
- 실제로 사용 안하면 잘못 설계한 것
6. 다른 엔터티와 최소 1개 이상의 관계 성립
- 관계가 없는 엔터티 도출은 부적절한 엔터티 혹은 적절한 관계를 찾지 못한 것
엔터티 분류
* 유형, 무형
1. 유형: 물리적 형태가 있다. (실체가 있는 대상) ex. 사원, 물품, 감사 등
2. 개념: 물리적 형태 없음 ex. 조직, 보험상품 등
3. 사건: 업무를 수행에 따라 발생 ex. 주문, 청구, 미납 등
* 발생 시점
1. 기본: 업무에 원래 존재하는 정보, 자신의 고유한 주식별자를 가짐 ex. 사원, 부서, 고객, 상품 등
2. 중심: 기본 엔터티로부터 발생, 그 업무에서 중심적인 역할 ex. 계약, 사고, 청구, 주문, 매출 등
3. 행위: 2개 이상의 부모 엔터티로부터 발생 ex. 주문, 사원변경이력, 이력 등
엔터티 명명
1. 현업에서 사용하는 용어 사용
2. 약어 사용 자제
3. 단수 명사 사용
4. 유일한 이름을 부여
5. 엔터티 생성 의미대로 이름 부여
엔터티와 인스턴스 표기법
엔터티: 사각형
3. 속성
*속성
개념: 업무에서 필요로 하는 고유한 성질, 특징 -> 컬럼으로 표현가능한 단위, 더 이상 분리되지 않는 최소 단위
*엔터티, 인스턴스, 속성, 속성값의 관계
1개의 엔터티는 2개 이상의 인스턴스의 집합이다.
1개의 엔터티는 2개 이상의 속성을 갖는다.
1개의 속성은 1개의 속성값을 갖는다.
각 속성은 구체적인 값을 갖는다.
*특징
업무에서 반드시 필요하고 관리하고자하는 정보
정해진 주식별자에 함수적 종속성을 가져야 한다.
1개의 속성은 1개의 값만 갖는다.
1개의 인스턴스는 속성마다 반드시 하나의 속성값을 갖는다.
=> 각 속성이 하나의 값을 갖고 있음을 의미한다. (속성의 원자성)
* 원자성: 데이터모델에서 각 엔터티의 인스턴스가 해당 속성에 대해 단일하고 명확한 값을 갖는 것을 의미
* 함수적 종속성: 어떤 속성 A의 값에 대해 다른 속성 B도 유일하게 결정되었을 때를 의미 // A -> B
1. 완전 함수적 종속: 특정 칼럼이 기본키에 대해 완전히 종속, PK를 구성하는 컬럼이 2개 이상일 경우 PK 값 모두에 의한 종속관계를 나타낼 때 완전 함수 종속성 만족
2. 부분 함수적 종속: 기본키 일부에 대해 종속될 때를 의미
* 속성의 분류
1. 특성에 따른 분류
기본 속성: 업무로부터 추출된 모든 속성, 엔터티에 가장 일반적으로 많이 존재하는 속성 ex. 원금, 예치기간 등
설계 속성: 기본 속성 외에 업무를 규칙화하기 위해 새로 만들어지거나 기본 속성을 변형하여 만들어지는 속성
ex. 상품코드, 지점코드, 예금분류 등
파생 속성: 다른 속성에 의해 만들어지는 속성, 일반적으로 계산도니 값들이 해당 ex. 합계, 평균, 이자 등
2. 엔티티 구성방식에 따른 분류
PK(기본키): 인스턴스 식별 가능한 속성
FK(외부키): 다른 엔터티와의 관계에서 포함된 속성
일반 속성: 엔터티에 포함되어 있고 PK/FK에 포함되지 않는 속성
3. 분해 여부에 따른 속성
단일 속성: 하나의 의미
복합 속성: 여러 의미
다중값 속성: 속성에 여러 개의 값을 가짐, 다중값 속성은 엔터티로 분해
*속성 명명 규칙
1. 업무에서 사용하는 이름 부여
2. 서술식 속성명은 사용 X
3. 약어 사용은 제한
4. 전체 데이터 모델에서 유일한 명칭을 부여
*도메인: 각 속성이 가질 수 있는 값의 범위 // 엔터티 내에서 속성에 대한 데이터 타입과 크기, 제약 사항 지정
출처
https://www.youtube.com/@hongdatalab
홍쌤의 데이터 랩
홍은혜 강사
www.youtube.com