데이터베이스/DB 필수지식!

[데이터베이스] RDBMS와 NoSQL의 차이점 완벽 정리: 개념, 장단점, 사용 사례와 예제 코드

CodeCaine Explorer 2024. 12. 18. 11:08
728x90
반응형
SMALL

1. RDBMS와 NoSQL의 차이

1️⃣ RDBMS (Relational Database Management System)

  • 데이터를 표(테이블) 형태로 저장하는 시스템입니다.
  • 테이블 안에는 행(row)열(column)으로 데이터가 구성됩니다.
  • 데이터를 저장하기 전에 구조(스키마)를 미리 정의해야 합니다.
    예) 이름, 나이, 직업처럼 정해진 틀에 데이터를 저장.
  • SQL(Structured Query Language)을 사용해서 데이터를 관리합니다.

💡 RDBMS 사용 예시
은행 시스템, 전자상거래(쇼핑몰), 사내 ERP 등 정확성과 구조화된 데이터가 중요한 곳에서 사용.

2️⃣ NoSQL (Not Only SQL)

  • 데이터를 유연하게 저장할 수 있는 시스템입니다.
  • 테이블 구조 없이, 다양한 형태로 데이터를 저장합니다.
    예) JSON, 키-값(key-value) 쌍, 그래프 등.
  • 비정형 데이터(정해진 틀이 없는 데이터) 저장에 적합합니다.
    예) 소셜미디어 포스트, IoT 센서 데이터 등.

💡 NoSQL 사용 예시
페이스북, 트위터, 유튜브 같은 빅데이터와 빠른 처리 속도가 중요한 곳에서 사용.


2. 쉽게 이해하는 차이

  • RDBMS는 책장에서 정리된 책을 보는 느낌이에요! 📚
    (제목, 저자, 출판일이 딱딱 정해져 있음.)
  • NoSQL은 서랍에 다양한 물건을 넣는 느낌이에요! 🛍️
    (서랍 안에는 책, 연필, 메모지처럼 형태가 다른 데이터가 막 섞여 있음.)

3. RDBMS 예시코드 (오라클 SQL)

📌 학생 정보를 저장하고 조회하는 간단한 예시

-- 1. 학생 정보를 저장할 테이블을 만듭니다.
CREATE TABLE Students (
    StudentID NUMBER PRIMARY KEY,  -- 학생 ID (고유 번호)
    Name VARCHAR2(50),            -- 학생 이름
    Age NUMBER,                   -- 학생 나이
    Major VARCHAR2(50)            -- 전공
);

-- 2. 데이터를 테이블에 추가합니다.
INSERT INTO Students (StudentID, Name, Age, Major)
VALUES (1, 'Alice', 22, 'Computer Science'); -- Alice라는 학생 정보 입력

INSERT INTO Students (StudentID, Name, Age, Major)
VALUES (2, 'Bob', 24, 'Mathematics');        -- Bob이라는 학생 정보 입력

-- 3. 테이블의 데이터를 조회합니다.
SELECT * FROM Students;

4. 코드 설명

1️⃣ CREATE TABLE

  • CREATE TABLE Students학생 정보를 저장할 테이블을 만드는 명령어입니다.
  • 괄호 안에는 열(Column)을 정의합니다.
    • StudentID: 고유 번호, 숫자만 저장.
    • Name: 이름, 최대 50글자까지 저장 가능.
    • Age: 나이, 숫자만 저장.
    • Major: 전공, 최대 50글자까지 저장 가능.

2️⃣ INSERT INTO

  • INSERT INTO Students데이터 추가 명령어입니다.
  • 괄호 안에는 추가할 열 이름과 값을 순서대로 적습니다.
    예) 학생 ID가 1번인 Alice라는 학생 추가.

3️⃣ SELECT

  • SELECT * FROM Students
    는 테이블에 있는명령어입니다.
    • *는 "모든 열"을 의미합니다.
  • 모든 데이터 조회

5. 결과 설명

위 SQL을 실행하면 테이블에는 다음과 같은 데이터가 저장됩니다.

StudentID Name Age Major
1 Alice 22 Computer Science
2 Bob 24 Mathematics

SELECT를 실행하면 위와 같은 결과를 볼 수 있습니다. 😊


6. NoSQL 예시 (MongoDB)

학생 정보를 JSON 형식으로 저장

{
    "StudentID": 1,
    "Name": "Alice",
    "Age": 22,
    "Major": "Computer Science"
}

💡 MongoDB에서는 테이블 대신 JSON 형식으로 데이터를 저장하고 관리합니다.


7. 차이 정리

특징 RDBMS NoSQL
데이터 구조 테이블 (행과 열) JSON, 키-값, 그래프 등
스키마 고정됨 (미리 정의) 유연함
속도 정확하지만 상대적으로 느림 빠르지만 정확성은 다를 수 있음
사용 예시 은행, ERP, 쇼핑몰 소셜미디어, 빅데이터, IoT
728x90
반응형
SMALL