티스토리 뷰

SQL (Structured Query Language)

  • DDL (Data Definition Language): 테이블의 구조를 정의한다.
  • DML (Data Manipulation Language): 테이블에서 검색/추가/삭제/갱신을 하는데 사용하는 언어이다.
  • 모든 대용량 데이터 웨어하우스는 SQL기반이다.
    • Redshift, Snowflake, BigQuery, Hive
    • Spark(SparkSQL), Hadoop(Hive): SQL 언어 지원
  • 단점
    • 구조화된 데이터를 다루는데 최적화가 되어있다.
      • 정규표현식을 통해 비구조화된 데이터를 어느 정도 다루는 것은 가능하나 제약이 심하다.
      • 대부분의 관계형 데이터베이스들은 JSON같이 nested형은 지원하지 않는다.
        • BigQuery는 nested structure 지원한다.
      • 비구조화된 데이터들을 다루는데 Spark, Hadoop과 같은 분산 컴퓨팅 환경이 필요해졌다.
        • 즉 SQL만으로는 비구조화된 데이터들을 처리하기 힘들다
    • 관계형 데이터베이스마다 SQL문법이 조금씩 다르다.

Star schema

  • 데이터를 다양한 형태의 fact table로 나눈다.
  • Production DB용 관계형 데이터베이스에서는 보통 스타 스키마를 사용하여 데이터를 저장한다.
  • 데이터를 논리적 단위로 나눠 저장하고, 필요시 조인한다.
  • 조인은 시간과 리소스를 사용해야 하기 때문에 속도의 저하를 일으킬 수 있다.
  • 스토리지의 낭비가 덜하고 업데이트가 쉽다.

Denormalized schema

  • NoSQL이나 데이터 웨어하우스에서 사용하는 방식이다.
    • 단위 테이블로 나눠서 저장하지 않기 때문에 별도의 조인이 필요 없다.
  • 스토리지를 더 사용하지만 조인이 필요 없기 때문에 빠른 계산이 가능하다.
  • 데이터웨어하우스는 사이즈의 제약을 덜 받는 구조이다. 다수의 컴퓨터로 구성되기 때문이다. -> 클러스터 구조이다.

SQL 기본

  • 다수의 SQL문을 실행할 경우 세미콜론을 통해 구분한다.
  •  SQL 주석
    • -- : 인라인 주석으로 한 줄짜리 주석이다.
    • /* */ : 여러 줄에 걸쳐서 사용 가능한 주석이다.
  • 팀으로 하는 프로젝트에서는 포맷팅이 필요하다.
    • SQL 키워드는 대문자로 사용하기
    • 테이블/필드 이름의 명명규칙 정하기
      • 단수형 vs 복수형
      • 스네이크 케이스 vs 카멜 케이스
728x90
반응형
댓글
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함