Trajectory SQL adalah ekstensi dari PolarDB untuk Oracle yang memodelkan dan melakukan kueri terhadap pergerakan objek sepanjang waktu. Halaman ini mendefinisikan tipe data inti dan konsep yang akan Anda temui saat bekerja dengan Trajectory SQL.
Objek Trajektori
Trajectory Object merekam seluruh riwayat pergerakan suatu objek bergerak—seperti kendaraan, orang, atau entitas apa pun yang mengubah lokasi seiring waktu. Struktur ini bersifat multidimensi dan terdiri atas titik-titik trajektori serta event, mencakup empat dimensi: waktu, ruang, atribut, dan event.
Tabel berikut menjelaskan setiap komponen dalam Trajectory Object.
| Istilah | Deskripsi |
|---|---|
| Trajectory Point | Snapshot objek bergerak pada momen tertentu. Setiap titik mencatat lokasi spasial objek (dalam koordinat 2D atau 3D) dan sejumlah bidang atribut menggunakan berbagai tipe data. |
| Trajectory Object | Catatan spasial-temporal lengkap dari objek bergerak. Terdiri atas titik-titik trajektori dan event, mencakup waktu, ruang, atribut, dan event. |
| Trajectory Timeline | Urutan timestamp yang tersusun dalam suatu trajektori. Timestamp harus berurutan — tidak boleh ada celah atau nilai yang tidak sesuai urutan. |
| Trajectory Spatial | Geometri spasial suatu trajektori, biasanya direpresentasikan sebagai LineString yang menghubungkan semua titik trajektori secara berurutan. Dalam kebanyakan kasus, inilah tipe data yang digunakan untuk menggambarkan geometri spasial. |
| Trajectory Leaf | Lokasi spasial objek bergerak pada titik waktu tertentu. Lokasi spasial ini merupakan satu Trajectory Point. |
| Trajectory Attributes | Atribut yang berubah seiring waktu dan direkam pada setiap titik trajektori, seperti kecepatan dan arah. |
| Trajectory Attribute Field | Saluran atribut bernama yang merekam satu nilai per titik trajektori. Misalnya, field kecepatan menyimpan pembacaan kecepatan di setiap titik sepanjang rute kendaraan, dan field arah menyimpan sudut arah di setiap titik tersebut. Jumlah nilai dalam suatu field atribut sama dengan jumlah titik trajektori dalam trajektori tersebut. |
| Trajectory Field Value | Nilai dari Trajectory Attribute Field tertentu pada waktu tertentu. Contohnya, pembacaan kecepatan pukul 14:32:05 dalam field kecepatan, atau sudut arah pada waktu yang sama dalam field arah. |
| Trajectory Events | Kejadian diskret sepanjang trajektori yang tidak tertangkap oleh pengambilan sampel atribut reguler. Untuk trajektori kendaraan, contohnya termasuk pengisian bahan bakar, kerusakan, dan event penguncian mobil. Setiap event diidentifikasi oleh ID tipe event dan waktu event. |
Gambar berikut menunjukkan trajektori suatu objek bergerak.

Hubungan antar istilah
Trajectory Object merupakan struktur tingkat atas yang terdiri atas:
Trajectory Timeline — sumbu waktu yang menentukan kapan setiap pengamatan terjadi. Pada gambar di atas, timeline ini sesuai dengan urutan timestamp sepanjang lintasan objek.
Trajectory Spatial — sumbu ruang yang menghubungkan semua posisi spasial sebagai LineString. Pada gambar di atas, ini adalah garis lintasan kontinu.
Trajectory Attributes — satu atau beberapa field atribut (seperti kecepatan dan arah), masing-masing merekam satu nilai per titik pada timeline.
Trajectory Events — kejadian tidak teratur (seperti berhenti untuk mengisi bahan bakar) yang berada di luar interval pengambilan sampel reguler dan direkam dengan ID tipe event serta waktu event.
Setiap posisi pada timeline bersesuaian dengan satu Trajectory Point, yang menggabungkan lokasi (Trajectory Leaf) dengan nilai-nilai atribut pada momen tersebut (Trajectory Field Values).
Objek BoxNDF
Objek trajektori dan geometri dapat memiliki struktur yang kompleks, sehingga membuat kueri tertentu menjadi mahal secara komputasi. Untuk menyederhanakan kueri, Trajectory SQL menyediakan tipe data BoxNDF—sebuah kubus spasial-temporal multidimensi yang mengaproksimasi jangkauan trajektori atau geometri.
Objek BoxNDF didefinisikan oleh nilai minimum dan maksimum pada hingga empat sumbu:
| Sumbu | Dimensi |
|---|---|
| x | Ruang |
| y | Ruang |
| z | Ruang |
| t | Waktu |
Tidak semua empat sumbu wajib digunakan. BoxNDF dapat mencakup kombinasi apa pun: misalnya, kotak (x, y) untuk kueri spasial 2D, kotak (x, y, t) untuk kueri spasial 2D dengan rentang waktu, atau kotak (x, y, z, t) untuk kueri empat dimensi lengkap.
Saat menjalankan kueri, Anda dapat menggunakan kubus BoxNDF untuk menentukan cakupan kueri. Selain itu, Anda juga dapat menggunakan bounding box dari tipe trajektori atau geometri untuk mempermudah kueri.
Gambar berikut menunjukkan trajektori dan bounding box suatu objek yang bergerak pada sumbu x, y, dan t.
