SISTEM PENGURUSAN PENGKALAN DATA

 

Satu perisian yang boleh;

1. menakif data                 à seperti nama pic x (30).

2. menarik data antara data.

3. menyediakan kaedah manipulasi data.

4. format data menjadi piawai.

 

SPPD menggunakan konsep bersepadu (integrated) dalam pengurusan fail dengan ini .

1. data rendundan dapat dikurangkan                 à rendundan = penindanan data/data bertindih.

2. data menjadi piawai.

4. format data menjadi lengkap.

 

Penjanaan laporan dan penyataan atas talian senang dibuat. Fasiliti lain adalah penjanaan skrin, pengurusan menu dan laporan.

 

pengkelasan arahan.

 

3 kelas     *à  1999

1.        bahasa takrifan data.

Untuk wujud dan olah skema pengkalan data. Skema pengkalan data adalah takrifan judul nama data.

2.        bahasa manipulasi data; untuk tambah (append) hapus dan kemaskan.

3.        Bahasa query à list, display.

 

Model Pengkalan Data.

1.        model adalah perwakilan fizikal bagi benda yang wujud.

2.        Dalam pengkalan data model mewakili;

-          cara data disimpan.

-          Perkaitan antara data.

-          Bagaimana data diuruskan.

 

Terdapat 3 model.

1.        hubungan-hubungan. (relational). Convert fail/ seperti access, FoxPro dll.

2.        Hirarki.        (IMS).

3.        Rangkaian. (network)

*model hirarki dan rangkaian semakin kurang dugunakan                *à1999

 

Model hubungan.

Diwakilkan dengan jadual

 

Contoh;

nama

Alamat

Markah

 

*(item data/ medan alamat)

 

 

a)        baris jadual mewakilkan record.

b)       Laporan jadual mewakili medan.

c)        Keseluruhan jadual adalah fail.

 

pembinan pengkalan data

bina struktur jadiual (skema database)

                                |

bahan manipulasi (input, batal, ubahdata)

                                |

bahasa pertanyaan (pamer/lihat)

 

ARAHAN TAKRIFAN DATA

Operasi ke atas struktur data.

 

1.        create nama jadual.

-          Panjang 8 aksara.

-          Tidak boleh nama dimualai dengan hanya satu aksara dari A…J.

 

arahan-arahan dbase

 

Arahan takrifan data

.create pelajar.                à fail sambungan .dbf

 

Nama medan

Jenis

Saiz

Titik perpuluhan

Nama

Character

30

 

Alamat

C

40

 

Yuran

Number

5

2

*dalam medan saiz dan titik perpuluhan terapat lima ruang didalam ada titik nyata cth;

 

 

.

 

 

 

.enter data now y/n

.use pelajar                              à open data base

.modify structure                    à untuk baiki jika tertinggal data cth add medan data.

.append                                   à tambah data cth; tambah jumlah yuran.

.list                                                          à melihat data.

.browse                                   à melihat data lebih cantek/lihat dan tambah data.

.copy to use pelajar1                   à cthnya; copy dari pelajar ke pelajar1.

.list for yuran > 70.00                       à untuk lihat data yg lebih drp 70.00.

.close all

.copy file pelajar1.dbf to temp.dbf

.use temp.

.list close all                                            à utk tutup dari active.

.erase temp.dbf.

.use pelajar

.list

.index on nama to frame. à index = utk susun nama/ kedudukan.

.use pelajar index frame.

.list

.reindex    à untuk bina semula jika rosak.

.create pekerja

 

record

Nopek

Nama

lamat

Gaji

1

123

Osman

kajang

2500.00

2

111

Yusuf

Seremban

1200.00

3

144

Leha

Bangi

3200.00

4

222

Ros

Klang

2400.00

 

.append   à arahan untuk menambah record dihujung pengkalan data.

.replace nama with “roslan”, nopek with “333” gaji with 1200

.list

.index on nopek to fnopek  à tujuan fail index untuk cepat capain record dgn find/seek

.use pekerja index fnopek

.list                          à list/display utk lihat sahaja, beza keduanya: list all. display: semasa

.browse                   à boleh ubah / tambah data (bahasa manipulasi.

.browse field nama, alamat, gaji                à melihat data yang dikehendaki sahaja

.use pekerja

.append to pekerja for gaji > 2000 and gaji < 3000                 à (and) kedua2 syarat benar (for) adalah syarat

 

.use pekerja

.list

.edit record 1

.edit for nopek = 222

.use pekerja

.list

.locate for gaji > = 2500        à mencar secara berjujukan

.display

.delete record 2                        à data hanya ditanda *

.delete for nama = “leha”

.lias

.pack                       à batal / padam

.list

.use pekerja index fnopek

.cari = “444”

.find & cari                              à find seek: terus mengguna fail index

.display

.seek cari

.display

.seek “666”

.display

.go bottom

.display

.go top

.display

.go 2        à record

.display

.replace all gaji with gaji + 500 for gaji < 1500

 

.create kenderaan

 

nama

Alamat

Panjang

nopek

C

5

kenderaan

C

20

 

Record

Nopek

kenderaan

1

123

wira

2

111

honda

3

222

bmw

4

333

Jaguar

 

.use pekerja

.go 3

.display

.skip        à menggerakkan penunjuk record ke kedudukan record yang dinyatakan                *à1999

.display

.use kenderaan

.display

.use pekerja

.skip

.select A  à boleh juga dibuat select 1. Untul lihat fail semasa

.use pekerja

.select B

.use kenderaan

.select A

.go 3

.skip

.display

.select B

.display

.select A

.skip

------------ utk update

.use pekerja 1

.index on nopek t f2

.salect A

.use pekerja index f2

.select B

.use pekerja index fnopek

.select A

.update on nopek from A replace nama with A  (à nama) gaji with A (àgaji)

 

 

 

 

Command penting

.zap   à membuang kesemua record  dari pengkalan data yang aktif *à1999

.delete      à record tertentu

.erase       à batal semua record

                contoh:                 .close all

                                                .erase pelajar.dbf.

 

Contoh soalan

 

Diberi;

No rujukan

Nama buku

penerbit

Harga

R123

Kimia

DBP

12.50

R333

Fizik

Fajar

15.00

R111

sains

DBP

7.00

R242

matematik

Mcgraw

60.00

R555

cobol

Prentice

102.50

 

1.        wujudkan jadual di atas menggunakan nama dan format yang sesuai. Masukkan data yang telah diberi.

2.        Pamerkan semua record

3.        Indexkan fail fail di atas menggunakan kunci no rujukan.

4.        Pamerkan fail

5.        Tamabah record baru (gunakan append blank dan replace)

6.        Kemaskini record “R242” dimana harga telah naik 10% gunakan replace

7.        Batal record 7

8.        Pamer record dimana harga di atas RM 10 hingga RM 20

9.        Salin jadual buku kepada buku 1. Guna arahan copy.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Nopel

Nama

Markah

444

Salleh

60

222

Osman

20

666

Rahim

95

111

Ali

40

 

.use pelajar

.index on nopek to fnopel

.use pelajar indek fnopel

.seek “666”

.display

 

Jadual alamat

 

nopel

Alamat

666

Cheras

444

Kajang

111

Rawang

222

subang

 

.use alamat

.index on nopel to f1nopel

.sele A

.use pelajar

.sele B

.use alamat

.sele A

.go 2

.sele B

.go 3

.sele A

.skip

.display

.sele A

.use alamat index f2nopel

.sele B

.use pelajar index f1nopel

.update on nopel from A

       replace markah with A -> markah

.use alamat

.zap

.list

 

Bab 6. Arahan guery

 

Arahan ini tidak mengubah kandungan data.

 

.? 5*3

   15

.? “Selamat”

    Selamat

.use pelajar

.go 2

.?nama, markah

.modify command p1

 

? “hello”

?? “hello world”

à tanda ? utk sebaris

à tanda ?? seprti arahan \n

 

.do p1                      à serti untuk compile atau run.

 

Syntex arahan display

 

Display[skop][ungkapan][while<syarat>][off][toprintf]

                *[] optional, <> mandatory

 

.use pelajar

.display all off to print

.list for markah < 50 to print                à markah for nama medan

.list nopel,markah à ada 3

.display history                à arahan yang telah di key in/memaparkan arahan yng diberi pada titik

.display memory                à lihat senarai pembolehubah serta nilai pemboleh ubah trsbt.

.displau status                à status semasa

.display strukture

.use alamat

.modi strukture

     tambah nama

.use pelajar

.modify label flabel

                à membuat label untk surat menyurat

.label from flabel for markah > 85                à urk run

.modi query fquery

.set filter to fquery

.list          à menyenaraikan kandungan pengkalan data.

.set filter to

.modi screen papar                  à utk buat form

.set format to papar                                à utk lihat hasil

.append  à ke papar di atas

.modi report laporan

   alt layout                  à quick layout

                header

                intro

                detial

                sumery à sum

.report from laporan for….

 

Bab 7 Arahan umum

Arahan yang dikelaskan sebagai arahan umum ialah arahan yang disediakan sebagai tambahan kepada tiga kelas arahan sebelumnya.

 

Jadual pekerja

 

Nopek

Nama

Kodkenderaan

444

Yakub

2

666

Salihah

3

111

Osman

5

222

Amin

2

 

Jadual kenderaan

Nama kenderaan

1

Saga

2

Iswara

3

Wira

4

honda

5

Lamborgini

 

Arahan @

 

Syntex

@ < baris lajur> [say <ungkapan>][picture <klaus>]

          accept      [get <ungkapan] [picture <klaus>]

                                [range][clear]

 

@ 10,20 say “hello world”     à arhn say = display

@ 10,20 clear                à memadamkan semula arahan tadi

@ 0, 10 to 10,20

                lukis kotak antara 2 kordinat

@ 0,10 to 10,20 double à garis double

.modi comm prog 1

@ 1,26 say “sistem record pekerja”

 

do while .t.

   pilih=0

@2,1 clear to 21,78

@3,25 to 18,50

                x=6

                y=30

@x,y say “menu utama”

@x+2, y, say “1-tambah record”

@x+4,y say “2-kemaskini”

@x+8, y say “3-batal record”

@x+12, y say say “pilihan anda”       à get pilih

   pick “9” range 1, 4 record

 

do case

case pilih=1

do p1

 

do p2

 

 

case pilih =4

clear

exit  à tukarf

end case

 

.use pelajar

.index on jod kenderaan to f2

.use kenderaan

.index on kod kenderaan to f2

.use kenderaan

.count      à kira record

.count for harga < 20,000

.sum harga                à medan numeric

.sum to jumlah

.sum harga for harga > 30,000

.average harga

.sele A

.use pekerja

.sele B

.use kenderaan

.sele A

.join with B to f3 for no kenderaan =B->nokenderaan

    field nama, nama_kenderaan

.use f3

.list

.sele A

.use pekerja index f1

.sele B

.use kenderaan index f2

.sele A

.set relation to no_kenderaan into B

.list nama, B->nama kenderaan

.use f3

.list

.sele A

.use pekerja index f1

.sele B

.set relation to no kenderaan into B

.list nama B à nama kenderaan

.use pekerja

.sort on kod_kenderaan/A, nama/A to p1

.use p1

.list

 

Bab 8. FUNGSI

 

Fungsi terbahagi 2 iaitu;

i.                     mempunyai parameter

ii.                    tidak mempunyai parameter

 

Terdapat 6 kelas fungsi mengikut arahan yang dimanipulasikan.

1.        masa

2.        rentetan

3.        fail

4.        arithmatik

5.        papar/cetak

6.        am

 

1.        fungsi dan (parameter makro)

nama= “pelajar”

use &nama                *arahan & address/ seperti scanf

2.        nom= -40

abs(nom)

 

3.        nama = “Osman Abu”

? at (“Ab”, nama)

 

4.        ? date()

5.        tarikh = “20/5/96”

? ctod(tarikh)                *ctod=character to date

? day (tarikh) à 20

? month (tarikh)  à 5

? year (tarikh)                à 96

? cmonth (tarikh)                à may

 

6.        use pelajar

? dbf()     à keluar pelajar.dbf

 

7.        use pelajar

delete for markah > 40 and markah < 50

 

list for deleted()                à terdapat dua arahan flase(active) dan true(utk delete)

Ali 60

Yusuf 45

Alias 90

Abu 49

 

8.        ? dow (dele())        à dow(day of week. Iaitu Sunday 1, Monday 2…)

             6

? cdow(date())                à cth Friday

? dow (3/8/99)

                3(teusday)- selasa

9. ? dtoc (date())                à dtoc(day to character à jawapan: “6/8/99”

? dtoc(12)

.use pelajar

.index on nama + dtoc( tarikh-lahir) to fkunci

 

10.     use pekerja

go3

? eof()    à false. Arahan eof (end at file).

? bof()     à bof(beginning of file

.go top

.skip 4

? bof()  à true (record paling atas)

.go bottom

.skip

? eof() à true (record paling bawah)

 

.modi comm prog1

 

.use pelajar

.do while not.eof()                  à not (tidak benar ke benar)

.replace markah with markah + 10

     for markah < 30

     skip à record ke 2

      end do

 

11.     found()

.T. jika jumpa

.F. sebaliknya

 

.modi comm p3

 

.use pekerja index fnopek

@ 3,2 say “no pelajar” get unopek

read

seek unopek

if found()

   display

else

? “rec not found” false

                                *arahan seek/ find (index)

                                *arahan locate (satu demi satu)

 

12. ? int (10, 34)   cth sqrt(16)

                                                4

 

13.     rent = “abc”

? islower(rent)

? islower (“abc”)

? isupper(rent)

? upper(rent)                à ABCD

? lower (mohd)

 

14.     len (rent)  4

len (“Ismail Yunus”)

         12 à termasuk ruang kosong

 

15. left (“Salimah Yunus”, 3)                               à output  sal

nama= “Rahimah Alias”

? left (nama, 6)                 à output Rahimah

? right (nama, 3)                à output ias

? left (nama, at (“ “, nama))     à ouput rahimah

? right (nama    ))                   à output ah~lalias

16.     nama = “~~~Ali~~~~”

               left       right

&trim(nama)        à Ali~~~~

rtrim(nama)        à ali

trim(“~~~Abu~~”) à ~~~Abu

&trim(rtrim(“~~~Sal~~”))   à ~~~sal

 

17.     max(x,y)

 min(x,y)

modi com pmax

 

.use pelajar

besar=markah

do while. Not. Eof()

                besar=max(besar,markah)

                skip

end do

? besar

 

Do pmax à utk run program

 

Contoh data

Ali 60

Osman 40

Leha 90

Yusof 50

 

18.     mod (i,j)

i%j= hasil baki

.? mod (5,3)

.? mod (3,5)

 

19.     use pelajar

.? reccount()

   locate for nama = “leha”

.? recno()

.? recsize 24+1=25                 à 1 adalah system

 

20.     @6,4 say replicate (“A”, 20)

21.     set decimal to 4

nom=12.3456

?round (nom,3)                à bulatkan kepada 3 titik perpuluhan

                12.34560

? round (nom,2)

                12.3500

? round (nom,1)

                12.3000

 

22.     space        à utk mewujudkan rentetan aksara

nama=space (30)

@2,3 say “Nama anda: “ get nama

read

 

23.     str(Nombor, pjg, titik perpuluhan)

*tukar nom kepada rentetan

nom=1234.56

? str(nom,7,2)                à 2 ialah utk perpuluhan

? str (nom,8,3)

 

24.     stuff(r1,n1,n2,r3)

gabung r1 dari r2 pada posisi n1 dan hapus sebanyak n2 aksara.

 

Contoh

Sasar=”Ayat Panjang”

Sisip=”<sisip>”

? stuff (sasar,5,0,sisip)

? stuff(sasar,5,1,sisip)

 

25.     substar (asal, mula, panjang) dapat sebahagian rentetan (asal)

nama-”ahmad”

? substar(nama,4,2)

? substar-(nama,2,2)

26.     ? time

hh: mm:ss

27.     tramform(medan, format)

use pekerja

list transform(nama,”01”) transform(gaji,”$$$,99”), transform (“tarikh lahir”)

28.     val()

tukar rentetan ke numeric

nom=”123”

? val (nom)

? val(“123 jualan1”)