SQLD 합격을 위하여 1편 (데이터 모델링)
데이터 모델링 이란?
=> 제한된 공간에 데이터를 효과적으로 담아내는 방법을 추상화하는것
데이터 모델링에서의 데이터란?
=> 현실 세계에 존재하고 있는 모든것
데이터 모델링의 핵심 3가지
=> 추상화, 단순화, 명확화
데이터 모델링의 관점 3가지
=> 데이터 관점, 프로세스 관점, 데이터-프로세스 관점
기본 3가지 모델링
=> 개념적 모델링, 논리적 모델링, 물리적 모델링
1. 개념적 모델링
=> 추상화 수준이 가장 높은 과정, 현실 세계의 데이터를 파악 및 분석 단계
=> 데이터 모델링 과정 중 가장 먼저 진행
=> 엔티티, 관계, 속성
2.논리적 모델링
=> 테이블
=> 컬럼
=> 기본키
=> 외래키
=> 정규화 과정
=> 스키마
3. 물리적 모델링
=> 다양한 스키마 정보를 물리적 공간인 DBMS의 특성 정보로 변환 및 정의 하는것
=> DBMS의 종류, 테이블의 컬럼 데이터 유형 크기 정의, 컬럼의 제약 조건
ER모델(Entity Relationship)
=> 개념적 모델링 과정에서 현실 세계의 개체와 개체간읜 관계를 기호로 표현하는 모델 =
=> 사각형이 개체
=> 마름모가 관계
=> 동그라미가 속성
ANSI-SPARC에서 정의한 3단계 스키마 구조
=> 외부 스키마 : 사용자의 관점, 각 사용자가 보는 데이터베이스의 스키마를 정의
=> 개념 스키마 : 통합된 관점, 모든 사용자가 보는 데이터베이스의 스키마를 통합하여 전체 데이터베이스를 나타냄, 데이터들간의 관계를 나타낸다
=> 내부 스키마 : 물리적인 저장 구조, 실질적인 데이터의 저장 구조나 컬럼 정의, 인덱스등
=> 이렇게3개로 나누는 이유는?
사용자들의 관점과 데이터베이스가 실제로 표현되는 물리적인 방식을 분리하여 독립성을 보장하기 위해
1. 논리적 독립성 : 개념 스키마가 변경되어도 외부 스키마는 영향을 안받음
2. 물리적 독립성 : 내부 스키마가 변경 되어도, 외부/개념 스키마는 영향을 안받음
엔티티 : 테이블
인스턴스 : 로우
속성 : 컬럼
엔티티의 특징
=> 다른 엔티티와 1개 이상의 관계를 가지고 있어야 한다
=> 반드시 속성을 가지고 있는다
=> 2개 이상의 인스턴스를 가지고 있어야한다
=> 유니크함을 보장할 수 있는 식별자 존재
기본 엔티티 : 독립적으로 생성되어, 주식별자를 가지고 있으면서 다른 엔티티의 부모 역할을 함
중심 엔티티 : 기본 엔티티로부터 파생, 행위 엔티티를 생성함
행위 엔티티 : 두개 이상의 부모 엔티티로부터 파생
기본속성 : 업무 프로세스 분석을 통해 바로 정의가 가능한 속성
설계 속성 : 업무에는 없지만, 설계하다보니 필요하다고 판한된 속성
파생 속성 : 다른 속성의 속성값을 계산하거나 특정 규칙으로 변형하여 생성된 속성