SQL vs NO SQL

ys0820.kim·2022년 9월 28일
0

SQL

  • SQL : RDBMS(관계형 데이터베이스)를 관리하기 위한 쿼리 언어
  • 스키마 존재, 데이터 구조가 엄격함
  • Table 간 관계를 정의하여 Join이 가능함
  • ex. MySQL, SQLite...
  • 장점: Table 내에서 데이터 중복 X (데이터 무결성 보장)
  • 단점: 스키마 구조를 사전에 정해놓기 때문에 추후 수정하기 어려움
    join으로 인해 복잡한 쿼리를 수행할 수 있음

No SQL

  • 스키마, 데이터 간의 관계가 존재하지 않음 (Join 불가능)
  • RDMBS에 비해 기본적으로 Read/Write가 빠르다.
    -RDBMBS : 배열 기반으로 데이터를 저장하여 조회 시 모든 데이터를 가져와서 검색
    -No SQL : Hash Map 구조로 저장하여 조회 시 key 값만 알면 바로 접근 가능
  • 장점 : 스키마가 없어서 유연함. 어플리케이션이 필요하는 형태의 데이터로 저장
  • 단점 : 데이터 중복이 발생할 수 있음. 수정이 필요한 경우, 모든 컬렉션을 변경해야 함.
  1. Document DB

    • mongoDB :

      • Data를 json document 형태로 저장
      • Schema-less 구조로 다양한 형태의 데이터 저장 가능
      • 전자상거래 상품 카탈로그를 만든다고 하였을 때 하나의 상품이 어떤 속성을 갖게 될지 미리 알 수 없으므로 애플리케이션에서는 이러한 가변적인 속성처리에 적합함
    • Document 구조:

{
"_id": "10006546",
"listing_url": "https://www.airbnb.com/rooms/10006546",
"name": "Ribeira Charming Duplex",
"summary": "Fantastic duplex apartment with three bedrooms, located in the historic area of Porto, Ribeira (Cube)...",
"house_rules": "Make the house your home...",
"property_type": "House",
"calendar_last_scraped": {
    "$date": {
       "$numberLong": "1550293200000"
        }
    },
"amenities": [
    "TV",
    "Cable TV",
    "Wifi",
    "Kitchen",
    "Paid parking off premises",
    "Smoking allowed",
    "Microwave"
    ]
}
  1. Key Value DB

    • 키와 값으로 이루어진, 저장과 조회라는 가장 간단한 원칙에 충실한 데이터베이스.

    • CassandraDB :
      - column wide DB라고 하며 대용량 데이터 read/write가 빠르다. - Node들이 Ring 구조로 구성됨
      - Table > Row > column (key, value로 구성)

  1. Graph DB

    • column이나 document가 필요없고 node 사이의 관계는 알 때 사용한다.

    • Graph를 이용한 데이터 탐색은 Index를 이용하지 않아도 연결된 노드를 이용하여 빠르게 조회 가능

    • index free adjacency : 노드 사이의 관계를 이용하여 인접한 사이인지 찾는 기능

    • RDBMS의 테이블 join에 비해 복잡한 연산이 필요없음

    • SNS (페이스북 등)에 적합함


참고자료1
참로자료2
참고자료3

0개의 댓글