티스토리 뷰
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
반응형
'프로그래머스 백엔드 1기 > Database' 카테고리의 다른 글
데이터베이스 (6) - Docker와 MySQL (0) | 2021.08.11 |
---|---|
데이터베이스 (5) - 클라우드와 AWS (0) | 2021.08.10 |
데이터베이스 (4) - DDL, DML (0) | 2021.08.10 |
데이터베이스 (2) - 관계형 데이터베이스 (0) | 2021.08.10 |
데이터베이스 (1) - 데이터베이스 용도 (0) | 2021.08.09 |
댓글