본문 바로가기
기술스택을 쌓아보자/데이터 엔지니어링

데이터 중심의 웹 애플리케이션 설계 - 1장 데이터 모델과 질의언어 부분

by 소리331 2023. 4. 15.
반응형

관계형 모델과 문서 모델

 

  • 데이터 모델은 작성 뿐만 아니라 문제를 어떻게 생각해야하는지에 대해서도 지대한 영향을 끼친다.
  • 각 계층은 명확한 데이터 모델을 제공해 하위 계층의 복잡성을 숨긴다.(잘된 추상화)
    • 각 계층의 핵심적인 문제는 다음 하위계층 관점에서 데이터 모델을 표현하는 방법이다.
  • 다양한 유형의 데이터모델이 있고, 각 데이터 모델은 사용 방법에 대한 가정을 나타낸다.
  •  

관계형 모델과 문서 모델

  • sql : 관계(relationship, columns)로 구성되고 각 관계는 튜플(tuple, rows)로 구성된다
    • 관계형 데이터베이스의 근원은 컴퓨터에서 수행된 비즈니스 데이터처리에 있다.(트랜잭션 처리와 일괄처리)
  • 1970~1980: 네트워크 모델, 계층 모델 ⇒ 관계형모델
  • 1980~1990: 객체 데이터 베이스 등장(적게 채택)
  • 2000: XML데이터베이스(적게 채택)

NoSQL의 탄생

 

  • 2010년 대에 이르러 nosql은 관계형 모델의 우위를 뒤집으려는 최신시도
  • 트위터 해시태그, Not only sql
  • 채택의 이유
    • 대규모 데이터셋이나 매우 높은 쓰기 처리량 달성을 관계형 데이터베이스보다 쉽게 할 수 있는 뛰어난 확장성의 필요
    • 상용 데이터베이스 제품보다 무료 오픈소스 소프트웨어에 대한 선호도확산
    • 관계형 모델에서 지원하지 않는 특수 질의 동작
    • 관계형 스키마의 제한에 대한 불만과 더욱 동적이고 표현력이 풍부한 데이터 모델에 대한 바람
  • 다중 저장소 지속성(polyglot persistence) : 관계형이 비관계형과 함께 사용되는 것

객체 관계형 불일치

 

  • 임피던스 불일치(impedance mismatch): 오늘날 대부분의 앱은 객체지향 프로그래밍으로 개발하는데, 데이터를 관계형 테이블에 저장하려면 거추장스러운 전환 계층이 필요함
  • 액티브레코드(active record), 하이버네이트(hibernate): orm으로 상용구 코드(boilerplate code)의 양을 줄임
  • Json 표현은 multi-table 스키마보다 더 나은 지역성을 갖는다.

다대일과 다대다 관계

  • 중복된 데이터를 정규화하려면 다대일 관계(many to one)가 필요한데 이는 문서모델에 적합하지는 않다. 관계형 데이터 베이스에서는 join을 하면 되지만, 문서는 join 기능이 약하다
  • Db 자체가 조인을 지원하지 않으면 데이터 베이스에 대한 다중질의를 만들어서 조인을 흉내내야 한다.

 

출처

https://search.shopping.naver.com/book/catalog/32466573690?cat_id=50010586&frm=PBOKMOD&query=데이터+중심+애플리케이션+설계&NaPm=ct%3Dlghyzz9s%7Cci%3D39ccefa5ebf7870c2664a24d7b8969d30de304e6%7Ctr%3Dboknx%7Csn%3D95694%7Chk%3Dd34ae35219c581ba0ed943537981ba46b8eff92a

반응형

댓글