Dibawah ini yang bukan merupakan atribut dari hashing adalah

Skip to content

Dalam DBMS, hashing adalah teknik untuk secara langsung mencari lokasi data yang diinginkan pada disk tanpa menggunakan struktur indeks. Metode hashing digunakan untuk mengindeks dan mengambil item dalam database karena lebih cepat untuk mencari item tertentu menggunakan kunci hash yang lebih pendek alih-alih menggunakan nilai aslinya. Data disimpan dalam bentuk blok data yang alamatnya dihasilkan dengan menerapkan fungsi hash di lokasi memori di mana catatan ini disimpan sebagai a blok data atau bucket data

Dalam tutorial DBMS ini, Anda akan belajar,

Mengapa kita perlu hashing?

Di sini, adalah situasi di DBMS di mana Anda perlu menerapkan metode hashing:

  • Untuk struktur basis data yang sangat besar, sulit untuk mencari semua nilai indeks melalui semua levelnya dan kemudian Anda perlu mencapai blok data tujuan untuk mendapatkan data yang diinginkan.
  • Metode hashing digunakan untuk mengindeks dan mengambil item dalam database karena lebih cepat untuk mencari item tertentu menggunakan kunci hash yang lebih pendek alih-alih menggunakan nilai aslinya.
  • Hashing adalah metode yang ideal untuk menghitung lokasi langsung dari catatan data pada disk tanpa menggunakan struktur indeks.
  • Ini juga merupakan teknik yang bermanfaat untuk mengimplementasikan kamus.

Terminologi penting dalam hashing

Di sini, adalah terminologi penting yang digunakan dalam hashing:

  • Bucket Data – Bucket data adalah lokasi memori di mana catatan disimpan. Ini juga dikenal sebagai unit penyimpanan.
  • Kunci : Kunci DBMS adalah atribut atau set atribut yang membantu Anda mengidentifikasi baris (tuple) dalam suatu relasi (tabel). Ini memungkinkan Anda menemukan hubungan antara dua tabel.
  • Fungsi hash. : Fungsi hash, adalah fungsi pemetaan yang memetakan semua set kunci pencarian ke alamat tempat catatan aktual ditempatkan.
  • Probing linear – Probing linear adalah interval tetap antara probe. Dalam metode ini, blok data berikutnya yang tersedia digunakan untuk memasukkan catatan baru, alih-alih menimpa pada catatan yang lebih lama.
  • Probing kuadrat – Ini membantu Anda menentukan alamat bucket baru. Ini membantu Anda menambah interval antara probe dengan menambahkan output berurutan dari polinomial kuadrat ke nilai awal yang diberikan oleh perhitungan asli.
  • Indeks hash. – Ini adalah alamat blok data. Fungsi hash bisa menjadi fungsi matematika sederhana bahkan untuk fungsi matematika yang kompleks.
  • Hashing ganda. -Double Hashing adalah metode pemrograman komputer yang digunakan dalam tabel hash untuk menyelesaikan masalah memiliki tabrakan.
  • Bucket Overflow. : Kondisi bucket-overflow disebut tabrakan. Ini adalah tahap fatal untuk fungsi statis apa pun.

Jenis teknik hashing

Ada terutama dua jenis metode / teknik Hashing SQL:

Hash statis

Dalam hashing statis, alamat bucket data yang dihasilkan akan selalu tetap sama.

Karena itu, jika Anda menghasilkan alamat untuk dikatakan Student_ID = 10. Menggunakan fungsi hashing. mod (3) , alamat bucket yang dihasilkan akan selalu . Jadi, Anda tidak akan melihat perubahan alamat ember.

Oleh karena itu, dalam metode hashing statis ini, jumlah bucket data dalam memori selalu tetap konstan.

Fungsi hash statis

  • Memasukkan catatan : Ketika catatan baru harus dimasukkan ke dalam tabel, Anda dapat menghasilkan alamat untuk catatan baru menggunakan kunci hashnya. Ketika alamat dihasilkan, catatan secara otomatis disimpan di lokasi itu.
  • Mencari : Ketika Anda perlu mengambil catatan, fungsi hash yang sama harus membantu untuk mengambil alamat ember di mana data harus disimpan.
  • Hapus catatan : Menggunakan fungsi hash, Anda dapat terlebih dahulu mengambil catatan yang ingin Anda hapus. Kemudian Anda dapat menghapus catatan untuk alamat itu dalam memori.

Hashing statis selanjutnya dibagi menjadi

  1. Buka hashing.
  2. Hashing tutup.

Buka hashing.

Dalam metode hashing terbuka, alih-alih menimpa yang lebih tua satu blok data berikutnya yang tersedia digunakan untuk memasukkan catatan baru, metode ini juga dikenal sebagai pencar linear.

Misalnya, A2 adalah rekor baru yang ingin Anda masukkan. Fungsi hash menghasilkan alamat sebagai 222. Tetapi sudah ditempati oleh beberapa nilai lain. Itu sebabnya sistem mencari ember data berikutnya 501 dan menugaskan A2 untuk itu.

Dibawah ini yang bukan merupakan atribut dari hashing adalah
BAGAIMANA BUKA HASH BEKERJA

Tutup hashing.

Dalam metode hashing tutup, ketika ember penuh, bucket baru dialokasikan untuk hash yang sama dan hasilnya ditautkan setelah yang sebelumnya.

Hash dinamis.

Hashing dinamis menawarkan mekanisme di mana bucket data ditambahkan dan dihilangkan secara dinamis dan sesuai permintaan. Dalam hashing ini, fungsi hash membantu Anda membuat sejumlah besar nilai.

Perbedaan antara indeks dan hashing yang dipesan

Di bawah ini adalah perbedaan utama antara pengindeksan dan hashing

ParameterPesanan pengindeksanHashing.
Menyimpan alamatAlamat dalam memori diurutkan sesuai dengan nilai kunci yang disebut kunci utamaAlamat selalu dihasilkan menggunakan fungsi hash pada nilai kunci.
PertunjukanIni dapat berkurang ketika data meningkat dalam file hash. Karena menyimpan data dalam bentuk yang diurutkan ketika ada operasi (insert / delete / update) yang dilakukan yang mengurangi kinerjanya.Kinerja hashing akan menjadi yang terbaik ketika ada penambahan dan penghapusan data yang konstan. Namun, ketika database sangat besar, maka organisasi file hash dan pemeliharaannya akan lebih mahal.
Digunakan untukLebih disukai untuk rentang pengambilan data – yang berarti setiap kali ada data pengambilan untuk rentang tertentu, metode ini adalah opsi yang ideal.Ini adalah metode yang ideal ketika Anda ingin mengambil catatan tertentu berdasarkan tombol pencarian. Namun, itu hanya akan berkinerja baik ketika fungsi hash ada pada tombol pencarian.
Manajemen memoriAkan ada banyak blok data yang tidak digunakan karena operasi hapus / perbarui. Blok data ini tidak dapat dirilis untuk digunakan kembali. Itu sebabnya pemeliharaan memori secara teratur diperlukan.Dalam metode hashing statis dan dinamis, memori selalu dikelola. Bucket Overflow juga ditangani dengan sempurna untuk memperpanjang hashing statis.

Apa itu tabrakan?

Tabrakan hash adalah keadaan ketika hash yang dihasilkan dari dua atau lebih data dalam kumpulan data, salah memetakan tempat yang sama di Tabel Hash.

Bagaimana cara menangani tabrakan hashing?

Ada dua teknik yang dapat Anda gunakan untuk menghindari tabrakan hash:

  1. Mengulangi : Metode ini, memohon fungsi hash sekunder, yang diterapkan terus menerus sampai slot kosong ditemukan, di mana catatan harus ditempatkan.
  2. Rantai : Metode Chaining membangun daftar item yang ditautkan yang hash utamanya dengan nilai yang sama. Metode ini membutuhkan bidang tautan tambahan untuk setiap posisi tabel.

Ringkasan:

  • Di DBMS. , Hashing adalah teknik untuk secara langsung mencari lokasi data yang diinginkan pada disk tanpa menggunakan struktur indeks.
  • Metode hashing digunakan untuk mengindeks dan mengambil item dalam database karena lebih cepat untuk mencari item tertentu menggunakan kunci hash yang lebih pendek alih-alih menggunakan nilai aslinya.
  • Bucket data, kunci, fungsi hash, probing linear, probing kuadrat, indeks hash, hashing ganda, ember overflow adalah terminologi penting yang digunakan dalam hashing
  • Dua jenis metode hashing adalah 1) hashing statis 2) hashing dinamis
  • Dalam hashing statis, alamat bucket data yang dihasilkan akan selalu tetap sama.
  • Hashing dinamis menawarkan mekanisme di mana bucket data ditambahkan dan dihilangkan secara dinamis dan sesuai permintaan.
  • Dalam alamat pengindeksan dalam memori diurutkan sesuai dengan nilai kritis saat dalam alamat hashing selalu dihasilkan menggunakan fungsi hash pada nilai kunci.
  • Tabrakan hash adalah keadaan ketika hash yang dihasilkan dari dua atau lebih data dalam kumpulan data, salah memetakan tempat yang sama di tabel hash.
  • Rehashing dan Chaining adalah dua metode yang membantu Anda menghindari tabrakan hashing.

Artikel ini berasal dari website Guru99, dan kemudian diterjemahkan ke bahasa indonesia, baca artikel asli disini

Dalam tutorial tentang user MySQL sebelumnya, saya selalu menambahkan password dalam membuat user baru agar lebih aman, namun bagaimana sebenarnya MySQL menyimpan password tersebut? dalam tutorial kali ini saya akan membahas tentang fungsi hashing dan kaitannya dengan cara kerja sistem password MySQL dalam mengelola password user.

Mengenal Sistem Enkripsi Hashing

Dalam mengelola user, MySQL menyimpan password di dalam tabel user yang berada di dalam database mysql. Sampai pada tutorial ini, tentunya kita telah membuat beberapa user yang harusnya terdapat di dalam tabel ini, saya akan mencoba melihat password tiap-tiap user yang terdaftar dengan melihatnya dari tabel user ini.

Berikut query yang diperlukan untuk melihat password seluruh user dalam MySQL (masuklah sebagai root):

D:\MySQL\bin>mysql -uroot -pqwerty Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.27 MySQL Community Server (GPL) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> SHOW DATABASES; +--------------------+ | Database           | +--------------------+ | information_schema | | mahasiswa          | | mysql              | | performance_schema | | test               | | universitas        | +--------------------+ 6 rows in set (0.54 sec) mysql> USE mysql; Database changed mysql> SELECT user,password,host FROM user; +------------------+-------------------------------------------+-------------+ | user             | password                                  | host        | +------------------+-------------------------------------------+-------------+ | root             | *AA1420F182E88B9E5F874F6FBE7459291E8F4601 | localhost   | | ilkom_admin      | *7438236BE048F242AA18D2EE074296F078CD701A | localhost   | | mahasiswa        | *7438236BE048F242AA18D2EE074296F078CD701A | localhost   | | ekonomi_admin    | *7438236BE048F242AA18D2EE074296F078CD701A | localhost   | | tamu             |                                           | localhost   | | dosen_ilkom      | *7438236BE048F242AA18D2EE074296F078CD701A | localhost   | | sensus_mahasiswa | *7438236BE048F242AA18D2EE074296F078CD701A | 192.168.0.4 | | admin_kampus     | *7438236BE048F242AA18D2EE074296F078CD701A | %           | | ilkom_admin1     | *7438236BE048F242AA18D2EE074296F078CD701A | localhost   | +------------------+-------------------------------------------+-------------+ 13 rows in set (0.16 sec)

Dari query diatas, kita dapat melihat seluruh user, password, dan lokasi dari user yang terdaftar dalam MySQL. Namun seperti yang terlihat, isian dari password disimpan dalam angka yang acak. Ini adalah hasil fungsi hashing yang digunakan MySQL untuk menangani password.

Pengertian Fungsi Hashing MySQL

Dalam ilmu komputer, fungsi hashing biasanya dipelajari bersama-sama dengan kriptografi, yaitu ilmu tentang pembuatan pesan rahasia dan cara memecahkannya.

Secara sederhana, fungsi hashing adalah sebuah fungsi yang digunakan untuk mengacak sebuah kata menjadi kata lain yang tidak bermakna dan sedapat mungkin kata hasil hashing tidak bisa ditebak dari kata apa kata tersebut berasal.

Seluruh password user yang disimpan MySQL, terlebih dahulu diproses melalui fungsi hashing ini. Tujuannya, agar user yang tidak berhak, tidak dapat melihat password user lainnya.

Sepanjang tutorial MySQL dalam duniailkom ini, saya menggunakan password qwerty untuk user root. Tetapi seperti yang terlihat dari hasil diatas, MySQL bukan menyimpan kata qwerty, tetapi menyimpannya menjadi : “AA1420F182E88B9E5F874F6FBE7459291E8F4601”. Ini adalah hasil fungsi hashing dari kata qwerty yang disimpan sebagai password MySQL.

Mengenal Fungsi PASSWORD()

Untuk mendapatkan hasil hashing untuk password MySQL, kita bisa menggunakan fungsi PASSWORD yang disediakan MySQL. Berikut contoh query untuk penggunaan fungsi PASSWORD:

mysql> SELECT PASSWORD('qwerty'); +-------------------------------------------+ | PASSWORD('qwerty')                        | +-------------------------------------------+ | *AA1420F182E88B9E5F874F6FBE7459291E8F4601 | +-------------------------------------------+ 1 row in set (0.16 sec)

Seperti yang terlihat, MySQL meng-hashing kata qwerty menjadi karakter-karakter acak sepanjang 41 karakter. Hasil hashing inilah yang disimpan dalam tabel user diatas.

Lalu bagaimana cara MySQL membandingkan password saat user masuk ke sistem? MySQL cukup membandingkan isian password yang diinput penguna, memasukkannya ke dalam fungsi PASSWORD, dan membandingkan hasilnya dengan yang terdapat di tabel user. Jika hasil hashing nya bernilai sama, maka password tersebut benar dan pengguna berhak masuk ke dalam sistem.

Anda bisa mencoba kata-kata lainnya ke dalam fungsi PASSWORD ini, misalnya untuk user ilkom_admin, saya menggunakan password ‘r4hasia’.

mysql> SELECT PASSWORD('r4hasia'); +-------------------------------------------+ | PASSWORD('r4hasia')                       | +-------------------------------------------+ | *7438236BE048F242AA18D2EE074296F078CD701A | +-------------------------------------------+ 1 row in set (0.00 sec)

Fungsi hashing ini dirancang untuk tidak bisa ditebak dari apa kata password ‘yang asli’ berasal. Namun bagaimana jika terdapat user yang lupa passwordnya sendiri? Caranya adalah dengan membuat password baru untuk user tersebut, atau menghapus password tersebut. Langkah-langkah untuk merubah dan menghapus password user MySQL akan kita bahas pada tutorial selanjutnya.