데이터베이스

데이터 엔지니어링 입문

Vincent Vankrunkelsven

Data Engineer, DataCamp

데이터베이스란?

 

데이터베이스 이미지

빠른 검색과 조회를 위해 정리된, 대체로 대규모의 데이터 모음.

 

  • 데이터 저장
  • 데이터 정리
  • DBMS를 통한 데이터 조회/검색
데이터 엔지니어링 입문

데이터베이스와 파일 저장소

데이터베이스

 

데이터베이스 이미지

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

파일 시스템

 

파일 이미지

  • 체계성이 낮음
  • 단순하고 부가 기능이 적음
데이터 엔지니어링 입문

구조화 데이터와 비구조화 데이터

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

  • 관계형 데이터베이스

 

반구조화된 데이터

  • 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")
);

고객 및 주문 데이터베이스 스키마

-- Join both tables on foreign key
SELECT * FROM "Customer"
INNER JOIN "Order"
ON "customer_id" = "Customer"."id";
 id | first_name | ... | product_price
  1 | Vincent    | ... |            10
데이터 엔지니어링 입문

SQL: 스타 스키마

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

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

  • 팩트(Facts): 실제로 발생한 사건(예: 상품 주문)
  • 차원(Dimensions): 현실 세계에 대한 정보(예: 고객 정보)
1 https://en.wikipedia.org/wiki/Star_schema
데이터 엔지니어링 입문

연습해 봅시다!

데이터 엔지니어링 입문

Preparing Video For Download...