Trajectory SQL adalah ekstensi PolarDB untuk Oracle yang memodelkan dan mengkueri pergerakan objek sepanjang waktu. Halaman ini mendefinisikan tipe data inti dan konsep yang akan Anda temui saat bekerja dengan Trajectory SQL.
Objek Trajektori
Sebuah Objek Lintasan mencatat riwayat pergerakan lengkap suatu objek bergerak—seperti kendaraan, orang, atau entitas apa pun yang lokasinya berubah seiring waktu. Objek ini merupakan struktur berdimensi tinggi yang terdiri atas titik-titik lintasan dan event, mencakup empat dimensi: waktu, ruang, atribut, dan event.
Tabel berikut mendefinisikan setiap komponen Trajectory Object.
| Istilah | Deskripsi |
|---|---|
| Trajectory Point | Snapshot dari objek bergerak pada momen waktu 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 dari 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. Sebagai contoh, field kecepatan menyimpan pembacaan kecepatan pada setiap titik sepanjang rute kendaraan, dan field arah menyimpan sudut arah pada 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 titik waktu tertentu. Misalnya, pembacaan kecepatan pukul 14:32:05 dalam field kecepatan, atau sudut arah pada momen 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 ini
Trajectory Object merupakan struktur tingkat teratas 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 berupa 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 (misalnya, berhenti untuk pengisian bahan bakar) yang terjadi di luar interval pengambilan sampel reguler dan direkam dengan ID tipe event serta waktu event.
Setiap posisi pada timeline berkorespondensi 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 kompleks, sehingga membuat kueri tertentu mahal secara komputasi. Untuk menyederhanakan kueri, Trajectory SQL menyediakan tipe data BoxNDF—sebuah kubus spasial-temporal multidimensi yang mengaproksimasi rentang 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 memanfaatkan bounding box dari tipe trajektori atau geometri guna mempermudah kueri.
Gambar berikut menunjukkan trajektori dan bounding box dari objek yang bergerak pada sumbu x, y, dan t.
