Syntax SQL

11 December 2012 22:37:36 Dibaca : 324

Syntax SQL

Pengertian Sytax adalah adalah aturan yang tanda digabungkan untuk membuat pernyataan. Jika Anda menganggap kata-kata dari bahasa menjadi tanda-tanda, maka sintaks adalah aturan yang menempatkan tanda-tanda sama untuk membuat pernyataan, mengajukan pertanyaan, dan menghasilkan ucapan-ucapan lainnya.

Sintaks menggabungkan tata bahasa frase, klausa, dan kalimat. Memproduksi dan mengucapkan kalimat merupakan bagian penting dari bagaimana kita memahami dunia kita. Kami mengartikulasikan arti dari pengalaman kami dengan kata-kata, dalam proses mengartikulasikan, kita membuat (atau discover) makna dari pengalaman. Proses ini mirip dengan cara di mana kita intrepret sastra.

Sintaks struktur yang tepat dari apa yang kita tulis adalah bagian penting dari maknanya. Mengubah struktur dan Anda telah berubah makna, paling tidak sedikit.

Contoh Syntax SQL

CREATE TABLE Pelajar ( No_Induk CHAR(8), Nama CHAR(20), Tgl_Lahir DATE, Kelas CHAR(2) ); CREATE TABLE Mata_Pelajaran( Kode CHAR(4), Nama CHAR(20), Kelas CHAR(2) ); CREATE TABLE Nilai( No_Induk CHAR(8), Kode CHAR(4), Nl_Angka Number);

1.      Inner Join

Inner join adalah jenis join yang paling umum yang dapat digunakan pada semua database. Jenis

ini dapat digunakan bila ingin merelasikan dua set data yang ada di tabel, letak relasinya setelah pada

perintah ON pada join.

Syntax dasar :

SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2 column-name

contoh :

SELECT registrasi.nama,registrasi.email,order.no_order FROM registrasi INNER JOIN order ON registrasi.id=order.id ORDER BY registrasi.nama

Bentuk baku perintah inner join :

SELECT ,, FROM INNER JOIN

ON <key.tabel1> = <key.tabel2>

Contoh :

– Tampilkan nip, nama dan gaji semua pegawai.

select i.nip,i.nama,p.gaji from infoprib i inner join pekerjaan

p on i.nip = p.nip;

 

2.      Left join

Left join adalah relasi antar tabel, namun query yang ditampilkan adalah mengacu pada tabel yang sebelah kiri / tabel utama.

Syntax dasar : SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2. column_name

contoh :

SELECT registrasi.nama,registrasi.email,order.no_order FROM registrasi LEFT JOIN order ON registrasi.id=order.id ORDER BY registrasi.nama

3.      Right Join

Right join adalah jenis join yang sedikit berbeda dengan inner join. Pada MySQL, bentuk perintah

untuk menerapkan outer join ada 2 yaitu :

SELECT ,, FROM LEFT JOIN ON

<key.tabel1> = <key.tabel2>

dan

SELECT ,, FROM RIGHT JOIN

ON <key.tabel1> = <key.tabel2>

Left join digunakan dalam situasi ketika ingin mengembalikan semua elemen data set A, terlepas dari

apakah nilai kunci ada dalam data set B.

Right join digunakan dalam situasi ketika ingin mengembalikan semua elemen data set B, terlepas dari

apakah nilai kunci ada dalam data set A.

Contoh :

– Tampilkan nip, nama dan gaji semua pegawai

select i.nip,i.nama,p.gaji from infoprib i left join pekerjaan p

on i.nip = p.nip;

Pada contoh diatas, tabel infoprib sebagai tabel yang posisinya di kiri sedangkan tabel pekerjaan berada pada posisi sebelah kanan. Sehingga bila perintah diatas diganti dengan

select i.nip,i.nama,p.gaji from infoprib i left join pekerjaan p on

i.nip = p.nip;

hasilnya akan berkebalikan dengan left join.

Syntax dasar :

4.    Full join

Full join adalah   Perintah ini merupakan salah satu bentuk kombinasi dari beberapa kombinasi dalam merelasikan 2 (tabel) atau lebih. Memang perintah ini sangat jarang dipakai, tapi tidak ada salahnya untuk saya tuliskan disini karena saya sendiri sebenarnya sudah lupa dengan dua perintah ini. Untung ada yang mengingatkan saya lewat komentar di artikel yang telah saya sebutkan di atas. Jadi walaupun nantinya saya lupa lagi masih bisa dibaca di artikel ini, dan mungkin ada pengunjung yang lebih bisa memanfaatkannya.

Syntax dasar

SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2 column_name       

Contoh :

SELECT registrasi.nama,registrasi.email,order.no_order FROM registrasi FULL JOIN order ON registrasi.id=order.id ORDER BY registrasi.nama.

NORMALISASI PADA DATABASE

20 November 2012 21:06:48 Dibaca : 859

Normalisasi Pada DataBase

 

 

  Proses normalisasi adalah proses pernormalan suatu database yang disusun agar menghindari terjadinya redudancy (kemubaziran data).

 

  Teknik Normalisasi adalah Cara untuk membangun/membikin suatu tabel database secara bertahap menjadi tabel database yang sesuai dengan karekteristik isinya.
berdasarkan informasi/bahan mentah hasil survei dan pengumpulan data dimana kita akan
membikin suatu aplikasi nantinya.

 

Dasar-dasar normalisasi :
1. Normal form (bentuk normal) adalah suatu klas dari skema database relasi yang
didefinisikan untuk memenuhi tujuan dari tingginya integritas dan maintainability
2. Kreasi dari suatu bentuk normal disebut normalisasi
3. Normalisasi dicapai dengan penganalisaan ketergantungan diantara setiap individu
atribut yang diassosiasikan dengan relasinya.

 

Perancangan melalui proses normalisasi mempunyai keuntungan-keuntungan sebagai berikut :
a. Meminimalkan ukuran penyimpanan yang diperlukan untuk penyimpanan data.
b. Meminimalkan resiko inkonsistensi data pada basis data.
c. Meminimalkan kemungkinan anomaly pembaruan.
d. Memaksimalkan stabilitas struktur data.

 

Tujuan proses normalisasi adalah mengkonversi relasi menjadi bentuk normal lebih tinggi. Terdapat beragam tingkat bentuk normal, yaitu :
a. Bentuk normal pertama (1NF)
b. Bentuk normal kedua (2NF)
c. Bentuk normal ketiga (3NF)
d. Bentuk normal Boyce-Codd (BCNF)
e. Bentuk normal keempat (4NF)
f. Bentuk normal kelima (5NF)

 

Keterangan bentuk normal :
 

- Bentuk normal pertama adalah ekivalen dengan definisi model relasional. Relasi
adalah bentuk normal pertama (1NF) jika semua nilai atributnya adalah sederhana
(bukan komposit).
 

- Bentuk normal kedua memiliki ketentuan harus telah berbentuk normal pertama (1NF),
dan semua atribut bukan utama harus bergantung fungsional penuh pada kunci relasi.
Relasi pada bentuk normal kedua harus tidak menyimpan fakta-fakta mengenai bagian
kunci relasi. Bentuk normal kedua menghilangkan kebergantungan parsial dan masih
memiliki anomali-anomali yang secara praktis tidak dapat diterima.

- Bentuk normal ketiga memiliki ketentuan harus telah berbentuk normal kedua (2NF)

dan relasi tidak boleh memuat kebergantungan fungsional di antara atribut-atribut
bukan utama.Bentuk normal ketiga menghilangkan kebergantungan transitif, awalnya
bentuk normal ketiga dipikir sebagai bentuk normal puncak/paling akhir. Namun
kemudian dapat ditemukan bentuk normal lebih kuat yaitu bentuk normal Boyce-Codd.
Bentuk Normal Boyce-Codd (BCNF) memiliki ketentuan yaitu masing-masing atribut
utama bergantung fungsional penuh pada masing-masing kunci dimana kunci tersebut
bukan bagiannya. Relasi adalah BCNF (optimal) jika setiap determinan atribut-
atribut relasi adalah kunci relasi. Relasi adalah BCNF (optimal) jika kapanpun
fakta-fakta disimpan mengenai beberapa atribut, maka atribut-atribut ini merupakan
satu kunci relasi. BCNF dapat memiliki lebih dari satu kunci. Properti penting
BCNF adalah relasi tidak memiliki informasi yang redundan.
 

- Bentuk Normal Keempat. Relasi dalam bentuk normal keempat (4NF) jika relasi dalam
BCNF dan tidak berisi kebergantungan banyak nilai. Untuk menghilangkan
kebergantungan banyak nilai dari satu relasi, kita membagi relasi menjadi dua
relasi baru. Masing – masing relasi berisi dua atribut yang mempunyai hubungan
banyak nilai.
 

- Bentuk Normal Kelima (5NF) berurusan dengan properti yang disebut join tanpa
adanya kehilangan informasi (lossless join). Bentuk normal kelima (5NF) juga
disebut PJNF (projection-join normal form). Kasus-kasus ini sangat jarang muncul
dan sulit untuk dideteksi secara praktis.

 

 

Pada proses perancangan database dapat dimulai dari dokumen dasar yang dipakai
dalam sistem sesuai dengan lingkup sistem yang akan dibuat rancangan databasenya. Contoh dokumen mengenai faktur pembelian barang pada PT. Revanda Jaya.
Tahapan Normalisasi Database pada PT. Revanda Jaya

1.Bentuk Unnormalisasi

 

Mencantumkan semua atribut dengan apa adanya :
Nomor_Faktur
Kode_Supplier
Nama_Supplier
Kode_Barang
Nama_Barang
Tanggal
Jatuh_Tempo
Quantity
Harga
Jumlah

 

2.Bentuk normal pertama (1NF)

 

Dengan bentuk normal pertama akan terbuat sebuah tabel yang terdiri dari 10 atribut, yaitu :
(No_Faktur, Kode_Supplier, Nama_Supplier, Kode_Barang, Nama_Barang, Tanggal, Jatuh_Tempo, Qty, Harga, Jumlah)

 

No_Fak : 779,998,998
Kode_Supplier : S02,G01,G01
Nama_Supplier : Hitachi,Gobel,Gobel
Kode_Barang : R02,A01,A02
Nama_Barang : Ricechoker C3,AC Split ½ PK,AC Split 1 PK
Tanggal : 02/02/01,07/02/01,07/02/01
Jatuh_Tempo : 09/03/01,09/03/01,09/03/01
Qty : 10,10,10
Harga : 15000000,13500000,20000000
Jumlah : 15000000,33500000,33500000

 

Pada bentuk normal pertama masih terdapat banyak kekurangan pada proses anomali, insert, update, dan delete. Pada proses Inserting/Penyisipan tidak bisa dengan memasukkan kode dan nama supplier saja tanpa adanya transaksi pembelian. Pada proses Delete/Penghapusan jika suatu record/data dihapus contohnya nomor faktur 779, maka berakibat pada penghapusan data supplier S02 (Hittchi) padahal data tersebut masih dibutuhkan. Pada proses Update/Pengubahan kode dan nama supplier ditulis berkali-kali, bila nama supplier berubah, maka disetiap baris yang ada harus dirubah, bila tidak menjadi tidak konsisten.

 

3.Bentuk normal kedua (2NF)

 

Bentuk normal kedua dengan melakukan dekomposisi relasi diatas menjadi beberapa relasi dan mencari kunci primer dari tiap-tiap relasi dan atribut kunci haruslah unik. Beberapa kunci kandidat adalah No_faktur, kode_supplier dan kode_barang. Kunci kandidat tersebut nantinya bisa menjadi kunci primer pada relasi hasil dekomposisi. Berdasarkan bentuk normal pertama dapat idekomposisikan menjadi tiga relasi beserta kunci primernya yaitu : relasi supplier (kode_supplier), relasi barang (kode_barang), dan relasi faktur (no_faktur).

 

Relasi Supplier
Kode_Supplier : S02,G01,G01
Nama_Supplier : Hitachi,Gobel Nustra

 

Relasi Barang
Kode_Barang :R02,A01,A02
Nama_Barang :Ricechocker C3,AC Split ½ PK,AC Split 1 PK
Harga :15.000.000,13.500.000,20.000.000

 

Kamus data dari masing-masing relasi diatas adalah :
Supplier = {Kode_Supplier,Nama_Supplier}
Barang = {Kode_Barang,Nama_Barang,Harga}
Faktur = {No_Faktur,Kode_Barang,Kode_Supplier,Tanggal,Jatuh_Tempo,Qty}

 

4.Bentuk normal ketiga (3NF)
Kamus data dari masing-masing relasi diatas adalah :
Supplier = {Kode_Supplier,Nama_Supplier}
Barang = {Kode_Barang,Nama_Barang,Harga}
Faktur = {No_Faktur, Kode_Supplier,Tanggal,Jatuh_Tempo}
Faktur_Barang ={ No_Faktur ,Kode_Barang,Qty}

 

5.Entity Relationship Diagram :
1.Supplier ke faktur relasinya adalah one to many karena satu supplier mempunyai
banyak faktur, dan faktur mempunyai relasi terhadap supplier.
2.Faktur ke transaksi barang relasinya adalah one to many karena satu faktur
mempunyai beberapa transaksi barang.

 

3.Barang ke transaksi_barang relasinya adalah one to many karena satu barang bisa
terjadi beberapa kali pembelian barang

 

 

 

bahasa-bahasa dan perintah DBMS

03 October 2012 19:53:49 Dibaca : 179

1.      DDL : Data Definition Language (DDL) pernyataan yang digunakan untuk mendefinisikan struktur database atau skema. Data Definition Language pemahaman dengan skema database dan menjelaskan bagaimana data harus terdiri dalam database, sehingga laporan bahasa seperti CREATE TABLE atau ALTER TABLE milik DDL. DDL adalah tentang "metadata".

 

 

 perintah - perintah yang termasuk dalam DDL antara lain :

 

·         Create
Biasa digunakan untuk membuat suatu tabel.Digunakan untuk mengedit tabel yang telah ada. dalam pengeditan tabel ini ada beberapa kemungkinan, diantaranya adalah mengubah dalam artian memodifikasi salah satu atau beberapa field pada tabel tersebut atau dalam artian menambah satu atau beberapa field pada tabel tersebut.

 

·         Alter

 

Digunakan untuk mengedit tabel yang telah ada. dalam pengeditan tabel ini ada beberapa kemungkinan, diantaranya adalah mengubah dalam artian memodifikasi salah satu atau beberapa field pada tabel tersebut atau dalam artian menambah satu atau beberapa field pada tabel tersebut.

 

·         Drop

 

Terkadang anda diharuskan menghapus sebuah tabel yang telah anda buat, hal ini mungkin disebabkan karena tabel yang anda buat salah, atau tidak diperlukan. untuk itu digunakan perintah Drop

 

 

 

 2.      DCL-adalah abstrak Bahasa Control Data. Bahasa Kontrol Data mencakup perintah seperti GRANT, dan kekhawatiran dengan hak, hak akses dan kontrol lain dari sistem database. DCL digunakan untuk memberikan / mencabut hak akses pada database dan isinya. DCL sederhana, namun MySQL perizinan yang sedikit rumit. DCL adalah tentang keamanan. DCL digunakan untuk mengendalikan pernyataan transaction.DCL database yang memungkinkan Anda untuk mengontrol siapa yang memiliki akses ke objek tertentu dalam database Anda.

 

a.      GRANT

 

b.      REVOKE

 

 

 GRANT: Memberikan hak akses pengguna ke database. Dalam database MySQL menawarkan administrator dan pengguna sebagian besar dari         pilihan kontrol. Dengan sisi administrasi proses termasuk kemungkinan untuk administrator untuk mengontrol hak pengguna tertentu atas server MySQL dengan membatasi akses mereka ke seluruh database atau ust membatasi izin untuk table.It tertentu Menciptakan sebuah entri dalam sistem keamanan yang memungkinkan pengguna dalam database saat ini untuk bekerja dengan data dalam database saat ini atau mengeksekusi pernyataan tertentu.

 

 

 3.      DML-Data Manipulation Language (DML) pernyataan yang digunakan untuk mengelola data dalam obyek skema penawaran DML dengan manipulasi data, dan oleh karena itu termasuk pernyataan SQL yang paling umum seperti SELECT, INSERT, dll DML memungkinkan untuk menambah / mengubah / menghapus data itu sendiri.

 

DML digunakan untuk memanipulasi dengan data yang ada dalam objek database (insert, pilih, memperbarui, menghapus).

 

 Perintah DML adalah sebagai berikut :

 

a.       Delete

 

perintah ini berfungsi untuk menghapus suatu data record  pada table

 

b.      Insert

 

Perintah untuk menyisipkan data atau record  baru pada table, Data baruyang di masukan tersebut akan mengurut menempati field yang kita sebutkan padasaat mendefinisikan fieldnya, jika memasukan data baru dengan data yangberbeda tipenya, maka SQL akan memberikan pesan Error.

 

c.       Select

 

Select menerapkan perintah yang sangat penting di SQL karena denganselect  kita bisa membuat tabel virtual dari berbagai macam tabel.Select  dapatmengimplementasikan konsep relasi untuk memanipulasi data record.

 

d.      Update

 

Melakukan perubahan data record  atau  field pada suatu table.

 

4.      DQL adalah bahasa yang digunakan untuk query Documentum, yang merupakan sebuah sistem manajemen konten yang digunakan untuk membuat, mengelola, memberikan, dan arsip semua jenis konten dari dokumen teks dan spreadsheet untuk gambar digital, HTML, XML dan komponen.

 

 DQL (Documentum Query Language) adalah bahasa query yang memungkinkan Anda untuk melakukan query yang sangat kompleks yang melibatkan:

 

a.       Properti pencarian

 

b.      Pencarian untuk kata-kata dan frase dalam dokumen

 

c.       Kemampuan lainnya pencarian khusus ditambahkan untuk dokumen dan manajemen       konten.DQL menggunakan sintaks yang merupakan superset dari ANSI-SQL standar (Structured Query Language).

 

 

 

TIPE-TIPE DATA PADA DBMS

19 September 2012 09:31:06 Dibaca : 142
  1. MySQL

FLOAT(precision) [ZEROFILL] : Bilangan floating-point. Tidak dapat bersifat unsigned. Nilai atribut precision adalah <=24 untuk bilangan floating-point presisi tunggal dan di antara 25 dan 53 untuk bilangan floating-point presisi ganda.

- DATA : Sebuah tanggal. MySQL menampilkan tanggal dalam format 'YYYY-MM-DD'. Jangkauan nilainya adalah '1000-01-01' hingga '9999-12-31'.

DATATIME : Sebuah kombinasi dari waktu (jam) dan tanggal. MySQL menampilkan waktu dan tanggal dalam format 'YYYY-MM-DD HH:MM:SS'. Jangkauan nilainya adalah '1000-01-01 00:00:00' hingga '9999-12-31 23:59:59'

TIMESTAMP[(M)] : Sebuah timestamp. Jangkauannya adalah dari '1970-01-01 00:00:00' hingga suatu waktu di tahun 2037. MySQL menampilkan tipe data TIMESTAMP dalam format YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD, atau YYMMDD, tergantung dari nilai M, apakah 14 (atau tidak ditulis), 12, 8, atau 6.

     2.  Oracle

Varchar2(size) : string yang memiliki panjang karakter vaiable dengan panjang maximal sebesar size. Tipe data ini memperbolehkan penyimpanan semua karakter yang dapat dimasukkan melalui keyboad. Maksimum size yang dapat disimpan sebesar 4000 bytes (karakter).

- Char(size): string dengan panjang karakter tetap sebesar ukuran size. Tipe data ini mempunyai kemampuan yang hampir sama yakni menyimpan karakter, hanya saja maksimum size yang disimpan hanya sebesar 2000 bytes.

- Number(p,s) : tipe data number memiliki presisi p dan s digit dibelakan koma jika kita abaikan p dan s berarti dianggap sebagai tipe number floating point. Tipe data ini menyimpan bilangan interger sampai maksimum dari digit integer tersebut.

- Long : data karakter dengan ukuran panjang bervariasi, hingga mencapai 2 GB.(tipe data seperti ini tidak dapat digunakan sebagai primary key).

     3. firebird/interbase

- Arrays : DBMS Interbase adalah salah satu yang pertama di mana array muncul. Dukungan dari array dalam database adalah perluasan dari model relasional tradisional. Kehadiran array memungkinkan untuk menyederhanakan bekerja dengan set satu jenis data.

- blob data type : Blob tipe data dimaksudkan untuk menyimpan sejumlah besar data dengan ukuran variabel. Tipe blob memungkinkan untuk menyimpan data yang tidak dapat ditempatkan dalam bidang jenis lain, - misalnya, gambar, file musik, fragmen video, dll

- Jenis untuk menyimpan data dan waktu : yaitu berubah dalam 6.x Interbase versi dan klon dibandingkan dengan 4.Ñ… dan 5.Ñ…. Agar tidak bingung dalam jaring laba-laba sejarah dengan jenis, kita akan mempertimbangkan situasi di versi Interbase 6.

pengertian dan aplikasi database

12 September 2012 15:51:19 Dibaca : 105

DBMS (DataBase Management System) adalah sistem yang secara khusus dibuat untuk memudahkan pemakai dalam mengelola basis data. Sistem ini dibuat untuk mengatasi kelemahan sistem pemrosesan yang berbasis berkas.Pada pendekatan yang berbasis berkas, umumnya perancangan sistem didasarkan pada kebutuhan individual pemakai, bukan berdasarkan kebutuhan sejumlah pemakai. Setiap kali terdapat kebutuhan baru dari seorang pemakai, kebutuhan segera diterjemahkan kedalam program komputer. Akibatnya, kemungkinan besar setiap program aplikasi menuliskan data tersendiri. Sementara itu ada kemungkinan data yang sama juga terdapat pada berkas-berkas lain yang digunakan oleh program aplikasi lain.stilah “database” berawal dari ilmu komputer. Meskipun kemudianartinya semakin luas, memasukkan hal-hal di luar bidang elektronika, artikel inimengenai database komputer. Catatan yang mirip dengan database sebenarnyasudah ada sebelum revolusi industri yaitu dalam bentuk buku besar, kuitansi dan kumpulan data yang berhubungan dengan bisnis.

Aplikasi DataBase Manajemen Sistem :

  • Microsoft Visual Basic (sering disingkat sebagai VB saja) merupakan sebuah bahasa membuat program perangkat lunak berbasis sistem operasi Microsoft Windows dengan pemrograman yang menawarkan Integrated Development Environment (IDE) visual untuk menggunakan model pemrograman (COM), Visual Basic merupakan turunan bahasa pemrograman BASIC dan menawarkan pengembangan perangkat lunak komputer berbasis grafik dengan cepat, Beberapa bahasa skrip seperti Visual Basic for Applications (VBA) dan Visual Basic Scripting Edition (VBScript), mirip seperti halnya Visual Basic, tetapi cara kerjanya yang berbeda. 

         

 

  •  convert ibs adalah mengkonversi data diambil dari tugas Sistem Kearsipan Biro Internasional ke setup database.Program relasional dan file yang terkait, dokumentasi program, struktur database file dan kode sumber semua. 

         

  • d.           systools sharepoint adalah  program ini memungkinkan Database Administrator (DBA) untuk memulihkan dokumen, situs, file, dan elemen lainnya dari database konten SharePoint korup. Hal ini dapat melakukan perbaikan database SharePoint setelah korupsi MDF disebabkan karena beberapa alasan seperti: virus. 

         

  • e.         .mySQL ke database MSSQL kecepatan perangkat lunak database converter Tinggi terbaik dilakukan untuk mengkonversi file database MySQL ke server Microsoft SQL Format 2000. Software mengubah tabel, atribut dan kunci indeks primer, kunci asing default kunci yang unik. 

         

 

  • .Firebird adalah salah satu aplikasi RDBMS (Relational Database Management System) yang bersifat open source. Awalnya adalah perusahaan Borland yang sekitar tahun 2000 mengeluarkan versi beta dari aplikasi database-nya InterBase 6.0 dengan sifat open source. Namun entah kenapa tiba-tiba Borland tidak lagi mengeluarkan versi InterBase secara open source, justru kembali ke pola komersial software. Tapi pada saat yang bersamaan programmer-progammer yang tertarik dengan source code InterBase 6.0 tersebut lalu membuat suatu team untuk mengembangkan source code database ini dan kemudian akhirnya diberinama Firebird.

         

 

  •  Oracle adalah relational database management system (RDBMS) untuk mengelola informasi secara terbuka, komprehensif dan terintegrasi.