Zeno ZENO
자격증 / SQLD · 조회 2 · 좋아요 0

2. 데이터베이스 기본 개념

데이터베이스는 데이터를 체계적으로 저장하고 조회하기 위한 구조이며, DBMS는 데이터베이스를 관리하는 프로그램입니다.

데이터베이스 기본 개념

1. 정의

데이터베이스는 데이터를 체계적으로 저장하고 관리하는 공간이다.

데이터는 현실에서 수집한 값이다. 예를 들어 이름, 나이, 전화번호, 상품 가격, 주문 날짜 같은 값이 데이터다.

정보는 데이터를 의미 있게 가공한 결과다. 예를 들어 주문 금액이 여러 개 있을 때, 그것을 합산해서 월 매출을 계산하면 정보가 된다.

데이터베이스는 데이터를 아무렇게나 저장하지 않는다. 정해진 구조에 맞게 저장한다. 그래서 필요한 데이터를 빠르게 찾고, 수정하고, 삭제할 수 있다.

예를 들어 쇼핑몰 서비스에는 다음과 같은 데이터가 필요하다.

  • 회원 데이터
  • 상품 데이터
  • 주문 데이터
  • 결제 데이터
  • 배송 데이터

이 데이터를 엑셀 파일이나 텍스트 파일로도 저장할 수 있다. 하지만 서비스가 커지면 관리가 어려워진다.

  • 같은 데이터가 여러 파일에 중복될 수 있다.
  • 어떤 데이터가 최신인지 알기 어렵다.
  • 여러 사용자가 동시에 수정하기 어렵다.
  • 원하는 데이터를 빠르게 찾기 어렵다.
  • 데이터가 서로 맞지 않는 문제가 생길 수 있다.

이런 문제를 해결하기 위해 데이터베이스를 사용한다.

데이터베이스를 관리하는 프로그램을 DBMS라고 한다.

DBMS는 Database Management System의 줄임말이다. 한국어로는 데이터베이스 관리 시스템이라고 한다.

대표적인 DBMS는 다음과 같다.

  • Oracle
  • MySQL
  • PostgreSQL
  • SQL Server
  • SQLite

SQLD를 공부할 때 데이터베이스 기본 개념을 먼저 알아야 한다. SQL은 데이터베이스에 명령을 내리는 언어이기 때문이다.


2. 필요한 이유

데이터베이스 기본 개념이 필요한 이유는 SQL을 이해하기 위해서다.

SQL은 데이터를 조회하고 다루는 언어다. 하지만 데이터가 어디에 어떤 구조로 저장되는지 모르면 SQL 문장을 이해하기 어렵다.

예를 들어 다음 SQL을 보자.

SELECT name, email
FROM members;

이 SQL은 members라는 테이블에서 name과 email을 조회한다.

여기서 테이블, 컬럼, 조회라는 개념을 모르면 SQL 문장을 해석하기 어렵다.

실제 개발에서도 데이터베이스는 거의 항상 사용된다.

회원가입을 하면 회원 정보가 데이터베이스에 저장된다.

로그인을 하면 입력한 이메일과 비밀번호가 데이터베이스에 있는 정보와 비교된다.

게시글을 작성하면 게시글 내용이 데이터베이스에 저장된다.

쇼핑몰에서 주문하면 주문 내역, 결제 정보, 배송 정보가 데이터베이스에 저장된다.

실제 개발에서 데이터베이스가 해결하는 문제

  • 데이터를 안전하게 저장한다.
  • 필요한 데이터를 빠르게 조회한다.
  • 중복 데이터를 줄인다.
  • 데이터의 정확성을 유지한다.
  • 여러 사용자가 동시에 접근할 수 있게 한다.
  • 권한을 나누어 데이터를 보호한다.
  • 장애가 발생했을 때 데이터를 복구할 수 있게 한다.

예를 들어 회원이 자신의 주문 내역을 확인하는 기능을 만든다고 하자.

개발자는 회원 데이터와 주문 데이터를 연결해서 해당 회원의 주문만 조회해야 한다.

이때 데이터베이스 구조를 모르면 어떤 테이블에서 어떤 데이터를 가져와야 하는지 알 수 없다.

따라서 데이터베이스 기본 개념은 SQLD뿐만 아니라 실제 개발에서도 반드시 필요하다.


3. 핵심 개념

3-1. 데이터

데이터는 아직 해석되기 전의 값이다.

예를 들어 다음 값들은 데이터다.

  • Kim
  • 30
  • 2026-06-12
  • 15000
  • A001

데이터 자체는 단순한 값이다.

예를 들어 15000이라는 값만 보면 의미가 명확하지 않다.

상품 가격일 수도 있고, 주문 금액일 수도 있고, 포인트일 수도 있다.

데이터는 문맥과 함께 해석되어야 의미가 생긴다.

3-2. 정보

정보는 데이터를 의미 있게 가공한 결과다.

예를 들어 주문 금액 데이터가 다음과 같이 있다고 하자.

  • 10000
  • 15000
  • 20000

이 값을 합산해서 오늘 매출이 45000원이라고 정리하면 정보가 된다.

즉, 데이터는 재료이고 정보는 해석된 결과다.

3-3. 데이터베이스

데이터베이스는 데이터를 체계적으로 저장하는 공간이다.

단순히 데이터를 모아두는 것이 아니다.

데이터를 효율적으로 저장하고 조회할 수 있도록 구조화한다.

관계형 데이터베이스에서는 데이터를 보통 테이블 형태로 저장한다.

회원번호 이름 이메일
1 Kim kim@example.com
2 Lee lee@example.com

위 표에서 회원번호, 이름, 이메일은 열이다.

Kim 회원 한 명의 정보는 행이다.

3-4. DBMS

DBMS는 데이터베이스를 관리하는 프로그램이다.

사용자가 직접 데이터 파일을 열어서 수정하는 것이 아니다.

사용자는 SQL을 DBMS에 보낸다.

DBMS는 SQL을 해석하고 데이터베이스에 명령을 실행한다.

DBMS가 하는 대표적인 일은 다음과 같다.

  • 데이터 저장
  • 데이터 조회
  • 데이터 수정
  • 데이터 삭제
  • 동시 접근 제어
  • 권한 관리
  • 백업과 복구

3-5. 데이터 저장

데이터 저장은 데이터를 나중에 다시 사용할 수 있도록 보관하는 것이다.

회원가입을 하면 회원 정보가 저장된다.

게시글을 작성하면 게시글 내용이 저장된다.

상품을 등록하면 상품 정보가 저장된다.

데이터베이스에서는 데이터를 테이블에 저장한다.

3-6. 데이터 조회

데이터 조회는 저장된 데이터 중 필요한 데이터를 가져오는 것이다.

예를 들어 다음 작업은 모두 조회다.

  • 전체 회원 목록 보기
  • 특정 회원의 주문 내역 보기
  • 가격이 10000원 이상인 상품 찾기
  • 오늘 작성된 게시글 보기

SQL에서는 SELECT 문을 사용해서 데이터를 조회한다.

3-7. 파일 시스템

파일 시스템은 운영체제가 파일을 저장하고 관리하는 방식이다.

txt, csv, xlsx, json 파일에 데이터를 저장하는 방식도 파일 시스템을 이용하는 것이다.

파일 시스템은 간단한 데이터 저장에는 편하다.

하지만 데이터가 많아지고 여러 사람이 동시에 사용하면 관리가 어려워진다.

3-8. 파일 시스템과 DBMS 차이

파일 시스템은 파일 단위로 데이터를 저장한다.

DBMS는 데이터베이스 구조 안에서 데이터를 체계적으로 관리한다.

구분 파일 시스템 DBMS
저장 방식 파일에 직접 저장 데이터베이스에 구조화해서 저장
검색 파일을 직접 읽어 처리 SQL로 조회
중복 관리 중복 발생 가능성이 큼 중복을 줄이기 쉬움
동시 사용 충돌 가능성이 큼 동시 접근 제어 가능
보안 파일 권한 중심 사용자와 권한 관리 가능
복구 직접 백업 필요 백업과 복구 기능 제공

실무에서는 단순 설정 파일이나 로그 파일은 파일 시스템을 사용할 수 있다.

하지만 회원, 주문, 결제처럼 중요한 데이터는 보통 DBMS에 저장한다.


4. 주변 기초 개념

4-1. 테이블

테이블은 데이터를 행과 열로 저장하는 구조다.

엑셀 표와 비슷하게 생각하면 된다.

다만 데이터베이스의 테이블은 데이터 타입, 기본키, 제약 조건 같은 규칙을 가진다.

id name email
1 Kim kim@example.com
2 Lee lee@example.com

4-2. 행

행은 테이블의 가로 한 줄이다.

한 행은 하나의 데이터 단위다.

회원 테이블에서는 회원 한 명이 한 행이다.

4-3. 열

열은 테이블의 세로 항목이다.

컬럼이라고도 부른다.

회원 테이블에서는 id, name, email이 열이다.

4-4. 컬럼

컬럼은 데이터의 항목 이름이다.

예를 들어 회원 테이블의 컬럼은 다음과 같다.

  • id: 회원을 구분하는 번호
  • name: 회원 이름
  • email: 회원 이메일

4-5. 레코드

레코드는 행과 비슷한 의미로 쓰인다.

데이터 한 건을 의미한다.

회원 테이블에서 회원 한 명의 정보가 레코드다.

4-6. 필드

필드는 컬럼과 비슷한 의미로 쓰인다.

하나의 데이터 항목을 뜻한다.

4-7. 스키마

스키마는 데이터베이스의 구조를 뜻한다.

어떤 테이블이 있고, 각 테이블에 어떤 컬럼이 있고, 컬럼의 데이터 타입이 무엇인지 정의한 구조다.

쉽게 말하면 데이터베이스 설계도다.

4-8. 데이터 타입

데이터 타입은 컬럼에 저장할 수 있는 값의 종류다.

대표적인 데이터 타입은 다음과 같다.

  • 문자형: 이름, 이메일, 제목 같은 문자 데이터
  • 숫자형: 가격, 수량, 나이 같은 숫자 데이터
  • 날짜형: 가입일, 주문일, 작성일 같은 날짜 데이터

데이터 타입을 정하는 이유는 잘못된 값을 막기 위해서다.

예를 들어 가격 컬럼에는 숫자가 들어가야 한다.

가격에 이메일 주소가 들어가면 잘못된 데이터다.

4-9. 기본키

기본키는 테이블에서 각 행을 구분하는 값이다.

기본키는 중복되면 안 된다.

기본키는 비어 있어도 안 된다.

회원 테이블에서는 id가 기본키가 될 수 있다.

4-10. 외래키

외래키는 다른 테이블의 기본키를 참조하는 컬럼이다.

예를 들어 주문 테이블에 member_id가 있으면, 이 값은 회원 테이블의 id를 가리킬 수 있다.

이렇게 하면 주문이 어떤 회원의 주문인지 알 수 있다.

4-11. 관계

관계는 테이블과 테이블 사이의 연결이다.

회원과 주문은 관계가 있다.

한 명의 회원은 여러 번 주문할 수 있다.

이것을 1:N 관계라고 한다.

  • 1: 회원 한 명
  • N: 여러 주문

4-12. SQL

SQL은 데이터베이스에 명령을 내리는 언어다.

SQL을 사용하면 데이터를 조회, 입력, 수정, 삭제할 수 있다.

대표 SQL 명령어는 다음과 같다.

  • SELECT: 조회
  • INSERT: 입력
  • UPDATE: 수정
  • DELETE: 삭제
  • CREATE: 생성
  • DROP: 삭제

5. 실제 흐름

데이터베이스가 실제로 어떻게 사용되는지 회원가입 기능을 기준으로 보자.

5-1. 사용자가 회원가입 정보를 입력한다

사용자는 웹사이트에서 이름, 이메일, 비밀번호를 입력한다.

  • 이름
  • 이메일
  • 비밀번호

5-2. 서버가 입력값을 받는다

서버는 사용자가 입력한 데이터를 받는다.

서버는 웹사이트의 요청을 처리하는 프로그램이다.

예를 들어 로그인, 회원가입, 주문 같은 기능을 처리한다.

5-3. 서버가 입력값을 검사한다

서버는 입력값이 올바른지 확인한다.

  • 이메일 형식이 맞는지 확인한다.
  • 비밀번호가 비어 있지 않은지 확인한다.
  • 이미 가입된 이메일인지 확인한다.

5-4. 서버가 SQL을 준비한다

입력값이 정상이라면 서버는 DBMS에 보낼 SQL을 준비한다.

회원 정보를 저장할 때는 INSERT 문을 사용한다.

5-5. DBMS가 SQL을 실행한다

DBMS는 SQL을 받아서 데이터베이스에 데이터를 저장한다.

이때 members 테이블에 새로운 회원 데이터가 한 행 추가된다.

5-6. DBMS가 결과를 서버에 알려준다

DBMS는 저장이 성공했는지 실패했는지 서버에 알려준다.

5-7. 서버가 사용자에게 결과를 보여준다

저장이 성공하면 회원가입 완료 메시지를 보여준다.

실패하면 오류 메시지를 보여준다.

전체 흐름 정리

  1. 사용자가 회원가입 정보를 입력한다.
  2. 서버가 입력값을 받는다.
  3. 서버가 입력값을 검사한다.
  4. 서버가 SQL을 준비한다.
  5. DBMS가 SQL을 실행한다.
  6. 데이터베이스에 회원 정보가 저장된다.
  7. 서버가 결과를 사용자에게 보여준다.

6. 예시

6-1. 회원 테이블 생성 예시

CREATE TABLE members (
  id NUMBER PRIMARY KEY,
  name VARCHAR2(50) NOT NULL,
  email VARCHAR2(100) UNIQUE,
  created_at DATE
);

이 SQL은 members라는 회원 테이블을 만든다.

6-2. 회원 데이터 저장 예시

INSERT INTO members (id, name, email, created_at)
VALUES (1, 'Kim', 'kim@example.com', SYSDATE);

이 SQL은 members 테이블에 회원 한 명의 데이터를 저장한다.

6-3. 회원 데이터 조회 예시

SELECT id, name, email
FROM members
WHERE id = 1;

이 SQL은 id가 1인 회원의 id, name, email을 조회한다.

6-4. 파일 시스템 저장 예시

1,Kim,kim@example.com
2,Lee,lee@example.com

위 예시는 CSV 파일에 회원 정보를 저장한 형태다.

CSV는 Comma-Separated Values의 줄임말이다.

콤마로 값을 구분하는 파일 형식이다.

간단한 데이터는 CSV로 관리할 수 있다.

하지만 서비스의 핵심 데이터는 DBMS에 저장하는 것이 일반적이다.


7. 코드 또는 설정 설명

7-1. CREATE TABLE 설명

CREATE TABLE members (
  id NUMBER PRIMARY KEY,
  name VARCHAR2(50) NOT NULL,
  email VARCHAR2(100) UNIQUE,
  created_at DATE
);

CREATE TABLE members는 members라는 테이블을 생성한다는 의미다.

id NUMBER PRIMARY KEY는 id 컬럼을 숫자형으로 만들고 기본키로 지정한다는 의미다.

NUMBER는 숫자 데이터를 저장하는 타입이다.

PRIMARY KEY는 기본키다. 각 행을 구분하는 대표 값이다.

기본키는 중복될 수 없고 비어 있을 수 없다.

name VARCHAR2(50) NOT NULL은 name 컬럼을 문자형으로 만들고 최대 50자까지 저장한다는 의미다.

VARCHAR2는 Oracle에서 사용하는 문자형 데이터 타입이다.

NOT NULL은 반드시 값이 있어야 한다는 제약 조건이다.

email VARCHAR2(100) UNIQUE는 email 컬럼을 문자형으로 만들고 최대 100자까지 저장한다는 의미다.

UNIQUE는 중복을 허용하지 않는 제약 조건이다.

created_at DATE는 created_at 컬럼에 날짜 데이터를 저장한다는 의미다.

DATE는 날짜형 데이터 타입이다.

7-2. INSERT 설명

INSERT INTO members (id, name, email, created_at)
VALUES (1, 'Kim', 'kim@example.com', SYSDATE);

INSERT INTO members는 members 테이블에 데이터를 입력한다는 의미다.

(id, name, email, created_at)은 값을 넣을 컬럼 목록이다.

VALUES는 실제로 저장할 값을 지정한다.

1은 id 컬럼에 들어갈 값이다.

'Kim'은 name 컬럼에 들어갈 값이다.

'kim@example.com'은 email 컬럼에 들어갈 값이다.

SYSDATE는 Oracle에서 현재 날짜와 시간을 반환하는 함수다.

7-3. SELECT 설명

SELECT id, name, email
FROM members
WHERE id = 1;

SELECT id, name, email은 조회할 컬럼을 지정한다.

FROM members는 members 테이블에서 데이터를 가져온다는 의미다.

WHERE id = 1은 id가 1인 행만 조회한다는 조건이다.

WHERE는 조건을 지정할 때 사용한다.


8. 주의점

8-1. 데이터와 정보를 구분해야 한다

데이터는 단순한 값이다.

정보는 데이터를 해석하거나 가공한 결과다.

구분 의미 예시
데이터 가공 전의 값 10000, 15000, 20000
정보 의미 있게 정리한 결과 총 매출 45000원

8-2. 데이터베이스와 DBMS를 구분해야 한다

데이터베이스는 데이터가 저장되는 공간이다.

DBMS는 데이터베이스를 관리하는 프로그램이다.

구분 의미
데이터베이스 데이터 저장 공간
DBMS 데이터베이스 관리 프로그램

Oracle, MySQL, PostgreSQL은 데이터베이스 자체라기보다 DBMS라고 보는 것이 정확하다.

8-3. 테이블과 데이터베이스를 같은 말로 쓰면 안 된다

데이터베이스는 여러 테이블을 포함할 수 있다.

테이블은 데이터베이스 안에 있는 데이터 저장 단위다.

예를 들어 쇼핑몰 데이터베이스 안에는 다음 테이블들이 있을 수 있다.

  • members 테이블
  • products 테이블
  • orders 테이블
  • payments 테이블

8-4. 행과 열을 헷갈리면 안 된다

행은 가로 한 줄이다.

행은 데이터 한 건이다.

열은 세로 항목이다.

열은 데이터의 속성이다.

구분 의미 예시
데이터 한 건 회원 한 명
데이터 항목 이름, 이메일

8-5. 파일 시스템이 항상 나쁜 것은 아니다

파일 시스템은 간단한 데이터 저장에 적합하다.

예를 들어 다음 데이터는 파일로 저장해도 된다.

  • 설정 파일
  • 간단한 로그 파일
  • 임시 데이터 파일
  • 작은 CSV 파일

하지만 중요한 서비스 데이터는 DBMS에 저장하는 것이 일반적이다.

  • 회원 정보
  • 주문 정보
  • 결제 정보
  • 게시글 정보
  • 권한 정보

8-6. SQL은 DBMS마다 조금씩 다르다

SQL은 표준이 있다.

하지만 DBMS마다 문법과 함수가 조금씩 다르다.

예를 들어 현재 날짜를 구하는 방식이 다를 수 있다.

DBMS 현재 날짜 함수 예시
Oracle SYSDATE
MySQL NOW()
PostgreSQL CURRENT_TIMESTAMP

SQLD를 공부할 때는 Oracle 기준 문법을 우선으로 정리하는 것이 좋다.

8-7. 기본키 없이 테이블을 만들면 관리가 어렵다

기본키는 각 행을 구분하는 기준이다.

기본키가 없으면 특정 행을 정확히 찾기 어렵다.

예를 들어 이름이 Kim인 회원이 여러 명이면 이름만으로는 한 명을 구분할 수 없다.

그래서 실무에서는 보통 id 같은 기본키를 둔다.

8-8. 중복 데이터를 조심해야 한다

같은 데이터가 여러 곳에 저장되면 문제가 생긴다.

예를 들어 회원 이메일이 회원 테이블과 주문 테이블에 모두 저장되어 있다고 하자.

회원이 이메일을 변경했는데 회원 테이블만 수정되고 주문 테이블은 수정되지 않으면 데이터가 서로 달라진다.

이런 문제를 데이터 불일치라고 한다.

데이터베이스 설계에서는 중복을 줄이고 일관성을 유지하는 것이 중요하다.


9. 요약

데이터는 가공 전의 값이다.

정보는 데이터를 의미 있게 가공한 결과다.

데이터베이스는 데이터를 체계적으로 저장하고 관리하는 공간이다.

DBMS는 데이터베이스를 관리하는 프로그램이다.

파일 시스템은 파일 단위로 데이터를 저장한다.

DBMS는 데이터를 구조화해서 저장하고 SQL로 쉽게 조회할 수 있게 한다.

데이터베이스는 테이블, 행, 열로 데이터를 저장한다.

SQL은 데이터베이스에 명령을 내리는 언어다.

실제 개발에서는 회원가입, 로그인, 주문, 게시글, 결제 같은 기능에 데이터베이스가 사용된다.

SQLD를 공부하려면 데이터, 정보, 데이터베이스, DBMS, 테이블, 행, 열, 기본키, 외래키를 먼저 이해해야 한다.


10. 핵심 용어 정리

데이터 = 아직 해석되기 전의 단순한 값이다.

정보 = 데이터를 의미 있게 가공한 결과다.

데이터베이스 = 데이터를 체계적으로 저장하고 관리하는 공간이다.

DBMS = 데이터베이스를 관리하는 프로그램이다.

파일 시스템 = 운영체제가 파일을 저장하고 관리하는 방식이다.

SQL = 데이터베이스에 명령을 내리는 언어다.

테이블 = 데이터를 행과 열로 저장하는 구조다.

행 = 테이블에서 데이터 한 건을 의미한다.

열 = 테이블에서 하나의 데이터 항목을 의미한다.

컬럼 = 열과 같은 의미로 쓰이며 데이터 항목을 뜻한다.

레코드 = 행과 비슷한 의미로 쓰이며 데이터 한 건을 뜻한다.

필드 = 컬럼과 비슷한 의미로 쓰이며 하나의 데이터 항목을 뜻한다.

스키마 = 데이터베이스의 구조를 정의한 설계도다.

데이터 타입 = 컬럼에 저장할 수 있는 값의 종류다.

문자형 = 글자 데이터를 저장하는 데이터 타입이다.

숫자형 = 숫자 데이터를 저장하는 데이터 타입이다.

날짜형 = 날짜와 시간 데이터를 저장하는 데이터 타입이다.

기본키 = 테이블에서 각 행을 구분하는 대표 값이다.

외래키 = 다른 테이블의 기본키를 참조하는 값이다.

관계 = 테이블과 테이블 사이의 연결이다.

1:N 관계 = 하나의 데이터가 여러 데이터와 연결되는 관계다.

SELECT = 데이터베이스에서 데이터를 조회하는 SQL 명령어다.

INSERT = 데이터베이스에 데이터를 입력하는 SQL 명령어다.

UPDATE = 데이터베이스의 데이터를 수정하는 SQL 명령어다.

DELETE = 데이터베이스의 데이터를 삭제하는 SQL 명령어다.

CREATE = 데이터베이스 객체를 생성하는 SQL 명령어다.

DROP = 데이터베이스 객체를 삭제하는 SQL 명령어다.

제약 조건 = 잘못된 데이터가 들어가지 않도록 제한하는 규칙이다.

NOT NULL = 값이 비어 있으면 안 된다는 제약 조건이다.

UNIQUE = 값이 중복되면 안 된다는 제약 조건이다.

PRIMARY KEY = 기본키를 지정하는 제약 조건이다.

AD

제휴 광고

일부 링크는 제휴 링크이며, 구매 또는 가입 시 일정 수수료를 받을 수 있습니다.

AD

'SQLD' 카테고리의 다른 글

전체보기