데이터베이스

데이터 엔지니어링 입문

Vincent Vankrunkelsven

Data Engineer @ DataCamp

데이터베이스란?

 

데이터베이스 이미지

보통 대량의 데이터를 빠른 검색과 조회를 위해 조직한 모음입니다.

 

  • 데이터를 저장
  • 데이터를 구성
  • DBMS로 검색/조회
데이터 엔지니어링 입문

데이터베이스와 파일 저장

데이터베이스

 

데이터베이스 이미지

  • 매우 체계적임
  • 검색, 복제 등 기능 제공

파일 시스템

 

파일 이미지

  • 덜 체계적임
  • 단순하며 부가 기능 적음
데이터 엔지니어링 입문

구조화 vs 비구조화 데이터

구조화: 데이터베이스 스키마

  • 관계형 데이터베이스

 

반구조화

  • JSON

 

비구조화: 스키마 없음, 파일 유사

  • 비디오, 사진

데이터베이스 이미지

 

{ "key": "value"}

 

파일 이미지

데이터 엔지니어링 입문

SQL과 NoSQL

SQL

  • 테이블
  • 데이터베이스 스키마
  • 관계형 데이터베이스

 

MySQL 이미지

PostgreSQL 이미지

NoSQL

  • 비관계형 데이터베이스
  • 구조화/비구조화 모두 가능
  • 키-값 저장소(예: 캐싱)
  • 문서 DB(예: JSON 객체)

 

Redis/MongoDB 이미지

데이터 엔지니어링 입문

SQL: 데이터베이스 스키마

-- Create Customer Table 
CREATE TABLE "Customer" (
  "id" SERIAL NOT NULL,
  "first_name" varchar,
  "last_name" varchar,
  PRIMARY KEY ("id")
);

-- Create Order Table 
CREATE TABLE "Order" (
  "id" SERIAL NOT NULL,
  "customer_id" integer REFERENCES "Customer",
  "product_name" varchar,
  "product_price" integer,
  PRIMARY KEY ("id")
);

Customer와 Order의 데이터베이스 스키마

-- 외래 키로 두 테이블 조인
SELECT * FROM "Customer"
INNER JOIN "Order"
ON "customer_id" = "Customer"."id";
 id | first_name | ... | product_price
  1 | Vincent    | ... |            10
데이터 엔지니어링 입문

SQL: 스타 스키마

스타 스키마는 하나 이상의 팩트 테이블이 여러 차원 테이블을 참조하는 구조입니다.

고객과 주문의 스타 스키마 다이어그램

  • 팩트: 발생한 사건(예: 제품 주문)
  • 차원: 맥락 정보(예: 고객 정보)
1 Wikipedia: https://en.wikipedia.org/wiki/Star_schema
데이터 엔지니어링 입문

연습해 봅시다!

데이터 엔지니어링 입문

Preparing Video For Download...