MinUk.Dev
- minuk dev wiki

created : Mon, 01 Jan 0001 00:00:00 +0000
modified : Mon, 01 Jan 0001 00:00:00 +0000

2 장 데이터 모델과 질의 언어

  • 관계형 모델과 문서모델

    • 관계형 모델의 장점 : 비지니스 데이터 처리 (트랜잭션, 일괄처리)
    • NoSQL의 장점:
      • 높은 쓰기 처리량(대규모 데이터셋에 유리)
      • 무료 오픈 소스 소프트웨어
      • 특수한 연산 지원
      • 동적이고 풍부한 표현력
    • 다중 저장소 지속성 : 관계형 데이터베이스와 비관계형 데이터 스토어가 함께 사용되는 개념
    • 개인 생각 : Web과 REST API의 선호도 증가에 따라 개발자에게 친숙해진 영향도 있다
  • 객체 관계형 불일치

    • 임피던스 불일치(impedance mismatch)
    • 언제나 한번에 조회되는 것도 아니고, 중복제거 등 다양한 문제가 섞여있음.
  • 다대일과 다대다 관계

    • 관계형이 강점을 보이는 이유 : 조인연산
    • 다대일(many-to-one)은 조인을 흉내내야한다.
    • 다대다(many-to-many)는 조인 연산이 없다면 사실상 불가능하다
  • 문서 데이터베이스는 역사를 반복하고 있나?

    • 네트워크 모델
      • 개인 추가 자료
        • https://github.com/twitter-archive/flockdb
        • 과거 twitter 에서도 graph 기반 모델을 사용해서 개발한 전적이 있으나 현재는 RDB와 Document DB 등을 섞어서 사용하는 것으로 알고 있습니다.
    • 관계형 모델
  • 관계형 데이터베이스와 오늘날의 문서 데이터베이스

    • 문서 데이터 모델의 선호 이유
      • 스키마 유연성, 지역성
      • 일부 어클리케이션의 데이터 구조와 유사
    • 관계형의 선호 이유
      • 조인, 다대일, 다대다 관계 지원
  • 어떤 데이터 모델이 애플리케이션 코드를 더 같단하게 할까?

    • 아직 모름
    • 개인 생각 : 발표 이후 스터디에서 선호도 및 자신의 사례를 공유하면서 이야기를 나눠봤으면 함
  • 문서 모델에서의 스키마 유연성

    • 읽기 스키마(schema-on-read)
    • 쓰기 스키마(schema-on-write)
    • 문서 데이터베이스에서 종종 불리는 schemaless는 쓰기 스키마를 말하는 것이다.
    • 일반적인 RDB에서는 마이그레이션(migration)을 수행해서 스키마를 변경하게 된다.
      • 개인 생각 : 마이그레이션의 생산성 및 성능에 대해서 토론하면 좋겠습니다.
  • 질의를 위한 데이터 지역성

    • 저장소 지역성(storage locality)를 잘 살리려면 문서를 작게 유지하는 것을 권장한다
    • 다중 테이블 색인 클러스터 테이블, 칼럼 패밀리 개념 등
  • 문서 데이터베이스와 관계형 데이터베이스의 통합

    • MySQL 5.7, PostgreSQL 9.3부터 JSON 문서를 잘 지원한다.
  • 데이터를 위한 질의언어 $$sharks = \sigma_{\text{family=“Sharks”}}(animals)$$

    SELECT * FROM animals WHERE family = 'Sharks';
    • 선언형 질의 언어 : 간결함, 성능향상 기대, 병렬처리에 적합
  • 웹에서의 선언형 질의

    • css, XSL
  • 맵리듀스 질의