[SQL] SQL 기본 개념 정리

MINJI·2024년 11월 14일
1

SQL

목록 보기
1/3
post-thumbnail

⭐ 관계형 데이터베이스

1. 관계형 데이터베이스란?

구조화된 데이터를 저장하고 질의할 수 있도록 해주는 스토리지

  • 액셀 스프레드시트 형태의 테이블로 데이터를 정의하고 저장
  • 관계형 데이터베이스를 조작하는 프로그래밍 언어가 SQL

2. 대표적 관계형 데이터베이스

프로덕션 데이터베이스

  • MySQL, PostgreSQL, Oracle, ...
  • OLTP (OnLine Transaction Processing)
  • 빠른 속도에 집중. 서비스에 필요한 정보 저장

데이터 웨어하우스

  • Redshift, Snowflake, BigQuery, Hive, ...
  • OLAP (OnLine Analytical Processing)
  • 처리 데이터 크기에 집중. 데이터 분석 or 모델 빌딩 등을 위한 데이터 저장
  • 보통 프로덕션 데이터베이스를 복사 -> 데이터 웨어하우스에 저장

3. 관계형 데이터베이스의 구조

  • 가장 밑단에는 테이블들이 존재 (ex. 액셀의 sheet)
  • 데이터베이스(or 스키마)라는 폴더 밑에 테이블들이 구성 (ex. 액셀 파일)

테이블의 구조 (테이블 스키마)

  • 테이블은 레코드들로 구성 ()
  • 레코드는 하나 이상의 필드(컬럼)로 구성 ()
  • 필드(컬럼)는 이름과 타입과 속성(primary key)으로 구성

⭐ SQL

1. SQL이란?

Structured Query Language
관계형 데이터베이스에 있는 데이터(테이블)를 질의하거나 조작해주는 언어

2. SQL의 단점

  • 정규표현식을 통해 비구조화된 데이터를 어느 정도 다루는 것은 가능하나 제약이 심함
  • 많은 관계형 데이터베이스들이 플랫한 구조만 지원함
  • 비구조화된 데이터를 처리하지 못함
  • 관계형 데이터베이스마다 SQL 문법이 조금씩 상이

3. 데이터 모델링 방법

Star Schema

  • Production DB용 관계형 데이터베이스에서는 보통 스타 스키마를 사용해 데이터 저장
  • 데이터를 논리적 단위로 나눠 저장하고 필요시 조인
  • 스토리지의 낭비가 덜하고 업데이트가 쉬움

Denormalized Schema

  • 데이터 웨어하우스에서 사용하는 방식
  • 별도의 조인이 필요없어 빠른 계산이 가능
  • 스토리지 공간을 많이 차지하는 문제

0개의 댓글