Erwin Asas. Membina model data logik. Abstrak: Memodelkan hubungan antara jadual dalam ERwin Erwin

Hubungan ialah hubungan logik antara entiti. Setiap perhubungan hendaklah dipanggil kata kerja atau frasa kerja. Nama perhubungan menyatakan beberapa kekangan atau peraturan perniagaan dan menjadikan gambar rajah lebih mudah dibaca. Secara lalai, nama sambungan tidak ditunjukkan dalam rajah. Pada peringkat logik, anda boleh mewujudkan perhubungan mengenal pasti satu-ke-banyak, perhubungan banyak-ke-banyak dan perhubungan tidak mengenal pasti satu-ke-banyak. Hubungan ialah konsep tahap logik yang mana kunci asing sepadan pada tahap fizikal. Dalam ERwin, perhubungan diwakili oleh lima maklumat utama:

● jenis sambungan (mengenal pasti, tidak mengenal pasti, kategori lengkap/tidak lengkap, sambungan tidak khusus);

● entiti induk;

● entiti kanak-kanak (tanggungan);

● kuasa komunikasi (kardinaliti);

● kebolehterimaan nilai kosong (null).

IDEFIX membezakan antara entiti bergantung dan bebas. Jenis entiti ditentukan oleh hubungannya dengan entiti lain. Hubungan mengenal pasti diwujudkan antara entiti bebas (ibu bapa) dan tanggungan (anak). Entiti bergantung diwakili oleh segi empat tepat dengan bucu bulat. Apabila perhubungan mengenal pasti diwujudkan, atribut kunci utama entiti induk dipindahkan secara automatik ke kunci utama entiti anak. Operasi menambah atribut kepada entiti anak semasa membuat perhubungan dipanggil migrasi atribut. Dalam entiti anak, atribut baharu ditandakan sebagai kunci asing - FK.

Apabila perhubungan tidak mengenal pasti diwujudkan, entiti anak kekal bebas dan atribut utama utama entiti induk dimasukkan dalam atribut bukan kunci entiti anak. Hubungan tidak mengenal pasti digunakan untuk memautkan entiti bebas. Untuk menentukan perhubungan ERwin, anda memilih jenis perhubungan, kemudian gunakan tetikus untuk memilih entiti induk dan anak. Pautan pengenalpastian digambarkan sebagai garis pepejal; tidak mengenal pasti - garis putus-putus. Garisan berakhir dengan titik di sebelah entiti kanak-kanak.

Cardinality - berfungsi untuk menunjukkan nisbah bilangan kejadian entiti induk kepada bilangan kejadian anak.

Terdapat empat jenis entiti:

· kes umum apabila satu kejadian entiti induk sepadan dengan 0, 1 atau banyak kejadian entiti anak; tidak ditanda dengan sebarang simbol;

· simbol P menandakan kes apabila satu kejadian entiti induk sepadan dengan 1 atau banyak kejadian entiti anak (nilai sifar dikecualikan);

· simbol Z menandakan kes apabila satu tika entiti induk sepadan dengan 0 atau 1 tika entiti anak (berbilang nilai dikecualikan);

· nombor menandakan kes padanan tepat, apabila satu kejadian entiti induk sepadan dengan bilangan kejadian yang telah ditetapkan bagi entiti anak.

· kebolehterimaan nilai kosong (NULL) dalam perhubungan tidak mengenal pasti digambarkan oleh ERwin sebagai berlian kosong pada arka perhubungan dari sisi entiti induk.

Nama sambungan pada peringkat logik ialah kata kerja yang menghubungkan entiti. Nama pautan fizikal (yang mungkin berbeza daripada nama pautan logik) untuk ERWin bermaksud kekangan atau nama indeks. Untuk memaparkan nama perhubungan, pilih pilihan daripada menu: Format/Paparan Perhubungan/Frasa kerja.

Sesetengah entiti mentakrifkan keseluruhan kategori objek daripada jenis yang sama. Dalam ERwin, dalam kes ini, entiti dicipta untuk menentukan kategori dan untuk setiap elemen kategori, dan kemudian hubungan pengkategorian diperkenalkan untuk mereka. Entiti induk bagi kategori dipanggil superjenis, dan anak-anaknya dipanggil subjenis.

Sebagai contoh, entiti "dokumen masuk" boleh menjadi permintaan dan pesanan. Yang pertama dan kedua mempunyai set atribut yang berbeza, bertindih separa (persimpangan minimum subjenis ialah kunci utama). Bahagian biasa atribut ini, termasuk kunci utama, diletakkan dalam entiti superjenis "dokumen masuk". Pelbagai bahagian (contohnya, data tentang kandungan, penghantar) diletakkan dalam entiti subjenis.

Dalam entiti superjenis, atribut diskriminator diperkenalkan yang membolehkan anda membezakan antara kejadian khusus entiti - subjenis.

Bergantung pada sama ada semua entiti subjenis yang mungkin disertakan dalam model, perhubungan kategori adalah lengkap atau tidak lengkap.

Rajah 1.4 - Contoh set kategori yang tidak lengkap

Rajah 1.5 - Contoh set lengkap kategori

3. Entiti boleh menjadi entiti umum dalam sebarang bilangan perhubungan pengkategorian.

4. Atribut kunci utama entiti kategori mesti sepadan dengan atribut kunci utama entiti umum.

5. Semua kejadian entiti kategori mempunyai nilai diskriminasi yang sama, dan semua kejadian kategori lain mesti mempunyai nilai diskriminator yang berbeza (lihat Rajah 4 dan Rajah 5).

Peranan.

Nama peranan (nama fungsian) ialah sinonim untuk atribut kunci asing yang menunjukkan peranan yang dimainkan oleh atribut dalam entiti anak. Secara lalai, hanya nama peranan ditunjukkan dalam senarai atribut. Untuk memaparkan nama penuh atribut (kedua-dua nama fungsian dan nama peranan), pilih Format/Paparan Entiti daripada menu konteks dan kemudian dayakan pilihan Nama Peranan/Atribut. Nama penuh ditunjukkan sebagai nama fungsian dan nama asas, dipisahkan dengan titik. Nama peranan ditentukan pada tab Nama Peranan kotak dialog Perhubungan. Tetingkap ini dipanggil dengan mengklik dua kali pada talian sambungan.

Adalah wajib untuk menggunakan nama peranan apabila dua atau lebih atribut entiti yang sama ditakrifkan dalam skop yang sama, i.e. mereka mempunyai julat makna yang sama, tetapi makna yang berbeza.

Perwakilan.

Paparan, atau, seperti yang kadang-kadang dipanggil, jadual sementara atau terbitan, ialah objek pangkalan data di mana data tidak disimpan secara kekal, seperti dalam jadual, tetapi dijana secara dinamik apabila paparan diakses. Pandangan tidak boleh wujud dengan sendirinya, tetapi ditakrifkan hanya dari segi satu atau lebih jadual. Menggunakan paparan membolehkan pereka bentuk pangkalan data menyediakan setiap pengguna atau kumpulan pengguna dengan pandangan data yang berbeza, yang menyelesaikan masalah kemudahan penggunaan dan keselamatan data.

Penerangan mengenai antara muka ERwin. Antara muka CASE ERwin terdiri daripada tiga bahagian utama. Yang pertama ialah menu utama dan bar alat.

Butang pada bar alat mencerminkan beberapa arahan asas pada menu utama. Simpan, buka, buat fail baharu, panel dengan butang untuk menambah atau mengurangkan skala paparan model, suis antara model fizikal dan logik, suis antara paparan yang disimpan, panel untuk mengedit gaya, saiz dan warna fon, panel dengan alatan untuk membina bentuk geometri dan beberapa bar alat tambahan (Rajah 5.3).

nasi. 5.3.

Yang kedua ialah Model Explorer. Ia mengandungi tiga tab: Model, Kawasan Subjek dan Domain. Tab yang paling biasa digunakan dalam Model Explorer ialah tab Domain atau Model (yang mengandungi semua objek dan model). Dalam Domain domain dipaparkan, dan dalam Kawasan Subjek - kawasan yang dipaparkan (Rajah 5.4).

nasi. 5.4.

Dan yang ketiga ialah kawasan yang diperuntukkan secara langsung untuk mencipta model objek, di mana semua objek model dibuat dan diedit. Penanda halaman muncul di bahagian bawah dengan nama paparan tersimpan (Paparan Tersimpan) (Gamb. 5.5).


nasi. 5.5.

ERwin mempunyai dua peringkat perwakilan data model: logik dan fizikal. Tahap logik- ini ialah pandangan abstrak data, di mana data tersebut dipersembahkan seperti yang kelihatan di dunia nyata, contohnya, "Pelanggan", "Bengkel" atau "Nama Pekerja". Objek model yang diwakili pada peringkat logik dipanggil entiti dan atribut. Model data logik boleh dibina di atas model logik lain, seperti model proses. Model data logik adalah universal dan sama sekali tidak berkaitan dengan pelaksanaan DBMS tertentu.

Model fizikal data, sebaliknya, bergantung pada DBMS tertentu, sebenarnya merupakan cerminan katalog sistem. Model fizikal mengandungi maklumat tentang semua objek pangkalan data. Oleh kerana tiada piawaian untuk objek pangkalan data (contohnya, tiada standard untuk jenis data), model fizikal bergantung pada pelaksanaan khusus DBMS. Akibatnya, beberapa model fizikal yang berbeza boleh sepadan dengan model logik yang sama. Jika dalam model logik tidak kira jenis data tertentu yang dimiliki oleh atribut, maka dalam model fizikal adalah penting untuk menerangkan semua maklumat tentang objek fizikal tertentu - jadual, lajur, indeks, prosedur, dll. Membahagikan model kepada logik dan fizikal membolehkan anda menyelesaikan banyak tugas penting.

ERwin mempunyai beberapa tahap paparan gambar rajah: tahap entiti, tahap atribut, tahap definisi, tahap kunci utama dan tahap ikon. Anda boleh bertukar antara tiga peringkat pertama menggunakan butang pada bar alat. Anda boleh beralih ke tahap paparan lain menggunakan menu konteks yang muncul jika anda "klik" pada mana-mana tempat dalam rajah yang tidak diduduki oleh objek model. Dalam menu konteks, pilih Tahap Paparan dan kemudian tahap paparan yang dikehendaki. ERwin membenarkan anda mengaitkan ikon besar dan kecil dengan entiti. Apabila beralih ke tahap ikon, ikon besar ditunjukkan. Untuk memaparkan ikon kecil, pilih Paparan Entiti/Ikon Entiti dalam menu konteks. Ikon kecil akan ditunjukkan di sebelah kiri nama entiti pada semua peringkat paparan model.

Tetapkan warna dan fon. Terdapat beberapa cara untuk menetapkan fon dan warna objek dalam ERwin. Pertama, untuk menetapkan warna dan fon objek, gunakan Font dan Bar Alat Warna, yang terletak di bawah panel utama. Untuk mengedit fon dan warna objek tertentu, klik kanan pada entiti atau perhubungan dan pilih Fon & Warna Objek... daripada menu pop timbul untuk membuka dialog Editor Fon/Warna, di mana nama, penerangan dan ulasan entiti ditakrifkan. Dalam dialog Font/Color Editor, anda boleh memilih fon dan menetapkan saiz, gaya dan warnanya, tetapkan warna isian (sifat Warna Isian, hanya untuk entiti) dan warna garisan (sifat Warna Outline, hanya untuk entiti).

Apabila mencipta model data sebenar, bilangan entiti dan atribut boleh berjumlah ratusan. Untuk kerja yang lebih mudah dengan model besar, ERwin menyediakan subset model (Kawasan Subjek), di mana entiti biasa secara tematik boleh dimasukkan. Subset model boleh termasuk set arbitrari entiti, perhubungan dan ulasan teks. Untuk membuat, memadam atau mengedit subset model, anda perlu memanggil dialog Kawasan Subjek (Model/Kawasan Subjek... menu), di mana anda menunjukkan nama subset dan entiti yang disertakan di dalamnya. Semua perubahan yang dibuat dalam mana-mana Kawasan Subjek ditunjukkan secara automatik pada model umum. Entiti yang sama boleh dimasukkan dalam beberapa Bidang Subjek.

Paparan Tersimpan- perwakilan subset model, memaparkan aspek khusus struktur data. Satu Kawasan Subjek boleh termasuk berbilang pemetaan yang disimpan. Paparan yang disimpan termasuk entiti dan perhubungan yang sama seperti Kawasan Subjek, tetapi ia mungkin diletakkan secara berbeza pada skrin, pada tahap yang berbeza, pada skala yang berbeza dan pada objek atau warna latar belakang yang berbeza.

Untuk mencipta paparan yang disimpan, gunakan dialog Paparan Tersimpan (Menu Format/Tetapan Paparan Tersimpan...). Untuk bertukar antara paparan yang disimpan, gunakan tab di bahagian bawah rajah.

Komponen utama rajah ERwin ialah entiti, atribut dan perhubungan. Setiap entiti ialah satu set objek individu yang serupa yang dipanggil instance. Setiap salinan adalah individu dan mesti berbeza daripada semua salinan lain. Atribut menyatakan sifat khusus objek. Dari sudut pandangan pangkalan data (model fizikal), entiti sepadan dengan jadual, kejadian entiti sepadan dengan baris dalam jadual, dan atribut sepadan dengan lajur jadual.

Penciptaan model data logik untuk kawasan subjek "Perabot buatan tersuai". Model logik yang dicipta mengulangi struktur IC yang direka. Untuk mencipta entiti dalam kawasan untuk mencipta model objek, anda mesti (selepas memastikan anda berada pada tahap model logik: suis antara model logik dan fizikal ialah senarai lungsur di sebelah kanan bar alat ) “klik” pada butang entiti pada bar alat ( ERwin Toolbox) Q , kemudian “klik” pada tempat pada rajah di mana anda ingin meletakkan entiti baharu. Dengan mengklik kanan pada entiti dan memilih Sifat Entiti... daripada menu timbul, anda boleh membuka dialog Entiti, yang mentakrifkan nama, perihalan dan ulasan entiti (contohnya, nama entiti - pembekal, perihalan - data pembekal). Setiap entiti ditakrifkan menggunakan penerangan teks dalam tab Definisi. Penanda halaman Nota, Nota 2, Nota 3, UDP (User Defined Properties) digunakan untuk menambah ulasan tambahan kepada entiti. Langkah seterusnya ialah mencipta atribut entiti. Seperti yang dinyatakan di atas, setiap atribut menyimpan maklumat tentang sifat khusus entiti, dan setiap kejadian entiti mestilah unik. Atribut atau kumpulan atribut yang mengenal pasti entiti dipanggil kunci utama. Untuk mencipta atribut, klik kanan pada entiti dan pilih Atribut... daripada menu yang muncul Dialog Atribut muncul. Jika anda mengklik pada butang Baharu..., kemudian dalam dialog Atribut Baharu yang muncul, nyatakan nama atribut, nama lajur yang sepadan dengannya dalam model fizikal dan domain (contohnya, nama atribut ialah nama pembekal). Domain atribut akan digunakan apabila menentukan jenis lajur pada tahap model fizikal. Untuk atribut kunci utama, dalam tab Umum dialog Atribut, anda mesti membuat tanda dalam tetingkap pemilihan Kunci Utama.

Untuk memaparkan ikon atribut, pilih item Paparan Entiti dalam menu konteks dan dayakan pilihan Ikon Atribut dalam menu lata. Ikon kecil akan ditunjukkan di sebelah kiri nama atribut pada tahap atribut paparan model. Nama entiti ditunjukkan di atas segi empat tepat yang menggambarkan entiti, senarai atribut entiti ditunjukkan di dalam segi empat tepat. Senarai ini dibahagikan dengan garis mendatar, di atasnya adalah atribut utama utama, di bawahnya adalah atribut bukan kunci. Atribut mesti dinamakan dalam bentuk tunggal dan mempunyai makna semantik yang jelas. Pematuhan peraturan ini membolehkan kami menyelesaikan sebahagian masalah normalisasi data yang sudah berada di peringkat menentukan atribut. Contohnya, mencipta atribut Telefon Pembekal dalam entiti Pembekal bercanggah dengan keperluan normalisasi kerana atribut mestilah atom, iaitu, tidak mengandungi berbilang nilai. Menurut sintaks IDEF1X, nama atribut mestilah unik dalam model (dan bukan hanya dalam entiti!). Setiap kejadian entiti mestilah unik dan berbeza daripada atribut lain. Langkah seterusnya dalam mencipta model ialah mewujudkan hubungan antara entiti. Setiap hubungan harus dipanggil kata kerja atau frasa kerja (Frasa Kerja Hubungan Rajah 5.6). Nama perhubungan menyatakan beberapa kekangan atau peraturan perniagaan dan menjadikan gambar rajah lebih mudah dibaca, contohnya:

Setiap TEMPAHAN PELANGGAN;

SETIAP ORDER DIREKA.

nasi. 5.B. Nama Hubungan - Frasa Kata Kerja Hubungan

Untuk membuat sambungan baharu:

  • letakkan kursor pada butang yang dikehendaki dalam palet alat (mengenal pasti atau tidak mengenal pasti sambungan) dan tekan butang tetikus kiri;
  • Klik pertama pada induk dan kemudian pada entiti anak. Apabila perhubungan diwujudkan antara entiti, atribut utama utama entiti induk berhijrah sebagai kunci asing kepada entiti anak. Secara lalai, nama sambungan tidak ditunjukkan dalam rajah. Untuk memaparkan nama, dalam menu konteks yang muncul jika anda klik kiri pada mana-mana tempat dalam rajah yang tidak diduduki oleh objek model, pilih item Paparan Hubungan dan dayakan pilihan Frasa Kata Kerja dalam menu konteks.

Model data logik kawasan subjek "Perabot untuk dipesan" ditunjukkan dalam Rajah. 5.7.


nasi. 5.7.

Model atribut lengkap mewakili data dalam bentuk normal ketiga dan merangkumi semua entiti, atribut dan perhubungan dan dibentangkan dalam Rajah. 5.8.

Pada peringkat entiti, model dibentangkan dalam Rajah. 5.9.

Dalam Rajah. Rajah 5.10 membentangkan model data pada tahap definisi.

nasi. 5.8.

nasi. 5.E. Lapisan Entiti Model Data

Kami memerlukan konsep anomali - percanggahan antara kekangan integriti skema data konseptual dan logik (serta fizikal). Tujuan normalisasi ialah penghapusan anomali yang muncul apabila data dihidupkan, dikemas kini dan dipadamkan.

Empat bentuk normal pertama (lebih tepat, pertama, kedua, ketiga dan Boyce-Codd) digabungkan menjadi satu kumpulan kerana takrifannya adalah berdasarkan konsep klasik fungsi yang ditakrifkan pada rajah hubungan dan teorem Heath.

Dua lagi bentuk biasa (keempat dan kelima) penggunaan diubah suai kebergantungan berfungsi. Terakhir bentuk biasa- kunci domain - menandakan kembali ke asal - pendekatan logik kepada teori hubungan.

Kaedah praktikal akan disyorkan untuk mendapatkan rajah asas dalam empat bentuk normal pertama, hampir selalu menghasilkan versi akhir rajah. Ketepatan pembinaan ini perlu disahkan dengan kaedah formal, iaitu teknik heuristik dan teori normalisasi diperlukan.

Mari kita bincangkan dahulu cara yang diterima untuk menyampaikan bahan mengenai normalisasi. Sememangnya, kita akan meneruskan dari teori normalisasi yang dibangunkan dalam rangka kerja model data hubungan. Walau bagaimanapun, pengalaman telah menunjukkan bahawa dengan pembentangan sedemikian, pemula menghadapi kesukaran untuk memahami konsep anomali yang paling penting, yang ditakrifkan sebagai beberapa ciri "kesalahan" pemetaan model perniagaan konseptual ke dalam model pangkalan data. sebab tu

Kami akan menggunakan pemetaan daripada model hubungan kepada model hubungan entiti yang anda sudah tahu dan akan mengkaji normalisasi dalam model ER. Ini akan membolehkan anda menggunakan semantik yang diperlukan untuk bekerja dengan anomali.

Mari kita fikirkan semula tentang hubungan antara hubungan, hubungan antara hubungan dan kunci asing.

5.1 Perhubungan dan kunci asing

Bab sebelumnya telah meneroka konsep penghubung entiti dan hubungan antara mereka. Mari kita bezakan dengan jelas. Konsep sambungan bukan bersifat algebra, kerana sambungan aktif. Dalam pelaksanaan, sambungan mentakrifkan struktur pangkalan data dan beroperasi semasa manipulasi data dan perubahan skema. Sambungan ialah konsep algebra. Maksud data yang diperoleh semasa membuat sambungan adalah sepenuhnya terpulang kepada pembangun. Maksud sambungan ditakrifkan dengan ketat oleh perniagaan simulasi.

Semantik sambungan agak berkembang. Sebagai tambahan kepada kuasa hujung, sifat seperti mandatori dan kebolehcaman digunakan. Dalam model hubungan, mereka tidak boleh dinyatakan secara langsung (tidak ada perkataan sedemikian). Oleh itu, kami akan mempertimbangkan bentuk normal pertama dalam rangka model "hubungan entiti".

Hubungan antara perhubungan/entiti dalam kedua-dua model hubungan dan rajah ER dibentuk oleh kekangan integriti rujukan yang dipanggil "Kunci Asing" (disingkat FK).

Agar tidak menimbulkan tanggapan palsu tentang kemiskinan model hubungan sebagai kemustahilan melaksanakan sesuatu, marilah kita ingat bahawa di dalamnya sambungan n: m diwakili melalui dua sambungan 1: n, dan sambungan kompleks boleh dimodelkan dalam pelbagai cara. Malah agregat entah bagaimana boleh diwakili dengan memperkenalkan entiti yang menerangkan komposisinya. Model sedemikian boleh dilaksanakan dengan berkesan dalam program, tetapi kemungkinan besar ia akan menyusahkan manusia. Kemungkinan untuk memodelkan struktur data dalam model hubungan agak luas tetapi, sudah tentu, tidak terhad.

Mari kita bincangkan pendekatan umum untuk menganalisis struktur yang akan dibincangkan dengan lebih lanjut menggunakan contoh dua entiti berkaitan "Pekerja" dan "Jabatan", yang digambarkan dalam Rajah 5.1. Di sebelah kiri ialah pilihan dengan sambungan yang mengenal pasti, di sebelah kanan dengan sambungan yang tidak mengenal pasti.


nasi. 5.1.

Contoh perhubungan satu-dengan-banyak

Saya ingin mengingatkan anda sekali lagi bahawa kami bersetuju untuk mempertimbangkan contoh seperti yang diterangkan dalam teks, dan bukan seperti yang berlaku atau boleh berlaku dalam kehidupan. Had ini adalah perlu supaya maklumat diterima oleh semua orang dan sentiasa dalam cara yang sama.

Dalam kedua-dua versi skim, setiap pekerja ditugaskan ke salah satu jabatan. Kami mempunyai hubungan (“kepada-banyak” di sisi hubungan “Pekerja”). Untuk perhubungan "Pekerja", anda tidak boleh memilih jabatan nombor jabatan yang tidak wujud dalam senarai jabatan (entiti "Jabatan"). Satu jabatan mungkin tiada, satu, dua atau lebih pekerja.

Kami menyatakan dengan contoh yang sama (bahagian 2.2.7) bahawa situasi paradoks timbul. Pengarah ditugaskan ke beberapa jabatan, dan ketua jabatan ini adalah bawahan kepada pengarah dan pada masa yang sama akan menjadi bosnya. Tetapi mungkin jabatan adalah pusat kos, dan mereka memutuskan untuk mengaitkan gaji pengarah dengan perbelanjaan salah satu jabatan. Dalam contoh latihan kami, anda tidak perlu risau dengan butiran sedemikian, melainkan, sudah tentu, sebaliknya dinyatakan. Dari awal lagi, anda harus membiasakan diri untuk memikirkan bahagian perniagaan, antara lain, tetapi apabila menyelesaikan masalah pendidikan, anda tidak seharusnya mengembangkan tugas untuk menganalisis pilihan yang mungkin.

5.2 Jenis komunikasi. Mengenal pasti dan tidak mengenal pasti, hubungan mandatori dan pilihan

Jenis perhubungan yang mengenal pasti dan tidak mengenal pasti (lihat Rajah 5.1) tidak berkaitan dengan teori pangkalan data hubungan, tetapi dengan standard pemodelan IDEF1X yang mana ERwin (aka AllFusion Data Modeller) berasaskan.

Jika kunci asing mencipta entiti bergantung (lemah), maka ia diserahkan kepada kumpulan atribut yang membentuk kunci utama entiti tersebut. Dalam kes ini, sambungan mengenal pasti terbentuk. Ia sentiasa wajib.

Hubungan tidak mengenal pasti digunakan untuk menghubungkan dua entiti yang kuat. Ia menghantar kunci kepada kawasan atribut bukan kunci.

Untuk perhubungan yang tidak mengenal pasti, anda boleh menentukan wajib (keseluruhan perhubungan, bukan penghujungnya). Jika perhubungan diperlukan (dalam ERwin ini adalah bendera No Nulls), maka atribut kunci asing akan menerima bendera NOT NULL, bermakna nilai nol tidak dibenarkan. Untuk perhubungan pilihan (Nulls Allowed), kunci asing boleh menjadi NULL.

Selepas kita membiasakan diri dengan bahasa SQL dalam "SQL Language", menggunakan kejuruteraan langsung, adalah mungkin untuk menjana skrip SQL yang mencipta serpihan skema pangkalan data. Tetapi sekarang, jika anda sudah sekurang-kurangnya sedikit biasa dengan SQL, maka dengan pergi ke Alat > Jurutera Hadapan/Penjanaan Skema, dan kemudian mengklik butang Pratonton, lihat teks yang dijana.

Mengapakah kita akan menggunakan model hubungan entiti yang lebih kompleks apabila mempertimbangkan penormalan, dan bukannya menghadkan diri kita kepada pendekatan klasik dalam model hubungan? Lagipun, menambah konsep entiti kuat dan lemah, mengenal pasti perhubungan, perhubungan tidak mengenal pasti wajib dan pilihan merumitkan dengan ketara semantik model data.

Pengenalan lima konsep peringkat tinggi di atas menyediakan bahasa yang lebih mencerminkan ciri masalah dan oleh itu lebih mudah difahami oleh pembangun. Ini akan membolehkan anda dengan cepat dan tanpa transformasi formal mendapatkan skema asal pangkalan relasi dalam bentuk yang hampir lengkap (kemudian kami akan menyatakan idea ini dengan lebih tepat: "dalam bentuk normal ketiga atau bentuk normal Boyce-Codd").

Untuk mewujudkan perhubungan antara entiti dan mencipta kunci asing, ERWin menyediakan keupayaan untuk membahagikan jenis perhubungan kepada beberapa pilihan:

  • mengenal pasti perhubungan - perhubungan yang mentakrifkan surat-menyurat satu-dengan-satu antara kejadian satu entiti dan satu kejadian tunggal entiti berkaitan dan, sebagai peraturan, menerangkan perhubungan 1:1, tetapi apabila melaksanakan kunci primer berantai, ia boleh melaksanakan perhubungan satu-dengan-banyak (1:JV);
  • hubungan tidak mengenal pasti - hubungan yang melaksanakan jenis hubungan satu-ke-banyak (1 :N), dengan mewakili kunci asing dalam entiti berkaitan sebagai atribut mudah yang boleh tertakluk kepada sekatan tambahan tertentu berbanding dengan atribut maklumat biasa;
  • hubungan berbilang - hubungan yang melaksanakan jenis hubungan banyak-ke-banyak (L G:M), hanya diwakili pada tahap model logik, menggambarkan hubungan antara entiti, tetapi tanpa mencipta kunci asing dalam entiti berkaitan;
  • pengkategorian - perhubungan yang memastikan pemautan entiti-komuniti dengan kategori entiti menggunakan jenis perhubungan satu dengan satu (1:1) dan pada masa yang sama mencipta kunci utama asing dalam kategori entiti yang dikaitkan dengan kunci utama entiti-komuniti.

Apabila membuat perhubungan antara dua entiti, cuma pilih ikon jenis perhubungan, dan kemudian secara berurutan tuding kepada induk dan entiti berkaitan. Ini akan mewujudkan perhubungan dan, jika dibenarkan oleh jenis perhubungan, mencipta kunci asing yang diperlukan dalam entiti berkaitan. Dalam kes apabila pembangun tidak mentakrifkan kunci utama entiti induk dan telah mewujudkan perhubungan, contohnya, yang tidak mengenal pasti, maka penciptaan kunci asing tidak akan berlaku, tetapi sebaik sahaja kunci utama itu ditentukan dalam entiti induk, ia akan segera dicerminkan dalam entiti berkaitan dengan kunci asing selaras dengan hubungan antara entiti ini yang wujud dalam model.

Alat ERWin, apabila mewujudkan perhubungan antara entiti, mentakrifkan dua jenis entiti:

  • induk - ialah entiti asas yang kunci utamanya boleh berhijrah kepada entiti berkaitan;
  • anak - ditakrifkan oleh entiti yang, apabila sambungan diwujudkan, menerima kunci asing yang terbentuk daripada kunci utama penghijrahan entiti induk.

Bahagian ini kelihatan agak logik, kerana, berdasarkan keanehan sambungan bangunan dan logik kawasan subjek, maklumat yang diterangkan oleh entiti induk diagregatkan berhubung dengan data yang diterangkan oleh entiti kanak-kanak. Sebagai contoh, mempertimbangkan hubungan antara entiti "Pelanggan" dan "Pesanan", pelanggan tertentu, yang diwakili oleh contoh entiti "Pelanggan", menggabungkan (mengagregatkan) set pesanan yang dibuatnya di kedai elektronik.

zine. Akibatnya, entiti "Pesanan" berhubung dengan entiti "Pelanggan" boleh dianggap sebagai kanak-kanak, dan entiti "Pelanggan" sebagai ibu bapa.

Perihalan perhubungan mengandungi, berbanding dengan entiti dan atribut, sebilangan kecil sifat yang perlu diterangkan, tetapi ia juga, dan kadangkala lebih penting, kerana ia membolehkan anda menerangkan dan mengkonfigurasi peraturan integriti rujukan, memastikan, apabila dilaksanakan dalam pangkalan data, ketepatan penyimpanan data . Salah satu ciri ialah nama sambungan, yang digunakan dalam model pangkalan data dan menentukan makna asas sambungan yang diwujudkan antara entiti (Rajah 3.15).

nasi. 3.15. Penerangan asas komunikasi dalam ERWin


Lajur "Nama" dalam perihalan sambungan memberikan pembangun peluang untuk menentukan nama yang mencerminkan makna semantik sambungan. Ini adalah komponen penting dalam model, membolehkan anda memahami dengan jelas intipati dan makna sambungan yang telah ditetapkan, yang, akhirnya, akan membantu untuk menormalkan model pangkalan data dengan betul, mengagihkan semula atribut individu antara entiti dengan betul.

Adalah penting untuk memahami bahawa nama perhubungan harus, jika boleh, unik dalam keseluruhan model pangkalan data, dan bukan hanya pada tahap rajah individu. Kehadiran nama pautan yang sama boleh menyebabkan ketidakupayaan untuk mengenal pasti pautan yang sepadan dengan betul dan akhirnya membina model yang berkesan. Ciri-ciri lain yang menerangkan perhubungan antara entiti terletak dalam kotak dialog di bawah senarai perhubungan model dan mengandungi peraturan untuk kardinaliti (kardinaliti), menamakan semula kunci asing yang dijana (peranan) dan memastikan integriti rujukan.

Tiga ciri asas yang paling penting bagi sambungan (Rajah 3.16), yang membentuk intipati utama sambungan, diterangkan dalam tab pertama "Umum" dan mewakili jenis sambungan, nama sambungan, kardinaliti (kuasa) . Parameter komunikasi ini mesti sentiasa ditakrifkan dan diterangkan dengan betul. Sebagai tambahan kepada nama sambungan, ciri yang selebihnya akan dipindahkan semasa transformasi yang sesuai kepada model fizikal, dan kemudian ke pangkalan data.

Ciri pertama sambungan menentukan jenisnya (Rajah 3.17): mengenal pasti atau tidak mengenal pasti. Pada masa yang sama, dengan memilih jenis perhubungan yang sesuai, pembangun mempunyai peluang (untuk perhubungan tidak mengenal pasti) untuk menentukan ketiadaan kejadian entiti induk, dengan itu membenarkan kunci asing untuk menentukan nilai kosong "NULL ”.

nasi. 3.16. Ciri-ciri utama komunikasi dalam RZh Win


Biasanya, apabila mewujudkan perhubungan tidak mengenal pasti, Pilihan Null ditetapkan kepada Nulls Tidak Dibenarkan. Ini ditentukan oleh keistimewaan bekerja dengan data, yang mengikutnya tika data anak mesti dikaitkan dengan tika induk. Tetapi kadang-kadang terdapat kes apabila ini tidak diperhatikan. Sebagai peraturan, keadaan ini timbul apabila objek kawasan subjek yang disatukan oleh hubungan ini adalah setara dan adalah mustahil untuk menentukan dengan jelas keutamaan kemunculan contoh entiti tertentu. Kemudian nilai ditetapkan kepada "Null Allowed" (NULL dibenarkan), seperti yang ditunjukkan dalam contoh (lihat Rajah 3.17).


Memandangkan sambungan satu-dengan-satu dan satu-ke-banyak adalah berkaitan dan perbezaan di dalamnya hanya dalam kuasa dan beberapa keperluan yang lebih ketat, pertukaran antara jenis sambungan ini boleh dilakukan dalam kotak dialog tetapan sambungan, menukar sambungan daripada jenis "Bukan" mengenal pasti" untuk menaip "Mengenal pasti". Dalam kes ini, Pilihan Null tidak akan tersedia

untuk tetapan. Ini dijelaskan oleh fakta bahawa apabila perhubungan mengenal pasti diwujudkan, kunci asing yang diperoleh dalam entiti kanak-kanak juga merupakan kunci utama, dan mengikut peraturan pembinaan pangkalan data, kunci utama tidak boleh menyimpan nilai kosong. Oleh itu, kunci asing yang terhasil ditetapkan kepada Null Not Allowed.

Satu lagi ciri yang memungkinkan untuk beralih daripada hubungan satu dengan satu kepada hubungan satu dengan ramai dan sebaliknya ialah kardinaliti. Mewujudkan kardinaliti (kuasa) sambungan dalam sifat "Kardinaliti" dan "Nilai Kardinaliti" menetapkan peraturan untuk mengisi kejadian entiti kanak-kanak (Rajah 3.18). Terdapat empat pilihan kardinaliti yang ditentukan oleh ERWin:

  • Sifar, Satu atau Lebih (sifar, satu atau banyak) - untuk entiti kanak-kanak, sebarang bilangan kejadian yang dikaitkan dengan satu tika entiti induk adalah mungkin, termasuk pilihan tiada tika;
  • (P) Satu atau Lebih - bilangan tika entiti anak yang dikaitkan dengan satu tika entiti induk boleh menjadi mana-mana, tetapi apabila mencipta tika dalam entiti induk, tika mesti sudah wujud dalam entiti anak, yang memerlukan penetapan Parameter "Null Option" " kepada nilai "Nulls Allowed", membenarkan nilai null "NULL" disimpan dalam kunci asing yang diperolehi apabila perhubungan itu diwujudkan;
  • (Z) Sifar atau Satu - hubungan satu dengan satu ditakrifkan, membenarkan kewujudan tidak lebih daripada satu contoh data dalam entiti anak;
  • Nilai Cardinality - menentukan bilangan tepat kejadian yang berkaitan dalam entiti anak, yang hanya boleh dicapai dengan menetapkan "Pilihan Null" kepada "Nol Dibenarkan", mula-mula mencipta kejadian dalam entiti anak, dan kemudian memautkannya kepada tika dalam entiti induk.

Hasil daripada menunjukkan kardinaliti (kuasa) sambungan pada model, sebutan alfanumeriknya akan dipaparkan dalam rajah. Jika pilihan kardinaliti (kuasa) dipilih dalam pilihan "Satu atau banyak", maka huruf "P" akan dipaparkan, dalam kes kardinaliti "Sifar atau satu" - huruf "Z", jika nilai berangka yang tepat ditentukan - nilai yang ditentukan, dalam pilihan lain tiada tanda akan dipaparkan pada model.

Satu lagi ciri sambungan digambarkan sebagai yang utama - kandungan semantik sambungan (Rajah 3.19), dilambangkan dengan bentuk kata kerja.

Penerangan ini, seperti dalam semua model pangkalan data pada mana-mana peringkat pembentangan, menunjukkan keanehan interaksi kejadian entiti mengikut ciri kawasan subjek. Perihalan mestilah frasa yang menunjukkan perhubungan contoh entiti induk dengan contoh entiti anak, atau sebaliknya, mewakili ungkapan yang mengandungi kata kerja tindakan.


Apabila perhubungan satu-dengan-satu dan satu-dengan-banyak diwujudkan, seperti yang dibincangkan di atas, kunci utama entiti induk berhijrah ke entiti anak, mewujudkan kunci asing yang sepadan (Rajah 3.20). Selalunya, terutamanya apabila menggunakan konvensyen penamaan untuk elemen model, kunci utama yang sama dalam entiti yang berbeza mungkin mempunyai nama yang sama, yang menyebabkan beberapa kesukaran semasa mewujudkan perhubungan, menyebabkan keperluan untuk mencerminkan kunci asing dengan nama yang sudah ada dalam entiti. Pilihan lain apabila perlu menggunakan mekanisme penamaan peraturan migrasi utama mungkin atribut yang menerangkan kunci asing yang sepadan perlu ditulis dengan lebih tepat.


Penyelesaian kepada masalah ini dilaksanakan melalui mekanisme "Nama Peranan", di mana pembangun menentukan nama atribut untuk kunci asing, kerana ia harus diwakili dalam model pangkalan data dan, sebagai hasilnya, transformasi dalam pangkalan data. Kawasan "Maklumat Nama Peranan" mengandungi dua lajur:

  • Atribut Berhijrah - menunjukkan atribut entiti induk yang diwakili oleh kunci asing dalam entiti anak yang berkaitan (tidak boleh diubah);
  • Nama Peranan—Menunjukkan nilai nama atribut kunci asing baharu yang harus digunakan sebagai ganti nama atribut yang berhijrah.

Menentukan nama atribut yang diingini dalam lajur "Nama Peranan" akan membawa kepada penamaan semula atribut kunci asing dan penggunaan nama atribut baharu yang seterusnya dalam semua elemen model pangkalan data jika perlu.

Mentakrifkan peraturan integriti rujukan (Rajah 3.21) adalah satu langkah dalam pemodelan fizikal pangkalan data. Ini disebabkan oleh fakta bahawa peraturan individu untuk sesetengah DBMS mungkin tidak tersedia. Walau bagaimanapun, ERWin menyediakan keupayaan untuk menentukan peraturan integriti rujukan untuk perhubungan yang dibentuk pada peringkat pemodelan logik. Pada peringkat ini, pembangun ditawarkan set peraturan maksimum:

  • Tiada (tidak hadir) - peraturan yang menganggap sebarang tindakan pengguna tanpa menjejaskan elemen lain pangkalan data;
  • Tiada Tindakan (tiada tindakan) - peraturan yang menganggap tindakan yang ditentukan oleh pembangun;
  • Hadkan (melarang) peraturan yang melarang melakukan operasi pada data jika keadaan ujian adalah benar;
  • Lata - peraturan yang melakukan tindakan berurutan pada data berkaitan selaras dengan tindakan yang dilakukan pada data yang peraturan ini ditakrifkan;
  • Set Null - peraturan yang menetapkan nilai kunci asing kepada NULL untuk keadaan yang berkaitan;
  • Tetapkan Lalai - Peraturan yang menetapkan nilai lalai yang ditakrifkan untuk kunci asing bagi contoh yang berkaitan.

Peraturan integriti rujukan bertujuan untuk memastikan ketepatan operasi dengan data apabila mengubah suainya. Oleh itu, peraturan ini mesti dipatuhi jika operasi dilaksanakan dalam pangkalan data, tetapi menambah, menukar dan memadam data. ERWin melaksanakan operasi kekangan integriti rujukan pada tahap maksimum yang mungkin, memandangkan pelaksanaan operasi yang berkaitan bukan sahaja untuk kes utama yang mempengaruhi perubahan dalam pangkalan data, tetapi juga untuk operasi yang tidak sepatutnya mempunyai perubahan ketara dalam pangkalan data. Akibatnya, pembangun diminta untuk menentukan peraturan integriti rujukan apabila melakukan tindakan pada data apabila mengubah suai tika data dalam entiti induk dan anak. Selepas itu, semua tindakan ini, jika ia tidak diperuntukkan dalam DBMS, akan ditukar menjadi modul program pelaksanaan automatik (pencetus) dan dikaitkan dengan tindakan yang dilakukan pada data. Jika DBMS mengandungi tindakan integriti rujukan yang ditentukan, tindakan tersebut akan diisytiharkan oleh peraturan yang sepadan apabila menerangkan jadual data.


Apabila membentuk sambungan banyak-ke-banyak, pembangun mempunyai peluang untuk menentukan set minimum ciri sambungan, termasuk mentakrifkan beban semantik. Tiada peraturan dan ciri lain ditetapkan untuk jenis sambungan ini, kerana apabila beralih kepada model fizikal, sambungan sedemikian mesti dinormalisasi dan diwakili oleh sambungan satu-ke-banyak (Rajah 3.22).


  • apabila menentukan sambungan buat kali pertama, pilih ikon sambungan dan pilih entiti komuniti dan salah satu entiti kategori secara berurutan;
  • Menggunakan ikon pautan pengkategorian yang sama, sambungkan entiti kategori yang tinggal dengan memilih elemen grafik dan entiti kategori seterusnya secara berurutan.

Hasil daripada melaksanakan tindakan ini, model pangkalan data akan mempunyai perwakilan perhubungan yang serupa dengan contoh di atas (lihat Rajah 3.22).

Terdapat dua jenis perhubungan pengkategorian, satu daripadanya mesti ditentukan semasa mewujudkan perhubungan jenis ini (Rajah 3.23). Untuk menunjukkan perbezaan dalam jenis sambungan pengkategorian, penetapan elemen grafik akan dipersembahkan dengan dua baris atau satu baris (Jadual 3.1).




Untuk pautan pengkategorian itu sendiri, tiada ciri lain ditakrifkan, dan pembangun hanya diberi peluang untuk melihat struktur pautan pengkategorian (Rajah 3.24). Penerangan ini memungkinkan untuk melihat entiti kategori yang ditakrifkan oleh subjenis dan entiti-komuniti yang diwakili oleh superjenis.

Sambungan itu sendiri daripada elemen pengkategorian grafik kepada entiti adalah sambungan satu dengan satu, dan, sebagai peraturan, ciri tetap ditentukan untuk mereka. Pembangun diberi peluang untuk menyatakan hanya kandungan semantik perhubungan, nama atribut kunci asing dan peraturan integriti rujukan.

nasi. 3.24. Penerangan tentang hubungan pengkategorian dalam EHRI

  • Perbincangan terperinci tentang peraturan integriti rujukan dibincangkan dalam Bahagian 3.2.

Penciptaan sistem maklumat moden adalah tugas yang kompleks, penyelesaiannya memerlukan penggunaan teknik dan alat khas. Tidak menghairankan bahawa baru-baru ini di kalangan penganalisis dan pembangun sistem terdapat peningkatan yang ketara dalam minat dalam CASE (Computer-Aided Software/System Engineering) - teknologi dan alatan CASE yang memungkinkan untuk mensistematisasi dan mengautomasikan semua peringkat pembangunan perisian secara maksimum.

Buku yang ditawarkan kepada pembaca adalah panduan praktikal untuk mencipta sistem maklumat menggunakan alat analisis, reka bentuk dan penjanaan kod yang berkesan daripada teknologi PLATINUM - BPwin dan ERwin. Ia juga mengandungi penerangan tentang kaedah analisis struktur dan reka bentuk model data setakat yang diperlukan untuk kerja amali. Aplikasi kaedah digambarkan dengan contoh.

Buku ini ditulis berdasarkan pengalaman peribadi penulis yang diperoleh semasa membangunkan sistem maklumat, memberi kuliah dan mengendalikan kelas praktikal mengenai teknologi CASE dan alat CASE di Pusat Latihan syarikat Interface Ltd. Ia ditujukan kepada pakar dalam bidang teknologi maklumat: penganalisis sistem, pengurus projek, pembangun - dan juga boleh berguna untuk pelajar sarjana dan siswazah yang mempelajari asas analisis sistem dan reka bentuk sistem maklumat.

Buku:

Hubungan ialah hubungan logik antara entiti. Setiap hubungan hendaklah dipanggil kata kerja atau frasa kerja (Frasa Kerja Hubungan) (Rajah 2.20). Nama perhubungan menyatakan beberapa kekangan atau peraturan perniagaan dan menjadikan gambar rajah lebih mudah dibaca, contohnya:

Setiap PELANGGAN <размещает> PESANAN;

Setiap pesanan <выполняется> PEKERJA.

nasi. 2.20. Nama Hubungan - Frasa Kata Kerja Hubungan

Sambungan menunjukkan pesanan yang telah dibuat oleh pelanggan dan pekerja yang memenuhi pesanan tersebut. Secara lalai, nama sambungan tidak ditunjukkan dalam rajah. Untuk memaparkan nama, dalam menu konteks yang muncul jika anda klik kiri pada mana-mana tempat dalam rajah yang tidak diduduki oleh objek model, pilih Pilihan Paparan/Perhubungan dan kemudian dayakan pilihan Frasa Kata Kerja.

Pada peringkat logik, anda boleh mewujudkan perhubungan mengenal pasti satu-ke-banyak, perhubungan banyak-ke-banyak dan perhubungan tidak mengenal pasti satu-ke-banyak (masing-masing, ini ialah butang dari kiri ke kanan dalam alat palet).

IDEF1X membezakan antara entiti bergantung dan bebas. Jenis entiti ditentukan oleh hubungannya dengan entiti lain. Hubungan mengenal pasti diwujudkan antara entiti bebas (hujung induk perhubungan) dan bergantung (hujung kanak-kanak perhubungan). Apabila perhubungan mengenal pasti dilukis, ERwin secara automatik menukar entiti anak kepada entiti bergantung. Entiti bergantung diwakili oleh segi empat tepat dengan bucu bulat (entiti Pesanan dalam Rajah. 2.21). Contoh entiti bergantung hanya ditakrifkan melalui hubungannya dengan entiti induk, iaitu, dalam struktur dalam Rajah. 2.21 maklumat tentang pesanan tidak boleh dimasukkan dan tidak bermakna tanpa maklumat tentang pelanggan yang meletakkannya. Apabila perhubungan mengenal pasti diwujudkan, atribut kunci utama entiti induk dipindahkan secara automatik ke kunci utama entiti anak. Operasi menambah atribut kepada entiti anak semasa membuat perhubungan dipanggil migrasi atribut. Dalam entiti anak, atribut baharu ditandakan sebagai kunci asing - (FK).

nasi. 2.21. Hubungan mengenal pasti antara jadual bebas dan bergantung

Pada masa hadapan, apabila menjana skema pangkalan data, atribut kunci utama akan menerima atribut NOT NULL, yang bermaksud adalah mustahil untuk membuat entri dalam jadual pesanan tanpa maklumat tentang nombor pelanggan.

Apabila perhubungan tidak mengenal pasti diwujudkan (Rajah 2.22), entiti anak kekal bebas dan atribut utama utama entiti induk berhijrah kepada komponen bukan kunci entiti induk. Hubungan tidak mengenal pasti digunakan untuk memautkan entiti bebas.

nasi. 2.22. Hubungan tidak mengenal pasti

Contoh entiti Pekerja boleh wujud bebas daripada sebarang kejadian entiti Jabatan, iaitu pekerja boleh bekerja dalam organisasi tanpa berdaftar di mana-mana jabatan.

Sambungan mengenal pasti ditunjukkan pada rajah sebagai garis pepejal dengan titik tebal pada hujung kanak-kanak sambungan (lihat Rajah 2.21), satu tidak mengenal pasti ditunjukkan sebagai garis putus-putus (Rajah 2.22).

Untuk membuat sambungan baharu:

letakkan kursor pada butang yang dikehendaki dalam palet alat (mengenal pasti atau tidak mengenal pasti sambungan) dan klik butang kiri tetikus (Gamb. 2.2);

Klik pertama pada induk dan kemudian pada entiti anak.

Bentuk talian komunikasi boleh diubah. Untuk melakukan ini, anda perlu merebut talian sambungan yang dikehendaki dengan tetikus dan mengalihkannya dari satu tempat ke satu tempat sehingga garisan itu mula kelihatan lebih baik.

Butang dalam palet alat

Sepadan dengan pautan mengenal pasti, butang

Perhubungan dan butang banyak-ke-banyak

Sepadan dengan perhubungan yang tidak mengenal pasti.

Untuk mengedit sifat perhubungan, klik kanan pada perhubungan dan pilih Editor Perhubungan daripada menu konteks.

Dalam tab Umum dialog yang muncul, anda boleh menetapkan kuasa, nama dan jenis sambungan (Gamb. 2.23).

Kuasa komunikasi (Cardinaliti) - berfungsi untuk menunjukkan nisbah bilangan kejadian entiti induk kepada bilangan kejadian anak.

Terdapat empat jenis kuasa (Gamb. 2.24):

kes umum apabila satu kejadian entiti induk sepadan dengan 0, 1, atau banyak kejadian entiti kanak-kanak tidak ditandakan dengan sebarang simbol;

simbol P menandakan kes apabila satu kejadian entiti induk sepadan dengan 1 atau banyak kejadian entiti anak (nilai sifar dikecualikan);

simbol Z menandakan kes apabila satu contoh entiti induk sepadan dengan 0 atau 1 tika entiti anak (berbilang nilai dikecualikan);

Nombor itu menandakan kes padanan tepat, apabila satu tika entiti induk sepadan dengan bilangan kejadian yang telah ditetapkan bagi entiti anak.

nasi. 2.23. Dialog Editor Perhubungan

Secara lalai, simbol yang mewakili kekuatan pautan tidak ditunjukkan pada rajah. Untuk memaparkan nama, dalam menu konteks yang muncul jika anda klik kiri pada mana-mana tempat dalam rajah yang tidak diduduki oleh objek model, pilih Pilihan Paparan/Perhubungan dan kemudian dayakan pilihan Cardinality.

Frasa Kata Kerja- frasa yang mencirikan hubungan antara entiti ibu bapa dan anak. Untuk perhubungan satu-ke-banyak, mengenal pasti atau tidak mengenal pasti, adalah cukup untuk menentukan nama yang mencirikan perhubungan daripada entiti ibu bapa kepada anak (Ibu bapa kepada Anak). Untuk perhubungan ramai-ke-banyak, kedua-dua nama Ibu Bapa-ke-Anak dan Anak-ke-Ibu bapa mesti dinyatakan.

nasi. 2.24. Penamaan kuasa

Jenis sambungan (mengenal pasti/tidak mengenal pasti). Untuk perhubungan yang tidak mengenal pasti, anda boleh menentukan Nulls. Dalam kes perhubungan mandatori (Tiada Nulls), apabila menjana skema pangkalan data, atribut kunci asing akan menerima atribut NOT NULL, walaupun pada hakikatnya kunci asing tidak akan menjadi sebahagian daripada kunci utama entiti anak. Dalam kes perhubungan pilihan (Nulls Allowed), kunci asing boleh menjadi NULL. Perhubungan tidak mengenal pasti pilihan ditandakan dengan berlian lutsinar pada bahagian entiti induk (lihat Rajah 2.22).

nasi. 2.25. Tab Rolename/RI Actions pada dialog Editor Perhubungan

Dalam tab Definisi, anda boleh memberikan definisi perhubungan yang lebih lengkap supaya boleh merujuknya pada masa hadapan.

Dalam tab Rolename/RI Actions, anda boleh menetapkan nama peranan dan peraturan integriti rujukan.

Nama peranan (nama fungsian) - ia adalah sinonim untuk atribut kunci asing yang menunjukkan peranan yang dimainkan oleh atribut dalam entiti kanak-kanak.

nasi. 2.26. Nama peranan utama asing

Dalam contoh yang ditunjukkan dalam Rajah. 2.26, pada asasnya Pekerja kunci luaran Nombor jabatan mempunyai nama fungsian "Where Works" yang menunjukkan peranan yang dimainkan oleh atribut ini dalam entiti. Secara lalai, hanya nama peranan ditunjukkan dalam senarai atribut. Untuk memaparkan nama penuh atribut (kedua-dua nama fungsi dan nama peranan), dalam menu konteks yang muncul jika anda klik kiri pada mana-mana tempat dalam rajah yang tidak diduduki oleh objek model, pilih Pilihan Paparan/Entiti dan kemudian dayakan Nama Peranan/ pilihan Atribut (Gamb. 2.25). Nama penuh ditunjukkan sebagai nama fungsian dan nama asas yang dipisahkan oleh titik (lihat Rajah 2.26).

Adalah wajib untuk menggunakan nama peranan apabila dua atau lebih atribut entiti yang sama ditakrifkan dalam skop yang sama, iaitu, mereka mempunyai skop yang sama, tetapi makna yang berbeza. Dalam Rajah. 2.27 intipati Penjualan mata wang mengandungi maklumat tentang akta pertukaran mata wang di mana dua mata wang terlibat - dijual dan dibeli. Maklumat tentang mata wang terkandung dalam entiti mata wang. Oleh itu, entiti Penjualan mata wang Dan mata wang mesti dipautkan dua kali dan kunci utama ialah - Nombor mata wang mesti berhijrah ke entiti dua kali mata wang sebagai kunci asing. Adalah perlu untuk membezakan antara atribut ini, yang mengandungi maklumat tentang bilangan mata wang yang dijual dan dibeli (ia mempunyai makna yang berbeza), tetapi merujuk kepada entiti yang sama mata wang (mempunyai julat nilai yang sama). Dalam contoh dalam Rajah. 2.27 atribut menerima nama peranan terjual Dan Dibeli.

nasi. 2.27. Kes nama peranan wajib

Satu lagi contoh penamaan peranan wajib ialah sambungan rekursif(kadangkala dipanggil "kail ikan") apabila entiti yang sama ialah ibu bapa dan anak pada masa yang sama. Apabila mentakrifkan perhubungan rekursif, atribut mesti berhijrah sebagai kunci asing kepada atribut bukan kunci bagi entiti yang sama. Atribut tidak boleh muncul dua kali dalam entiti yang sama di bawah nama yang sama, jadi ia mesti menerima nama peranan. Dalam Rajah. 2.26 intipati Pekerja mengandungi atribut kunci utama Nombor Kakitangan. Maklumat tentang pengurus pekerja terkandung dalam entiti yang sama, kerana pengurus bekerja dalam organisasi yang sama. Untuk merujuk kepada pengurus pekerja, anda harus mencipta perhubungan rekursif (dalam Rajah 2.26 perhubungan itu bertanggungjawab/orang bawahan) dan berikan nama peranan (“Pengurus”). Ambil perhatian bahawa hubungan rekursif hanya boleh tidak mengenal pasti. Jika tidak, kunci asing perlu menjadi sebahagian daripada kunci utama dan menerima atribut NOT NULL apabila menjana skema. Ini akan menjadikannya mustahil untuk membina hierarki - pokok pelaporan mesti mempunyai akar - pekerja yang tidak melaporkan kepada sesiapa dalam organisasi.

Perhubungan arahan/ikut ditunjukkan dalam Rajah. 2.26 membolehkan anda menyimpan hierarki subordinat pekerja seperti pokok. Jenis komunikasi rekursif ini dipanggil rekursi hierarki dan mentakrifkan perhubungan di mana pemimpin (contoh entiti induk) boleh mempunyai ramai orang bawahan (contoh entiti kanak-kanak), tetapi orang bawahan hanya mempunyai seorang ketua (Rajah 2.28).

Rekursi hierarki Rekursi rangkaian


nasi. 2.28. Subordinasi kejadian entiti dalam hierarki dan rekursi rangkaian

Satu lagi jenis rekursi ialah pengulangan rangkaian, apabila seorang pemimpin boleh mempunyai ramai orang bawahan dan, sebaliknya, orang bawahan boleh mempunyai ramai pengurus. Rekursi rangkaian mentakrifkan web perhubungan antara kejadian entiti ibu bapa dan anak. Ini berlaku apabila entiti berada dalam hubungan banyak-ke-banyak dengan dirinya sendiri. Untuk menyelesaikan perhubungan banyak-ke-banyak, anda perlu mencipta entiti baharu (perhubungan banyak-ke-banyak akan dibincangkan secara terperinci di bawah).

nasi. 2.29. Contoh pelaksanaan rekursi rangkaian

Dalam Rajah. 2.29 mempertimbangkan contoh pelaksanaan rekursi rangkaian. Struktur tersebut memodelkan hubungan kekeluargaan antara ahli keluarga dalam sebarang kerumitan. Atribut Jenis perhubungan boleh mengambil makna "bapa-anak", "ibu-anak perempuan", "datuk-cucu", "ibu mertua-menantu perempuan", "bapa mertua", dll Sejak sebuah keluarga hubungan sentiasa menghubungkan dua orang, dari intipati Relatif kepada. intipati persaudaraan dua pautan mengenal pasti diwujudkan dengan nama peranan "Senior" dan "Junior". Setiap ahli keluarga boleh dikaitkan dengan mana-mana ahli keluarga yang lain, lebih-lebih lagi, pasangan saudara yang sama boleh dihubungkan dengan jenis hubungan keluarga yang berbeza.

Jika atribut dipindahkan sebagai kunci asing ke lebih daripada satu tahap, maka nama penuh kunci asing (nama peranan + nama atribut asas) dipaparkan pada tahap pertama dan hanya nama peranan dipaparkan pada kedua atau lebih peringkat. Dalam Rajah. Rajah 2.30 menunjukkan struktur data yang mengandungi entiti pasukan, intipati pemain, yang menyimpan maklumat tentang pemain setiap pasukan, dan entiti Matlamat, mengandungi maklumat tentang gol yang dijaringkan oleh setiap pemain. Atribut kunci asing Nombor pasukan intipati Pemain mempunyai nama peranan "Pasukan manakah dia bermain".

nasi. 2.30. Menghijrahkan nama peranan

Pada peringkat seterusnya, pada asasnya Matlamat, hanya nama peranan atribut kunci asing yang sepadan dipaparkan (Pasukan apa dia main).

Peraturan integriti rujukan (RI) ialah binaan logik yang menyatakan peraturan perniagaan untuk menggunakan data dan mewakili peraturan pemasukan, penggantian dan pemadaman. Apabila menjana skema pangkalan data berdasarkan pilihan model logik yang dinyatakan dalam tab Rolename/RI Actions, peraturan integriti rujukan deklaratif akan dijana, yang mesti ditetapkan untuk setiap perhubungan dan pencetus yang memastikan integriti rujukan. Pencetus ialah atur cara yang dilaksanakan apabila perintah sisip, ganti atau padam (INSERT, UPDATE atau DELETE) dilaksanakan. Dalam Rajah. 2.30 terdapat hubungan mengenal pasti antara entiti Pasukan Dan Pemain. Apa yang berlaku jika anda memadamkan arahan? Contoh entiti Pemain tidak boleh wujud tanpa arahan (atribut kunci utama Dia bermain dalam pasukan apa? Nombor pasukan tidak boleh mengambil nilai NULL), oleh itu, anda perlu sama ada melarang pemadaman pasukan semasa ia mempunyai sekurang-kurangnya seorang pemain (untuk memadam pasukan, anda mesti memadam semua pemain dahulu), atau segera memadam semua pemainnya bersama-sama dengan pasukan. Peraturan pemadaman sedemikian dipanggil "sekatan" dan "lata" (Parent RESTRICT dan Parent CASCADE, lihat Rajah 2.25). Perhatikan bahawa entiti Pemain Dan Matlamat, seterusnya, juga disambungkan oleh pautan mengenal pasti dan jika pasukan dipadamkan dalam lata, semua pemain dalam pasukan dan semua gol yang mereka jaringkan akan dipadamkan. Melaksanakan arahan untuk memadam satu baris sebenarnya boleh membawa kepada pemadaman beribu-ribu baris dalam pangkalan data, jadi anda harus menggunakan peraturan padam lata dengan berhati-hati. Jika peraturan sekatan pemadaman ditetapkan, jika anda cuba memadamkan pasukan yang mempunyai sekurang-kurangnya seorang pemain, pelayan DBMS hubungan akan mengembalikan ralat.

Dalam Rajah. 2.26 perhubungan tidak mengenal pasti pilihan diwujudkan antara entiti Jabatan Dan Pekerja. Contoh entiti Pekerja boleh wujud tanpa rujukan jabatan (atribut kunci asing Di mana dia bekerja? Nombor jabatan boleh NULL). Dalam kes ini, adalah mungkin untuk menetapkan peraturan untuk menetapkannya kepada sifar - SET NULL. Apabila memadamkan jabatan, atribut kunci asing entiti Pekerja - Di mana dia bekerja? Nombor jabatan akan menjadi NULL. Ini bermakna apabila sesuatu jabatan dipadamkan, pekerja itu kekal bekerja dalam organisasi tanpa ditugaskan ke mana-mana jabatan dan maklumat tentangnya disimpan.

Anda boleh menetapkan dua lagi peraturan pemadaman (jika disokong oleh DBMS):

SET LALAI - apabila memadam, atribut kunci asing diberikan nilai lalai. Sebagai contoh, apabila pasukan dipadamkan, pemain boleh dipindahkan ke pasukan lain.

TIADA - apabila dipadamkan, nilai atribut kunci asing tidak berubah. Rekod tentang pemain "bergantung di udara," iaitu, ia merujuk kepada pasukan yang tidak lagi wujud. Keadaan ini adalah tipikal untuk jadual "rata". Sebagai contoh, jika maklumat pemain dan pasukan disimpan dalam fail dbf, anda boleh memadamkan kemasukan pasukan tanpa fail pemain mengetahui apa-apa tentang fakta bahawa pasukan yang sepadan tidak wujud. Oleh itu, pada desktop atau sistem pelayan fail, fungsi yang menguatkuasakan peraturan integriti rujukan dilaksanakan dalam aplikasi klien.

Peraturan pemadaman mengawal perkara yang berlaku dalam pangkalan data apabila baris dipadamkan. Begitu juga, memasukkan dan mengemas kini peraturan mengawal perkara yang berlaku kepada pangkalan data jika baris ditukar atau ditambah. Sebagai contoh, anda boleh menetapkan peraturan yang membenarkan anda menambah pasukan baharu hanya jika sekurang-kurangnya seorang pemain mendaftar di dalamnya. Tingkah laku yang diingini boleh dicapai dengan tindakan berikut:

Tetapkan kekuatan sambungan antara entiti Pasukan Dan pemain, sama dengan "Satu atau lebih" - 1 atau lebih (jenis P). Diandaikan bahawa hubungan mengenal pasti telah diwujudkan.

Tetapkan tindakan pencetus RI "Parent Insert-CASCADE" supaya apabila baris baharu dibuat dalam jadual Pasukan sekurang-kurangnya satu baris telah dibuat secara automatik dalam jadual anak Pemain.

Tetapkan tindakan pencetus RI "Parent Delete-CASCADE" kepada sambungan supaya apabila baris dipadamkan daripada jadual Pasukan baris atau baris yang sepadan daripada jadual Pemain juga telah dikeluarkan.

ERwin secara automatik memberikan nilai integriti rujukan lalai kepada setiap perhubungan sebelum menambahkannya pada rajah. Mod RI yang ditetapkan oleh ERwin secara lalai (ditunjukkan dalam Jadual 2.4) boleh ditukar dalam editor Default Integriti Rujukan, yang dipanggil dengan mengklik pada butang Lalai RI dalam dialog Pelayan Sasaran (menu Pelayan/Pelayan Sasaran).

Jadual 2.4. Nilai RI ditetapkan secara lalai dalam ERwin, serta mod yang mungkin untuk setiap jenis komunikasi

Pautan pengenalan Batal Dibenarkan Hubungan tidak mengenal pasti (Tiada Nulls) Sambungan kategori
Kanak-kanak Padam Mod yang mungkin TERHAD, LATA, TIADA TERHAD, LATA, TIADA, SET NULL, SET LAALA TERHAD, LATA,
TIADA
Kanak-kanak Padam Mod Lalai TIADA TIADA TIADA TIADA
Kanak-kanak Masukkan mod Kemungkinan TERHAD, LATA, TERHAD, LATA, TIADA, TETAPKAN LALAI TERHAD, LATA,
TIADA TIADA
Anak Masukkan Mod Lalai MENYEKAT TETAPKAN NULL MENYEKAT MENYEKAT
Kemas Kini Kanak-kanak Mod yang mungkin TERHAD, LATA, TIADA TERHAD, LATA, TIADA, TETAPKAN NULL, TETAP LAALA TERHAD, LATA, TIADA, TETAPKAN LALAI TERHAD, LATA, TIADA
Mod Lalai Kemas Kini Kanak-kanak MENYEKAT TETAPKAN NULL MENYEKAT MENYEKAT
Ibu Bapa Padam mod Kemungkinan TERHAD, LATA, TIADA TERHAD, LATA, TIADA, TETAPKAN NULL, TETAP LAALA TERHAD, LATA, TIADA, TETAPKAN LALAI TERHAD, LATA,
TIADA
Ibu Bapa Padamkan Mod Lalai MENYEKAT TETAPKAN NULL MENYEKAT CASCADE
Mod Masukkan Ibu Bapa Kemungkinan TERHAD, LATA, TIADA TERHAD, LATA, TIADA, TETAPKAN NULL, TETAP LAALA TERHAD, LATA, TIADA, TETAPKAN LALAI TERHAD, LATA, TIADA
Mod Lalai Sisipan Ibu Bapa TIADA TIADA TIADA TIADA
Kemas Kini Ibu Bapa Mod yang mungkin TERHAD, LATA, TIADA TERHAD, LATA, TIADA, TETAPKAN NULL, TETAP LAALA TERHAD, LATA, TIADA, TETAPKAN LALAI TERHAD, LATA, TIADA
Mod Lalai Kemas Kini Ibu Bapa MENYEKAT TETAPKAN NULL MENYEKAT CASCADE

Komunikasi banyak-ke-banyak hanya boleh dilakukan pada tahap model data logik. Dalam Rajah. Rajah 2.31 di atas menunjukkan contoh perhubungan banyak-ke-banyak. Seorang doktor boleh berjumpa dengan ramai pesakit, seorang pesakit boleh dirawat oleh beberapa doktor. Sambungan sedemikian ditunjukkan oleh garis pepejal dengan dua titik di hujungnya.