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
Gambar 2. Phisycal Data Model
Sample Data
SNo | Sname | Status | City |
S1 | Smith | 20 | |
S2 | Jones | 10 | |
S2 | Blake | 30 | |
S4 | | 20 | |
S5 | | 30 | |
PNo | Pname | Colour | Weight | City |
P1 | Nut | Red | 12 | |
P2 | Bolt | Green | 17 | |
P3 | Screw | Blue | 17 | |
P4 | Screw | Red | 14 | |
P5 | | Blue | 12 | |
P6 | Cog | Red | 19 | |
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 |
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 tuple berikut ini diambil dari entiti “Supplier”
S1 | Smith | 20 | |
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.
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