Panduan Reka Bentuk Pangkalan Data. Pembangunan pangkalan data hubungan. Universiti Penyelidikan Kebangsaan

Kerajaan Persekutuan Russia

Universiti Penyelidikan Kebangsaan

SEKOLAH MENENGAH EKONOMI

CAWANGAN PERM

Jabatan teknologi maklumat dalam perniagaan

Teknologi maklumat dalam kerja pejabat

Pembangunan sistem informasi perusahaan menggunakan sistem pengurusan pangkalan data Akses data 2007

Manual pendidikan dan metodologi

Perm 2011

Teknologi maklumat dalam kerja pejabat. Pembangunan sistem maklumat perusahaan menggunakan sistem pengurusan pangkalan data Access 2007. Manual pendidikan. NRU HSE PF, 2011, 40 p.

Disusun oleh: Vikentyeva Olga Leonidovna, Lebedev Valery Viktorovich.

Manual pendidikan disusun mengikut standard pendidikan Negeri, kurikulum dan konsep disiplin "Teknologi Maklumat dalam Ekonomi". Manual ini bertujuan untuk pelajar dan guru Fakulti Pencen Sekolah Tinggi Ekonomi Universiti Negeri dan mengandungi satu siri kelas amali, mendedahkan keupayaan teknologi maklumat moden untuk mencipta sistem untuk menyimpan, mendapatkan semula dan mempersembahkan data.

Penyemak: Profesor Madya Jabatan Informatik Institut Teknologi Maklumat Pedagogi Wilayah Perm, Calon Sains Pedagogi, Ahli Koresponden Akademi Informatisasi Pendidikan Kushev V.O.

Pelajaran 1. Reka bentuk asas perhubungan data

Dalam erti kata biasa, pangkalan data ialah fail atau set fail yang mempunyai organisasi tertentu. Walau bagaimanapun, apabila bekerja dengan sistem konvensional pemprosesan fail menimbulkan beberapa masalah yang berkaitan, khususnya, kepada redundansi dan pergantungan data yang disimpan di dalamnya. Apabila mereka bentuk pangkalan data, masalah ini diselesaikan.

Pengguna mesti mengambil bahagian dalam proses reka bentuk pangkalan data, kerana hanya dia yang boleh menentukan data yang diperlukan untuk kerja, menunjukkan hubungan yang wujud antara data ini dan memberi perhatian kepada kehalusan pemprosesannya.

Keperluan maklumat pengguna individu biasanya hanya mempengaruhi sebahagian daripada data yang disimpan dalam sistem maklumat, dan penerangan keperluan ini mungkin tidak bertepatan dengan huraian keperluan pengguna lain. Idea tentang maklumat yang diperlukan untuk kerja akan berbeza kumpulan yang berbeza pengguna, pakar dalam pelbagai bidang - ia bergantung kepada tugas yang mereka lakukan (pakar HR dan pekerja perakaunan, ketua jabatan, dll. memerlukan pelbagai data untuk melaksanakan fungsi mereka). Keperluan ini diterangkan dalam peringkat luaran pembentangan data (pandangan A, B, dan C dalam Rajah 1).



Penerangan luaran Akibatnya, terdapat banyak data yang disimpan dalam pangkalan data. Mereka perlu dibawa bersama pandangan konseptual, menerangkan data pada tahap keseluruhan sistem maklumat secara keseluruhan. Pembentangan data ini di peringkat dalaman ditentukan oleh cara ia disimpan ingatan luaran.

Mari kita pertimbangkan contoh pangkalan data sistem maklumat syarikat yang membekalkan barangan ke kedai bandar, dan kami hanya akan mengambil kira keperluan maklumat dua pekerja syarikat itu (dalam bentuk yang ringkas - jika tidak, contoh itu akan menjadi terlalu rumit. ).


Rajah 1. Pembentukan perwakilan data

Seorang pekerja perhubungan pelanggan memerlukan maklumat yang dibentangkan dalam Rajah 2 untuk melaksanakan tugasnya.

Pekerja yang bekerja dengan borang pembayaran memerlukan maklumat lain tentang pelanggan (Gamb. 3).

Data yang digunakan oleh pakar individu terletak dalam sistem maklumat bersatu perusahaan, dalam pangkalan data yang sama untuk mereka. Oleh itu, pandangan luaran pengguna individu mesti disepadukan ke dalam pandangan konseptual; matlamat untuk menerangkan data pada peringkat konseptual adalah untuk mencipta pandangan formal data yang mana-mana pandangan luaran adalah subset daripadanya. Proses menyepadukan perwakilan luaran menghapuskan kekaburan dan percanggahan dalam keperluan maklumat pengguna individu. Penerangan konseptual yang mewakili keseluruhan pangkalan data mestilah unik.

Rajah 2. Data untuk pekerja pertama

Rajah 3. Data untuk pekerja kedua

Dalam contoh ini, pandangan konsep mesti merangkumi semua maklumat yang diperlukan oleh semua pekerja. Percanggahan mungkin timbul disebabkan oleh fakta bahawa pekerja yang menggunakan maklumat am, boleh membayangkannya dengan cara yang berbeza (contohnya: nombor telefon boleh ditulis dalam format yang berbeza). Semua percanggahan ini mesti dihapuskan, data dan bentuk persembahannya mesti konsisten.

Kemudian penerangan konsep ditentukan oleh maklumat berikut

Data yang diterangkan oleh gambar rajah konsep mesti direkodkan dalam memori luaran, pada VRAM, direka untuk menyimpan maklumat yang terletak dalam pangkalan data. Perihalan data dalaman mencirikan cara data disimpan dalam memori luaran.

Peraturan untuk menerangkan data ditentukan oleh yang dipilih model data(V dalam kes ini hanya model perhubungan dianggap - yang paling biasa pada masa ini).

Jika kita mengambil perihalan data tentang pelanggan syarikat yang terlibat dalam membekalkan barangan ke kedai bandar dari contoh di atas, yang dibentangkan dalam Rajah 4, maka data yang diterangkan oleh jadual ini tidak boleh dibentangkan dalam bentuk ini dalam pangkalan data hubungan, kerana tidak semua nilai adalah atom ( komponen baris "Pemilik" dan "Alamat" terdiri daripada beberapa nilai, iaitu nilai-nilai atribut ini digantikan oleh hubungan lain, diuraikan oleh mereka; dalam hubungan yang menerangkan pemilik, medan "Alamat" dan "Pasport" juga bukan atom, oleh itu hierarki dibina perhubungan).

Apabila mereka bentuk pangkalan data, mereka boleh diambil pelbagai penyelesaian, tetapi terdapat keperluan asas yang mesti diambil kira semasa proses kerja: set perhubungan mesti memastikan redundansi minimum dalam pembentangan maklumat; manipulasi data, pelarasan perhubungan tidak seharusnya membawa kepada pelanggaran integriti data, kekaburan dan kehilangan maklumat; penstrukturan semula set perhubungan apabila menambah atribut baharu pada pangkalan data hendaklah minimum.

Rajah 4. Persembahan umum data

Perihalan objek sebenar dan hubungan di antara mereka sebahagian besarnya subjektif, tetapi ada yang tertentu peraturan umum, khususnya, peraturan normalisasi. Normalisasi melindungi integriti data dengan menghapuskan pertindihan data. Akibatnya, perwakilan data bagi satu objek boleh dipecahkan kepada beberapa jadual berkaitan yang lebih kecil (penguraian tanpa kerugian). Sekatan yang mesti dipatuhi semasa mereka bentuk pangkalan data hubungan adalah agak banyak. Pematuhan terhadap sekatan apabila mentakrifkan perhubungan tertentu dalam pangkalan data dikaitkan dengan pelaksanaan bentuk biasa. Bentuk biasa dinomborkan secara berurutan, bermula dari yang pertama. Lebih besar bilangan bentuk biasa yang dipenuhi pangkalan data, lebih banyak sekatan pada data yang disimpan dalam pangkalan data mesti dipatuhi. Ia adalah mungkin untuk tipikal untuk DBMS hubungan memperkenalkan sekatan set tambahan sekatan, yang akan membawa kepada peningkatan dalam bilangan bentuk biasa.

Pangkalan data yang direka bentuk dengan buruk boleh menyimpan semua maklumat dalam satu jadual. Untuk contoh yang diterangkan di atas, jadual sedemikian boleh mengandungi lajur berikut:

Komponen alamat Jalan dan Rumah telah dinamakan semula untuk mematuhi keperluan bahawa nama lajur mestilah unik (peraturan penamaan berbeza mengikut DBMS).

Apakah kelemahan idea ini?

Bentuk normal pertama memerlukan di mana-mana persilangan baris dan lajur terdapat satu nilai yang mesti tidak boleh dibahagikan (keperluan atomicity). Selain itu, jadual hubungan tidak boleh mengandungi baris pendua atau kumpulan data.

Keperluan atomicity dipenuhi - lajur komposit "Alamat" dan "Pemilik" (dan untuk pemilik "Alamat" dan "Pasport") dibahagikan kepada komponen yang disertakan dalam jadual keseluruhan. Tetapi satu kedai boleh mempunyai beberapa pemilik, dan seorang boleh memiliki beberapa kedai. Ini bermakna bahawa jadual perlu memasukkan semua baris yang mewakili "gabungan" kedai dan pemiliknya, i.e. kumpulan data akan diulang dalam baris yang berbeza (data tentang kedai akan diulang beberapa kali - untuk setiap pemiliknya, dan data pemilik akan diulang untuk setiap kedainya). Perwakilan data sedemikian membawa kepada redundansi yang besar dan fakta bahawa memori pada VRAM akan digunakan secara tidak cekap. Di samping itu, pertindihan maklumat boleh membawa kepada masalah semasa memprosesnya: untuk membuat perubahan pada maklumat tentang kedai (contohnya, jika akaun banknya berubah), anda perlu menukar data ini dalam beberapa rekod yang sepadan dengan pemilik yang berbeza.

Apabila menentukan jadual mana yang perlu dimasukkan ke dalam pangkalan data dan maklumat yang perlu disimpan di dalamnya, anda harus mempertimbangkan peraturan seterusnya: setiap jadual menerangkan objek, wujud secara bebas, mempunyai sifatnya sendiri. Pembinaan pangkalan data harus dimulakan dengan mencipta perwakilan setiap objek dalam bentuk baris yang mengandungi atributnya dalam jadual yang sepadan; mentakrifkan model hubungan objek. Dalam contoh yang sedang dipertimbangkan, pangkalan data sebenarnya harus menyimpan maklumat tentang objek dua jenis: tentang kedai dan tentang pemiliknya. Maklumat ini hendaklah diletakkan dalam dua jadual berbeza (Kedai dan Pemilik) dengan lajur berikut:

"Kedai-kedai itu"

"Pemilik"

Setiap baris jadual "Kedai" akan menerangkan contoh objek yang sepadan (satu kedai). Dan setiap baris jadual "Pemilik" akan mengandungi maklumat tentang seorang pemilik kedai.

Apabila bekerja dengan maklumat yang disimpan dalam pangkalan data, DBMS mesti dapat membezakan baris antara satu sama lain. Atribut atau set atribut yang mengenal pasti rentetan secara unik ialah ia kunci utama.

Apakah yang boleh dipilih sebagai kunci utama untuk jadual yang diterangkan di atas?

kunci hubungan ialah satu set atribut yang setiap gabungan nilainya berlaku hanya dalam satu baris hubungan dan tiada subset atribut ini mempunyai sifat ini. Oleh itu, kunci secara unik mengenal pasti baris dan membolehkannya dipilih daripada keseluruhan set baris dalam hubungan.

Mari kita tentukan kunci untuk jadual "Kedai".

Jika anda memilih atribut Nama Kedai sebagai kunci, adakah ia akan memenuhi keperluan yang ditentukan? Tidak, jika dalam satu bandar mungkin terdapat beberapa kedai dengan nama yang sama bertempat di bahagian yang berbeza bandar-bandar. Untuk memastikan kejelasan, anda harus menambah nama kedai dengan alamatnya (dengan nama kedai dan alamatnya, anda boleh memilih dengan jelas garisan yang dikehendaki dalam jadual), maka kunci hubungan akan menjadi komposit.

Dengan kunci mudah, mengenal pasti kedai yang betul, mungkin nombor akaun bank (jika setiap kedai mempunyai satu nombor akaun semasa dan setiap akaun semasa adalah milik satu kedai). Kuncinya juga boleh menjadi nombor pengenalan cukai ( nombor pengenalan) kedai.

Mari pilih atribut "TIN" sebagai kunci utama. Selanjutnya, atribut ini akan digunakan untuk mengatur sambungan antara jadual "Kedai" dan "Pemilik" (sambungan ini harus mencerminkan hubungan sebenar antara kedai dan pemiliknya).

Mari kita tentukan kunci untuk jadual "Pemilik".

Jika kita boleh mengandaikan bahawa tiada nama yang sama dalam kalangan pemilik kedai, maka kita boleh memilih atribut "Nama Akhir" bagi perhubungan yang dipersoalkan sebagai kunci. Tetapi, malangnya, pemilik kedai boleh bukan sahaja senama, tetapi juga kaki tangan lengkap (tidak mungkin, tetapi agak mungkin). Oleh itu, anda boleh memilih data pasport pemilik sebagai kunci, i.e. gunakan kunci komposit untuk mengenal pastinya, termasuk atribut "Siri" dan "Nombor". Kami akan menganggap kunci ini sebagai kunci utama. Dengan bantuannya, kami akan mewujudkan hubungan antara pemilik dan kedainya.

Kekunci utama akan memberikan bukan sahaja ketidakjelasan apabila mencari maklumat (ia adalah unik), tetapi juga akan membolehkan anda memautkan data yang terdapat dalam dua jadual.

Mari kita tentukan jenis perhubungan antara jadual "Kedai" dan "Pemilik".

Jika kita menganggap bahawa seseorang boleh memiliki beberapa kedai, tetapi setiap kedai mempunyai pemilik tunggal, maka kita akan mewujudkan hubungan satu-dengan-banyak antara jadual ini. Untuk mengatur sambungan sedemikian dalam pangkalan data, adalah mungkin untuk memasukkan dalam baris jadual "Kedai" yang mengandungi maklumat tentang kedai kunci luaran, mengenal pasti pemilik kedai, i.e. data pasportnya - atribut "Siri" dan "Nombor". Dalam kes ini, adalah mustahil untuk mengatur sambungan dengan memasukkan kunci "TIN", yang mengenal pasti kedai, sebagai kunci asing dalam jadual "Pemilik", kerana dalam kes ini maklumat tentang pemilik perlu diduplikasi untuk setiap kedai. .

Jika kita membuat andaian bahawa seorang hanya boleh memiliki satu kedai, tetapi setiap kedai boleh mempunyai berbilang pemilik, kita mendapat perhubungan satu dengan ramai, tetapi dalam kes ini kunci luaran(nombor pengenalan cukai kedai) perlu disertakan dalam jadual yang mengandungi maklumat tentang pemilik.

Pada hakikatnya, setiap orang mungkin pemilik beberapa kedai dan setiap kedai mungkin mempunyai beberapa pemilik, jadi hubungan ramai-ke-banyak mesti diwujudkan antara jadual "Kedai" dan "Pemilik", untuk organisasi yang mempunyai jadual khas dicipta yang menerangkan hubungan antara kedai dan pemilik:

"Pemilik Kedai"

TIN Siri Nombor

Jadual ini akan membolehkan anda mencari semua pemiliknya menggunakan atribut "TIN" sebuah kedai (melalui data pasport mereka) dan menggunakan atribut komposit yang termasuk atribut "Siri" dan "Nombor" pasport pemilik kepada cari dalam pangkalan data semua kedai yang dia miliki.

Untuk melakukan ini, setelah mencipta jadual "Pemilik Kedai", wujudkan hubungan satu dengan banyak antara jadual "Kedai" dan jadual "Pemilik Kedai", serta antara "Pemilik" dan "Pemilik Kedai" jadual:

TIN Siri Nombor

"Pemilik Kedai"

Sambungan yang diwujudkan membantu DBMS mengekalkan integriti dan ketekalan maklumat. Sebagai contoh, anda boleh menetapkan peraturan untuk mengemas kini maklumat dalam jadual berkaitan apabila mengemas kini maklumat dalam jadual utama (apabila kedai dibubarkan, contohnya, maklumat mengenainya daripada pangkalan data harus dipadamkan dan dipindahkan ke arkib, dan bukan sahaja baris daripada jadual "Kedai", tetapi semua maklumat dalam jadual berkaitan yang berkaitan dengan kedai ini).

Untuk kemudahan pengguna dan untuk mempercepatkan carian, DBMS menyokong keupayaan untuk mencari bukan sahaja dengan kekunci unik. Sebagai contoh, anda boleh mencari dalam jadual semua kedai dengan nama yang sama atau semua kedai yang dimiliki oleh pemilik yang sama.

Normalisasi data membawa kepada pembahagian jadual, memisahkan hubungan kunci utama-asing ke dalam jadual yang lebih kecil. Hasil daripada normalisasi ialah pengurangan lebihan data - tidak perlu lagi menduplikasi data tentang setiap pemilik untuk setiap kedai.

Bentuk normal kedua memerlukan mana-mana lajur bukan kunci bergantung pada kunci utamanya (dan pada keseluruhan kunci, bukan pada komponen individunya). Sesuatu hubungan berada dalam bentuk normal kedua jika ia sepadan dengan bentuk normal pertama dan tidak mengandungi tidak lengkap kebergantungan berfungsi. Kebergantungan fungsi yang tidak lengkap ditakrifkan oleh dua syarat: kunci perhubungan secara berfungsi mentakrifkan beberapa atribut bukan kunci, dan sebahagian daripada kunci secara berfungsi mentakrifkan atribut bukan kunci yang sama.

Hubungan yang tidak sepadan dengan bentuk normal kedua dicirikan oleh redundansi data yang disimpan.

Dalam contoh yang sedang dipertimbangkan, set atribut hubungan dan pilihan kekunci dibuat sedemikian rupa sehingga jadual sepadan dengan bentuk normal kedua. Jika surat-menyurat ini tidak wujud, untuk mengurangkan jadual kepada bentuk normal kedua adalah perlu untuk memisahkan maklumat berulang (sebahagian daripada kunci dan atribut bukan kunci yang ditakrifkannya) ke dalam jadual yang berasingan.

Sebagai contoh: dalam pangkalan data adalah perlu untuk menyimpan maklumat tentang barangan yang dihantar ke kedai. Maklumat ini termasuk atribut "Nama", "Kod" dan "Harga" produk, serta "Kuantiti" produk yang dihantar. Jika anda memasukkan maklumat ini dalam jadual "Bekalan" dalam persembahan seterusnya:

"Bekalan"

(di sini "TIN" mengenal pasti kedai tempat penghantaran dibuat (ini ialah kunci asing yang digunakan untuk mencipta hubungan satu-ke-banyak antara jadual "Kedai" dan jadual ini), "Nama" ialah nama produk , "Kod" ialah kod uniknya (produk dengan ciri yang berbeza dan, oleh itu, harga yang berbeza mungkin mempunyai nama yang sama, tetapi kodnya akan berbeza), "Harga" ialah harga jualan produk, "Kuantiti" ialah kuantiti produk yang dibekalkan), maka lebihan mungkin timbul.

Untuk menentukan garis yang mewakili penghantaran barang ke kedai tertentu, anda boleh menentukan kunci komposit yang merangkumi atribut "TIN" dan "Kod". Maklumat ini memungkinkan untuk menentukan harga produk dan kuantiti yang dihantar kedai ini, dan juga mengira jumlah kos barang. Jika kita menganggap bahawa produk itu dibekalkan kepada semua kedai pada harga yang sama, dan harga tidak berubah dari semasa ke semasa, maka atribut bukan kunci "Harga" ditentukan bukan sahaja oleh kunci komposit "TIN" + "Kod", tetapi juga bahagiannya - atribut "Kod" " Oleh itu, harga yang sama diulang dalam semua baris jadual, yang mengandungi maklumat tentang pembekalan produk yang sama. Ini membawa kepada redundansi. Nama produk juga ditentukan oleh kodnya. Oleh itu, maklumat yang hanya berkaitan dengan produk dan tidak bergantung pada kedai boleh diletakkan dalam jadual berasingan:

Di sini, medan utama "Kod" akan membolehkan anda memautkan data dalam jadual "Bekalan" dengan data daripada jadual "Produk"

Oleh itu, pengurangan kepada bentuk normal kedua menghapuskan lebihan dengan mengasingkan jadual baharu: jadual "Bekalan" dibahagikan kepada dua jadual "Bekalan" dan "Barang", di mana perhubungan diwujudkan.

Bentuk normal ketiga meningkatkan lagi keperluan: perhubungan itu mematuhi bentuk normal kedua dan tiada kebergantungan fungsi transitif antara atributnya (tiada lajur bukan kunci harus bergantung pada lajur bukan kunci lain, ia hanya boleh bergantung pada kunci utama).

Dalam contoh yang sedang dipertimbangkan, percanggahan dengan bentuk normal ketiga akan muncul jika syarat berikut dipenuhi: semua barang dengan nama yang sama mempunyai harga yang sama (nama akan ditentukan oleh kod, dan harga dengan nama produk). Dalam kes ini, lebihan akan muncul, memandangkan harga untuk nama produk tertentu akan diulang seberapa kerap kod yang berbeza untuk produk ini digunakan.

Anda boleh menyingkirkan lebihan dengan membahagikan jadual "Produk" kepada dua jadual (satu akan merangkumi atribut "Kod" dan "Nama", dan "Nama" dan "Harga" kedua).

Walau bagaimanapun, dalam contoh yang sedang dipertimbangkan keadaan adalah berbeza: barangan mempunyai kod yang berbeza, jika ciri-ciri mereka berbeza, oleh itu, harga harus berbeza.

Bentuk normal keempat melarang perhubungan satu-ke-banyak bebas antara lajur utama dan bukan kunci. Ringkasnya, maklumat heterogen tidak boleh diletakkan dalam satu jadual, i.e. data yang tidak ada sambungan langsung.

Peraturan ini boleh dilihat dalam contoh berikut. Pegawai perhubungan pelanggan bercadang untuk menggunakan maklumat tentang ahli keluarga pemilik kedai untuk menjalankan tugasnya. Maklumat ini tidak boleh dimasukkan dalam jadual Pemilik kerana sukar untuk menentukan berapa banyak ruang untuk ditempah dalam baris jadual yang sepadan dengan orang tertentu, untuk menyimpan data tentang mereka status perkahwinan, – seorang mungkin bujang, dan seorang lagi mungkin bapa kepada ramai anak. Maklumat tentang ahli keluarga mesti diletakkan dalam jadual berasingan, setiap barisnya akan mengandungi maklumat tentang seorang ahli keluarga, termasuk kunci asing yang mengenal pasti pemilik kedai untuk mengatur sambungan dengan jadual "Pemilik".

Bentuk normal kelima biasanya melengkapkan proses normalisasi. Pada peringkat ini, semua jadual dibahagikan kepada bahagian minimum untuk menghapuskan lebihan di dalamnya. Setiap bahagian data bukan kunci dalam jadual hendaklah muncul sekali sahaja. Ini menghapuskan masalah dengan mengemas kini maklumat dalam pangkalan data: semua perubahan kepada maklumat bukan kunci mesti dibuat sekali sahaja, yang memberikan keupayaan untuk mengurus integriti data.

Proses reka bentuk pangkalan data sangat peringkat penting dalam pembangunan sistem maklumat. Kualiti reka bentuk yang sebahagian besarnya menentukan keberkesanan penggunaan pangkalan data.

Pada masa ini digunakan secara meluas cara khas, memudahkan proses membangunkan sistem maklumat (alat CASE - Computer-Aided Software/System Engineering).

Soalan untuk mengawal diri:

1. Apakah pangkalan data?

2. Apakah perwakilan data luaran?

3. Apakah intipati perwakilan konseptual data?

4. Apakah model data?

5. Apakah normalisasi?

6. Apakah kunci perhubungan?

7. Kunci yang manakah dipanggil kunci asing?

8. Apakah sambungan yang boleh diatur dalam pangkalan data?

9. Apakah intipati setiap lima bentuk normal?

Tugasan untuk kerja bebas:

Reka pangkalan data syarikat perkhidmatan pelanggan. Tiga pekerja syarikat memerlukan pangkalan data. Yang pertama adalah berkaitan dengan perakaunan perkhidmatan yang disediakan oleh syarikat dan keperluan maklumat berikut:

Pekerja kedua mengumpul maklumat tentang penghibur dan berminat dalam:

Pekerja ketiga bekerja dengan pelanggan dan penting untuk dia tahu.

Mereka bentuk pangkalan data sistem maklumat adalah tugas yang agak intensif buruh. Ia dijalankan berdasarkan pemformalan struktur dan proses bidang subjek, maklumat tentang yang sepatutnya disimpan dalam pangkalan data. Terdapat reka bentuk konsep dan struktur skematik.

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 :

· mengkaji bidang subjek untuk membentuk idea umum mengenainya;

· pengenalpastian dan analisis fungsi dan tugas IS yang dibangunkan;

· penentuan objek-entiti utama kawasan subjek dan hubungan antara mereka;

· perwakilan rasmi 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 sambungan 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 fizikal dan peringkat logik. Reka bentuk dihidupkan tahap 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.

Satu daripada tugas paling penting reka bentuk logik DB ialah penstrukturan data. Yang berikut dibezakan: pendekatan untuk mereka bentuk struktur data:

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

· merumuskan 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;

· pelaksanaan analisis sistem dan pembangunan model struktur.

Pendekatan pertama adalah klasik.

Proses reka bentuk bermula dengan mengenal pasti objek entiti, maklumat yang akan disimpan dalam pangkalan data, dan menentukan atributnya. Atribut yang dipilih digabungkan dalam satu jadual (hubungan).

Maklumat penuh tentang intipati (jadual) memberikan redundansi (pengulangan), Þ transformasi diperlukan, i.e. penguraian, i.e. berpecah kepada beberapa jadual, i.e. normalisasi.

Þ Nisbah yang terhasil adalah tertakluk kepada normalisasi. Prosedur normalisasi ialah berulang dan terdiri daripada pemindahan berurutan hubungan daripada bentuk biasa pertama kepada bentuk biasa susunan yang lebih tinggi.

Urutan bentuk normal berikut dibezakan:

· bentuk normal pertama (1NF);

· bentuk normal kedua (2NF=1NF+sesuatu);

· bentuk normal ketiga (ZNF=2NF+sesuatu);

· bentuk normal ketiga yang dipertingkatkan, atau bentuk normal Boyce-Codd (BCNF);

· bentuk normal keempat (4NF);

· bentuk normal kelima (5NF).

(Keperluan untuk 2NF)

hanya berkorelasi dengan kunci utama. Þ Setiap data disimpan dalam pangkalan data di satu tempat sahaja. Þ Data pendua dipindahkan ke jadual lain, dan kekunci asing digunakan sebaliknya.

(Keperluan untuk 3NF)

Setiap medan bukan kunci tidak boleh bergantung pada medan bukan kunci yang lain (contohnya, hubungan guru-jabatan, atau hubungan subjek-jabatan). Untuk mengelakkan ini, anda perlu mengetahui bidang subjek secara terperinci. Þ Kami mengeluarkan "fakulti" daripada "Jadual" jika terdapat "Kepakaran" di sana.

3NF menyediakan rujukan pengisytiharan (data daripada direktori).

(Keperluan untuk 4NF)

Normalisasi membolehkan anda menghapuskan lebihan maklumat, yang membawa kepada anomali pemprosesan data.

Pada masa yang sama, seseorang harus membezakan antara duplikasi data tidak berlebihan dan berlebihan. Kehadiran yang pertama daripada mereka dalam pangkalan data dibenarkan. Berikut ialah contoh kedua-dua pilihan pendua.

Contoh pertindihan data tidak berlebihan ialah hubungan "TELEFON" (Rajah 5.6). Katakan bahawa hanya terdapat satu telefon yang dipasang dalam satu bilik, maka nombor telefon pekerja yang terletak di dalam bilik yang sama adalah sama. Nombor telefon 24212 muncul beberapa kali. Ini adalah pertindihan. Walau bagaimanapun, nombor itu adalah unik untuk setiap pekerja, dan jika salah satu daripada nombor itu dipadamkan, maklumat tentang nombor yang boleh digunakan untuk menghubungi pekerja tertentu akan hilang. Ini adalah intipati bukan redundansi.

nasi. 5.6. Penduaan data tidak berlebihan

Penduaan data yang berlebihan berlaku dalam hubungan "BILIK", yang atribut "Nombor Bilik" ditambah (Rajah 5.7).

nasi. 5.7. Penduaan data yang berlebihan

Pekerja Belkin, Sinitsyn dan Medvedev berada di dalam bilik yang sama dan oleh itu mempunyai nombor yang sama. Iaitu, nombor telefon Sinitsyn dan Medvedev boleh didapati dari cortege dengan maklumat tentang Belkin. Ini ialah redundansi pertindihan data.

Penduaan data yang berlebihan membawa kepada masalah dalam memproses tupel hubungan, yang dipanggil "anomali kemas kini hubungan" oleh E. Codd.

Anomali- situasi sedemikian dalam jadual pangkalan data yang membawa kepada percanggahan dalam pangkalan data atau merumitkan pemprosesan data dengan ketara.

Terdapat tiga jenis utama anomali:

· pengubahsuaian (editing) anomali;

· anomali penyingkiran;

· anomali penambahan.

Anomali Pengubahsuaian nyatakan diri mereka dalam fakta bahawa perubahan dalam nilai atribut mungkin memerlukan semakan keseluruhan jadual dengan perubahan sepadan dalam nilai atribut ini dalam rekod jadual lain.

Oleh itu, menukar nombor telefon dalam bilik 325 (Gamb. 5.7) akan memerlukan semakan semula keseluruhan jadual "BILIK" dan menukar nilai atribut "Nombor Telefon" dalam rekod di mana nombor ini muncul.

Anomali pemadaman menunjukkan diri mereka dalam fakta bahawa apabila sebarang nilai atribut dipadamkan, maklumat lain yang tidak berkaitan secara langsung dengan nilai yang dipadamkan akan hilang.

Oleh itu, pemadaman rekod mengenai pekerja Volkov (contohnya, disebabkan oleh pemecatan) membawa kepada kehilangan maklumat mengenai nombor telefon yang dipasang di bilik 320 (lihat Rajah 5.7).

Anomali tambahan nyatakan diri mereka dalam fakta bahawa adalah mustahil untuk menambah rekod pada jadual sehingga nilai semua atributnya diketahui, dan juga dalam fakta bahawa penyisipan entri baru akan memerlukan semakan keseluruhan jadual.

Sebagai contoh, dalam jadual "BILIK" (lihat Rajah 5.7) adalah mustahil untuk memaparkan maklumat tentang bilik dengan telefon yang dipasang di dalamnya sehingga tiada pekerja diletakkan di dalamnya (dengan syarat medan "Nama" adalah yang penting) .

Di samping itu, apabila menambah maklumat tentang pekerja baharu pada jadual, anda mesti menyemak jadual untuk ketidakkonsistenan yang mungkin timbul apabila entri yang tersilap nombor telefon atau bilik. Contoh percanggahan: pekerja berada dalam bilik yang sama, tetapi mempunyai nombor yang berbeza telefon.

Satu cara untuk menghapuskan pertindihan yang berlebihan dan meneutralkan anomali ialah penguraian, iaitu, membelah hubungan asal (jadual). Penguraian mesti boleh diterbalikkan, iaitu, dijalankan tanpa kehilangan maklumat

Model perhubungan data (RMD) 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.

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 kunci yang mungkin sikap berbeza 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 kita senaraikan peringkat reka bentuk konseptual:

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, anda boleh membezakan mengikuti prosedur :

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;

Menjalankan analisis sistem dan membangunkan model struktur.

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 semula 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 yang 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.

Ada yang cemerlang permohonan percuma Meja Kerja MySQL. 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, hendaklah 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 kes ini, ini adalah 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.

Tersedia hari ini luas memilih sistem pengurusan pangkalan data: daripada aplikasi desktop kecil kepada pelbagai fungsi sistem pelayan dengan kaedah carian yang sangat dioptimumkan. Berikut adalah antara yang paling banyak sistem yang diketahui pengurusan pangkalan data hubungan (RDBMS):

- Oracle– digunakan terutamanya untuk aplikasi profesional dan besar.
- Microsoft SQL pelayan– RDBMS Microsoft. Tersedia hanya untuk sistem operasi Windows.
- mysql– RDBMS yang sangat popular dengan sumber terbuka kod sumber. 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 rantau 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 menyimpan hasil keputusan. tisu ini ke atas kertas (atau 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.

Anotasi: Kuliah ini memulakan siri empat syarahan mengenai reka bentuk pangkalan data hubungan. Dalam kuliah ini kita akan bercakap tentang menormalkan skema hubungan, dengan mengambil kira hanya kebergantungan fungsi antara atribut hubungan. "Langkah pertama" penormalan ini menghasilkan reka bentuk pangkalan data di mana semua pembolehubah hubungan berada dalam bentuk normal Boyce-Codd, secara amnya dianggap memuaskan untuk kebanyakan aplikasi.

pengenalan

Apabila mereka bentuk pangkalan data, dua masalah utama diselesaikan.

  • Bagaimana untuk memetakan objek domain ke dalam objek abstrak model data supaya pemetaan ini tidak bercanggah dengan semantik domain dan, jika boleh, yang terbaik (berkesan, mudah, dll.)? Masalah ini sering dipanggil masalah reka bentuk logik pangkalan data.
  • Bagaimana untuk memastikan kecekapan melaksanakan pertanyaan ke pangkalan data, iaitu, bagaimana, dengan mengambil kira ciri-ciri DBMS tertentu, untuk mengatur data dalam memori luaran, apakah struktur tambahan (contohnya, indeks) harus dibuat, dsb.? Masalah ini biasanya dirujuk sebagai masalah reka bentuk pangkalan data fizikal.

Dalam kes pangkalan data hubungan, sukar untuk menawarkan sebarang resipi umum untuk reka bentuk fizikal. Di sini terlalu banyak bergantung pada DBMS yang digunakan. Oleh itu, kita akan menghadkan diri kita kepada soalan logik reka bentuk pangkalan data hubungan, yang penting apabila menggunakan mana-mana DBMS hubungan.

Lebih-lebih lagi, kami tidak akan menyentuh sangat aspek penting reka bentuk - menentukan kekangan integriti Pandangan umum(dengan pengecualian sekatan yang ditetapkan oleh fungsi dan kebergantungan berbilang nilai , serta kebergantungan unjuran/gabungan). Hakikatnya ialah apabila menggunakan DBMS dengan mekanisme kekangan integriti yang dibangunkan (contohnya, sistem berorientasikan SQL), adalah sukar untuk menawarkan sebarang pendekatan universal untuk menentukan kekangan integriti. Kekangan ini boleh mengambil bentuk kompleks yang sewenang-wenangnya, dan perumusannya masih merupakan soal seni dan bukannya kejuruteraan. Yang paling dicadangkan dalam hal ini dalam kesusasteraan ialah pemeriksaan automatik ketekalan set kekangan integriti.

Jadi dalam kuliah ini dan seterusnya, kita akan menganggap bahawa masalah mereka bentuk pangkalan data hubungan adalah membuat keputusan termaklum tentang hubungan apa yang harus terdiri daripada pangkalan data dan atribut apa yang sepatutnya ada pada hubungan tersebut.

Kuliah ini dan kuliah seterusnya akan mengkaji pendekatan klasik, di mana keseluruhan proses reka bentuk pangkalan data dijalankan dari segi model data hubungan dengan kaedah penghampiran berturut-turut kepada set corak hubungan yang memuaskan. Titik permulaan ialah perwakilan bidang subjek dalam bentuk satu atau lebih hubungan, dan pada setiap langkah reka bentuk satu set skema hubungan tertentu dihasilkan yang mempunyai sifat "bertambah baik". Proses reka bentuk ialah proses normalisasi skim hubungan, dengan setiap yang berikutnya bentuk biasa mempunyai sifat, dalam erti kata lain, lebih baik daripada yang sebelumnya.

Setiap bentuk normal dikaitkan dengan set kekangan tertentu, dan hubungan berada dalam bentuk normal tertentu jika ia memenuhi set kekangan yang wujud. Contohnya ialah sekatan bentuk normal pertama– nilai semua atribut hubungan adalah atom 1 Ingat dari Kuliah 2 itu atomicity nilai ditafsirkan dalam erti kata bahawa nilai ditaip, dan nilai ini hanya boleh dimanipulasi menggunakan operasi jenis data yang sepadan.. Sejak keperluan bentuk normal pertama adalah keperluan asas model data hubungan klasik, kami akan menganggap bahawa set awal hubungan sudah memenuhi keperluan ini.

DALAM teori pangkalan data hubungan biasanya menonjol urutan seterusnya bentuk biasa:

  • bentuk normal pertama (1NF) ;
  • bentuk normal kedua (2NF) ;
  • bentuk normal ketiga (3NF) ;