Sistem pengurusan pangkalan data (DBMS) ialah sistem perisian yang direka untuk mengurus dan menyusun data secara berstruktur. Untuk mencapai matlamat ini, DBMS menggunakan seni bina khusus untuk menentukan cara data disimpan, diambil dan dikemas kini. Dalam DBMS, dua seni bina yang paling biasa digunakan ialah seni bina berpusat dan seni bina pelayan-pelanggan.
Seni bina sistem pengurusan pangkalan data berpusat (DBMS) bermakna semua data disimpan pada pelayan tunggal, dan semua pelanggan menyambung ke pelayan itu untuk mengakses dan memanipulasi data. Seni bina ini juga dipanggil seni bina monolitik. Salah satu kelebihan utama seni bina berpusat ialah kesederhanaannya - hanya ada satu pelayan untuk diuruskan, dan semua pelanggan berfungsi dengan data yang sama.
Namun, seni bina jenis ini juga mempunyai beberapa kelemahan. Salah satu kelemahan utama ialah kerana semua data disimpan pada pelayan tunggal, pelayan itu boleh menjadi hambatan apabila bilangan pelanggan dan/atau volum data meningkat. Selain itu, jika pelayan rosak atas sebarang sebab, semua pelanggan kehilangan akses kepada data.
Contoh DBMS menggunakan seni bina berpusat ialah SQLite, yang merupakan sumber terbuka, bebas, kebolehpercayaan tinggi, terbenam, enjin pangkalan data SQL domain awam berciri penuh. Seni bina SQLite adalah berdasarkan model pelayan pelanggan, tetapi keseluruhan pangkalan data terkandung dalam satu fail, menjadikannya sesuai untuk aplikasi bersaiz kecil hingga sederhana.
import sqlite3 #connect to the database conn = sqlite3.connect('example.db') #create a cursor object cursor = conn.cursor() #create a table cursor.execute('''CREATE TABLE employees (id INT PRIMARY KEY NOT NULL, name TEXT NOT NULL, salary REAL);''') #commit the changes conn.commit() #close the connection conn.close()
Dalam contoh di atas, kami mengimport modul sqlite3, menyambung ke pangkalan data bernama "example.db", mencipta objek kursor dan kemudian menggunakan kursor untuk mencipta jadual bernama "pekerja" dengan tiga lajur: "id ”, “ nama” dan “gaji”. Jadual ditakrifkan dengan jenis data INT untuk lajur "id" (juga ditetapkan sebagai kunci utama dan NOT NULL), jenis data TEKS untuk lajur "nama" dan jenis data SEBENAR untuk lajur "gaji". Selepas membuat jadual, kami menggunakan kaedah "komit" untuk menyimpan perubahan dan kaedah "tutup" untuk menutup sambungan.
Seni bina pelayan-pelanggan DBMS ialah seni bina di mana data disimpan pada pelayan pusat, tetapi pelanggan menyambung ke pelayan itu untuk mengakses dan memanipulasi data. Seni bina ini lebih kompleks daripada seni bina berpusat, tetapi ia menawarkan beberapa kelebihan berbanding yang terakhir.
Salah satu kelebihan utama seni bina pelayan-pelanggan ialah ia lebih berskala daripada seni bina berpusat. Apabila bilangan pelanggan dan/atau volum data meningkat, pelayan boleh dinaik taraf atau pelayan tambahan ditambah untuk mengendalikan beban. Ini membolehkan sistem terus berjalan lancar walaupun ia meningkat.
Satu lagi kelebihan seni bina pelayan pelanggan ialah ia lebih tahan terhadap kesalahan berbanding seni bina berpusat. Jika satu pelayan rosak, pelayan lain boleh mengambil alih tugasnya dan pelanggan masih boleh mengakses data. Ini menjadikan sistem kurang berkemungkinan mengalami masa henti, faktor kritikal dalam banyak persekitaran perniagaan.
Contoh sistem pengurusan pangkalan data yang menggunakan seni bina pelayan-pelanggan ialah MySQL, iaitu sistem pengurusan pangkalan data hubungan sumber terbuka. MySQL menggunakan seni bina berbilang benang, dan berbilang pelanggan boleh menyambung ke pelayan dan membuat permintaan pada masa yang sama. Pelayan memproses permintaan ini dan mengembalikan hasilnya kepada klien yang sesuai.
import mysql.connector #connect to the database cnx = mysql.connector.connect(user='username', password='password', host='hostname', database='database_name') #create a cursor object cursor = cnx.cursor() #create a table cursor.execute('''CREATE TABLE employees (id INT PRIMARY KEY NOT NULL, name VARCHAR(255) NOT NULL, salary DECIMAL(10,2));''') #commit the changes cnx.commit() #close the connection cnx.close()
Dalam contoh di atas, kami mengimport modul mysql.connector, menyambung ke pangkalan data menggunakan kaedah "sambung", dan memasukkan parameter yang diperlukan seperti nama pengguna, kata laluan, nama hos dan nama pangkalan data. Kami mencipta objek kursor dan menggunakan kursor untuk mencipta jadual yang dipanggil "pekerja" dengan tiga lajur: "id", "nama", dan "gaji".
Lajur "id" jadual ditakrifkan sebagai jenis data INT, yang juga ditetapkan sebagai kunci utama dan BUKAN NULL, lajur "nama" ditakrifkan sebagai jenis data VARCHAR dan lajur "gaji" ditakrifkan sebagai PERPULUHAN jenis data. Selepas membuat jadual, kami menggunakan kaedah "komit" untuk menyimpan perubahan dan kaedah "tutup" untuk menutup sambungan.
Sharding ialah kaedah mengedarkan pangkalan data yang besar merentasi berbilang pelayan. Pendekatan ini sering digunakan dalam seni bina pelayan pelanggan untuk meningkatkan prestasi dan kebolehskalaan. Data dibahagikan kepada ketulan yang lebih kecil dipanggil serpihan dan kemudian diedarkan merentasi berbilang pelayan.
Setiap serpihan ialah subset data bebas, dan pelanggan boleh menyambung ke mana-mana pelayan untuk mengakses data yang mereka perlukan. Pendekatan ini membolehkan kebolehskalaan mendatar, bermakna apabila jumlah data atau bilangan pelanggan bertambah, lebih banyak pelayan boleh ditambah pada sistem untuk mengendalikan beban.
Replikasi ialah kaedah mengekalkan berbilang salinan pangkalan data pada pelayan yang berbeza. Pendekatan ini sering digunakan dalam seni bina pelayan-pelanggan untuk meningkatkan toleransi kesalahan dan prestasi. Terdapat beberapa jenis replikasi, termasuk replikasi tuan-hamba, di mana satu pelayan bertindak sebagai tuan dan pelayan lain bertindak sebagai hamba, dan semua perubahan yang dibuat pada tuan direplikasi kepada hamba.
Satu lagi jenis replikasi dipanggil replikasi master-master, di mana berbilang pelayan boleh bertindak sebagai tuan dan hamba, membenarkan data ditulis ke mana-mana pelayan dan perubahan direplikasi kepada semua pelayan lain.
Caching ialah kaedah menyimpan data yang kerap diakses dalam ingatan untuk meningkatkan kelajuan akses. Pendekatan ini sering digunakan dalam seni bina berpusat dan pelayan pelanggan untuk meningkatkan prestasi. Apabila pelanggan meminta data daripada pelayan, pelayan terlebih dahulu menyemak sama ada data sudah ada dalam cache.
Jika ya, pelayan mengembalikan data daripada cache, yang lebih pantas daripada mendapatkan semula data daripada stor data utama. Cache juga boleh digunakan untuk menyimpan sementara data yang akan ditulis ke stor data utama, yang membantu mengurangkan beban pada pelayan dan meningkatkan prestasi tulis.
Pengimbangan beban ialah kaedah mengagihkan beban antara berbilang pelayan. Pendekatan ini sering digunakan dalam seni bina pelayan-pelanggan untuk meningkatkan prestasi dan kebolehskalaan. Pengimbang beban biasanya diletakkan di hadapan sekumpulan pelayan dan bertanggungjawab untuk mengedarkan permintaan masuk ke pelayan yang berbeza.
Ini boleh dicapai dalam pelbagai cara, seperti tinjauan pendapat atau bilangan sambungan minimum, dan matlamatnya adalah untuk memastikan semua pelayan digunakan secekap mungkin. Pengimbangan beban juga membantu meningkatkan toleransi kesalahan kerana jika satu pelayan rosak, pengimbang beban boleh mengubah hala lalu lintas ke pelayan lain untuk memastikan sistem berjalan lancar.
Ini hanyalah beberapa contoh bagaimana teknik dan kaedah yang berbeza boleh digunakan untuk meningkatkan prestasi, kebolehskalaan dan ketersediaan sistem pangkalan data. Adalah penting untuk diingat bahawa seni bina sistem pangkalan data adalah penting untuk memastikan ia memenuhi keperluan prestasi dan kebolehskalaan sistem. Mengenal pasti seni bina yang betul dan melaksanakannya mengikut amalan terbaik akan menjadi kritikal untuk kejayaan DBMS anda.
Kedua-dua seni bina berpusat dan pelayan pelanggan DBMS mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihan seni bina akan bergantung pada keperluan khusus aplikasi. Seni bina berpusat adalah lebih mudah dan lebih mudah untuk diurus, tetapi ia boleh menjadi halangan apabila sistem berkembang dalam saiz. Seni bina pelayan pelanggan adalah lebih kompleks, tetapi ia lebih berskala dan bertolak ansur dengan kesalahan, menjadikannya pilihan yang lebih baik untuk sistem yang lebih besar dan lebih kritikal.
Bercakap tentang contoh kod, DBMS tertentu juga mempunyai sintaks dan strukturnya sendiri, yang tidak betul-betul sama, tetapi ia boleh memberi anda pemahaman umum tentang cara menyambung dan mencipta jadual dalam DBMS. Sentiasa rujuk dokumentasi untuk DBMS khusus yang anda gunakan dan uji kod anda sebelum menggunakannya ke persekitaran pengeluaran.
Atas ialah kandungan terperinci Seni bina berpusat dan pelayan pelanggan DBMS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!