
SQLD를 준비할 때 많은 분들이 일명 '노랭이'라는 책으로 잘 알려진 SQL 자격검정 실전문제를 풀지만, 노랭이엔 SQLD(SQL 개발자)와 SQLP(SQL 전문가) 문제가 모두 포함되어 있고, 노베이스 입장에서 어렵다는 얘기를 들어 'SQLD 모든 것' 교재를 통해 SQLD 자격증 준비를 시작하기로 했다.
해당 책은 SQLD에만 범위가 한정되어 있고, 노랭이와 달리 개념 파트가 함께 수록되어 있다.
1. 데이터 모델링의 이해
1.1. 데이터 모델의 이해
1.1.1. 모델링의 개념
모델링이란 현실세계를 대상으로 일종의 모델을 만드는 것을 의미한다. 모델이란 현실세계의 사물 혹은 개념을 구성요소로 나누고 이를 일정하게 도식화한 것이라고 할 수 있다. 이때 중요한 것은 도식화를 할 때 약속된 표기법을 따라야만 한다는 점이다. 모델링의 주 목적 중 하나는 업무의 흐름을 가시화하고 명세화하여(업무 형상화) 설계, 개발, 시스템 관리에 사용하는 것이다.
모델링에서 또 하나의 중요한 점은 모델링이 추상화를 기본으로 한다는 점이다. 추상화라는 것은 사물을 있는 그대로 나타내지 않고, 특징을 추려서 단순화하여 나타내는 것을 의미한다. 필요한 수준에서 데이터를 추상화하여 단순, 명료하게 표현하는 것이 중요하다.
정보시스템을 구축하기 위해서 데이터베이스를 설계하는 것도 하나의 모델링이며, 이를 데이터 모델링 또는 데이터베이스 모델링이라고 한다. 이후에 나오는 모델링은 모두 데이터 모델링을 뜻한다.
1.1.2. 모델링의 특징
① 추상화(Abstraction)
대상의 주요 특징을 추출하여 일정한 형식으로 표현한다. 대상을 범주화하여 클래스로 구분하고 공통된 특징을 서술하는 객체지향 설계에서의 추상화의 개념도 이와 같은 의미이다.
② 단순화(Simplification)
복잡한 현실세계를 그대로 표현하지 않고 보다 단순하게 표현한다. UML이나 ERD와 같이 제한된 언어나 약속된 표기법을 사용하여 누구나 이해하기 쉽도록 한다.
③ 명확화(Clarity)
모델링의 결과는 보는 사람에 따라 서로 다르게 해석되지 않고 대상을 명확하게 이해할 수 있도록 모호함이 없게 기술한다.
| 따라서 데이터 모델링이란 일정한 표기법을 사용하여 대상이 되는 데이터를 추상화, 단순화, 명확화하여 표현하는 것이다. |
※ 데이터 모델링 시 유의사항
● 중복 최소화: 데이터베이스의 여러 곳에 같은 정보를 중복하여 저장하지 않아야 한다.
● 비유연성 최소화: 데이터의 정의와 데이터의 사용 프로세스를 분리하여 데이터 또는 프로세스의 변화가 응용 프로그램과 데이터베이스에 미치는 영향을 최소화해야 한다.
● 비일관성 최소화: 데이터 간의 상호 연관관계를 명확하게 정의하여 데이터가 일관성있게 유지되어야 한다.
1.1.3. 모델링의 세 가지 관점
데이터 모델링은 업무 프로세스를 분석하여 이를 데이터 모델로 만드는 과정이다. 업무 프로세스가 무엇을 대상으로 하는지, 대상을 어떻게 처리하는지, 그리고 대상과 처리방법이 어떤 상관관계를 맺고 있는지를 분석하고 이를 모델링한다.
① 데이터 관점(대상)
업무를 구성하는 데이터에 집중하여 어떤 데이터들이 서로 관계를 맺고 사용되는지를 모델링하는 것이다. 정적분석, 구조분석 등을 기반으로 한다.
② 프로세스 관점(처리방법)
업무의 흐름에 집중하여, 업무가 실제로 처리하는 일이 어떻게 처리되는지를 모델링하는 것이다. 동적분석, 도메인분석 등을 기반으로 한다.
③ 데이터와 프로세스의 상관 관점(대상과 처리방법의 상관관계)
업무를 구성하는 데이터와 프로세스가 서로 어떻게 관계를 맺고 영향을 주고받는지를 모델링하는 것이다. CRUD(Create, Read, Update, Delete) 분석을 기반으로 한다.
1.1.4. 모델링의 세 가지 단계
데이터 모델링은 거시적, 포괄적 수준에서 먼저 모델링을 수행하고, 점차 상세한 수준으로 들어가며 최종적으로 물리적 모델링을 수행한다. 각 단계는 아래와 같다.
① 개념적 데이터 모델링
가장 높은 추상화 레벨을 가진 모델링으로 업무와 개념 중심으로 포괄적인 수준에서 모델링을 수행한다. 전사적 차원의 데이터 모델링을 수행할 때 이루어진다. EA(기업이나 조직의 IT 인프라와 보안을 활용하여 비즈니스 목표를 달성하기 위한 계획을 수립하는 것)를 수립할 때 많이 이용되며 이 단계에서 엔터티(Entity)와 속성(Attribute)을 도출한다.
② 논리적 데이터 모델링
데이터 모델에 대한 키, 속성, 관계 등을 표현하며 서로 다른 DBMS(Database Management System)에 적용이 가능한 수준에서의 추상화 레벨을 가지므로 재사용성이 높다. 정규화를 통해 중복 데이터를 최소화한다. 이 단계에서 식별자를 도출하고 관계를 정의한다.
③ 물리적 데이터 모델링
특정 DBMS에 맞추어 구현이 가능한 수준에서 모델링을 수행하는 것으로 DBMS의 성능이나 보안, 가용성 등을 고려하여 설계하는 것이다. 가장 낮은 수준에서의 추상화 레벨을 가진다. 성능 향상을 위해 반정규화를 수행하며 테이블, 인덱스, 함수 등을 생성한다.
1.1.5. ANSI-SPARC에서 정의한 3단계 스키마 구조
ANSI-SPARC에서 정의한 데이터베이스 아키텍처는 데이터 독립성을 보장하기 위한 설계방법을 제시한다. 3단계 스키마 구조를 가지며 이는 각각 사용자, 설계자, 개발자 관점에서 스키마를 정의한 것이다.
※ 데이터 독립성이란 데이터를 사용하는 사용자 영역과 데이터를 저장하는 디스크나 메모리 영역을 서로 분리하여 상호 간에 데이터 구조나 형식에 있어서 독립적으로 설계되고 운용될 수 있도록 하는 특성을 말한다. 독립성이 보장되면 각 계층별 의존성이 감소하여 전체 시스템의 유지보수성이 향상된다. 또한, 시스템 변경 작업 시 작업기간 단축, 비용 감소 등의 이점이 있다.
① 외부 스키마
사용자 관점, 사용자 또는 애플리케이션이 바라보는 데이터베이스 스키마를 정의한다. 다중 사용자 뷰를 제공한다.
② 개념 스키마
설계자 관점, 모든 사용자가 바라보는 데이터베이스 스키마를 통합하여 나타낸다. 전체 데이터베이스에 저장되는 데이터와 그 관계를 정의한다. 통한된 뷰를 제공한다.
③ 내부 스키마
개발자 관점, 디스크나 메모리 상의 물리적, 실질적 저장구조를 나타내며, 테이블, 칼럼, 인덱스 등을 정의한다. 물리적 뷰를 제공한다.

● 논리적 데이터 독립성: 외부 스키마와 개념 스키마 간의 독립성. 개념 스키마가 변경되어도 외부 스키마는 영향을 받지 않는다.
● 물리적 데이터 독립성: 개념 스키마와 내부 스키마 간의 독립성. 내부 스키마가 변경되어도 개념 스키마나 외부 스키마는 영향을 받지 않는다.
1.1.6. ERD
ERD(Entity Relationship Diagram)는 데이터베이스를 구성하는 데이터의 논리적 구성요소를 엔터티로 정의하고, 엔터티들 간의 관계를 특별한 표기법으로 나타냄으로써 스키마를 설계하는 방법을 제공한다.
데이터 모델링에 대한 문서화 방법을 제공하며, 시스템 분석, 설계의 결과를 가시화, 문서화, 명세화하여 사용자, 설계자, 개발자 간의 의사소통 수단이 된다.

● 엔터티: 박스로 나타내며, 엔터티 이름은 박스 상단에 표시한다.
● 속성: 박스 안에 리스트 형태로 표현한다. 주식별자(PK)와 일반 속성은 칸막이로 구분한다.
● 카디널리티: O는 0, 세로 실선은 1, 세 개의 까치발 모양은 다수(2 이상)를 의미한다.
● 관계: 박스를 연결한 선으로 표현한다. 식별자 관계는 실선, 비식별자 관계는 점선으로 표현한다.
※ ERD 작성 순서
1. 엔터티를 도출한다.
2. 도출된 엔터티를 적절하게 배치한다. 중요한 엔터티는 왼쪽 상단에 배치한다.
3. 엔터티 간의 관계를 설정한다.
4. 관계명을 기술한다.
5. 관계의 참여도(Cardinality)를 기술한다. (일대일, 일대다, 다대다)
6. 관계의 필수/선택 여부를 기술한다. (Null 값을 가질 수 있는지)
● 1976년 피터 첸에 의해 E-R Model이라는 표기법이 등장, 이후 더 많은 표기법이 생겨남
● 중요한 엔터티는 왼쪽 상단에 배치
'SQLD' 카테고리의 다른 글
| [SQLD] 1.4. 관계 (1) | 2025.05.12 |
|---|---|
| [SQLD] 1.3. 속성 (0) | 2025.05.11 |
| [SQLD] 1.2. 엔터티 (5) | 2025.05.11 |