DDIA 이해 데이터 모델 & 데이터 structure: I 모델

2512 단어
DDIA(Designing Data-Intensive Applications)의 첫 번째 부분을 보고 데이터 시스템의 기초, 예를 들어 3대 원칙, 기본/흔한 데이터 모델(models), 데이터 저장 구조(structures)를 소개했다.비록 잠시 많은 세부 사항이나 실례(후속)를 구체적으로 설명하지 못했지만 일부 사고방식을 정리했다. 이전에 하나의 시스템을 이해할 때 명사의 어리석거나 혼란스러움을 본 것과 다르다.
저는 키워드의 정의를 정리하고 나무의 구조에 따라 내려가는 것을 좋아합니다. 문장의 조직 형식은 제가 중시하는 점으로 하겠습니다.

Definition


내가 이전에 약간 혼란스러웠던 몇 가지 개념을 먼저 알아내면 나중에 데이터 시스템에 대해 학습할 수 있다.Storage engine: 데이터 시스템 내부에서 데이터 삭제와 수정을 위한 구성 요소입니다.
Data Models: 애플리케이션 개발자가 보는 데이터 형식은 사용자도 데이터베이스로 데이터를 전달합니다.예를 들어 사용자가 본 데이터는 K/V 또는 테이블 형식입니다.
Data Structures: 데이터베이스 차원(storage engine)의 추상적인 구조로 데이터베이스 내부에서 저장과 검색에 의존하는 데이터 조직 형식을 진행한다.예를 들어 KV 모델의 데이터는 "해시 인덱스"방식으로 인덱스를 구성할 수 있습니다.
Data Orientation and clustering: 관계 데이터베이스에는 row-orientation(행 방향) 방식으로 데이터를 저장할 수 있지만 column-oriented(열 방향)나correlational(관련성) 방식도 사용할 수 있습니다.이렇게 하면 서로 다른 유형의 데이터 대상을 메모리에 인접한 위치에 존재하는 방식으로 일부 관련 데이터 조작의 성능을 효과적으로 향상시킬 수 있다. 이를'clustering', 컬렉션이라고 부른다.

Data Models


데이터베이스는 흔히 관계형 데이터베이스와NosQL로 나뉘는데 비교적 유행하는NosQL은 주로 K/V식,document(문형),graph(도형),object(대상),tuple(원조) 등이 있다.[주: 여기서 나는 매우 고민한다. 왜냐하면 NoSQL을 주로 4가지 유형으로 나눈다는 말이 있기 때문이다. 그것이 바로 KV,document,graph,column 열식 저장소이다. 그러나 나는 NoSQL 개념은 데이터 모델을 가리키는 경향이 있고 열식 저장소는 데이터 structure의 개념이므로 열식 저장소를 일종의 NoSQL로 간주해서는 안 된다고 생각한다. 그 다음에 또 관련될 것이다.]
먼저 두 가지 개념을 소개하고schema와querylanguage를 소개한 다음에 책에서 소개한 몇 가지 데이터 모델의 비교를 간단하게 열거한다.

schema

  • explict,schema on write, 디스플레이 모드: 명확한 데이터 형식, 모든 쓰기 데이터는 고정된 형식(예를 들어 관계 데이터베이스에서 모든 데이터는 표, 줄의 형식으로 쓰기)
  • implict,schema on read,스텔스 모드: 데이터 구조는 스텔스식이고 데이터를 읽을 때 일정한 데이터 형식에 따라 처리하며 데이터 형식이 확실하지 않은 경우
  • 에 자주 사용된다.

    query language

  • declarative language, 성명형 조회: 조회한 데이터가 따르는 조건과 데이터를 어떻게 변환하는지 지정하기만 하면 됩니다. 예를 들어 ans =σtypes = “programmars” (person);데이터베이스 조회 최적화기에서 색인, 연결 방법, 각 부분의 실행 순서를 어떻게 선택하는지 결정한다.병렬 실행에 적용됩니다.
  • imperative language, 명령식 조회: 특정한 데이터 순서에 따라 실행하면 다중 핵이나 다중 호스트의 병행을 실현하기 어렵다. 예를 들어
  • def findProgrammars():
        ans = []
        for i in range(len(person)):
            if person[i].types == programmars:
                ans.append(person[i])
        return ans
    

    compares


    mode
    schema
    query language
    feature
    relations fited
    Relational
    explict
    declarative
    비교적 좋은 지원 연결 (join) 조작
    다대일, 간단한 다대다 관계에 적용
    Document
    implict
    imperative
    유연하고 효율적이며 어플리케이션에 더 가까운 데이터 구조
    일대다 관계식에 적용
    Graph
    implict
    다대다 관계에 적용

    좋은 웹페이지 즐겨찾기