JavaRush /Java Blog /Random-ID /Kami menganalisis database dan bahasa SQL - "Proyek Java ...

Kami menganalisis database dan bahasa SQL - "Proyek Java dari A hingga Z"

Dipublikasikan di grup Random-ID
Sebuah artikel dari seri tentang membuat proyek Java. Tujuannya adalah menganalisis teknologi utama, dan hasilnya adalah menulis bot telegram. Bagian pengantar ada di sini . Aloha, insinyur perangkat lunak. Hari ini kita berbicara tentang database dan bahasa SQL. “Proyek Java dari A hingga Z”: analisis database dan bahasa SQL - 1Untuk siapa artikel ini ditujukan? Ya untuk semua orang yang tertarik. Ada yang bisa memulai perjalanannya dengan artikel ini, ada pula yang bisa menyegarkan ingatannya akan fakta menarik. Bagian ini murni bersifat teoretis. Sebelum kami memberi tahu Anda apa itu database dan sintaks SQL, kami perlu memahami dan menentukan mengapa kami akan mempelajarinya. Pada tahap ini, kita HANYA akan berbicara tentang database SQL: Kami tidak akan membahas NoSQL dalam rangkaian artikel ini.

Basis Data: apa itu

“Proyek Java dari A hingga Z”: analisis database dan bahasa SQL - 2Basis data (selanjutnya disebut DB) adalah tempat penyimpanan data terstruktur , yang dapat diperoleh dengan menggunakan bahasa query. Basis data tidak hanya dapat menyimpan, tetapi juga memproses dan mengubah informasi dalam volume besar. Sebagai catatan: coba ubah dengan cepat sekumpulan nilai di Excel berdasarkan beberapa kriteria. Pada prinsipnya, tidak ada yang rumit. Tidak seperti di dunia nyata kita yang non-digital. Misalnya mengganti nama jalur, jalan, kota. Jika semuanya virtual dan dimasukkan ke dalam database, itu akan menjadi normal, itu akan menjadi beberapa hal sepele. Saat ini, banyak media penyimpanan yang bermasalah karena tidak dapat berubah secara otomatis. Dalam konteks ini, SQL untuk database adalah bahasa yang dipahami dan direspon oleh database. Katakanlah, mengganti nama kota tidaklah sulit; mengganti nama Dnepropetrovsk menjadi Dnipro akan terlihat seperti ini:
UPDATE city SET name = “Днипро” WHERE id = 1231;
Semua permintaan selanjutnya ke sistem pasti sudah menghasilkan nama yang kita butuhkan.

Mengapa database dibutuhkan?

Seperti yang sudah saya katakan, dengan menggunakan database Anda dapat menyimpan data. Tapi data apa ini? Untuk memahaminya dengan menggunakan contoh kehidupan nyata, kita dapat membicarakan beberapa penerapannya. Misalnya saja tentang bot telegram yang sama. Kami ingin mengetahui berapa banyak orang yang menggunakan bot tersebut. Bagaimana hal ini dapat diterapkan? Dalam aplikasi Java biasa, Anda dapat membuat banyak elemen unik - Satu Set, yang akan menyimpan nama panggilan atau ID obrolan pengguna. Akankah ini berhasil? Akan. Tepat hingga aplikasi Java dihentikan, dan segera setelah dijalankan kembali, kumpulan elemen unik akan kosong. Artinya, data yang tersimpan di aplikasi yang sedang berjalan hilang begitu saja. Apa yang dapat Anda lakukan? Anda dapat memindahkan penyimpanan status sistem (data) dari aplikasi Java ke tempat lain. Anda dapat menyimpannya dalam format CSV dalam file biasa di komputer Anda. Anda dapat melakukannya dalam satu baris di file terpisah. Anda dapat melakukan ini dan kemudian menimpa data ini sebelum aplikasi Java berhenti. Walaupun jaminan keberhasilan perekaman masih jauh dari mendekati 100%, karena Anda cukup mencabut kabel listrik server dan perekaman tidak akan terjadi. Pendekatan ini memiliki kelemahan yang signifikan: tidak ada fungsi untuk memperoleh, mengumpulkan, dan mencari informasi di tingkat file. Ya, tentu saja, Anda dapat membaca file dan membuat objek untuknya, tetapi Anda harus memasukkan semua data ke dalam aplikasi SETIAP saat. Dan jumlahnya bisa banyak, misalnya beberapa gigabyte. Hal ini dapat dihindari dengan menyimpan data dalam database. Bagaimana? Melalui tabel dan hubungan di antara mereka. Inilah yang menjadi dasar semua database relasional.

SQL: bahasa yang dipahami database

Ada Sistem Manajemen Basis Data (selanjutnya disebut DBMS) dan bahasa yang dipahaminya adalah SQL. SQL adalah bahasa pemrograman untuk memanipulasi dan mengelola database. Untuk memahami cara kerjanya, mari kita lihat gambar: “Proyek Java dari A hingga Z”: analisis database dan bahasa SQL - 3Pengguna mengirimkan query SQL ke DBMS, DBMS memahami apa yang perlu dilakukan, melakukannya, dan jika permintaannya adalah untuk mendapatkan data, kemudian mengembalikannya. Oleh karena itu, sebagai developer, kita perlu menguasai bahasa query SQL. Anda mungkin berpikir, “Oh, bahasa lain. Dengan pertolongan Tuhan, saya hampir tidak memahami Java di sini, dan Anda segera menawarkan saya bahasa lain.” Ini tidak benar: SQL diciptakan sebagai bahasa spesifikasi untuk DBMS sehingga akuntan yang sangat jauh dari database dan pemrograman secara umum dapat menulis dalam bahasa ini. Artinya mempelajarinya tidak akan terlalu sulit. Yang utama adalah PRAKTEK-PRAKTEK-PRAKTEK. Hari ini akan ada teori, tetapi artikel selanjutnya akan membahas tentang praktik. Karena database relasional adalah kumpulan tabel array dua dimensi dan hubungan di antara mereka, pekerjaan akan mengatasinya. Jika kita berbicara tentang sebuah contoh, kita dapat menampilkan dua tabel - “Negara” dan “Kota” dan bagaimana keduanya terhubung. “Proyek Java dari A hingga Z”: analisis database dan bahasa SQL - 4Pada tahap ini, penting bagi kita untuk memahami bahwa record dalam tabel adalah data tentang beberapa objek dari dunia Java. Misalnya, kedua tabel ini dapat dijelaskan di Java seperti ini:
public class Country {
   private Long id;
   private String name;
}

public class City {

   private Long id;
   private String name;
   private Country country;
   private Integer population;
}
Wah, indah sekali bukan? Basis data dapat menyimpan sejumlah tabel. Dalam kasus kami, ada dua di antaranya.

Struktur tabel

Saya rasa setiap orang pernah menemukan tabel Excel dengan satu atau lain cara, dan Anda memahami istilah baris dan kolom . Dalam konteks database, kita lebih banyak berbicara tentang record dan field: “Proyek Java dari A hingga Z”: analisis database dan bahasa SQL - 5Jadi, ternyata setiap objek kelas City adalah record dalam tabel di database.

Kunci utama

“Proyek Java dari A hingga Z”: analisis database dan bahasa SQL - 6Sering terjadi bahwa field dalam database memiliki nilai yang sama. Misalnya, jejaring sosial, di mana lebih dari satu orang dapat ditemukan berdasarkan nama depan, belakang, dan bahkan patronimik. Dan database relasional memerlukan bidang unik yang dapat digunakan untuk mengakses catatan. Ini disebut kunci pertama atau Kunci Utama. Biasanya, bidang ID(id) digunakan sebagai kunci - ini adalah kependekan dari pengidentifikasi. Inilah sebabnya mengapa Anda perlu menambahkan bidang ID ke setiap tabel .“Proyek Java dari A hingga Z”: analisis database dan bahasa SQL - 7

Kunci eksternal

Dalam contoh kita, bidang tersebut ada di tabel Kota, yang menggunakan kunci dari Negara. Dan cara kerjanya seperti ini: setiap kota mengetahui pengidentifikasi informasi unik untuk negaranya, dan jika kita mengambilnya dan membuat kueri di database, kita akan menerima informasi lengkap tentang negara tersebut. Seperti yang Anda lihat pada gambar, terdapat hubungan antara dua tabel: “Proyek Java dari A hingga Z”: analisis database dan bahasa SQL - 8Prinsip kunci asing ditunjukkan di sini.

Bagian apa yang ada di SQL?

Omong-omong, selama wawancara mereka sering ditanya operasi apa yang ada di SQL:
  • DDL (Data Definition Language) adalah sekelompok operator yang mengubah/membuat tabel, strukturnya, dan banyak lagi. Yaitu membuat tabel, menghapusnya, membuat/menghapus field dalam tabel; membuat kunci utama baru dan seterusnya;
  • DML (Data Manipulation Language) adalah sekelompok operator yang mengelola modifikasi data. Ini semua adalah operasi yang mengubah data dalam database: menambah, menerima, mengubah, dan menghapus;
  • DCL (Bahasa Kontrol Data) adalah sarana untuk mengonfirmasi hak pengguna untuk melakukan tindakan. Operasi untuk memberikan akses dan hak kepada pengguna tertentu sehingga ia dapat melakukan operasi DDL/DML.

Tipe data apa yang ada di SQL

Tabel dapat menyimpan dan memproses jenis data tertentu. Segala sesuatu di sini akan mirip dengan apa yang kita gunakan di Java. Mari kita bicara tentang yang utama. Hanya ada tiga saja, kami akan menambahkan yang lain sesuai kebutuhan dan/atau keinginan: “Proyek Java dari A hingga Z”: analisis database dan bahasa SQL - 9Seperti terlihat pada gambar, yaitu:
  • INT - nilai integer. Digunakan untuk pengidentifikasi unik dan bilangan bulat sederhana;
  • VARCHAR adalah String kami ;
  • DATE adalah Tanggal Lokal kami.
Sejauh ini semuanya sederhana, bukan? Tipe bidang ditentukan saat membuat tabel. Jelas bahwa tidak mungkin menulis nilai dengan tipe berbeda ke dalam bidang.

Apa itu operator SQL

Operator adalah perintah terpisah yang melakukan beberapa tindakan. Operator terdiri dari kalimat, yang selanjutnya terdiri dari kata kunci yang digunakan dalam kueri. Mari kita lihat contohnya: “Proyek Java dari A hingga Z”: analisis database dan bahasa SQL - 10Lebih menarik di sini, kueri sudah dibuat di sini. Apa yang mereka lakukan di sana? Sederhana saja, dikatakan: "Ambil tiga bidang (Nama, Usia, dan Tanggal Dibuat) dari tabel Klien, pilih hanya catatan yang namanya sama dengan Romawi."

Kesimpulan

Pada artikel ini kita mulai mempelajari database. Kami memahami apa itu dan mengapa kami membutuhkannya. Selanjutnya, kita membahas tanda-tanda pertama SQL, yang akan kita bahas lebih detail di artikel berikutnya. Seperti biasa, saya menyarankan untuk mendaftar di GitHub dan mem-follow akun saya untuk mengikuti seri ini dan proyek lain yang saya kerjakan di sana.

Pekerjaan rumah

Untuk menambah minat pada rangkaian artikel di JRTB ini, akan ada pekerjaan rumah dari waktu ke waktu. Misalnya tanpa tugas hari ini, artikel selanjutnya akan jauh lebih sulit dipahami, karena akan banyak latihan disana. Oleh karena itu, tugasnya adalah menginstal DBMS MySQL di komputer Anda dan masuk ke database baik melalui konsol atau melalui solusi lain. Terima kasih sudah membaca, sampai jumpa lagi!

Daftar semua materi dalam seri ini ada di awal artikel ini.

Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION