CodeGym/Java Course/All lectures for ID purposes/Pengetahuan lanjutan tentang database

Pengetahuan lanjutan tentang database

Tersedia

1.1 Prinsip konstruksi kuliah

Anda dan saya mulai berkenalan dengan database dari bawah . Ini adalah fitur dari pendekatan pribadi saya untuk mengajar orang. Saat berbicara tentang topik baru, pertama-tama saya selalu memberi tahu Anda cara menggunakan alat tertentu dalam praktik. Dan ketika saya tahu bahwa seseorang tahu bagaimana menggunakannya, saya mulai menceritakan bagaimana semuanya bekerja.

Ada beberapa alasan untuk pendekatan ini, tetapi yang utama adalah sumber daya yang paling berharga dan paling hilang dalam proses pembelajaran adalah motivasi siswa .

Pendekatan ini sedikit berbeda dari yang biasa kita lakukan, yang digunakan di sekolah dan universitas. Tapi semuanya jelas: ketika Anda belajar di sekolah atau universitas, Anda memiliki prioritas yang benar: belajar adalah hal terpenting dalam hidup saat ini.

Jika Anda terlibat dalam pendidikan mandiri di masa dewasa, maka seringkali Anda sudah harus menggabungkan studi Anda dengan pekerjaan, pekerjaan rumah tangga, mengasuh anak atau orang tua lanjut usia. Dan di sini sering belajar tidak akan menjadi prioritas pertama.

Ini semua tentang prioritas. Bahkan ada konsep seperti itu di dunia startup - Gagal Cepat, gagal secepat mungkin . Kedengarannya aneh, tetapi sebenarnya sangat masuk akal: tugas sebuah startup adalah memeriksa dengan cepat apakah hipotesisnya benar. Dan jika itu tidak benar, maka Anda tidak perlu menghabiskan waktu bertahun-tahun untuk itu, lebih baik pahami sedini mungkin bahwa tidak ada permintaan untuk layanan atau produk tertentu.

Saat mengajar Java dan SQL, saya menggunakan pendekatan yang sama: Saya memberi Anda kesempatan untuk memahami sedini mungkin apakah Anda terburu-buru dari pemrograman atau tidak . Jika Anda menyukai pemrograman, dan Anda sendiri dapat mengetahui cara bekerja dengan loop dan array, maka dengan bantuan mentor dan program yang dirancang dengan baik, Anda memiliki setiap kesempatan untuk menyelesaikan studi dan mencari pekerjaan.

Tetapi fakta lain yang tidak kalah pentingnya: dalam beberapa hari libur, Anda dapat memahami bahwa pemrograman bukan untuk Anda. Anda mungkin tidak tertarik, dan tidak apa-apa . Jadi, Anda tidak perlu menghabiskan waktu berbulan-bulan untuk itu.

Hanya 40% lulusan yang bekerja di bidang khusus yang mereka terima di universitas. Coba pikirkan, orang belajar selama 5-6 tahun, dan 60% dari mereka memutuskan untuk tidak bekerja di bidang keahlian mereka. Ya, sebagian ilmu yang didapat masih digunakan, tapi sekitar setengahnya tidak.

Inilah nilai dari konsep Fail Fast - memahami sedini mungkin bahwa profesi tertentu, orang tertentu atau hobi tertentu tidak cocok untuk Anda. Dan jangan buang waktu dan energi Anda untuk mereka. Dalam jangka panjang, ini adalah strategi yang sangat bagus.

1.2 SQL dan semua, semua, semua

Kita sudah selesai dengan pengenalan filosofis, mari kita kembali belajar SQL.

Bahasa SQL dan DBMS adalah hal yang sedikit berbeda. Bahasa SQL itu sendiri adalah semacam standar yang menjelaskan apa yang dapat ditulis dalam query SQL ke database. DBMS sudah merupakan implementasi dari standar ini. Beberapa DBMS mengimplementasikan beberapa fungsi standar, yang kedua - lainnya, dan seterusnya.

Semakin mahal DBMS, semakin banyak fitur standar yang diimplementasikannya. Juga, banyak DBMS sering mengimplementasikan fitur unik mereka sendiri di luar standar SQL. Terkadang hal ini menyebabkan masalah portabilitas: kueri SQL yang ditulis untuk satu DBMS mungkin tidak berfungsi dengan baik untuk DBMS lainnya.

Jawa juga memiliki situasi serupa. Jika program Java ditulis di bawah Windows, maka program tersebut tidak akan bekerja secara normal di Linux. Untuk mengatasi masalah ini, Java memperkenalkan kelas khusus yang memiliki implementasi berbeda untuk sistem operasi yang berbeda. Contoh: kelas Path yang memiliki implementasi WindowsPath, LinuxPath, dll.

Bagian kedua dari masalah diselesaikan dengan bantuan versi. Semua inovasi yang berhasil dari berbagai bahasa atau DBMS ditambahkan ke standar JDK atau SQL baru. Anda sudah tahu bahwa ada berbagai versi JDK, dan semakin baru versinya, semakin banyak fitur yang dimilikinya. Itu sama dengan SQL.

Dalam bahasa SQL, ada beberapa versi standarnya, yang diberi nama berdasarkan tahun:

  • SQL:1999
  • SQL:2003
  • SQL:2006
  • SQL:2011
  • SQL:2016
  • SQL:2019

Kabar baik : kita tidak akan mempelajari standar ini. Pertama, butuh waktu bertahun-tahun untuk mempelajari dan menguasai semua ini. Dan kedua, standar ini seperti versi Android: hanya 5-10 tahun setelah rilis, standar menjadi tersebar luas.

Dalam basis data dengan jumlah data yang besar, orang membutuhkan keandalan dan stabilitas. “Berhasil, jangan sentuh” adalah moto setiap orang yang bekerja dengan database. Dan transisi ke versi baru database dilakukan setiap 5 tahun, ketika semua keuntungan dari solusi semacam itu sudah jelas.

1.3 Di luar tanda kurung

Seperti yang saya katakan di atas, dibutuhkan waktu bertahun-tahun untuk menjadi profesional database. Seorang profesional mengetahui banyak hal yang tidak akan kita pelajari. Tapi saya akan berbicara sedikit tentang apa lagi yang ada di database.

Hampir semua database modern mendukung:

1 Bahasa Prosedural (PL)

RDBMS mendukung kemampuan untuk menulis prosedur dan fungsi yang dijalankan di SQL Server dan dapat melakukan banyak hal dengan data selama kueri. Misalnya, setelah saya menulis kueri PL SQL ke server Oracle, yang sebagai tanggapan atas kueri tersebut menghasilkan ... halaman HTML dengan data. Ya kamu bisa.

2 Peristiwa (Pemicu)

Semua DBMS modern mendukung mekanisme kejadian, yang disebut pemicu dalam bahasa SQL. Pemicu terjadi sebagai respons terhadap beberapa tindakan. Misalnya, Anda dapat mencegat semua upaya untuk menulis ke database dan menambahkan waktu yang tepat untuk perubahannya ke baris baru.

3 Pencatatan

Basis data modern berusaha super cepat, sehingga sering kali semua perubahan (baris baru, baris yang dihapus, baris yang diubah) pertama kali ditulis ke file khusus yang disebut log. Dan hanya setelah beberapa waktu, server SQL akan menggabungkan catatan ini dengan database utama.

Dalam beberapa hal, ini mirip dengan perilaku Pengumpul Sampah di Jawa: ini juga hanya menandai objek sebagai yang dihapus pada awalnya, dan melakukan pembersihan dan pengoptimalan memori selama waktu diam.

4 Plugin

Ke DBMS, serta banyak program, Anda dapat menulis plugin Anda sendiri. Plugin semacam itu memungkinkan Anda untuk menambahkan tipe data unik, fungsi untuk bekerja dengannya, atau mengubah perilaku standar DBMS. Ini sangat berguna ketika Anda bekerja dengan database open source dan ada beberapa bug.

5 Pekerjaan terdistribusi (cluster)

Skenario tipikal untuk server SQL modern adalah sekelompok beberapa server. Opsi paling sederhana adalah ketika data ditulis ke satu server dan dibaca dari sekelompok server. Dalam hal ini, Anda dapat mengonfigurasi berbagai skenario untuk sinkronisasi database antara server SQL.

6 Pecahan

Ketika ada banyak data, mereka mulai dipecah menjadi database yang berbeda. Hingga fakta bahwa satu tabel dapat disimpan sebagian di database yang berbeda.

Sharding bisa vertikal dan horizontal. Pecahan vertikal berarti bahwa tabel seolah-olah dipotong oleh garis vertikal, sedangkan pecahan horizontal dipotong menjadi garis horizontal.

Misalnya, kami memutuskan untuk membagi semua data dalam tabel berdasarkan tahun: untuk 2019 - satu tabel, untuk data tahun 2020 - yang kedua, dan seterusnya. Ini akan menjadi sharding horizontal.

7 mendorong yang tidak mendorong

Pada tahap tertentu dalam pengembangan database, semakin banyak logika bisnis yang ditambahkan ke dalamnya. Semuanya dimulai dengan prosedur, fungsi, pembuatan halaman web oleh server, dan diakhiri dengan penambahan dukungan untuk hampir semua bahasa populer ke DBMS: Python, JavaScript, dan bahkan Java dan C ++.

Kedengarannya keren sampai Anda mulai membahas detailnya: apakah Anda benar-benar ingin menulis logika bisnis aplikasi web Anda di Java, yang akan dijalankan di dalam server SQL, di mana tidak ada JDK, pustaka java, kerangka kerja, sedikit memori, dan banyak larangan lainnya?

Komentar
  • Populer
  • Baru
  • Lama
Anda harus login untuk memberikan komentar
Halaman ini belum memiliki komentar