반응형
자격증 준비하면서 내가 이해하기 편하게, 다시 보기 좋게 정리하는 SQLD의 기본 내용 (자격증 상세 내용은 아래)
https://www.dataq.or.kr/www/sub/a_03.do
데이터자격 검정 사이트에 나와있는 1과목의 데이터 모델링의 이해에 해당하는 내용을 정리한 것
데이터 모델링
모델링
데이터베이스의 모델링은 현실 세계를 단순화하여 표현하는 기법
모델링의 특징
- 추상화 (현실세계 반영)
- 단순화 (단순하고 쉽게 표현)
- 명확화 (불분명함을 제거하고 명확하게 해석할 수 있도록 기술)
모델링의 관점
- 데이터 관점(데이터 중심의 모델링, 데이터 간의 관계 표현)
- 프로세스 관점(프로세스 중심의 모델링)
- 데이터와 프로세스의 상관 관점 (데이터와 프로세스의 관계 중심의 모델링)
모델링의 단계
- 1단계 : 개념적 데이터 모델링 (추상화 레벨이 높은 모델링, 업무중심적·포괄적 모델링)
- 2단계 : 논리적 데이터 모델링 (재사용성이 가장 높은 모델링, 데이터베이스 모델에 대해 모두 표현)
- 3단계 : 물리적 데이터 모델링 (성능이나 가용성 등의 물리적 특성을 고려한 모델 표현)
스키마 구조
- 외부 스키마 → 사용자의 관점(view 단계)으로 데이터베이스의 스키마 정의
- 개념 스키마 → 사용자가 보는 데이터베이스의 스키마를 통합하여 전체 데이터베이스를 나타내는 것
- 내부 스키마 → 물리적 저장 구조, 칼럼 정의 인덱스 등
스키마 구조의 독립성
- 논리적 독립성 : 개념 스키마가 변경되어도 외부 스키마는 영향 없음
- 물리적 독립성 : 내부 스키마가 변경되어도 외부·개념 스키마는 영향받지 않음
엔터티(entity)
데이터베이스에서 식별이 가능한 객체라는 의미
- 엔터티가 작성이 되려면 명확한 조건이 기준이 되어야 함
- 보통 엔터티는 표로 표기
- 엔터티의 행을 인스턴스, 열을 속성이라 부름
엔터티의 특징
- 실제 업무에서 사용되는 정보
- 고유성을 보장할 수 있는 식별자 존재
- 2개 이상의 인스턴스 존재
- 반드시 속성을 가짐
- 다른 엔티티와 1개 이상의 관계를 가짐
엔터티의 분류
- 형태로 분류하는 경우
- 유형 엔티티 (물리적 형태, 안정적, 지속적)
- 개념 엔티티 (물리적 형태 X, 개념적)
- 사건 엔티티 (행위로 인해 발생)
- 발생 시점으로 분류하는 경우
- 기본 엔티티 (독립적 생성, 자식 엔티티를 가질 수 있음)
- 중심 엔티티 (기본 엔티티로부터 파생, 행위 엔터티를 생성할 수 있음)
- 행위 엔터티 (2개 이상의 엔터티로부터 파생)
엔티티의 이름 설정
- 실제 업무에서 사용되는 용어
- 약어 사용 x, 영문은 대문자 표기
- 단수 명사로 표현, 띄어쓰기 x
- 다른 엔터티와 의미상 중복 x
- 해당 엔터티가 갖고 있는 데이터가 무엇인지 명확하게 표현
IE/Crow’s Foot 표기법
여러 표기법 중 가장 많이 사용되는 표기법이며 ERD를 그리는 모델링 툴에서 사용되는 모델
ERD 작성 순서
- 엔터티를 도출하여 그림
- 엔터티를 적절히 배치
- 엔터티 간의 관계 설정
- 관계명 기입
- 관계 참여도 기입
- 관계 필수·선택 여부 기입
속성
사물이나 개념의 특징을 설명해 줄 수 있는 항목
- 의미상 더 이상 쪼개지지 않는 레벨
- 각각의 속성은 엔티티에 속한 하나의 인스턴스를 구체적으로 나타내주는 데이터를 갖는 1개의 속성값을 가짐
분류
- 특성으로 분류
- 기본 속성 : 업무 프로세스 분석을 통해 바로 정의가 가능한 속성 (상품이름, 상품가격 등)
- 설계 속성 : 업무에 존재하지는 않지만 설계상 필요하다고 판단되어 도출해 낸 속성 (학번 등)
- 파생 속성 : 다른 속성의 속성값을 계산하거나 특정한 규칙으로 변형하여 생성한 속성, 필요한 경우에만 정의하는 것이 좋음 (데이터의 정합성 고려 필수) 데이터 조회 시 빠른 성능 보장
- 구성방식으로 분류
- PK 속성 : 엔터티의 인스턴스들을 식별할 수 있는 속성 (고유성)
- FK 속성 : 다른 엔터티의 속성에서 가져온 속성 (다른 엔터티와의 관계를 맺게 해주는 매개체 역할) → 다른 엔터티의 PK값과 일치하거나 NULL 값을 가질 수 있음
- 일반속성 : PK, FK를 제외한 나머지 속성
도메인
속성이 가질 수 있는 속성 값의 범위
용어사전
엔터티의 속성명을 정의할 때 명확한 의미의 이름을 부여하고 다른 엔터티와의 혼란을 예방하기 위해 이용하는 것
엔터티 & 인스턴스 & 속성의 관계
- 속성 ⊂ 인스턴스 ⊂ 엔터티의 관계
- 1개의 엔터티 → 2개 이상의 인스턴스를 가짐
- 1개의 인스턴스 → 2개 이상의 속성을 가짐
- 1개의 속성 → 1개의 속성 값을 가짐
관계
엔터티와 엔터티 사이의 연관성
- 존재 관계 : 존재 자체로 연관성이 있는 관계 (직원 <> 부서 등)
- 행위 관계 : 특정 행위로 연관성이 생기는 관계 (회원 <> 주문 등)
- 표기하기 위해 사용하는 항목 : 관계명, 관계차수, 관계선택사양
관계 차수
- 1:1 관계
- 1:N 관계
- N:M 관계
식별자
각각의 인스턴스를 구분할 수 있게 해주는 대표적인 표식
주식별자
기본키에 해당하는 속성, 하나의 속성이 주식별자가 될 수도 있고, 여러 개의 속성이 주식별자가 될 수도 있음 (적을수록 좋음)
- 유일성 : 각 인스턴스에 고유성을 부여하여 식별
- 최소성 : 유일성을 보장하는 최소 개수의 속성
- 불변성 : 속성값이 되도록 변하지 않아야 함
- 존재성 : 속성값이 NULL일 수 없음
주식별자 분류
- 대표성
- 주식별자 : 유일성, 최소성, 불변성, 존재성을 가진 대표식별자로 다른 엔터티와 참조 관계로 연결
- 보조식별자 : 주식별자가 아닌 인스턴스를 구별할 수 있는 식자로 다른 엔터티와 참조 관계로 연결되지 않음
- 스스로 생성 여부
- 내부식별자 : 엔티티 내부에서 스스로 생성된 식별자
- 외부식별자 : 다른 엔터티에서 온 식별자로 다른 엔터티와 연결하는 역할
- 단일 속성
- 단일식별자 : 1개의 속성으로 구성된 식별자
- 복합식별자 : 2개 이상의 속성으로 구성된 식별자
- 대체 가능성
- 원조식별자 : 업무 프로세스에 존재하는 식별자, 가공되지 않은 원래의 식별자
- 대리식별자 : 주식별자의 속성이 2개 이상인 경우 그 속성을 하나로 묶어 사용하는 식별자
식별자 관계
부모 엔터티의 식별자가 자식 엔터티의 주식별자가 되는 관계, 부모 엔터티가 있어야 생성 가능하고, 1:1이거나 1:M으로 구성
비식별자 관계
부모 엔터티의 식별자가 자식 엔터티의 일반 속성이 되는 관계, 일반 속성은 NULL 값을 가질 수 있으므로, 부모 엔터티 없는 자식 엔터티도 생성이 가능 (자식 엔터티가 존재하는 상태에서 부모 엔티티 제거도 가능)
반응형
'자격증 > SQLD' 카테고리의 다른 글
SQLD 정리 - 2과목 SQL 활용 (0) | 2023.03.18 |
---|---|
SQLD 정리 - 2과목 SQL 기본 PART 2 (0) | 2023.03.14 |
SQLD 정리 - 2과목 SQL 기본 PART 1 (0) | 2023.03.13 |
SQLD 정리 - 1과목 데이터 모델링과 성능 정리 (0) | 2023.03.12 |
댓글