Data semi-terstruktur

**Data semi-terstruktur** merupakan suatu format dari data terstruktur yang tidak memiliki struktur tabel seperti yang struktur pada basis data relasional atau struktur tabel data lainnya. Data semi-terstruktur tetap bisa memiliki label metadata (tag) atau penanda lain yang dapat berfungsi sebagai pemisah elemen semantik dan memperjelas hierarki tupel (baris, *row*) dan atribut (kolom, *property*) dalam data. Data semi-terstruktur juga dikenal sebagai struktur yang menggambarkan dirinya sendiri.

Dalam data semi-terstruktur, entitas yang dikelompokkan dalam kelas yang sama dapat memiliki atribut yang berbeda, dan urutan atribut tidak penting.

Data semi-terstruktur semakin sering digunakan sejak Internet berkembang di mana data tidak lagi hanya berupa dokumen teks lengkap dan basis data, dan berbagai aplikasi memerlukan perantara untuk bertukar informasi. Data semi-terstruktur dapat ditemukan dalam basis data berorientasi objek.

## Jenis

### XML
*Extensible Markup Language* (XML), bahasa *markup* lainnya, email, dan pertukaran data elektronik (EDI) adalah beberapa bentuk data semi-terstruktur. Sebelumnya, OEM (*Object Exchange Mode*l)  diciptakan sebelum XML sebagai sarana bagi suatu struktur data untuk mendeskripsikan dirinya secara mandiri. XML digunakan secara luas oleh layanan web yang memanfaatkan prinsip *Simple Object Access Protocol* (SOAP) dalam pengembangannya.

Beberapa tipe data yang dijelaskan di sini sebagai "semi-terstruktur", khususnya XML, memiliki kesan bahwa data tersebut tidak mampu memiliki ketelitian struktural pada tingkat fungsional yang sama dengan Tabel dan Baris Relasional. Memang, pandangan XML sebagai sesuatu yang pada hakikatnya semi-terstruktur (sebelumnya disebut sebagai "tidak terstruktur") telah menghambat penggunaannya untuk berbagai aplikasi yang berpusat pada data. Bahkan dokumen, yang biasanya dianggap sebagai lambang semi-struktur, dapat dirancang dengan ketelitian yang hampir sama seperti skema basis data, ditegakkan oleh skema XML dan diproses oleh program perangkat lunak komersial maupun khusus tanpa mengurangi kegunaannya oleh pembaca manusia.

Mengingat fakta ini, XML dapat disebut memiliki "struktur fleksibel" yang mampu memiliki alur dan hierarki yang berpusat pada manusia serta struktur elemen dan pengetikan data yang sangat ketat.

Namun, konsep XML sebagai "dapat dibaca manusia" hanya dapat dipahami sampai sejauh itu. Beberapa implementasi/dialek XML, seperti representasi XML dari konten dokumen Microsoft Word, seperti yang diimplementasikan dalam Office 2007 dan versi setelahnya, menggunakan lusinan atau bahkan ratusan jenis tag berbeda yang mencerminkan domain masalah tertentu - dalam kasus Word, pemformatan pada level karakter, paragraf, dan dokumen, definisi gaya, penyertaan kutipan, dst. - yang saling bersarang dengan cara yang rumit. Memahami bahkan sebagian saja dari dokumen XML tersebut dengan membacanya, apalagi menemukan kesalahan dalam strukturnya, adalah mustahil tanpa pemahaman awal yang sangat mendalam mengenai implementasi XML spesifik, bersama dengan bantuan perangkat lunak yang memahami skema XML yang telah digunakan. Teks tersebut tidak dapat "dipahami manusia", seperti halnya buku yang ditulis dalam bahasa Swahili (yang menggunakan alfabet Latin) tidak dapat dipahami oleh orang Amerika atau Eropa Barat yang tidak mengetahui sepatah kata pun dari bahasa tersebut: tag tersebut merupakan simbol yang tidak berarti bagi orang yang tidak mengenal domain tersebut.

### JSON
JSON atau *JavaScript Object Notation*, adalah format standar terbuka yang menggunakan teks yang dapat dibaca manusia untuk mengirimkan objek data. JSON telah dipopulerkan oleh layanan web yang dikembangkan memanfaatkan prinsip REST.

Basis data seperti MongoDB dan Couchbase menyimpan data secara asli dalam format JSON, memanfaatkan keunggulan arsitektur data semi-terstruktur.

## Pro dan kontra

### Keuntungan

* Programmer yang menyimpan objek dari aplikasinya ke database tidak perlu khawatir tentang ketidaksesuaian impedansi relasional objek, tetapi sering kali dapat membuat serial objek melalui pustaka yang ringan.
* Dukungan untuk data bersarang atau hierarkis sering kali menyederhanakan model data yang mewakili hubungan kompleks antara entitas.
* Dukungan untuk daftar objek menyederhanakan model data dengan menghindari penerjemahan daftar yang berantakan ke dalam model data relasional.

### Kekurangan

* Model data relasional tradisional memiliki bahasa kueri yang populer dan siap pakai, SQL .
* Cenderung pada "sampah masuk, sampah keluar"; dengan menghilangkan hambatan dari model data, lebih sedikit pemikiran ke depan yang diperlukan untuk mengoperasikan aplikasi data.

## Model semi terstruktur
**Model semi-terstruktur** adalah model basis data di mana tidak ada pemisahan antara data dan skema, dan jumlah struktur yang digunakan bergantung pada tujuannya.

Keunggulan model ini adalah sebagai berikut:

* Ini dapat mewakili informasi beberapa sumber data yang tidak dapat dibatasi oleh skema.
* Ini menyediakan format yang fleksibel untuk pertukaran data antara berbagai jenis basis data.
* Akan berguna untuk melihat data terstruktur sebagai semi-terstruktur (untuk tujuan penelusuran).
* Skema dapat dengan mudah diubah.
* Format transfer data mungkin portabel.

Kompromi utama yang terjadi saat menggunakan model basis data semi-terstruktur adalah bahwa kueri tidak dapat dibuat seefisien dalam struktur yang lebih terbatas, seperti pada model relasional . Biasanya catatan dalam basis data semi-terstruktur disimpan dengan ID unik yang direferensikan dengan petunjuk ke lokasinya di disk. Hal ini membuat kueri navigasi atau berbasis jalur cukup efisien, tetapi untuk melakukan penelusuran pada banyak rekaman (seperti yang lazim dalam SQL ), hal ini tidak seefisien karena harus mencari di seluruh disk mengikuti petunjuk.

Object Exchange Model (OEM) adalah salah satu standar untuk mengekspresikan data semi-terstruktur, cara lain adalah XML .

## Lihat juga

* Bahasa pemrograman NoSQL
* Data terstruktur

## Referensi


## Pranala luar

* Kelompok Basis Data UPenndata semi terstruktur dan XML
* Analisis data semi-terstruktur: Platform relasional atau Hadoop? oleh IBM