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

Kumpulan Masalah 2 – Mengidentifikasi Entitas dan Atribut

Dalam artikel sebelumnya tentang pemodelan data, kami berjanji untuk memberi Anda serangkaian latihan untuk berlatih menemukan entitas dan atribut. Berikut adalah angsuran kedua dari set masalah kami. Selamat menikmati.

Masalah 1:Negara

Deskripsi:

Temukan entitas yang tepat dan atributnya untuk mewakili semua negara di dunia, wilayah interiornya (yang dapat disebut negara bagian, provinsi, atau wilayah) dan kotanya. Kami ingin mewakili nama masing-masing negara, benua, tanggal kemerdekaan, jenis pemerintahan dan populasi. Untuk setiap wilayah (atau provinsi, negara bagian, dll.) kami ingin menyimpan ibu kota, nama gubernur, dan jumlah penduduknya. Terakhir, untuk setiap kota kami ingin memiliki nama, tanggal pendirian, populasi, dan jumlah sekolah per penduduk. Kami juga ingin mewakili apa yang disebut setiap negara sebagai wilayah pedalamannya.

Solusi:

Dari deskripsi masalah domain, kita dapat dengan jelas mengidentifikasi 3 entitas:Country , Region dan City .

Untuk Country entitas kami menemukan atribut berikut:name , governmentType , population dan independenceDay .

Untuk Region entitas, kami menemukan atribut name , governorName , population dan capitalCity .

Untuk City , kami memiliki name , foundationDate , population dan schoolsPerHabitant .

Pemodelan data dilakukan secara bertahap yang disebut dengan iterasi. Pada titik ini, kami mengulangi. Kami kembali ke Country entitas dan menambahkan atribut baru. Kalimat terakhir dari deskripsi meminta kami untuk mewakili nama masing-masing negara untuk wilayah pedalamannya. Nama itu harus di tingkat negara, jadi kami akan menambahkan atribut baru yang disebut categoryRegion ke Country entitas.

Pertanyaan:

Populasi diwakili di Country , Region dan City tingkat. Apakah menurut Anda ini benar? Apakah ada informasi duplikat yang disimpan? Bagaimana Anda mengizinkan ini?


↑ Klik logo untuk melihat model di browser Anda | Unduh model sebagai file png


Masalah 2:Pesawat

Deskripsi:

Sebuah maskapai penerbangan anggaran baru ingin memasuki pasar dan membutuhkan sistem sederhana untuk mengelola asetnya. Untuk membantu kami membangun sistem yang tepat, kami meminta beberapa orang untuk menentukan informasi penting untuk maskapai baru mana pun. Berdasarkan komentar di bawah, sarankan beberapa entitas dengan atribut untuk sistem manajemen pesawat.

Pilot berpengalaman:

Saya telah bekerja di beberapa maskapai penerbangan dan saya telah menghabiskan ribuan jam di udara. Mereka selalu menanyakan informasi yang sama ketika saya berganti majikan. Pertama, mereka ingin tahu nama saya, hari ulang tahun saya – banyak maskapai penerbangan hanya mempekerjakan pilot dalam rentang usia tertentu. Dan mereka selalu perlu memeriksa sertifikasi saya – saya memiliki nomor lisensi khusus yang membantu mereka melakukannya. Jumlah jam terbang juga sangat penting; itu memberitahu mereka banyak tentang pilot. Beruntung saya bahwa saya sangat berpengalaman! Dan, tentu saja, saya selalu diberi nomor karyawan – saya tidak tahu mengapa, tetapi mereka merujuk saya menggunakan nomor tersebut alih-alih nama keluarga saya.

Perwakilan produsen pesawat:

Setiap maskapai membutuhkan pesawat. Seluruh deskripsi dari pesawat apapun sangat kompleks dan saya bisa terus menjelaskan produk saya selama berabad-abad, tetapi orang-orang kerah putih dari maskapai penerbangan biasanya hanya tertarik pada info dasar. Tentu saja, mereka ingin tahu berapa banyak penumpang yang dapat menerbangkan pesawat – membantu mereka menghitung biaya, manfaat, dll. Dan mereka selalu bertanya tentang daya jelajah sehingga mereka tahu seberapa jauh setiap pesawat dapat terbang. Tentu saja, mereka membutuhkan nama pabrikan dan nama model untuk dimasukkan ke dalam buku mereka. Oh, dan dari apa yang saya dengar, mereka selalu memberikan nomor internal khusus untuk setiap pesawat yang mereka beli.

Pengontrol lalu lintas udara:

Ada beberapa fakta dasar yang kami simpan tentang setiap penerbangan di bandara kami. Penerbangan harus memiliki nomor tertentu untuk alasan identifikasi, (seperti FG 432). Kita perlu mengetahui bandara keberangkatan dan kedatangan. Dan waktu juga sangat penting. Kami tidak hanya menyimpan waktu keberangkatan dan kedatangan yang dijadwalkan, tetapi juga waktu sebenarnya – pesawat bisa terlambat atau bahkan bisa tiba lebih cepat dari jadwal.

Solusi:

Dalam deskripsi kami, kami dengan jelas mengidentifikasi 3 entitas:Aircraft , Pilot dan Flight . Kemudian kami menemukan atribut dari setiap entitas.

Untuk Aircraft entitas yang kami miliki manufacturer , model , passengerCapacity , cruisingRangeMiles dan internalNumber .

Untuk Pilot entitas kami menemukan atribut berikut:employeeNumber , firstName , lastName , birthDate , licenseNumber dan flownHours .

Terakhir, untuk Flight kami mengidentifikasi flightNumber , departureAirport , destinationAirport , scheduledDepartureTime , scheduledArrivalTime , realDepartureTime , dan realArrivalTime .

Untuk menyederhanakan model data ini, kami membuat asumsi bahwa semua penerbangan dijadwalkan pada semua hari dalam seminggu.


↑ Klik logo untuk melihat model di browser Anda | Unduh model sebagai file png


Dalam beberapa kasus, deskripsi domain kami menyertakan atribut yang harus kami abaikan. Misalnya, kami memutuskan untuk mengecualikan durasi penerbangan dari model data ini karena kita dapat menghitungnya dari waktu kedatangan dan keberangkatan sebenarnya.

Masalah 3:Panduan Restoran

Deskripsi:

Samuel ingin membuat panduan restoran online. Sudah ada banyak situs web seperti itu, tetapi dia ingin fokus pada hidangan tertentu yang tersedia daripada di restoran itu sendiri. Dia sangat antusias dengan idenya dan beginilah cara dia menjelaskannya kepada kami:

Saya ingin mendeskripsikan restoran secara detail di situs saya, jadi saya memerlukan hal-hal dasar seperti nama dan alamatnya. Alamatnya harus tepat:tidak hanya jalan dan nomornya, tetapi juga kota, negara bagian, dan negaranya. Ya, negara; Saya ingin go internasional! Selain itu, saya ingin masing-masing diberi gaya tertentu, seperti, Anda tahu, Cina, Italia, atau semacamnya. Masing-masing dari mereka akan diberi peringkat dengan jumlah bintang tertentu.

Lebih penting lagi, saya ingin fokus pada makanan! Restoran menyajikan ribuan makanan, dan untuk masing-masingnya, saya memerlukan nama dan jenis hidangan – hidangan pembuka, hidangan utama, atau hidangan penutup. Ada berbagai makanan pembuka di berbagai negara, jadi saya perlu menyimpan informasi tentang asal-usul makanan pembuka juga. Dan untuk hidangan utama… yah, saya pikir akan lebih baik untuk memberikan jumlah kalori untuk orang-orang yang sedang diet. Makanan penutup juga harus mengandung informasi semacam ini.

Dan saya ingin SETIAP hidangan ditampilkan, bersama dengan harganya saat ini! Oh, itu mengingatkan saya:mari kita taruh minuman di sana juga. Nama, harga… dan mungkin kadar alkohol, kalau dipikir-pikir.

Berdasarkan uraian di atas, sarankan beberapa entitas dan atributnya untuk panduan restoran online Samuel.

Solusi:

Entitas pertama yang kami miliki adalah Restaurant dengan atribut name , addressStreet , addressNumber , city , state dan country . Atribut lain di Restaurant adalah:stars dan style .

Ide kami selanjutnya adalah membuat entitas bernama Meal dan berikan atribut name , type dan price . Namun, jika kita membaca uraian masalah secara lengkap, kita akan menemukan atribut khusus untuk makanan penutup, hidangan utama, dan makanan pembuka. Jadi kami memutuskan untuk membuang Meal dan gunakan 3 entitas:Main_course , Appetizer dan Dessert .

Untuk MainCourse , kita akan memiliki atribut berikut:name , category dan price .

Untuk Appetizer entitas, kami memiliki atribut yang disebut name , country dan price .

Untuk Dessert kami menemukan atribut name , calories dan price .

Terakhir, Beverage entitas dengan memiliki atribut name , alcoholLevel dan price .


↑ Klik logo untuk melihat model di browser Anda | Unduh model sebagai file png


Masalah 4:Band Musik

Deskripsi:

Sebuah perusahaan produksi musik ingin memodelkan dunia band musik. Kami bertemu dengan salah satu perwakilannya dan menanyakan beberapa pertanyaan kepadanya. Baca wawancara di bawah ini dan temukan entitas yang tepat dan atributnya untuk model band musik.

Vertabelo: Orang macam apa yang ada di dunia musik?

Perwakilan: Banyak, tapi saya pikir kita hanya perlu beberapa. Band terdiri dari penyanyi dan musisi. Dan, tentu saja, manajer mereka. Untuk semuanya, kami ingin nama depan dan belakang mereka ada di sistem. Penyanyi dan musisi biasanya memiliki nama panggilan juga. Musisi memainkan alat musik tertentu dan penyanyi memiliki jenis suara tertentu, seperti sopran atau tenor.

V: Bagaimana dengan manajer? Bagaimana Anda tetap berhubungan dengan mereka?

P: Tergantung. Beberapa dari mereka lebih suka ponsel untuk komunikasi cepat, yang lain suka dikirimi email sehingga mereka bisa memikirkan semuanya. Saya pikir kita membutuhkan kedua jenis informasi di sini.

V: Dan semua orang ini…

P: …bentuk band musik, ya. Setiap band tentu memiliki nama. Mereka biasanya memainkan berbagai jenis musik, tetapi kami selalu menetapkan mereka hanya untuk satu gaya, seperti rock atau metal. Itu penting. Kita perlu tahu berapa lama mereka bermain bersama, karena band-band muda memiliki kecenderungan untuk muncul dan menghilang dengan sangat cepat. Kami biasanya ingin tahu kapan mereka memainkan konser terbaru mereka dan berapa harga tiketnya.

V: Apakah Anda membutuhkan yang lain?

P: Kita perlu menyimpan informasi tentang lagu. Wow, lagunya rumit. Mereka memiliki jenis lirik tertentu, kunci tertentu, sejumlah instrumen yang terlibat... hal-hal yang sangat rumit.

V:Dan apakah semua ini penting bagimu?

P: Ya, tapi kami sebenarnya sudah memiliki sistem untuk lagu, jadi di sini kami bisa… yah, saya pikir kami akan baik-baik saja hanya dengan nama dan durasi lagu. Dan mungkin tanggal pembuatannya.

Pertanyaan:

Diberikan sebuah lagu, dapatkah kita menggunakan model data ini untuk mencocokkannya dengan band-nya? Atau ada yang kurang?

Solusi:

Entitas pertama yang kami temukan adalah MusicBand dengan atribut name , mainStyle , foundationDate , lastShowDate dan lastShowPlace .

Entitas berikutnya adalah Musician , di mana kita memiliki atribut berikut:firstName , lastName , nickName dan instrument .

Singer entitas mengejar pola yang sama:kita memiliki atribut firstName sebagai atribut penyanyi , lastName , nickName , dan voiceLevel .

Entitas kita berikutnya adalah Song , yang memiliki atribut berikut:name , duration dan creationDate .

Terakhir, entitas terakhir yang kami identifikasi adalah Manager; ia memiliki atribut firstName , lastName , emailAddress dan cellPhone .


↑ Klik logo untuk melihat model di browser Anda | Unduh model sebagai file png



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Unduh salinan database Anda

  2. Gabung Penuh SQL

  3. Wawasan Kinerja Kueri:Menemukan Apa yang Menggunakan Sumber Daya Database Azure SQL Anda?

  4. Penyetelan Performa Lutut:Cukup Tambahkan SSD

  5. Cara Mengelompokkan dengan Dua Kolom di SQL