Jenis entitas dalam database. Merancang model database dalam hal "entity-relationship". Hubungan antar entitas

Urusan rumah tangga

Entitas adalah entitas nyata atau abstrak yang penting untuk domain. Entitas harus memiliki nama yang dinyatakan oleh kata benda dalam bentuk tunggal

Cara informal untuk mengidentifikasi entitas adalah dengan mencari abstraksi yang menggambarkan objek, proses, peran, dan konsep lainnya. Cara formal untuk mengidentifikasi entitas adalah dengan menganalisis deskripsi tekstual dari area subjek, mengekstrak kata benda dan memilihnya sebagai abstraksi.

Instance entitas adalah instance spesifik dari entitas tersebut. Misalnya, karyawan Ivanov dapat menjadi turunan dari entitas Karyawan.

Setiap entitas harus memiliki properti berikut:

memiliki nama yang unik;

memiliki satu atau lebih atribut yang dimiliki oleh suatu entitas atau diwarisi melalui suatu hubungan;

memiliki satu atau lebih atribut yang secara unik mengidentifikasi setiap instance entitas.

Atribut - karakteristik entitas yang signifikan untuk area subjek yang dipertimbangkan dan dimaksudkan untuk mengidentifikasi, mengklasifikasikan, mengukur, atau mengungkapkan keadaan entitas.

Ada beberapa jenis atribut berikut:

sederhana - terdiri dari satu elemen data;

komposit - terdiri dari beberapa elemen data;

jelas - berisi satu nilai untuk satu entitas;

multinilai - berisi beberapa nilai untuk satu entitas;

opsional - mungkin memiliki nilai kosong (tidak terdefinisi);

turunan - nilai yang diturunkan dari nilai atribut lain.

Pengidentifikasi unik adalah seperangkat atribut yang nilainya secara agregat unik untuk setiap instance entitas. Menghapus atribut apa pun dari pengidentifikasi merusak keunikannya. Pengidentifikasi unik digarisbawahi dalam diagram.

Setiap entitas dapat memiliki sejumlah hubungan dengan entitas lain.

Hubungan antar entitas

Sebuah hubungan adalah asosiasi bernama antara entitas yang bermakna untuk domain yang bersangkutan.

Derajat hubungan adalah jumlah entitas yang berpartisipasi dalam hubungan.

Daya tautan - jumlah instance entitas yang berpartisipasi dalam tautan.

Tergantung pada nilai daya, sambungan dapat memiliki salah satu dari tiga jenis:

satu-ke-satu (dilambangkan 1:1).

satu-ke-banyak (dilambangkan 1:N).

banyak-ke-banyak (dilambangkan dengan M:N).

Satu ke satu. Berarti dalam hubungan seperti itu, entitas dengan satu peran selalu berkorespondensi dengan tidak lebih dari satu entitas dengan peran lain. Karena tingkat koneksi untuk setiap entitas adalah 1, mereka dihubungkan oleh satu garis.

Satu-ke-banyak. Entitas dengan satu peran dapat dicocokkan dengan sejumlah entitas dengan peran berbeda.

Banyak ke banyak. Dalam hal ini, masing-masing entitas terkait dapat diwakili oleh sejumlah instance.

3 . Komponen Model Data

Entitas, definisi entitas, sumber informasi tentang entitas

Model data - deskripsi konseptual dari area subjek - adalah tingkat desain database yang paling abstrak. Model data terdiri dari entitas, atribut, domain, dan hubungan. Selanjutnya - tentang masing-masing elemen secara rinci.

3.1 Entitas

Entitas adalah sesuatu tentang informasi yang perlu disimpan dalam database.

Saat merancang basis data, cukup untuk menggambarkan situasi saat ini - dan sebagian besar kata benda dan beberapa kata kerja akan menjadi kandidat untuk entitas. Misalnya: "Pelanggan membeli barang. Karyawan menjual barang ke pelanggan. Pemasok memasok barang" - pelanggan, barang, karyawan, dan pemasok adalah entitas. Kata kerja "beli" dan "jual" juga merupakan entitas (walaupun mereka bisa menjadi entitas yang sama, berbeda dari sudut pandang pembeli dan penjual).

Saat mendesain database, sumber informasi utama tentang entitas adalah percakapan dengan pelanggan untuk memahami proses bisnisnya. Selain itu, dokumen standar yang digunakan dalam proses bisnis dianalisis: formulir, laporan, instruksi, dll. Setelah menerima daftar seperti itu, perlu untuk memeriksa kelengkapan dan koherensinya, serta mengidentifikasi duplikat - entitas identik yang disebut dengan kata yang berbeda, dan entitas yang sebenarnya berbeda, tetapi dijelaskan dengan istilah yang sama.

Entitas dapat memodelkan konsep tertentu (pelanggan, barang, panggilan) dan konsep abstrak (agen bertanggung jawab atas klien, siswa terdaftar dalam kursus).

Atribut.

bidang subjek.

Basis data. Definisi.

DBMS. Definisi.

Basis data. Definisi.

Bentuk normal ketiga. Definisi. Contoh.

Suatu variabel relasi R berada dalam bentuk normal ketiga jika dan hanya jika kondisi berikut ini benar:

R dalam bentuk normal kedua.

· tidak ada atribut non-kunci R dalam ketergantungan fungsional transitif (yaitu, ketergantungan tidak dinyatakan melalui atribut lain) dari kunci potensial R.

Atribut bukan kunci dari suatu relasi R adalah atribut yang bukan milik salah satu kunci kandidat dari R.

Basis data- ini adalah satu atau lebih file data yang dirancang untuk menyimpan, memodifikasi, dan memproses sejumlah besar informasi yang saling berhubungan, disistematisasikan sedemikian rupa sehingga bahan-bahan ini dapat ditemukan dan diproses menggunakan komputer elektronik (komputer)

Sistem manajemen basis data (DBMS) adalah perangkat lunak yang memungkinkan pengguna untuk mendefinisikan, membuat, dan memelihara database, dan yang menangani panggilan database dari aplikasi pengguna akhir.

Basis data- sistem informasi otomatis dari penyimpanan terpusat dan penggunaan data secara kolektif. Bank data mencakup satu atau lebih database, direktori database, DBMS, serta perpustakaan kueri dan program aplikasi.

Bidang subjek adalah bagian dari dunia nyata yang akan dipelajari untuk membuat database untuk mengotomatisasi proses manajemen.

Atribut adalah unit terkecil dari struktur data. Setiap elemen diberi nama unik saat database dibuat. Ini disebut dengan nama ini selama pemrosesan.

Esensi- objek konkret atau abstrak apa pun di area subjek yang sedang dipertimbangkan. Entitas adalah tipe dasar informasi yang disimpan dalam database (dalam database relasional, setiap entitas diberi tabel).

Sebutkan fungsi DBMS

Fungsi utama DBMS:

1) Penentuan struktur database yang dibuat, inisialisasi dan pemuatan awal.

2) Memberi pengguna kemampuan untuk memanipulasi data (memilih data yang diperlukan, melakukan perhitungan, mengembangkan antarmuka input / output, visualisasi).

3) Memastikan independensi logis dan fisik data.

4) Perlindungan integritas logis dari basis data - keandalan data dapat dilanggar ketika dimasukkan ke dalam basis data atau ketika tindakan ilegal dari prosedur pemrosesan data yang menerima dan memasukkan data yang salah ke dalam basis data. Untuk meningkatkan keandalan data dalam sistem, apa yang disebut batasan integritas dideklarasikan.



5) Perlindungan integritas fisik - alat pemulihan basis data (transaksi).

6) Manajemen izin pengguna untuk mengakses database.

7) Sinkronisasi kerja beberapa pengguna.

8) Manajemen sumber daya lingkungan penyimpanan - DBMS mengalokasikan sumber daya memori untuk data baru, mendistribusikan kembali memori yang dibebaskan, mengatur antrian permintaan ke memori eksternal, dan sebagainya.

9) Dukungan untuk aktivitas personel sistem

Istilah "relasional" berarti "berdasarkan hubungan". Sebuah database relasional terdiri dari entitas (tabel) yang memiliki beberapa hubungan satu sama lain. Nama ini berasal dari kata dalam bahasa Inggris relation.
Desain database terdiri dari dua fase utama: pemodelan logis dan fisik.
Selama pemodelan logis, Anda mengumpulkan persyaratan dan mengembangkan model database yang independen dari DBMS tertentu (sistem manajemen database relasional). Ini seperti membuat cetak biru untuk rumah Anda. Anda dapat memikirkan dan menggambar semuanya: di mana dapur, kamar tidur, ruang tamu akan berada. Tapi ini semua di atas kertas dan dalam tata letak.
Selama pemodelan fisik, Anda membuat model yang dioptimalkan untuk aplikasi dan DBMS tertentu. Model inilah yang diterapkan dalam praktik. Jika kita kembali ke rumah dari paragraf sebelumnya, pada tahap ini Anda harus membangun rumah di suatu tempat - membawa kayu gelondongan, batu bata ...

Proses desain database terdiri dari langkah-langkah berikut:

  • pengumpulan informasi;
  • definisi entitas;
  • mendefinisikan atribut untuk setiap entitas;
  • mendefinisikan hubungan antar entitas;
  • normalisasi;
  • transformasi ke model fisik;
  • pembuatan basis data.

5 tahap pertama membentuk fase desain logis dan dua sisanya membentuk fase pemodelan fisik.

Fase logika

Fase logis terdiri dari beberapa tahap. Mereka semua dibahas di bawah ini.

Persyaratan Pengumpulan

Pada tahap ini, Anda perlu menentukan dengan tepat bagaimana database akan digunakan dan informasi apa yang akan disimpan di dalamnya. Kumpulkan informasi sebanyak mungkin tentang apa yang harus dan tidak boleh dilakukan oleh sistem.

Definisi entitas

Pada tahap ini, Anda perlu menentukan entitas yang terdiri dari database.

Entitas adalah objek dalam database yang menyimpan data. Entitas dapat berupa sesuatu yang nyata (rumah, orang, objek, tempat) atau hal abstrak (transaksi perbankan, departemen perusahaan, rute bus). Dalam model fisik, entitas disebut tabel.

Entitas terdiri dari atribut (kolom dalam tabel) dan record (baris dalam tabel).

Biasanya, database terdiri dari beberapa entitas utama yang terkait dengan sejumlah besar entitas bawahan. Entitas inti disebut independen: mereka tidak bergantung pada entitas lain. Entitas bawahan disebut dependen: agar salah satunya ada, tabel utama yang terkait dengannya harus ada.
Dalam diagram, entitas biasanya direpresentasikan sebagai persegi panjang. Nama entitas ditunjukkan di dalam persegi panjang:

Setiap tabel memiliki karakteristik sebagai berikut:

  • tidak ada garis yang identik di dalamnya;
  • semua kolom (atribut) dalam tabel harus memiliki nama yang berbeda;
  • elemen dalam kolom yang sama memiliki tipe yang sama (string, angka, tanggal);
  • urutan baris dalam tabel bisa sewenang-wenang.

Pada tahap ini, Anda perlu mengidentifikasi semua kategori informasi (entitas) yang akan disimpan dalam database.

Definisi Atribut

Atribut mewakili properti yang menggambarkan entitas. Atribut sering berupa angka, tanggal, atau teks. Semua data yang disimpan dalam suatu atribut harus bertipe sama dan memiliki properti yang sama.
Dalam model fisik, atribut disebut kolom.
Setelah mendefinisikan entitas, perlu untuk mendefinisikan semua atribut entitas ini.
Dalam diagram, atribut biasanya terdaftar dalam persegi panjang entitas. Pada gambar Anda akan menemukan contoh database "Rumah", hanya sekarang beberapa atribut didefinisikan untuk entitas dari database ini.


Setiap atribut mendefinisikan tipe data, ukuran, nilai yang diizinkan, dan aturan lainnya. Ini termasuk aturan wajib, bisa berubah, dan keunikan.
Aturan wajib menentukan apakah suatu atribut adalah bagian yang diperlukan dari suatu entitas. Jika atribut adalah bagian opsional dari entitas, maka itu bisa NULL, jika tidak.
Anda juga harus menentukan apakah atributnya bisa berubah. Beberapa nilai atribut tidak dapat diubah setelah entri dibuat.
Dan akhirnya, Anda perlu menentukan apakah atributnya unik. Jika demikian, maka nilai atribut tidak dapat diulang.

Kunci

Kunci adalah satu set atribut yang secara unik mengidentifikasi entri. Kunci dibagi menjadi dua kelas: sederhana dan majemuk.
Sebuah kunci sederhana hanya terdiri dari satu atribut. Misalnya, dalam basis data "Paspor warga negara", nomor paspor akan menjadi kunci sederhana: lagi pula, tidak ada dua paspor dengan nomor yang sama.
Kunci komposit terdiri dari beberapa atribut. Dalam database yang sama "Paspor warga negara" dapat ada kunci komposit dengan atribut berikut:
nama keluarga, nama, patronimik, tanggal lahir. Ini hanya sebuah contoh, karena kunci komposit ini, secara teori, tidak memberikan jaminan keunikan catatan.
Ada juga beberapa jenis kunci, yang dijelaskan di bawah ini.

Kemungkinan kunci

Kandidat kunci adalah setiap set atribut yang secara unik mengidentifikasi entri dalam tabel. Kunci kandidat bisa sederhana atau majemuk.
Setiap entitas harus memiliki setidaknya satu kemungkinan kunci, meskipun mungkin ada lebih dari satu kemungkinan kunci. Tak satu pun dari atribut kunci utama dapat memiliki nilai NULL.
Kunci kandidat juga disebut kunci pengganti.

Kunci Utama

Kunci utama adalah seperangkat atribut yang secara unik mengidentifikasi catatan dalam tabel (entitas). Salah satu kunci yang mungkin menjadi kunci utama. Dalam diagram, kunci utama sering ditampilkan di atas daftar atribut utama atau disorot dengan karakter khusus. Entitas pada gambar memiliki atribut kunci dan reguler.

Kunci Alternatif

Setiap kemungkinan kunci yang bukan kunci utama disebut kunci alternatif. Entitas dapat memiliki beberapa kunci alternatif.

Kunci asing

Kunci asing adalah kumpulan atribut yang merujuk ke kunci utama atau alternatif dari entitas lain. Jika kunci asing tidak terkait dengan entitas utama, maka kunci tersebut hanya dapat berisi nilai nol. Jika kuncinya juga komposit, maka semua atribut kunci asing harus tidak terdefinisi.
Dalam diagram, atribut yang digabungkan menjadi kunci asing dilambangkan dengan simbol khusus. Gambar tersebut menunjukkan dua entitas terkait (Rumah dan Pemiliknya) dan kunci asing yang dibentuk oleh mereka (bagaimanapun, satu orang dapat memiliki lebih dari satu rumah).

Kunci adalah konstruksi logis, bukan objek fisik. Database relasional memiliki mekanisme untuk menyimpan kunci.

Mendefinisikan Hubungan Antar Entitas

Database relasional memungkinkan Anda untuk menggabungkan informasi milik entitas yang berbeda.
Sebuah hubungan adalah situasi di mana satu entitas mengacu pada kunci utama dari entitas kedua. Seperti, misalnya, entitas House dan Master pada gambar sebelumnya.
Hubungan didefinisikan selama proses desain dasar. Untuk melakukan ini, Anda harus menganalisis entitas dan mengidentifikasi hubungan logis yang ada di antara mereka.
Jenis hubungan menentukan jumlah rekaman entitas yang terkait dengan rekaman entitas lain. Hubungan dibagi menjadi tiga jenis utama, yang dijelaskan di bawah ini.

Satu lawan satu

Setiap entri dari entitas pertama hanya sesuai dengan satu entri dari entitas kedua. Dan setiap record dari entitas kedua hanya berhubungan dengan satu record dari entitas pertama. Misalnya, ada dua entitas: Orang dan Akta Kelahiran. Dan satu orang hanya dapat memiliki satu akta kelahiran.

Satu-ke-banyak

Setiap record dari entitas pertama dapat berhubungan dengan beberapa record dari entitas kedua. Namun, setiap entri dari entitas kedua hanya sesuai dengan satu entri dari entitas pertama. Misalnya, ada dua entitas: Order dan Order Item. Dan bisa ada banyak item dalam satu urutan.

banyak ke banyak

Setiap record dari entitas pertama dapat berhubungan dengan beberapa record dari entitas kedua. Namun, setiap record dari entitas kedua dapat berhubungan dengan beberapa record dari entitas pertama. Misalnya, ada dua entitas: Penulis dan Buku. Satu penulis bisa menulis banyak buku. Tetapi sebuah buku dapat memiliki banyak penulis.
Menurut kriteria hubungan wajib dibagi menjadi wajib dan opsional.

  • Hubungan wajib berarti bahwa untuk setiap entri dari entitas pertama, harus ada entri terkait di entitas kedua.
  • Hubungan opsional berarti bahwa catatan dari entitas pertama mungkin tidak memiliki catatan di entitas kedua.

Normalisasi

Normalisasi adalah proses menghilangkan data yang berlebihan dari database. Setiap elemen data harus disimpan dalam database dalam satu dan hanya satu contoh. Ada lima bentuk normalisasi yang umum. Sebagai aturan, database direduksi menjadi bentuk normal ketiga.
Selama proses normalisasi, tindakan tertentu dilakukan untuk menghapus data yang berlebihan. Normalisasi meningkatkan kinerja, mempercepat pengurutan dan pembuatan indeks, mengurangi jumlah indeks per entitas, dan mempercepat operasi penyisipan dan pembaruan.
Database yang dinormalisasi biasanya lebih fleksibel. Saat memodifikasi kueri atau data yang dipertahankan, database yang dinormalisasi biasanya memerlukan lebih sedikit perubahan, dan perubahan memiliki konsekuensi yang lebih sedikit.

Bentuk normal pertama

Untuk mengonversi entitas ke bentuk normal pertama, Anda harus menghilangkan kelompok nilai duplikat dan memastikan bahwa setiap atribut hanya berisi satu nilai, daftar nilai tidak diperbolehkan.
Dengan kata lain, setiap atribut dalam suatu entitas hanya boleh disimpan dalam satu instance.
Misalnya, pada gambar, entitas DPR tidak dinormalisasi. Ini berisi beberapa atribut untuk menyimpan data tentang pemilik rumah (entitas House tidak sesuai dengan bentuk normal pertama).

Untuk membawa entitas House ke bentuk normal pertama, perlu untuk menghapus grup nilai yang berulang, yaitu, menghapus atribut Pemilik 1-3, menempatkannya di entitas terpisah. Hasil (Rumah Entitas dikurangi menjadi bentuk normal pertama):

Bentuk normal kedua

Sebuah tabel dalam bentuk normal kedua hanya berisi data yang berlaku untuk itu. Nilai atribut entitas non-kunci bergantung pada kunci utama. Lebih tepatnya, atribut bergantung pada kunci utama, pada seluruh kunci utama, dan hanya pada kunci utama.
Entitas harus dalam bentuk normal pertama agar sesuai dengan bentuk normal kedua.
Misalnya, entitas Rumah pada gambar memiliki atribut Harga per liter bensin, yang tidak ada hubungannya dengan rumah. Atribut ini dihapus (atau Anda dapat memindahkannya ke entitas lain). Dan juga kami memindahkan atribut Walikota ke entitas yang terpisah - atribut ini tergantung pada kota tempat rumah itu berada, dan bukan pada rumah tersebut.
Gambar tersebut menunjukkan Rumah Esensi dalam bentuk normal kedua (Rumah Esensi direduksi menjadi bentuk normal kedua).

bentuk normal ketiga

Bentuk normal ketiga mengecualikan atribut yang tidak bergantung pada seluruh kunci. Setiap entitas yang berada dalam bentuk normal ketiga juga berada dalam bentuk normal kedua. Ini adalah bentuk database yang paling umum.
Dalam bentuk normal ketiga, setiap atribut bergantung pada kunci, pada seluruh kunci, dan hanya pada kunci.
Misalnya, entitas Pemilik Rumah pada gambar memiliki atribut tanda Zodiak yang bergantung pada tanggal lahir pemilik rumah, bukan pada nama pemilik (yang merupakan kunci).
Untuk mentransmisikan entitas Pemilik rumah, Anda perlu membuat entitas Tanda Zodiak dan mentransfer atribut Tanda Zodiak ke sana (Entitas Pemilik rumah, dikurangi menjadi bentuk normal ketiga):

Pembatasan

Kendala adalah aturan yang ditegakkan oleh sistem manajemen basis data. Batasan menentukan kumpulan nilai yang dapat dimasukkan dalam kolom atau kolom.
Misalnya, Anda tidak ingin jumlah pesanan di toko Anda yang sangat keren kurang dari 500 rubel. Anda cukup menetapkan batas pada kolom Jumlah Pesanan.

Prosedur tersimpan

Prosedur tersimpan adalah prosedur yang telah dikompilasi sebelumnya yang disimpan dalam database. Prosedur tersimpan dapat digunakan untuk mendefinisikan aturan bisnis dan dapat digunakan untuk melakukan perhitungan yang lebih kompleks daripada batasan saja.
Prosedur tersimpan dapat berisi logika aliran program serta kueri basis data. Mereka dapat mengambil parameter dan mengembalikan hasil sebagai tabel atau nilai tunggal.
Prosedur tersimpan sama seperti prosedur atau fungsi biasa dalam program apa pun.

CATATAN
Prosedur tersimpan berada di database dan dijalankan di server database. Mereka umumnya lebih cepat daripada pernyataan SQL karena disimpan dalam bentuk terkompilasi.

Integritas data

Dengan mengatur data ke dalam tabel dan mendefinisikan hubungan di antara mereka, kita dapat mengasumsikan bahwa model telah dibuat yang mencerminkan lingkungan bisnis dengan benar. Sekarang kita perlu memastikan bahwa data yang dimasukkan ke dalam database memberikan gambaran yang benar tentang keadaan masalah tersebut. Dengan kata lain, Anda perlu menegakkan aturan bisnis dan menjaga integritas database.
Misalnya, perusahaan Anda bergerak dalam bidang pengiriman buku. Anda tidak mungkin menerima pesanan dari klien yang tidak dikenal, karena Anda bahkan tidak akan dapat mengirimkan pesanan. Karenanya aturan bisnis: pesanan hanya diterima dari pelanggan yang informasinya ada di database.
Kebenaran data dalam database relasional dijamin oleh seperangkat aturan. Aturan integritas data terbagi dalam empat kategori.

  • Integritas Entitas- setiap catatan entitas harus memiliki pengenal unik dan berisi data. Bagaimanapun, Anda perlu membedakan antara semua catatan ini dalam database.
  • Integritas Atribut- setiap atribut hanya menerima nilai yang valid. Misalnya, jumlah pembelian pasti tidak boleh kurang dari nol.
  • Integritas referensial- seperangkat aturan yang memastikan konsistensi logis dari kunci utama dan asing saat memasukkan, memperbarui, dan menghapus catatan. Integritas referensial memastikan bahwa untuk setiap kunci asing ada kunci utama yang sesuai. Mari kita ambil contoh sebelumnya dengan entitas Pemilik Rumah dan Rumah. Katakanlah Anda Vasya Ivanov dan memiliki rumah. Anda mengubah nama belakang Anda menjadi Sidorov dan membuat perubahan yang sesuai dengan entitas pemilik House. Pasti Anda ingin rumah Anda terus menjadi milik Anda dengan nama baru Anda, dan bukan milik Vasya Ivanov tertentu, yang sudah tidak ada lagi.
  • Aturan Integritas Kustom- aturan integritas apa pun yang tidak termasuk dalam kategori mana pun yang terdaftar.

pemicu

Pemicu adalah analog dari prosedur tersimpan, yang dipanggil secara otomatis ketika data dalam tabel berubah.
Pemicu adalah mekanisme yang kuat untuk menjaga integritas database. Pemicu dipanggil sebelum atau sesudah perubahan data dalam tabel.
Dengan bantuan pemicu, Anda tidak hanya dapat membatalkan perubahan ini, tetapi juga mengubah data di tabel lain mana pun.
Sebagai contoh, katakanlah Anda membuat forum Internet dan Anda ingin memastikan bahwa daftar forum menunjukkan posting forum terbaru. Tentu saja, Anda dapat menerima pesan dari entitas Postingan Forum, tetapi ini akan meningkatkan kerumitan permintaan Anda dan waktu eksekusinya. Lebih mudah untuk menambahkan pemicu ke entitas Postingan Forum yang mencatat postingan terakhir yang ditambahkan ke entitas Forum, di atribut Posting Terakhir. Ini akan sangat menyederhanakan kueri.

Peraturan bisnis

Aturan bisnis menentukan batasan yang ditempatkan pada data sesuai dengan persyaratan bisnis (untuk siapa Anda membuat basis). Aturan bisnis dapat terdiri dari serangkaian langkah yang diperlukan untuk menyelesaikan tugas tertentu, atau mungkin hanya berupa pemeriksaan yang memverifikasi bahwa data yang dimasukkan sudah benar. Aturan bisnis dapat mencakup aturan integritas data. Tidak seperti aturan lain, tujuan utamanya adalah untuk memastikan bahwa transaksi bisnis dilakukan dengan benar.
Misalnya, di perusahaan Very Tough Guys, biasanya hanya mobil putih, biru, dan hitam yang dibeli untuk penggunaan resmi.
Aturan bisnis untuk atribut Warna Kendaraan dari entitas Kendaraan Perusahaan adalah bahwa kendaraan hanya boleh berwarna putih, biru, atau hitam.
Kebanyakan DBMS menyediakan sarana untuk:

  • untuk menentukan nilai default;
  • untuk memeriksa data sebelum memasukkannya ke dalam database;
  • untuk menjaga hubungan antar tabel;
  • untuk memastikan keunikan nilai;
  • untuk menyimpan prosedur tersimpan secara langsung dalam database.

Semua fitur ini dapat digunakan untuk mengimplementasikan aturan bisnis dalam database.

Model fisik

Langkah selanjutnya, setelah membuat model logis, adalah membangun model fisik. Model fisik adalah implementasi praktis dari database. Model fisik mendefinisikan semua objek yang harus Anda implementasikan.
Saat berpindah dari model logis ke entitas fisik, mereka dikonversi ke tabel, dan atribut ke kolom.
Relasi antar entitas dapat diubah menjadi tabel atau dibiarkan sebagai kunci asing.
Kunci utama diubah menjadi batasan kunci utama. Kemungkinan kunci berada dalam batasan keunikan.

Denormalisasi

Denormalisasi- ini adalah perubahan yang disengaja dalam struktur pangkalan yang melanggar aturan bentuk normal. Hal ini biasanya dilakukan untuk meningkatkan kinerja database.
Secara teoritis, seseorang harus selalu berusaha untuk basis yang sepenuhnya dinormalisasi, tetapi dalam praktiknya, basis yang dinormalisasi sepenuhnya hampir selalu berarti penurunan kinerja. Menormalkan database secara berlebihan dapat mengakibatkan beberapa tabel diakses setiap kali data diambil. Biasanya, empat tabel atau kurang harus berpartisipasi dalam kueri.
Teknik denormalisasi standar adalah: menggabungkan beberapa tabel menjadi satu, menyimpan atribut yang sama dalam beberapa tabel, dan menyimpan ringkasan atau data yang dihitung dalam sebuah tabel.

Beberapa tahun yang lalu, di antara kegiatan saya yang lain, ada pelajaran online tentang dasar-dasar membangun struktur database logis dan bahasa SQL. Saya tidak melakukan pelajaran saat ini, tetapi rekaman itu sendiri tetap ada, jadi saya memutuskan untuk mempostingnya, mengapa yang baik harus disia-siakan?

Hari ini kita akan berbicara tentang model hubungan entitas, atau model hubungan entitas.

Teori

Model Entity-Relationship atau model ER adalah model data konseptual tingkat tinggi yang dikembangkan untuk menyederhanakan tugas merancang struktur database.

Model ini merupakan sekumpulan konsep yang menggambarkan struktur database sebagai sekumpulan entitas, atribut dan relasi. Tujuan utama dari pengembangan model data seperti itu adalah untuk menciptakan persepsi pengguna terhadap data dan untuk menyepakati sejumlah besar aspek teknis yang terkait dengan desain basis data. Perlu dicatat secara khusus bahwa model data konseptual tidak bergantung pada DBMS atau platform perangkat keras tertentu yang digunakan untuk mengimplementasikan database.

Tujuan dari diagram "hubungan entitas" adalah untuk membuat representasi yang akurat dan lengkap dari area subjek nyata (SbD), yang kemudian digunakan sebagai sumber informasi untuk membangun database sistem pemrosesan informasi otomatis (DB ASOI).

Diagram atau model konseptual ObD ini harus memenuhi persyaratan berikut:

  • Pastikan tampilan SbA yang memadai;
  • Hadir dalam bahasa yang dapat dimengerti oleh pengguna ASOI dan pengembang basis data di masa mendatang;
  • Berisi informasi tentang ObD yang cukup untuk desain database lebih lanjut (pengembangan model logis dan fisik);
  • Menjamin interpretasi atau interpretasi model ObA yang tidak ambigu.

Konsep utama dari model ini adalah konsep entitas, atribut, dan hubungan.

ESENSI adalah sekumpulan objek dunia nyata dengan properti yang sama. Entitas dicirikan oleh keberadaan independen dan dapat menjadi objek dengan keberadaan fisik (atau nyata) atau objek dengan keberadaan konseptual (atau abstrak).

Entitas adalah konten utama dari fenomena atau proses (transaksi atau permintaan) yang diperlukan untuk mengumpulkan informasi, dan merupakan titik simpul pengumpulan informasi. Entitas mengacu pada sekumpulan objek atau benda yang homogen. Setiap entitas diidentifikasi dengan nama dan daftar properti (atribut). Entitas dapat berupa orang, tempat, benda, dll., Informasi tentang yang harus disimpan dalam database.

Praktik

CONTOH. bidang subjek " Pemesanan tiket di bioskop". Film ditampilkan di bioskop, tiket yang dapat dibeli pada hari pertunjukan atau dipesan terlebih dahulu. Basis data berisi informasi tentang semua pemutaran film di bioskop tertentu, termasuk yang lama. Setiap pemutaran film memiliki biaya sendiri, yaitu. tiket untuk film yang sama tetapi pada waktu yang berbeda mungkin berbeda harganya. Pemutaran film terdiri dari Film, informasi tentang yang juga disimpan dalam database.

Untuk Pro" Pemesanan tiket di bioskop” entitas akan menjadi konsep berikut:

Pemutaran film

Film

Penonton

Tiket

Pemesanan

Harga

Secara grafis, entitas dalam diagram hubungan entitas direpresentasikan sebagai persegi panjang:

ATRIBUT itu adalah cara dimana properti dari suatu entitas atau relasi didefinisikan. Atribut adalah karakteristik bernama dari suatu entitas. Nama atribut harus unik untuk entitas tertentu, tetapi mungkin sama untuk entitas yang berbeda.

Kumpulan atribut khusus untuk suatu entitas ditentukan oleh tugas di mana atribut tersebut digunakan. Misalnya, entitas ObA “Pemesanan tiket di bioskop” dapat dijelaskan menggunakan kumpulan atribut berikut:

Pemutaran film(Nomor Pemutaran Film, Nomor Film, Tanggal Pemutaran, Nomor Biaya);

Film(Nomor film, Judul, Durasi, Deskripsi Singkat);

Penonton(Nomor penonton, nama lengkap, tanggal lahir);

Tiket(Nomor Penonton, Nomor Pemutaran Film, Harga Tiket);

Pemesanan(Nomor auditor, Nomor penyaringan, tanggal pemesanan);

Harga(Nomor biaya, Nomor penyaringan, biaya).

Secara grafis, atribut suatu entitas direpresentasikan sebagai info yang mencantumkan daftar nama atribut. Sebagai contoh:

Cetak miring tebal dan garis bawah menunjukkan kunci utama, atribut dari entitas yang secara unik mencirikannya. Menggarisbawahi menunjukkan kunci asing - atribut yang secara unik mencirikan entitas yang mereka rujuk.

KONEKSI adalah hubungan antara instance dari dua (atau lebih) entitas yang berbeda. Mekanisme hubungan digunakan untuk mendefinisikan hubungan antara entitas dalam ObA. Selain itu, ada hubungan antara atribut dari entitas yang terpisah (untuk dipertimbangkan saat membangun model logis).

Setiap tautan diberi nama yang harus menggambarkan fungsinya. Relasi memiliki ciri-ciri seperti nama koneksi, indeks kardinalitas, derajat partisipasi, derajat koneksi, waktu keberadaan koneksi, dan lain-lain.

Nama relasi harus memiliki arti tertentu agar lebih mudah dipahami bagaimana entitas terkait. Misalnya, hubungan antara entitas Penonton dan Tiket dapat didefinisikan sebagai "Beli".

Sebuah belah ketupat digunakan untuk secara grafis mewakili hubungan dalam diagram hubungan entitas. Di dalam belah ketupat, nama koneksi didefinisikan, dan entitas yang berpartisipasi dalam koneksi ini terhubung menggunakan garis.

Indikator kardinalitas hubungan (karakteristik tidak ambigu) menunjukkan tingkat hubungan antara entitas dan menjelaskan jumlah kemungkinan hubungan untuk setiap entitas yang berpartisipasi:

  • satu-satu (1:1);
  • satu-ke-banyak (1:N);
  • banyak-ke-banyak (N:M).