Selasa, 03 Desember 2019

Post Test NoSql

Apa itu database NoSQL?

Database NoSQL dibuat dengan tujuan khusus untuk model data spesifik dan memiliki skema fleksibel untuk membuat aplikasi modern. Database NoSQL dikenal secara luas karena kemudahan pengembangan, fungsionalitas, dan kinerja dalam berbagai skala. Database NoSQL menggunakan berbagai model data, termasuk dokumen, grafik, nilai kunci, dalam memori, dan pencarian. Halaman ini termasuk sumber daya untuk membantu Anda memahami lebih baik database NoSQL dan mulai menggunakannya.

Bagaimana Cara kerja Database (nonrelasional) NoSQL?

Database NoSQL menggunakan berbagai model data untuk mengakses dan mengelola data, seperti dokumen, grafik, nilai kunci, dalam memori, dan pencarian. Jenis database ini dioptimalkan secara khusus untuk aplikasi yang memerlukan volume data besar, latensi rendah, dan model data fleksibel, yang dicapai dengan mengurangi pembatasan konsistensi data dari database lainnya.

Pertimbangkan contoh pemodelan skema untuk database buku sederhana:

  • Dalam database relasional, catatan buku sering diselubungkan (atau "dinormalkan") dan disimpan dalam tabel terpisah, dan hubungan ditetapkan dengan pembatasan kunci primary dan foreign. Dalam contoh ini, tabel Buku memiliki kolom untuk ISBN, Judul Buku, dan Nomor Edisi, tabel Penulis memiliki kolom untuk IDPenulis dan Nama Penulis, dan tabel Penulis-ISBN memiliki kolom IDPenulis dan ISBN. Model relasional didesain untuk mengaktifkan database untuk menegakkan integritas referensial antara tabel di dalam database, dinormalkan untuk mengurangi redundansi, dan umumnya dioptimalkan untuk penyimpanan.
  • Dalam database NoSQL, catatan buku biasanya disimpan sebagai dokumen JSON. Untuk setiap buku, item, ISBN, Judul Buku, Nomor Edisi, Nama Penulis, dan IDPenulis disimpan sebagai atribut dalam dokumen tunggal. Dalam model ini, data dioptimalkan untuk pengembangan intuitif dan skalabilitas horizontal.

Kenapa Anda harus menggunakan database NoSQL?

Database NoSQL sangat cocok untuk digunakan dengan berbagai aplikasi modern seperti aplikasi seluler, web, dan gaming yang memerlukan database yang fleksibel, dapat diskalakan, berkinerja tinggi, dan memiliki fungsionalitas tinggi untuk memberikan pengalaman pengguna yang baik.

  • Fleksibilitas: Database NoSQL umumnya menyediakan skema fleksibel yang memungkinkan pengembangan yang lebih cepat dan lebih berulang. Model data fleksibel membuat database NoSQL ideal untuk data yang semi terstruktur dan tidak terstruktur.
  • Skalabilitas: Database NoSQL umumnya didesain untuk meningkatkan skala dengan menggunakan klaster perangkat keras yang terdistribusi alih-alih meningkatkan skala dengan menambah server yang mahal dan robust. Beberapa penyedia layanan cloud menangani aktivitas di balik operasi ini sebagai layanan yang dikelola sepenuhnya.
  • Kinerja tinggi: Database NoSQL dioptimalkan untuk model data spesifik (seperti dokumen, nilai kunci, dan grafik) dan pola akses yang memberikan kinerja yang lebih tinggi dibandingkan jika Anda mencoba mendapatkan fungsionalitas yang mirip dengan database relasional.
  • Fungsionalitas tinggi: Database NoSQL menyediakan API dan jenis data fungsional yang dibuat secara khusus untuk setiap model data yang sesuai.

Pretest NoSql

Apa yang anda ketahui tentang No SQL?

NoSQL adalah suatu evolusi baru yang ada didalam dunia database, NoSQL ini dikembangkan pertama kali pada tahun 1998 oleh Carlo Strozzi. Kemudian pada tahun 2009, Eric Evans memperkenalkan kembali teknologi NoSQL. Jika SQL diibaratkan dengan relational database  maka NoSQL adalah non-relational Database.
Apakah yang dimaksud dengan NoSQL itu sendiri? Ini adalah suatu perkembangan dari database rational yang telah sejak ada dan digunakan mulai tahun 1970-an sampai sekarang. Mengapa perkembangan dari database rational ini dibutuhkan dan pada akhirnya membuat suatu database system baru bernama NoSQL, karena melihat perkembangan internet dan aplikasi  selama 10-15 tahun terakhir.
Sekitar 10-15 tahun yang lalu jumlah user pengguna internet dan juga jumlah transaksi data pada aplikasi – aplikasi yang ada tidaklah sebanyak saat ini dan database relational yang telah ada dulu sudah sangat mencukupi untuk mengatur transaksi data yang ada dan mendukung operasi transaksi,  update sebagian data, melakukan kontrol terhadap operasi database, support terhadap constraint seperti unique, primary key, foreign key dan check. Memiliki bahasa SQL atau Simplified Query Language untuk mengakses data, merubah data seperti operasi insert, update  dan delete.

Sql dan NoSql apa perbedaannya?

NoSQL tidak menggunakan sintaks SQL untuk memyimpan data. Penyimpanan data dalam NoSQL tidak memerlukan skema tabel yang tetap seperti pada relational database.

Post Test Teknik Normalisasi

  1. Jelaskan Tahapan Normalisasi!
TAHAPAN NORMALISASI : Tahapan Normalisasi dimulai dari tahap ringan (1NF) hingga paling ketat (5NF). Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik. Urutannya : 1NF, 2NF, 3NF, BCNF, 4 NF, 5NF

  1. Bentuk Tidak Normal
  2. Bentuk Normal Pertama (1NF) : Menghilangkan Perulangan Grup
  3. Bentuk Normal Kedua (2NF) : Menghilangkan Ketergantungan Parsial
  4. Bentuk Normal Ketiga (3NF) : Menghilangkan Ketergantungan Transitif
  5. Bentuk Normal Boyce-Code Form (BCNF) : Menghilangkan anomali-anomali hasil dari ketergantungan fungsional
  6. Bentuk Normal Keempat (4NF) : Menghilangkan ketergantungan multivalue
  7. Bentuk Normal Kelima : Menghilangkan anomali-anomali yang tersisa  
1. Un-Normal Form
  • Berupa relasi umum, sesuai kenyataan
  • Mencerminkan item data nyata
  • Mencerminkan bagian dari suatu sistem
  • Belum dapat digunakan sebagai database
  • Bentuk Flat Table menggambarkan jumlah  atribut
2. Bentuk Normal Tahap Pertama (1NF)
  • Bentuk normal 1NF terpenuhi jika sebuah tabel tidak memiliki atribut bernilai banyak (multivalued attribute), atribut composite atau kombinasinya dalam domain data yang sama.
  • Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi).
3. Bentuk Normal Tahap Kedua (2NF)
  • Bentuk Normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh memiliki Functional dependency pada primary key.
  • Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya (Functional Dependency) hanya bersifat parsial saja (hanya tergantung pada sebagian dari primary key).
  • Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan.
4. Bentuk Normal Tahap Ketiga (3NF)
  • Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF, dan jika tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya,
  • Untuk setiap Functional Dependency dengan notasi X-->A, maka :
  • X harus menjadi superkey pada tabel tersebut.
  • Atau A merupakan bagian dari primary key pada tabel tersebut.
5. Boyce-Code Normal Form (BCNF)
  • Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap Functional Dependency terhadap setiap atribut atau gabungan atribut dalam bentuk : X --> Y maka X adalah Super Key.
  • Tabel tersebut harus di dekomposisi berdasarkan Functional Dependency yang ada, sehingga X menjadi super key dari tabel-tabel hasil dekomposisi.
  • Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF. Perbedaannya, untuk Functional Dependency X--> A, BCNF tidak membolehkan A sebagai bagian dari primary key.
6. Bentuk Normal Tahap Keempat (4NF) atau MVD dan PJNF
  • Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued attribute.
  • Untuk setiap  multivalued attribute (MVD) juga harus merupakan Functional Dependency
7. Bentuk Normal Tahap Kelima (5NF)
  • Bentuk normal 5NF terpenuhi jika memiliki sebuah loseloss decomposition menjadi tabel-tabel yang lebih kecil.
  • Jika 4 bentuk normal sebelumnya dibentuk berdasarkan Functional Dependency, 5NF dibentuk berdasarkan konsep Join Dependence. Yakni apabila sebuah tabel telah di dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi untuk membentuk tabel semula.
8. Overnormalisasi
Analisa Overnormalisasi diperlukan jika :
  • Database ini digunakan untuk sistem multi user
  • Tabel-tabel yang sudah normal ini digabungkan dengan fungsi lain yang ada di lapangan, misalnya; untuk fungsi retur, untuk fungsi inventori, untuk fungsi sales order maupun order pembelian, untuk fungsi keamanan database, dan lain-lain.

2. Buatlah penggunaan Teknik Normalisasi untuk contoh kasus basis data "Perpustakaan"!

1. Bentuk Tidak Normal (UNF)
Syarat :
- Masukan semua atribut yang ada pada dokumen dasar (Dokumen - - Masukan dan Dokumen Keluaran) pada satu himpunan.
Langkah :
Masukan semua atribut yang ada pada dokumen masukan (Form Data Anggota, Form Data User dan Form Buku) dalam satu himpunan.
2. Bentuk Normal Pertama (1NF)
Syarat :
- Tidak ada baris yang duplikat
- Masing  masing Cell atau Atribut bernilai tunggal
Langkah :
- Hapus / Buang atribut yang duplikat (pada kotak merah) yang ada pada Bentuk Tidak Normal (UNF) menjadi Cell yang bernilai tunggal pada himpunan baru Normalisasi Bentuk Pertama (1NF).
- Tentukan atribut yang akan dijadikan Candidate Key (Calon Kunci yang akan menjadi Kunci Utama).
Keterangan :
* Candidate Key
3. Bentuk Normal Kedua
Syarat :
- Sudah dalam bentuk Normal Pertama.
- Semua atribut yang tidak termasuk dalam Primary Key memiliki ketergantungan fungsional pada Primary Key secara utuh.
Langkah :
Buat tabel baru dengan setiap himpunan yang saling ketergantungan secara fungsional antara atribut Primary Key dan atribut bukan kunci (atribut yang tidak memiliki kunci).
4. Bentuk Normal Ketiga (3NF)
Syarat :
Menghilangkan anomali-anomali hasil dari ketergantungan fungsional.
Langkah :
- Sudah dalam bentuk Normal Kedua
- Pisahkan atribut yang merupakan atau menjadi atribut detail (tidak tergantung secara langsung kepada atribut Primary Key). Pisahkan atribut (pada kotak merah) dari himppunan / dari tabel asal pisahkan ke tabel baru.

Kapan Teknik Normalisasi digunakan dalam mengembangkan Database?

Kapan atau dimana normalisasi digunakan dalam perancangan sistem basis data?

Pada dasarnya normalisasi merupakan teknik yang formal yang bisa digunakan di tahap manapun dalam perancangan sistem database. Namun pada umumnya ada dua pendekatan tentang penggunaan normalisasi. Yang pertama adalah pendekatan 'bottom-up' dan yang kedua disebut pendekatan 'top-down'. Coba perhatikan gambar ilustrasi di bawah ini:

Seperti bisa dilihat pada gambar di atas, pendekatan 1 (approach 1) menunjukkan kapan/dimana normalisasi digunakan sebagai teknik 'standalone' dalam perancangan basis data sementara pada pendekatan 2 (approach 2) menunjukkan kapan/dimana normaliasi bisa digunakan sebagai teknik validasi untuk mengecek struktur relasi-relasi yang dihasilkan dengan pendekatan top-down seperti ER modeling. Tidak perlu dipusingkan pendekatan mana yang digunakan, tujuan keduanya adalah sama yaitu menghasilkan relasi-relasi yang terdesain dengan baik yang memenuhi data requirements perusahaan. 
Gambar ilustrasi diatas juga  menunjukkan contoh berbagai sumber data yang bisa digunakan untuk perancangan basis data.  Meskipun spesifikasi users’ requirements adalah sumber data yang pada umumnya lebih diutamakan, tetapi mungkin juga untuk merancang basis data berdasarkan informasi yang diambil langsung dari sumber data lainnya seperti form-form  atau report-report tradisional

Teori Komputasional dan Implementasi Di Bidang Lain

  Pengertian Komputasi Komputasi sebetulnya bisa diartikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan...