복붙노트

[SQL] 관계형 데이터베이스 및 그래프 데이터베이스의 비교

SQL

관계형 데이터베이스 및 그래프 데이터베이스의 비교

누군가가 나에게 같은 Neo4j 같은 그래프 데이터베이스와 비교하여 MySQL과 같은 관계형 데이터베이스에 대한 장점과 단점을 설명 할 수 있습니까?

SQL에서는 다양한 IDS 그들을 연결하는 여러 테이블을 가지고있다. 그럼 당신은 테이블을 연결하는 조인해야합니다. 초보자의 관점에서 당신은 왜 그래프 데이터베이스와 마찬가지로 처음부터 가장자리로 명시 적 연결을하는 것보다 오히려 가입 요구하는 데이터베이스를 설계하는 것입니다. 개념적으로는 초보자하는 것은 의미가 없습니다. 아마 이것에 대한 아주 기술 만이 아닌 개념적인 이유가?

해결법

  1. ==============================

    1.실제로 두 스타일 뒤에 개념 추론이있다. 관계형 모델과 그래프 데이터베이스에 대한 위키 백과이의 좋은 개요를 제공합니다.

    실제로 두 스타일 뒤에 개념 추론이있다. 관계형 모델과 그래프 데이터베이스에 대한 위키 백과이의 좋은 개요를 제공합니다.

    주된 차이는 관계형 데이터베이스의 구조는 상위 레벨 (테이블 정의)에서 정의되는 동안 그래프 데이터베이스의 관계가, 각각의 레코드 레벨에서 저장되어 있다는 점이다.

    이것은 중요한 파급 효과가 있습니다 :

    개별 레코드 수준에서 모든 관계를 저장 만 관계의 변화가 많이있을 것입니다 경우 의미가 있습니다; 그렇지 않으면 당신은 반복해서 같은 일을 복제한다. 이 그래프 수단 데이터베이스는 불규칙한 복잡한 구조에 적합하다있다. 그러나 현실 세계에서, 대부분의 데이터베이스는 정기적으로, 비교적 간단한 구조를 필요로한다. 관계형 데이터베이스가 우세 이유입니다.

  2. ==============================

    2.그래프와 관계형 데이터베이스의 주요 차이점은 그래프 데이터베이스 경로를 작업하는 동안 관계형 데이터베이스가 세트로 작동한다는 것입니다.

    그래프와 관계형 데이터베이스의 주요 차이점은 그래프 데이터베이스 경로를 작업하는 동안 관계형 데이터베이스가 세트로 작동한다는 것입니다.

    RDBMS 사용자의 예기치 않은 도움이되지 않는 방법으로이 명단 자체. 예를 들어 반복적으로 관계형 데이터베이스에 가입하여 (친구의 예를 들면, 친구) 에뮬레이션 패스 작업을하려고 할 때, 쿼리 대기 시간은 예측할 성장하고 대규모로 조작 이러한 종류의를 표현하는 SQL 고문 언급하지 않는, 메모리 사용을한다. 당신이 현명한 색인을 통해 고통을 지연시킬 경우에도 집합 기반 데이터베이스 느린 더 많은 데이터 수단.

    Dan1111이 암시로, 대부분의 그래프 데이터베이스은 기본적인 수준에서 관계를 표현하기 때문에 고통을 가입의이 종류를 용납하지 않는다. 즉, 참조 관계는 물리적 디스크에 존재하고 그들은 감독의 이름, 그리고 자신이이 속성 그래프 모델이라고합니다 (등록 정보로 장식 될 수있다 : https://github.com/tinkerpop/blueprints/wiki/Property-Graph -모델). 당신이 선택한 경우이 방법, 당신은 디스크의 관계를 살펴보고 그들이 실체를 "결합"하는 방법을 볼 수 있었다. 관계는 따라서 그래프 데이터베이스에서 일류 엔티티와 의미 관계형 저장소에 런타임에 구체화하는 암시 적 관계보다 훨씬 더 강하다.

    그럼 왜 관심을 가져야? 두 가지 이유 :

  3. ==============================

    3.Dan1111 이미 올바른 플래그가 대답을 주었다. 추가 포인트의 몇 통과에 주목할 필요가있다.

    Dan1111 이미 올바른 플래그가 대답을 주었다. 추가 포인트의 몇 통과에 주목할 필요가있다.

    현재 위치에서 레코드를 가리키는 포인터의 알 수없는 번호가 있기 때문에 첫째, 그래프 데이터베이스의 거의 모든 구현에서, 레코드가 "고정"되어 있습니다. 기록 중 하나를 이전 위치에서 전달 주소를 떠나거나 포인터의 알 수없는 숫자를 파괴하지 않고 새 위치로 단행 될 수 없음이 의미합니다.

    이론적으로, 하나는 찾아 모든 포인터를 복구하는 방법에서 한 번 그림에 모든 레코드를 셔플 수 있습니다. 실제로이 데이터베이스가 공기 떨어져 일해야하는 시간 동안 큰 그래프 데이터베이스에 주가 걸릴 수있는 작업입니다. 그것은 단지 가능하지 않습니다.

    반면, 관계형 데이터베이스, 기록은 상당히 큰 규모로 개편 할 수 있고, 할 수있는 유일한 방법은 영향을받은 모든 인덱스를 다시 작성하는 것입니다. 이것은 상당히 큰 작업입니다 만, 어디 근처의 그래프 데이터베이스에 해당하는 큰있다.

    통과에 주목 번째 점의 가치는 월드 와이드 웹이 거대한 그래프 데이터베이스로 볼 수 있다는 것입니다. 웹 페이지는 하이퍼 링크를 포함하고 다른 것들, 다른 웹 페이지들 사이에서, 참조를 하이퍼 링크. 참조 포인터와 같은 기능을 URL을 통한 것이다.

    웹 페이지가 이전 URL에서 전달 주소를 떠나지 않고 다른 URL로 이동하면 하이퍼 링크의 알 수없는 번호가 깨진 될 것입니다. 이 깨진 링크는 지칠대로 지친, "오류 404 : 페이지를 찾을 수 없습니다"로 상승주는 메시지를 그 인터럽트 많은 서퍼 정도의 즐거움.

  4. ==============================

    4.관계형 데이터베이스로 우리가 모델링 할 수 및 외래 키 및 사용하여 그래프를 쿼리 자체를 조인. RDBMS는 '단어를 포함해서 관계형은 관계를 처리하기에 좋은 것을 의미하지 않는다. RDBMS에서 단어의 관계는 관계 대수에서가 아니라 관계에서 유래한다. RDBMS와에서, 관계 자체는 그 자체 개체로 존재하지 않습니다. (일반 / 보편적 모델링 접근 방식을 사용하는 경우) 그것은 하나의 요구는 링크 테이블의 값으로 명시 적으로 외부 키로 또는 암시 적으로 표현한다. 데이터 세트 사이의 링크가 데이터 자체에 저장된다.

    관계형 데이터베이스로 우리가 모델링 할 수 및 외래 키 및 사용하여 그래프를 쿼리 자체를 조인. RDBMS는 '단어를 포함해서 관계형은 관계를 처리하기에 좋은 것을 의미하지 않는다. RDBMS에서 단어의 관계는 관계 대수에서가 아니라 관계에서 유래한다. RDBMS와에서, 관계 자체는 그 자체 개체로 존재하지 않습니다. (일반 / 보편적 모델링 접근 방식을 사용하는 경우) 그것은 하나의 요구는 링크 테이블의 값으로 명시 적으로 외부 키로 또는 암시 적으로 표현한다. 데이터 세트 사이의 링크가 데이터 자체에 저장된다.

    더 많은 우리가 관계형 데이터베이스의 검색 깊이를 증가보다 자기 조인 우리가 수행해야하고 더 많은 우리의 쿼리 성능 저하됩니다. 깊은 우리가 우리의 계층 구조에서 이동 이상의 테이블 우리가 가입해야하고 느린 우리의 쿼리를 가져옵니다. 수학적으로 비용은 관계형 데이터베이스에 기하 급수적으로 증가. 더 복잡한 즉 우리의 쿼리와의 관계를 얻을수록 우리는 관계형 데이터베이스에 비해 그래프 혜택을 누릴 수 있습니다. 그래프를 탐색 할 때 우리는 그래프 데이터베이스에서 성능 문제가 발생하지 않습니다. 그래프 데이터베이스가 별도 개체로 관계를 저장하기 때문이다. 그러나, 뛰어난 읽기 성능이 느린 쓰기의 비용으로 제공됩니다.

    특정 상황에서 예컨대 RDBMS에서보다 그래프 데이터베이스의 데이터 모델을 변경하기 쉽다 N m로 : RDBMS와 I에 1에서 나타난 관계를 변경 한 경우 N I 잠재적으로 중단 DDL을 적용 할 필요가있다.

    RDBMS 예를 들면, 다른 영역에있는 반면 장점을 갖는다 데이터를 집계 또는 데이터에 타임 스탬프 버전 관리를하고.

    나는 데이터웨어 하우징에 대한 그래프 데이터베이스 내 블로그 게시물의 다른 장단점에 대해 토론

  5. ==============================

    5.관계형 모델 쉽게 그래프 모델에 포함 된 데이터를 나타낼 수 있지만, 우리는 두 개의 대향 실제로 심각한 문제 :

    관계형 모델 쉽게 그래프 모델에 포함 된 데이터를 나타낼 수 있지만, 우리는 두 개의 대향 실제로 심각한 문제 :

    참조 : 차세대 데이터베이스

  6. from https://stackoverflow.com/questions/13046442/comparison-of-relational-databases-and-graph-databases by cc-by-sa and MIT license