SQL 개념

Ramne·2021년 8월 28일
0

Structured Query Language

데이터베이스 언어로, 데이터베이스에 쿼리를 보내 데이터를 다룰 수 있다.
구조화된(structured) 테이블을 사용하는 관계형 데이터베이스에서 활용된다.
즉, SQL 언어는 체계적으로 구조를 갖춘 형식에만 사용할 수 있다.

"스키마가 뚜렷하게 보인다. 테이블 간의 관계를 직관적으로 파악할 수 있다."

Query

"질의문"
검색어도 일종의 쿼리로, 검색 시 보유한 데이터를 검색어을 이용해 필터링한다.
따라서, 쿼리는 저장되어 있는 데이터를 필터하기 위한 질의문이다.

SQL vs NoSQL

SQL과 NoSQL은 만들어진 방식, 정보의 종류, 그리고 저장방법 등에 차이가 있다.

  • 데이터 저장(Storage)
    관계형은 스키마를 기반으로 정해진 형식에 맞춰 데이터를 저장한다.
    비관계형은 필요에 맞게 다양한 형식으로 데이터를 저장한다.

  • 스키마(Schema)
    SQL을 사용하기 위해선 고정된 형식의 스키마가 필요하다.
    처리하려는 데이터의 속성별로 column(field)에 정보를 미리 정해둬야 한다.
    NoSQL은 보다 동적으로 스키마 형태를 관리할 수 있다. 꼭 틀을 지킬 필요가 없다.

  • 쿼리(Querying)
    관계형은 테이블의 관계와 형식에 맞춰 요청해야 하기에 구조화 된 쿼리 언어를 사용한다.
    비관계형은 데이터 그룹 자체를 조회하는 것에 초점을 두기 때문에 꼭 SQL일 필요없다.

  • 확장성(Scalability)
    관계형은 수직적으로 확장, 즉 높은 메모리와 CPU를 사용해 비용이 많이 든다.
    비관계형은 수평적, 즉 값싼 서버 증설, 클라우드 서비스를 이용하는 확장이다.
    서버를 추가 구축하면 많은 트래픽을 보다 편리하게 처리 할 수 있다.

SQL vs NoSQL의 승자는 없다
각 장점을 살려 두 유형을 모두 사용하여 서비스에 알맞게 설계하고 있다.
비관계형 데이터베이스가 확장성이나 속도면에서 더 뛰어나지만,
고차원으로 구조화된 관계형 데이터베이스가 더 좋은 성능을 보여주는 서비스도 있다.

관계형 데이터베이스를 사용하는 케이스

  • ACID 성질을 준수해야 하는 경우
    데이터베이스에서 발생하는 트랜잭션 과정에서, 안전성을 보장하기 위해 필요한 성질이다.
    SQL을 사용하면 데이터베이스와 상호 작용하는 방식을 정확하게 규정할 수 있기 때문에,
    데이터 처리 시 발생 가능한 예외 상황을 줄이고, 데이터베이스의 무결성을 보호할 수 있다.

    전자 상거래를 비롯한 모든 금융 서비스는 반드시 ACID 성질을 준수해야 하기 때문에 관계형 데이터베이스를 사용한다.

  • 데이터가 구조적이고 일관적인 경우
    다양한 데이터 유형과 높은 트래픽을 다룰 필요가 없기 때문에 관계형을 사용한다.
profile
💡

0개의 댓글

관련 채용 정보