Anda di halaman 1dari 45

Bahasa Query Spasial

Spatial Database
Bahasa Query Spasial
 1. Bahasa Queryy Basisdata Standar
 2. Dasar Utama SQL
 3.
3 Memperluas SQL untuk Data Spasial
 4. Contoh Queries yang menekankan
aspek spasial

Spatial Database
Tujuan
 1. Memahami konsep bahasa query
◦ Apa itu bahasa query?
◦ Mengapa menggunakan bahasa query?
 2. Belajar menggunakan bahasa query standar (SQL)
◦ B
Bagaimana
i membuat
b t dan
d mengisii i tabel?
t b l?
◦ Bagaimana melakukan query pada tabel?
 3. Belajar menggunakan jenis data abstrak (ADT)
dengan SQL
◦ Belajar tentang operasi dan jenis data spasial standar
OGIS
◦ Belajar menggunakan ADT spasial OGIS dengan SQL
 4. Belajar mengenai tren dalam bahasa query
◦ Fasilitas untuk jenis data yg ditentukan user dalam SQL3

Spatial Database
1 Bahasa Query Basisdata Standar
1.
 Apa itu Query ?
◦ Query adalah sebuah “pertanyaan”
pertanyaan yang diajukan pada
basis data
◦ Query dinyatakan dalam aturan deklarasi tingkat tinggi.
 Untuk menjawab query yang tidak dispesifikasikan dalam query,
query
diperlukan Algoritma
 Contoh :
◦ Klik mouse pada simbol peta (mis. jalan) mungkin berarti
 Apa nama jalan yang ditunjukkan oleh kursor mouse?
◦ Pengetikan kata kunci pada mesin pencari (mis. Google,
yyahoo)) berarti
 Dokumen mana saja di web yang meiliki kata kunci tersebut?
◦ SELECT S.name FROM Student S WHERE S.gender = ‘F’
berarti
 Siswa
S manakah
k h yang perempuan??

Spatial Database
Apakah bahasa query itu
itu??
 Apa itu bahasa query?
◦ Sebuah bahasa untuk mengekspresikan pertanyaan menarik
tentang data
◦ Sebuah bahasa membatasi sekumpulan kemungkinan query
 Contoh:
◦ Bahasa alami, mis. Inggeris, dapat mengekpreasikan hampir semua
query
◦ Bahasa permograman Komputer, mis. Java,
 Dapat mengekspresikan query yang bisa dihitung
 Tetapi diperlukan algoritma untuk menjawab query
◦ Structured Query Language(SQL) – Bahasa Query Terstruktur
 Dapat mengekspresikan query data umum
 SQL standar (1 & 2)tidak cocok untuk query yang berulang
◦ Antarmuka grafis ms.. web-search, klik mouse pada peta
 Dapat mengekspresikan query yang sedikit berbeda.
 http://www.google.com Jakarta map

Spatial Database
UAS

Contoh “ World Database


Database”
 Tujuan: menggunakan contoh basisdata untuk mengajar
bahasa query SQL
 Model Konsep
◦ 3 Entitas: Country, City, River
◦ 2 Relasi:
R l i capital-of
i l f (ib
(ibukota
k d i) originates-in
dari), i i i (berasal
(b l dari)
d i)
◦ Atribut dalam masing-masing entitas CONTINENT
NAME
LIFE-EXP

POPULATION POPULATION

CAPITAL
NAME

CAPITAL-OF ORIGINATES
CITY COUNTRY RIVER

GDP LENGTH
NAME

Spatial Database
UAS

Contoh Database – Model Logis


 3 Entitas
◦ Country(Name, Cont, Pop, GDP, Life-Exp, Shape)
◦ City(Name, Country, Pop, Capital, Shape)
◦ River(Name, Origin, Length, Shape)
 Keys
◦ Primary keys adalah Country.Name, City.Name,
River.Name
◦ Foreign keys adalah River.Origin,
River Origin City.Country
City Country
 Data untuk ketiga tabel
◦ Diperlihatkan pada slide berikut

Spatial Database
Tabel Data Basis Data Dunia
(“World database)

Spatial Database
Apa itu SQL?
SQL?
 SQL – Informasi Umum
◦ Adalah sebuah bahasa query standar untuk basis
data relasional
◦ Mendukung konsep model data logis, seperti
relasi, kunci, ...
◦ Didukung oleh merk-merk utama seperti IBM
DB2, Oracle, MS SQL Server, Sybase, ...
◦ Ada tiga versi: SQL1 (1986), SQL2 (1992), SQL
3 (1999)
◦ Bisa mengekspresikan query untuk data umum
Spatial Database
Apa itu SQL?
SQL?
 SQL
Q dan p
pengelolaan
g data spasial
p
◦ ESRI Arc/Info memasukkan sebuah DBMS
relasional yang disesuaikan  bernama Info
◦ Software GIS lain dapat berinteraksi dengan
DBMS menggunakan SQL
 Menggunakan protokol open database connectivity
(ODBC) atau yang lainnya.
◦ Kenyataannya, banyak software memakai SQL
untuk mengelola data pada back-end DBMS
◦ Dan mayoritas query SQL dibuat oleh software
lain

Spatial Database
UAS

Tiga Komponen SQL?


 1) Data Definition Language (DDL)
◦ Adalah bahasa komputer untuk menentukan struktur data
◦ Menggambarkan records, fields, dan “himpunan" membuat model
data pemakai
◦ Pembuatan dan modifikasi skema relasional
◦ Skema objek termasuk relasi, indeks, dll.
◦ Pernyataan:
 DROP – Untuk menghapus basisdata, tabel, indeks, atau view yang sudah
ada
d
 ALTER – Untuk memodifikasi objek basisdata yang sudah ada
◦ Contoh:
 Untuk menghapus
g p tabel bernama pproduk  DROP TABLE p produk;
 Untuk menambah kolom bernama merk pada table bernama desktop
 ALTER TABLE desktop ADD merk INTEGER;
 Untuk menghapus kolom bernama unit dalam tabel bernama sales
 ALTER TABLE sales DROP COLUMN unit;

Spatial Database
UAS

Tiga Komponen SQL?


 2) Data Manipulation Language (DML)
◦ Digunakan untuk mengambil dan
memanipulasi data dalam basis data relasional
◦ Menyisipkan,
M i i k menghapus,h mengubah
b h data
d pada d
baris dalam tabel
◦ Query data dalam tabel
◦ Contoh:
 SELECT ... INTO
 INSERT
 UPDATE
 DELETE

Spatial Database
UAS

Tiga Komponen SQL?


 3) Data Control Language (DCL)
◦ Digunakan untuk mengontrol akses pada data
dalam basis data
◦ Contoh:
 GRANT untuk mengizinkan user tertentu melakukan
tugas tertentu.
 REVOKE untukk membatalkan
b lk izin yang diberikan
d b k atau
ditolak sebelumnya.
◦ Mengontrol
g transaksi
◦ Tugas administratif mis. Mengatur izin keamanan,
mengatur user basis data.
 S
Scope  DDL dan
d DML
Spatial Database
Bahasa Query Spasial
 1. Bahasa Queryy Basisdata Standar
 2. Dasar Utama SQL
 3.
3 Memperluas SQL untuk Data Spasial
 4. Contoh Queries yang menekankan
aspek spasial

Spatial Database
UAS

2. Dasar Utama SQL Membuat Tabel dengan


SQL
 Definisi tabel
◦ Pernyataan “CREATE
CREATE TABLE
TABLE”
◦ Menentukan nama tabel, nama atribut, dan jenis data

 Pernyataan yang terkait


◦ Pernyataan ALTER TABLE memodifikasi skema tabel jika
diperlukan
◦ Pernyataan
y DROP TABLE menghapus
g p tabel kosongg

CREATE TABLE River(


Name ( ),
varchar(30),
Origin varchar(30),
Length number,
Shape LineString );

Spatial Database
UAS

Mengisi Table dengan SQL


 Menambahkan baris pada tabel yang ada
◦ Pernyataan “INSERT
INSERT INTO
INTO”
◦ Menentukan nama tabel, nama atribut, dan values (nilai)
◦ Contoh:
 INSERT INTO Ri
River(Name,
(N O
Origin,
i i LLength)
th) VALUES(‘Nile’,
VALUES(‘Nil ’ ‘E
‘Egypt’,
t’
6000)
 Pernyataan terkait
◦ Pernyataan SELECT dengan INTO dapat menyisipkan
banyak baris dalam sebuah tabel
◦ Bulk load, perintah import juga menambah banyak baris
◦ Pernyataan DELETE menghapus baris
◦ Pernyataan UPDATE dapat mengubah pada baris yang
terpilih

Spatial Database
UAS

Menquery Tables dengan SQL


 Pernyataan SELECT
◦ Pernyataan yang digunakan umum untuk query data dalam
satu atau lebih tabel
◦ Menghasilkan relasi (tabel)
◦ Memiliki banyak padanan (clauses)
◦ Dapat merujuk pada banyak operator dan fungsi
◦ Memungkinkan query berkurung yang susah dimengerti
 S
Scope
◦ Mempelajari SQL untuk memahami kaitan spasialnya
 Memahami contoh query
◦ Membaca
M b d menulis
dan l pernyataan SELECT sederhana
d h
 Memahami padanan yang sering digunakan, mis. SELECT, FROM,
WHERE
 Memahami sejumlah operator dan fungsi

Spatial Database
Pernyataan SELECT – Informasi Umum
 Clauses
◦ SELECT menentukan kolom yang diinginkan
◦ FROM menentukan tabel yang terkait
◦ WHERE menentukan kondisi yang memenuhi syarat untuk baris
◦ ORDER BY menentukan kolom yang diurutkan pada hasil
◦ GROUP BY, HAVING menentukan agregasi dan statistik
 Operator dan fungsi
◦ Operator aritmetik,
aritmetik mis.
mis +,
+ -,
- …
◦ Operator perbandingan, mis. =, <, >, BETWEEN, LIKE…
◦ Operator logika, mis. AND, OR, NOT, EXISTS,
◦ Operator set, mis.
mis UNION, IN, ALL, ANY, …
◦ Fungsi statistik, mis. SUM, COUNT, ...
◦ Operator lainnya pada strings, tanggal, mata uang, ...

Spatial Database
SELECT Contoh1.
Contoh1
 Query paling sederhana memiliki SELECT dan clauses FROM
 Query: Buat daftar kota dan negara tempat kota tersebut
berada
◦ SELECT Name, Country FROM CITY
Name Country
Havana Cuba
Washington, D.C. USA
Hasilnya  Monterney Mexico
Toronto Canada
Brasilia Brazil
Rosario Argentina
Ottawa Canada
M i Cit
Mexico City M i
Mexico
Buenos Aires Argentina

Spatial Database
SELECT Contoh 2.
2
 Umumnya 3 clauses (SELECT, FROM, WHERE) digunakan
 Query: Buat daftar nama ibukota dalam tabel CITY
◦ SELECT * FROM CITY WHERE CAPITAL=‘Y ’
Name Country Pops(mill) Capital Shape

Havana Cuba 2.1 Y Point


Washington, D.C. USA 3.2 Y Point

Brasilia Brazil 1.5 Y Point

Hasilnya  Ottawa Canada 0.8 Y Point

Mexico City Mexico 14.1 Y Point

Buenos Aires Argentina 10.75 Y Point

Spatial Database
Tabel Data Basis Data Dunia
(“World database)

Spatial Database
Contoh Query…Where
Query Where clause
 Query: Buat daftar atribut pada negara pada relasi
country dimana life-expectancy
life expectancy (angka harapan hidup)
kurang dari 70 tahun.
◦ SELECT Co.Name, Co.Life-Exp FROM Country Co
WHERE Co.Life-Exp
Co Life Exp <70
◦ Catatan: penggunaan alias ‘Co’ untuk Tabel ‘Country’

Name Life-exp
Hasilnya  Mexico 69.36
Brazil 65.60

Spatial Database
Contoh Query Multi
Multi--table
 Query: Buat daftar ibukota dan populasi negara yang
angka GDPnya melebihi satu trilyun dollar.
dollar
◦ Catatan : Tabel City dan Country digabung dengan
mencocokkan “City.Country = Country.Name”. Ini
mensimulasikan operator
p relational “join”
j
SELECT Ci.Name,Co.Pop
FROM City Ci,Country Co
WHERE Ci.Country =Co.Name
AND Co.GDP >1000.0
AND Ci.Capital
Ci.Capital=‘Y
Y’

Ci.Name Co.Pop
Hasilnya
y  Brasilia 183.3
Washington, D.C. 270.0

Spatial Database
Contoh Query Multi
Multi--table
 Query: Apakah nama dan populasi ibukota
negara dimana sungai St. Lawrence berasal?

SELECT Ci.Name,
Ci N Ci
Ci.Pop
P
FROM City Ci, Country Co, River R
WHERE R.Origin =Co.Name
AND Co.
Co.Name
a e =Ci.Country
C .Cou t y
AND R.Name =‘St.Lawrence ’
AND Ci.Capital=‘Y ’

Catatan : Tiga tabel digabung bersama per pasangan. River.Origin cocok


dengan Country.Name dan City.Country cocok dengan Country.Name.
Urutan ppenggabungan
gg g diputuskan
p oleh q
queryy optimizer
p dan tidak
mempengaruhi hasilnya.

Spatial Database
Tabel Data Basis Data Dunia
(“World database)

Spatial Database
Contoh Query …
…Agregat
Agregat Statistik

Query: Berapakah rata


rata-rata
rata populasi kota bukan ibukota yang berada
dalam tabel City?

SELECT AVG(Ci.Pop)
AVG(Ci Pop)
FROM City Ci
WHERE Ci.Capital=‘N ’

Query: Untuk tipe benua, hitunglah rata-rata GDP.

SELECT Co.Cont, Avg(Co.GDP)AS Continent-GDP


FROM Country Co
GROUP BY Co.Cont

Spatial Database
Contoh Query..Having
Query..Having clause, Nested queries

Q
Query:y Untuk tiap p negara
g yyangg minimal berasal dua sungai,
g , temukan
panjang dari sungai terkecil.

SELECT R.Origin, MIN(R.length) AS Min-length


FROM River
Ri
GROUP BY R.Origin
HAVING COUNT(*) > 1

Query: Buat daftar negara yang GDP nya lebih besar dari Canada.

SELECT Co.Name
Co Name
FROM Country Co
WHERE Co.GDP >ANY(SELECT Co1.GDP
FROM Country Co1
WHERE Co1.Name =‘Canada ’)

Spatial Database
Bahasa Query Spasial
11. B
Bahasa
h Q
Query B
Basisdata
i d t St
Standar
d
2. Dasar Utama SQL
3. Memperluas SQL untuk Data Spasial
4. Contoh Queries yang menekankan
aspek spasial

Spatial Database
3. Memperluas SQL untuk Data Spasial
 Alasan
◦ SQL memiliki jenis data atomik yang sederhana,
sederhana seperti
integer, tanggal dan string
◦ Tidak cocok untuk data spasial dan query
 Data spasial (mis. poligon) rumit
 Operasi
O i spasial
i l : topologi,
l i directional,
di i l metric
i
 SQL 3 memungkinkan user menentukan jenis data
dan operasi
◦ Jenis data spasial dan operasi dapat ditambahkan pada
SQL3
 Open Geodata Interchange Standard (OGIS)
◦ Setengah
g lusin jjenis data spasial
p menggunakan
gg konsepp ini.
◦ Mendukung beberapa operasi spasial
◦ Didukung oleh “pemain” utama sperti ESRI, Intergraph,
Oracle, IBM,...

Spatial Database
Model Data Spasial OGIS
 Terdiri atas kelas dasar Geometri dan empat
sub-kelas:
bk l
◦ Point, Curve, Surface dan Geometry Collection
◦ Gambar berikut menunjukkanj jjenis data spasial
p
dalam OGIS
 Operasi memiliki tiga kategori:
◦ Berlaku
B l k untuk
t k semua jenis
j i geometri
ti
 Spatial Reference, Envelope, Export, IsSimple, Boundary
◦ Sebutan untuk relasi Topologi
 Equal, Disjoint, Intersect,Touch, Cross,Within, Contains
◦ Analisa Data Spasial
 Distance, Buffer, Union, Intersection, ConvexHull, SymDiff

Spatial Database
Model Data Spasial OGIS

Spatial Database
Spatial Database
Query Spasial dengan SQL/OGIS
 SQL/OGIS – Informasi Umum
◦ Kedua standar diadopsi oleh banyak vendor
◦ Pilihan jenis data spasial dan operasi adalah mirip.
◦ S
Syntax b b d dari
berbeda d i vendor
d kek vendor
d
◦ Pembaca mungkin perlu mengubah query
SQL/OGIS
SQ /OG S dalam
a a ttekss u
untuk
tu b
bisa
sa dijalankan
ja a a papadaa
produk komersial tertentu
 Penggunaan OGIS dengan SQL
◦ Jenis data spasial dapat digunakan dalam DML
untuk jenis kolom
◦ Operasi spasial dapat digunakan dalam DML

Spatial Database
Bahasa Query Spasial
1. Bahasa Query Basisdata Standar
2. Dasar Utama SQL
3. Memperluas SQL untuk Data Spasial
4. Contoh Queries yang menekankan
aspek spasial

Spatial Database
4 Contoh
4. C hQQuery yg Menekankan
M k k A Aspekk Spasial
S l

• Contoh SQL SELECT_FROM_WHERE sederhana


•Opareasi analisa spasial
•Operator unary : Area
•Operator
O t binary
bi : Di
Distance
t
Contoh: Binary
Q: Kota mana saja yang ada pada tabel city paling dekat pada
sungai yang berada pada tabel River?

SELECT C1.Name, R1.name


FROM City C1,
C1 River R1
WHERE Distance (C1.Shape, R1.Shape <
ALL (SELECT Distance(C2.Shape, R1.Shape)
FROM City y C2
WHERE C1.name <> C2.name
)
Spatial Database
Tabel Data Basis Data Dunia
(“World database)

Spatial Database
Contoh Daftar Query Spasial
• Contoh SQL SELECT_FROM_WHERE sederhana
•Operasi spasial Boolean Topologi -
WHERE clause
•Touch
•Cross
Cross

Contoh : Touch
Q : Temukan nama semua negara yang bertetangga dengan USA pada tabel
Country.
Country
SELECT C1.name AS “Neighbor of USA”
FROM Country C1, Country C2
WHERE Touch (C1.Shape, C2.Shape) = 1 AND
C2 name = “USA”
C2.name USA
Contoh: Cross
Q : Untuk semua sungai yang ada pada tabel river, temukan negara-negara yang
dilaluinya.
SELECT R R.name,
name CC.name
name
FROM River R, Country C
WHERE Cross (R.Shape, C.Shape) = 1
Spatial Database
Contoh
C hDDaftar
f Query
Q Spasial
S i l
• Contoh SQL SELECT_FROM_WHERE sederhana
•Penggunaan analisa spasial dan operasi topologi
•Buffer, overlap ()

Contoh: Buffer
Q: Sungai St. Lawrence dapat menyediakan air ke kota yang jaraknya kurang 300
km. Buat daftar kota
kota-kota
kota yang bisa menggunakan air dari sungai St. Lawrence
SELECT Ci.name
FROM City Ci, River R
WHERE Overlap(Ci.Shape, Buffer(R.Shape, 300)) = 1 AND
R.name = “St.
St. Lawrence
Lawrence”

• Contoh SQL yang rumit


• Aggregate SQL queries
• Nested queries

Spatial Database
UAS

Menggunakan Operasi Spasial dalam


SELECT clause
l
Query: Buatlah daftar nama, populasi, dan luas tiap negara yang
tercantum dalam tabel Country.

SELECT C.Name,
CN C P Area(C.Shape)AS
C.Pop, A (C Sh )AS "A
"Area""
FROM Country C

Catatan:
Query ini menggunakan operasi spasial, Area().

Spatial Database
UAS

Menggunakan operator spasial


D
Distance
Query: Buatlah daftar GDP dan jarak ibukota negara ke garis khatulistiwa untuk
semua negara.

SELECT Co.GDP, Distance(Point(0,Ci.Shape.y), Ci.Shape) AS "Distance"


FROM Countryy Co,, Cityy Ci
WHERE Co.Name = Ci.Country
AND Ci.Capital =‘Y ’ Co.Name Co.GDP Dist-to-Eq
(km)
Havana 16.9 2562
Hasilnya  Washington, D.C. 8003 4324
Brasilia 1004 1756
Ottawa 658 5005
Mexico City 694.3 2161
Buenos Aires 348.2 3854

Spatial Database
Menggunakan operator spasial WHERE
clause
l
Query: Temukan
Q T k nama semua negara yang bertetangga
b d
dengan USA dalam
d l
tabel country.

SELECT C1.Name AS "Neighbors of USA"


FROM Country C1,Country C2
WHERE Touch(C1.Shape,C2.Shape)=1
( p , p )
AND C2.Name =‘USA ’

Catatan: Operator spasial Touch() dipakai dalam clause WHERE untuk


menggabungkan tabel Country dengan dirinya sendiri. Query ini
merupakan contoh operasi spatial self join.

Spatial Database
Query Spasial dengan multiple tables
Query: Untuk semua sungai yang ada pada tabel River,
River temukan
negara-negara yang dilaluinya.

SELECT R.Name, C.Name


FROM River R, Country C
WHERE Cross(R.Shape,
( p , C.Shape)=1
p )

Catatan: Operasi spasial “Cross” dipakai untuk menggabungkan


y Query
tabel River dan Country. y ini mewakili operasi
p spatial
p jjoin.

Latihan : Ubahlah query di atas untuk mendapatkan panjang


sungia di tiap negara.

Spatial Database
Contoh Query Spasial…Buffer
Spasial…Buffer dan Overlap

Query: Sungai
Q S i St.
S LLawrence dapat
d menyediakan
di k air i ke
k kota
k b j k 300
berjarak
km. Buat daftar kota yang bis amenggunakan air dari St. Lawrence.

SELECT Ci.Name
Ci N
FROM City Ci, River R
WHERE Overlap(Ci.Shape, Buffer(R.Shape,300))=1
AND R.Name
R Name ==‘St
St.Lawrence
Lawrence ’

Catatan : Query ini menggunakan operasi Buffer.

Spatial Database
Ingat Contoh Daftar Query Spasial
• Contoh SQL SELECT_FROM_WHERE
SELECT FROM WHERE sederhana
•Operasi analisa spasial
• Operator unary : Area
• Operator
p binaryy : Distance
•Operasi spasial topologi Boolean - WHERE clause
•Touch
•Cross
•Penggunaan operasi analisa spasial dan topologi
•Buffer, overlap

Spatial Database
Ringkasan
 Query pada basis data dinyatakan dengan aturan deklaratif tingkat tinggi.
 SQL merupakan “lingua-franca” dalam basis data dunia yang komersial.
 SQL standar beroperasi pada jenis data sederhana.
 SQL3/OGIS supports several spatial data types and operations
 Operasi dan jenis data spasial tambahan dapat didefinisikan

Spatial Database

Anda mungkin juga menyukai