데이터베이스란? 4대 특징·DBMS·설계 절차·정규화와 1NF·2NF·3NF·BCNF 쉽게 이해하기
데이터베이스란? 4대 특징·DBMS·설계 절차·정규화와 1NF·2NF·3NF·BCNF 쉽게 이해하기#
회원이 10명뿐인 작은 서비스라면 정보를 Excel 파일 하나에 저장해도 크게 문제가 없을 수 있습니다.
하지만 사용자가 10만 명, 주문이 100만 건으로 늘어나면 이야기가 달라집니다.
다음 데이터를 관리해야 한다고 생각해봅시다.
회원
상품
주문
결제
배송
재고
고객 문의이 정보를 여러 파일에 아무 규칙 없이 저장하면 같은 고객의 이름이 여러 곳에 중복되고, 한쪽 파일에서는 주소를 수정했는데 다른 파일에는 이전 주소가 남을 수도 있습니다.
또 여러 사용자가 동시에 같은 데이터를 사용해야 할 수도 있습니다.
이런 문제를 체계적으로 해결하기 위해 사용하는 것이 데이터베이스 Database입니다.
1장 데이터베이스란 무엇인가#
데이터베이스는 조직이나 시스템에서 필요한 데이터를 일정한 구조와 규칙에 따라 저장하고 여러 사용자가 활용할 수 있도록 관리하는 데이터의 집합입니다.
쉽게 표현하면:
데이터를 그냥 쌓아두는 공간
X
필요한 데이터를
체계적으로 저장하고 관리하는 공간
O라고 이해하면 됩니다.
예를 들어 쇼핑몰에서는 다음과 같은 데이터가 존재합니다.
고객 데이터
상품 데이터
주문 데이터
결제 데이터
배송 데이터이를 데이터베이스에서 체계적으로 관리하면:
검색
추가
수정
삭제
집계
분석등을 효율적으로 수행할 수 있습니다.
2장 데이터베이스의 4대 특징#
ADsP에서는 데이터베이스의 특징을 네 가지로 정리합니다.
통합된 데이터
저장된 데이터
공용 데이터
운영 데이터각각의 의미를 단순히 암기하기보다 왜 필요한지 이해하는 것이 좋습니다.
3장 통합된 데이터란 무엇인가#
통합된 데이터는 동일한 내용의 데이터가 불필요하게 중복되지 않도록 통합하여 관리하는 것을 의미합니다.
예를 들어 고객 한 명의 정보가 여러 시스템에 다음처럼 저장되어 있다고 생각해봅시다.
회원 시스템
김민수 / 서울시 강남구
주문 시스템
김민수 / 서울시 강남구
배송 시스템
김민수 / 서울시 강남구고객이 주소를 변경하면 세 시스템을 모두 수정해야 할 수 있습니다.
그런데 한 곳만 수정하면:
회원 시스템
서울시 송파구
주문 시스템
서울시 강남구
배송 시스템
서울시 강남구처럼 서로 다른 값이 존재하게 됩니다.
이러한 문제를 줄이기 위해 데이터를 가능한 한 일관되게 통합해서 관리합니다.
핵심#
통합된 데이터
→ 불필요한 중복 최소화
→ 데이터 일관성 향상시험에서 기억할 표현#
동일한 내용의 데이터가
불필요하게 중복되지 않도록 통합입니다.
4장 저장된 데이터란 무엇인가#
데이터베이스의 데이터는 컴퓨터가 접근할 수 있는 저장매체에 저장되어 있어야 합니다.
예를 들어:
SSD
HDD
Server Storage
Cloud Storage등에 데이터가 저장될 수 있습니다.
사람의 머릿속에만 존재하는 정보는 데이터베이스에 저장된 데이터라고 할 수 없습니다.
또 종이에만 기록되어 있고 컴퓨터가 접근할 수 없는 정보 역시 일반적인 데이터베이스의 저장 데이터와는 다릅니다.
핵심#
저장된 데이터
→ 컴퓨터가 접근 가능한 저장매체에 존재입니다.
5장 공용 데이터란 무엇인가#
공용 데이터는 여러 사용자가 서로 다른 목적을 위해 공동으로 사용하는 데이터입니다.
예를 들어 쇼핑몰의 상품 데이터를 생각해봅시다.
같은 상품정보를:
고객
→ 상품 조회
영업팀
→ 판매현황 확인
재고팀
→ 재고 관리
마케팅팀
→ 상품 분석처럼 서로 다른 사용자가 활용할 수 있습니다.
즉 데이터베이스는 특정 사용자 한 명만을 위해 존재하는 것이 아니라 여러 사용자와 업무가 데이터를 함께 사용할 수 있도록 구성됩니다.
핵심#
공용 데이터
→ 여러 사용자가 공동 이용입니다.
6장 운영 데이터란 무엇인가#
운영 데이터는 조직이나 기업의 실제 업무를 수행하기 위해 필요한 데이터입니다.
예를 들어 쇼핑몰에서는:
회원 가입
주문
결제
배송
재고 변경같은 실제 업무가 계속 발생합니다.
따라서 데이터도 계속 변화합니다.
새 주문
→ 삽입
배송지 변경
→ 갱신
회원 탈퇴
→ 삭제즉 운영 데이터는 단순히 보관만 하는 데이터가 아니라 실제 업무 과정에서 계속 사용되고 변화하는 데이터입니다.
핵심#
운영 데이터
→ 실제 업무에 사용
→ 삽입·삭제·갱신으로 변화입니다.
7장 데이터베이스 4대 특징 한눈에 보기#
| 특징 | 의미 | 쉽게 기억하기 |
|---|---|---|
| 통합된 데이터 | 불필요한 중복 최소화 | 같은 데이터 여러 번 저장하지 않기 |
| 저장된 데이터 | 컴퓨터가 접근 가능한 저장매체에 저장 | 컴퓨터에 저장 |
| 공용 데이터 | 여러 사용자가 함께 활용 | 함께 사용 |
| 운영 데이터 | 실제 업무에 사용되는 데이터 | 업무 중 계속 변화 |
시험 직전에는 다음처럼 기억할 수 있습니다.
통합
→ 중복 최소화
저장
→ 저장매체
공용
→ 여러 사용자
운영
→ 실제 업무8장 DBMS란 무엇인가#
DBMS는 Database Management System의 약자입니다.
한국어로는 데이터베이스 관리 시스템이라고 합니다.
데이터베이스에 데이터를 저장한다고 해서 모든 것이 자동으로 관리되는 것은 아닙니다.
데이터를:
생성
조회
추가
수정
삭제
관리할 수 있는 소프트웨어가 필요합니다.
그 역할을 하는 것이 DBMS입니다.
데이터베이스와 DBMS 차이#
초보자가 자주 혼동하는 부분입니다.
Database
→ 실제 데이터가 저장되는 구조와 집합
DBMS
→ Database를 관리하는 Software라고 구분하면 쉽습니다.
비유하면:
Database
→ 도서관에 있는 책
DBMS
→ 책을 관리하는 도서관 관리 시스템처럼 생각할 수 있습니다.
9장 데이터베이스 설계는 왜 필요한가#
데이터베이스를 만든다고 해서 곧바로 Table부터 생성하면 되는 것은 아닙니다.
먼저:
어떤 데이터를 저장해야 하는가?
데이터끼리 어떤 관계가 있는가?
어떤 구조로 Table을 나눌 것인가?
실제 저장은 어떻게 할 것인가?를 단계적으로 결정해야 합니다.
ADsP 학습에서는 데이터베이스 설계 절차를 다음 네 단계로 정리합니다.
요구 분석
↓
개념 설계
↓
논리 설계
↓
물리 설계순서를 반드시 기억합니다.
10장 1단계 요구 분석#
요구 분석에서는 사용자가 데이터베이스를 통해 무엇을 해야 하는지 파악합니다.
예를 들어 쇼핑몰을 만든다면 다음 요구사항을 정리할 수 있습니다.
회원 정보를 저장해야 한다.
상품을 관리해야 한다.
주문을 기록해야 한다.
한 고객이 여러 주문을 할 수 있다.
주문에는 여러 상품이 포함될 수 있다.이 단계에서는 아직 구체적인 Table이나 Index를 만드는 것이 아닙니다.
먼저 무엇이 필요한지 파악하는 단계입니다.
핵심#
요구 분석
→ 무엇이 필요한가?입니다.
11장 2단계 개념 설계#
개념 설계에서는 요구사항을 바탕으로 주요 데이터와 데이터 사이의 관계를 정의합니다.
예:
고객
상품
주문이 존재하고:
고객
→ 주문한다
→ 주문
주문
→ 포함한다
→ 상품같은 관계가 있다는 것을 정의합니다.
초보자 관점에서는:
현실의 업무 구조를 데이터 구조로 그려보는 단계
라고 이해하면 쉽습니다.
핵심#
개념 설계
→ 무엇과 무엇이 관계되는가?입니다.
12장 3단계 논리 설계#
논리 설계에서는 개념적으로 정의한 데이터를 실제 데이터베이스 구조로 구체화합니다.
예:
CUSTOMER
PRODUCT
ORDER
ORDER_ITEM같은 Table을 만들고 각 Table의:
Column
Primary Key
Foreign Key
관계등을 정의합니다.
핵심#
논리 설계
→ Table 구조와 관계를 설계라고 기억합니다.
13장 4단계 물리 설계#
물리 설계에서는 실제 Database 환경에서 데이터를 어떻게 저장하고 성능을 확보할지 결정합니다.
예:
Index
저장 구조
Partition
물리적 저장 방법등을 고려할 수 있습니다.
초보자에게는:
논리 설계
→ 데이터 구조를 설계
물리 설계
→ 실제 Database에서 어떻게 저장할지 설계라고 구분하면 충분합니다.
14장 데이터베이스 설계 절차 30초 암기#
요구 분석
→ 무엇이 필요한가
개념 설계
→ 어떤 데이터와 관계가 있는가
논리 설계
→ Table 구조를 어떻게 만들 것인가
물리 설계
→ 실제로 어떻게 저장할 것인가순서:
요구
→ 개념
→ 논리
→ 물리입니다.
15장 데이터베이스 정규화란 무엇인가#
정규화 Normalization는 데이터가 불필요하게 중복되고 서로 다른 값으로 관리되는 문제를 줄이기 위해 Table 구조를 체계적으로 나누는 과정입니다.
초보자가 가장 쉽게 이해하는 표현은 다음입니다.
정규화
=
중복과 불일치를 줄이도록
Table을 깔끔하게 정리하는 과정입니다.
예를 들어 다음 Table이 있다고 생각해봅시다.
| 학생번호 | 학생이름 | 과목 | 교수 |
|---|---|---|---|
| 1 | 김민수 | 데이터베이스 | 이교수 |
| 1 | 김민수 | 통계 | 박교수 |
| 2 | 이지현 | 데이터베이스 | 이교수 |
학생 이름과 교수 정보가 여러 행에 반복됩니다.
데이터가 작을 때는 문제가 없어 보이지만 데이터가 커질수록:
중복
수정 오류
삭제 오류
삽입 문제가 발생할 수 있습니다.
이러한 문제를 줄이는 것이 정규화의 목적입니다.
16장 이상 현상 Anomaly란 무엇인가#
데이터가 불필요하게 중복되면 데이터 추가·삭제·수정 과정에서 예상하지 못한 문제가 발생할 수 있습니다.
이를 이상 현상 Anomaly이라고 합니다.
ADsP에서는 세 종류를 구분합니다.
삽입 이상
삭제 이상
갱신 이상17장 삽입 이상이란 무엇인가#
삽입 이상은 새로운 데이터를 추가하려고 할 때 필요하지 않은 다른 데이터까지 입력해야 하는 문제입니다.
예를 들어 다음 Table을 생각해봅시다.
| 학생 | 과목 | 교수 |
|---|---|---|
| 김민수 | DB | 이교수 |
새로운 교수 정보를 저장하고 싶지만 아직 담당 학생이나 과목이 없다면 현재 구조에서는 교수정보만 추가하기 어려울 수 있습니다.
즉:
저장하고 싶은 데이터는 있음
하지만
관계없는 다른 값도 입력해야 함이라는 문제가 발생합니다.
핵심#
삽입 이상
→ 필요한 데이터 하나를 넣기 위해
불필요한 데이터까지 입력입니다.
18장 삭제 이상이란 무엇인가#
삭제 이상은 어떤 데이터를 삭제했는데 함께 보존해야 할 다른 중요한 데이터까지 사라지는 문제입니다.
예를 들어 어떤 교수의 마지막 수강학생 데이터를 삭제하면서 교수정보까지 같이 사라질 수 있습니다.
학생 수강정보 삭제
↓
교수 정보까지 삭제원하지 않는 정보 손실입니다.
핵심#
삭제 이상
→ 하나를 삭제했는데
필요한 정보까지 함께 삭제입니다.
19장 갱신 이상이란 무엇인가#
갱신 이상은 같은 데이터가 여러 곳에 중복되어 있어 일부만 수정되면서 서로 다른 값이 존재하게 되는 문제입니다.
예:
이교수 연구실
101호
이교수 연구실
101호
이교수 연구실
101호연구실이 201호로 변경됐는데 한 행만 수정했다고 생각해봅시다.
201호
101호
101호이제 어떤 값이 정확한지 알기 어려워집니다.
핵심#
갱신 이상
→ 중복된 값 중 일부만 변경
→ 데이터 불일치 발생입니다.
20장 이상 현상 3가지 비교#
| 이상 현상 | 핵심 문제 |
|---|---|
| 삽입 이상 | 불필요한 값까지 입력해야 함 |
| 삭제 이상 | 필요한 데이터까지 함께 삭제됨 |
| 갱신 이상 | 일부만 수정되어 값이 불일치 |
가장 쉽게 기억하면:
삽입
→ 넣기 어렵다
삭제
→ 같이 사라진다
갱신
→ 서로 달라진다입니다.
21장 제1정규형 1NF란 무엇인가#
1NF는 모든 속성 값이 원자값 Atomic Value이어야 한다는 조건입니다.
원자값은 더 이상 여러 값으로 나누어 저장하지 않는 하나의 값을 의미합니다.
잘못된 예:
| 고객 | 전화번호 |
|---|---|
| 김민수 | 010-1111, 010-2222 |
하나의 Cell에 전화번호 두 개가 들어 있습니다.
1NF 형태로 나누면:
| 고객 | 전화번호 |
|---|---|
| 김민수 | 010-1111 |
| 김민수 | 010-2222 |
처럼 각각 하나의 값을 갖게 할 수 있습니다.
핵심#
1NF
→ 원자성
→ 한 칸에 하나의 값
→ 반복 그룹 제거입니다.
22장 제2정규형 2NF란 무엇인가#
2NF는:
1NF 만족
+
부분 함수 종속 제거가 핵심입니다.
여기서 중요한 것이 부분 함수 종속입니다.
부분 함수 종속이란#
복합 기본키가 있다고 생각해봅시다.
학생번호 + 과목번호두 값을 합쳐야 하나의 Record를 구분할 수 있습니다.
그런데 어떤 속성이:
학생번호만으로 결정된다면 복합키 전체가 아니라 일부에만 종속되어 있는 것입니다.
이를 부분 함수 종속이라고 합니다.
2NF에서는 이를 제거합니다.
핵심#
2NF
→ 부분 함수 종속 제거
→ 기본키 전체에 종속되도록 구성입니다.
23장 완전 함수 종속이란 무엇인가#
완전 함수 종속은 어떤 속성이 복합 기본키의 전체에 의존하는 것을 의미합니다.
예를 들어:
학생번호 + 과목번호
→ 성적이라고 하겠습니다.
성적은 학생번호 하나만으로 결정할 수 없고 과목번호 하나만으로도 결정할 수 없습니다.
두 값이 모두 필요합니다.
학생번호
+
과목번호
↓
성적이 경우 성적은 복합 기본키 전체에 완전 함수 종속되어 있다고 볼 수 있습니다.
비교#
부분 함수 종속
→ 기본키 일부에만 의존
→ 2NF 위반
완전 함수 종속
→ 기본키 전체에 의존
→ 2NF가 요구하는 구조입니다.
24장 제3정규형 3NF란 무엇인가#
3NF는:
2NF 만족
+
이행 함수 종속 제거가 핵심입니다.
이행 함수 종속이란#
다음 관계를 생각해봅시다.
A → B
B → C그러면 간접적으로:
A → C관계가 만들어집니다.
이를 이행 함수 종속이라고 합니다.
실제 예#
사원번호
→ 부서번호
부서번호
→ 부서명이라면:
사원번호
→ 부서명이라는 간접적인 관계도 생깁니다.
이런 구조에서는 부서정보가 여러 사원 Record에 반복될 수 있습니다.
3NF에서는 이러한 일반 속성을 통한 간접 종속을 제거합니다.
핵심#
3NF
→ 이행 함수 종속 제거입니다.
25장 BCNF란 무엇인가#
BCNF는 3NF보다 더 엄격한 형태의 정규형으로 설명됩니다.
핵심 조건은:
모든 결정자가
후보키여야 한다.입니다.
결정자란 무엇인가#
다른 속성의 값을 결정할 수 있는 속성을 결정자라고 합니다.
예:
회원번호
→ 회원이름이라면 회원번호가 회원이름을 결정합니다.
따라서 회원번호는 결정자입니다.
BCNF에서는 이러한 결정자가 후보키가 되어야 합니다.
핵심#
BCNF
→ 결정자 = 후보키로 기억합니다.
26장 1NF·2NF·3NF·BCNF 차이#
| 정규형 | 조건 | 핵심 |
|---|---|---|
| 1NF | 모든 값이 원자값 | 원자성 |
| 2NF | 1NF + 부분 함수 종속 제거 | 완전 함수 종속 |
| 3NF | 2NF + 이행 함수 종속 제거 | 간접 종속 제거 |
| BCNF | 모든 결정자가 후보키 | 결정자 = 후보키 |
시험에서는 다음 네 줄을 먼저 기억하면 됩니다.
1NF
→ 원자값
2NF
→ 부분 종속 제거
3NF
→ 이행 종속 제거
BCNF
→ 결정자가 후보키27장 정규화 과정을 하나의 흐름으로 이해하기#
정규화는 단순히 1NF·2NF·3NF를 암기하는 과정이 아닙니다.
핵심 목적은 중복 때문에 발생하는 문제를 단계적으로 제거하는 것입니다.
복잡한 Table
↓
1NF
한 칸에 하나의 값
↓
2NF
기본키 일부에만 의존하는 속성 제거
↓
3NF
일반 속성을 통한 간접 종속 제거
↓
BCNF
모든 결정자가 후보키가 되도록 정리결국:
중복 감소
↓
데이터 불일치 감소
↓
이상 현상 감소를 목표로 합니다.
28장 정규화를 많이 할수록 무조건 좋은가#
아닙니다.
ADsP에서 자주 등장하는 함정 중 하나입니다.
정규화를 많이 할수록
성능이 무조건 좋아진다.는 식으로 이해하면 안 됩니다.
Table을 많이 나누면 중복은 줄어들 수 있지만 데이터를 조회할 때 여러 Table을 다시 연결해야 할 수 있습니다.
예:
고객
+
주문
+
주문상품
+
상품
+
카테고리데이터를 한 번에 조회하려면 여러 JOIN이 필요할 수 있습니다.
따라서:
정규화 증가
↓
중복 감소 가능
하지만
↓
JOIN 증가 가능
↓
조회 비용 증가 가능이라는 Trade-off가 존재할 수 있습니다.
29장 역정규화란 무엇인가#
경우에 따라 조회 성능이나 시스템 목적을 위해 일부 데이터를 의도적으로 중복시키거나 Table을 결합할 수 있습니다.
이를 역정규화 Denormalization라고 합니다.
핵심은:
정규화
→ 중복을 줄이는 방향
역정규화
→ 성능 등의 목적을 위해
일부 중복을 허용이라고 이해하면 됩니다.
따라서:
무조건 정규화
X
시스템 목적과 성능까지 고려
O하는 것이 중요합니다.
30장 실제 쇼핑몰로 이해하는 데이터베이스#
쇼핑몰 Database를 간단히 생각해봅시다.
고객 Table#
| 고객ID | 이름 | 등급 |
|---|---|---|
| 101 | 김민수 | VIP |
| 102 | 이지현 | 일반 |
상품 Table#
| 상품ID | 상품명 | 가격 |
|---|---|---|
| 1 | 키보드 | 50000 |
| 2 | 마우스 | 30000 |
주문 Table#
| 주문ID | 고객ID | 주문일 |
|---|---|---|
| 1001 | 101 | 2026-09-27 |
주문상품 Table#
| 주문ID | 상품ID | 수량 |
|---|---|---|
| 1001 | 1 | 1 |
| 1001 | 2 | 2 |
이 구조에서는 고객 이름을 모든 주문 행마다 반복해서 저장할 필요가 없습니다.
고객ID
→ 고객 Table 참조
상품ID
→ 상품 Table 참조방식으로 관리할 수 있습니다.
이것이 관계형 데이터베이스를 설계할 때 중복을 줄이고 데이터 관계를 분리하는 기본적인 사고방식입니다.
31장 정규화가 필요한 이유를 실무적으로 이해하기#
고객 주소를 주문마다 직접 저장한다고 생각해봅시다.
주문 1
김민수 / 서울 강남
주문 2
김민수 / 서울 강남
주문 3
김민수 / 서울 강남고객 기본주소가 변경되면 여러 Record를 수정해야 할 수 있습니다.
서울 송파
서울 강남
서울 강남일부만 수정되면 불일치가 발생할 수 있습니다.
정규화된 구조에서는 고객정보를 별도의 고객 Table로 관리하고 ID를 통해 참조할 수 있습니다.
CUSTOMER
101 / 김민수 / 서울 송파
ORDER
1001 / 고객 101
1002 / 고객 101
1003 / 고객 101이렇게 하면 고객정보를 한 곳에서 관리할 수 있습니다.
32장 데이터베이스와 Excel의 차이를 어떻게 이해하면 좋을까#
초보자는 Database와 Excel을 비슷한 표 형태로 보기 쉽습니다.
둘 다 행과 열로 데이터를 표현할 수 있기 때문입니다.
하지만 Database는 단순한 표 파일보다는 여러 데이터 사이의 관계와 여러 사용자의 동시 이용, 지속적인 데이터 변경을 관리하기 위한 체계에 더 가깝습니다.
예를 들어:
회원
↓
주문
↓
주문상품
↓
상품같은 관계를 관리할 수 있습니다.
ADsP 시험에서는 이보다 복잡한 시스템 구현보다 데이터베이스의 특징과 기본 설계·정규화 개념을 정확히 구분하는 것이 중요합니다.
33장 데이터베이스 시험에서 자주 헷갈리는 함정#
함정 1. 공용 데이터를 공개 데이터라고 생각#
공용 데이터
≠
인터넷에 공개된 데이터여기서 공용은 여러 사용자가 공동으로 이용한다는 의미입니다.
함정 2. 통합된 데이터를 모든 중복이 절대 없는 상태라고 단순화#
시험에서는 동일 내용의 불필요한 중복을 줄인다는 의미를 중심으로 이해합니다.
함정 3. 정규화를 많이 할수록 성능이 항상 좋아진다고 판단#
정규화 ↑
→ 성능 무조건 ↑
X지나친 정규화는 JOIN 증가로 조회 성능에 부담을 줄 수 있습니다.
함정 4. 2NF와 3NF 혼동#
2NF
→ 부분 함수 종속 제거
3NF
→ 이행 함수 종속 제거입니다.
함정 5. BCNF 조건 혼동#
BCNF
→ 모든 결정자가 후보키입니다.
34장 데이터베이스 핵심 비교표#
데이터베이스 4대 특징#
| 특징 | 핵심 |
|---|---|
| 통합된 데이터 | 불필요한 중복 최소화 |
| 저장된 데이터 | 저장매체에 저장 |
| 공용 데이터 | 여러 사용자가 공동 이용 |
| 운영 데이터 | 실제 업무에 사용 |
설계 절차#
요구 분석
→ 개념 설계
→ 논리 설계
→ 물리 설계이상 현상#
삽입
→ 불필요한 값도 입력
삭제
→ 필요한 정보까지 삭제
갱신
→ 중복 값 불일치정규화#
1NF
→ 원자성
2NF
→ 부분 함수 종속 제거
3NF
→ 이행 함수 종속 제거
BCNF
→ 결정자 = 후보키35장 시험 직전 30초 암기#
데이터베이스 4대 특징
통합
저장
공용
운영Database 설계
요구
→ 개념
→ 논리
→ 물리DBMS
Database Management System
→ Database 관리 Software이상 현상
삽입
삭제
갱신정규화
1NF
→ 원자값
2NF
→ 부분 종속 제거
3NF
→ 이행 종속 제거
BCNF
→ 결정자 후보키가장 중요한 함정:
정규화를 많이 하면
성능이 무조건 좋아진다.
X입니다.
데이터베이스 FAQ#
데이터베이스란 무엇인가#
조직이나 시스템에서 필요한 데이터를 체계적으로 저장하고 여러 사용자가 활용할 수 있도록 관리하는 데이터의 집합입니다.
데이터베이스의 4대 특징은 무엇인가#
다음 네 가지입니다.
통합된 데이터
저장된 데이터
공용 데이터
운영 데이터통합된 데이터란 무엇인가#
동일한 내용의 데이터가 불필요하게 중복되지 않도록 통합해 관리하는 것을 의미합니다.
공용 데이터란 공개 데이터라는 뜻인가#
아닙니다.
여러 사용자가 서로 다른 목적으로 데이터를 공동으로 이용한다는 의미입니다.
운영 데이터란 무엇인가#
기업이나 조직의 실제 업무 수행에 필요한 데이터입니다. 업무 과정에서 삽입·삭제·갱신되며 변화할 수 있습니다.
DBMS란 무엇인가#
Database Management System의 약자로 데이터베이스를 생성·조회·수정·삭제하고 관리하는 Software입니다.
데이터베이스 설계 순서는 무엇인가#
요구 분석
→ 개념 설계
→ 논리 설계
→ 물리 설계순서입니다.
정규화란 무엇인가#
데이터 중복과 이상 현상을 줄이기 위해 Table 구조를 체계적으로 나누고 정리하는 과정입니다.
이상 현상에는 무엇이 있는가#
삽입 이상, 삭제 이상, 갱신 이상 세 가지를 구분합니다.
1NF란 무엇인가#
모든 속성값이 원자값을 가지도록 하는 정규형입니다.
1NF
→ 원자성으로 기억하면 됩니다.
2NF란 무엇인가#
1NF를 만족하면서 부분 함수 종속을 제거한 형태입니다.
3NF란 무엇인가#
2NF를 만족하면서 이행 함수 종속을 제거한 형태입니다.
BCNF란 무엇인가#
모든 결정자가 후보키가 되도록 구성한 정규형입니다.
부분 함수 종속이란 무엇인가#
복합 기본키 전체가 아니라 기본키의 일부에만 어떤 속성이 종속되는 것을 의미합니다.
이행 함수 종속이란 무엇인가#
A → B
B → C일 때:
A → C라는 간접 종속관계가 발생하는 것을 의미합니다.
정규화를 많이 하면 Database가 항상 빨라지는가#
아닙니다.
Table이 많이 분리되면 조회 시 JOIN이 증가할 수 있어 성능에 부담이 될 수 있습니다. 시스템 목적에 따라 역정규화를 고려하는 경우도 있습니다.
자기 점검#
다음 질문에 바로 답할 수 있는지 확인해봅니다.
- 데이터베이스의 4대 특징을 모두 말할 수 있는가?
- 통합된 데이터와 공용 데이터의 차이를 설명할 수 있는가?
- 운영 데이터가 왜 계속 변화하는지 설명할 수 있는가?
- Database와 DBMS의 차이를 설명할 수 있는가?
- 데이터베이스 설계 4단계를 순서대로 말할 수 있는가?
- 삽입 이상·삭제 이상·갱신 이상을 구분할 수 있는가?
- 정규화의 목적을 설명할 수 있는가?
- 1NF에서 원자값이 왜 중요한지 설명할 수 있는가?
- 부분 함수 종속이 무엇인지 알고 있는가?
- 2NF가 무엇을 제거하는지 알고 있는가?
- 이행 함수 종속이 무엇인지 설명할 수 있는가?
- 3NF가 무엇을 제거하는지 알고 있는가?
- BCNF에서 결정자와 후보키의 관계를 기억하는가?
- 정규화를 많이 한다고 항상 성능이 좋아지는 것은 아니라는 점을 이해했는가?
이 글을 마치며#
데이터베이스를 처음 공부할 때는 DBMS, Schema, 정규화, 함수 종속 같은 용어가 한꺼번에 등장해 어렵게 느껴질 수 있습니다.
하지만 전체 흐름은 생각보다 단순합니다.
먼저 데이터를 체계적으로 관리해야 합니다.
데이터
↓
Database에 저장
↓
DBMS로 관리Database를 만들기 전에는:
요구 분석
↓
개념 설계
↓
논리 설계
↓
물리 설계순서로 구조를 설계합니다.
그리고 Table을 잘못 설계하면:
데이터 중복
↓
삽입 이상
삭제 이상
갱신 이상같은 문제가 발생할 수 있습니다.
이를 줄이기 위해:
1NF
↓
2NF
↓
3NF
↓
BCNF와 같은 정규화 과정을 사용합니다.
시험을 위해서는 다음 한 줄을 확실하게 기억하면 됩니다.
1NF = 원자값
2NF = 부분 종속 제거
3NF = 이행 종속 제거
BCNF = 결정자가 후보키그리고 개념 전체를 이해할 때는 더 단순하게 생각할 수 있습니다.
좋은 Database 설계란
같은 정보를 불필요하게 반복하지 않고,
필요한 데이터를 일관성 있게 관리할 수 있도록
구조를 만드는 것이다.이 흐름을 이해하면 ADsP 시험뿐 아니라 이후 SQL, 데이터 모델링, 백엔드 개발이나 실제 시스템 설계를 공부할 때도 데이터베이스 구조를 훨씬 쉽게 이해할 수 있습니다.