모던지 / SQL 개발자 / 데이터 모델링 1강. 데이터 모델이라는 약속

데이터 모델링 1강. 데이터 모델이라는 약속

데이터 모델은 데이터베이스의 그림이 아닙니다. 앞으로 이 조직이 무엇을 사실로 인정할지 미리 적어 둔 계약서입니다.

풀고 시작

문제 1. 데이터베이스의 물리적 저장 구조를 바꿔도 응용 프로그램을 고치지 않아도 되는 성질을 무엇이라 부를까요?
인덱스를 새로 만들거나 파일 배치를 바꾸는 것은 내부 스키마의 일이고, 이 변화가 개념 스키마 위로 올라오지 않는 성질이 물리적 데이터 독립성입니다. 논리적 독립성은 개념 스키마에 컬럼이 하나 늘어도 기존 응용이 멀쩡한 성질이라 층이 한 칸 다릅니다.

모델링은 그림 그리기가 아니라 약속 정하기입니다

한 회사에서 "고객"이 몇 명이냐고 물었더니 부서마다 다른 숫자가 나왔다는 이야기는 어느 업계에나 있습니다. 영업은 계약서에 도장을 찍은 법인을 세었고, 고객센터는 전화를 건 사람을 세었고, 마케팅은 메일 수신에 동의한 주소를 세었습니다. 셋 다 성실하게 세었는데 숫자가 다릅니다. 이 사태를 막는 문서가 데이터 모델입니다.

그래서 모델링의 정의에는 추상화, 단순화, 명확화가 나란히 들어갑니다. 현실을 있는 그대로 옮기지 않고 필요한 만큼만 뽑아내고(추상화), 복잡한 것을 다룰 수 있는 형태로 줄이고(단순화), 애매한 말을 남기지 않는 것(명확화)입니다. 셋 중에서 시험이 좋아하는 것도 실무에서 어려운 것도 마지막입니다. "고객"이라는 한 단어의 뜻을 조직 전체가 같게 쓰기로 하는 일이니까요.

모델링은 보통 세 관점으로 나눠 봅니다. 무엇을 저장할지를 보는 데이터 관점, 무엇을 할지를 보는 프로세스 관점, 그 둘이 서로 어떤 영향을 주는지를 보는 데이터와 프로세스의 상관 관점입니다. SQLD 1과목은 이 중 첫 번째를 집중해서 묻습니다.

개념, 논리, 물리라는 세 벌의 설계도

같은 건물도 조감도와 평면도와 시공 도면이 따로 있듯이, 데이터 모델도 세 단계로 내려갑니다.

단계 무엇을 담나 특징
개념적 데이터 모델 업무의 핵심 엔터티와 관계 추상 수준이 가장 높고 전사 관점입니다
논리적 데이터 모델 속성, 식별자, 정규화된 구조 특정 데이터베이스 제품과 무관합니다
물리적 데이터 모델 테이블, 컬럼, 자료형, 인덱스 성능과 저장 구조를 함께 고려합니다

시험에서 갈리는 지점은 재사용성입니다. 추상화 수준이 높을수록 여러 곳에 다시 쓰이므로 개념 모델의 재사용성이 가장 높고, 물리 모델은 그 제품에 묶여 있어 가장 낮습니다. 반대로 구체성은 물리 모델이 가장 높죠. "재사용성이 높은 모델은 무엇인가"를 물으면 답은 위쪽 단계입니다.

또 하나 자주 나오는 말이 데이터 독립성입니다. 논리 모델이 바뀌어도 물리 구현이 흔들리지 않고, 물리 구현이 바뀌어도 응용이 흔들리지 않게 하려고 층을 나눈 것이거든요.

세 단계 스키마, 그리고 두 종류의 독립성

미국 표준협회가 제안한 세 단계 스키마는 데이터베이스를 세 층으로 봅니다. 사용자와 응용 프로그램이 보는 외부 스키마, 조직 전체가 합의한 통합 구조인 개념 스키마, 실제 저장 방식인 내부 스키마입니다. 층과 층 사이를 이어 주는 규칙을 사상(mapping)이라 부릅니다.

이 구조가 있어야 두 가지 독립성이 생깁니다. 논리적 데이터 독립성은 개념 스키마가 바뀌어도 외부 스키마가 견디는 성질입니다. 테이블에 컬럼을 하나 더해도 기존 화면이 멀쩡한 상황이 여기에 해당하죠. 물리적 데이터 독립성은 내부 스키마가 바뀌어도 개념 스키마가 견디는 성질입니다. 인덱스를 추가하거나 디스크를 옮겨도 업무 구조가 그대로인 상황입니다.

헷갈릴 때는 바뀐 층이 어디인지를 먼저 보세요. 저장 쪽이 바뀌었으면 물리, 업무 구조 쪽이 바뀌었으면 논리입니다.

좋은 모델이 피하는 세 가지

데이터 모델의 품질을 말할 때 늘 같은 세 단어가 나옵니다.

중복은 같은 사실이 여러 곳에 저장된 상태입니다. 한 곳만 고치면 나머지가 거짓이 되므로, 중복은 곧 거짓말의 씨앗입니다. 비유연성은 업무가 조금 바뀌었는데 모델을 크게 뜯어야 하는 상태입니다. 데이터 정의를 업무 로직과 지나치게 붙여 놓으면 이렇게 됩니다. 비일관성은 서로 모순되는 값이 공존하는 상태입니다. 중복이 방치되면 거의 반드시 여기로 이어지죠.

세 가지가 서로 다른 말처럼 보이지만 뿌리는 하나입니다. 사실 하나를 한 곳에만 두었는가. 다음 강부터 볼 엔터티, 속성, 관계는 결국 이 질문에 답하기 위한 도구들입니다.

인출 문제

문제 1. 데이터 모델링의 세 관점에 해당하지 않는 것은?
모델링은 무엇을 저장하는가, 무엇을 하는가, 그 둘이 어떻게 맞물리는가라는 세 관점으로 봅니다. 화면 설계는 중요한 작업이지만 데이터 모델링의 관점 구분에는 들어가지 않습니다.
문제 2. 개념적 데이터 모델에 대한 설명으로 가장 적절한 것은?
개념 모델은 업무의 큰 덩어리와 그 사이의 관계를 그리는 단계입니다. 자료형과 인덱스는 물리 모델의 일이고, 속성과 식별자를 확정해 정규화까지 마치는 것은 논리 모델의 일입니다.
문제 3. 테이블에 새로운 컬럼을 추가했는데도 기존 응용 프로그램을 수정할 필요가 없었습니다. 이때 확보된 성질은?
바뀐 층이 개념 스키마이고 견딘 층이 외부 스키마이므로 논리적 데이터 독립성입니다. 물리적 독립성은 저장 구조가 바뀌었을 때 개념 스키마가 견디는 성질이라 층이 한 칸 아래입니다.
문제 4. 데이터 모델이 가진 나쁜 성질과 그 설명이 잘못 짝지어진 것은?
데이터 모델의 품질을 말할 때 쓰는 세 가지는 중복, 비유연성, 비일관성입니다. 비가역성은 이 논의에 등장하지 않는 말이고, 조회 불가능이라는 설명도 모델 품질의 문제가 아닙니다.

생각해볼 질문 (정답 없음)

중복을 없애면 일관성은 좋아지지만 조회할 때마다 여러 테이블을 이어 붙여야 합니다. 그렇다면 어떤 상황에서 중복을 일부러 남겨 두는 편이 조직에 더 이로울까요.

더 풀기

출제기준의 세세항목을 따라 이 강의 범위에서 새로 낸 문제입니다. 모의고사도 여기에서 뽑습니다.

묶음 1

문제 1. 데이터 모델링을 한 문장으로 가장 알맞게 설명한 것은?
모델링의 본질은 현실을 단순화해 공통의 표기로 적어 두는 추상화입니다. 인덱스와 파티션은 물리 설계의 일부이고, 화면 항목 정리나 이관 매핑은 모델링의 결과를 쓰는 작업이지 모델링 자체는 아닙니다.
문제 2. 데이터 모델링의 세 가지 특징으로 흔히 함께 묶이는 것은?
모델링은 현실을 걷어 내고(추상화) 핵심만 남기며(단순화) 누가 읽어도 한 가지로 읽히게(명확화) 만드는 작업입니다. 정규화와 최적화는 모델링 안에서 쓰는 기법이지 모델링의 성질을 가리키는 말이 아닙니다.
문제 3. 데이터 모델링에서 말하는 데이터 관점에 해당하는 물음은?
데이터 관점은 무엇을 저장하는가를 봅니다. 처리 순서를 보는 것은 프로세스 관점이고, 처리가 데이터를 어떻게 바꾸는지 보는 것은 데이터와 프로세스의 상관 관점입니다. 조직 구조는 모델링의 세 관점에 들어가지 않습니다.
문제 4. 모델링의 세 관점 가운데 상관 관점이 답하려는 물음으로 가장 알맞은 것은?
상관 관점은 프로세스와 데이터가 만나는 자리를 봅니다. 어떤 기능이 어떤 엔터티를 생성하고 조회하고 수정하고 삭제하는지 표로 정리하는 작업이 여기에 해당합니다. 이름 짓기는 데이터 관점, 절차 분해는 프로세스 관점, 저장장치 배치는 물리 설계입니다.
문제 5. 데이터 모델링을 업무 분석 초기에 하는 가장 큰 이유는?
구조가 흔들리면 그 위에 쌓은 프로그램과 데이터가 모두 흔들립니다. 그래서 되돌리기 비싼 결정을 앞으로 당겨 합의합니다. 제품 선정과 화면 확정은 오히려 구조가 정해진 뒤에 하는 편이 안전합니다.
문제 6. 모델링을 잘못했을 때 나타나는 현상으로 보기 어려운 것은?
모델이 나쁘면 중복과 비유연성과 비일관성이 나타납니다. 메모리 부족은 자원 산정과 운영의 문제라 모델의 품질과 직접 이어지지 않습니다.
문제 7. 다음 중 추상화의 예로 가장 알맞은 것은?
추상화는 개별 사례에서 공통 성질만 남기는 일입니다. 통계와 인덱스와 데이터 이관은 이미 만들어진 구조를 사용하는 작업입니다.
문제 8. 데이터 모델이 의사소통 도구라고 불리는 이유로 가장 알맞은 것은?
표기법을 약속해 두면 서로 다른 역할의 사람이 한 장의 그림을 같은 뜻으로 읽습니다. 코드 자동 생성은 도구가 주는 부수 효과일 뿐이고, 모델이 있다고 회의가 사라지거나 성능이 보장되지는 않습니다.
문제 9. 모델링 과정에서 업무 담당자의 말을 그대로 받아 적기만 하면 생기는 문제로 가장 알맞은 것은?
현업 용어는 부서마다 다릅니다. 거래처와 협력사와 벤더가 같은 대상일 수 있는데 그대로 받아 적으면 세 개의 엔터티가 생깁니다. 그래서 추상화와 이름 통일이 모델링의 핵심 작업이 됩니다.
문제 10. 데이터 모델링에서 표기법을 정해 두는 가장 중요한 이유는?
표기법의 목적은 해석의 일치입니다. 선 하나가 누구에게나 같은 관계로 읽혀야 모델이 합의 문서가 됩니다. 미관이나 분량은 부수적인 문제입니다.

묶음 2

문제 1. 개념 데이터 모델의 특징으로 가장 알맞은 것은?
개념 모델은 전사 관점에서 무엇이 있는지를 굵게 그립니다. 자료형과 인덱스는 물리 모델, 기본키 확정과 정규화는 주로 논리 모델의 일입니다.
문제 2. 논리 데이터 모델 단계에서 주로 하는 일로 가장 알맞은 것은?
논리 모델은 제품과 무관하게 데이터의 구조를 정확하게 다듬는 단계입니다. 저장 공간과 제품 선정과 백업은 물리 설계와 운영의 영역입니다.
문제 3. 물리 데이터 모델 단계에 해당하는 작업은?
물리 모델은 특정 데이터베이스 제품 위에서 실제로 돌아가게 만드는 단계입니다. 관계 차수와 도메인과 업무 규칙은 그 앞 단계에서 정해집니다.
문제 4. 세 단계 스키마 구조에서 외부 스키마를 가장 잘 설명한 것은?
외부 스키마는 사용자마다 다른 뷰입니다. 통합 구조는 개념 스키마, 저장 방식은 내부 스키마입니다. 관리 시스템의 알고리즘은 스키마의 대상이 아닙니다.
문제 5. 세 단계 스키마에서 개념 스키마의 역할로 가장 알맞은 것은?
개념 스키마는 모든 사용자의 관점을 하나로 통합한 전사 관점의 구조입니다. 사용자별 관점은 외부 스키마, 저장 구조는 내부 스키마이며 처리 절차는 스키마의 대상이 아닙니다.
문제 6. 논리적 독립성을 가장 잘 설명한 것은?
논리적 독립성은 개념 스키마와 외부 스키마 사이의 독립입니다. 저장 장치 교체는 물리적 독립성이고, 제품 교체나 값의 일관성은 독립성이라는 말이 가리키는 대상이 아닙니다.
문제 7. 물리적 독립성을 확보하면 얻는 이점으로 가장 알맞은 것은?
물리적 독립성은 내부 스키마와 개념 스키마 사이의 독립입니다. 인덱스를 새로 만들거나 저장 방식을 바꾸어도 위쪽 구조는 그대로입니다. 성능이나 중복은 다른 차원의 문제입니다.
문제 8. 개념 모델에서 논리 모델로 넘어갈 때 새로 확정되는 것으로 가장 알맞은 것은?
논리 모델은 개념 모델의 굵은 골격에 속성을 채우고 식별자를 정하고 정규화를 적용합니다. 인덱스와 테이블스페이스와 백업 전략은 그다음 물리 단계의 일입니다.
문제 9. 데이터 모델링 과정을 개념과 논리와 물리로 나누어 하는 이유로 가장 알맞은 것은?
무엇을 저장할지와 어떻게 저장할지를 한꺼번에 정하면 업무 논의가 성능 논의에 끌려갑니다. 관심사를 나누면 각 단계에서 되돌릴 수 있는 결정만 다루게 됩니다.
문제 10. 데이터 독립성이 필요한 근본적인 이유로 가장 알맞은 것은?
독립성의 목적은 변화의 파급을 막는 것입니다. 저장 구조를 바꾸었다고 모든 프로그램을 고쳐야 한다면 시스템은 곧 손댈 수 없게 됩니다. 용량과 권한과 암호화는 다른 목적을 가진 장치입니다.

묶음 3

문제 1. 좋은 데이터 모델이 피하려는 세 가지로 알맞게 묶인 것은?
데이터 모델의 품질을 해치는 대표적인 세 가지는 같은 값이 여러 곳에 있는 중복, 작은 변화에 구조가 흔들리는 비유연성, 값끼리 서로 어긋나는 비일관성입니다. 성능은 물리 설계에서 다루는 별개의 축입니다.
문제 2. 비유연성이 높은 모델의 증상으로 가장 알맞은 것은?
비유연성은 사소한 업무 변화가 구조 변경을 요구하는 상태입니다. 값이 두 곳에 있는 것은 중복이고, 이름이 제각각인 것은 표준화의 문제입니다.
문제 3. 비일관성이 생기는 가장 흔한 원인은?
같은 값이 두 곳에 있으면 한쪽만 바뀌는 순간 어긋납니다. 비일관성은 대부분 중복의 결과로 나타납니다. 인덱스와 자료형과 뷰는 이 문제와 직접 관련이 없습니다.
문제 4. 데이터 모델의 품질을 평가할 때 완전성이 뜻하는 것으로 가장 알맞은 것은?
완전성은 필요한 것이 다 들어 있는가를 봅니다. 값의 어긋남은 일관성, 변화 대응은 유연성이 다루는 항목이고, 최신성은 운영의 문제입니다.
문제 5. 데이터 표준화가 모델 품질에 기여하는 방식으로 가장 알맞은 것은?
이름과 도메인을 통일해 두면 이미 있는 데이터를 다시 만드는 일이 줄고, 읽는 사람이 뜻을 다르게 새기는 일도 줄어듭니다. 표준화는 정규화를 대신하지 않고 나란히 갑니다.
문제 6. 다음 중 모델의 중복 문제를 가장 잘 보여 주는 상황은?
같은 사실인 고객 주소가 두 테이블에 각각 저장되면 한쪽만 바뀌었을 때 어느 쪽이 맞는지 알 수 없습니다. 인덱스 개수나 행 수, 이력 관리는 중복과 다른 이야기입니다.
문제 7. 개념 모델을 그릴 때 속성을 지나치게 자세히 적으면 생기는 문제로 가장 알맞은 것은?
개념 모델의 쓸모는 전체를 굵게 보여 주는 데 있습니다. 세부를 다 적으면 그 장점이 사라지고 회의가 컬럼 논쟁으로 흘러갑니다. 세부는 논리 모델에서 다루면 됩니다.
문제 8. 데이터 모델링에서 업무 규칙을 모델에 반영해 두면 얻는 이점으로 가장 알맞은 것은?
관계와 제약으로 표현할 수 있는 규칙을 구조에 담아 두면 프로그램마다 같은 검증을 반복하지 않아도 되고 규칙이 서로 어긋날 여지도 줄어듭니다. 프로그램 자체가 사라지지는 않습니다.
문제 9. 데이터 모델링에서 발생하는 이른바 확장성 문제의 예로 가장 알맞은 것은?
유형이 늘 때마다 구조가 늘어난다면 그 모델은 변화에 열려 있지 않습니다. 값의 불일치는 비일관성이고 정렬과 이름 길이는 모델 품질의 문제가 아닙니다.
문제 10. 데이터 모델을 검토할 때 가장 먼저 확인해야 할 것으로 알맞은 것은?
무엇을 관리할지가 빠져 있으면 그 아래 결정은 모두 다시 해야 합니다. 자료형과 인덱스는 나중에 고쳐도 파급이 작습니다.

다음: 2강 엔터티

모던지 · 궁금하면 모던지 GitHub · 2026-09-10