CodeGym/Kursus Java/All lectures for MS purposes/Pengetahuan lanjutan tentang pangkalan data

Pengetahuan lanjutan tentang pangkalan data

Tersedia

1.1 Prinsip pembinaan kuliah

Anda dan saya memulakan perkenalan kami dengan pangkalan data dari bawah . Ini adalah ciri pendekatan peribadi saya untuk mengajar orang. Apabila bercakap tentang topik baharu, saya sentiasa memberitahu anda cara menggunakan alatan tertentu dalam amalan. Dan apabila saya tahu bahawa seseorang tahu cara menggunakannya, saya mula memberitahu bagaimana semuanya berfungsi.

Terdapat beberapa sebab untuk pendekatan ini, tetapi yang utama ialah sumber yang paling berharga dan paling hilang dalam proses pembelajaran ialah motivasi pelajar .

Pendekatan ini sedikit berbeza daripada yang biasa kita gunakan, yang digunakan di sekolah dan universiti. Tetapi semuanya jelas: apabila anda belajar di sekolah atau universiti, anda mempunyai keutamaan yang betul: belajar adalah perkara yang paling penting dalam hidup pada masa ini.

Jika anda terlibat dalam pendidikan diri pada masa dewasa, maka selalunya anda sudah perlu menggabungkan pengajian anda dengan kerja, kerja rumah, menjaga anak atau ibu bapa yang sudah tua. Dan di sini selalunya belajar tidak akan menjadi keutamaan pertama.

Ini semua tentang keutamaan. Malah terdapat konsep sedemikian dalam dunia pemula - Gagal Cepat, gagal secepat mungkin . Bunyinya pelik, tetapi sebenarnya ia sangat masuk akal: tugas permulaan adalah dengan cepat menyemak sama ada hipotesisnya betul. Dan jika ia tidak benar, maka anda tidak perlu menghabiskan bertahun-tahun hidup anda di atasnya, adalah lebih baik untuk memahami seawal mungkin bahawa tidak ada permintaan untuk perkhidmatan atau produk tertentu.

Semasa mengajar Java dan SQL, saya menggunakan pendekatan yang sama: Saya memberi anda peluang untuk memahami seawal mungkin sama ada anda tergesa-gesa daripada pengaturcaraan atau tidak . Jika anda suka pengaturcaraan, dan anda sendiri dapat memikirkan cara bekerja dengan gelung dan tatasusunan, maka dengan bantuan mentor dan program yang direka dengan baik, anda mempunyai setiap peluang untuk menyelesaikan pengajian anda dan mencari pekerjaan.

Tetapi fakta lain tidak kurang penting: dalam beberapa hari cuti, anda boleh memahami bahawa pengaturcaraan bukan untuk anda. Anda mungkin tidak berminat dengannya, dan tidak mengapa . Jadi, anda tidak perlu menghabiskan berbulan-bulan hidup anda untuk itu.

Hanya 40% daripada graduan bekerja dalam kepakaran yang mereka terima di universiti. Fikirkanlah, orang belajar selama 5-6 tahun, dan 60% daripada mereka memutuskan untuk tidak bekerja dalam kepakaran mereka. Ya, sebahagian daripada ilmu yang diperoleh masih digunakan, tetapi kira-kira separuh daripadanya tidak.

Inilah nilai konsep Fail Fast - untuk memahami seawal mungkin bahawa profesion tertentu, orang tertentu atau hobi tertentu tidak sesuai untuk anda. Dan jangan buang masa dan tenaga anda untuk mereka. Dalam jangka panjang, ini adalah strategi yang sangat baik.

1.2 SQL dan semua, semua, semua

Kita telah selesai dengan pengenalan falsafah, mari kita kembali belajar SQL.

Bahasa SQL dan DBMS adalah perkara yang sedikit berbeza. Bahasa SQL itu sendiri adalah sejenis standard yang menerangkan perkara yang boleh ditulis dalam pertanyaan SQL ke pangkalan data. DBMS sudah pun melaksanakan piawaian ini. Sesetengah DBMS melaksanakan beberapa fungsi standard, yang kedua - yang lain, dan seterusnya.

Lebih mahal DBMS, lebih banyak ciri standard yang dilaksanakannya. Selain itu, banyak DBMS sering melaksanakan ciri unik mereka sendiri di luar piawaian SQL. Kadangkala ini membawa kepada isu mudah alih: Pertanyaan SQL yang ditulis untuk satu DBMS mungkin tidak berfungsi dengan baik untuk yang lain.

Java juga mempunyai situasi yang sama. Jika program Java ditulis di bawah Windows, maka ia tidak akan berfungsi seperti biasa pada Linux. Untuk menyelesaikan masalah ini, Java memperkenalkan kelas khas yang mempunyai pelaksanaan berbeza untuk sistem pengendalian yang berbeza. Contoh: Kelas laluan yang mempunyai pelaksanaan WindowsPath, LinuxPath, dsb.

Bahagian kedua masalah diselesaikan dengan bantuan versi. Semua inovasi yang berjaya daripada bahasa atau DBMS yang berbeza ditambahkan pada standard JDK atau SQL baharu. Anda sudah tahu bahawa terdapat versi JDK yang berbeza, dan semakin baharu versi tersebut, semakin banyak ciri yang dimilikinya. Ia sama dengan SQL.

Dalam bahasa SQL, terdapat beberapa versi standardnya, yang dinamakan mengikut tahun:

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

Berita baik : kami tidak akan mengkaji piawaian ini. Pertama, ia akan mengambil masa bertahun-tahun untuk mempelajari dan menguasai semua ini. Dan kedua, piawaian ini adalah seperti versi Android: hanya 5-10 tahun selepas keluaran, piawaian menjadi meluas secara besar-besaran.

Dalam pangkalan data dengan jumlah data yang besar, orang memerlukan kebolehpercayaan dan kestabilan. "Ia berfungsi, jangan sentuh" ​​adalah moto setiap orang yang bekerja dengan pangkalan data. Dan peralihan kepada versi baharu pangkalan data dilakukan setiap 5 tahun, apabila semua kelebihan penyelesaian sedemikian sudah jelas.

1.3 Di luar kurungan

Seperti yang saya katakan di atas, ia mengambil masa bertahun-tahun untuk menjadi profesional pangkalan data. Seorang profesional tahu banyak perkara yang kita tidak akan belajar. Tetapi saya akan bercakap sedikit tentang apa lagi yang ada dalam pangkalan data.

Hampir semua pangkalan data moden menyokong:

1 Bahasa Prosedur (PL)

RDBMS menyokong keupayaan untuk menulis prosedur dan fungsi yang dijalankan pada SQL Server dan boleh melakukan banyak perkara dengan data semasa pertanyaan. Sebagai contoh, sebaik sahaja saya menulis pertanyaan PL SQL ke pelayan Oracle, yang sebagai tindak balas kepada pertanyaan itu menghasilkan ... halaman HTML dengan data. Ya awak boleh.

2 Peristiwa (Pencetus)

Semua DBMS moden menyokong mekanisme peristiwa, yang dipanggil pencetus dalam bahasa SQL. Pencetus berlaku sebagai tindak balas kepada beberapa tindakan. Sebagai contoh, anda boleh memintas semua percubaan untuk menulis ke pangkalan data dan menambah masa yang tepat bagi perubahan mereka kepada baris baharu.

3 Pembalakan

Pangkalan data moden cuba menjadi sangat pantas, oleh itu selalunya semua perubahan (baris baharu, baris yang dipadam, baris yang ditukar) mula-mula ditulis pada fail khas yang dipanggil log. Dan hanya selepas beberapa ketika, pelayan SQL akan menggabungkan rekod ini dengan pangkalan data utama.

Dalam beberapa cara, ini serupa dengan gelagat Pengumpul Sampah di Jawa: ia juga hanya menandakan objek sebagai dipadamkan pada mulanya, dan melakukan pembersihan dan pengoptimuman memori semasa masa terbiar.

4 Pemalam

Kepada DBMS, serta banyak program, anda boleh menulis pemalam anda sendiri. Pemalam sedemikian membolehkan anda menambah jenis data unik, fungsi untuk bekerja dengannya, atau menukar tingkah laku standard DBMS. Ini amat berguna apabila anda bekerja dengan pangkalan data sumber terbuka dan terdapat beberapa pepijat.

5 Kerja teragih (kelompok)

Senario tipikal untuk pelayan SQL moden ialah sekumpulan beberapa pelayan. Pilihan paling mudah ialah apabila data ditulis kepada satu pelayan dan dibaca daripada sekumpulan pelayan. Dalam kes ini, anda boleh mengkonfigurasi pelbagai senario untuk penyegerakan pangkalan data antara pelayan SQL.

6 Sharding

Apabila terdapat banyak data, mereka mula dibahagikan kepada pangkalan data yang berbeza. Sehingga fakta bahawa satu jadual boleh disimpan dalam bahagian dalam pangkalan data yang berbeza.

Sharding boleh menegak dan mendatar. Sharding menegak bermaksud bahawa jadual, seolah-olah, dipotong dengan garis menegak, manakala sharding mendatar dipotong menjadi garisan mendatar.

Sebagai contoh, kami memutuskan untuk membahagikan semua data dalam jadual mengikut tahun: untuk 2019 - satu jadual, untuk data 2020 - yang kedua, dan seterusnya. Ini akan menjadi serpihan mendatar.

7 tolak bukan tolak

Pada peringkat tertentu dalam pembangunan pangkalan data, semakin banyak logik perniagaan mula ditambah kepada mereka. Semuanya bermula dengan prosedur, fungsi, menjana halaman web oleh pelayan, dan berakhir dengan penambahan sokongan untuk hampir semua bahasa popular kepada DBMS: Python, JavaScript, dan juga Java dan C ++.

Kedengaran sejuk sehingga anda mula mendapatkan butiran: adakah anda benar-benar mahu menulis logik perniagaan aplikasi web anda dalam Java, yang akan dilaksanakan di dalam pelayan SQL, di mana tiada JDK, perpustakaan java, rangka kerja, memori yang sedikit dan banyak sekatan lain?

Komen
  • Popular
  • Baru
  • Tua
Anda mesti log masuk untuk meninggalkan ulasan
Halaman ini tidak mempunyai sebarang ulasan lagi