BSON

BSON
BSON
BSON website logo.svg
파일 이름 확장명
.bson
인터넷 미디어 유형application/bson[1]
형식 유형데이터 교환
연장 위치제이슨
웹사이트bsonspec.org

BSON(/ˈbibisən/)[2]컴퓨터 데이터 교환 형식이다."BSON"이라는 이름은 JSON이라는 용어를 기반으로 하며 "Binary JSON"[2]을 의미한다.이것은 연관 배열(이름-값 쌍이라고도 함), 정수 인덱스 배열 및 기본 스칼라 유형의 제품군을 포함한 단순하거나 복잡한 데이터 구조를 나타내는 이진 형식이다.BSON은 2009년 몽고DB에서 시작되었다.여러 스칼라 데이터 유형이 MongoDB에 특별한 관심을 가지고 있으며 형식은 MongoDB 데이터베이스의 데이터 저장 형식과 네트워크 전송 형식으로 모두 사용되지만, MongoDB 외부에서 독립적으로 사용할 수 있다.구현은 C, C++, C#, D, 델파이, 에를랑, Go, 하스켈, 자바, 자바스크립트, 줄리아, 루아, OCaml, PHP, 파이톤, 루비, 러스트, 스칼라, 스몰토크, 스위프트 의 다양한 언어로 가능하다.[3]null

데이터 유형 및 구문

BSON은 공개된 사양을 가지고 있다.[4][5]구조에서 가장 위쪽의 요소는 유형 BSON 물체여야 하며 1개 이상의 요소를 포함해야 하며, 여기서 요소는 필드 이름, 유형 및 값으로 구성된다.필드 이름은 문자열.유형에는 다음이 포함된다.

  • 유니코드 문자열(UTF-8 인코딩 사용)
  • 32비트 정수
  • 64비트 정수
  • 이중(64비트 IEEE 754 부동 소수점 번호)
  • 10진수128 (128비트 IEEE 754-2008 부동 소수점 번호; BID(Binary 정수 10진수) 변종), 소수점 민감한 재무 데이터 및 소수점 34자리의 임의 정밀도 수치에 적합하며 최대값은 약 10이다6145.
  • 표준 시간대가 있는 datetime(시간대)(유닉스 시대 이후 긴 정수(밀리초))
  • 바이트 배열(임의 이진 데이터의 경우)
  • 부울(Boolean)true그리고false)
  • 무효의
  • BSON 객체
  • BSON 배열
  • 자바스크립트 코드
  • MD5 이진 데이터
  • 정규식(Perl 호환 정규식("PCRE") 버전 8.41(UTF-8 지원)[6]

JSON에 대한 중요한 차별화 요소는 BSON이 JSON에 없는 유형(예: datetime 및 바이트 배열)을 포함하고 있으며 범용 "숫자" 유형 대신 몇 가지 숫자 유형에 대해 유형 엄격 처리를 제공한다는 점이다.이러한 추가 유형을 텍스트 방식으로 표현해야 하는 상황에 대해서는 MongoDB의 Extended JSON 형식을[7] 사용할 수 있다.null

효율성

BSON은 JSON에 비해 스토리지 공간과 스캔 속도 모두에서 효율적이도록 설계됐다.BSON 문서의 큰 요소에는 스캔을 용이하게 하기 위해 길이 필드가 접두사로 되어 있다.길이 접두사 및 명시적 배열 지수로 인해 BSON이 JSON보다 더 많은 공간을 사용하는 경우도 있다.[2]null

다음과 같은 문서{"hello": "world"}다음과 같이 저장된다.

\x16\x00\x00\x00 // 총 문서 크기 \x02 // 0x02 = 문자열 hello\x00 // 필드 이름 \x06\x00\x00\x00world\x00 // 필드 값(값, null terminator) \x00 // 0x00 = 유형 EOO('개체의 끝)

참고 항목

참조

  1. ^ "BSON Support in ASP.NET Web API 2.1 - ASP.NET 4.x". Microsoft Docs. 2014-01-20. Retrieved 2010-01-12.
  2. ^ a b c "BSON (Binary JSON) Serialization". Retrieved 23 November 2021.
  3. ^ "BSON Implementation Projects". Retrieved 2021-11-24.
  4. ^ "BSON (Binary JSON): Specification". bsonspec.org. Retrieved 2021-11-24.
  5. ^ "Introducing NoSQL and MongoDB What Is NoSQL? InformIT". www.informit.com. Retrieved 2018-01-17.
  6. ^ "regex – Tools for representing MongoDB regular expressions — PyMongo 3.6.0 documentation". api.mongodb.com. Retrieved 2018-01-17.
  7. ^ "MongoDB Extended JSON documentation". docs.mongodb.com. Retrieved 2020-05-03.

외부 링크