모든 강의를 무료로 볼 수 있어요. 회원가입 없이도 학습 가능합니다.

1강 / 전체 8강

데이터베이스란

9분 읽기 조회 0

데이터베이스와 DBMS의 개념, 관계형 DB의 테이블 구조, SQL의 역할과 분류를 이해합니다.

🎯 학습 목표

이 강을 마치면 데이터베이스가 왜 필요한지 설명할 수 있고, DBMS와 관계형 데이터베이스의 개념을 이해하며, SQL이 어떤 역할을 하는지 명확히 알 수 있습니다. 또한 실제 데이터가 테이블이라는 형태로 저장되는 구조를 시각적으로 파악하고, 앞으로 배울 24강 전체 학습 흐름을 머릿속에 그릴 수 있게 됩니다.

💡 데이터베이스가 왜 필요한가

이 섹션에서는 데이터베이스가 등장한 배경과 그 필요성을 살펴보겠습니다.

우리가 매일 사용하는 쇼핑몰, 은행 앱, SNS는 모두 방대한 양의 데이터를 다룹니다. 예를 들어 온라인 쇼핑몰을 운영한다고 생각해 보겠습니다. 회원 정보, 상품 목록, 주문 내역, 결제 기록이 있습니다. 이것을 엑셀 파일로 관리한다면 어떤 일이 생길까요?

파일이 여러 개로 흩어지면 같은 데이터가 여러 곳에 중복 저장됩니다. 두 사람이 동시에 같은 파일을 수정하면 데이터가 충돌합니다. 파일이 손상되면 복구 방법이 없습니다. 데이터가 수백만 행이 되면 엑셀은 버벅거리거나 열리지도 않습니다. 이런 문제를 해결하기 위해 등장한 것이 바로 데이터베이스(Database, DB)입니다.

데이터베이스란 여러 사람이 공유하고 사용할 목적으로 통합·관리되는 데이터의 집합입니다. 단순한 파일 저장과 달리, 데이터베이스는 중복을 최소화하고 일관성을 유지하며 여러 사용자가 동시에 안전하게 접근할 수 있도록 설계되어 있습니다.

데이터베이스가 제공하는 핵심 가치는 네 가지로 정리됩니다. 첫째, 데이터 중복 최소화 — 동일한 정보를 한 곳에만 저장합니다. 둘째, 데이터 무결성 — 잘못된 데이터가 저장되지 않도록 규칙을 설정할 수 있습니다. 셋째, 동시 접근 제어 — 여러 사용자가 동시에 접속해도 데이터가 꼬이지 않습니다. 넷째, 보안과 권한 관리 — 누가 어떤 데이터를 볼 수 있는지 세밀하게 통제할 수 있습니다.

🗄️ DBMS — 데이터베이스를 관리하는 소프트웨어

이 섹션에서는 데이터베이스를 실제로 운영하는 소프트웨어인 DBMS에 대해 살펴보겠습니다.

데이터베이스 자체는 추상적인 개념입니다. 실제로 데이터를 저장하고, 검색하고, 수정하고, 삭제하는 일을 처리하는 소프트웨어를 DBMS(Database Management System, 데이터베이스 관리 시스템)라고 합니다. 우리가 흔히 "MySQL을 사용한다", "PostgreSQL로 개발한다"고 말할 때 그것이 바로 DBMS입니다.

DBMS는 크게 두 가지 방식으로 나뉩니다. 첫 번째는 관계형 DBMS(RDBMS)로, 데이터를 행과 열로 이루어진 테이블 형태로 저장합니다. MySQL, PostgreSQL, Oracle, Microsoft SQL Server, SQLite 등이 대표적입니다. 두 번째는 비관계형 DBMS(NoSQL)로, 문서·키-값·그래프 등 다양한 형태로 데이터를 저장합니다. MongoDB, Redis, Cassandra 등이 여기에 해당합니다.

이 강좌에서는 가장 널리 쓰이는 관계형 DBMS를 기준으로 SQL을 배웁니다. 관계형 DBMS는 전 세계 기업의 80% 이상이 사용할 만큼 산업 표준으로 자리 잡혀 있으며, SQL을 한 번 배워두면 어떤 RDBMS에서도 핵심 문법을 그대로 활용할 수 있습니다.

DBMS종류주요 사용처
MySQLRDBMS웹 서비스, 중소기업 애플리케이션
PostgreSQLRDBMS복잡한 쿼리, 오픈소스 프로젝트
Oracle DBRDBMS대기업, 금융, 공공기관
SQLiteRDBMS모바일 앱, 임베디드 시스템
MongoDBNoSQL(문서)비정형 데이터, 빠른 프로토타이핑
RedisNoSQL(키-값)캐시, 세션 관리, 실시간 데이터

📋 관계형 데이터베이스와 테이블 구조

이 섹션에서는 관계형 데이터베이스의 핵심인 테이블 구조를 살펴보겠습니다.

관계형 데이터베이스에서 모든 데이터는 테이블(Table)이라는 구조에 저장됩니다. 테이블은 스프레드시트처럼 행과 열로 구성되어 있으며, 각 부분에는 고유한 이름이 있습니다.

열(Column)은 데이터의 속성을 나타냅니다. 예를 들어 회원 테이블이라면 회원번호, 이름, 이메일, 가입일이 각각 하나의 열이 됩니다. 열은 필드(Field) 또는 속성(Attribute)이라고도 부릅니다. 각 열에는 저장할 수 있는 데이터의 종류(자료형)가 정해져 있어서, 이름 열에는 텍스트만, 나이 열에는 숫자만 들어갈 수 있습니다.

행(Row)은 하나의 데이터 레코드를 나타냅니다. 회원 한 명의 정보가 하나의 행이 됩니다. 행은 레코드(Record) 또는 튜플(Tuple)이라고도 합니다.

실제 테이블의 모습을 한번 살펴보겠습니다. 아래는 간단한 회원 테이블입니다.

member_idnameemailjoin_date
1김민준minjun@example.com2024-03-01
2이서연seoyeon@example.com2024-03-05
3박지훈jihoon@example.com2024-04-12

여기서 member_id처럼 각 행을 고유하게 식별할 수 있는 열을 기본 키(Primary Key, PK)라고 합니다. 기본 키는 중복될 수 없고 비어 있을 수도 없습니다. 기본 키 덕분에 "member_id가 2번인 회원의 이메일을 알려줘"처럼 특정 데이터를 정확하게 찾아낼 수 있습니다.

관계형 데이터베이스의 또 다른 특징은 여러 테이블 사이에 관계(Relationship)를 맺을 수 있다는 점입니다. 예를 들어 주문 테이블에는 어떤 회원이 주문했는지를 나타내는 member_id라는 열이 있을 수 있습니다. 이 열을 통해 회원 테이블과 주문 테이블이 연결되며, 이처럼 다른 테이블의 기본 키를 참조하는 열을 외래 키(Foreign Key, FK)라고 합니다. 이 관계 개념은 12강 이후 조인(JOIN)을 배울 때 핵심 역할을 합니다.

🔑 SQL의 역할과 분류

이 섹션에서는 SQL이 무엇이고, 어떤 종류의 명령어로 이루어져 있는지 살펴보겠습니다.

SQL(Structured Query Language, 구조화 질의 언어)은 관계형 데이터베이스와 대화하는 언어입니다. 데이터를 조회하고, 추가하고, 수정하고, 삭제하는 모든 작업을 SQL 문장으로 수행합니다. 1970년대 IBM에서 개발된 이후 ISO 표준으로 제정되어 오늘날 사실상 모든 RDBMS에서 사용됩니다.

SQL 명령어는 크게 세 가지 범주로 나뉩니다. 이 분류를 처음부터 이해해 두면 앞으로 배울 내용이 어디에 해당하는지 금방 파악할 수 있습니다.

첫 번째는 DQL(Data Query Language, 데이터 조회 언어)입니다. SELECT 명령어가 여기에 해당하며, 데이터를 읽어오는 역할을 합니다. 이 강좌의 절반 이상이 SELECT를 다루는 이유는, 실무에서 데이터베이스 작업의 90%가 조회이기 때문입니다.

두 번째는 DML(Data Manipulation Language, 데이터 조작 언어)입니다. INSERT(추가), UPDATE(수정), DELETE(삭제) 명령어가 여기에 속합니다. 19강에서 집중적으로 배웁니다.

세 번째는 DDL(Data Definition Language, 데이터 정의 언어)입니다. CREATE(테이블 생성), ALTER(구조 변경), DROP(삭제) 명령어가 여기에 해당합니다. 20~21강에서 다룹니다.

분류명령어역할배우는 강
DQLSELECT데이터 조회3~18강
DMLINSERT, UPDATE, DELETE데이터 추가·수정·삭제19강
DDLCREATE, ALTER, DROP테이블 구조 정의20~21강

SQL의 가장 큰 장점은 선언형 언어라는 점입니다. 파이썬이나 자바처럼 "어떻게 처리할지"를 단계별로 지시하는 것이 아니라, "무엇을 원하는지"만 말하면 DBMS가 알아서 최적의 방법으로 처리해 줍니다. 예를 들어 "이름이 김씨인 회원 목록을 주세요"라고 선언하면, 내부적으로 어떻게 찾을지는 DBMS가 결정합니다.

💻 첫 번째 SQL 맛보기

이 섹션에서는 SQL 문장이 어떻게 생겼는지 실제 예시를 통해 살펴보겠습니다.

아직 직접 실행할 환경은 다음 강(2강)에서 설치하겠지만, SQL의 생김새와 읽는 방법을 미리 익혀두면 훨씬 수월하게 시작할 수 있습니다. SQL은 영어 문장처럼 읽을 수 있도록 설계되어 있어서 처음 보는 사람도 대략의 의미를 짐작할 수 있습니다.

가장 기본적인 SQL 문장은 다음과 같습니다.

SELECT *
FROM members;

이 문장은 "members 테이블에서 모든 데이터를 가져와라"는 뜻입니다. SELECT는 조회 명령, *는 모든 열을 의미하는 와일드카드, FROM은 어떤 테이블에서 가져올지를 지정합니다. 세미콜론(;)은 문장의 끝을 나타냅니다.

조건을 추가하면 원하는 데이터만 골라낼 수 있습니다.

SELECT name, email
FROM members
WHERE join_date >= '2024-04-01';

이 문장은 "members 테이블에서 2024년 4월 1일 이후에 가입한 회원의 이름과 이메일만 가져와라"는 뜻입니다. SELECT name, email로 원하는 열만 지정했고, WHERE로 조건을 걸었습니다. 이처럼 SQL은 영어 문장과 매우 유사한 구조를 가집니다.

새 데이터를 추가할 때는 INSERT를 사용합니다.

INSERT INTO members (name, email, join_date)
VALUES ('최유진', 'yujin@example.com', '2024-06-01');

이 문장은 "members 테이블에 이름은 최유진, 이메일은 yujin@example.com, 가입일은 2024-06-01인 새 행을 추가해라"는 뜻입니다. 아직 모든 문법을 완벽히 이해하지 않아도 됩니다. 앞으로 강의를 진행하면서 하나씩 깊게 배울 것입니다.

📝 핵심 요약

이번 강에서 배운 내용을 정리하겠습니다.

개념설명
데이터베이스(DB)여러 사람이 공유·관리하는 데이터의 집합. 중복 최소화, 무결성, 동시 접근 제어 제공
DBMS데이터베이스를 관리하는 소프트웨어. MySQL, PostgreSQL, Oracle 등
관계형 DB(RDBMS)데이터를 테이블(행×열) 형태로 저장하는 DB. 현재 가장 널리 사용되는 방식
테이블행(레코드)과 열(필드)로 구성된 데이터 저장 단위
기본 키(PK)각 행을 고유하게 식별하는 열. 중복·NULL 불가
외래 키(FK)다른 테이블의 기본 키를 참조하는 열. 테이블 간 관계를 표현
SQL관계형 DB와 대화하는 표준 언어. DQL·DML·DDL로 분류

데이터베이스는 현대 소프트웨어 개발에서 빠질 수 없는 핵심 기술입니다. 모바일 앱, 웹 서비스, 기업 시스템 모두 뒤에서는 데이터베이스가 동작하고 있습니다. SQL을 익히면 데이터의 흐름을 이해하고, 원하는 정보를 자유자재로 다룰 수 있는 능력을 갖추게 됩니다.

다음 2강에서는 실제로 SQL을 실행할 수 있는 환경을 설치하고, 첫 번째 쿼리를 직접 실행해 보겠습니다. 무료 도구를 활용해 10분 안에 실습 준비를 마칠 수 있으니 기대해 주세요.

관련 주제

  • DBMS
  • 관계형 데이터베이스
  • 테이블 구조
  • SQL 역할
  • 데이터 중복 문제
  • 개발·프로그래밍
  • 개발·프로그래밍 강의
  • SQL·데이터베이스 입문 24강
  • 무료강의
  • 무료 온라인 강의
  • NUGUNA
  • 누구나

📚 시리즈 전체 공유

SQL·데이터베이스 입문 24강

이 강의가 속한 시리즈는 총 8강, 모두 무료입니다. 처음부터 배우려는 동료에게 시리즈 전체를 알려 주세요.

댓글

0/1000

불러오는 중...