Sejarah pangkalan data: pangkalan data dan DBMS
Suatu masa dahulu di sebuah negara Amerika, di sebuah syarikat IT yang besar, tugas untuk menyimpan jumlah data yang sangat besar pernah timbul. Apa yang sukar tentang itu, anda bertanya? Lagipun, syarikat besar mempunyai wang, yang bermaksud anda boleh membeli lebih banyak cakera keras - dan itu sahaja.
Idea yang bagus, tetapi seperti yang mereka katakan, syaitan ada dalam butirannya. Sejumlah besar data bukan sahaja perlu disimpan, tetapi juga diubah, dan pelbagai sampel dibuat daripadanya. Selain itu, anda perlu memilih data yang berbeza dari tempat yang berbeza, dan juga melakukannya dengan cepat dan cantik.
Secara umum, semuanya adalah seperti biasa: pelanggan mahukan sesuatu yang tidak wujud, dan keputusan untuk membeli cakera keras tidak berjaya kali ini.
![](https://cdn.codegym.cc/images/article/ffb700f7-60b3-4cfc-a274-a1a35a6b1f31/512.jpeg)
Oleh itu, pengaturcara syarikat IT ini mengetepikan belanjawan yang lebih besar untuk diri mereka sendiri, menjalankan kerja penyelidikan, dan apabila belanjawan itu tamat, mereka membentangkan pembentangan di mana ia dicadangkan untuk menyimpan data dalam bentuk Pangkalan Data. Dalam pangkalan data, semua data disimpan dalam jadual, dan setiap jadual disimpan dalam fail berasingan. Semua yang bijak adalah mudah dan semuanya berfungsi.
Tetapi pembentangan seperti itu tidak sesuai dengan pelanggan, dan pembicaraan berterusan:
![](https://cdn.codegym.cc/images/article/a7850c1c-b3ee-403d-8453-dcc511174b7b/512.jpeg)
- Di mana wang itu, Lebowski?
- Mengapa Pangkalan Data lebih baik daripada penyimpanan data lama yang baik dalam bentuk satu set fail?
- Kami memerlukan penyelesaian yang sangat baik, bukan itu sahaja!
- Dan ia mengambil keseluruhan bajet?
Senyap sunyi di dalam bilik pembentangan. Walau bagaimanapun, tanpa diduga untuk semua orang, keadaan itu telah diselamatkan oleh pemaju junior, yang mengatakan bahawa program khas dilampirkan pada pangkalan data - DBMS ( Sistem Pengurusan Pangkalan Data), yang boleh:
- Cipta, ubah suai dan padam pangkalan data
- Buat perubahan pada pangkalan data, iaitu: tambah rekod baharu, padam rekod lama dan ubahnya
- Dan juga sangat pantas untuk melaksanakan pelbagai pilihan mana-mana data
Dan pengaturcara malah sedang menyelesaikan reka bentuk bahasa super khas untuk menapis data - SQL . Dan mereka mengatakan bahawa dengan bantuan bahasa SQL ajaib ini, mana-mana pengurus boleh dengan mudah menapis dan mendapatkan sebarang data daripada pangkalan data.
![](https://cdn.codegym.cc/images/article/216e75d9-299a-44a8-9e0a-0cc1d26717a8/512.jpeg)
Pengaturcara masih belum selesai mereka bentuk bahasa lagi , jadi tidak ada perkataan tentang SQL dan DBMS dalam pembentangan.
Untuk kegembiraan semua orang, pelanggan kagum dengan penjelasan yang mereka dengar, menyatakan beberapa idea yang bercanggah tentang bagaimana bahasa baharu ini sepatutnya, malah memperuntukkan belanjawan untuk penyempurnaannya.
Pengurus dan Pengarah Teknikal mula mengucapkan tahniah kepada satu sama lain atas kejayaan menyiapkan projek itu, dan segera pergi untuk meraikan acara ini, tidak menyedari sepenuhnya bahawa pengaturcara junior dalam keseluruhan cerita ini adalah orang yang paling penting ...
DBMS dan MySQL yang popular
Pada masa ini (musim panas 2022) terdapat beratus-ratus DBMS yang popular, jadi berguna untuk anda mengetahui beberapa daripadanya. Apa yang harus saya mulakan dengan…
Di satu pihak, pasaran DBMS perusahaan telah wujud selama beberapa dekad. Oleh itu, ia mempunyai kedua-dua pemimpin yang diiktiraf dan pendatang baru yang menjanjikan. Sebaliknya, keperluan perniagaan sentiasa berkembang, jadi pendekatan untuk membina infrastruktur IT syarikat sentiasa berubah.
Kini anda tidak akan mengejutkan sesiapa sahaja dengan pangkalan data daripada kumpulan beberapa ribu pelayan dengan perpecahan mendatar dan menegak, urus niaga teragih, serta jabatan IT daripada beberapa dozen pentadbir sistem yang pergi dan menukar pemacu keras pelayan mengikut jadual yang telah ditetapkan.
Secara umum, jika anda bekerja untuk sebuah syarikat besar, kemungkinan besar mereka membayar banyak wang untuk pangkalan data mereka, dan menggunakan sesuatu seperti ini:
Pangkalan Data Oracle
![](https://cdn.codegym.cc/images/article/8a53ac38-0a59-466a-9597-f3e6bf618a43/800.jpeg)
Oracle mengeluarkan pangkalan data pertamanya pada tahun 1979 (43 tahun yang lalu). Dia segera menyandang nama Oracle 2.0 untuk meyakinkan pelanggan bahawa produk itu bukan baru, tetapi telah diuji masa.
Versi pangkalan data semasa ialah Oracle 21 c , di mana huruf c adalah daripada perkataan cloud , yang, seolah-olah, membayangkan bahawa Oracle mengikuti perkembangan masa dan penyelesaiannya serasi dengan semua teknologi awan.
Pelayan Microsoft SQL
![](https://cdn.codegym.cc/images/article/532a4cde-2214-4bec-96db-bff84eb41af6/512.jpeg)
Microsoft membuat banyak wang dengan menjual bukan Windows, tetapi penyelesaian pelayan untuk perniagaan sederhana dan besar. Microsoft Office, Microsoft SharePoint, Microsoft Server, dll. Dan, sudah tentu, semua ini memerlukan pangkalan data yang baik. Oleh itu, banyak syarikat, menggunakan produk dan penyelesaian Microsoft, terpaksa menggunakan pangkalan datanya.
DBMS Microsoft hanya dipanggil SQL Server , jadi jika anda mendengar soalan "Adakah anda bekerja dengan SQL Server?" semasa temu duga, maka ketahui bahawa ini bukan DBMS abstrak, tetapi Microsoft SQL Server.
PostgreSQL
![](https://cdn.codegym.cc/images/article/b31cfc41-69af-488e-8079-5433fa502551/512.jpeg)
Ini adalah DBMS percuma yang baik, yang sering digunakan bukan sahaja oleh syarikat kecil dan sederhana, tetapi juga oleh syarikat besar. Ini adalah salah satu pangkalan data yang Amazon AWS tawarkan sebagai DB-as-service.
MySQL
![](https://cdn.codegym.cc/images/article/0ea0a78a-41d2-43c3-8cd0-b4c72d4c142a/512.jpeg)
MySQL ialah pangkalan data percuma dan sumber terbuka yang sangat popular. Ia didokumentasikan dengan baik, berfungsi dengan pantas dan menyokong pelbagai ciri. Sehingga kini, versi ke-8 DBMS ini tersedia.
Pada tahun 2008, ia dibeli oleh Sun, yang dibeli oleh Oracle pada tahun 2009. Dan ia hanya memberi manfaat kepadanya - produk itu sentiasa berkembang dan bertambah baik.
Kami akan belajar cara bekerja dengan pangkalan data menggunakan MySQL Community Server 8.0 sebagai contoh .
Jadual dalam pangkalan data: lajur dan lajur
DBMS yang berbeza boleh menyimpan data dalam format yang berbeza, jadi kami akan mengambil pilihan yang paling mudah dan paling klasik - MySQL DBMS.
Dan segera persoalannya ialah: bagaimana untuk menyimpan, sebagai contoh, sebarang dokumen perakaunan? Pilihan paling mudah ialah menyimpan setiap dokumen sebagai fail Excel. Kemudian semua dokumen berkaitan boleh disimpan dalam satu folder. Beginilah cara MySQL berfungsi.
Satu lagi analogi: dalam bahasa Java, anda mempunyai kelas dan pakej dalam projek anda , tetapi pada masa yang sama, kelas dan pakej diwakili pada cakera sebagai fail dan folder . Sesuatu yang serupa wujud dalam MySQL.
Data MySQL disimpan dalam bentuk jadual , yang digabungkan menjadi pangkalan data , tetapi pada masa yang sama, jadual dan pangkalan data dibentangkan pada cakera sebagai fail dan folder . Pangkalan data ialah folder, dan fail di dalamnya adalah jadual.
Setiap jadual terdiri daripada lajur dan baris . Contoh:
![](https://cdn.codegym.cc/images/article/ef9c797e-174d-4b27-a109-ff88a837ac5a/512.jpeg)
Penting! Setiap lajur mempunyai nama dan jenis data , jadi semua sel dalam lajur yang sama mesti menyimpan nilai jenis yang sama .
Analogi boleh dibuat antara jadual dalam MySQL dan kelas dalam Java. Jadual ialah kelas, jadual, seperti kelas, mempunyai nama yang unik. Lajur jadual ialah medan kelas; lajur, seperti medan, mempunyai nama dan jenis yang unik. Baris jadual ialah contoh kelas dalam Java.
Kelas boleh wujud tanpa objek, dan jadual boleh wujud tanpa baris. Di Java, anda boleh mencipta objek baharu, dan dalam MySQL, anda boleh menambah baris baharu pada jadual. Anda boleh menukar nilai medan objek, dan dalam MySQL anda boleh menukar nilai berturut-turut.
Adalah lebih tepat untuk mengatakan bahawa jadual bukan kelas, tetapi koleksi objek kelas tertentu. Jika dalam MySQL kami mempunyai jadual Pekerja dengan data mengenai pekerja, maka di Jawa kami akan menggunakan koleksi ArrayList
Dan, tentu saja, persoalan segera timbul: bagaimana untuk mendapatkan data tertentu dari koleksi ini?