September 2009 - Posts
Habis baca milis, ada yang nanya mengenai menghitung selisih waktu pembicaraan telepon, Jadi ‘gatel’ juga neh mau bikin UDF nya.
untuk menghitung selisih jam dapat menggunakan UDF yang saya buat dibawah ini. Namun tidak bisa menghitung lebih dari 24 jam, karena hanya menghitung sampe jam saja dengan format ‘hh”mm:ss’
Berikut UDF nya :
create function dbo.selisih_tanggal(@tgl1 datetime, @tgl2 datetime)
returns char(8)
as
begin
declare @selisih int, @jam int, @menit int, @detik int, @name_p char(8)
declare @Cjam char(2), @Cmenit char(2), @Cdetik char(2)
set @selisih = (select datediff(second,@tgl1,@tgl2))
if @selisih<86400
begin
set @jam= (select (@selisih/3600))
set @menit= (select (@selisih%3600)/60)
set @detik = (select ((@selisih%3600)%60))
begin
if @jam>9
set @Cjam = (select Cast(@jam as char(2)))
else
set @Cjam = '0'+(select Cast(@jam as char(1)))
end
begin
if @menit>9
set @Cmenit = (select Cast(@menit as char(2)))
else
set @Cmenit = '0'+(select Cast(@menit as char(1)))
end
begin
if @detik>9
set @Cdetik = (select Cast(@detik as char(2)))
else
set @Cdetik = '0'+(select Cast(@detik as char(1)))
end
set @name_p=@Cjam+':'+@Cmenit+':'+@Cdetik
end
else
begin
set @name_p='uncount!'
end
return @name_p
end
untuk memanggilnya dapat menggunakan T-SQL seperti contoh dibawah ini :
select dbo.selisih_tanggal('2009-01-21 01:15:00', '2009-01-21 13:30:30')
Selamat mencoba n Have Fun !!
Melakukan pekerjaan Backup untuk sebuah database adalah sebuah keharusan, tidak peduli database yang dikelola itu besar atau kecil. Hal ini dilakukan sebagai tindakan preventif apabila terjadi kerusakan atau kehilangan data. Apa jadinya ketika database kita mengalami kerusakan dan kita tidak memiliki Backup ? tentunya hal ini akan menjadi sebuah bencana besar.
Pada hakikatnya Backup itu adalah sebuah copy dari database production yang kita simpan di sebuah tempat/device yang sewaktu-waktu dapat kita panggil untuk direstore pada saat dibutuhkan. (ini menurut pendapat gue seh… )
Di Sql Server 2008, banyak fitur yang dapat digunakan untuk meminimalkan kehilangan data. Seperti Mirroring, Backup, Log Shipping yang kesemuanya dapat di ‘ramu’ menjadi sebuah skenario penyelamatan database.
Beberapa catatan kecil namun penting yang saya buat saat melakukan backup adalah :
- Hal yang penting dalam backup adalah adanya testing restore dari Backup yang dibuat. Pastikan bahwa Backup yang kita miliki dapat di restore, percuma kan kalo backupnya gak bisa direstore.
- Bila backup disimpan ke Disk, jangan pernah menyatukan Backup dengan Database data dan log dalam Disk yang sama. Sehingga bila disk yang digunakan untuk menyimpan database data dan log tidak bisa diakses, maka backup anda masih bisa terselamatkan.
- Bila menggunakan Differential Backup, perhatikan ukuran file yang terbentuk. Bila sama atau lebih dari ukuran file Full Backup, maka perkecil lagi jarak waktu antara Full Backup dan Differential Backup.
- Untuk Meminimalkan kehilangan data pada saat database production failure, selalu gunakan transaction log backup pada apapun strategi backup yang anda gunakan.
Geography Markup Language (GML) Merupakan sebuah XML yang difungsikan khusus untuk mempresentasikan sebuah informasi spatial. Seperti halnya sebuah bahasa XML, GML memiliki struktur dalam bahasa XML dalam mempresentasikan informasi spatial dimana setiap spesifik properti geografis memiliki spesifik tag XML.
Membuat Point dari GML
Sama dengan yang digunakan oleh format WKT dimana point mengacu pada koordinat Langitude dan Latitude. Contoh penulisan GML untuk menggambar sebuah point adalah sebagai berikut :
<point xmlns="http://www.opengis.net/gml">
<pos>15.30 -4.55</pos>
</point>
Untuk menggunakan GML bila hendak mempresentasikan Point dalam type data Geometry atau Geography di SQL Server 2008 dapat dilakukan dengan cara sebagai berikut:
Declare @gml xml;
set @gml = '
<Point xmlns="http://www.opengis.net/gml">
<pos>15.30 -4.55</pos>
</point>
';
Declare @Point Geometry;
set @Point = geometry::GeomFromGml(@gml, 4326)
Membuat LineString dari GML
Bila hendak membentuk LineString atau bentuk apapun yang terjadi oleh lebih dari satu point, maka contoh syntax GMLnya adalah sebagai berikut:
Misalkan kita akan menarik garis dari 2 buah titik yang mempunyai koordinat (3,5) dan (4,8). Maka syntax GML nya adalah
<LineString xmlns=”http://www.opengis.net/gml”>
<postList>3 5 4 8</post>
</LineString>
Membuat Polygon dari GML
Berikut ini adalah syntax membuat polygon dari GML
<Polygon xmlns=”http://www.opengis.net/gml”>
<exterior>
<LinearRing>
<postList>2 2 4 5 5 6 6 7 1 9 2 2<postList>
</LinearRing>
</exterior>
</Polygon>
Bagi temen-temen yang masih berkutat dengan tools-tools developer lawas seperti Visual Foxpro, Visual Basic 6.0 , ASP Classic atau tools developer non Microsoft seperti delphi, php programming biasanya membutuhkan syntax ConnectionString untuk dapat menggunakan database SQL Server.
Kebetulan dikantor saya masih menggunakan Visual Foxpro dan databasenya SQL Server 2008. Sehingga agar si Aplikasi dapat memanfaatkan fitur-fitur SQL Server 2008, maka connectionstring yang biasa kami gunakan kami ganti menggunakan SQL Server Native Client 10.0 .
Hal-hal baru yang terdapat di SQL Server Native Client 10.0 adalah :
- Table-Valued Parameters (SQL Server Native Client)
- Perbaikan pada Large CLR User-Defined Types
- FILESTREAM Support
- Service Principal Name (SPN) Support in Client Connections
- Sparse Columns Support in SQL Server Native Client
- Date/Time Improvements
SQL Server Native Client 10.0 dapat diperoleh dengan cara menginstal file sqlncli.msi yang ada didalam CD SQL Server 2008 anda. Install file tersebut dikomputer client anda, sehingga nantinya koleksi ODBC Driver anda akan bertambah.
ODBC SQL Server Native Client 10.0 akan berdiri berdampingan/side by side dengan ODBC SQL Server. ODBC SQL Server Native Client 10.0 support SQL Server 7.0 keatas.
Berikut ini adalah Connectionstring Standard Security dari ODBC SQL Server Native Client 10.0 :
Driver={SQL Server Native Client 10.0};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
Berikut ini adalah Connectionstring Trusted Connection dari ODBC SQL Server Native Client 10.0 :
Driver={SQL Server Native Client 10.0};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;
Well-Known Text adalah salah satu Standard format yang diakui oleh Open Geospatial Consortium (OGC) dalam hal pertukaran informasi spatial.
Berikut ini adalah Metode-metode untuk mempresentasikan Spatial objek dengan format WKT :
| Type Objek | Metode |
| Point | STPointFromText() |
| LineString | STLineFromText() |
| Polygon | STPolyFromText() |
| MultiPoint | STMPointFromText() |
| MultiLineString | STMLineFromText() |
| MultiPolygon | STMPolyFromText() |
| Geometry Collection | STGeomCollFromText() |
Apapun type objek yang akan dibuat, semua menggunakan format syntax yang sama yaitu :
datatype::method(geometrypresentation, srid)
| A. | Membuat Point dengan Format WKT |
| | WKT mempresentasikan point dari sistem koordinat Cartesian, yang dapat dilihat fungsinya seperti berikut : |
| | Point( X , Y ) |
| | Sedangkan untuk mempresentasikannya di koordinat geographic dapat dibuat seperti ini |
| | Point( Longitude Latitude ) |
| | Di SQL Server 2008 hal ini dapat dijalankan seperti ini : |
| | Declare @Bogor Geography
set @Bogor = geography::STPointFromText('POINT(6.59 106.79)',4326)
|
| B. |
Membuat LineString dengan Format WKT |
| |
LineString ini biasanya digunakan untuk menghubungkan antara 1 buah point dengan point yang lain. Misalkan saya akan menarik garis dari 2 buah titik yang mempresentasikan panjang jembatan Suramadu : |
| |
Declare @PanjangSuramadu geography
Set @PanjangSuramadu = geography::STLineFromText('LINESTRING(
-7.1109 112.6213,
-7.1106 112.7042
)',
4326)
|
| C. |
Membuat Polygon dengan Format WKT |
| |
Polygon sebenarnya hampir sama dengan LineString, namun Polygon bisa dibentuk oleh lebih dari 3 titik, dimana titik pertama dan titik terakhir memiliki koordinat yang sama. Berikut ini adalah contoh gambar polygon yang mempresentasikan Gedung Departemen Pertahanan Amerika Pentagon : |
| |
DECLARE @Pentagon geography
SET @Pentagon = geography::STPolyFromText(
'POLYGON(
(
-77.0532238483429 38.870863029297695,
-77.05478297004701 38.87304314667469,
-77.05788016319276 38.872800914712734,
-77.05849170684814 38.870219840133124,
-77.05556273460388 38.8690670969385,
-77.0532238483429 38.870863029297695
),
(-77.05582022666931 38.8702866652523,
-77.0569360256195 38.870737733163644,
-77.05673217773439 38.87170668418343,
-77.0554769039154 38.871848684516294,
-77.05491900444031 38.87097997215688,
-77.05582022666931 38.8702866652523
)
)',
4326
)
|
| |
|
Seperti yang pernah saya bahas sebelumnya bahwa SQL Server 2008 menyediakan 2 buah jenis type data spatial yaitu Geometry dan Geography.
Lalu bagaimana penentuan penggunaan jenis type data yang tepat dan dalam situasi apa. Mudah-mudahan beberapa point dibawah ini dapat memberikan petunjuk mengenai penentuan jenis type data spatial yang tepat untuk digunakan.
- Bila anda mendapatkan sumber data spatialnya bersumber dari GPS, Google Earth atau Virtual Earth yang telah memiliki informasi latitude dan longitude maka akan lebih tepat bila anda menggunakan type data spatial Geography.
- Bila anda mendapatkan sumber data spatial dari sebuah peta yang berbentuk datar dimana koordinat X dan Y nya telah disesuaikan sebagai bentuk arah angin timur dan utara dan telah diproyeksi sebelumnya dari geography coordinate menjadi sebuah peta datar, gunakan type data spatial Geometry
- Bila anda hendak membuat sebuah data spatial yang dibuat hanya berdasar pada koordinat X dan Y namun tidak merujuk pada peta bumi. gunakan type data spatial Geometry.
Menentukan type data spatial yang benar merupakan langkah yang paling awal harus diambil dalam pembuatan database spatial.
adalah hal yang tidak mungkin untuk mengkombinasikan type data spatial geometry dan geography dalam sebuah query yang sama. bila pun hal itu tetap dilakukan, SQL Server akan menghasilkan data NULL.
Perhatikan juga mengenai keakuratan data yang diinginkan. Bila anda bekerja dengan data Geometry yang berasal dari proyeksi peta Geography, maka semakin luas area yang kita kerjakan, maka semakin nilai akurasinya makin kecil.
Microsoft SQL Server 2008 memiliki 2 buah type data baru yang dibuat khusus untuk menyimpan spatial data. Tipe data tersebut adalah Geography dan Geometry.
Tipe data Geography digunakan untuk menyimpan spatial data jenis Vektor Geodetic sedangkan Geometry digunakan untuk menyimpan spatial data jenis Vektor Planar.
Untuk mengetahui Geodetic spatial reference systems yang disupport oleh SQL Server 2008 dapat dilakukan dengan melihat data yang tersimpan di tabel sys.spatial_reference_systems. Lakukan dengan T-SQL seperti ini :
select * from sys.spatial_reference_systems
Disana tersimpan juga informasi detail dari spatial reference menggunakan format Well-Known Text (WKT). WKT adalah standar industri untuk engekspresikan informasi spatial yang telah diakui oleh OGC (Open Geospatial Consortium).
Misalkan kita hendak melihat Geodetic spatial reference system yang biasa digunakan di sistem GPS, yaitu WGS 84. pada sys.spatial_reference_systems dapat kita temukan pada EPSG:4326 spatial reference. untuk dapat menemukannya, kita dapat melakukan query seperti ini :
select well_known_text from sys.spatial_reference_systems
where authority_name='EPSG'
and authorized_spatial_reference_id=4326
maka akan didapatkan data sebagai berikut :
GEOGCS[
"WGS 84",
DATUM["World Geodetic System 1984",
ELLIPSOID[
"WGS 84",
6378137,
298.257223563]],
PRIMEM[
"Greenwich", 0],
UNIT["Degree", 0.0174532925199433]]
dari data diatas dapat kita kenali bahwa Geographic Coordinate System yang digunakan adalah “WGS 84”. Geographic Coordinate System menunjukkan posisi dari object menggunakan angular coordinates yang biasa kita kenal juga dengan sebutan latitude dan longitude.
Tipe data Geometry memperlakukan data spatial sebagai sebuah flat object, sehingga apabila kita melakukan perhitungan jarak antara 2 buah titik, dapat dilakukan dengan perhitungan geometrik biasa.
Setiap objek yang ada akan dikenali posisinya menggunakan sistem koordinat Cartesian (X,Y).
Pada tannggal 27 Juni 2009 saya diminta oleh mahasiswa Ilmu Komputer Universitas Lambung Mangkurat Banjarmasin untuk memberikan sedikit sharing knowledge mengenai dasar-dasar Transact SQL.
Untuk itu saya coba mengenalkan mereka pada SQL Server 2008 Express with Advanced Services. Acara dimulai dengan materi menginstall SQL Server 2008 Express with Advanced Services pada OS XP dan Vista, yang ternyata pada saat penginstallan membutuhkan .Net Framework dan Powershell.
Setelah penginstallan materi dilanjutkan dengan melakukan attach Database Northwind yang akan dijadikan sebagai objek latihan.
Kemudian barulah dimulai materi inti yaitu mulai dari bagaimana membangun sebuah database dan teknik-teknik Query dasar. Acara cukup mengasikkan, apalagi peserta sangat kritis sehingga acara menjadi lebih hidup oleh banyak diskusi dan beberapa simulasi kasus yang diterapkan .
Acara berlangsung dari jam 10.00 Wita sampai dengan 13.30 Wita. Peserta yang hadir ada 19 peserta.
Berikut adalah dokumentasinya :


Kebetulan lagi jalan-jalan di Microsoft SQL Server 2008 Learning Portal, eh ketemu penawaran buku elektronik gratis Introducing Microsoft SQL Server 2008
Monggo di download disini ya Free Microsoft Press E-Book - Introducing SQL Server 2008
Semoga bermanfaat.
Berikut ini saya telah membuat sebuah video demo bagaimana sqlserver 2000 mengimport data text yang memiliki footer, semoga bermafaat
Video dapat dilihat di Youtube dengan link sbb : http://www.youtube.com/watch?v=960TFWwtmxc
Saya telah membuat tutorial praktis untuk teman-teman yang masih menggunakan Database Ms. SQL Server 2000 dan Microsoft Visual Foxpro.
tutorial tersebut dapat didownload disini Download Tutorial MS. Visual Foxpro dan Sql Server 2000
More Posts