Mereka bentuk pangkalan data hubungan. Pangkalan data. Kerajaan Persekutuan Rusia

Model perhubungan data (RMD) beberapa bidang subjek mewakili satu set perhubungan yang berubah mengikut masa. Apabila mencipta sistem maklumat, satu set perhubungan membolehkan anda menyimpan data tentang objek kawasan subjek dan memodelkan sambungan antara mereka.

Pangkalan data hubungan adalah gudang data yang mengandungi set jadual dua dimensi, data dalam jadual mesti memenuhi prinsip berikut.

1. Nilai atribut (lajur, medan) mestilah atom (dengan kata lain, setiap nilai yang terkandung di persimpangan baris dan lajur tidak boleh dibahagikan kepada beberapa nilai).

2. Nilai setiap medan mestilah daripada jenis yang sama.

3. Setiap entri dalam jadual adalah unik.

4. Setiap medan mempunyai nama Unik.

5. Urutan medan dan rekod dalam jadual tidak penting

Sikap ialah konsep penting dan merupakan jadual dua dimensi yang mengandungi beberapa data.

Intipati adalah objek mana-mana alam semula jadi, data tentang yang disimpan dalam pangkalan data. Data entiti disimpan dalam perhubungan.

Atribut ialah sifat yang mencirikan entiti. Dalam Struktur Jadual, setiap atribut dinamakan dan sepadan dengan tajuk lajur jadual tertentu.

Kunci perhubungan ialah set atributnya yang mengenal pasti secara unik setiap tupel hubungan itu.

Kekunci biasanya digunakan untuk mencapai tujuan berikut:

Penghapusan nilai pendua dalam medan utama;

Rekod pesanan. Adalah mungkin untuk memesan dalam susunan menaik atau menurun nilai semua medan utama, serta susunan bercampur (untuk sesetengah - meningkat, dan untuk yang lain - menurun);

Organisasi penghubung jadual.

Konsep kunci asing adalah penting. Kunci asing boleh ditakrifkan sebagai satu set atribut bagi satu perhubungan R2, yang nilainya mesti sepadan dengan nilai kemungkinan kunci hubungan lain R1.

Sistem operasi boleh digunakan pada perhubungan, membenarkan satu diperolehi daripada yang lain. Sebagai contoh, hasil pertanyaan kepada pangkalan data hubungan mungkin merupakan hubungan baharu yang dikira berdasarkan hubungan sedia ada. Oleh itu, adalah mungkin untuk membahagikan data yang diproses kepada bahagian yang disimpan dan dikira. Unit utama pemprosesan data dalam pangkalan data hubungan adalah hubungan, dan bukan tupel individunya (rekod).

Mereka bentuk pangkalan data sistem maklumat adalah tugas yang agak intensif buruh. Ia dijalankan berdasarkan memformalkan struktur dan proses kawasan subjek, maklumat yang sepatutnya disimpan dalam pangkalan data. Membezakan konseptual dan litar- struktur reka bentuk.

Reka bentuk konsep pangkalan data IS sebahagian besarnya merupakan proses heuristik. Kecukupan model maklumat bagi kawasan subjek yang dibina dalam rangka kerjanya disahkan secara eksperimen semasa IS berfungsi.


Mari senaraikan peringkatnya rekabentuk konsep :

Mempelajari bidang subjek untuk dibentuk idea umum tentang dia;

Pengenalpastian dan analisis fungsi dan tugas IS yang dibangunkan;

Definisi objek-entiti utama kawasan subjek dan hubungan antara mereka;

Perwakilan formal bidang subjek.

Apabila mereka bentuk skema pangkalan data hubungan, prosedur berikut boleh dibezakan:

Menentukan senarai jadual dan hubungan antara mereka;

Menentukan senarai medan, jenis medan, medan utama setiap jadual (skema jadual), mewujudkan hubungan antara jadual melalui kunci asing;

Mewujudkan pengindeksan untuk medan dalam jadual;

Pembangunan senarai (kamus) untuk medan dengan data enumeratif;

Mewujudkan kekangan integriti untuk jadual dan perhubungan;

Normalisasi jadual, pelarasan senarai jadual dan perhubungan.

Reka bentuk pangkalan data dijalankan pada peringkat fizikal dan logik. Reka bentuk pada peringkat fizikal dilaksanakan menggunakan DBMS dan selalunya automatik.

Reka bentuk logik terdiri daripada menentukan bilangan dan struktur jadual, membangunkan pertanyaan pangkalan data, dokumen pelaporan, mencipta borang untuk memasukkan dan mengedit data dalam pangkalan data, dsb.

Salah satu tugas terpenting reka bentuk pangkalan data logik ialah penstrukturan data. Pendekatan berikut untuk mereka bentuk struktur data dibezakan:

Menggabungkan maklumat tentang objek entiti dalam satu jadual (satu perhubungan) dengan penguraian seterusnya ke dalam beberapa jadual yang saling berkaitan berdasarkan prosedur normalisasi perhubungan;

Merumus pengetahuan tentang sistem (menentukan jenis data sumber dan perhubungan) dan keperluan untuk pemprosesan data, mendapatkan skema pangkalan data siap sedia atau pun sistem maklumat aplikasi siap pakai menggunakan sistem CASE;

Perlaksanaan analisis sistem dan pembangunan model struktur.

Kesederhanaan dan kecekapan berasaskan pangkalan data model hubungan masih menentukan kedudukan dominan mereka dalam aplikasi perisian. Pada masa ini, penggunaan pangkalan data hubungan dalam sistem perisian berorientasikan objek dianggap sebagai norma. Ini nampaknya merupakan trend jangka panjang dan mampan.

Pangkalan data hubungan terdiri daripada banyak jadual dua dimensi. Jadual menyimpan pelbagai data. Sebagai contoh, pangkalan data mungkin mengandungi jadual pelanggan, barangan, akaun, dll. Struktur tipikal jadual pangkalan data hubungan ditunjukkan dalam Rajah. 1.2.

nasi. 1.2. Struktur biasa jadual pangkalan data hubungan

Barisan jadual dipanggil rekod atau dalam tupel. Lajur dipanggil sifat-sifat. Di persimpangan baris dan lajur ialah nilai tidak boleh dibahagikan (atom) bagi elemen data. Set nilai sah untuk atribut (lajur) ditentukan olehnya domain. Domain boleh menjadi sangat kecil. Jadi, nilai atribut Saiz Jadual sut sukan ialah L, XL dan XXL. Sebaliknya, domain atribut Nama keluarga sangat besar. Dalam pangkalan data, domain dilaksanakan menggunakan kekangan domain. Setiap kali nilai ditulis pada pangkalan data, pematuhannya dengan domain yang direkodkan untuk atribut tertentu akan diperiksa. Oleh itu, pangkalan data dilindungi daripada memasukkan nilai yang tidak sah, contohnya, tarikh 32 Mei.

Analog maya jadual ialah prestasi, yang berkelakuan seperti jadual biasa dari sudut pandangan pelanggan, tetapi tidak wujud dengan sendirinya. Jadual biasa mengandungi data. Paparan tidak mengandungi sebarang data, tetapi hanya menentukan sumbernya (satu atau lebih jadual biasa, baris boleh pilih, lajur boleh pilih). Malah, pandangan itu disimpan dalam pangkalan data sebagai permintaan untuk mencipta set data tertentu. Hasil daripada pertanyaan ini ialah kandungan paparan. Apabila data dalam jadual sumber berubah, kandungan paparan juga berubah.

Kunci digunakan untuk mengenal pasti rekod individu dalam jadual. Kunci utama(utamaKey, RK) setiap meja ada. Ini ialah lajur yang mengenal pasti secara unik setiap rekod dalam jadual. Dalam contoh kita, sebagai RK boleh jadi lajur Nama keluarga. Ini betul sehingga, sebagai contoh, Bender lain muncul. Untuk memastikan keunikan nilai kunci utama, dua teknik digunakan. Pertama, ia boleh digunakan kunci utama komposit (Kompositutamakunci), dibentuk oleh beberapa lajur (sifat semula jadi) jadual. Kedua, sebagai RK anda boleh memasukkan lajur tambahan ke dalam jadual yang tidak masuk akal dari sudut pandangan kawasan subjek. Dia dipanggil kunci pengganti. Sebagai contoh, kunci pengganti boleh jadi Nombor pelanggan atau Nomborpesanan.

Kunci lain memainkan peranan penting dalam pangkalan data hubungan - Kunci luaran. Kunci luaran (Asingkunci,FK) ialah lajur dalam satu jadual yang merujuk kepada kunci utama jadual lain. Menggunakan kunci asing, sambungan diwujudkan antara jadual pangkalan data yang berbeza (contoh ditunjukkan dalam Rajah 1.3) - mempercepatkan akses kepada jadual menggunakan indeks.

nasi. 1.3. Kunci luaran

Contoh ini menunjukkan bahawa invois dan jadual pelanggan dipautkan oleh kunci Nombor pelanggan. Jika kita lihat jadual akaun, maka Nombor akaun akan menjadi kunci utama dan Nombor pelanggan -kunci asing.

Untuk memastikan integriti data pangkalan data, kunci asing mesti memenuhi kekangan integriti rujukan. Ini bermakna setiap nilai kunci asing dalam satu jadual mesti mempunyai nilai yang sepadan dalam kunci utama sedia ada dalam jadual lain. Ini adalah yang paling penting daripada semua kekangan kerana ia memastikan konsistensi rujukan silang antara jadual. Jika nilainya betul kunci asing jangan semak, integriti rujukan data pangkalan data mungkin dilanggar. Sebagai contoh, memadamkan baris daripada jadual pelanggan boleh membawa kepada fakta bahawa dalam jadual pesanan akan kekal rekod pesanan yang dibuat oleh pelanggan yang kini tidak dikenali (dan siapa yang akan membayar untuk pesanan itu?). Kekangan integriti rujukan mesti dikekalkan secara automatik. Setiap kali data pangkalan data dimasukkan atau diubah, kawalan menyemak kekangan dan memastikan ia dipenuhi. Jika sekatan dilanggar, pengubahsuaian data adalah dilarang.

Di samping itu, jadual mungkin mengandungi kunci sekunder - indeks. Mereka digunakan sebagai indeks mata pelajaran dalam buku. Untuk mencari istilah khusus dalam buku, anda tidak perlu menyelak semua halaman berturut-turut - cuma lihat dalam indeks dan cari nombor halaman yang dikehendaki. Sebagai contoh, anda boleh membuat indeks pada lajur Nama keluarga(Gamb. 1.4).

nasi. 1.4. Percepatkan akses jadual menggunakan indeks

Akibatnya, jadual kecil akan dibentuk yang menyimpan hanya nama keluarga dan pautan ke kedudukan rekod dalam jadual utama. Kini anda tidak perlu melihat seluruh jadual besar untuk mencari rekod. Hasilnya, kami mendapat keuntungan dalam prestasi. Walau bagaimanapun, apabila menambah dan memadam rekod (dalam jadual utama), jadual indeks mesti dibuat semula. Ini melambatkan operasi.

Pemprosesan operasi data dalam pangkalan data hubungan dilakukan proses yang disimpanorang bodoh. Satu jenis prosedur tersimpan ialah pencetus. Pencetus sentiasa dikaitkan dengan jadual tertentu dan dipanggil secara automatik apabila peristiwa tertentu berlaku (contohnya, memasukkan, memadam atau mengemas kini rekod).

Mari kita bincangkan hubungan antara jadual. Selepas jadual dibentuk, mereka memutuskan cara menggabungkan data mereka apabila mengekstrak daripada pangkalan data. Langkah pertama adalah untuk menentukan hubungan antara jadual. Selepas ini, adalah mungkin untuk membuat pertanyaan, borang dan laporan yang memaparkan data daripada beberapa jadual sekaligus. Sebagai contoh, untuk mencetak invois, anda perlu mengambil data daripada jadual yang berbeza dan menggabungkannya. Perhubungan jadual mewujudkan hubungan antara nilai yang sepadan dalam medan utama. Mari kita lihat jenis-jenis perhubungan.

Hubungan satu dengan satu. Dalam kes ini, setiap baris (rekod) satu jadual dikaitkan dengan baris jadual lain (Rajah 1.5).

nasi. 1.5. Hubungan satu dengan satu

Contohnya ialah hubungan antara jadual pekerja dan jadual alamat mereka. Hubungan ini jarang berlaku kerana data yang berkaitan boleh diletakkan dalam satu jadual dengan mudah.

Hubungan satu-dengan-banyak. Satu rekod jadual pertama dikaitkan dengan beberapa rekod dalam jadual kedua (Rajah 1.6).

nasi. 1.6. Hubungan satu-dengan-banyak

Setiap rekod dalam jadual kedua tidak boleh mempunyai lebih daripada satu rekod yang sepadan dalam jadual pertama.

Hubungan ramai-ke-banyak. Satu rekod jadual pertama boleh sepadan dengan beberapa rekod dalam jadual kedua, dan satu rekod jadual kedua boleh sepadan dengan beberapa rekod pertama (Rajah 1.7).

nasi. 1.7. Hubungan ramai-ke-banyak

Biasanya, untuk mengatur perhubungan sedemikian, jadual tambahan diperlukan, yang terdiri daripada kunci utama dua jadual utama. Hubungan ini berlaku antara pesanan dan produk. Satu pesanan mungkin termasuk beberapa nama produk, dan satu nama produk mungkin disertakan dalam beberapa pesanan. Oleh itu, mesti ada jadual pesanan, jadual produk dan jadual dengan pasangan pesanan-produk.

Sekarang mari kita pertimbangkan secara ringkas penormalan pangkalan data hubungan. Normalisasi memastikan pengoptimuman struktur pangkalan data. Ia membawa kepada penghapusan redundansi dalam set data. Normalisasi pangkalan data dilakukan secara berurutan, langkah demi langkah. Peraturan penormalan dibentangkan dalam bentuk bentuk biasa.

Bentuk normal pertama (1NF) memerlukan bahawa nilai semua elemen data dalam lajur adalah atom. Bentuk normal kedua (2NF) memerlukan setiap lajur bukan kunci bergantung sepenuhnya pada kunci primer. Bentuk normal ketiga (3NF) memerlukan semua lajur bukan kunci (atribut) saling bebas dan bergantung sepenuhnya pada kunci primer. Kebergantungan wujud jika, sebagai contoh, nilai satu lajur dikira daripada data dalam lajur lain. Hasil daripada normalisasi ialah struktur optimum pangkalan data di mana terdapat pertindihan data yang diperlukan, tetapi tiada redundansi.

Hantar kerja baik anda di pangkalan pengetahuan adalah mudah. Gunakan borang di bawah

Pelajar, pelajar siswazah, saintis muda yang menggunakan pangkalan pengetahuan dalam pengajian dan kerja mereka akan sangat berterima kasih kepada anda.

Disiarkan pada http://www.allbest.ru/

Ujian

Reka Bentuk Pangkalan Data Hubungan

  • Normalisasi hubungan
  • Kebergantungan fungsional
  • Borang Boyce-Codd biasa
  • kesusasteraan

Reka Bentuk Pangkalan Data Hubungan

Matlamat utama reka bentuk pangkalan data adalah untuk mengurangkan lebihan data yang disimpan, dan oleh itu menjimatkan jumlah memori yang digunakan, mengurangkan kos operasi kemas kini berganda salinan berlebihan dan, pertama sekali, menghapuskan kemungkinan ketidakkonsistenan disebabkan oleh menyimpan maklumat tentang isipadu yang sama di tempat yang berbeza objek yang sama. Lebihan bermakna bahawa sesetengah data atau kumpulan data mungkin diulang berkali-kali.

Semasa proses reka bentuk pangkalan data, masalah berikut mungkin timbul:

Anomali kemas kini - Disebabkan lebihan data, semua data mesti disemak semasa mengemas kininya, bagaimanapun, situasi mungkin timbul di mana tidak semua data dikemas kini (kemungkinan data tidak konsisten).

Anomali kemasukan - ada kemungkinan data tidak boleh dimasukkan ke dalam pangkalan data sehingga beberapa maklumat tambahan telah diterima dan dimasukkan.

Anomali pemadaman - masalah terbalik mungkin berlaku apabila sesetengah data dipadamkan (kemungkinan kehilangan maklumat berguna).

Bilangan nilai Null tidak diminimumkan. Sama seperti redundansi, nilai yang tidak ditentukan adalah sumber masalah yang berpotensi dalam pangkalan data hubungan kerana adalah mustahil untuk menentukan maksudnya. Oleh itu, adalah dinasihatkan untuk meminimumkan penggunaannya.

Tiga masalah pertama diselesaikan dalam proses menormalkan hubungan.

pergantungan fungsi asas hubungan

Normalisasi hubungan

Normalisasi ialah partition (atau penguraian) jadual kepada dua atau lebih yang mempunyai sifat yang lebih baik untuk menambah, menukar dan memadam data. Matlamat akhir normalisasi adalah untuk mencapai reka bentuk pangkalan data "bersih" di mana " setiap fakta disimpan sahaja V satu tempat" , iaitu lebihan data dihapuskan. Ini dilakukan bukan untuk menjimatkan memori tetapi untuk menghapuskan kemungkinan ketidakkonsistenan dalam data yang disimpan.

Setiap jadual dalam pangkalan data hubungan memenuhi syarat bahawa sentiasa ada nilai atom tunggal di persimpangan setiap baris dan lajur jadual, dan tidak boleh ada berbilang nilai sedemikian. Mana-mana jadual yang memenuhi syarat ini dipanggil dinormalkan. Sebenarnya, jadual tidak normal, iaitu jadual yang mengandungi kumpulan berulang, tidak dipertimbangkan dalam pangkalan data hubungan.

Jadual ternormal sepadan dengan pertama biasa bentuk, singkatan 1NF. Oleh itu, "dinormalkan" dan "dalam 1NF" bermaksud perkara yang sama untuk jadual. Walau bagaimanapun, dalam amalan, istilah "dinormalisasi" sering digunakan dalam erti kata yang lebih sempit - "dinormalisasi sepenuhnya", yang bermaksud bahawa reka bentuk tidak melanggar sebarang prinsip normalisasi.

Kini, sebagai tambahan kepada 1NF, tahap normalisasi selanjutnya boleh ditakrifkan - bentuk normal kedua (2NF), bentuk normal ketiga (3NF), dsb. Jadual dianggap berada dalam 2NF jika ia berada dalam 1NF dan, sebagai tambahan, memenuhi beberapa syarat tambahan, yang intipatinya akan dibincangkan di bawah. Jadual berada dalam 3NF jika ia berada dalam 2NF dan juga memenuhi syarat tambahan lain, dsb.

Oleh itu, setiap bentuk normal dalam erti kata tertentu lebih terhad, tetapi juga lebih diingini, daripada yang sebelumnya. Ini disebabkan oleh fakta bahawa (n+1) - i bentuk normal tidak mempunyai beberapa ciri yang tidak menarik, ciri ke-n bentuk biasa. Maksud umum syarat tambahan yang dikenakan ke atas bentuk normal (n+1) ke atas bentuk normal ke-n adalah untuk menghapuskan ciri-ciri yang tidak menarik ini.

Prosedur untuk menormalkan hubungan boleh diterbalikkan. Sebagai contoh, satu set hubungan dalam 3NF boleh ditukar kepada hubungan dalam 2NF. Sifat normalisasi yang sangat penting ini bermakna tiada maklumat hilang semasa proses normalisasi.

Teori normalisasi adalah berdasarkan kehadiran kebergantungan tertentu antara medan jadual. Perhatian istimewa Memberi tumpuan pada kebergantungan berfungsi, berbilang nilai dan sambungan.

Kebergantungan fungsional

Biarkan X dan Y menjadi subset arbitrari bagi set atribut hubungan R. Y bergantung pada X secara fungsi jika dan hanya jika setiap nilai X dikaitkan dengan tepat satu nilai Y. Notasi: XY (baca "X berfungsi menentukan Y "). Bahagian kiri dan kanan tatatanda simbolik dipanggil bahagian penentu dan bergantung.

nasi. 1. Jadual bekalan PIC

Dalam erti kata lain, jika dua tupel bagi hubungan R bertepatan dengan nilai X, maka ia juga bertepatan dengan nilai Y. Untuk penjelasan, pertimbangkan rajah yang ditunjukkan dalam Rajah. 1 ialah versi jadual bekalan yang diubah suai sedikit yang ditunjukkan dalam Rajah. 2.

Semua tupel perhubungan PIC dengan nilai yang sama bagi atribut P№ mempunyai nilai yang sama atribut Gunung. Ini bermakna bahawa sifat-sifat Gunung secara fungsinya bergantung kepada sifat-sifat P№: (P№)(Gor). Selain itu, dalam hal ini, terdapat kebergantungan fungsi malar lain: (P№, D№)(Kol), (P№, D№)(Gor), (P№, D№)(Gor, Col), (P №, Д№)(П№), (П№, Д№)(П№, Д№, Gor, Kol), serta kebergantungan yang berfungsi dalam mana-mana masa ini, tetapi tidak sepanjang masa, contohnya, (P№)(Col).

Ambil perhatian bahawa jika X ialah kunci calon bagi hubungan R, maka semua atribut Y bagi hubungan R mestilah bergantung secara fungsi pada X (ini adalah akibat daripada takrifan kunci calon). Malah, jika hubungan R memenuhi kebergantungan fungsi AB dan A bukan kunci berpotensi, maka R akan dicirikan oleh beberapa redundansi. Sebagai contoh, berkenaan dengan PIC, maklumat bahawa setiap pembekal terletak di bandar tertentu akan diulang berkali-kali.

Kebergantungan fungsional ialah kekangan integriti, jadi ia mesti disemak setiap kali pangkalan data dikemas kini. Dengan cara yang jelas mengurangkan banyak kebergantungan berfungsi adalah pengecualian remeh kebergantungan, iaitu yang tidak boleh gagal untuk dipenuhi. Contohnya, (P№, D№)(P№). Pergantungan fungsional adalah remeh jika dan hanya jika bahagian kanan tatatanda simbolik ialah subset bahagian kiri. Kebergantungan sedemikian tidak menarik minat dari sudut praktikal.

Apabila menganalisis hubungan peranan khas diberikan tidak dapat dikurangkan kebergantungan. Atribut B tidak dapat dikurangkan bergantung pada atribut komposit A ​​jika ia bergantung pada A dan tidak bergantung pada mana-mana subset atribut A. Dalam penerbitan awal, bukannya istilah tidak dapat dikurangkan ketagihan istilah yang digunakan penuh berfungsi ketagihan.

Kebergantungan fungsional boleh digambarkan menggunakan gambar rajah. Untuk pangkalan data pembekal dan alat ganti (Rajah 1), gambar rajah kebergantungan berfungsi ditunjukkan dalam Rajah 2.

Setiap anak panah dalam rajah bermula dengan kunci utama perhubungan yang sepadan. Anak panah lain boleh didapati pada rajah. Dalam kes ini, prosedur normalisasi boleh dicirikan secara tidak rasmi sebagai prosedur untuk menghapuskan anak panah yang tidak bermula pada kekunci utama.

Bentuk biasa dibenarkan oleh kebergantungan fungsi

Kami menyebut bentuk normal pertama (1NF). Mari kita berikan definisi yang lebih ketat mengenainya, serta definisi bentuk normal yang lain.

Jadual berada dalam bentuk biasa pertama (1NF) jika dan hanya jika tiada barisnya mengandungi lebih daripada satu nilai dalam mana-mana medannya dan tiada medan utamanya kosong.

Sebagai contoh, jadual yang ditunjukkan dalam Rajah 3 tidak memenuhi keperluan ini (data dalam medan D№ bukan atom):

nasi. 3. Contoh jadual yang bukan hubungan perhubungan

Jadual sedemikian tidak dipertimbangkan dalam model hubungan.

Jika kita sedang membangunkan pangkalan data hubungan, maka pada peringkat pertama jadual boleh dibuat yang menggabungkan semua data yang sedang dipertimbangkan, contohnya, Pembekal, Bahagian, Bekalan. Jadual dalam Rajah 3 mewakili hubungan hubungan yang betul. Dia dipanggil sejagat sikap pangkalan data yang direka. Satu perhubungan sejagat merangkumi semua sifat yang diminati dan boleh mengandungi semua data yang dijangka disimpan dalam pangkalan data pada masa hadapan. Untuk pangkalan data kecil, hubungan sejagat boleh digunakan sebagai titik permulaan untuk reka bentuk pangkalan data. Kekunci utama jadual ialah gabungan medan P№ dan D№. Jadual ini memenuhi semua keperluan 1NF.

Dosimeter

Radiometer

Dosimeter

Dosimeter

Dosimeter

nasi. 4. Hubungan dalam bentuk normal pertama

Gambar rajah kebergantungan fungsi perhubungan sedemikian mempunyai bentuk yang ditunjukkan dalam Rajah. 4 (kami akan menganggap bahawa status pembekal ditentukan oleh bandar).

Hubungan yang dimaksudkan, iaitu dalam 1NF, mempunyai struktur yang atas sebab tertentu tidak diingini sepenuhnya. Sebagai contoh, terdapat lebihan maklumat yang jelas. Ini membawa bukan sahaja kepada peningkatan dalam saiz pangkalan data, tetapi juga kepada pelbagai anomali:

Sisipkan. Anda tidak boleh memasukkan data tentang pembekal (P5) tanpa menyatakan bahagian (Nilai nol dalam medan kunci tidak dibenarkan).

Padam. Apabila anda memadam tuple tertentu, anda perlu memadam terlalu banyak maklumat lain (memadam maklumat bekalan memadam maklumat pembekal).

Kemas kini. Maklumat yang berlebihan boleh membawa kepada keputusan yang tidak konsisten. Jika pembekal P1 berpindah ke bandar lain, dan kemas kini tidak dibuat dalam semua tupel, maka pangkalan data akan mengandungi maklumat yang bercanggah.

Anomali ini boleh dihapuskan dengan mengurangkan hubungan kepada bentuk normal kedua, memecahkannya kepada dua.

Jadual berada dalam bentuk normal kedua (2NF) jika ia memenuhi takrifan 1NF dan semua medannya yang bukan sebahagian daripada kunci primer adalah tidak dapat dikurangkan bergantung pada kunci primer (atau bergantung sepenuhnya pada kunci primer).

Kebergantungan fungsi hubungan dalam pangkalan data kami dikurangkan kepada 2NF ditunjukkan dalam Rajah. 4, dan jadual yang sepadan adalah dalam Rajah. 5.

Kini anda boleh memasukkan maklumat tentang pembekal ke dalam pangkalan data tanpa maklumat tentang produk mereka; apabila anda memadam maklumat tentang produk, data yang tinggal kekal (mengenai pembekal, contohnya), maklumat tentang bandar muncul sekali sahaja, dan ini menghapuskan masalah yang berkaitan dengan lebihan maklumat. Iaitu, terima kasih kepada penguraian, kami menyingkirkan banyak masalah yang terdapat dalam hubungan dalam 1NF. Pada masa yang sama, hubungan yang ditunjukkan dalam Rajah 5 boleh digabungkan dan kemudian kita akan kembali kepada hubungan yang ditunjukkan dalam Rajah 3 - yang bermaksud penguraian telah dijalankan tanpa kehilangan data.

Oleh itu, pertama pentas prosedur normalisasi perhubungan ialah Ciptaan unjuran Untuk pengecualian " dipetik" berfungsi kebergantungan.

nasi. 7. Hubungan dalam 2NF

Walau bagaimanapun, struktur perhubungan yang ditunjukkan dalam Rajah 7 mungkin menimbulkan beberapa masalah yang berkaitan dengan perhubungan Pembekal di mana atribut bukan kunci tidak saling bebas. Pergantungan atribut Status pada atribut P№ berfungsi dan tidak boleh dikurangkan, tetapi pergantungan ini juga transitif melalui atribut City - setiap nilai P№ menentukan nilai City, dan setiap nilai City menentukan nilai Status. Tetapi jika kebergantungan AB dan BC berpuas hati, maka kebergantungan AC juga berpuas hati. Kebergantungan transitif sekali lagi boleh membawa kepada anomali kemas kini:

Sisip - anda tidak boleh memasukkan data tentang bandar tertentu dan statusnya semasa tiada pembekal di dalamnya.

Pemadaman - apabila pembekal dipadamkan, maklumat tentang status bandar hilang (jelas, punca masalah ini adalah maklumat bersama - jadual mengandungi maklumat mengenai kedua-dua pembekal dan bandar).

Kemas kini - status bandar diulang beberapa kali. Apabila menukar status bandar, anda perlu melihat melalui banyak baris untuk mengelak daripada mendapat keputusan yang tidak konsisten, tetapi kemungkinan ralat kekal.

Masalahnya diselesaikan dengan membawa hubungan Pembekal kepada bentuk normal ketiga melalui penguraiannya:

Prosedur ini menghapuskan pergantungan transitif dan menyelesaikan semua kesukaran.

Sikap terletak V ketiga biasa bentuk (3NF) Kemudian Dan sahaja Kemudian, Bila ia terletak V 2NF Dan setiap bukan kunci atribut tak transitif bergantung daripada utama kunci.

Dalam kata lain: meja terletak V ketiga biasa bentuk (3NF), Jika dia terletak V 2NF Dan tidak juga satu daripada dia bukan kunci padang Tidak bergantung berfungsi daripada mana-mana yang lain bukan kunci padang.

Oleh itu, kedua pentas normalisasi ialah Ciptaan unjuran Untuk pengecualian transitif kebergantungan.

Semasa prosedur normalisasi, situasi sering timbul apabila hubungan boleh tertakluk kepada penguraian dalam beberapa cara. Contohnya, hubungan Pembekal (Rajah 7) dengan kebergantungan berfungsi P#City dan CityStatus dan, oleh itu, kebergantungan transitif P#Status. Terdapat pilihan yang mungkin untuk menguraikan hubungan ini kepada dua unjuran yang terletak dalam 3NF:

A: (P№, Bandar) dan (Bandar, Status) (seperti yang dicadangkan sebelum ini) dan B: (P№, Bandar) dan (P№, Status)

Pilihan ketiga penguraian kepada unjuran (P№, Status) dan (Bandar, Status) tidak boleh digunakan, kerana ia dilakukan dengan kehilangan maklumat - beberapa bandar boleh mempunyai status yang sama, kemudian maklumat tentang bandar tempat pembekal terletak akan hilang.

Atas sebab tertentu, penguraian B kurang diingini daripada penguraian A. Contohnya, selepas melakukan penguraian B, tidak mungkin untuk memasukkan maklumat bahawa bandar tertentu mempunyai status tertentu tanpa menyatakan pembekal dari bandar tersebut.

Dalam penguraian A, kedua-dua unjuran adalah bebas antara satu sama lain dalam erti kata kemas kini dalam setiap unjuran boleh dilakukan sepenuhnya secara bebas antara satu sama lain. Dalam penguraian B, kemas kini kepada salah satu daripada dua unjuran mesti dikawal supaya tidak memecahkan kebergantungan CityStatus asal. Iaitu, unjuran penguraian B tidak bebas antara satu sama lain.

Konsep kemerdekaan unjuran menyediakan kriteria untuk memilih salah satu daripada beberapa kemungkinan penguraian. Unjuran R1 dan R2 bagi hubungan R adalah bebas dalam erti kata yang disebutkan di atas jika dan hanya jika

Setiap pergantungan fungsian berhubung dengan R adalah akibat logik pergantungan fungsi dalam unjuran R1 dan R2;

Atribut biasa unjuran R1 dan R2 membentuk kunci berpotensi, menurut sekurang-kurangnya, untuk salah seorang daripada mereka.

Dalam contoh yang dipertimbangkan dalam penguraian A, kedua-dua unjuran adalah tidak bersandar, memandangkan atribut sepunya Bandar adalah kunci yang berpotensi untuk unjuran kedua dan setiap kebergantungan fungsi perhubungan asal dikekalkan dalam unjuran. Sebaliknya, dalam penguraian B kedua-dua unjuran tidak bebas, kerana kebergantungan CityStatus tidak boleh diperoleh daripada kebergantungan fungsi unjuran ini, walaupun atribut sepunya mereka P№ ialah kunci berpotensi untuk kedua-dua unjuran.

Idea normalisasi dengan penguraian menjadi unjuran bebas telah dicadangkan oleh Rissanen dan dipanggil penguraian Dengan pemeliharaan kebergantungan.

Borang Boyce-Codd biasa

Setakat ini, kami telah mengandaikan untuk kesederhanaan bahawa setiap perhubungan hanya mempunyai satu kunci calon - kunci utama. Takrifan 3NF di atas tidak sesuai sepenuhnya jika

- perhubungan mempunyai dua atau lebih kunci calon;

- dua kunci calon adalah kompleks dan ia bertindih (mempunyai sekurang-kurangnya satu atribut biasa).

Oleh itu, takrifan 3NF telah ditambah biasa bentuk Boyce-Codd ( Boyce-Codd) - NFBC. Ia boleh dirumuskan seperti ini:

Sikap terletak V biasa bentuk Boyce-Codd Kemudian Dan sahaja Kemudian, Bila penentu adalah potensi kunci.

Dalam erti kata lain, dalam gambar rajah kebergantungan berfungsi, anak panah hendaklah hanya bermula dengan kekunci calon.

Gabungan keadaan sedemikian tidak selalunya ditemui dalam amalan, jadi untuk hubungan tanpa syarat sedemikian, 3NF dan BCNF adalah setara.

Mari kita berikan satu lagi definisi: Jadual terletak V biasa bentuk Boyce-Codd (NFBC), Kemudian Dan sahaja Kemudian, Bila mana-mana berfungsi ketagihan antara dia padang turun ke Kepada tidak dapat dikurangkan berfungsi kebergantungan daripada potensi kunci.

Pertimbangkan contoh yang melibatkan dua kunci calon yang tidak bertindih:

Pembekal (P№, Nama_P, Status, Bandar),

dengan atribut P№ dan Name_P adalah kunci berpotensi, dan atribut Status dan City adalah bebas sepenuhnya. Gambar rajah kebergantungan berfungsi ditunjukkan dalam Rajah. 8. Hubungan ini terdapat dalam BCNF. Di sini, semua penentu ialah kunci berpotensi, dan semua anak panah bermula dengan kunci berpotensi.

Berikut ialah contoh perhubungan di mana kunci berpotensi bertindih.

Contoh pertama: Hubungan penghantaran (P№, Nama_P, D№, Kuantiti).

Terdapat beberapa redundansi dalam hal ini yang menyebabkan anomali kemas kini. Kekunci berpotensi di sini ialah (P№, D№) dan (Nama_P, D№), dan P№ dan Nama_P saling mendefinisikan satu sama lain. Hubungan ini bukan dalam bentuk normal kedua dan boleh dibahagikan kepada dua unjuran (P№, Nama_P) dan (P№, D№, Kuantiti) untuk mendapatkan kebergantungan fungsi yang tidak dapat dikurangkan. Tetapi penguraian yang sama boleh dicadangkan berdasarkan fakta bahawa hubungan itu tidak dalam BCNF, kerana mengandungi dua penentu yang bukan kunci berpotensi (P№ dan Name_P ialah penentu, kerana ia mentakrifkan satu sama lain):

Pembekal (P#, Nama_P) dan Bekalan 1 (P#, D#, Kuantiti).

Contoh kedua: Nisbah SDP (S, D, P),

di mana atribut bermaksud Pelajar, Disiplin dan Guru. Tuple bagi hubungan SDP bermakna bahawa sesetengah pelajar C sedang mempelajari beberapa disiplin D daripada beberapa guru P. Terdapat sekatan:

- Setiap pelajar mempelajari subjek tertentu dengan seorang guru;

- Setiap guru hanya mengajar satu mata pelajaran (tetapi setiap mata pelajaran boleh diajar oleh beberapa orang guru).

Kekangan pertama membayangkan pergantungan (C, D)P, dan yang kedua - PD. Rajah 9 menunjukkan contoh jadual dan gambar rajah kebergantungan fungsi bagi perhubungan tersebut. Dalam contoh yang sedang dipertimbangkan, terdapat dua kekunci berpotensi yang bertindih - (S, D) dan (S, P). Hubungannya adalah dalam 3NF (pergantungan transitif yang terdapat di sini adalah pada atribut utama), tetapi tidak dalam BNFB dan mempunyai beberapa anomali kemas kini. Sebagai contoh, jika kita memadam maklumat yang Oleg sedang belajar fizik, maka kita akan kehilangan maklumat yang Petrov ajar fizik. Masalah ini disebabkan oleh fakta bahawa P adalah penentu tetapi bukan kunci calon. Untuk menyelesaikan masalah ini, hubungan awal mesti dibahagikan kepada dua unjuran: SP dan PD.

Oleh itu, konsep NFBC membolehkan kita menyingkirkan beberapa masalah yang wujud dalam perhubungan dalam 3NF. Definisi BCNF definisi yang lebih mudah 3NF, kerana ia tidak menggunakan konsep bentuk biasa, kunci utama dan kebergantungan transitif. Di samping itu, konsep kunci calon boleh digantikan dengan pengenalan konsep pergantungan fungsi yang lebih asas. Tetapi sebaliknya, konsep kunci utama, pergantungan transitif, dll. berguna dalam amalan kerana mereka memperkenalkan idea proses tambahan yang dilakukan oleh pembangun untuk mengurangkan hubungan sewenang-wenangnya kepada set hubungan yang setara dalam BCNF.

Bentuk biasa dibenarkan oleh kebergantungan yang lebih kompleks

nasi. 10. Nisbah DPU tidak normal

Bentuk biasa berikut (4NF dan 5NF) mengambil kira bukan sahaja kefungsian, tetapi juga kebergantungan berbilang nilai dan sambungan antara atribut hubungan. Untuk berkenalan dengan mereka, pertimbangkan nisbah tidak normal yang ditunjukkan dalam Rajah 10. Setiap tuple perhubungan mengandungi nama disiplin, sekumpulan nama guru, dan satu set buku teks. Ini bermakna setiap kursus boleh diajar oleh mana-mana guru menggunakan mana-mana buku teks. Mari kita ubah nisbah ini kepada nisbah ternormal yang setara. Tiada kebergantungan fungsi telah ditentukan untuk data yang dibentangkan. Oleh itu, tiada asas formal untuk penguraian hubungan ini dan hubungan normal digambarkan dalam Rajah. sebelas.

Mekanik

Mekanik

Matematik

Geometri

Matematik

Mat. analisis

nasi. 11. Nisbah DPU ternormal

nasi. 12. Unjuran (D,P) dan (D,U) hubungan DPU

Jelas sekali, hubungan DPU dicirikan oleh redundansi yang ketara dan membawa kepada anomali kemas kini, contohnya, apabila menambah guru baharu, anda perlu memasukkan tuple untuk setiap buku teks. Walau bagaimanapun, sikap adalah kunci sepenuhnya dan oleh itu berada dalam BCNF. Masalah yang timbul adalah disebabkan oleh hakikat bahawa guru dan buku teks adalah bebas antara satu sama lain. Masalah nisbah DPU ternormal tidak akan timbul jika semua kumpulan ulangan bebas pada mulanya diasingkan. Dalam kes kami, adalah mungkin untuk memperbaiki keadaan dengan menggantikan nisbah DPU dengan unjuran (D, P) dan (D, U) (Rajah 12). Dalam kes ini, kedua-dua unjuran adalah kunci sepenuhnya dan terletak di BCNF, dan sambungannya memberikan jadual asal, iaitu, penguraian dilakukan tanpa kerugian. Penguraian ini tidak boleh dilakukan berdasarkan kebergantungan berfungsi, yang tidak terdapat dalam contoh ini. Ia boleh dilaksanakan atas dasar hubungan pelbagai nilai. Kebergantungan berbilang nilai ialah generalisasi kebergantungan fungsian dalam erti kata bahawa setiap kebergantungan berfungsi ialah kebergantungan berbilang nilai yang bahagian bergantungnya ialah set tunggal.

Berhubung dengan DPU, terdapat dua kebergantungan berbilang nilai: DP dan DU.

Yang pertama daripada kebergantungan berbilang nilai ini bermakna bahawa walaupun bagi setiap disiplin tidak ada seorang guru sahaja yang sepadan dengan disiplin ini, i.e. pergantungan fungsi DP tidak dipenuhi, namun, setiap disiplin mempunyai set guru tertentu, tanpa mengira nama buku teks.

Pergantungan berbilang nilai kedua ditafsirkan sama.

biarlah A, B, C adalah sewenang-wenangnya subset set sifat-sifat perhubungan R. DALAM samar-samar bergantung daripada A (A DALAM) Kemudian Dan sahaja Kemudian, Bila sekumpulan nilai DALAM, sesuai diberi pasangan nilai (A, DENGAN) perhubungan R, bergantung sahaja daripada A, Tetapi Tidak bergantung daripada DENGAN.

Jelas sekali, pergantungan berbilang nilai AB dipenuhi hanya apabila pergantungan berbilang nilai AC dipenuhi. Kebergantungan berbilang nilai sentiasa membentuk pasangan yang berkaitan: AB||C.

Kembali kepada masalah hubungan DPU, kita boleh mengatakan bahawa ia dikaitkan dengan kewujudan kebergantungan berbilang nilai yang tidak berfungsi (ia adalah kehadiran kebergantungan sedemikian yang memerlukan memasukkan dua tupel apabila perlu menambah data tentang guru fizik lain. ). Unjuran (D, P) dan (D, U) tidak mengandungi kebergantungan berbilang nilai dan oleh itu lebih diingini. Sebelum mentakrifkan bentuk normal keempat, mari kita berkenalan dengan teorem R. Fagin:

Biarkan A, B, C ialah set atribut bagi hubungan R(A, B, C). Hubungan R akan sama dengan gabungan unjurannya (A, B) dan (A, C) jika dan hanya jika kebergantungan berbilang nilai AB dan AC berpuas hati untuk hubungan R.

Sikap R terletak V keempat biasa bentuk (4NF) Kemudian Dan sahaja Kemudian, Bila V kes kewujudan polisemantik kebergantungan A B Semua berehat sifat-sifat R berfungsi bergantung daripada A.

Dalam kata lain:

Sikap R terletak V 4NF, Jika ia terletak V NFBC Dan Semua polisemantik kebergantungan perhubungan R sebenarnya adalah berfungsi kebergantungan daripada potensi kunci.

Hubungan DPU tiada dalam 4NF kerana ia mengandungi kebergantungan berbilang nilai yang bukan kebergantungan berfungsi. Walau bagaimanapun, kedua-dua unjuran (D, P) dan (D, U) berada dalam 4NF, yang, berbanding BCNF, membolehkan anda mencipta struktur yang dipertingkatkan.

Ambil perhatian bahawa konsep unjuran bebas Rissanen, berdasarkan kebergantungan fungsi (hubungan R(A,B,C), yang memenuhi kebergantungan fungsi A>B dan B>C, harus dibahagikan kepada unjuran (A,B) dan (B, C), dan bukan (A,B) dan (A,C)), juga boleh digunakan pada pilihan laluan penguraian, jika bukannya kebergantungan fungsi terdapat kebergantungan berbilang nilai A>>B dan A>>C. Dalam kes ini, penguraian kepada hubungan (A,B) dan (A,C) perlu dijalankan.

Dalam semua prosedur normalisasi yang dipertimbangkan sehingga tahap ini, penguraian satu hubungan kepada dua telah dijalankan. Kadang-kadang ini tidak boleh dilakukan, tetapi penguraian menjadi bilangan yang lebih besar perhubungan, yang masing-masing mempunyai sifat terbaik. Hubungan sedemikian dipanggil hubungan n-terurai, yang mana n>2.

Pertimbangkan, sebagai contoh, hubungan P-D-Pr (Pembekal-Bahagian-Projek) (Rajah 13). Pembekal yang sama mungkin membekalkan pelbagai jenis bahagian untuk projek yang berbeza. Kunci utama perhubungan ini ialah set lengkap atributnya; tiada kebergantungan berfungsi dan berbilang nilai (tiada kebergantungan berbilang nilai, kerana untuk P1 set bahagian bergantung pada projek). Oleh itu hubungannya adalah dalam 4NF. Walau bagaimanapun, mungkin terdapat anomali di dalamnya (tidak selalu jelas), yang boleh dihapuskan dengan penguraian kepada tiga hubungan (penguraian kepada dua hubungan adalah mustahil, kerana operasi terbalik tidak membenarkan kembali ke hubungan asal). Selain itu, tahap penguraian bergantung pada tupel. Sebagai contoh, jika dalam hubungan asal satu daripada tiga tupel pertama dikeluarkan atau tupel (P2, D1, P2) ditambah, maka ia boleh dibahagikan kepada dua unjuran. Jika dalam hubungan asal tuple terakhir dikeluarkan atau digantikan dengan tuple (P2, D1, Pr2), maka ia tidak boleh dibahagikan kepada dua atau tiga unjuran tanpa melanggar integriti data. Keteruraian hubungan ini boleh menjadi sifat asas dan bebas masa jika kekangan tambahan ditambah.

Pernyataan bahawa PDPr bersamaan dengan gabungan tiga unjuran PD, DPr, PrP adalah bersamaan dengan pernyataan berikut:

IFpair (P1, D1) tergolong dalam hubungan PD

Ipara (D1, Pr1) tergolong dalam hubungan Dpr

Ipara (Pr,1P1) tergolong dalam hubungan PrP,

TOTriple (P1, D1, Pr1) tergolong dalam hubungan PDPr.

Ini jelas, kerana triple P1, D1, Pr1 terletak dalam sambungan unjuran PD, Dpr, PrP. Pernyataan sebaliknya juga sentiasa benar.

Sebaliknya, adalah benar bahawa pasangan (P1, D1) hadir dalam hubungan dengan PD jika tiga kali ganda (P1, D1, Pr2) hadir dalam hubungan dengan PDP, pasangan (P1, D1) hadir dalam hubungan. kepada PPr jika (P1, D2, Pr1) berada di DPR, dan pasangan (D1, Pr1) adalah berkaitan dengan DPR, jika (P2, D1, Pr1) berada dalam DDP. Kemudian, jika kita mengambil kira pernyataan pertama kita, maka tupel (P1, D1, Pr1) mesti ada dalam hubungan sedemikian! Ini bermakna bahawa untuk memastikan ketepatan nisbah DPR pada bila-bila masa, adalah perlu untuk memperkenalkan sekatan berikut:

Jika tupel (P1, D1 , Pp2), (P2, D1 , Pp1) Dan (P1, D2 , Pp1) milik sikap PDPr, Itu Dan permotoran (P1, D1 , Pp1) Juga kepunyaan ini sikap.

Jika pernyataan ini sentiasa benar, iaitu, untuk semua tuple tambahan yang mungkin bagi hubungan PDPr, maka kekangan bebas masa pada hubungan ini akan diperoleh, yang dipanggil kekangan 3D. Memandangkan kekangan 3D dipenuhi apabila hubungan adalah bersamaan dengan sambungan beberapa unjurannya, kekangan sedemikian dipanggil kekangan sambungan.

Anda boleh memberi perhatian kepada fakta bahawa dalam contoh yang kami pertimbangkan terdapat beberapa kitaran dalam data. Kriteria untuk n-penguraian hubungan untuk n>2 ialah beberapa kekangan kitaran. Apakah maksud kekangan kitaran? Dalam contoh kami, biarkan tuple terakhir bermaksud bahawa Smith membekalkan sepana untuk Projek Manhattan. Tiga tupel pertama membawa maklumat bahawa Smitt membekalkan sepana, Smitt ialah pembekal kepada Projek Manhattan, dan sepana digunakan dalam Projek Manhattan. Tetapi kenyataan ini tidak membayangkan bahawa Smith yang membekalkan kunci untuk projek ini. Jika kita menguraikan hubungan PDPr, yang terdiri daripada tiga tupel ini, kepada tiga unjuran, maka sambungannya tidak akan sama dengan yang asal - tuple keempat "tambahan" (P1, D1, Pr1) akan muncul, seperti yang dinyatakan di atas. Untuk mengelakkan percanggahan sedemikian, kekangan tambahan diperkenalkan, yang boleh dilaksanakan dengan mudah dengan mengurai perhubungan. Penguraian sedemikian mungkin tanpa kehilangan maklumat hanya jika terdapat pergantungan sambungan:

Sikap R (X,Y,. , Z) memuaskan kebergantungan sambungan * (X,Y,. , Z) V isipadu Dan sahaja V isipadu kes, Bila R sedang dipulihkan tanpa kerugian oleh sambungan mereka unjuran pada X, Y,. , Z.

Mari kita lihat dua contoh anomali yang wujud dalam hubungan yang tertakluk kepada kekangan 3D.

2. Dalam hubungan yang ditunjukkan dalam Rajah 15, tupel (P2, D1, Pr1) boleh dipadam tanpa masalah. Tetapi jika anda memadam (P1, D1, Pr1), maka anda perlu memadamkan salah satu daripada yang selebihnya supaya tiada kitaran dalam data.

Sekarang teorem Feigin boleh dirumuskan seperti berikut:

Sikap R (A, B, C) memuaskan kebergantungan sambungan * (AB, ADENGAN) Kemudian Dan sahaja Kemudian, Bila ia memuaskan samar-samar kebergantungan A DALAM Dan A DENGAN.

Kebergantungan bergabung ialah generalisasi konsep kebergantungan berbilang nilai. Lebih-lebih lagi, ini adalah yang paling banyak bentuk umum kebergantungan.

Kembali kepada perhubungan Pembekal-Bahagian-Projek, anda akan mendapati bahawa ia mengandungi pergantungan gabungan PDPr * (PD, DPr, PrP), yang bukan pergantungan berfungsi mahupun berbilang nilai dan tidak tersirat oleh satu-satunya kunci potensinya - gabungan semua sifat. Adalah disyorkan untuk menguraikan perhubungan sedemikian kepada unjuran yang ditentukan oleh pergantungan sambungan. Proses penguraian ini boleh diulang sehingga semua perhubungan yang terhasil berada dalam kelima biasa bentuk (5NF).

Sikap R terletak V kelima biasa bentuk V isipadu Dan sahaja V isipadu kes, Bila mana-mana ketagihan sambungan V R sepatutnya daripada kewujudan beberapa mungkin kunci V R.

Takrifan 5NF yang kurang ketat:

Jadual terletak V kelima biasa bentuk (5NF) Kemudian Dan sahaja Kemudian, Bila V setiap satu dia penuh penguraian Semua unjuran mengandungi mungkin kunci. meja, Tidak mempunyai tidak juga satu penuh penguraian, Juga terletak V 5NF.

Sekarang kita boleh mengatakan bahawa selepas 3-penguraian hubungan PDPr unjuran PD, DPR dan PPR adalah dalam 5 bentuk biasa, kerana bagi mereka tidak ada pergantungan sambungan sama sekali.

Bentuk normal keempat (4NF) ialah kes khas 5NF, di mana penguraian lengkap mestilah gabungan tepat dua unjuran. Bukan mudah untuk mencari jadual sebenar yang berada dalam 4NF, tetapi bukan dalam 5NF.

Untuk hubungan R tertentu, kita boleh mengatakan bahawa ia berada dalam 5NF, dengan syarat semua kunci berpotensi dan semua kebergantungan sambungan diketahui. Walau bagaimanapun, tiada algoritma yang membolehkan anda menentukan semua kebergantungan sambungan. Tetapi hubungan sedemikian sangat jarang berlaku dalam amalan.

Bentuk normal kelima ialah bentuk normal terakhir yang boleh diperolehi melalui penguraian. Syaratnya agak tidak remeh, tetapi ia boleh dikatakan tidak digunakan.

Normalisasi dan prosedur reka bentuk

Kami melihat teknologi penguraian tanpa kerugian yang digunakan untuk reka bentuk pangkalan data. Idea asas teknologi ini adalah untuk mengurangkan secara sistematik hubungan asal, yang terdapat dalam 1NF, kepada satu set hubungan yang lebih kecil, yang dalam erti kata tertentu adalah bersamaan dengan hubungan asal, tetapi lebih disukai. Setiap peringkat proses pengurangan terdiri daripada pembahagian kepada unjuran hubungan yang diperoleh pada peringkat sebelumnya. Dalam kes ini, sekatan yang ditentukan digunakan pada setiap langkah prosedur normalisasi untuk memilih unjuran pada peringkat seterusnya. Normalisasi ialah pembahagian hubungan (jadual) kepada beberapa hubungan yang mempunyai sifat yang lebih baik apabila mengemas kini, termasuk, dan memadam data. Proses menggantikan jadual secara berturut-turut dengan penguraian lengkapnya dijalankan sehingga kesemuanya berada dalam 5NF (dalam amalan, ia biasanya terhad untuk mengurangkan hubungan dengan bentuk biasa Boyce-Codd). Secara umum, matlamat proses normalisasi berikut boleh dibezakan:

menghapuskan jenis redundansi tertentu;

membetulkan beberapa kemas kini, membolehkan dan memadam anomali;

mereka bentuk susun atur pangkalan data yang merupakan perwakilan "baik" bagi dunia sebenar, adalah intuitif, dan menyediakan asas yang baik untuk pembangunan selanjutnya;

memudahkan proses mengenakan kekangan integriti.

Mari kita senaraikan peraturan asas yang digunakan dalam prosedur normalisasi.

1. Hubungan bersatu mesti dikurangkan kepada 1NF.

2. Perhubungan dalam 1NF harus dibahagikan kepada unjuran untuk mengecualikan semua kebergantungan fungsi yang tidak boleh dikurangkan.

Dalam erti kata lain, jika hubungan mempunyai kunci utama komposit dalam bentuk (K1, K2) dan juga termasuk medan F, yang berfungsi bergantung pada sebahagian daripada kunci ini, contohnya, pada K2, tetapi bukan pada kunci penuh, maka dalam kes ini adalah disyorkan untuk membentuk hubungan lain yang mengandungi K2 dan F (kunci utama - K2), dan mengeluarkan F daripada hubungan asal:

Hasil daripada tindakan ini, satu set hubungan dalam 2NF akan diperolehi.

3. Perhubungan dalam 2NF hendaklah dibahagikan kepada unjuran untuk mengecualikan sebarang kebergantungan fungsi transitif. Dalam erti kata lain, jika hubungan mempunyai kunci calon K, atribut kunci bukan calon F1 yang bergantung secara fungsional pada K, dan atribut bukan kunci lain F2 yang bergantung secara fungsional pada F1, maka adalah disyorkan untuk mengalih keluar atribut F2. daripada hubungan asal dan bentuk hubungan lain yang mengandungi F1 dan F2, dengan kunci utama F1.

Hasilnya akan menjadi satu set hubungan dalam 3NF.

5. Hubungan dalam BCNF harus dipecahkan kepada unjuran untuk menghapuskan semua kebergantungan berbilang nilai yang bukan kebergantungan berfungsi. Hasilnya ialah satu set perhubungan dalam 4NF (dalam amalan, kebergantungan berbilang nilai tersebut biasanya dikecualikan apabila mencipta hubungan asal, memisahkan kumpulan berulang bebas).

6. Perhubungan harus dibahagikan kepada unjuran untuk menghapuskan sebarang kebergantungan gabungan yang tidak tersirat oleh kunci calon, jika ia boleh dikenal pasti. Ini akan menghasilkan satu set hubungan dalam 5NF (penguraian lengkap hubungan).

Apabila mengikut peraturan yang dicadangkan, perlu diingat bahawa pembahagian kepada unjuran mesti dilakukan tanpa kehilangan data dan sambil mengekalkan kebergantungan berfungsi dan berbilang nilai.

Garis panduan normalisasi yang dicadangkan hanyalah garis panduan, dan mungkin terdapat situasi di mana normalisasi tidak harus diselesaikan dari awal hingga akhir. Terdapat beberapa sebab untuk andaian ini. Pertama, normalisasi boleh membantu menangkap beberapa kekangan integriti dalam bentuk yang mudah, tetapi sebagai tambahan kepada kebergantungan berfungsi, berbilang nilai dan bergabung, jenis kebergantungan lain mungkin wujud dalam amalan. Kedua, terdapat beberapa kriteria untuk memilih penguraian pilihan. Ketiga, proses normalisasi dan ketagihan berterusan tidak selalunya serasi. Keempat, tidak semua redundansi boleh dihapuskan dalam proses normalisasi.

Reka bentuk sistem pangkalan data bermula dengan pembinaan model data maklumat, i.e. pengenalan entiti. Langkah-langkah prosedur reka bentuk berikut mesti dilengkapkan:

1. Wakilkan setiap entiti bebas sebagai jadual pangkalan data (jadual asas) dan tentukan kunci utama jadual asas ini.

2. Mewakili setiap persatuan (hubungan antara entiti) sebagai jadual asas. Gunakan kunci asing dalam jadual ini untuk mengenal pasti ahli persatuan dan nyatakan kekangan yang dikaitkan dengan setiap kunci asing ini.

3. Mewakili sifat entiti sebagai jadual asas dengan kunci asing yang mengenal pasti entiti yang sepadan. Tentukan kekangan pada kunci asing bagi jadual ini dan kunci utamanya.

4. Untuk mengecualikan pelanggaran yang tidak disengajakan terhadap mana-mana prinsip penormalan dalam projek, laksanakan prosedur penormalan.

5. Jika semasa proses normalisasi mana-mana jadual dibahagikan, maka model maklumat pangkalan data perlu diubah suai dan langkah di atas perlu diulang.

6. Tentukan kekangan integriti pangkalan data yang direka bentuk dan berikan (jika perlu) Penerangan Ringkas jadual yang terhasil dan medannya.

Untuk perwakilan visual Untuk struktur sistem yang direka bentuk, bahasa pemodelan maklumat "Jadual-Hubungan" boleh digunakan, digunakan dalam pangkalan data hubungan yang paling biasa. Di dalamnya, semua entiti diwakili sebagai jadual lajur tunggal dengan tajuk yang terdiri daripada nama entiti. Baris jadual ialah senarai atribut entiti, dan yang membentuk kunci utama diserlahkan. Hubungan antara entiti ditunjukkan oleh anak panah yang diarahkan daripada kunci utama atau komponennya.

7. Contoh reka bentuk pangkalan data

Tujuan dan bidang subjek

Pangkalan data direka untuk menyimpan maklumat tentang kakitangan syarikat tertentu. Syarikat ini mempunyai beberapa jabatan. Setiap jabatan mempunyai beberapa pekerja, beberapa projek dan beberapa pejabat. Setiap pekerja mempunyai beberapa tugas. Untuk setiap tugasan terdapat helaian dengan senarai sejumlah wang diterima oleh pekerja untuk melaksanakan kerja ini. Setiap pejabat mempunyai beberapa telefon.

Maklumat berikut hendaklah disimpan dalam pangkalan data:

Bagi setiap jabatan: nombor unik jabatan, belanjawan dan nombor unik ketua jabatan;

untuk setiap pekerja: nombor pekerja yang unik, nombor projek semasa, nombor pejabat, nombor telefon, serta nama kerja yang dilakukan, bersama-sama dengan tarikh dan jumlah semua bayaran yang diterima untuk melaksanakan kerja ini;

untuk setiap projek: nombor projek dan belanjawan unik;

untuk setiap pejabat: nombor pejabat unik, kawasan, semua nombor telefon.

Pernyataan semantik (sekatan): Tiada pekerja secara serentak ketua beberapa jabatan; tiada pekerja bekerja di lebih daripada satu jabatan pada masa yang sama; tiada pekerja bekerja serentak pada lebih daripada satu projek; tiada pekerja mempunyai lebih daripada satu pejabat pada satu masa; tiada pekerja mempunyai lebih daripada satu telefon pada satu masa; tiada pekerja mempunyai lebih daripada satu tugas pada satu masa; tiada projek diberikan kepada lebih daripada satu jabatan pada satu masa; tiada pejabat milik lebih daripada satu jabatan pada masa yang sama.

Reka bentuk pangkalan data

Analisis objek dan atribut yang ditakrifkan di atas membolehkan kami mengenal pasti entiti pangkalan data yang direka bentuk dan membina model maklumatnya dalam bentuk "Jadual Pautan" (Rajah 16).

nasi. 16. Maklumat tentang syarikat yang sepatutnya disimpan dalam pangkalan data

Struktur hierarki asal boleh dilihat sebagai hubungan tidak normal:

JABATAN (NO. JABATAN, BAJET_O, NO. PENGURUSAN, PEKERJA, PROJEK, PEJABAT) KUNCI CALON (NO. JABATAN) KUNCI CALON (NO. PENGURUSAN)

Di sini, maksud atribut DTD# (nombor jabatan unik), BUDGET_O, RUK# (nombor pengurus) jelas daripada nama, dan atribut PEKERJA, PROJEK, PEJABAT terdiri daripada nilai perhubungan. Kita boleh menerangkan atribut bersarang mereka:

JABATAN (No. JABATAN, BELANJAWAN, NO. PENGURUSAN, PEKERJA (No. STEAM, No. PROJEK, No. PEJABAT, No. TEL, KERJA (TOPIK, BAYARAN (TARIKH, JUMLAH)))), PROJEK (No. PROJEK, BAJET_P ), PEJABAT (NO. PEJABAT, KAWASAN, TELEFON (TEL#))) KUNCI CALON (JABATAN#) KUNCI CALON (RANK#)

Sekarang kita boleh mengurangkan hubungan ini kepada satu set hubungan dalam 1NF. Pada masa yang sama, dengan mengambil kira setiap perhubungan nilai secara berasingan, kami mengecualikan semua kebergantungan berbilang nilai yang bukan kebergantungan berfungsi.

JABATAN1 (JABATAN#, BELANJAWAN_O, PENGURUSAN#) KUNCI UTAMA (JABATAN#) KUNCI GILIRAN (PENGURUSAN#)

PEKERJA1 (No. COTR, ​​No. JABATAN, No. PROJEK, No. KABIN, No. TEL) KUNCI UTAMA (NO. PEKERJA)

KERJA1 (PERKARA, NO. PENYALIN) KUNCI UTAMA (SUBJEK, NO. SALINAN)

BAYARAN1 (NO. PERBADANAN, PERKARA, TARIKH, JUMLAH) KUNCI UTAMA (NO. PERBADANAN, PERKARA, TARIKH)

PROJEK1 (PROJEK#, BAJET_P, JABATAN#) KUNCI UTAMA (PROJEK#)

PEJABAT1 (NO. BILIK, KAWASAN, NO. JABATAN) KUNCI UTAMA (NO. BILIK)

TELEFON1 (TEL#, bilik#) KUNCI UTAMA (TEL#)

Hubungan JABATAN1, PEKERJA1, PEMBAYARAN1, PROJEK1, PEJABAT1 dan TELEFON1 sudah berada dalam 2NF.

Hubungan JOB1 ialah unjuran hubungan PAYMENT1, oleh itu ia membawa maklumat berlebihan dan boleh dipadamkan tanpa kehilangan data. Pada masa yang sama, hubungan PHONES1 ialah unjuran hubungan EMPLOYEES1, tetapi jika ia dipadamkan, anomali kemas kini akan muncul - data tentang telefon tidak akan wujud tanpa data tentang pekerja tertentu.

Sekarang mari kita tunjukkan struktur pangkalan data, perhubungannya dikurangkan kepada 2NF, menggunakan bahasa pemodelan "Table-Relationship", yang digunakan dalam MS ACCESS DBMS:

Selanjutnya, tidak termasuk kebergantungan transitif, kita boleh mengurangkan hubungan kepada set hubungan yang setara dalam 3NF. Satu-satunya hubungan yang tiada dalam 3NF ialah hubungan COTRUDN, di mana atribut KABNo. dan DTDNo. transitif bergantung pada kunci utama COTRNO. - KABNo. melalui TELNo., dan DTDNo. melalui PROJECTNo. dan, sebagai tambahan, melalui KABNo. dan NO TEL. Kemudian hubungan COTRUDN boleh digantikan dengan satu set unjuran yang terletak dalam 3NF:

X (TEL#, CAB#) KUNCI UTAMA (TEL#)

Y (No. PROJEK, No. JABATAN) KUNCI UTAMA (No. PROJEK)

Z (KAB#, OTD#) KUNCI UTAMA (KAB#)

Tetapi hubungan X adalah analog hubungan PHONE2, Y ialah unjuran hubungan PROJECT2, Z ialah unjuran OFFICE2 dan, oleh itu, boleh dialih keluar daripada model pangkalan data. Oleh itu, model pangkalan data yang hubungannya dikurangkan kepada 3NF akan kelihatan seperti ini:

JABATAN3 (JABATAN#, BELANJAWAN_O, PENGURUSAN#) KUNCI UTAMA (JABATAN#) KUNCI GILIRAN (PENGURUSAN#)

PEKERJA3 (COTRNO., NO. PROJEK, NO. TEL) KUNCI UTAMA (COTRNO.)

BAYARAN3 (NO. PERBADANAN, PERKARA, TARIKH, JUMLAH) KUNCI UTAMA (NO. PERBADANAN, PERKARA, TARIKH)

PROJEK3 (PROJEK#, BAJET_P, JABATAN#) KUNCI UTAMA (PROJEK#)

PEJABAT3 (NO. BILIK, KAWASAN, NO. JABATAN) KUNCI UTAMA (NO. BILIK)

TELEFON3 (TEL#, bilik#) KUNCI UTAMA (TEL#)

Setiap perhubungan ini adalah dalam BCNF. Lebih-lebih lagi, mereka berada dalam 4NF - kami menyingkirkan kemungkinan kebergantungan berbilang nilai pada peringkat membawa model kepada 1NF. Semua perhubungan tidak mengandungi anomali yang boleh dilihat dan oleh itu boleh diandaikan bahawa pangkalan data dibina dengan betul.

kesusasteraan

1. Pola Pelaksanaan Beck, Kent aplikasi perusahaan; M.: Williams, 2008. - 369 p.

2. Weimayer, R.; Sawtel, R. Kuasai sendiri Microsoft SQL Pelayan 2000 dalam 21 hari (+ CD-ROM); M.: Williams, 2013. - 549 p.

3. Ganderloy, Mike; Harkins, Susan Sales Automation Microsoft Access menggunakan VBA; M.: Williams, 2013. - 416 p.

4. Goetz, Ken; Ginbert, Michael; Litvin, Paul Access 2000. Panduan Pembangun. Jilid 1. Aplikasi Desktop. jilid 1; Kyiv: BHV, 2008. - 576 p.

5. Golitsyna, O.L. dan pangkalan data lain; Forum; Infra-M, 2013. - 399 p.

6. Grinchenko, N.N. dsb. Reka bentuk pangkalan data. Microsoft Access DBMS; Hotline Telekom, 2012. - 613 p.

7. Tarikh, K. J. Pengenalan kepada Sistem Pangkalan Data; K.: Dialektik; Edisi ke-6, 2012. - 360 p.

8. Davidson, Louis reka bentuk pangkalan data pada SQL Server 2000; Beanom, 2009. - 631 p.

9. Duval, Paul M. Penyepaduan berterusan. Meningkatkan kualiti perisian dan mengurangkan risiko; M.: Williams, 2008. - 497 p.

10. Karatygin, S.; Tikhonov, A. Bekerja dalam Paradox untuk Windows 5.0 dengan contoh; M.: Binom, 2011. - 512 p.

11. Karatygin, Sergey Access 2000 dengan contoh. Panduan Pengguna dengan contoh; M.: Makmal Pengetahuan Asas, 2012. - 376 p.

12. Kaufeld, John Microsoft Akses Pejabat 2003 untuk boneka; M.: Dialektik, 2013. - 439 p.

13. Couchman, Jason; Schwinn, Ulrike Oracle 8i CertifiedProfessionaql Latihan pentadbir pangkalan data DBA; LORI, 2009. - 510 p.

Dokumen yang serupa

    Konsep sistem pangkalan data. Model perhubungan dan ciri-cirinya. Integriti dalam model hubungan. Algebra hubungan. Isu reka bentuk pangkalan data. Bentuk perhubungan biasa. Mereka bentuk pangkalan data menggunakan kaedah hubungan entiti. gambar rajah ER. bahasa SQL.

    kursus kuliah, ditambah 10/03/2008

    Menggunakan normalisasi. Bentuk normal kedua dan ketiga. Borang Boyce-Codd biasa. Bentuk normal keempat dan kelima. Pemodelan data semantik, gambar rajah ER. Konsep asas model Entiti-Perhubungan.

    ujian, ditambah 08/07/2007

    Konsep normalisasi jadual pangkalan data dan tujuannya. Peringkat proses normalisasi. Contoh data tidak normal. Bentuk biasa yang jadual dikurangkan. Algebra hubungan berbanding asas pendidikan. Pangkalan data untuk kawasan subjek "Tutorial".

    ujian, ditambah 07/30/2010

    Mewujudkan struktur pangkalan data menggunakan contoh "Jurnal Sekolah" menggunakan kaedah dan prinsip normalisasi. Konsep pangkalan data, seni bina pangkalan data dan reka bentuk. Penerangan bidang subjek; aplikasi untuk bekerja dengan pangkalan data TTable dan TQuery.

    tesis, ditambah 04/01/2012

    Kajian asas teori reka bentuk dan pembangunan pangkalan data. Pengenalpastian kebergantungan fungsi, pembinaan model maklumat. Semakan alat bahasa dan perisian yang direka untuk mencipta, menyelenggara dan berkongsi pangkalan data.

    kerja kursus, tambah 22/02/2012

    Keizinan dengan katalog reka bentuk pangkalan data kedai. Tugas pangkalan data: perakaunan semua barangan, mencari dan mengeluarkan data pelanggan, alamat, nombor telefon, harga dan ketersediaan barang. Peringkat reka bentuk pangkalan data. Skema data, mencipta pertanyaan dan bentuknya.

    abstrak, ditambah 10/22/2009

    Asas reka bentuk pangkalan data hubungan. Gambar rajah hubungan antara model dan pandangan sistem yang kompleks dalam proses analisis berorientasikan objek. Contoh imej grafik kelas tertentu. Memahami model data maklumat.

    pembentangan, ditambah 10/14/2013

    Definisi yang diperlukan untuk memahami proses mereka bentuk pangkalan data hubungan berdasarkan normalisasi. Penguraian tak rugi menggunakan teorem Heath. Kemas kini anomali. Pembangunan pangkalan data dan model aplikasi, analisis masalah semasa penciptaannya.

    pembentangan, ditambah 10/14/2013

    Pangkalan data bersepadu. Pembangunan konsep dan struktur pangkalan data korporat untuk sistem maklumat baharu. Pendekatan kepada kaedah reka bentuk pangkalan data: keterbukaan komponen dan kebolehoperasian semantik; pembangunan model konsep.

    laporan, ditambah 01/11/2011

    Analisis kawasan subjek, pemformalannya menggunakan kebergantungan fungsi. Peringkat meminimumkan sistem kebergantungan berfungsi dan, berdasarkan sistem pengurangan yang terhasil, mereka bentuk model pangkalan data. Mencipta dan memodelkan pertanyaan.

SEMAKAN NOTA KULIAH

Untuk pelajar kepakaran
T1002 “Perisian teknologi maklumat»

(L.V. Rudikova, Ph.D., Profesor Madya)

Soalan 31. DBMS ARCHITECTURE. MODEL DATA PERHUBUNGAN

1. Konsep pangkalan data.

2. Seni bina pangkalan data tiga peringkat.

3. Kitaran hidup Pangkalan data.

4. seni bina DBMS.

5. Model data hubungan.

6. Reka bentuk pangkalan data hubungan.

7. Bentuk perhubungan biasa.

8. Algebra hubungan.

1. Konsep pangkalan data.

Sistem pangkalan data ialah sebarang sistem maklumat berasaskan komputer di mana data boleh dikongsi di antara banyak aplikasi.

Sistem informasi – sistem automatik yang mengatur data dan menyediakan maklumat.

Sistem maklumat dan pengurusan – sistem yang menyediakan sokongan maklumat pengurusan.

Data – fakta yang tersebar.

Maklumat – data tersusun dan diproses.

Di bawah pangkalan data merujuk kepada satu set kumpulan asas data (maklumat) yang saling berkaitan yang boleh diproses oleh satu atau lebih sistem aplikasi. Sistem pangkalan data terdiri daripada pangkalan data; perisian tujuan umum dipanggil sistem pengurusan pangkalan data (DBMS) , dan berfungsi untuk mengurus pangkalan data; peralatan dan orang yang sesuai.

Setiap DBMS mesti memenuhi keperluan berikut:

· menyediakan pengguna dengan keupayaan untuk mencipta pangkalan data baharu dan mentakrifkannya skema (struktur data logik) menggunakan bahasa khas - bahasa definisi data; menyokong berbilang paparan data yang sama;

· biarkan" permintaan» data dan menukarnya menggunakan bahasa pertanyaan, atau bahasa manipulasi data; membenarkan integrasi dan perkongsian data daripada pelbagai aplikasi;

· menyokong penyimpanan jumlah data yang sangat besar, diukur dalam gigabait atau lebih, untuk masa yang lama, melindunginya daripada kerosakan tidak sengaja dan penggunaan tanpa kebenaran, dan juga menyediakan pengubahsuaian pangkalan data dan akses kepada data melalui pertanyaan, i.e. menjamin keselamatan dan integriti data;

· mengawal akses kepada data secara serentak untuk ramai pengguna; mengecualikan pengaruh permintaan satu pengguna pada permintaan orang lain dan menghalangnya akses serentak, yang boleh merosakkan data, i.e. memastikan kawalan serentak terhadap akses data.

Sistem pangkalan data terdiri daripada komponen berikut:

· Pengguna, i.e. orang yang menggunakan data.

· Aplikasi, i.e. program pengguna yang memerlukan data daripada sistem.

· DBMS ialah perisian yang menguruskan akses kepada data dan menyediakan yang ditentukan kefungsian sistem pangkalan data.

· Data, i.e. rentetan yang disimpan dalam fail.

· Sistem hos ialah sistem komputer di mana fail disimpan. Baris data diakses oleh sistem hos. Peranan DBMS adalah untuk menjana pertanyaan yang membolehkan fungsi pengurusan fail sistem hos digunakan untuk melayani pelbagai aplikasi. DBMS ialah lapisan tambahan perisian yang dibina di atas perisian sistem tuan rumah.

Oleh itu, sistem dengan pangkalan data boleh diwakili sebagai urutan peringkat berikut:

Pada tahap paling rendah terdapat data yang disimpan dalam fail fizikal (memori pangkalan data fizikal). hidup tingkat atas– aplikasi dengan perwakilan mereka sendiri bagi data fizikal yang sama. Setiap paparan pangkalan data ialah struktur logik khusus yang dibina daripada data fizikal asas. Untuk menyediakan antara muka antara memori fizikal pangkalan data dan pelbagai versi logiknya (pandangan berbilang disokong), DBMS pula mesti terdiri daripada beberapa lapisan.

2. Seni bina pangkalan data tiga peringkat.

Perbezaan antara perwakilan logik dan fizikal data telah diiktiraf secara rasmi pada tahun 1978 apabila jawatankuasa itu ANSI/SPARC mencadangkan struktur umum sistem pangkalan data. Struktur ini dipanggil seni bina tiga peringkat. Tiga peringkat seni bina ialah: dalaman, konseptual dan luaran.

Peringkat dalaman – ini ialah tahap yang menentukan rupa fizikal pangkalan data, paling hampir dengan storan fizikal dan dikaitkan dengan kaedah menyimpan maklumat pada peranti storan fizikal. Pemacu cakera yang dikaitkan dengan tahap ini ialah alamat fizikal, indeks, petunjuk, dsb. Lapisan ini adalah tanggungjawab pereka pangkalan data fizikal yang memutuskan peranti fizikal mana yang akan menyimpan data, kaedah capaian yang akan digunakan untuk mendapatkan dan mengemas kini data, dan apakah langkah yang perlu diambil untuk mengekalkan atau meningkatkan prestasi sistem pengurusan pangkalan data. Pengguna tidak menyentuh tahap ini.

Tahap konseptual – tahap struktur yang mentakrifkan reka bentuk logik pangkalan data. Pada peringkat ini, reka bentuk konsep pangkalan data dilakukan, termasuk menganalisis keperluan maklumat pengguna dan mengenal pasti elemen data yang mereka perlukan. Hasil reka bentuk konseptual ialah gambar rajah konseptual, penerangan logik semua elemen data dan hubungan antara mereka.

Tahap luaran – tahap struktur pangkalan data, yang mentakrifkan pandangan pengguna terhadap data. setiap satu kumpulan pengguna mendapat perwakilan datanya sendiri dalam pangkalan data. Setiap paparan data tersebut menyediakan penerangan berpusatkan pengguna tentang elemen data yang membentuk paparan data dan perhubungan di antara mereka. Ia boleh diperoleh secara langsung daripada kerangka konsep. Keseluruhan seperti itu pandangan tersuai data dan memberikan tahap luaran.

Pandangan Pengguna dan Aplikasi

Tahap luaran

Paparan

Gambar rajah konseptual

Tahap konseptual

Paparan

Peringkat dalaman

Sistem hos

Data yang disimpan

nasi. Tahap DBMS

3. Kitaran hayat pangkalan data.

Proses mereka bentuk, melaksana dan menyelenggara sistem pangkalan data dipanggil kitaran hayat pangkalan data (LDC). Prosedur untuk mencipta sistem dipanggil kitaran hayat sistem (SLC).

Memahami dan pendekatan yang betul kepada LCBD adalah sangat penting dan memerlukan pertimbangan terperinci, kerana ia berdasarkan pendekatan berpusatkan data. Elemen data lebih stabil daripada fungsi sistem yang dilakukan. Ciptaan struktur yang betul data memerlukan analisis kompleks kelas unit data dan hubungan antara mereka. Jika anda membina skema pangkalan data logik, maka pada masa hadapan anda boleh mencipta sebarang bilangan sistem berfungsi yang menggunakan skema ini. Pendekatan berorientasikan fungsi hanya boleh digunakan untuk mencipta sistem sementara yang direka untuk tempoh operasi yang singkat.

LCBD terdiri daripada peringkat berikut:

1. pra-perancangan – perancangan pangkalan data, dijalankan dalam proses membangunkan pelan pangkalan data strategik. Semasa proses perancangan, maklumat berikut dikumpul:

· apakah program aplikasi yang digunakan dan apakah fungsi yang mereka lakukan;

· apakah fail yang dikaitkan dengan setiap aplikasi ini;

· apakah aplikasi dan fail baharu yang sedang diusahakan.

Maklumat ini membantu menentukan cara maklumat aplikasi digunakan dan menentukan keperluan masa depan untuk sistem pangkalan data.

Maklumat daripada peringkat ini didokumenkan dalam bentuk model data umum.

2. Semakan kebolehlaksanaan . Di sini kebolehlaksanaan teknologi, operasi dan ekonomi pelan penciptaan pangkalan data ditentukan, iaitu:

· kebolehlaksanaan teknologi – adakah teknologi tersedia untuk melaksanakan pangkalan data yang dirancang?

· kebolehlaksanaan operasi – adakah terdapat dana dan pakar yang diperlukan untuk berjaya melaksanakan pelan pangkalan data?

· kebolehlaksanaan ekonomi – bolehkah kesimpulan ditentukan? Adakah sistem yang dirancang membayar untuk dirinya sendiri? Adakah mungkin untuk menganggarkan kos dan faedah?

3. Menentukan Keperluan termasuk pemilihan matlamat pangkalan data, penjelasan keperluan maklumat untuk sistem dan keperluan untuk perkakasan dan perisian. Oleh itu, pada peringkat pengumpulan data dan definisi keperluan ini, a model maklumat am, dinyatakan dalam tugas berikut:

· Matlamat sistem ditentukan dengan menganalisis keperluan maklumat. Ia juga semestinya menunjukkan jenis pangkalan data yang perlu dibuat (teredar, holistik) dan alat komunikasi yang diperlukan. Dokumen output ialah ulasan yang menerangkan matlamat sistem.

· Penentuan keperluan pengguna: dokumentasi dalam bentuk maklumat umum (komen, laporan, tinjauan, soal selidik, dll.); membetulkan fungsi sistem dan definisi sistem aplikasi yang akan memenuhi keperluan ini. Data dipersembahkan dalam bentuk dokumen yang berkaitan.

· Penentuan keperluan perkakasan dan perisian am yang berkaitan dengan mengekalkan tahap prestasi yang diingini. (Ketahui bilangan pengguna sistem, bilangan mesej input setiap hari, bilangan cetakan). Maklumat ini digunakan untuk memilih jenis komputer dan DBMS, kapasiti cakera dan bilangan pencetak. Data daripada peringkat ini dibentangkan dalam laporan yang mengandungi contoh konfigurasi perkakasan dan perisian.

· Membangunkan rancangan untuk penciptaan sistem secara berperingkat, termasuk pemilihan aplikasi awal.

4. Rekabentuk konsep – penciptaan gambar rajah pangkalan data konseptual. Spesifikasi dibangunkan setakat yang diperlukan untuk bergerak ke pelaksanaan.

Dokumen keluaran utama adalah satu model maklumat(atau skema pangkalan data pada peringkat konsep). Semasa membangunkan model ini, maklumat dan fungsi yang mesti dilaksanakan oleh sistem, yang ditentukan pada peringkat mengumpul dan menentukan keperluan sistem, digunakan. Pada peringkat ini, ia juga wajar untuk menentukan: 1) peraturan untuk data; 2) peraturan untuk proses; 3) peraturan untuk antara muka.

5. Perlaksanaan proses menukar model konseptual kepada pangkalan data berfungsi. Ia termasuk langkah-langkah berikut.

1) Memilih dan membeli DBMS yang diperlukan.

2) Menukar model pangkalan data konseptual (maklumat) kepada model data logik dan fizikal:

· Berdasarkan model data maklumat, skema data dibina untuk DBMS tertentu, jika perlu, pangkalan data dinyahnormalkan untuk mempercepatkan pemprosesan pertanyaan dalam semua aplikasi kritikal masa;

· ia ditentukan proses aplikasi mana yang perlu dilaksanakan dalam skema data sebagai prosedur tersimpan;

· melaksanakan kekangan yang direka untuk memastikan integriti data dan menguatkuasakan peraturan data;

· mereka bentuk dan menjana pencetus untuk melaksanakan semua peraturan data yang ditakrifkan secara berpusat dan peraturan integriti data yang tidak boleh ditentukan sebagai kekangan;

· membangunkan strategi pengindeksan dan pengelompokan; menganggarkan saiz semua jadual, kelompok dan indeks;

· menentukan tahap akses pengguna, membangun dan melaksanakan peraturan keselamatan dan audit. Cipta peranan dan sinonim untuk menyediakan akses berbilang pengguna dengan tahap kebenaran akses yang konsisten.

· membangunkan topologi rangkaian pangkalan data dan mekanisme untuk capaian lancar kepada data jauh (pangkalan data yang direplikasi atau diedarkan).

3) Pembinaan kamus data yang mentakrifkan penyimpanan definisi struktur data pangkalan data. Kamus data juga mengandungi maklumat tentang kebenaran akses, peraturan perlindungan data dan kawalan data.

4) Mengisi pangkalan data.

5) Penciptaan program aplikasi, kawalan pengurusan.

6) Latihan pengguna.

6. Penilaian dan penambahbaikan skema pangkalan data. Melibatkan pengguna tinjauan untuk mengenal pasti keperluan fungsi yang tidak dipenuhi. Perubahan dibuat mengikut keperluan, menambah program dan elemen data baharu apabila keperluan berubah dan berkembang.

Oleh itu, LCBD termasuk:

· Kaji bidang subjek dan sediakan dokumentasi yang berkaitan (1-3).

· Pembinaan model maklumat (4).

· Pelaksanaan (5).

· Penilaian prestasi dan sokongan pangkalan data (6).

4. Seni bina DBMS.



nasi. Komponen utama DBMS

Data, metadata - mengandungi bukan sahaja data, tetapi juga maklumat tentang struktur data ( metadata). Dalam DBMS hubungan, metadata termasuk jadual sistem (perhubungan), nama perhubungan, nama atribut perhubungan tersebut dan jenis data atribut tersebut.

Selalunya DBMS menyokong Indeks data. Indeks ialah struktur data yang membantu mencari elemen data dengan cepat yang diberi sebahagian daripada nilainya (contohnya, indeks yang mencari tuple perhubungan tertentu yang mempunyai nilai tertentu bagi salah satu atribut). Indeks ialah sebahagian daripada data yang disimpan dan perihalan yang menunjukkan atribut yang dimiliki oleh indeks adalah sebahagian daripada metadata.

Pengurus ingatan -menerima maklumat yang diperlukan daripada lokasi storan data dan menukar maklumat di dalamnya atas permintaan peringkat sistem yang lebih tinggi.

Dalam sistem pangkalan data mudah, pengurus memori boleh menjadi sistem fail sistem pengendalian. Walau bagaimanapun, untuk meningkatkan kecekapan, DBMS biasanya melakukan kawalan memori langsung. Pengurus memori terdiri daripada dua komponen:

· Pengurus Fail memantau lokasi fail pada cakera dan mendapatkan blok atau blok yang mengandungi fail apabila diminta oleh pengurus penimbal (cakera biasanya dibahagikan kepada blok cakera - kawasan berkaitan memori yang mengandungi dari 4000 hingga 16000 bait).

· Pengurus penimbal menguruskan ingatan utama. Ia menerima blok data dari cakera melalui pengurus fail dan memilih halaman memori utama untuk menyimpan blok tertentu. Ia boleh menyimpan sementara blok cakera dalam memori utama, tetapi mengembalikannya ke cakera apabila halaman memori utama diperlukan untuk blok lain. Halaman juga dikembalikan ke cakera apabila diminta oleh pengurus transaksi.

"Permintaan" pemproses - memproses permintaan dan meminta perubahan kepada data atau metadata. Ia mencadangkan cara terbaik untuk melaksanakan operasi yang diperlukan dan mengeluarkan arahan yang sesuai kepada pengurus memori.

Pemproses pertanyaan (pengurus) menukar tindakan pertanyaan atau pangkalan data yang boleh dilaksanakan pada tahap yang sangat tinggi (contohnya, sebagai pertanyaan SQL ), ke dalam urutan permintaan untuk data yang disimpan seperti tupel individu hubungan atau bahagian indeks pada hubungan. Selalunya bahagian pemprosesan yang paling sukar permintaan Adakah dia organisasi, iaitu memilih yang baik pelan pertanyaan atau urutan permintaan kepada sistem memori yang bertindak balas kepada permintaan.

Pengurus Urus Niaga - bertanggungjawab ke atas integriti sistem dan mesti memastikan pemprosesan serentak banyak permintaan, ketiadaan gangguan permintaan (tambahan, min, maks ) dan perlindungan data sekiranya berlaku kegagalan sistem. Ia berinteraksi dengan pengurus pertanyaan kerana ia perlu mengetahui data yang dipengaruhi oleh pertanyaan semasa (untuk mengelakkan konflik) dan boleh menangguhkan beberapa pertanyaan dan operasi untuk mengelakkan konflik. Pengurus transaksi juga berinteraksi dengan pengurus memori kerana skim perlindungan data biasanya melibatkan penyimpanan log perubahan data. Jika operasi dilakukan dengan betul, fail pendaftaran akan mengandungi rekod perubahan, jadi anda boleh melaksanakan semula walaupun perubahan yang tidak mencapai cakera kerana kegagalan sistem.

DBMS biasa membenarkan pengguna mengumpulkan berbilang pertanyaan dan/atau perubahan ke dalam satu transaksi. Transaksi ialah sekumpulan operasi yang mesti dilakukan secara berurutan sebagai satu keseluruhan.

Biasanya, sistem pangkalan data menyokong pelbagai transaksi serentak. Ia adalah pelaksanaan yang betul bagi semua transaksi sedemikian yang memastikan pengurus transaksi. Pelaksanaan urus niaga yang betul dipastikanASID -harta benda (keatoman, ketekalan, pengasingan, ketahanan):

· atomicity- pelaksanaan sama ada semua transaksi atau tiada satu pun daripada mereka (contohnya, mengeluarkan wang dari ATM dan membuat debit yang sepadan ke akaun pelanggan mestilah satu transaksi atom; setiap operasi ini tidak dibenarkan untuk dilakukan secara berasingan);

· ketekalan - keadaan di mana data memenuhi semua jangkaan yang mungkin (contohnya, syarat konsisten untuk pangkalan data syarikat penerbangan ialah tiada tempat duduk di dalam pesawat dikhaskan untuk dua penumpang);

· penebat- apabila dua atau lebih urus niaga dilaksanakan secara selari, keputusannya mesti diasingkan antara satu sama lain. Pelaksanaan serentak dua transaksi pada masa yang sama tidak seharusnya membawa kepada hasil yang tidak akan berlaku jika ia dilaksanakan secara berurutan (contohnya, apabila menjual tiket untuk penerbangan yang sama sekiranya terdapat tempat duduk terakhir percuma apabila dua ejen meminta secara serentak , permintaan seseorang mesti dipenuhi, yang lain - Tidak);

· panjang umur - selepas transaksi selesai, keputusan tidak boleh hilang sekiranya berlaku kegagalan sistem, walaupun kegagalan ini berlaku serta-merta selepas selesai transaksi.

Mari kita pertimbangkan juga 3 jenis akses kepada DBMS:

1. Permintaan - Soalan tentang data boleh dijana dalam dua cara:

a)dengan menggunakan antara muka pertanyaan biasa(contohnya, DBMS hubungan membenarkan pertanyaan SQL , yang dihantar kepada pemproses permintaan, dan juga menerima respons kepada mereka);

b) dengan bantuan antara muka program aplikasi- permintaan dihantar melalui antara muka khas (permintaan sewenang-wenangnya tidak boleh dihantar melalui antara muka ini);

2. Pengubahsuaian - Ini adalah operasi untuk menukar data. Ia juga boleh dilaksanakan sama ada melalui antara muka biasa atau melalui antara muka program aplikasi;

3. Pengubahsuaian litar - Ini adalah pasukan pentadbir pangkalan data yang mempunyai hak untuk menukar skema pangkalan data atau mencipta pangkalan data baharu.

Seni bina pelanggan/pelayan. Banyak versi perisian moden melaksanakan seni bina pelanggan/pelayan: Satu proses (pelanggan) menghantar permintaan kepada proses lain (pelayan) untuk dilaksanakan. Biasanya, pangkalan data sering dibahagikan kepada proses pelayan dan beberapa proses pelanggan.

Dalam seni bina klien/pelayan yang paling mudah, keseluruhan DBMS ialah pelayan, kecuali antara muka pertanyaan, yang berinteraksi dengan pengguna dan menghantar pertanyaan atau arahan lain ke pelayan. Sebagai contoh, DBMS hubungan sering menggunakan bahasa tersebut SQL untuk mewakili permintaan daripada klien ke pelayan. Pelayan pangkalan data kemudiannya menyediakan respons kepada klien dalam bentuk jadual (hubungan). Terdapat kecenderungan untuk meningkatkan beban pada klien, kerana jika terdapat ramai pengguna pangkalan data yang bekerja secara serentak, masalah mungkin timbul dengan pelayan.

5. Model data perhubungan.

RMD bagi kawasan subjek tertentu ialah satu set perhubungan yang berubah mengikut masa. Apabila mencipta sistem maklumat, satu set perhubungan membolehkan anda menyimpan data tentang objek kawasan subjek dan memodelkan sambungan antara mereka.

Sikap ialah jadual dua dimensi yang mengandungi beberapa data. Secara matematik di bawahN hubungan -ary R memahami set produk Cartesian D 1 D 2 … D n set ( domain) D 1, D 2, …, D n (), berbeza secara pilihan:

R D 1 D 2 … D n ,

di mana D 1 D 2 … D n – produk Cartesian lengkap, i.e. satu set semua kemungkinan kombinasi n setiap elemen, di mana setiap elemen diambil dari domainnya sendiri.

Domain ialah konsep semantik. Domain boleh dianggap sebagai subset nilai beberapa jenis data yang mempunyai makna tertentu. Domain dicirikan oleh sifat berikut:

· Domain mempunyai nama unik(dalam pangkalan data).

· Domain ditakrifkan pada beberapa ringkas jenis data atau pada domain yang berbeza.

· Domain mungkin mempunyai beberapa keadaan logik, yang membolehkan anda menerangkan subset data yang sah untuk domain tertentu.

· Domain membawa sesuatu yang tertentu beban semantik.

Atribut perhubungan terdapat beberapa jenis<Имя_атрибута: Имя_домена>. Nama atribut mestilah unik dalam perhubungan. Selalunya nama atribut perhubungan adalah sama dengan nama domain yang sepadan.

Nisbah , ditakrifkan pada berbilang domain, mengandungi dua bahagian: pengepala dan badan.

Pengepala perhubungan ialah bilangan tetap atribut hubungan:

Kepala perkaitan menerangkan hasil cartesan domain di mana perhubungan itu ditakrifkan. Pengepala adalah statik; ia tidak berubah semasa bekerja dengan pangkalan data. Jika atribut diubah, ditambah atau dipadamkan dalam hubungan, maka hasilnya akan menjadi lain hubungan (walaupun dengan nama yang sama).

Hubungan badan mengandungi banyak tupel perhubungan. Setiap hubungan tuple mewakili satu set pasangan bentuk<Имя_атрибута: Значение_атрибута>:

supaya nilai atribut kepunyaan domain . Badan hubungan ialah satu set tupel, i.e. subset hasil darab Cartesian bagi domain. Oleh itu, badan hubungan sebenarnya adalah hubungan dalam erti kata matematik. Badan perhubungan boleh berubah semasa bekerja dengan pangkalan data - tupel boleh ditukar, ditambah dan dipadamkan.

Hubungan itu biasanya ditulis sebagai:

atau lebih pendek

,

atau secara ringkas

Bilangan atribut dalam hubungan dipanggil ijazah (atau -arity ) perhubungan. Kardinaliti set tupel bagi suatu hubungan dipanggil kuasa perhubungan.

Gambar rajah perhubungan ialah senarai nama atribut bagi perhubungan tertentu yang menunjukkan domain miliknya:

Jika atribut mengambil nilai dari domain yang sama, maka ia dipanggil -comparable, di mana set operasi perbandingan yang sah ditentukan untuk domain tertentu. Contohnya, jika domain mengandungi data berangka, maka semua operasi perbandingan adalah sah untuknya, maka . Walau bagaimanapun, untuk domain yang mengandungi data aksara, bukan sahaja operasi perbandingan untuk kesamaan dan ketaksamaan nilai boleh ditentukan. Jika domain tertentu mempunyai susunan leksikografi, maka ia juga mempunyai rangkaian penuh operasi perbandingan.

Skim dua hubungan dipanggil bersamaan , jika mereka mempunyai darjah yang sama dan mungkin untuk memesan nama atribut dalam skema sedemikian rupa sehingga atribut setanding, iaitu, atribut yang mengambil nilai dari domain yang sama, akan berada di tempat yang sama:

biarlah – rajah perhubungan. – skema perhubungan selepas menyusun nama atribut. Kemudian

~

Oleh itu, untuk hubungan setara syarat berikut dipenuhi:

· Jadual mempunyai bilangan lajur yang sama.

· Jadual mengandungi lajur dengan nama yang sama.

· Lajur dengan nama yang sama mengandungi data daripada domain yang sama.

· Jadual mempunyai baris yang sama, tetapi susunan lajur mungkin berbeza-beza.

Semua jadual sedemikian adalah berbeza Imej hubungan yang sama.

Sifat perhubungan. Sifat-sifat hubungan mengikuti terus dari definisi hubungan di atas. Sifat ini adalah perbezaan utama antara hubungan dan jadual.

· Tiada tupel yang sama dalam hubungan .

· Tuple tidak dipesan (atas ke bawah) .

· Atribut tidak disusun (dari kiri ke kanan) .

· Semua nilai atribut adalah atom .

nasi. Perwakilan skematik perhubungan

Model perhubungan ialah pangkalan data dalam bentuk satu set hubungan yang saling berkaitan. Dalam setiap hubungan, satu hubungan boleh bertindak sebagai yang utama, dan satu lagi hubungan bertindak sebagai bawahan. Oleh itu, satu tupel hubungan utama boleh dikaitkan dengan beberapa tupel hubungan bawahan. Untuk menyokong perhubungan ini, kedua-dua perhubungan mesti mengandungi set atribut yang berkaitan dengannya. Pada asasnya ini adalah kunci utama perhubungan , yang mentakrifkan tuple perhubungan utama secara unik. Untuk memodelkan perhubungan, subperkaitan mesti mempunyai set atribut yang sepadan dengan kunci utama perhubungan utama. Walau bagaimanapun, di sini set atribut ini sudah ada kunci sekunder atau kunci asing , iaitu ia mentakrifkan satu set tupel hubungan yang dikaitkan dengan satu tupel tunggal hubungan utama.

6. Reka bentuk pangkalan data hubungan.

Apabila mereka bentuk pangkalan data hubungan, masalah berikut mesti diselesaikan:

1) Mengambil kira semantik kawasan subjek, adalah perlu untuk mewakili objek kawasan subjek dalam bentuk model data abstrak (reka bentuk data). Itu. - tentukan skema pangkalan data: apakah perhubungan yang harus terdiri daripada pangkalan data, apakah atribut yang perlu ada pada perhubungan ini, apakah perkaitan antara perhubungan tersebut.

2) Memastikan kecekapan melaksanakan pertanyaan pangkalan data (reka bentuk pangkalan data fizikal).

Selepas peringkat reka bentuk datalogi, dokumen yang terhasil berikut harus diperolehi:

· Membina skema data yang betul berdasarkan model data hubungan.

· Penerangan mengenai skema pangkalan data dari segi DBMS yang dipilih.

· Penerangan model luaran dari segi DBMS yang dipilih.

· Penerangan peraturan perisytiharan untuk mengekalkan integriti pangkalan data.

· Pembangunan prosedur untuk mengekalkan integriti semantik pangkalan data.

Jadi, tugas mereka bentuk pangkalan data hubungan adalah untuk memilih skema pangkalan data daripada banyak pilihan alternatif.

Betul ialah skema pangkalan data di mana tiada kebergantungan yang tidak diingini antara atribut hubungan. Proses membangunkan skema pangkalan data yang betul dipanggil reka bentuk logik .

Mereka bentuk skema pangkalan data boleh dilakukan dengan dua cara:

· Kaedah penguraian (partition). set asal perhubungan yang termasuk dalam skema pangkalan data digantikan dengan set perhubungan lain yang merupakan unjuran perhubungan asal! Pada masa yang sama, bilangan perhubungan meningkat.

· Kaedah sintesis susun atur skema pangkalan data daripada kebergantungan asas awal yang diberikan antara objek kawasan subjek.

Reka bentuk pangkalan data klasik dikaitkan dengan teori normalisasi , yang berdasarkan analisis kebergantungan fungsi antara atribut perhubungan. Kebergantungan fungsional mentakrifkan hubungan yang stabil antara objek dan sifatnya dalam kawasan subjek yang sedang dipertimbangkan.

Kaedah penguraian ialah proses normalisasi urutan skema hubungan: setiap lelaran baharu sepadan dengan bentuk normal tertib yang lebih tinggi dan mempunyai sifat yang lebih baik berbanding dengan yang sebelumnya. Oleh itu, kewujudan hubungan universal yang mengandungi semua atribut pangkalan data pada mulanya diandaikan, kemudian, berdasarkan analisis hubungan antara atribut, penguraian hubungan universal dijalankan (atau percubaan dibuat), i.e. peralihan kepada beberapa hubungan dimensi yang lebih rendah, dan hubungan asal mesti dipulihkan menggunakan operasi gabungan semula jadi.

Jadi, setiap bentuk normal sepadan dengan set kekangan tertentu, dan hubungan berada dalam bentuk normal tertentu jika ia memenuhi set kekangan yang wujud.

Dalam teori pangkalan data hubungan, bentuk normal berikut biasanya dibezakan:

bentuk normal pertama (1 NF);

· bentuk normal kedua (2 NF);

· bentuk normal ketiga (3 NF);

· Bays-Codd bentuk normal ( BCNF);

· bentuk normal keempat (4 NF);

· bentuk normal kelima atau bentuk unjuran - sebatian (5 NF atau PYNF).

Sifat asas bentuk normal:

· setiap bentuk normal berturut-turut dalam erti kata tertentu lebih baik daripada yang sebelumnya;

· apabila berpindah ke bentuk normal seterusnya, sifat sifat normal sebelumnya dipelihara.

Skema pangkalan data dipanggil bersamaan, jika kandungan pangkalan data sumber boleh diperolehi melalui sambungan semula jadi bagi perhubungan yang disertakan dalam skema yang terhasil, dan tiada tuple baharu muncul dalam pangkalan data sumber.

7. Bentuk perhubungan biasa.

Proses normalisasi adalah berdasarkan refleksi yang mencukupi bagi kawasan subjek dalam bentuk jadual yang mengandungi data tentang objek yang dimodelkan, dan keupayaan untuk mengubah keadaan pangkalan data dari semasa ke semasa. Sebagai peraturan, disebabkan ketidakpadanan antara model data domain, anomali mungkin berlaku yang muncul semasa menjalankan operasi yang sepadan:

· Anomali Sisipan (INSERT) – penyimpanan maklumat heterogen dalam satu aspek.

· Kemas kini anomali (KEMASKINI) –Lewahan data perhubungan kerana penyimpanan heterogen.

· Anomali pemadaman (DELETE) – penyimpanan maklumat heterogen dalam satu hubungan.

Ia juga perlu untuk mengambil kira yang baru muncul tidak ditentukan ( NULL) nilai. Dalam DBMS yang berbeza apabila melaksanakan pelbagai operasi(membanding, menggabungkan, menyusun, mengumpulkan, dll) dua NULL -nilai mungkin sama atau tidak sama antara satu sama lain, mempunyai kesan yang berbeza pada hasil menjalankan operasi untuk menentukan nilai purata dan mencari bilangan nilai. Untuk menghapuskan ralat dalam banyak DBMS adalah mungkin untuk menggantikannya NULL -nilai adalah sifar apabila melakukan pengiraan, mengisytiharkan semua NULL -nilai sama antara satu sama lain, dsb.

Normalisasi – membahagikan jadual kepada beberapa, yang mempunyai sifat yang lebih baik apabila mengemas kini, memasukkan dan memadam data. Itu. penormalan ialah proses menggantikan jadual secara berurutan dengan penguraian lengkapnya sehingga kesemuanya berada dalam 5NF; namun, secara praktikalnya adalah mencukupi untuk menukar jadual kepada BCNF.

Prosedur penormalan adalah berdasarkan fakta bahawa satu-satunya kebergantungan berfungsi dalam mana-mana jadual hendaklah kebergantungan borang , di mana ialah kunci utama dan merupakan medan lain. Oleh itu, semasa proses normalisasi, anda harus menyingkirkan semua kebergantungan fungsi "lain", i.e. daripada mereka yang mempunyai rupa yang berbeza daripada .

Jika kita menggantikan kod kunci utama (asing) semasa normalisasi, maka kita harus mempertimbangkan 2 kes:

1. Jadual mempunyai kunci utama komposit, sebagai contoh, dan medan yang berfungsi bergantung pada sebahagian daripada kunci ini, contohnya, pada (ia tidak bergantung pada kunci penuh). Adalah disyorkan untuk mencipta jadual lain yang mengandungi dan ( – kunci utama) dan padam daripada jadual asal:

Gantikan, kunci utama, undang-undang persekutuan

pada , kunci utama

dan , kunci utama .

2. Jadual mempunyai kunci utama (kemungkinan), medan yang bukan kunci yang mungkin, tetapi bergantung pada fungsi dan medan bukan kunci lain yang bergantung pada fungsi:. Adalah disyorkan untuk mencipta jadual yang mengandungi kedua-dua ( - kunci utama) dan - padam daripada jadual asal: Perlu diingatkan bahawa untuk menjalankan operasi sedemikian, seseorang pada mulanya harus mempunyai beberapa hubungan "besar" (sejagat) sebagai data input.

Def.1. Hubungan itu dalam bentuk normal pertama (1NF) jika dan hanya jika tiada satu pun barisnya mengandungi nilai tunggal dalam mana-mana medannya dan tiada satu pun medan utama hubungan itu kosong.

Menurut definisi 1, sebarang hubungan akan berada dalam 1NF, i.e. hubungan yang memenuhi sifat hubungan: tidak ada tupel yang sama dalam hubungan; tupel tidak dipesan; atribut tidak disusun dan berbeza mengikut nama; semua nilai atribut adalah atom.

Def.2. Hubungan itu dalam bentuk normal kedua (2NF) jika dan hanya jika perhubungan berada dalam 1NF dan tiada atribut bukan kunci yang bergantung pada sebahagian daripada kunci kompleks (iaitu, semua medan yang tidak termasuk dalam kunci utama dikaitkan dengan pergantungan fungsi penuh kepada kunci utama).

Jika kunci calon adalah perdana, maka hubungan itu secara automatik dalam 2NF.

Untuk menghapuskan pergantungan atribut pada sebahagian daripada kunci kompleks, perlu dilakukan penguraian hubungan pelbagai hubungan. Atribut yang bergantung pada sebahagian daripada kunci kompleks diletakkan dalam hubungan yang berasingan.

Sifat-sifat perhubungan dipanggil saling berdikari , jika kedua-duanya tidak bergantung secara fungsional pada yang lain.

Def.3. Hubungan itu dalam bentuk normal ketiga (3NF) jika dan hanya jika hubungan dalam 2NF dan semua atribut bukan kunci adalah saling bebas (iaitu, tiada satu pun medan bukan kunci hubungan bergantung secara fungsi pada mana-mana medan bukan kunci lain).

Untuk menghapuskan pergantungan atribut bukan kunci, anda perlu menguraikan perhubungan itu kepada beberapa perhubungan. Dalam kes ini, atribut bukan kunci yang bergantung diletakkan dalam hubungan yang berasingan.

Apabila mengurangkan hubungan menggunakan algoritma normalisasi kepada hubungan dalam 3NF, diandaikan bahawa semua hubungan mengandungi satu kunci calon. Ini tidak selalu benar. Ada kalanya perhubungan mungkin mengandungi berbilang kunci.

Def.4. Hubungan itu dalam Bays-Codd bentuk biasa (NFBK) jika dan hanya jika penentu semua kebergantungan fungsi ialah kunci berpotensi (atau jika sebarang pergantungan fungsi antara rakannya dikurangkan kepada pergantungan fungsi lengkap pada kunci yang mungkin).

Jika hubungan berada dalam BCNF, maka ia secara automatik dalam 3NF, seperti berikut dari Definisi 4. Untuk menghapuskan pergantungan pada penentu yang bukan kunci berpotensi, penguraian harus dilakukan, meletakkan penentu ini dan bahagian yang bergantung padanya ke dalam hubungan yang berasingan.

Ada kalanya hubungan tidak mengandungi sebarang kebergantungan berfungsi. Itu. sikap adalah kunci sepenuhnya, i.e. kunci perhubungan ialah keseluruhan set atribut. Oleh itu, kita mempunyai pergantungan berbilang nilai, kerana Masih terdapat hubungan antara sifat.

Def.5. Hubungan itu dalam bentuk normal keempat (4NF) jika dan hanya jika hubungan itu berada dalam BCNF dan tidak mengandungi kebergantungan berbilang nilai bukan remeh.

Hubungan dengan kebergantungan berbilang nilai yang bukan remeh timbul, sebagai peraturan, hasil daripada sambungan semula jadi dua hubungan ke atas medan yang sama, yang bukan kunci dalam mana-mana hubungan. Pada hakikatnya, ini membawa kepada menyimpan maklumat tentang dua entiti bebas dalam satu hubungan.

Untuk menghapuskan kebergantungan berbilang nilai bukan remeh, anda boleh menguraikan hubungan asal kepada beberapa yang baharu.

Def.6. Hubungan itu dalam bentuk normal kelima (5NF) jika dan hanya jika sebarang pergantungan sambungan yang ada adalah remeh.

Def.6. identik juga mengikut definisi.

Def.7. Sesuatu hubungan tidak berada dalam 5NF jika hubungan itu mempunyai kebergantungan bergabung bukan remeh.

Itu. Jika dalam setiap penguraian lengkap semua unjuran hubungan asal mengandungi kunci yang mungkin, kita boleh membuat kesimpulan bahawa hubungan itu adalah dalam 5NF. Hubungan yang tidak mempunyai sebarang penguraian lengkap juga dalam 5NF.

Tanpa mengetahui apa-apa tentang kunci yang berpotensi dalam hubungan dan bagaimana sifat saling berkaitan, seseorang tidak boleh mengatakan bahawa hubungan tertentu adalah dalam 5NF atau bentuk normal yang lain.

Petunjuk yang mungkin hubungan ialah satu set atribut hubungan yang sepenuhnya dan unik (sepenuhnya berfungsi) menentukan nilai semua atribut lain hubungan. Secara umum, mungkin terdapat beberapa kunci yang mungkin. Di antara semua kunci perhubungan yang mungkin, satu biasanya dipilih, yang dianggap sebagai kunci utama dan yang dipanggil kunci utama perhubungan.

Atribut saling bebas ini adalah sifat-sifat yang tidak bergantung antara satu sama lain. Jika terdapat beberapa undang-undang fizikal dalam hubungan, maka setiap atribut atau set atribut yang bergantung pada atribut lain dipanggil penentu hubungan.

9. Algebra hubungan.

Algebra hubungan menyediakan rangka kerja untuk mengakses data hubungan. Tujuan utama algebra adalah untuk menyediakan ungkapan yang boleh ditulis. Ungkapan boleh digunakan untuk:

· definisi kawasan sampel, iaitu mentakrifkan data untuk pemilihan hasil daripada operasi pensampelan;

· definisi kawasan kemas kini, iaitu menentukan data untuk dimasukkan, diubah suai atau dipadamkan sebagai hasil daripada operasi kemas kini;

· takrifan (bernama) perhubungan maya , iaitu pembentangan data untuk visualisasi melalui pandangan;

· definisi syot kilat, i.e. mentakrifkan data untuk disimpan sebagai "gambar" perhubungan;

· mentakrifkan peraturan keselamatan, i.e. penentuan data yang mana kawalan capaian dijalankan;

· penentuan keperluan kemampanan, i.e. menentukan data yang termasuk dalam skop untuk operasi kawalan serentak tertentu;

· mentakrifkan peraturan integriti, i.e. beberapa peraturan khas yang mesti dipenuhi oleh pangkalan data, bersama-sama dengannya peraturan umum, mewakili sebahagian daripada model hubungan dan digunakan pada setiap pangkalan data.

Dalam pelaksanaan tertentu DBMS hubungan algebra hubungan mahupun kalkulus hubungan tidak digunakan pada masa ini dalam bentuk tulennya. Piawaian de facto untuk mengakses data hubungan telah menjadi bahasa SQL(Bahasa Pertanyaan Berstruktur).

Algebra hubungan, yang ditakrifkan oleh Codd, terdiri daripada 8 operator yang terdiri daripada 2 kumpulan:

  • operasi set tradisional (kesatuan, persilangan, penolakan, hasil Cartesian);
  • istimewa operasi perhubungan (pemilihan, unjuran, sambungan, pembahagian).

Di samping itu, algebra termasuk operasi tugasan, yang membolehkan anda menyimpan hasil pengiraan ungkapan algebra dalam pangkalan data, dan operasi menamakan semula atribut, yang memungkinkan untuk membentuk pengepala (skema) perhubungan yang terhasil dengan betul.

Gambaran keseluruhan ringkas operator algebra hubungan.

Sampelmengembalikan hubungan yang mengandungi semua tupel bagi hubungan tertentu yang memenuhi beberapa syarat. Operasi pensampelan juga dipanggil operasi sekatan ( menyekat - had, kini pensampelan lebih kerap diterima - PILIH).

Unjuranmengembalikan hubungan yang mengandungi semua tupel (iaitu - sub-tuple) hubungan tertentu selepas mengecualikan beberapa atribut daripadanya.

Kerjamengembalikan hubungan yang mengandungi semua kemungkinan tupel yang merupakan gabungan dua tupel yang dimiliki oleh dua hubungan yang ditentukan, masing-masing.

Sebuah persatuanmengembalikan hubungan yang mengandungi semua tupel yang dimiliki oleh salah satu atau kedua-duanya daripada dua hubungan yang ditakrifkan.

persimpangan –mengembalikan hubungan yang mengandungi semua tupel yang dimiliki secara serentak kepada dua hubungan yang ditentukan.

Penolakan –mengembalikan hubungan yang mengandungi semua tupel yang tergolong dalam yang pertama daripada dua hubungan yang ditentukan dan bukan kepada yang kedua.

Sambungan (semula jadi) – mengembalikan hubungan yang tupelnya adalah gabungan dua tupel (masing-masing dimiliki oleh dua hubungan yang ditakrifkan) yang mempunyai nilai bersama untuk satu atau lebih atribut biasa kedua-dua hubungan tersebut (dan nilai biasa tersebut hanya muncul sekali dalam tupel yang terhasil, bukan dua kali).

Bahagian –untuk dua hubungan, binari dan unari, mengembalikan hubungan yang mengandungi semua nilai satu atribut hubungan binari yang sepadan (dalam atribut lain) semua nilai dalam hubungan unari.

KESUSASTERAAN

1. Tarikh K.J. Pengenalan kepada Sistem Pangkalan Data, edisi ke-6: Trans. dari bahasa Inggeris - KEPADA.; M.; St. Petersburg: Williams Publishing House, 2000. – 848 p.

2. Connolly T., Begg K., Strachan A. Pangkalan data: reka bentuk, pelaksanaan dan penyelenggaraan. Teori dan amalan, ed. ke-2: Trans. dari bahasa Inggeris – M.: Williams Publishing House, 2000. – 1120 p.

3. Karpova T.S. Pangkalan data: model, pembangunan, pelaksanaan. – St. Petersburg: Peter, 2001. – 304 p.

4. Faronov V.V., Shumakov P.V. Delphi 4. Panduan Pembangun Pangkalan Data. – M.: “Pengetahuan”, 1999. – 560 p.

5. J. Groff, P. Weinberg. SQL: Panduan Lengkap: Per. dari bahasa Inggeris – K.: Kumpulan Penerbitan BHV, 2001. – 816 p.

6. Ken Goetz, Paul Litwin, Mike Gilbert. Access 2000. Panduan Pembangun. T.1, 2. Per. dari bahasa Inggeris – K.: Kumpulan Penerbitan BHV, 2000. – 1264 hlm., 912 hlm.

7. Maklakov S.V BPwin dan EPwin. CASE-alat untuk pembangunan sistem maklumat. – M.: DIALOG-MEPhI, 2001. – 304 p.

8. Ullman D., Widom D. Pengenalan kepada sistem pangkalan data / Transl. dari bahasa Inggeris – M.: “Lori”, 2000. – 374 p.

9. Khomonenko A.D., Tsygankov V.M., Maltsev M.G. Pangkalan data: Buku teks untuk pendidikan tinggi institusi pendidikan/ Ed. Prof. A.D. Khomonenko. – St. Petersburg: Cetakan CORONA, 2000. – 416 p.

Terjemahan siri 15 artikel mengenai reka bentuk pangkalan data.
Maklumat ini bertujuan untuk pemula.
Tolong saya. Mungkin ia akan membantu orang lain mengisi kekosongan.

Panduan Reka Bentuk Pangkalan Data.

1. Pengenalan.
Jika anda akan mencipta pangkalan sendiri data, adalah idea yang baik untuk mengikuti garis panduan reka bentuk pangkalan data untuk memastikan integriti jangka panjang dan kemudahan penyelenggaraan data anda. Panduan ini akan memberitahu anda apa itu pangkalan data dan cara mereka bentuk pangkalan data yang mengikut peraturan reka bentuk pangkalan data hubungan.

Pangkalan data ialah program yang membolehkan anda menyimpan dan mendapatkan sejumlah besar maklumat berkaitan. Pangkalan data terdiri daripada meja, yang mengandungi maklumat. Apabila anda membuat pangkalan data, anda perlu memikirkan apa meja anda perlu buat dan apa komunikasi wujud antara maklumat dalam jadual. Dalam erti kata lain, anda perlu berfikir tentang projek pangkalan data anda. Projek yang bagus pangkalan data, seperti yang dinyatakan sebelum ini, akan memastikan integriti data dan kemudahan penyelenggaraan.
Pangkalan data dicipta untuk menyimpan maklumat di dalamnya dan mendapatkan semula maklumat ini apabila perlu. Ini bermakna kita mesti boleh meletakkan, memasukkan ( INSERT) maklumat ke dalam pangkalan data dan kami mahu dapat mendapatkan maklumat daripada pangkalan data ( PILIH).
Bahasa pertanyaan pangkalan data telah dicipta untuk tujuan ini dan dipanggil Bahasa Pertanyaan Berstruktur atau SQL. Operasi memasukkan data (INSERT) dan memilihnya (SELECT) adalah sebahagian daripada bahasa ini. Di bawah ialah contoh permintaan mendapatkan semula data dan keputusannya.

SQL ialah topik besar dan berada di luar skop tutorial ini. Artikel ini tertumpu pada pembentangan proses reka bentuk pangkalan data. Kemudian, dalam manual berasingan, saya akan membincangkan asas SQL.

Model perhubungan.
Dalam tutorial ini, saya akan menunjukkan kepada anda cara membuat model data hubungan. Model hubungan ialah model yang menerangkan cara menyusun data dalam jadual dan cara menentukan hubungan antara jadual tersebut.

Peraturan model hubungan menentukan bagaimana maklumat harus disusun dalam jadual dan bagaimana jadual berkaitan antara satu sama lain. Akhirnya, hasilnya boleh dibentangkan dalam bentuk rajah pangkalan data atau, lebih tepat lagi, rajah hubungan entiti, seperti dalam rajah (Contoh diambil daripada Meja Kerja MySQL).

Contoh.
Saya menggunakan beberapa aplikasi sebagai contoh dalam panduan.

RDBMS.

RDBMS yang saya gunakan untuk mencipta jadual contoh ialah MySQL. MySQL ialah RDBMS yang paling popular dan ianya percuma.

Utiliti pentadbiran pangkalan data.

Selepas pemasangan MySQL anda hanya mendapat antara muka baris arahan untuk berinteraksi dengan MySQL. Secara peribadi, saya lebih suka GUI untuk menguruskan pangkalan data saya. Saya sering menggunakan SQLyog. ini utiliti percuma Dengan antara muka grafik. Imej jadual dalam manual ini diambil dari sana.

Permodelan visual.

Terdapat aplikasi percuma yang sangat baik yang dipanggil MySQL Workbench. Ia membolehkan anda mereka bentuk pangkalan data anda secara grafik. Imej rajah dalam manual dibuat dalam program ini.

Reka bentuk bebas daripada RDBMS.
Adalah penting untuk mengetahui bahawa walaupun panduan ini menyediakan contoh untuk MySQL, reka bentuk pangkalan data adalah bebas daripada RDBMS. Ini bermakna maklumat tersebut digunakan untuk pangkalan data hubungan secara umum, bukan hanya MySQL. Anda boleh menggunakan pengetahuan daripada tutorial ini kepada mana-mana pangkalan data hubungan seperti Mysql, Postgresql, Microsoft Access, Microsoft Sql atau Oracle.

Dalam bahagian seterusnya saya akan bercakap secara ringkas tentang evolusi pangkalan data. Anda akan belajar dari mana pangkalan data dan model data hubungan datang.

2. Sejarah.
Pada tahun 70-an dan 80-an, apabila saintis komputer masih memakai tuksedo coklat dan cermin mata dengan bingkai persegi yang besar, data disimpan tidak berstruktur dalam fail yang mewakili Dokumen Teks dengan data yang dipisahkan oleh (biasanya) koma atau tab.

Inilah rupa profesional teknologi maklumat pada tahun 70-an. (Kiri bawah ialah Bill Gates).

Fail teks masih digunakan hari ini untuk menyimpan sejumlah kecil maklumat mudah. Nilai Dipisahkan Koma (CSV) - Nilai dipisahkan koma sangat popular dan disokong secara meluas hari ini oleh pelbagai perisian dan sistem pengendalian. Microsoft Excel ialah salah satu contoh program yang boleh berfungsi dengan fail CSV. Data yang disimpan dalam fail sedemikian boleh dibaca oleh program komputer.

Di atas ialah contoh rupa fail sedemikian. Program membaca fail ini mesti dimaklumkan bahawa data dipisahkan dengan koma. Jika program ingin memilih dan memaparkan kategori di mana pelajaran itu berada "Tutorial Reka Bentuk Pangkalan Data", maka dia mesti membaca baris demi baris sehingga perkataan itu ditemui "Tutorial Reka Bentuk Pangkalan Data" dan kemudian dia perlu membaca perkataan mengikut koma untuk membuat kesimpulan kategori Perisian.

Jadual pangkalan data.
Membaca fail baris demi baris tidak begitu cekap. Dalam pangkalan data hubungan, data disimpan dalam jadual. Jadual di bawah mengandungi data yang sama seperti fail. Setiap baris atau "entri" mengandungi satu pelajaran. Setiap lajur mengandungi beberapa sifat pelajaran. DALAM dalam kes ini ini tajuk dan kategorinya.

Program komputer boleh mencari lajur tutorial_id jadual tertentu untuk tutorial_id tertentu untuk mencari tajuk dan kategori yang sepadan dengan cepat. Ini adalah lebih pantas daripada mencari fail baris demi baris, sama seperti program dalam fail teks.

Pangkalan data hubungan moden direka bentuk untuk membolehkan data diambil daripada baris, lajur dan berbilang jadual tertentu pada satu masa, dengan cepat.

Sejarah model hubungan.
Model pangkalan data relasi telah dicipta pada tahun 70-an oleh Edgar Codd, seorang saintis British. Dia mahu mengatasi kekurangannya model rangkaian pangkalan data dan model hierarki. Dan dia sangat berjaya dalam hal ini. Model pangkalan data hubungan kini diterima dan dipertimbangkan secara universal model berkuasa untuk organisasi data yang cekap.

Hari ini terdapat pelbagai pilihan sistem pengurusan pangkalan data yang tersedia: daripada aplikasi desktop kecil kepada pelbagai fungsi sistem pelayan dengan kaedah carian yang sangat dioptimumkan. Berikut ialah beberapa sistem pengurusan pangkalan data hubungan (RDBMS) yang paling terkenal:

- Oracle– digunakan terutamanya untuk aplikasi profesional dan besar.
- pelayan Microsoft SQL– RDBMS Microsoft. Tersedia hanya untuk sistem operasi Windows.
- mysql ialah RDBMS sumber terbuka yang sangat popular. Digunakan secara meluas oleh kedua-dua profesional dan pemula. Apa lagi yang diperlukan?! Ianya percuma.
- IBM– mempunyai beberapa RDBMS, yang paling terkenal ialah DB2.
- Microsoft Access– RDBMS, yang digunakan di pejabat dan di rumah. Malah, ia lebih daripada sekadar pangkalan data. MS Access membolehkan anda mencipta pangkalan data dengan antara muka pengguna.
Dalam bahagian seterusnya saya akan memberitahu anda tentang ciri-ciri pangkalan data hubungan.

3. Ciri-ciri pangkalan data hubungan.
Pangkalan data perhubungan direka untuk cepat simpan dan menerima jumlah yang besar maklumat. Di bawah adalah beberapa ciri pangkalan data hubungan dan model data hubungan.
Menggunakan kunci.
Setiap baris data dalam jadual dikenal pasti oleh "kunci" unik yang dipanggil kunci utama. Selalunya, kunci utama ialah nombor yang meningkat secara automatik (naik secara automatik) (1,2,3,4, dsb.). Data dalam jadual yang berbeza boleh dipautkan bersama menggunakan kekunci. Nilai kunci utama satu jadual boleh ditambah pada baris (rekod) jadual lain, dengan itu menghubungkan rekod tersebut bersama-sama.

menggunakan bahasa berstruktur pertanyaan (SQL), data daripada jadual berbeza yang berkaitan dengan kunci boleh dipilih pada satu masa. Sebagai contoh, anda boleh membuat pertanyaan yang akan memilih semua pesanan daripada jadual pesanan yang dimiliki oleh id pengguna 3 (Mike) daripada jadual pengguna. Kami akan bercakap tentang kunci lebih lanjut dalam bahagian berikut.


Lajur id dalam jadual ini ialah kunci utama. Setiap rekod mempunyai kunci utama yang unik, selalunya nombor. Lajur kumpulan pengguna ialah kunci asing. Berdasarkan namanya, ia nampaknya merujuk kepada jadual yang mengandungi kumpulan pengguna.

Tiada lebihan data.
Dalam reka bentuk pangkalan data yang mengikut peraturan model data hubungan, setiap maklumat, seperti nama pengguna, disimpan di satu tempat sahaja. Ini menghapuskan keperluan untuk bekerja dengan data di berbilang tempat. Data pendua dipanggil redundansi data dan harus dielakkan dalam projek yang bagus Pangkalan data.
Had input.
Menggunakan pangkalan data hubungan, anda boleh menentukan jenis data yang dibenarkan untuk disimpan dalam lajur. Anda boleh mencipta medan yang mengandungi integer, nombor perpuluhan, kepingan kecil teks, kepingan besar teks, tarikh, dsb.


Apabila anda mencipta jadual pangkalan data, anda menyediakan jenis data untuk setiap lajur. Sebagai contoh, varchar ialah jenis data untuk kepingan kecil teks dengan bilangan maksimum aksara bersamaan dengan 255, dan int ialah nombor.

Selain jenis data, RDBMS membenarkan anda mengehadkan lagi data yang boleh anda masukkan. Contohnya, hadkan panjang atau paksa keunikan nilai rekod masuk lajur ini. Had terakhir sering digunakan untuk medan yang mengandungi nama pendaftaran pengguna (log masuk), atau alamat e-mel.

Sekatan ini memberi anda kawalan ke atas integriti data anda dan mencegah situasi seperti berikut:

Memasukkan alamat (teks) dalam medan yang anda jangkakan untuk melihat nombor
- memasukkan indeks wilayah dengan panjang indeks yang sama ini iaitu seratus aksara
- mencipta pengguna dengan nama yang sama
- mencipta pengguna dengan alamat e-mel yang sama
- masukkan berat (nombor) dalam medan hari lahir (tarikh)

Mengekalkan integriti data.
Dengan melaraskan sifat medan, memautkan jadual dan mengkonfigurasi kekangan, anda boleh meningkatkan kebolehpercayaan data anda.
Penyerahan hak.
Kebanyakan RDBMS menawarkan tetapan hak akses yang membolehkan anda menetapkan hak tertentu pengguna tertentu. Beberapa tindakan yang boleh dibenarkan atau dinafikan kepada pengguna: SELECT, INSERT, DELETE, ALTER, CREATE, dsb. Ini adalah operasi yang boleh dilakukan menggunakan Structured Query Language (SQL).
Bahasa Pertanyaan Berstruktur (SQL).
Untuk melaksanakan operasi tertentu pada pangkalan data, seperti menyimpan data, mendapatkannya, mengubahnya, bahasa pertanyaan berstruktur (SQL) digunakan. SQL agak mudah difahami dan membolehkan... dan pilihan bertindan, seperti mendapatkan semula data berkaitan daripada berbilang jadual menggunakan pernyataan SQL SERTAI. Seperti yang dinyatakan sebelum ini, SQL tidak akan dibincangkan dalam tutorial ini. Saya akan fokus pada reka bentuk pangkalan data.

Cara anda mereka bentuk pangkalan data anda akan memberi kesan langsung pada pertanyaan yang anda perlu jalankan untuk mendapatkan semula data daripada pangkalan data. Ini adalah satu lagi sebab mengapa anda perlu memikirkan tentang asas anda sepatutnya. Dengan pangkalan data yang direka dengan baik, pertanyaan anda boleh menjadi lebih bersih dan mudah.

Mudah alih.
Model data hubungan adalah standard. Dengan mengikuti peraturan model data hubungan, anda boleh memastikan bahawa data anda boleh dipindahkan ke RDBMS lain dengan relatif mudah.

Seperti yang dinyatakan sebelum ini, reka bentuk pangkalan data adalah soal mengenal pasti data, mengaitkannya, dan meletakkan keputusan soalan itu di atas kertas (atau dalam program komputer). Reka pangkalan data bebas daripada RDBMS yang anda bercadang untuk menggunakannya untuk menciptanya.

Dalam bahagian seterusnya kita akan melihat lebih dekat pada kunci primer.