이 주제는 데이터베이스 설계의 기초 개념(정규화, 기본키·외래키, ER 다이어그램 등)으로, 시간이 지나도 변하지 않는 잘 정립된 컴퓨터 과학 지식입니다. 최신 정보를 검색할 필요 없이 확립된 사실에 근거해 작성하되, 구체적 통계나 수치는 지어내지 않겠습니다. 요청대로 한글 블로그 글로 작성합니다.
데이터베이스 설계 기초, 이것만 알면 초보 탈출!
“데이터베이스 설계? 그거 개발자들이나 하는 거 아니야?” 이렇게 생각하셨나요? 😊 사실 데이터베이스 설계 기초는 엑셀을 좀 더 똑똑하게 쓰고 싶은 분, 작은 서비스를 만들고 싶은 분 누구에게나 정말 유용한 지식이에요. 오늘은 어려운 용어를 최대한 걷어내고, 친구에게 설명하듯 쉽게 풀어드릴게요.
이 글을 끝까지 읽으면 여러분은 “데이터를 어디에, 어떻게 담아야 나중에 안 꼬일까?”라는 질문에 스스로 답할 수 있게 됩니다. 👍

데이터베이스가 대체 뭔가요? 🔍
데이터베이스는 쉽게 말해 잘 정리된 데이터 창고예요. 그냥 물건을 아무렇게나 쌓아둔 창고가 아니라, 물건마다 자리가 정해진 정돈된 창고죠.
우리가 흔히 쓰는 관계형 데이터베이스는 ‘표(테이블)’ 형태로 데이터를 담아요. 엑셀 시트를 떠올리면 딱 맞아요. 참고로 이 관계형 모델은 1970년에 IBM의 에드거 F. 코드(Edgar F. Codd)가 제안한 개념이랍니다.
기본 용어부터 살짝 정리해볼까요?
- 테이블(Table): 데이터를 담는 표 하나 (예: ‘회원’ 표)
- 행(Row/레코드): 표의 가로 한 줄, 즉 데이터 한 건 (예: 회원 1명)
- 열(Column/필드): 표의 세로 항목 (예: 이름, 이메일, 가입일)
설계의 심장, 기본키와 외래키 💡
여기서부터가 진짜예요. 데이터베이스 설계에서 가장 중요한 두 친구를 소개할게요.
기본키(Primary Key)는 각 데이터를 구분하는 ‘주민등록번호’ 같은 거예요. 회원 표에서 이름이 같은 사람이 두 명일 수도 있잖아요? 그래서 절대 겹치지 않는 고유한 값(예: 회원번호)을 하나 정해두는 거죠. ✅
외래키(Foreign Key)는 표와 표를 연결하는 다리예요. 예를 들어 ‘주문’ 표에 회원번호를 넣어두면, “이 주문은 누가 했지?”를 회원 표와 연결해서 바로 찾을 수 있어요.
이 두 가지 덕분에 데이터를 여러 표로 나눠 담아도 서로 깔끔하게 이어진답니다.
왜 굳이 표를 나눌까요? 정규화 이야기
초보 분들이 가장 많이 하는 실수가 있어요. 모든 걸 표 하나에 다 때려 넣는 거예요. 😅 회원 정보, 주문 내역, 배송지까지 전부 한 표에요.
그러면 무슨 일이 생기냐면요, 같은 회원이 주문을 열 번 하면 이름·전화번호가 열 번 반복 저장돼요. 나중에 전화번호 하나만 바뀌어도 열 군데를 다 고쳐야 하죠. ⚠️ 이런 중복과 혼란을 줄이는 작업이 바로 정규화(Normalization)예요.
정규화, 3단계만 기억하세요
- 제1정규형(1NF): 한 칸에는 값 하나만! 예를 들어 ‘취미’ 칸에 “독서, 등산”처럼 여러 개를 몰아넣지 않아요.
- 제2정규형(2NF): 기본키에 완전히 의존하지 않는 정보는 따로 빼요.
- 제3정규형(3NF): 다른 일반 칸에 딸려오는 정보도 분리해요.
실무에서는 보통 제3정규형까지만 맞춰도 충분히 깔끔하다고 봐요. 다만 정규화가 항상 정답은 아니에요. 표를 너무 잘게 쪼개면 조회할 때 여러 표를 합치느라 속도가 느려질 수 있거든요.
그래서 조회 속도가 중요한 경우엔 일부러 중복을 조금 허용하는 비정규화를 쓰기도 해요. 정답은 상황에 따라 다르다는 점, 꼭 기억해두세요. 😊

설계 전에 그려보면 좋은 ER 다이어그램 ✏️
집을 지을 때 설계도를 먼저 그리듯, 데이터베이스도 그림을 먼저 그려보면 훨씬 수월해요. 이때 쓰는 게 ER 다이어그램(개체-관계 다이어그램)이에요.
여기서 ‘관계’는 표들이 어떻게 연결되는지를 뜻하는데, 크게 세 가지가 있어요.
- 1:1 – 한 명당 하나 (예: 회원 1명 ↔ 사물함 1개)
- 1:N – 하나에 여러 개 (예: 회원 1명 ↔ 주문 여러 건)
- N:M – 여러 개끼리 얽힘 (예: 학생 ↔ 과목)
대부분의 관계는 1:N이에요. N:M 관계는 보통 중간에 연결용 표를 하나 더 만들어서 풀어준답니다.
초보가 꼭 지키면 좋은 설계 팁 👍
- 데이터 타입은 성격에 맞게! 숫자는 숫자형, 날짜는 날짜형으로 저장하세요.
- 표와 칸 이름은 누가 봐도 알기 쉽게, 일관된 규칙으로 지으세요.
- 중복 저장을 발견하면 “표를 나눌 때가 됐나?” 하고 의심해보세요.
- 처음부터 완벽하게 만들려 하지 마세요. 설계는 다듬어가는 과정이에요.
마무리: 오늘부터 데이터를 정돈해보세요 😊
오늘 우리는 데이터베이스 설계 기초를 함께 훑어봤어요. 테이블·기본키·외래키 같은 기본 용어부터, 중복을 줄이는 정규화, 그리고 관계를 그려보는 ER 다이어그램까지요.
핵심은 딱 하나예요. “이 데이터를 어디에 두면 나중에 안 꼬일까?”를 먼저 고민하는 습관! 이것만 챙겨도 여러분의 데이터는 훨씬 깔끔해질 거예요.
거창한 프로젝트가 아니어도 좋아요. 지금 쓰고 있는 엑셀 파일 하나를 열어서, “이 표를 두 개로 나눌 수 있을까?” 한 번 상상해보세요. 그게 바로 여러분의 첫 데이터베이스 설계랍니다. 🚀 궁금한 점이 있다면 댓글로 편하게 남겨주세요!