1. JSON 이란?- 정의 • JavaScript Object Notation • 경량의 DATA 교환 형식 • 읽고 쓰기에 편한 데이터 포맷 방식 • 언어에 독립적인 데이터 포맷으로 여러 언어에서 사용이 가능 • 언어와 플랫폼에 독립적 => 다른 시스템 간 객체 교환에 용이 • Application의 통신에 쓰이는 데이터 포맷
3.
1. JSON이란? -데이터 구조 • 기본 자료형 – 수, 문자열, 참/거짓, null • 복합 자료형 – 객체 : name/value 형태의 비순서화된 Set => 쌍으로 구성된 collection 타입 – 배열: 값들의 순서화된 리스트 ( ex> array, vector, list, sequence 역할로 사용가능)
4.
1. JSON이란? -데이터 특징 • value는 기본자료형, 복합자료형 모두 가능하다. • 객체의 value로 Array나 Object도 가능하다. • 무한대로 깊이를 가져갈 수 있다. • 정형화된 규격이 없다. RDBMS에서 테이블로 데이터를 표현하기 어렵다.
5.
2. Json을 지원하는MySQL • Oracle MySQL Ver. 5.7 – data type으로 지원 • MariaDB – CONNECT Storage Engine 사용하여 지원 (Ver. 10.0.16) – Dynamic Columns 를 사용하여 지원 • MySQL for facebook
6.
3. MySQL • Ver.5.7.8 부터 사용가능 • 데이터 타입 중 하나로 제공함. 데이터 타입명은 JSON • 쿼리 안에서 함수를 사용하여 입력,삭제,수정 모두 가능 • 함수를 이용하여 타입 변화, 비교, 정렬 가능 • Spatial GeoJSON 함수도 제공 • 인덱스 추가도 가능함. => General Columns의 가상 컬럼 + 함수 인덱스 • 해당 인덱스를 사용하는 실행계획도 확인이 가능하다. • 아직 GA 버전이 아님.
7.
4. MariaDB –CONNECT Storage Engine • MariaDB Ver. 10.0.16부터 사용가능 • Json 타입의 정보를 가진 파일과 연동하여 테이블을 생성하여 사용하는 방법 • 파일의 내용을 어떻게 테이블로 구현하는지는 다양하게 설정하여 구성 가능 • Json Array 타입에는 제약 사항이 있다. • DB단에서 입력,삭제,수정 가능. • 여러가지 함수들 제공(총 8가지) • 일반 데이터 타입과 같이 사용은 불가능
8.
4. MariaDB –Dynamic Columns • MariaDB Ver. 5.5 에서 부터 지원 • BLOB을 이용하여 NO_SQL 데이터를 처리할 수 있게 해주는 기능 • 데이터 입력, 수정, 삭제를 위한 함수 제공 • MariaDB Ver. 5.5와 Ver.10.0.x와 사용하는 방식이 다르다. • 가상 컬럼을 사용하여 인덱스를 생성할 수 있다.
9.
5. MySQL ForFacebook • DOCUMENT 데이터 타입으로 사용가능 • 내부적으로 BLOB을 생성하여 데이터를 저장 • Document Path를 이용하여 데이터 접근이 가능함. (바로 사용 가능) • FBSON Parser를 이용하여 내부적으로 관리함. • JSON 타입에 인덱스 생성이 가능함. • 소스를 컴파일 해야 만 사용이 가능함. • 실행계획 확인이 가능하다. • 힌트도 줄 수 있다.