Teknologi berorientasikan objek untuk mereka bentuk sistem perisian aplikasi. Menentukan komposisi subset. Membahagikan set kepada subset

Ahli matematik terlalu malas untuk menerangkan dalam bahasa awam apa itu nombor nyata. Sukar untuk orang biasa membaca simbol yang ditulis oleh ahli matematik kerana maknanya tidak jelas baginya. Akibatnya, terdapat jurang antara teori dan amalan. Secara teorinya, ahli matematik mengetahui dengan baik jenis objek dan sifat apa itu, tetapi, turun ke latihan, kita melihat bahawa beberapa pengamal memahami apa itu. Terdapat banyak konsep intuitif, tetapi setiap daripada mereka lebih seperti dogma agama daripada pengetahuan. Dalam artikel ini saya cuba merapatkan jurang antara ahli matematik dan saintis gunaan dengan menerangkan asas teori set dalam bahasa mudah, tiada ikon yang rumit. Sebagai contoh, adakah anda biasa dengan definisi atribut? Saya sendiri mengalaminya kerana saya tidak dapat mencari definisi rasmi mengenainya. Dan hanya kemudian Igor Katrichek menghantar saya pautan ke buku E. Kindler "Modeling Languages" (1979, diterjemahkan 1985), yang memberikan definisi atribut:

Dalam artikel ini saya akan memberikan saya, lebih banyak lagi definisi umum atribut supaya anda boleh membayangkannya dengan mudah.

Dalam artikel lepas, saya bercakap tentang fakta bahawa beberapa objek, yang kita fikirkan secara keseluruhan, wujud dalam fikiran kita, tetapi tidak diiktiraf secara jelas oleh kita. Ahli matematik menyedari perkara ini dan menjadikannya eksplisit dengan memperkenalkan konsep set. Saya juga teringat bahawa konsep itu sekumpulan dan konsep sebuah objek- aksiom yang tidak boleh diterbitkan daripada konsep lain. Pada masa yang sama, konsep objek sudah biasa kepada kita, dan kita mempunyai pengalaman yang mencukupi untuk bekerja dengan mereka, tetapi kita berkenalan dengan satu set di institut apabila mempelajari asas-asas matematik, dan idea tentangnya adalah tidak begitu jelas. Bagi mereka yang mencari peluang untuk belajar cara mewakili set dengan lebih jelas, saya telah memberitahu anda di mana kami boleh menemuinya imej yang baik– dalam pembentangan struktur. Dalam artikel ini saya akan meneruskan cerita tentang set, dan memberitahu anda apa menaip Dan atribut dari sudut teori set. Dan yang paling penting, saya akan memberitahu anda bagaimana konsep ini dicerminkan dalam model yang kami bina.

Set dalam matematik dan fizik

Kita melihat dunia sama ada sebagai ruang atau masa, tetapi kita tidak dapat membayangkan kedua-duanya pada masa yang sama. Ini meletakkan hadnya pada bahasa yang kami gunakan dan model yang kami bina.

Sebagai contoh, set matematik tidak wujud dalam masa, seperti juga operasi padanya. Ini bermakna komposisi set tidak boleh dikatakan berubah mengikut peredaran masa.

Ini nampaknya kepada saya keperluan yang berlawanan dengan intuisi dan tidak jelas, tetapi tanpanya kita tidak akan dapat melakukan operasi pada set dan membuat perbandingan. Ini bermakna jika kita ingin menerangkan set butiran pasir dalam timbunan pasir, maka kita mempunyai dua cara untuk melakukan ini: untuk setiap komposisi butiran pasir baharu, perkenalkan set baharu atau pertimbangkan set bahagian temporal butiran pasir dalam timbunan yang dikaji. Bahagian temporal sebutir pasir merujuk kepada masa A Saya adalah sebahagian daripada butiran pasir yang mempunyai atribut: permulaan dan akhir, memodelkan kehadiran butiran pasir ini dalam timbunan. Set bahagian temporal ini juga dipanggil perwakilan 4D yang dibuat dalam paradigma 4D. Komposisi butiran pasir pada masa tertentu boleh diperolehi daripada set ini secara sementara O keping ke: pilih hanya bahagian temporal butiran pasir yang "arus" dihidupkan masa ini masa, iaitu, yang muncul dalam timbunan lebih awal dan meninggalkan timbunan lewat daripada titik masa yang dipilih.

Ini adalah bagaimana komposisi set "fizikal" sebenar dimodelkan. Tetapi untuk artikel semasa, perwakilan sedemikian akan menjadi agak rumit, dan saya akan kembali kepada perwakilan biasa set mudah "beku" dalam masa, iaitu, yang wujud "di luar masa."

Menentukan komposisi set

Satu set adalah banyak, difikirkan secara keseluruhan, di mana banyak adalah komposisi set. Mari kita pertimbangkan cara untuk menentukan komposisi set. Seperti yang kita ketahui, komposisi set boleh ditentukan dalam dua cara:
  1. Penghitungan langsung objek yang dipilih daripada set.
  2. Peraturan untuk mengenal pasti objek yang dipilih daripada set.
Sebagai contoh, katakan terdapat dua objek di dalam bilik, antara objek lain: pinggan putih dan penanda hijau.
  1. Satu set A yang terdiri daripada dua elemen ini boleh ditentukan melalui penghitungan: plat putih adalah sebahagian daripada set A dan penanda hijau adalah sebahagian daripada set A. Tiada apa-apa lagi di dalam bilik itu adalah sebahagian daripada set A.
  2. Anda boleh melakukannya secara berbeza. Boleh dilekatkan pada pinggan dan penanda pelekat kuning dan pastikan tiada pelekat lain di dalam bilik. Kemudian kita boleh mengatakan bahawa objek tersebut dan hanya objek dalam bilik tertentu yang mempunyai pelekat kuning adalah sebahagian daripada set A.
Cara pertama untuk menentukan komposisi adalah dengan menghitung
Kaedah kedua ialah menetapkan syarat pengenalan.

Semasa perbincangan artikel lepas, saya menyedari bahawa tidak semua orang memahami dengan jelas perbezaan antara kedua-dua cara ini untuk menentukan komposisi set. Oleh itu, saya akan memberitahu anda lebih lanjut tentang mereka.

Kaedah pertama adalah berdasarkan satu siri kenyataan:

Plat adalah sebahagian daripada set A
Penanda adalah sebahagian daripada set A
Tiada orang lain yang menjadi sebahagian daripada set A

Cara kedua ialah pernyataan dalam predikat:

Itu dan hanya objek di dalam bilik yang mempunyai pelekat kuning disertakan dalam set A.

Kaedah pertama untuk menerangkan komposisi boleh melibatkan mana-mana model objek. Dalam kaedah perihalan kedua, model objek mesti mempunyai satu atribut biasa, nilai yang menentukan sama ada objek itu dimasukkan ke dalam set atau tidak. Iaitu, jika model objek tidak mempunyai atribut biasa, adalah mustahil untuk membina keadaan pengenalan.

Dalam perbincangan, adalah dicadangkan bahawa kemasukan dalam set, menggunakan penghitungan, juga harus dijadikan atribut: "sebahagian daripada set A." Oleh itu, objek yang disertakan dalam set A mempunyai nilai atribut ini "ya". Kemudian dicadangkan, berdasarkan atribut ini, untuk membuat tanda untuk pemilihan ke dalam set A yang sama: objek yang mempunyai nilai "ya" dimasukkan ke dalam set A. Pengarang idea ini tidak menyedari bahawa akibatnya daripada kesimpulan logik daripada dua kenyataan ini kita mendapat dua tautologi:

Set A termasuk objek dan hanya objek yang disertakan dalam set A Dan

Objek dimasukkan ke dalam set A jika dan hanya jika ia dimasukkan ke dalam set A.

Kenyataan yang jelas ini tidak mengandungi maklumat sama ada mengenai objek tertentu atau mengenai set A. Jika saya mengambil plat, maka berdasarkan pernyataan ini tidak mungkin untuk menentukan sama ada ia tergolong dalam set A atau tidak.

Oleh itu, penghitungan dan peraturan adalah dua asasnya cara yang berbeza penerangan tentang komposisi set, dan dalam matematik ia ditunjukkan sebagai dua cara utama dan berbeza sama sekali untuk menentukan komposisi set.

Ngomong-ngomong, pada satu ketika terdapat perdebatan panjang tentang definisi apa itu fungsi. Pertikaian ini timbul kerana mereka tidak dapat memutuskan peraturan pengenalan yang dianggap betul dan yang tidak. Hasilnya, idea Dirichlet diterima bahawa sebarang peraturan akan dianggap betul. Itulah sebabnya saya tidak akan cuba mengklasifikasikan semua peraturan, tetapi saya akan mempertimbangkan hanya beberapa yang kita perlukan dalam konteks ini.

Dalam buku teks, peraturan pengenalan sering dipanggil peraturan pemilihan. Istilah "peraturan pemilihan" mengelirukan kerana ia membayangkan beberapa jenis operasi pemilihan. Dan ini adalah petunjuk bahawa set itu boleh diisi semula. Tetapi itu tidak benar. Set mempunyai komposisi tetap. Oleh itu, lebih baik untuk bercakap bukan tentang pemilihan, tetapi tentang pengenalan. Kami tidak memilih elemen ke dalam set, kami mengenal pasti mereka sebagai elemen set.

Menentukan komposisi subset

Mari lihat bagaimana kita menentukan komposisi banyak gajah Afrika. Saya mengira empat cara berbeza untuk melakukan ini.
  1. Anda boleh menentukannya dengan penghitungan.
  2. Anda boleh meletakkan pelekat pada gajah dan mengatakan bahawa gajah yang mempunyai pelekat padanya dianggap Afrika. Ini adalah penentuan gubahan set melalui atribut. Atribut akan dianggap sebagai kehadiran atau ketiadaan pelekat.
  3. Anda boleh menentukan komposisi melalui persimpangan dua set: set gajah dan set haiwan yang tinggal di Afrika.
  4. Anda boleh memperkenalkan konsep seperti "gajah Afrika".
Menggunakan OWL dalam kerja kami, kami mempunyai peluang untuk melaksanakan tiga kaedah yang diterangkan di atas untuk menentukan subset:
  1. Senaraikan secara eksplisit objek yang termasuk dalam subset,
  2. Tentukan peraturan pengenalan melalui sebarang syarat untuk mana-mana atribut, dengan operasi yang berbeza: daripada hakikat memiliki nilai atribut kepada fakta bahawa nilai ini jatuh ke dalam julat tertentu
  3. Nyatakan operasi pada set lain: sebagai contoh, set A termasuk hanya objek yang merupakan sebahagian daripada set B dan bukan sebahagian daripada set C.
Untuk memahami sama ada kita boleh melaksanakan kaedah pengenalan keempat menggunakan jenis objek, mari kita lihat dengan lebih dekat.

Memodelkan Subset Menggunakan Jenis

Untuk menentukan jenis "gajah Afrika" kita perlukan:
  1. Sekumpulan objek dari mana kita memilih objek untuk subjenis. DALAM dalam kes ini Kumpulan ini mempunyai nama - ini adalah kumpulan gajah.
  2. Sifat unik di mana objek jenis ini berbeza daripada objek lain dalam kumpulan: mereka tinggal di Afrika.
  3. Nama unik untuk objek jenis ini
Anda boleh melakukannya secara berbeza dan mengambil haiwan yang tinggal di Afrika sebagai satu kumpulan. Kemudian sifat unik yang membezakan gajah Afrika daripada haiwan Afrika yang lain ialah haiwan ini adalah gajah.

Secara keseluruhan, untuk menentukan jenis, anda memerlukan:

  1. Tentukan superset objek.
  2. Nyatakan ciri tersendiri(sifat pembezaan) objek jenis tertentu daripada objek kumpulan.
  3. Nyatakan nama objek jenis ini
Selain itu anda boleh menentukan:
  • Sebab mengapa jenis objek ini menjadi permintaan (sifat fungsi pembezaan objek jenis ini
  • Faedah memperkenalkan objek jenis ini
  • Sejarah istilah
Objek daripada jenis yang sama berbeza daripada objek lain superset oleh beberapa sifat unik. Sifat unik ini boleh dimodelkan melalui sebarang syarat pada mana-mana atribut. Tetapi tidak semestinya semua nilai semua atribut bertepatan, atau komposisi atribut untuk semua objek jenis yang sama adalah sama.

Mengetahui apa itu jenis, anda mungkin berfikir bahawa kaedah keempat untuk mengenal pasti subset bertepatan dengan yang kedua. Walau bagaimanapun, untuk menentukan jenis, kita perlu tambahan, sekurang-kurangnya, menunjukkan nama khusus, dan, sebagai pilihan, menunjukkan atribut lain jenis, sebagai contoh, menunjukkan sebab untuk memilih jenis objek ini, sejarah istilah, dsb. Ini tidak boleh dilakukan menggunakan kaedah kedua. Oleh itu, kaedah keempat berbeza daripada yang kedua dan masih belum dilaksanakan dalam piawaian pemodelan yang saya tahu.

Jenis konsep

Jadi, dari sudut pandangan teori set:

Jenis ialah cara memilih subset daripada superset dan memberikan nama baharu kepada objek subset ini

Jika tiada superset, maka jenis itu dianggap aksiomatik, tidak boleh terbit. Seperti yang saya katakan tadi, konsep objek dan konsep set adalah konsep bukan terbitan kerana ia tidak boleh diberikan superset objek.

Perbezaan antara Jenis Objek dan Set Objek

Daripada perbincangan artikel, saya menyedari bahawa terdapat orang yang percaya bahawa jenis objek dan set objek sama ada konsep berkaitan, atau satu dan yang sama. Saya akan cuba menjelaskan mengapa ini tidak begitu. Jenis ialah peraturan untuk mengenal pasti objek dan nama untuk objek tersebut. Iaitu, jenis secara serentak berfungsi untuk mengkhususkan (atau memilih) subset daripada set, dan memberikan nama baharu kepada objek khusus.

Setiap jenis menentukan komposisi set, tetapi tidak setiap set sepadan dengan jenis yang menentukan komposisinya, sebagai contoh, apabila kita bercakap tentang set yang komposisinya diberikan dengan menyenaraikan elemennya, atau apabila kita bercakap tentang set yang elemennya berfungsi. tidak mempunyai nama sendiri.

Adalah jelas bahawa peraturan yang mentakrifkan set bukanlah set itu sendiri.

Nampaknya saya dari semua yang telah dikatakan, jelas bagaimana konsep "jenis objek" berbeza daripada konsep "set objek".

Pemodelan objek yang serupa

Selalunya dalam IS, objek daripada jenis yang sama dimodelkan menggunakan model yang mengandungi set atribut yang sama. Sekarang anda boleh melihatnya had ini berlebihan, kerana objek daripada jenis yang sama boleh mempunyai set yang berbeza sifat-sifat. Batasan ini disebabkan ciri-ciri teknikal pelaksanaan, tetapi bukan keperluan bidang subjek.

Dalam IS, senarai objek dari jenis yang sama semakin berkembang. Ini mencadangkan komposisi pembolehubah set yang kami modelkan. Walau bagaimanapun, ia tidak. Senarai objek yang telah didaftarkan dalam IP bukanlah senarai lengkap set. Iaitu, IS tidak menyimpan model semua elemen set, tetapi hanya model yang sedang didaftarkan. Oleh itu, apabila kami membuat permintaan, maksudnya ialah ini: berikan saya semua objek jenis ini yang kini didaftarkan dalam IP.

Kitaran hayat objek

Sebagai tambahan kepada fakta bahawa objek boleh dikelaskan sebagai jenis tertentu objek, terdapat dua lagi perkara yang tidak boleh dilupakan:
  1. Pengelasan (menyerahkan objek kepada kelas atau jenis objek tertentu) sentiasa subjektif. Objek yang sama boleh kelihatan berbeza dari sudut pandangan yang berbeza. Jika kita sedang membina model domain yang boleh diperluaskan, yang penggunaannya melibatkan kehadiran pihak berkepentingan yang berbeza, maka ia mesti mungkin untuk memodelkan konteks dan sudut pandangan yang berbeza. Selain itu, dari sudut pandangan yang berbeza, objek yang sama boleh diklasifikasikan sebagai jenis yang berbeza.
  2. Mengambil kira kitaran hayat objek melibatkan bukan sahaja mengambil kira perubahan dalam objek, tetapi juga mengambil kira perubahan dalam persepsi kita terhadap objek ini, kerana bersama-sama dengan proses sintesis dan analisis terdapat proses objektif dan de -objektif.
Proses objekifikasi dan nyahobjektifikasi kelihatan seperti ini:

Objektif

Mempunyai idea tentang jenis, kami cuba mencari objek jenis ini di dunia di sekeliling kita. Objek yang ditemui cenderung daripada jenis yang paling luas. Sebagai contoh, jika kita bercakap tentang mengenai perusahaan, maka pada langkah pertama objek yang ditemui boleh dikaitkan dengan operasi, fungsi dan objek. Atau jika kita bercakap tentang tumbuhan, kita membahagikannya kepada pokok, rumput dan pokok renek. Seterusnya, jenis objek diperjelaskan dengan menguji pelbagai hipotesis. Dalam proses penjelasan, kami cuba mencari jenis yang akan memberitahu kami cukup tentang objek supaya pengetahuan ini boleh digunakan secara berkesan dalam amalan (kami cuba mencari jenis yang lebih sempit yang boleh dikaitkan dengan objek ini). Dalam proses penghalusan, model objek memperoleh butiran baharu. Pada masa yang sama, kami menggunakan pengetahuan kami tentang objek ini dalam amalan. Jika aplikasi pengetahuan ini berjaya, objek dianggap diperoleh dengan betul dan dikelaskan dengan betul (jenis objek dipilih dengan betul).

Nyahobjektifikasi

Walau bagaimanapun, segala-galanya berubah: idea tentang dunia di sekeliling kita berubah, pengetahuan baru muncul, dll. Akibatnya, ternyata model objek berhenti memenuhi keperluan utiliti. Dan kemudian juga pengkhususan sempit objek menjadi musuhnya sendiri. Objek tertakluk kepada pengelasan semula (aplikasi telah bertukar menjadi permintaan), dan kadangkala ia dimusnahkan sepenuhnya, sama seperti eter atau kalori dimusnahkan. Dan kemudian kitaran bermula sekali lagi: memilih objek, menjelaskan pengetahuan tentangnya, dsb.

Kajian kes:

Objektif:

Biarkan pelanggan datang untuk mengemukakan permohonan. Sehingga perintah itu dilaksanakan, kita hanya boleh mengetahui jenisnya dengan beberapa tahap kebarangkalian. Oleh itu, permohonan jenis terluas didaftarkan terlebih dahulu. Kemudian, apabila butiran dijelaskan dan dalam proses pelaksanaannya, model aplikasi memperoleh atribut baharu. Selepas beberapa lama, ia menjadi jelas jenis aplikasi yang dimiliki oleh aplikasi ini dan klasifikasi terakhirnya berlaku.

penyahobjekkan:

Mari kita miliki senario tipikal mencari maklumat di Internet. Biarkan ia mengatakan bahawa pada bila-bila masa anda perlu mencari maklumat yang diperlukan, gunakan enjin carian itu dan itu - program carian maklumat yang diperlukan. Marilah kita menggunakan program ini berkali-kali, setiap kali melakukan operasi carian. Terdapat banyak operasi sedemikian semasa pengendalian program ini, dan kesemuanya diklasifikasikan sebagai operasi jenis "cari maklumat". Selepas beberapa lama, ternyata program enjin carian menjalankan fungsi pengintip, "membocorkan" data tentang pengguna kepada orang yang berminat dengan maklumat ini. Dan kemudian ternyata bahawa operasi yang digunakan oleh enjin carian ini kini akan diklasifikasikan semula daripada operasi mendapatkan maklumat kepada operasi pemindahan data pihak yang berkepentingan. Tetapi mungkin berlaku bahawa kita akan mempelajari sesuatu yang lebih lanjut tentang program ini dan kemudian kita perlu mempertimbangkan semula operasi lain di mana ia mengambil bahagian.

Keperluan untuk jenis pemodelan pemodel

Mari kita rumuskan keperluan untuk pemodel yang direka bentuk untuk memodelkan jenis:

  1. Ia adalah perlu untuk dapat memodelkan objek dari jenis yang sama, komposisi atributnya tidak sepadan
  2. Anda mesti boleh memodelkan peraturan yang membezakan objek kepada satu jenis
  3. Keperluan untuk memodelkan atribut lain bagi sesuatu jenis: nama objek bagi jenis tertentu, sejarah nama ini, dsb.
  4. Mesti boleh buat model titik yang berbeza pandangan objek yang sama
  5. Mesti boleh buat model kitaran hidup objek
  6. Ia adalah perlu untuk dapat memodelkan perubahan dalam pemahaman kita tentang objek dari semasa ke semasa.

Bagaimanakah industri IT boleh melaksanakan keperluan ini tanpa menggunakan struktur pangkalan data? Bagaimana, tanpa merujuk kepada struktur data, mengambil kira sudut pandangan yang berbeza, menambah jenis objek baharu, menjelaskan jenis objek, mengklasifikasikan semula objek jika perlu?

Memodelkan Objek dengan OWL

Terdapat satu batasan yang terdapat dalam OWL: ia tidak membezakan antara set dan jenis objek. Oleh sebab itu, kami mempunyai fungsi terhad untuk memodelkan jenis objek. Walau bagaimanapun, fungsi ini jauh lebih luas daripada kaedah pemodelan lain yang diberikan kepada kami, kerana kami mempunyai keupayaan berikut:
  • Menambah set objek baharu pada OWL tidak berbeza dengan menambah objek baharu.
  • Ia boleh dituntut bahawa jika jenis objek diketahui, maka model objek dicipta dengan diberikan, atribut yang diketahui sebelumnya. Selain itu, selepas penciptaan, atribut boleh sama ada ditambah atau dipadamkan. Contoh: apabila mencipta model aplikasi, kami mungkin memerlukan nilai atribut ditentukan (nombor permohonan, tarikh permohonan, pemohon, penerima). Anda hanya perlu ingat bahawa atribut ini dalam OWL wujud secara berasingan daripada jenis objek. Dan satu atribut boleh digunakan apabila memodelkan objek set berbeza. ini perbezaan asas daripada bahasa pengaturcaraan biasa, di mana atribut hanya wujud dalam satu jenis objek. Atribut lain dalam jenis yang berbeza, walaupun dengan nama yang sama, akan menjadi atribut yang berbeza.
  • Anda boleh meminta sebaliknya: untuk menentukan subset objek yang dimodelkan berdasarkan atribut model objek dan keahliannya dalam superset. Untuk melakukan ini, peraturan akan menulis bahawa jika model objek kepunyaan superset tertentu mengandungi atribut sedemikian dan sedemikian dan nilainya memenuhi peraturan tertentu, maka objek itu akan secara automatik diberikan kepada subset tertentu. Jadi, dengan bantuan peraturan, apa yang dipanggil "klasifikasi itik" akan dilaksanakan. Sebagai contoh, jika model permintaan mempunyai nilai atribut " Nombor telefon”, dan “Sambungan” ialah nilai atribut “Jenis kerja yang dilakukan”, maka aplikasi secara automatik akan diklasifikasikan sebagai aplikasi untuk menyambungkan nombor telefon.

Membahagikan set kepada subset

Biar ada satu set objek. Dan biarkan tugasnya untuk membahagikan set ini kepada tujuh subset, setiap satunya diberikan warnanya sendiri: "objek merah", objek kuning." Dan lain-lain.

Membahagikan set kepada subset boleh dilakukan dengan cara yang berbeza.

  1. Anda boleh membahagikan set kepada subset terputus-putus dengan mengedarkan objek kepada subset dengan menghitungnya. Cipta tujuh subset dan senaraikan objek yang dimiliki oleh setiap subset.
  2. Untuk setiap subset anda boleh menghasilkan subjenis anda sendiri. Kemudian keseluruhan set boleh dibahagikan kepada tujuh subset dengan memperkenalkan tujuh subjenis: "Jenis objek merah", "Jenis objek kuning", dll. Setiap objek boleh dikaitkan dengan salah satu jenis yang disenaraikan dan katakan, sebagai contoh, seperti ini : objek tergolong dalam jenis objek merah.
  3. Anda boleh memisahkan superset menggunakan atribut dan nilainya. Sebagai contoh, anda boleh memasukkan atribut "Warna" dan tujuh nilainya: "Merah", "Kuning", dsb. Kemudian nama warna akan menjadi kata sifat untuk objek dan akan berbunyi seperti ini: objek merah, objek kuning, dll.
Kaedah pertama dalam OWL dilaksanakan dengan mencipta tujuh kelas berbeza dan menentukan objek kepunyaan mereka.

Kaedah kedua boleh dilaksanakan dalam tiga cara yang berbeza:

  1. Dengan mencipta subset berasingan yang disatukan oleh satu jenis, tetapi jenis itu sendiri, seperti yang saya katakan sebelum ini, tidak dimodelkan. Kaedah ini tidak berbeza dengan kaedah pemisahan enumerasi.
  2. Menggunakan buku rujukan "Jenis objek berwarna", nilai yang akan menjadi objek yang memodelkan jenis: "Objek merah", "objek kuning", dsb.
  3. Menggunakan atribut yang dipanggil "jenis objek", nilainya akan dalam bentuk teks: "Jenis objek merah", "Jenis objek kuning", dsb.
Cara ketiga untuk membahagikan set kepada subset dalam IS dimodelkan dalam dua cara:
  1. Menggunakan direktori "Warna", nilai yang akan menjadi objek yang memodelkan nilai atribut: merah, kuning, dsb.
  2. Menggunakan atribut yang dipanggil "Warna", nilainya akan dalam bentuk teks: "merah", "kuning", dll.
Ia boleh dilihat bahawa pemisahan menggunakan jenis dan atribut dimodelkan dengan cara yang sama dalam dua kes, tetapi mempunyai nama yang berbeza. Sesungguhnya, pemilikan nilai atribut dalam OWL dimodelkan oleh triplet berikut:

#objek #atribut #nilai

Keahlian kelas adalah seperti berikut:

#object rdf:type #class

Iaitu, kita boleh mengatakan bahawa keahlian kelas hanya dinyatakan menggunakan atribut perkhidmatan khas yang ditakrifkan dalam standard - rdf:type.

Konsep atribut

Mari kita rumuskan pernyataan:

Atribut ialah cara membahagikan set objek kepada subset. Dalam kes ini, setiap nilai atribut sepadan dengan subset tertentu, objek yang mempunyai atribut dengan nilai itu.

Memodelkan subset menggunakan atribut

Setiap daripada tiga kaedah pemodelan subset yang disenaraikan sebelum ini mempunyai kelebihan dan keburukan tersendiri bergantung pada konteks dan kaedah pelaksanaan yang dipilih.

Jika terdapat sedikit subset, anda boleh memilih mana-mana kaedah yang disenaraikan untuk membahagikan kepada subset dan sebarang pelaksanaan.

Jika terdapat banyak subset (dalam had tak terhingga, sebagai contoh, apabila setiap set mengumpulkan objek dengan panjang yang sama), maka secara rasmi perkara berikut kekal:

  1. cara ketiga untuk jenis model dan
  2. cara kedua untuk memodelkan atribut.
Walau bagaimanapun, saya telah menulis sebelum ini bahawa setiap jenis perlu diberi nama. Jika terdapat banyak subset (tak terhingga), maka memberi nama kepada setiap subset adalah tidak realistik. Oleh itu, kami tidak memodelkan bahagian ini menggunakan jenis. Kami memodelkan bahagian ini hanya dengan bantuan atribut yang julat nilainya akan menjadi salah satu set biasa: set nombor nyata, set yang memodelkan garis masa, set nombor asli, set rentetan panjang terhingga, dsb. Adakah anda mengenali jenis data?

Anda boleh membaca tentang cara memperkenalkan fungsi pada set subset dan bukan sahaja mengenainya

Penjelasan atribut mewakili fakta intrinsik kepada setiap perihalan objek. Contoh - fungsi logik elemen litar digital.

Jika nilai atribut deskriptif berubah, ini menunjukkan bahawa aspek contoh objek telah berubah, tetapi objek tetap sama.

Menunjuk atribut digunakan untuk menentukan nama atau sebutan untuk contoh.

Atribut penunjuk digunakan sebagai pengecam objek.

Bantu atribut digunakan untuk mengaitkan contoh satu objek dengan contoh objek lain. Contohnya, contoh objek "Litar Mikro" dengan contoh "Rajah litar elektrik".

Jika nilai atribut tambahan berubah, ini menunjukkan bahawa contoh lain objek kini berkaitan.

Penerangan tentang sifat

Untuk atribut deskriptif, perihalan menentukan ciri sebenar yang diabstraksikan sebagai atribut.

Dalam kes ini, penerangan diberikan sebagai:

    Menyenaraikan semua kemungkinan nilai yang boleh diambil oleh atribut;

    Merumuskan peraturan yang menentukan nilai yang dibenarkan;

    Menentukan julat nilai yang mungkin.

Penerangan tentang nilai atribut penunjuk menentukan bentuk petunjuk dan sejauh mana atribut boleh digunakan sebagai pengecam.

Perihalan atribut tambahan mesti mengandungi perihalan hubungan sebenar yang ditakrifkan oleh atribut.

Peraturan Atribut

Sejak mana-mana model maklumat, yang dihasilkan oleh kami, tidak seharusnya mengandungi ralat maklumat (ralat). Untuk melakukan ini, ia mesti berusaha untuk menjadi model hubungan, i.e. semua hubungan antara data model maklumat mesti mematuhi peraturan algebra hubungan.

Peraturan atribut pertama

Satu contoh objek mempunyai satu nilai tunggal untuk setiap atribut pada bila-bila masa.

Peraturan atribut ke-2

Atribut mestilah tidak mempunyai sebarang struktur dalaman. Semua atribut adalah mudah.

Peraturan atribut ke-3

Jika objek mempunyai pengecam komposit, i.e. pengecam yang terdiri daripada lebih daripada satu atribut, maka setiap atribut yang tidak termasuk dalam pengecam komposit mesti mencirikan keseluruhan objek, dan bukan sebahagian daripadanya.

Hubungan antara objek

Sambungan ialah abstraksi satu set perhubungan yang timbul secara sistematik antara pelbagai jenis objek di dunia nyata.

Setiap hubungan dalam model maklumat ditentukan oleh sepasang nama yang menerangkan hubungan dari perspektif setiap objek yang mengambil bahagian.

Contoh: rajah merangkumi unsur - unsur adalah sebahagian daripada rajah.

Hubungan diwakili secara grafik dengan garisan antara elemen yang berkaitan.

Contoh: mari kita ambil objek ekonomi:

Hubungan langsung terbahagi kepada:

    Sambungan tanpa syarat

    Sambungan bersyarat

Antara sambungan tanpa syarat, terdapat 3 jenis sambungan asas. Ini adalah sambungannya:

    Satu-dengan-satu ialah hubungan di mana satu kejadian satu objek dikaitkan dengan satu kejadian objek lain.

    Satu-ke-banyak ialah perhubungan di mana satu tika objek dikaitkan dengan satu atau lebih kejadian objek lain, dan setiap tika objek lain dikaitkan dengan hanya satu tika objek pertama.

    Banyak-ke-banyak ialah perhubungan di mana satu tika objek dikaitkan dengan satu atau lebih kejadian objek lain, dan setiap tika objek lain dikaitkan dengan satu atau lebih kejadian pertama.

Jenis sambungan perhubungan kedua – sambungan bersyarat.

Sambungan bersyarat mungkin mempunyai contoh objek yang tidak mengambil bahagian dalam sambungan.

N sebagai contoh:

Semua sambungan memerlukan penerangan. Penerangan termasuk:

    ID komunikasi

    Perumusan nama hubungan dari segi objek yang mengambil bahagian

    Jenis sambungan (pluraliti dan syaratnya)

    Pernyataan tentang cara sambungan diformalkan (mengapa kami memperkenalkan sambungan ini)

Memformalkan sambungan (takrifannya) terdiri daripada mewujudkan sambungan antara kejadian objek. Ini dilakukan dengan bantuan cara tambahan.

Jika objek mempunyai atribut tambahan, maka hubungan itu dikatakan formal.

Untuk memformalkan perhubungan satu-dengan-banyak, atribut tambahan ditetapkan pada bahagian banyak.

Jika kami mempunyai perhubungan banyak-ke-banyak, untuk tidak melanggar peraturan atribut ke-3, kami mencipta objek tambahan (bersekutu) yang mengandungi rujukan kepada pengecam setiap contoh yang mengambil bahagian.

Hubungan yang timbul kerana adanya hubungan lain antara objek dipanggil gubahan sambungan.

Jika terdapat warisan dalam model maklumat, maka terdapat subjenis dan superjenis.

Supertype ialah objek induk.

Subjenis ialah objek kanak-kanak.

gambar rajah ER

Model logik

Secara umum perwakilan model logik DB ialah pembinaan ER-diagram (Entity-Relationship - entity-relationship). Dalam model ini, entiti ditakrifkan sebagai objek diskret yang mana elemen data disimpan, dan perhubungan menerangkan hubungan antara dua objek.

Dalam contoh pengurus agensi pelancongan, terdapat 5 objek utama:

Pelancong

baucar

Hubungan antara objek ini boleh ditakrifkan dalam istilah mudah:

Setiap pelancong boleh membeli satu atau beberapa (banyak) baucar.

Setiap baucar sepadan dengan pembayarannya (mungkin terdapat beberapa pembayaran jika baucar itu, sebagai contoh, dijual secara kredit).

Setiap lawatan boleh mempunyai beberapa musim.

Tiket itu dijual untuk satu musim satu lawatan.

Objek dan hubungan ini boleh diwakili rajah ER, seperti yang ditunjukkan dalam Rajah 2.

Rajah 3.2. Gambar rajah ER untuk aplikasi pangkalan data pengurus agensi pelancongan

Model ini dibangunkan lagi dengan mentakrifkan atribut untuk setiap objek. Atribut objek ialah elemen data yang berkaitan dengan objek tertentu yang mesti dipelihara. Kami menganalisis kamus data yang disusun, memilih objek dan atributnya di dalamnya dan mengembangkan kamus jika perlu. Atribut untuk setiap objek dalam contoh dibentangkan dalam Jadual 2.

Jadual 3.2. Objek dan atribut pangkalan data

Sila ambil perhatian bahawa beberapa item hilang. Maklumat pendaftaran ditinggalkan yang disebut dalam spesifikasi berfungsi. Bagaimana untuk mengambil kira, anda akan berfikir sendiri dan memuktamadkan contoh yang dicadangkan. Tetapi yang lebih penting, atribut yang diperlukan untuk menyambungkan objek antara satu sama lain masih tiada. Elemen data ini tidak diwakili dalam model ER, kerana ia sebenarnya bukan atribut "semula jadi" objek. Mereka diproses secara berbeza dan akan diambil kira dalam model data hubungan.

Model perhubungan dicirikan oleh penggunaan kunci dan hubungan. Terdapat perbezaan dalam konteks asas perhubungan istilah ini hubungan (hubungan) dan hubungan (skema data). Perhubungan dianggap sebagai jadual dua dimensi yang tidak tertib dengan baris yang tidak berkaitan. Skema data dibentuk antara hubungan (jadual) melalui atribut biasa, iaitu kunci.



Terdapat beberapa jenis kunci, dan kadangkala ia hanya berbeza dari segi perhubungannya dengan atribut dan perhubungan yang lain. Kunci primer secara unik mengenal pasti baris dalam hubungan (jadual), dan setiap hubungan hanya boleh mempunyai satu kunci utama, walaupun lebih daripada satu atribut adalah unik. Dalam sesetengah kes, lebih daripada satu atribut diperlukan untuk mengenal pasti baris dalam perhubungan. Pengumpulan atribut ini dipanggil kunci komposit. Dalam kes lain, kunci utama mesti dicipta khas (dijana). Contohnya, dalam perhubungan "Pelancong", adalah wajar untuk menambah pengecam pelancong yang unik (kod pelancong) sebagai kunci utama perhubungan ini untuk mengatur sambungan dengan perhubungan pangkalan data lain.

Satu lagi jenis kunci, dipanggil kunci asing, hanya wujud dari segi skema data antara dua perhubungan. Kunci luaran dalam hubungan ialah atribut yang merupakan kunci utama (atau sebahagian daripada kunci utama) dalam hubungan lain. Ia adalah atribut teragih yang membentuk skema data antara dua perhubungan dalam pangkalan data.

Untuk pangkalan data yang direka, kami akan mengembangkan atribut objek dengan medan kod sebagai kunci utama dan gunakan kod ini dalam perhubungan pangkalan data untuk merujuk kepada objek pangkalan data seperti berikut (Jadual 3).

Terlalu awal untuk menganggap skema pangkalan data yang dibina lengkap, kerana normalisasinya diperlukan. Proses yang dikenali sebagai normalisasi pangkalan data hubungan digunakan untuk mengumpulkan atribut dengan cara yang istimewa untuk meminimumkan lebihan dan pergantungan fungsi.

Jadual 3.3. Objek dan atribut DB dengan medan kod lanjutan

2.1.2. Atribut Objek

Atribut ialah nilai yang mencirikan objek dalam kelasnya. Contoh atribut: kategori, baki, kredit (atribut objek kelas akaun); nama, umur, berat (atribut objek kelas orang), dsb.

Atribut berbeza-beza sifat kekal(pemalar) dan atribut berubah-ubah. Atribut malar mencirikan objek dalam kelasnya (contohnya, nombor akaun, kategori, nama orang, dsb.). Nilai semasa pembolehubah atribut mencirikan arus negeri objek (contohnya, baki akaun, umur seseorang, dsb.); Dengan menukar nilai atribut ini, kami menukar keadaan objek.

Atribut disenaraikan dalam bahagian kedua segi empat tepat yang mewakili kelas (lihat Rajah 2.1). Kadangkala jenis atribut ditunjukkan (selepas semua, setiap atribut adalah nilai tertentu) dan nilai awal atribut pembolehubah (set nilai awal atribut ini menentukan keadaan awal objek).

Perlu diingatkan bahawa apabila kita bercakap tentang objek dan kelasnya, kita tidak bermaksud mana-mana bahasa pengaturcaraan berorientasikan objek. Ini dicerminkan, khususnya, dalam fakta bahawa di fasa ini Apabila membangunkan sistem perisian, anda harus mempertimbangkan hanya atribut yang masuk akal dalam realiti (semua atribut objek kelas akaun - Rajah 2.1 - mempunyai sifat ini). Atribut dikaitkan dengan ciri pelaksanaan keseluruhan. Sebagai contoh, jika anda tahu bahawa anda akan menggunakan pangkalan data di mana setiap objek mempunyai pengecam unik, maka anda tidak seharusnya memasukkan pengecam ini antara atribut objek pada peringkat ini. Hakikatnya ialah dengan memperkenalkan atribut sedemikian, kami mengehadkan kemungkinan melaksanakan sistem. Oleh itu, dengan memperkenalkan pengecam unik objek dalam pangkalan data sebagai atribut, pada permulaan reka bentuk kami enggan menggunakan DBMS yang tidak menyokong pengecam sedemikian.