문제

내가 찾는 다른 데이터 저장 방법 SQL(그 말은,나 을 사용하고 싶 SQL 쿼리도 다)및 온에 걸쳐 몇 가지 기 JSON.이야기는 친구들과 함께 데이터베이스를 수행하는 작업,그들은 말했다 저는 고려하지 않아야 이지만,없을 정교하다. 어떤 잠재 (과 실제적인) 단점 를 사용으로 데이터 저장 파일 형식은?


나 JSON 것 SQL 이러한 이유로:

  1. JSON 엄격하게 정의 과 맛을(Oracle,Microsoft,MySQL,etc.)
  2. 이후로 Google 을 만들기 시작했 크롬,JS 통역가를 읽고,구문 분석,및 출력 JS(고,따라서 JSON)a 빠르고 쉽 과정입니다.
  3. 데이터베이스 출력 될 수 있는 순수한 JSON, 지우기 위해 필요한 중 사람이프 브라우저,etc.

다른 사람의 사이에서...

도움이 되었습니까?

해결책

나는 생각할 수 있습을 살펴 NO-SQL 데이터베이스:https://en.wikipedia.org/wiki/NoSQL

을 사용하여 좋아하는 경우 JSON-은 데이터와 같은 다음,하나의 난 개인적으로 사용되는 MongoDB.

나는 그것을 사용하지 않으로 주/단일 소스 내 응용 프로그램의 데이터,하지만 보세요.하지만,나는 당신을 사용하실 수 있습으로 그것의 주요 데이터 저장이 너무(내가 생각하는 사람은 많지 않습니다.)

내가 노력했고,매우 만족했 MongoDB C#고 사용하는 MongoVue GUI 응용 프로그램에 대한 쿼리를 실행하고 상호 작용을 가진 DB.나는 매우 행복하지 않았다 MongoVUE 지만,그것은 보인다는 그것이 최선의 선택이었다.

그러나,SQL Db 에 매우 좋은 정의의 관계에 있습니다.E.g.참조하는 항목에서는 테이블 항목에서 테이블에 B,는 종류의 물건입니다.를 사용하여 그 관계에 참여할 수 있습니다 테이블 및 할 많은 흥미로운 것들입니다.내 생각,그것은 당신을 위해 좋은 일에 경험이 분야뿐만 아니라.

MongoDB 이지 구축을 위한 관계를 정의하면(마찬가지로 지금까지 이해).그것은 개념의"문서"당신이 저장한 정보를 JSON 같은 형식으로(중첩된 키/값).당신이 문서를 쿼리할 수 있습니다,하지만 가는 것 같은 해킹의 주위에 당신의 방법의 정상적인 사용: 어떻게 수행하 SQL 참여에 해당하는 MongoDB? 또한,데이터의 일관성을 보장(에서 진정으로 믿을 수 있는 방식으로)사용하는 경우 관계에서 MongoDB 보 불가능하다.하지만 만약 내가 잘못은 그것이 가능한 것,10 배 더 열심히 그것을 달성하기보다는 SQL Db.

그러나 당신이 볼 수있는 목록에서 위키고 있는 더 나은 대안이 될 수도 있습니다 보다 MongoDB 습니다.

그러나 사용할 수 있는 순수한 JSON 뿐만 아니라와 DB 시스템입니다.

그래서,요약 JSON-과 같은 저장(적)이러한 문제점:

  • 에 좋지 않을 정의하고 활용 관계
  • 사용하는 경우 관계,데이터 무결성(나 더 많은 가능성이,참조 무결성)은 어렵습니다.
  • 사용하지 않는 경우에는 좋은 DB 시스템,하지만 당신은 덤프 JSON 으로 파일 경우는 파일이 너무 큰 당신은 성능 문제를 해결합니다.상상을 쿼리하는 1GB JSON 인코딩된 객체의 배열을 얻을 당신이 원하는 사람.당신이 짐을 전체 배열에 메모리를 실행을 통해 그것의 전체(가 없어 있기 때문에 지수)그리고 다음(실행하지 않은 경우의 기억과의 연결을 사용할 때에 네트워크-만료되지 않았는지)를 결과를 얻을.대부분의 SQL Db 에 다음과 같 MongoDB 그리고 가장 SQL Db 이 없이 이러한 문제(적어도 내에서 합리적인 양의 데이터).그들은 정밀 조정,그들은 인덱싱을 지원,참고 문헌,권한 및 역할을 정의할 수도 있습니다 코드를 실행하에 DB 수준이(트리거 및 저장 프로시저).확실히 그들은 더 복잡,하지만 그 복잡성이 필요할 수 있습니다 대부분의 시간의 최종 결과를 달성하기 위해.

다른 팁

JSON 또는 JavaScript 객체 표기법은 인간이 읽을 수있는 텍스트를 사용하여 속성 값 쌍으로 구성된 데이터 오브젝트를 전송하는 열려있는 표준 형식입니다.그것은 주로 XML의 대안으로 서버와 웹 응용 프로그램간에 데이터를 전송하는 데 사용됩니다.

데이터베이스 vs 플랫 파일 저장소 간의 비교를 더 많이 찾고 있습니다./ P>

관계형 DB를 사용하는 경우에도, 데이터 무결성 (또는 참조 무결성)은 행이 있기 때문에, 대개 타임 스탬프로 인해 데이터 무결성 (또는 참조 무결성)이 여전히 어렵습니다.이것은 꽤 자주 외래 키가 시행되지 않습니다.행 업데이트가 발생하면 2 가지 선택이 있습니다.첫째, '이전 버전을 잊어 버리십시오'.둘째, 원래 행을 업데이트하고 이전 버전을 해외 키가 쓸모없는 타임 스탬프 된 '비 관계 기록 테이블에 복사하십시오.대부분의 비즈니스 데이터에는 업데이트가 필요합니다.관계형 데이터베이스에서 참조 무결성을 유지하는 기능은 이러한 유형의 비즈니스 데이터 (대부분의 엔터프라이즈 데이터를 나타내는)에 대해 쓸모가 없습니다. 필요한 것은 시간 컨텍스트를 기반으로 한 행 버전의 행을 가진 사용자를 제시하는 시간적 데이터베이스 또는 추상화 계층입니다.이상적으로는 2 차원 I.E.의 거래 시간 및 영업 시간 (일명 유효한 시간).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top