Basis data Sakila adalah basis data yang dinormalisasi dengan baik yang memodelkan toko persewaan DVD (bagi Anda yang cukup umur untuk mengingat apa itu). Desainnya mencakup beberapa fitur bagus
- Hubungan banyak ke banyak
- Beberapa jalur antar entitas (mis. g. film-inventory-rental-payment vs film-inventory-store-customer-payment) untuk berlatih bergabung
- Penamaan kolom yang konsisten
- Kunci utama disebut [tablename]_[id]
- Kunci asing dipanggil seperti kunci primer yang direferensikan, jika memungkinkan. Ini memungkinkan untuk menggunakan sintaks JOIN . USING jika didukung
- Tabel relasi tidak memiliki kunci pengganti tetapi menggunakan kunci primer komposit
- Setiap tabel memiliki kolom audit last_update
- Kumpulan data yang dihasilkan dengan ukuran yang masuk akal tersedia
Dengan database ini, kita dapat mencoba beberapa kueri SQL yang bagus, mis. g. dengan menggunakan sintaks PostgreSQL
Aktor dengan film terbanyak (mengabaikan ikatan)
SELECT first_name, last_name, count(*) films FROM actor AS a JOIN film_actor AS fa USING (actor_id) GROUP BY actor_id, first_name, last_name ORDER BY films DESC LIMIT 1;
Hasil
first_name last_name films -------------------------------- GINA DEGENERES 42 _
Pendapatan kumulatif dari semua toko
SELECT payment_date, amount, sum(amount) OVER (ORDER BY payment_date) FROM ( SELECT CAST(payment_date AS DATE) AS payment_date, SUM(amount) AS amount FROM payment GROUP BY CAST(payment_date AS DATE) ) p ORDER BY payment_date;
Hasil
payment_date amount sum ------------------------------------- 2005-05-24 29.92 29.92 2005-05-25 573.63 603.55 2005-05-26 754.26 1357.81 2005-05-27 685.33 2043.14 2005-05-28 804.04 2847.18 2005-05-29 648.46 3495.64 2005-05-30 628.42 4124.06 2005-05-31 700.37 4824.43 2005-06-14 57.84 4882.27 2005-06-15 1376.52 6258.79 2005-06-16 1349.76 7608.55 2005-06-17 1332.75 8941.30 ...
SejarahDatabase contoh Sakila pada awalnya dikembangkan oleh Mike Hillyer dari tim dokumentasi MySQL AB. itu porting ke database lain oleh DB Software Laboratory
Bab ini mendemonstrasikan kemampuan MySQL Workbench sebagai alat dokumentasi dengan menggunakan database sakila, yang merupakan contoh database yang disediakan oleh MySQL. Anda dapat menemukan contoh database ini, dan lainnya, dengan mengunjungi https. //dev. mysql. com/doc/index-other. halaman html
Diagram EER memberikan gambaran singkat dan pemahaman tentang database. Daripada membaca pernyataan definisi tabel, sekilas diagram EER menunjukkan bagaimana tabel terkait
Anda juga dapat melihat bagaimana tabel terkait;
File PNG dari database sakila
Gambar 9. 35 Diagram EER Database sakila
Gaya notasi objek yang digunakan adalah Workbench (PKs only). Notasi ini hanya menampilkan kunci utama dan tidak ada kolom lain, yang sangat berguna di mana ruang berada pada premium. Notasi hubungan adalah standarnya, Crow's Foot
Seperti yang ditunjukkan oleh garis koneksi, setiap tabel terkait dengan setidaknya satu tabel lain dalam database (dengan pengecualian tabel film_text). Beberapa tabel memiliki dua kunci asing yang berhubungan dengan tabel yang sama. Misalnya tabel film memiliki dua kunci asing yang berhubungan dengan tabel language, yaitu fk_film_language_original dan fk_film_language. Jika ada lebih dari satu hubungan antara dua tabel, jalur koneksi berjalan secara bersamaan
Hubungan yang mengidentifikasi dan tidak mengidentifikasi masing-masing ditunjukkan oleh garis padat dan putus-putus. Misalnya, kunci asing category_id adalah bagian dari kunci utama dalam tabel film_category sehingga hubungannya dengan tabel category digambar dengan garis padat. Di sisi lain, pada tabel Workbench (PKs only)_0, kunci asing, Workbench (PKs only)1, bukan merupakan bagian dari kunci utama sehingga koneksi menggunakan garis putus-putus