Rabu, 10 November 2010

DB2 (DATABASE 2)

Database 2

Relational database-management system (RDBMS) merupakan sebuah sistem untuk menyimpan dan meretrieve data, dimana data tersebut diorganisasikan ke dalam tabel-tabel. Sebuah database relasional terdiri dari koleksi tabel yang menyimpan data-data yang ber-interrelated.
Gambar 1. Conceptual Data Model
conceptual_db.JPG
Gambar 2. Phisycal Data Model
phisycal_db.JPG

Sample Data
SNo
Sname
Status
City
S1
Smith
20
London
S2
Jones
10
Paris
S2
Blake
30
Paris
S4
Clark
20
London
S5
Adams
30
Athens
PNo
Pname
Colour
Weight
City
P1
Nut
Red
12
London
P2
Bolt
Green
17
Paris
P3
Screw
Blue
17
Rome
P4
Screw
Red
14
London
P5
Cam
Blue
12
Paris
P6
Cog
Red
19
London
SNo
Pno
Qty
S1
P1
300
S1
P2
200
S1
P3
400
S1
P4
200
S1
P5
100
S1
P6
100
S2
P1
300
S2
P2
400
S2
P3
200
S2
P4
300
S2
P5
400
Relation
Relationship antara entiti merupakan ekuivalensi dalam database pada sebuah pernyataan. Sebuah pengiriman beberapa “Parts” mensyaratkan bahwa “Supplier” harus terdaftar sebagai “Supplier”. Relationships dalam database akan muncul sebagai relasi “foreign key” antara 2(dua) tabel atau akan muncul sebagai sebuah tabel yang terpisah.
Relationships didalam sebuah database menjaberkan aturan hubungan antar entiti yang berelasi. Jika setiap pengiriman “Parts” harus dikirim oleh Supplier yang terdaftar maka dapat kita buat relasi many-to-one antara “Shipments” dan “Supplier”.
Contoh dari Relation
Gambar 2. menunjukan adanya relasi 1-to-many antara tabel “Supplier” dengan “Shipment melalui attribute Sno dimana “Shipment”.”SNo” == “Supplier”.”SNo”. Demikian juga ada relasi 1-to-many antara tabel “Parts” dengan “Shipment” melalui attribute PNo dimana “Shipment”.”PNo” == “Parts”.”PNo”.
Attribute
Entiti ekuivalensi dalam database pada sebuah benda/objek. Mewakili objek seperti “Supplier”, “Parts”, dan “Shipment”. Setiap berisi satu beberapa attribute. Attribute merupakan ciri-ciri dari objek yang ingin kita.
Contoh dari Attribute
Gambar 2. menunjukan entiti “Supplier” menpunyai attribut antara lain “SNo”, “SName”,”Status dan “City”.
Domain
Domain merupakan alias dari “built-in data types”, termasuk presisi dan range nilai/value yang dapat kita masukkan. Beberapa domain, misalkan tipe data boolean, merupakan pre-defined data types pada Adaptive Server Anywhere, dimana presisi nilainya 1 dan range nilainya 1(benar) atau 0(Salah), kita juga dapat menambahkan domain sesuai kebutuhan kita.
Contoh dari Domain
Misalkan pada gambar 2, kita dapat menentukan bahwa attribut “Colour” pada entiti “Parts” berisi hanya “Red”, “Green”, dan “Blue” dan hal ini biasa disebut “user-defined data types”.
Tuple
Pada relasional database, semua data disimpan dalam tabel-tabel, yang terdiri dari baris dan kolom. Satu baris data/objek memiliki attibute-attibute, satu baris data inilah yang biasa disebut tuple. Tabel berikut ini berisi daftar perbedaan istiliah.
formal relational term
Formal relational term
Non-relational term
Table
Relation
File
Column
Attribute
Field
Row
Tuple
Record
Contoh dari Tuple
Contoh tuple berikut ini diambil dari entiti “Supplier”
S1
Smith
20
London
Degree
Degree atau derajat adalah istilah untuk menggambarkan dari sebuah relasi. Degree dari suatu relasi berarti jumlah dari entiti yang berpartisipasi pada relasi terebut. Unary relationship terdiri dari 1 entiti pada relasi tersebut atau biasa disebut rekursive relationships mempunyai degree 1.
Contoh dari Degree
Pada gambar 2, relasi antara entiti “Supplier” dan entiti “Shipment” mempunyai degree 2.
Cardinality
Cardinality mengindikasikan jumlah instance/row/tuple/record yang berelasi atau berkorespondensi antara entiti yang satu dengan satu entiti yang lain. Ada beberapa nilai yang dapat kita pilih dalam menentukan cardinality suatu relai, antara lain :
One-To-One Relatonshpis, dimana relasi antar entiti tabel adalah satu berbanding satu. One-To-Many Relationships, dimana relasi antar entiti adlah satu berbanding banyak.
Contoh dari Cardinality
Pada gambar 2 terlihat relasi One-To-Many antara entiti “Supplier” dengan entiti “Shipment” dan antara entiti “Parts” dengan entiti “Shipment”. Jenis ketiga pada relationship adalah Many-To-Many relationships dimana relasi antara dua entiti adalah banyak berbanding banyak.
Candidate Key
Candidate key merupakan satu attribut atau kombinasi satu attribut atau lebih yang secara unik menjadi identifier pada suatu relasi. Candidate Key ini harus memenudi syarat sebagai berikut :
  • Unique identifier, untuk setiap row/tuple candidate key harus secara unik dapat menjadi identifier. Artinya setiap non candidate key attibute secara fungsional bergantung pada candidate key tersebut.
  • Non Redudancy, Tidak ada duplikasi candidare key untuk menjadi uniqe indentifier, dimana tidak dapat dilakukan penghapusan pada candidate key dimana tidak merusak sifat unique identifier.
Contoh dari Candidate Key
Untuk entiti “Supplier” candidate key yang dapat kita pilih adalah attributr SNo, karena secara fungsional attibute SName, Status, dan City bergantung ke attribut SNo.
Primary Key
Primary key adalah suatu attribute atau satu set attribute yang tidak hanya mewakili/mengidentifikasi secara unik suatu kejadian spesifik, tetapi juga dapat mewakili setiap kejadian dari suatu entiti.
Contoh dari Primary Key
Pada gambar 2 dapat dilihat bahwa “SNo” merupakan primary key entiti “Supplier”, “PNo” merupakan primary key untuk entiti “Parts”. “SNo” dan “PNo” merupakan primary key untuk entiti “Shipment”.
Foreign Key
Primary key adalah suatu attribute atau satu set attribute yang mewakili/sebagai primary key dari relasi yang lain pada database yang sama. Foreign key pada child entiti merupakan/sama dengan primary key pada tabel parentnya.
Contoh dari Foreign Key
“SNo” dan “PNo” yang merupakan primary key untuk entiti “Shipment”, “SNo” merupakan foreign key yang merelasikan entiti “Shipment” dengan entiti “Supplier”. Sedanghkan “PNo” merupakan foreign key yang merelasikan entiti “Shipment” dengan entiti “Parts”.
Apakah tujuan dari null?
Null merupakan nilai/value yang akan diisikan ke sebuah attribut apabila belum ada nilai yang dapat diisikan atau nilai-nilai yang akan diisikan belum diketahui. Pada dunia nyata null bukanlah suatu nilai melainkan ketidak-adan suatu nilai.
Selain hal diatas nilai null bermanfaat bila attribut suatu entiti sangat banyak dan tidak dapat dipenuhinya kesemua atttribut tersebut maka entri data dapat dilakukan secara paralel atau diisikan untuk attribut yang tidak oleh null.
Apakah primary key dapat berisi null, mengapa?
Tidak. Karena tujuan utama dari primary key adalah untuk identifier dan untuk menjaga integrity data. “Entity Integriry Rule” mensyaratkan bahwa tidak boleh adanya primary key attribute atau bagian dari primary key attribut yang bernilai null.

Tidak ada komentar:

Posting Komentar