728x90
SMALL
- 이번 카테고리에서는 SQLD 자격증의 첫 번째 파트인 '데이터 모델링의 이해'에 초점을 맞추어, 데이터 모델링이 무엇인지, 왜 중요한지에 대해 알아보고자 합니다.
- 추가적으로 SQLD 자격증을 따기 위해 공부한 내용들을 정리하면서 추후에도 살펴볼 수 있도록 하고자 합니다!
- 먼저 데이터 모델에 대한 설명을 정리해보겠습니다.
데이터 모델이란?
- 데이터 모델링은 복잡한 현실 세계의 정보를 컴퓨터 시스템에서 사용할 수 있도록 체계적으로 조직화, 정의, 관리하는 과정입니다.
- 이 과정에서 데이터 모델은 비즈니스의 정보 요구 사항을 기술적으로 표현하는 데 필요한 구조입니다.
- 데이터 모델링의 핵심 요소와 단계를 살펴보겠습니다.
✅ 모델링이 갖춰야 할 조건
- 모델링은 현실 세계의 데이터를 정확하게 반영해야 하며, 데이터 간의 관계를 명확히 표현할 수 있어야 합니다.
- 또한, 모델 간의 관계를 상세화하는 것이 아닌, 단순화하여 표현해야 하고, 관리하고자 하는 데이터를 모델로 설계해야 합니다.
✅ 모델링의 특징 3가지!
- 추상화: 복잡한 현실 세계를 간결하고 핵심적인 정보만으로 표현합니다.
- 단순화: 불필요한 세부 사항을 제거하여 이해하기 쉽게 만듭니다.
- 명확화: 데이터 구조와 관계를 명확하고 정확하게 정의하여 오해의 여지가 없도록 합니다.
✅ 모델링의 관점 3가지!
- 데이터 관점: 데이터가 어떻게 저장되고, 관리되어야 하는지에 초점을 맞춥니다.
- 프로세스 관점: 데이터가 어떻게 처리되고, 흐르는지에 대한 과정을 설명합니다.
- 데이터와 프로세스의 상관 관점: 데이터와 프로세스가 어떻게 서로 영향을 주고받는지를 분석합니다.
✅ 모델링의 단계 3가지!
- 개념적 데이터 모델링: 가장 높은 수준의 추상화를 제공하며, 비즈니스 요구 사항을 중심으로 합니다.
- 논리적 데이터 모델링: 개념적 모델을 바탕으로 데이터의 구조를 정의하고, 데이터 간의 관계를 명확히 표현합니다.
- 물리적 데이터 모델링: 실제 데이터베이스에 저장될 데이터의 구체적인 형태와 구조를 설계합니다.
✅ 데이터의 독립성
- 데이터는 데이터베이스 구조가 변경되어도 응용 프로그램이나 사용자의 데이터 접근 방식에 영향을 주지 않도록 하는 것을 목표로 합니다.
- 데이터의 독립성은 주로 논리적 독립성과 물리적 독립성의 두 가지로 구분됩니다.
- 논리적 독립성: 논리적 독립성은 데이터베이스의 논리적 구조가 변경되어도, 응용 프로그램에 영향을 주지 않도록 보장하는 것입니다. 예를 들어, 데이터베이스에 새로운 데이터 필드가 추가되거나, 데이터의 구조가 재편되더라도 기존 응용 프로그램이 이러한 변경 사항에 영향을 받지 않고 계속해서 정상적으로 작동할 수 있어야 합니다.
- 물리적 독립성: 물리적 독립성은 데이터베이스의 물리적 저장 구조가 변경되어도 응용 프로그램이나 사용자 쿼리에 영향을 주지 않도록 하는 것입니다. 예를 들어, 데이터를 저장하는 파일 시스템이 변경되거나, 데이터베이스가 다른 서버로 이전되는 경우에도 사용자는 데이터에 동일한 방식으로 접근할 수 있어야 합니다.
- 독립성은 외부 스키마(사용자의 관점), 개념 스키마(전체적인 관점), 내부 스키마(물리적 저장 관점)의 세 단계 스키마 구조를 통해 구현됩니다.
- 데이터와 응용 프로그램의 분리를 통해, 기업은 기술적인 변화에 더욱 민첩하게 대응할 수 있으며, 장기적인 관점에서 데이터 관리 전략을 효과적으로 수립할 수 있습니다.
✅ ERD
- ERD(Entity-Relationship Diagram)는 데이터 모델링에서 데이터 객체 간의 관계를 시각적으로 표현하는 도구입니다.
- ERD를 작성할 때는 주로 IE/Crow's Foot 표기법이 사용됩니다. 최근에는 Barker 표기법도 사용된다고 합니다.
- 작성 순서는 일반적으로 엔티티를 그리고 배치한 뒤, 엔티티 간의 관계를 정의한 다음, 관계명을 기입 후, 관계의 참여도 및 필수/선택 여부를 기입하는 순입니다.
✅ 좋은 데이터 모델의 요소 6가지!
- 완전성: 업무에 필요한 모든 데이터가 모델에 정의되어 있는 것이 좋습니다.
- 중복배제: 하나의 데이터베이스 내에 동일한 사실은 한 번만 있는 것이 좋습니다.
- 업무규칙: 많은 규칙을 사용자들이 공유할 수 있도록 하는 것이 바람직합니다.
- 데이터 재사용: 데이터가 독립적으로 설계되어야 합니다.
- 의사소통: 업무규칙은 엔티티, 서브타입, 속성, 관계 등의 형태로 최대한 자세히 표현되어야 좋습니다.
- 통합성: 동일한 데이터는 한 번만 정의, 참조, 활용되어야 합니다.
엔티티(Entity)
- 데이터 모델링을 진행할 때 가장 기본이 되는 개념 중 하나는 '엔티티'입니다.
✅ 엔티티란?
- 엔티티는 데이터베이스에서 실체적으로 존재하거나 관심의 대상이 되는 사물, 사람, 개념, 사건 등을 의미합니다.
- 각 엔티티는 데이터베이스 내에서 고유하게 식별될 수 있는 속성을 가지며, 이를 통해 데이터 간의 관계를 정의하고 데이터베이스를 설계하는 기초가 됩니다.
✅ 엔티티의 특징 5가지!
- 업무에서 쓰이는 정보: 엔티티는 해당 업무나 시스템에서 실제로 사용되는 정보를 기반으로 해야 합니다.
- 유니크한 식별자 필요: 각 엔티티는 고유한 식별자를 가져야 합니다. 이 식별자는 엔티티의 각 인스턴스를 명확하게 구별할 수 있어야 하며, 엔티티 내에서 유일무이한 값을 가집니다. 식별자의 존재는 데이터베이스 내에서 데이터의 일관성과 무결성을 유지하는 데 필수적입니다.
- 2개 이상의 인스턴스: 엔티티는 최소한 두 개 이상의 인스턴스를 포함할 수 있어야 합니다. 단 하나의 인스턴스만을 가지는 엔티티는 데이터 모델링에서 효율적이지 않으며, 대부분의 경우 속성이나 다른 엔티티의 일부로 통합될 수 있습니다.
- 2개 이상의 속성: 엔티티는 최소 두 개 이상의 속성을 포함해야 바람직합니다. 속성을 통해 엔티티의 세부 정보를 정의하고, 엔티티 간의 관계를 명확히 합니다.
- 다른 엔티티와 1개 이상의 관계: 엔티티는 데이터베이스 내에서 독립적으로 존재하지 않으며, 최소한 하나 이상의 다른 엔티티와 관계를 맺고 있어야 합니다.
✅ 엔티티의 분류 2가지!
1. 유형이냐, 무형이냐
유형 엔티티: 유형 엔티티는 물리적인 형태가 있는 구체적인 사물을 지칭합니다. 예를 들어, '직원', '제품', '차량' 등이 이에 해당합니다.
개념 엔티티: 개념 엔티티는 물리적 형태는 없지만, 업무 수행에 필요한 개념적인 정보를 담고 있습니다. 예를 들어, '부서', '직급' 등이 여기에 속합니다. 이러한 엔티티는 조직의 구조나 규칙을 반영합니다.
사건 엔티티: 사건 엔티티는 특정 사건이나 활동을 나타내며, 시간적인 요소를 포함합니다. 예를 들어, '주문', '결제', '배송' 등이 이에 해당합니다. 사건 엔티티는 업무 프로세스나 트랜잭션을 모델링할 때 중요합니다.
2. 언제 발생되었냐
기본 엔티티: 업무를 위해 반드시 필요하며, 독립적으로 존재할 수 있는 엔티티입니다. 기본 엔티티는 다른 엔티티와의 관계를 통해 추가적인 정보를 제공합니다.
중심 엔티티: 기본 엔티티로부터 파생되는 엔티티이며, 행위 엔티티를 생성합니다.
행위 엔티티: 2개 이상의 엔티티로부터 파생되는 엔티티입니다.
✅ 엔티티 작명할 때 주의할 점 3가지!
- 명확성: 엔티티의 이름은 그 엔티티가 무엇을 나타내는지 명확하게 반영해야 합니다. 일반적으로 명사를 사용합니다.
- 일관성: 전체 데이터 모델 내에서 엔티티의 이름은 일관성을 유지해야 합니다. 같은 개념을 나타내는 데 여러 용어를 혼용해서는 안 됩니다. 다른 엔티티와 의미상으로 중복되어서도 안 됩니다.
- 단수형 사용: 엔티티의 이름은 가능한 단수형을 사용해야 합니다. 또한, 띄어쓰기를 하지 않습니다.
728x90
LIST
'자격증 > SQLD' 카테고리의 다른 글
SQL 기본 (1) (0) | 2024.02.19 |
---|---|
데이터 모델과 SQL (2) (0) | 2024.02.15 |
데이터 모델과 SQL (1) (1) | 2024.02.12 |
데이터 모델링의 이해 (3) (2) | 2024.02.10 |
데이터 모델링의 이해 (2) (2) | 2024.02.10 |