Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Model Data Perpustakaan

Model data apa yang memungkinkan Anda mencari buku dengan nyaman dan meminjamnya di perpustakaan setempat?

Pernahkah Anda pergi ke perpustakaan dan meminjam buku? Mungkin itu tampak kuno di dunia pengetahuan internet instan dan e-book saat ini. Tapi saya yakin masih ada bagian analog dari Anda yang masih suka mencium, menyentuh, dan membaca buku. Atau mungkin Anda terpaksa menggunakan perpustakaan ketika Anda tidak dapat menemukan sesuatu di internet! Yup, tidak semuanya online.

Jadi, bagaimana model data mengatur buku perpustakaan dan pinjaman? Mari selami model ini dan lihat cara kerjanya!

Model Data

Saya memikirkan perpustakaan umum ketika saya membuat model data ini. Ada anggapan bahwa setiap perpustakaan di jaringan perpustakaan umum menggunakan model/sistem yang sama. Ini terpusat dan memungkinkan anggota untuk menelusuri koleksi setiap perpustakaan di jaringan. Selain itu, anggota dapat meminjam buku dari perpustakaan mana pun di jaringan.

Model data perpustakaan terdiri dari tiga belas tabel yang dibagi menjadi dua bidang studi. Area tersebut adalah:

  1. Books & Libraries
  2. Members & Loans



Kami akan membahas setiap area subjek secara terpisah dan menganalisis semua detailnya.

Buku dan Perpustakaan

Area subjek ini menyimpan informasi tentang buku dan perpustakaan. Ini terdiri dari sepuluh tabel:

  • author
  • authorship_role
  • literature_category
  • book
  • book_authorship
  • book_item
  • publishing_house
  • library
  • city
  • country

Tabel pertama adalah author meja. Ini mencantumkan semua penulis (ditambah detail relevan mereka) dari buku-buku yang dimiliki perpustakaan dalam koleksinya. Untuk setiap penulis, kita akan memiliki:

  • id – ID unik untuk penulis itu.
  • author_name – Nama depan penulis.
  • author_name – Nama belakang penulis.
  • date_birth – Tanggal lahir penulis.
  • date_death – Tanggal kematian penulis.

authorship_role tabel mencantumkan semua peran yang dapat dimiliki seorang penulis, mis. penulis, rekan penulis, dll. Tabel ini memiliki atribut berikut:

  • id – ID unik untuk setiap peran.
  • role_name – Nama peran itu, mis. “penulis bersama”. Ini adalah kunci alternatif dari tabel.

Tabel literature_category daftar semua kategori buku, mis. thriller, sastra Prancis, realisme Rusia, filsafat, dll. Tabel berisi atribut berikut:

  • id – ID unik untuk kategori tersebut.
  • category_name – Nama kategori, mis. "Misteri". Ini adalah kunci alternatif dari tabel.

Selanjutnya, kita memiliki book meja. Tabel ini menyimpan semua detail yang relevan dari setiap judul yang dimiliki perpustakaan dalam koleksinya. Harap dicatat bahwa ini bukan tabel yang digunakan untuk setiap buku sebagai item. Untuk itu, kita akan menggunakan tabel lain yaitu book_item meja. book tabel terdiri dari atribut:

  • isbn – ID unik untuk setiap judul buku, yang dalam industri penerbitan adalah International Standard Book Number (ISBN).
  • book_title – Judul buku.
  • literature_category_id – Merujuk pada literature_category meja.
  • publishing_house_id – Merujuk pada publishing_house meja.
  • year_published – Tahun ketika buku itu diterbitkan.

Tabel berikutnya dalam model kami adalah book_authorship meja. Ini adalah tabel persimpangan yang akan dihubungkan ke book , author , dan authorship_role tabel. Ini berisi atribut berikut:

  • book_id – Referensi book meja.
  • author_id – Referensi author meja.
  • authorship_role_id – Merujuk pada authorship_role meja.

Ketiga atribut ini bersama-sama membentuk kunci primer komposit tabel. Sebuah kunci primer komposit berarti bahwa setiap kombinasi dari ketiga atribut harus unik; setiap kombinasi hanya dapat terjadi sekali.

Sekarang mari kita lihat book_item tabel, yang kami sebutkan sebelumnya sebagai menyimpan info untuk setiap buku fisik di perpustakaan. Ini akan berisi informasi berikut:

  • id – ID unik untuk setiap buku sebagai item.
  • isbn – Referensi book meja.
  • library_id – Merujuk pada library meja.

The publishing_house table is the next one in our model. It lists the publishers of all the books that the library has in its collection. The attributes in the table are as follows: tabel adalah yang berikutnya dalam model kami. Ini mencantumkan penerbit semua buku yang dimiliki perpustakaan dalam koleksinya. Atribut pada tabel adalah sebagai berikut:

  • id – ID unik untuk setiap penerbit.
  • publishing_house_name – Nama penerbit (misalnya Penguin Books, McGraw-Hill, Simon &Schuster, dll.).
  • city_id – Merujuk city meja. Koneksi ini juga akan memungkinkan kita untuk menentukan kota dan negara penerbit. publishing_house_namecity_id pair adalah kunci alternatif dari tabel ini.

Oke, mari kita beralih ke library meja. Tabel ini dirujuk dalam book_item tabel, di mana ia mendefinisikan perpustakaan tempat setiap salinan buku disimpan. Ini diperlukan karena judul buku yang sama dapat ditemukan di lebih dari satu perpustakaan dalam satu jaringan (misalnya, setiap perpustakaan mungkin memiliki setidaknya satu salinan The Lord of the Rings ). Oleh karena itu, kita harus tahu buku mana yang ada di perpustakaan mana. Untuk mencapainya, kita memerlukan atribut berikut:

  • id – ID unik untuk perpustakaan.
  • library_name – Nama perpustakaan itu.
  • address – Alamat perpustakaan itu.
  • city_id – Merujuk city meja. library_name - city_id pair adalah kunci alternatif dari tabel ini.

Tabel berikutnya dalam model ini adalah city meja. Ini adalah daftar kota sederhana yang akan kami gunakan untuk informasi tentang penerbit, perpustakaan, dan anggota perpustakaan. Atributnya adalah:

  • id – ID unik untuk kota.
  • postal_code – Kode pos untuk kota itu.
  • city_name – Nama kota itu.
  • country_id – Merujuk country meja.

Setelah itu, hanya ada satu tabel yang tersisa di area subjek ini:country meja. Ini adalah daftar semua negara tempat perpustakaan dan/atau penerbit buku kami berada. Ini terdiri dari atribut berikut:

  • id – ID unik untuk setiap negara.
  • country_name - Nama negara. Ini adalah kunci alternatif untuk tabel.

Selanjutnya, mari kita periksa area subjek kedua.

Anggota dan Pinjaman

Tujuan dari bidang studi ini adalah untuk mengelola informasi tentang anggota perpustakaan dan buku-buku yang mereka pinjam. Ini terdiri dari tiga tabel:

  • member
  • loaned_book
  • loan_status

Sekarang mari kita bicara tentang tabel.

Tabel pertama di area ini adalah member meja. Ini berisi semua info yang relevan tentang anggota perpustakaan. Atributnya adalah sebagai berikut:

  • id – ID unik untuk setiap anggota.
  • name – Nama depan anggota.
  • surname – Nama belakang anggota.
  • address – Alamat anggota.
  • city_id – Merujuk city meja.
  • email_address – Alamat email anggota.
  • phone_number – Nomor telepon anggota.

Tabel berikutnya adalah loaned_book meja. Ini menyimpan informasi tentang semua buku yang pernah dipinjamkan. Dengan cara ini, kami dapat melacak inventaris perpustakaan dan status buku yang dipinjamkan. Tabel ini terdiri dari atribut berikut:

  • id – ID unik untuk setiap buku yang dipinjamkan.
  • book_item_id – Merujuk book_item meja.
  • member_id – Referensi member meja.
  • date_loaned – Tanggal saat buku ini dipinjamkan.
  • date_due – Tanggal kapan buku ini harus dikembalikan.
  • date_returned – Tanggal ketika buku itu benar-benar dikembalikan ke perpustakaan; ini bisa NULL karena kita tidak akan tahu tanggalnya sampai buku dikembalikan.
  • overdue_fine – Biaya keterlambatan (jika ada) yang dibayarkan oleh member, yang biasanya dihitung berdasarkan selisih antara date_returned dan date_due . Ini bisa menjadi NULL karena buku yang dikembalikan tepat waktu tidak dikenakan denda.
  • loan_status_id – Merujuk pada loan_status meja.
  • ts – Stempel waktu saat status pinjaman itu dimasukkan.

loan_status tabel adalah yang terakhir dalam model data kami. Ini hanyalah daftar semua kemungkinan status pinjaman, mis. aktif, lewat waktu, dikembalikan, dll. Tabel ini akan terdiri dari atribut berikut:

  • id – ID unik untuk setiap status pinjaman.
  • status_name – Nama yang menjelaskan status pinjaman. Ini adalah kunci alternatif untuk tabel.

Itu saja – kami telah membahas semua detail model data kami!

Apa Pendapat Anda Tentang Model Data Perpustakaan?

Kami telah membahas prinsip-prinsip umum dalam model ini, jadi seharusnya (dengan beberapa penyesuaian) untuk setiap perpustakaan. Apakah Anda tahu spesifik perpustakaan yang kami lewatkan? Atau mungkin menurut Anda model ini berguna dan mudah diterapkan? Sampaikan pendapat Anda di bagian komentar.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membandingkan pola infrastruktur database umum

  2. SQL CREATE TABLE ... SEBAGAI Pernyataan SELECT

  3. Tingkatkan Performa UDF dengan NULL ON NULL INPUT

  4. Operator SEPERTI SQL untuk Pemula

  5. Masalah Performa:Pertemuan Pertama