[SQL 입문] 데이터베이스 입문 - 기록의 시작
일상 기록에서 출발하는 데이터베이스 입문. SQL이란 무엇이고, 왜 스키마 설계가 중요한지 알아봅니다. 브리딩 기록부터 시작해 데이터베이스의 본질을 이해합니다.
시작하며 - 기록이라는 것
우리는 일상에서 생각보다 많은 것을 기록합니다.
가계부에 지출 내역을 적고, 다이어리에 오늘 한 일을 쓰고, 메모장에 할 일 목록을 만듭니다.
저 같은 경우엔 레오파드 게코를 키우면서 체중 변화를 기록하기 시작했습니다.
처음엔 그냥 호기심이었어요. "얼마나 자랄까?" 싶어서요.
"1월 4일, 28g."
"1월 13일, 29g."
"1월 20일, 30g."
그런데 이렇게 몇 달 기록하다 보니 재미있는 걸 발견했습니다.
"탈피하기 전엔 잘 안 먹네."
"겨울엔 확실히 증량이 느리구나."
"일주일에 한 번 먹이는 게 딱 맞는 것 같아."
기록이 쌓이면 패턴이 보입니다.
그리고 패턴을 알면 더 나은 선택을 할 수 있습니다.
개체별 체중 변화를 기록한 노트 - 데이터베이스의 원형
이런 기록을 체계적으로 관리하는 방법이 바로 데이터베이스(Database)입니다.
---데이터베이스란 무엇일까?
데이터베이스는 체계적으로 정리된 데이터의 집합입니다.
흩어진 메모를 정리해서 한곳에 모아두고, 필요할 때 빠르게 찾을 수 있게 만든 시스템입니다.
엑셀 시트를 떠올려보세요.
표 형태로 데이터를 정리하면 보기 쉽고, 정렬하거나 필터링하기도 편합니다.
엑셀도 일종의 데이터베이스입니다
데이터베이스는 엑셀 시트 여러 개가 서로 연결된 형태라고 생각하면 됩니다.
개체 정보 시트, 체중 기록 시트, 급여 일지 시트... 이것들이 연결되어 있다면 훨씬 강력해집니다.
왜 필요할까?
- 검색: "작년 10월에 급여한 기록 찾기" 같은 복잡한 질문에도 즉시 답할 수 있습니다
- 정렬: 체중 순, 날짜 순, 개체번호 순... 원하는 기준으로 정렬 가능
- 분석: 평균 증량률, 급여 패턴, 환경별 성장 추이 등을 계산
- 공유: 여러 사람이 동시에 접근하고 업데이트 가능
SQL이란?
SQL (Structured Query Language)은 데이터베이스와 대화하는 언어입니다.
"이 정보 보여줘", "새로운 데이터 추가해줘", "이 값 수정해줘" 같은 요청을 SQL 문법으로 작성합니다.
SQL은 4가지 핵심 동작만 기억하면 됩니다.
데이터베이스에게 "이 정보 보여줘"라고 요청하는 방법
SQL 4대 동작 (CRUD)
CREATE- 생성 (새로운 테이블이나 데이터 만들기)SELECT- 조회 (데이터 읽기, 가장 많이 사용)UPDATE- 수정 (기존 데이터 변경)DELETE- 삭제 (데이터 제거)
예를 들어 "체중이 30g 이상인 개체만 보여줘"라고 하려면:
SELECT * FROM individuals WHERE weight >= 30;
이렇게 영어처럼 읽히는 문장으로 작성합니다.
어렵지 않죠? 다음 글부터 하나씩 실습하면서 배워볼 겁니다.
스키마 설계의 중요성
스키마(Schema)는 데이터베이스의 설계도입니다.
건물을 짓기 전에 설계도를 그리듯, 데이터베이스도 미리 구조를 설계해야 합니다.
예를 들어 개체 정보를 저장한다면:
- 어떤 정보를 저장할까? (이름, 성별, 해칭일, 모프...)
- 각 정보의 타입은? (텍스트, 숫자, 날짜...)
- 필수로 입력해야 할 정보는?
- 다른 테이블과 어떻게 연결할까?
테이블들이 연결되어 의미 있는 정보를 만듭니다
잘못 설계하면?
- ❌ 중복: 같은 정보를 여러 곳에 저장 → 수정할 때 일일이 다 바꿔야 함
- ❌ 오류: 데이터가 모순되거나 누락됨
- ❌ 성능 저하: 검색이 느려지고, 저장 공간 낭비
잘 설계하면?
- ✅ 확장성: 나중에 기능 추가해도 문제없음
- ✅ 유지보수성: 수정하기 쉽고, 버그가 적음
- ✅ 효율성: 빠르고, 저장 공간 절약
그래서 이번 시리즈에서는 스키마 설계 방법을 중점적으로 다룹니다.
---일상 기록과 데이터베이스의 연결
우리가 하는 일상 기록과 데이터베이스 개념을 비교해볼까요?
레오파드 게코 기록을 예시로 들어봅니다. (다른 반려동물, 식물 관리, 운동 기록 등도 동일한 원리입니다)
익숙한 개념으로 데이터베이스 이해하기
| 브리딩 기록 | 데이터베이스 |
|---|---|
| 개체 정보 노트 | 테이블 (Table) |
| 개체 ID | Primary Key (고유 식별자) |
| 체중 측정 일지 | 관계형 데이터 (Foreign Key 연결) |
| 급여 패턴 분석 | SQL 쿼리 (SELECT 문으로 조회/분석) |
이미 여러분은 데이터베이스의 개념을 생활 속에서 쓰고 있는 겁니다.
수첩에 적던 걸 컴퓨터가 알아듣는 방식(SQL)으로 바꾸는 것뿐입니다.
이 시리즈에서 배울 것들
앞으로 5개의 실습 게시물을 통해 단계별로 배웁니다.
학생 DB → 도서관 → 주차 → 병원 → 음악, 점진적으로 복잡해집니다
학습 로드맵
- [SQL 실습 #1] 학생 정보 데이터베이스 설계
기본 테이블 설계, CREATE TABLE, INSERT, SELECT 배우기 - [SQL 실습 #2] 도서관 대출 시스템 테이블 구조 만들기
1:N 관계, Foreign Key, JOIN 쿼리 이해하기 - [SQL 실습 #3] 주차 관리 시스템 데이터베이스 설계
복합 키, 시간 데이터, CASE WHEN 활용 - [SQL 실습 #4] 병원 예약 시스템 데이터 모델 작성
UNIQUE 제약, 충돌 방지, GROUP BY 집계 - [SQL 실습 #5] 음악 스트리밍 서비스 데이터 모델
N:M 관계, Junction Table, 복잡한 다중 JOIN
총 학습 시간: 약 87분 (1시간 30분)
난이도: 제로베이스 → 실전 활용 가능 수준
최종 목표
이 시리즈를 완주하면 이런 것들을 할 수 있게 됩니다:
- ✅ 반려동물/식물 정보 데이터베이스 설계 및 관리
- ✅ 체중 변화, 급여 패턴, 지출 내역 등을 SQL로 분석
- ✅ 복잡한 관계를 데이터 모델로 표현하는 방법
- ✅ 실전 프로젝트에 바로 적용 가능한 SQL 기초 실력
마무리 - 다음 글 예고
오늘은 데이터베이스의 개념과 SQL의 역할, 그리고 스키마 설계의 중요성을 알아봤습니다.
우리가 일상에서 하던 기록이 데이터베이스의 본질과 닿아있다는 것도 확인했습니다.
다음 글부터는 실습입니다.
가장 간단한 학생 정보 데이터베이스를 설계하면서, 우리 삶의 다양한 기록에도 적용할 수 있는 원리를 배우게 됩니다.
DB Browser for SQLite라는 무료 도구를 사용할 건데, 설치부터 첫 테이블 생성까지 30분이면 충분합니다.
다음 글: [SQL 실습 #1] 학생 정보 데이터베이스 설계
이 글이 도움이 되었다면 다음 실습 글도 기대해주세요.
질문이나 피드백은 언제든 환영합니다.
