Data Modeling 이해
Modeling
- 현실 세계를 단순화하여 표현하는 기법
특징
- Abstruction (추상화) : 아이디어나 개념을 간략하게 표현
- Simplication (단순화) : 단순하고 쉽게 표현
- Clarity (명확성) : 명확하게 해석할 수 있도록 표현
관점
- Data, What? : 어떤 데이터, 어떤 관계성?
- Process, How? : 처리하고 있는 일, 그리고 처리해야 하는 일?
- Interaction : Process의 흐름에 따라 데이터의 영향?
품질
- Duplication (중복) X
- Inflexibility (비유연성) X
- Inconsistency (비일관성) X
단계
- Conceptual : 업무 중심적이고 포괄적인 수준
- Logical : 재사용성
- Physical : 실제 데이터베이스로 구현
독립성
ERD (Entity Relationship Diagram)
1️⃣ 표기 방식
- IE / Crow's foot
- UML
2️⃣ IE / Crow's foot 표기법
Entity
- 식별이 가능한 객체
- <=> Table
특징
- 업무에서 쓰이는 정보
- 유니크함을 보장할 수 있는 식별자가 있어야 함
- 2개 이상의 Instance를 가지고 있어야 함
- 반드시 속성을 가지고 있어야 함
- 다른 Entity와 1개 이상의 관게를 가지고 있어야 함
분류
유형 vs 무형
❶ 유형 : 물리적인 형태 존재
❷ 개념 : 물리적인 형태 존재 X
❸ 사건 : 행위를 함으로써 발생
발생 시점
❶ 기본 : 업무에 원래 존재하는 정보
❷ 중심 : 업무에 있어서 중심적인 역할, 데이터의 양 많이 발생
❸ 행위 : 데이터가 자주 변경 or 증가할 수 있음
Attribute (속성)
- 사물이나 개념의 특징을 설명해줄 수 있는 항목
- Entity의 특징을 나타내는 최소의 데이터 단위
Attribute value
- 하나의 Instance를 구체적으로 나타내주는 데이터
분류
1️⃣ 특성에 따른 분류
- Basic Attribute : 업무 프로세스 분석을 통해 바로 정의가 가능한 속성
- Designed Attribute : 업무에 존재하지는 않지만, 설계하다 보니 필요하다고 판단되어 도출해낸 속성
- Derrived Attribute : 다른 속성의 속성값을 계산하거나, 특정한 규칙으로 변형하여 생성한 속성
2️⃣ 구성방식에 따른 분류
- PK (Primary Key) : Entity의 Instance 들을 식별할 수 있는 속성
- FK (Foreign Key) : 다른 Entity의 속성에서 가져온 속성
- 일반 속성 : PK, FK를 제외한 나머지 속성
Domain
- Attribute 가 가질 수 있는 Attribute value 의 scope
- Data type 과 size 로 나타낼 수 있음
용어사전
속성의 이름을 정확하면서도 직관적으로 부여하고 용어의 혼란을 없애기 위해 용어사전이라는 업무사전을 프로젝트에서 사용
System catalog
사용자 테이블과는 별개로 시스템 자체에 관련이 있는 데이터를 담고 있는 DB
시스템 카탈로그에 저장된 데이터를 메타 데이터라고 하며, SELECT만 가능
Relationship
- Entity와 Entity 간의 관계
- 어떠한 연관성이 있는지 타입을 분류하여 존재 관계와 행위 관계로 나눌 수 있음
존재 관계
- 존재 자체로 연관성이 있는 관계
행위 관계
- 특정한 행위를 함으로써 연관성이 생기는 관계
표기법
- Membership (관계명) : 관계의 이름 (모든 관계는 두 개의 관계명을 가짐, 명확한 문장 + 현재형)
- Cardinality (관계차수) : 관계에 참여하는 수 (1:1, 1:M, N:M)
- Optionality (관계선택사양) : 필수인지 선택인지의 여부
Identifiers (식별자)
- 각각의 Instance를 구분 가능하게 만들어주는 대표격인 속성
주식별자
- PK (Primary Key)에 해당하는 속성
- 하나의 속성 or 여러 개의 속성
- 유일성 : 각 Instance 에 유니크함을 부여하여 식별이 가능하도록 한다
- 최소성 : 유일성을 보장하는 최소 개수의 속성이어야 한다
- 불변성 : 속성값이 되도록 변하지 않아야 한다.
- 존재성 : 속성값이 NULL일 수 없다.
분류
1️⃣ 대표성 여부
- Primary Identifier : 유일성, 최소성, 불변성, 존재성을 가진 대표 식별자로, 다른 entity와 참조 관계로 연결
- Alternate Identifier : Instance를 식별할 수는 없지만, 대표 식별자는 아니고 다른 entity와 참조 관계 연결 x
2️⃣ 스스로 생성되었는지 여부
- Internal Identifier : Entity 내부에서 스스로 생성된 식별자
- Foregign Identifier : 다른 Entity 에서 온 식별자, 다른 Entity 와의 연결고리 역할
3️⃣ 단일 속성의 여부
- Single Identifier : 하나의 속성으로 구성된 식별자
- Composite Identifier : 두 개 이상의 속성으로 구성된 식별자
4️⃣ 대체 여부
- Original Identifier : 업무 프로세스에 존재하는 식별자, 가공되지 않은 원래의 식별자
- Surrogate Identifier : 주식별자의 속성이 두 개 이상인 경우, 그 속성들을 하나로 묶어서 사용하는 식별자
식별자 관계 vs 비식별자 관계
1️⃣ Identification Relationship
- 부모 entity 의 식별자가 자식 entity 의 주식별자가 되는 관계
- 단일 식별자인지 복합 식별자인지에 따라 1:1 이거나 1:M 결정됨
2️⃣ Non-Identification Relationship
- 부모 entity 의 식별자가 자식 entity 의 주식별자가 아닌 일반 속성이 되는 관계
'Data Engineer > SQLD' 카테고리의 다른 글
SQLD - SQL 활용 (1) | 2024.11.18 |
---|---|
SQL 기본 (3) | 2024.11.13 |
데이터 모델과 SQL (3) | 2024.11.09 |