เทคโนโลยีเชิงวัตถุสำหรับการออกแบบระบบซอฟต์แวร์ประยุกต์ การกำหนดองค์ประกอบของเซตย่อย การแบ่งเซตออกเป็นเซตย่อย

นักคณิตศาสตร์ขี้เกียจเกินกว่าจะอธิบายในภาษาของคนทั่วไปว่าจำนวนจริงคืออะไร เป็นเรื่องยากสำหรับคนทั่วไปที่จะอ่านสัญลักษณ์ที่นักคณิตศาสตร์เขียนขึ้น เนื่องจากความหมายไม่ชัดเจนสำหรับเขา ส่งผลให้เกิดช่องว่างระหว่างทฤษฎีและการปฏิบัติ ตามทฤษฎีแล้ว นักคณิตศาสตร์รู้ดีว่าวัตถุประเภทใดคืออะไรและมีคุณลักษณะอย่างไร แต่เมื่อลองลงมือปฏิบัติ เราจะพบว่ามีผู้ปฏิบัติงานเพียงไม่กี่คนที่เข้าใจว่าวัตถุเหล่านั้นคืออะไร มีแนวคิดตามสัญชาตญาณมากมาย แต่แต่ละแนวคิดก็เหมือนความเชื่อทางศาสนามากกว่าความรู้ ในบทความนี้ ฉันพยายามเชื่อมช่องว่างระหว่างนักคณิตศาสตร์และนักวิทยาศาสตร์ประยุกต์โดยการอธิบายพื้นฐานของทฤษฎีเซต ในภาษาง่ายๆไม่มีไอคอนที่ซับซ้อน ตัวอย่างเช่น คุณคุ้นเคยกับคำจำกัดความของแอตทริบิวต์หรือไม่ ฉันต้องทนทุกข์ทรมานกับมันด้วยตัวเองเพราะฉันไม่สามารถหาคำจำกัดความที่เป็นทางการของมันได้ จากนั้น Igor Katrichek ก็ส่งลิงก์ไปยังหนังสือ Modeling Languages ​​ของ E. Kindler (1979 แปลในปี 1985) ให้ฉัน ซึ่งให้คำจำกัดความของคุณลักษณะ:

ในบทความนี้ฉันจะให้มากกว่านี้ คำจำกัดความทั่วไปคุณลักษณะเพื่อให้คุณสามารถจินตนาการได้อย่างง่ายดาย

ในบทความที่แล้ว ฉันได้พูดถึงความจริงที่ว่าวัตถุหลายอย่างที่เราคิดโดยรวมนั้นมีอยู่ในจิตใจของเรา แต่เราไม่รู้จักอย่างชัดแจ้ง นักคณิตศาสตร์ตระหนักเรื่องนี้และทำให้มันชัดเจนโดยการแนะนำแนวคิดเรื่องเซต ฉันยังจำแนวคิดนั้นได้ มากมายและแนวคิด วัตถุ- สัจพจน์ที่ไม่สามารถอนุมานได้จากแนวคิดอื่น ในเวลาเดียวกันแนวคิดของวัตถุนั้นคุ้นเคยกับเราและเรามีประสบการณ์เพียงพอที่จะทำงานกับพวกมัน แต่เราได้ทำความคุ้นเคยกับชุดที่สถาบันเมื่อศึกษาพื้นฐานของคณิตศาสตร์และแนวคิดของพวกมันคือ ไม่ชัดเจนนัก สำหรับผู้ที่กำลังมองหาโอกาสในการเรียนรู้วิธีการนำเสนอชุดให้ชัดเจนยิ่งขึ้นฉันได้บอกคุณแล้วว่าจะหาได้จากที่ไหน ภาพลักษณ์ที่ดี– ในการนำเสนอโครงสร้าง ในบทความนี้ ฉันจะเล่าเรื่องราวเกี่ยวกับฉากต่อและบอกคุณว่าอะไร พิมพ์และ คุณลักษณะจากมุมมองของทฤษฎีเซต และที่สำคัญที่สุด ฉันจะบอกคุณว่าแนวคิดเหล่านี้สะท้อนให้เห็นในแบบจำลองที่เราสร้างขึ้นอย่างไร

ฉากในวิชาคณิตศาสตร์และฟิสิกส์

เรามองโลกว่าเป็นอวกาศหรือเป็นกาลเวลา แต่เราไม่สามารถจินตนาการถึงทั้งสองอย่างในเวลาเดียวกันได้ นี่เป็นการจำกัดภาษาที่เราใช้และโมเดลที่เราสร้าง

ตัวอย่างเช่น ชุดทางคณิตศาสตร์ไม่มีอยู่ในเวลา เช่นเดียวกับการดำเนินการกับชุดนั้น ซึ่งหมายความว่าองค์ประกอบของฉากไม่สามารถพูดได้ว่าเปลี่ยนแปลงไปตามกาลเวลา

สิ่งนี้ดูเหมือนเป็นข้อกำหนดที่ขัดกับสัญชาตญาณและไม่ชัดเจนสำหรับฉัน แต่ถ้าไม่มี เราจะไม่สามารถดำเนินการกับฉากและทำการเปรียบเทียบได้ ซึ่งหมายความว่าหากเราต้องการอธิบายชุดเม็ดทรายในกองทราย เราก็มีสองวิธีในการทำเช่นนี้: สำหรับองค์ประกอบใหม่ของเม็ดทราย แนะนำชุดใหม่ หรือพิจารณาชุดของส่วนขมับ เม็ดทรายในกองที่กำลังศึกษาอยู่ ส่วนขมับของเม็ดทรายหมายถึงเวลา ฉันเป็นส่วนหนึ่งของเม็ดทรายที่มีคุณสมบัติเป็นจุดเริ่มต้นและจุดสิ้นสุด โดยจำลองการมีอยู่ของเม็ดทรายนี้ในกอง ส่วนชั่วคราวชุดนี้เรียกอีกอย่างว่าการแสดง 4 มิติที่สร้างขึ้นในกระบวนทัศน์ 4 มิติ องค์ประกอบของเม็ดทราย ณ เวลาใดเวลาหนึ่งสามารถหาได้จากเซตนี้ชั่วคราว โอชิ้นที่ 3: เลือกเฉพาะส่วนขมับของเม็ดทรายที่เปิด "กระแส" เท่านั้น ในขณะนี้เวลา นั่นคือเวลาที่ปรากฏในฮีปก่อนหน้านี้และออกจากฮีปช้ากว่าเวลาที่เลือก

นี่คือวิธีการสร้างแบบจำลององค์ประกอบของฉาก "จริง" ที่แท้จริง แต่สำหรับบทความปัจจุบัน การเป็นตัวแทนจะค่อนข้างซับซ้อน และฉันจะกลับไปใช้การแทนปกติของเซตง่ายๆ ที่ "หยุดนิ่ง" ในเวลา นั่นคือสิ่งที่มีอยู่ "นอกเวลา"

การกำหนดองค์ประกอบของชุด

เซตคือจำนวนมาก ซึ่งคิดโดยรวม โดยที่จำนวนมากคือองค์ประกอบของเซต พิจารณาวิธีกำหนดองค์ประกอบของชุด ดังที่เราทราบ องค์ประกอบของชุดสามารถระบุได้สองวิธี:
  1. การแจงนับโดยตรงของวัตถุที่เลือกจากชุด
  2. กฎสำหรับการระบุวัตถุที่เลือกจากชุด
ตัวอย่างเช่น สมมติว่ามีสิ่งของสองชิ้นอยู่ในห้อง ท่ามกลางสิ่งของอื่นๆ ได้แก่ จานสีขาวและปากกามาร์กเกอร์สีเขียว
  1. เซต A ที่ประกอบด้วยสององค์ประกอบนี้สามารถระบุได้โดยการแจงนับ: จานสีขาวเป็นส่วนหนึ่งของเซต A และเครื่องหมายสีเขียวเป็นส่วนหนึ่งของเซต A ไม่มีสิ่งอื่นใดในห้องที่เป็นส่วนหนึ่งของเซต A
  2. คุณสามารถทำได้แตกต่างออกไป สามารถติดเข้ากับจานและปากกามาร์กเกอร์ได้ สติกเกอร์สีเหลืองและตรวจสอบให้แน่ใจว่าไม่มีสติกเกอร์อื่น ๆ อยู่ในห้อง จากนั้นเราสามารถพูดได้ว่าสิ่งของเหล่านั้นและเฉพาะสิ่งของในห้องที่กำหนดที่มีสติ๊กเกอร์สีเหลืองนั้นเป็นส่วนหนึ่งของเซต A
วิธีแรกในการกำหนดองค์ประกอบคือการแจกแจง
วิธีที่สองคือการกำหนดเงื่อนไขการระบุตัวตน

ในระหว่างการอภิปรายในบทความที่แล้ว ฉันพบว่าไม่ใช่ทุกคนที่เข้าใจอย่างชัดเจนถึงความแตกต่างระหว่างสองวิธีในการกำหนดองค์ประกอบของชุด ดังนั้นฉันจะบอกคุณเพิ่มเติมเกี่ยวกับพวกเขา

วิธีแรกจะขึ้นอยู่กับชุดคำสั่ง:

จานนี้เป็นส่วนหนึ่งของเซต A
เครื่องหมายเป็นส่วนหนึ่งของเซต A
ไม่มีใครเป็นส่วนหนึ่งของเซต A

วิธีที่สองคือคำสั่งในภาคแสดง:

สิ่งนั้นและวัตถุนั้นในห้องที่มีสติกเกอร์สีเหลืองเท่านั้นที่จะรวมอยู่ในชุด A

วิธีแรกในการอธิบายองค์ประกอบอาจเกี่ยวข้องกับแบบจำลองวัตถุใดก็ได้ ในคำอธิบายวิธีที่สอง โมเดลวัตถุต้องมีคุณลักษณะทั่วไปหนึ่งรายการ ซึ่งค่าจะกำหนดว่าวัตถุนั้นรวมอยู่ในชุดหรือไม่ นั่นคือ หากโมเดลออบเจ็กต์ไม่มีคุณลักษณะทั่วไป ก็เป็นไปไม่ได้ที่จะสร้างเงื่อนไขการระบุตัวตน

ในการอภิปราย มีการเสนอว่าการรวมไว้ในเซตโดยใช้การแจงนับควรทำให้มีคุณลักษณะ: “ส่วนหนึ่งของเซต A” ด้วย ดังนั้นวัตถุเหล่านั้นที่รวมอยู่ในเซต A มีค่าของคุณลักษณะนี้ "ใช่" จากนั้นจึงเสนอบนพื้นฐานของคุณลักษณะนี้ให้ทำเครื่องหมายเพื่อเลือกในชุด A เดียวกัน: วัตถุเหล่านั้นที่มีค่า "ใช่" จะรวมอยู่ในชุด A ผู้เขียนแนวคิดนี้ไม่ได้สังเกตว่าเนื่องจาก ผลลัพธ์ของข้อสรุปเชิงตรรกะจากข้อความทั้งสองนี้ทำให้เราได้รับสองคำซ้ำซาก:

ชุด A ประกอบด้วยวัตถุเหล่านั้นและเฉพาะวัตถุเหล่านั้นที่รวมอยู่ในชุด Aและ

วัตถุจะรวมอยู่ในชุด A ก็ต่อเมื่อวัตถุนั้นรวมอยู่ในชุด A เท่านั้น

ข้อความที่ชัดเจนเหล่านี้ไม่มีข้อมูลเกี่ยวกับวัตถุเฉพาะหรือเกี่ยวกับเซต A หากฉันหยิบจาน บนพื้นฐานของข้อความนี้ จะไม่สามารถระบุได้ว่าเป็นของเซต A หรือไม่

ดังนั้นการแจงนับและการปกครองจึงเป็นสองประการโดยพื้นฐาน วิธีการที่แตกต่างกันคำอธิบายองค์ประกอบของชุดและในทางคณิตศาสตร์จะระบุว่าเป็นวิธีหลักสองวิธีในการกำหนดองค์ประกอบของชุดที่แตกต่างกันโดยสิ้นเชิง

อย่างไรก็ตาม ครั้งหนึ่งมีการถกเถียงกันมานานเกี่ยวกับคำจำกัดความของฟังก์ชัน ข้อพิพาทนี้เกิดขึ้นเพราะพวกเขาไม่สามารถตัดสินใจได้ว่ากฎการระบุตัวตนใดที่ถือว่าถูกต้องและกฎใดที่ไม่ถูกต้อง เป็นผลให้แนวคิดของ Dirichlet ได้รับการยอมรับว่ากฎเกณฑ์ใด ๆ จะถือว่าถูกต้อง นั่นคือเหตุผลที่ฉันจะไม่พยายามจำแนกกฎทั้งหมด แต่ฉันจะพิจารณาเพียงไม่กี่ข้อที่เราต้องการในบริบทนี้

ในตำราเรียน กฎการระบุตัวตนมักเรียกว่ากฎการเลือก คำว่า "กฎการเลือก" ทำให้เข้าใจผิดเนื่องจากหมายถึงการดำเนินการคัดเลือกบางประเภท และนี่คือคำใบ้ว่าเซ็ตนี้อาจจะเติมได้ แต่นั่นไม่เป็นความจริง ชุดนี้มีองค์ประกอบคงที่ ดังนั้นจึงเป็นการดีกว่าที่จะไม่พูดถึงการเลือก แต่เกี่ยวกับการระบุตัวตน เราไม่ได้เลือกองค์ประกอบในชุด แต่เราระบุว่าเป็นองค์ประกอบของชุด

การกำหนดองค์ประกอบของเซตย่อย

มาดูกันว่าเราจะกำหนดองค์ประกอบของช้างแอฟริกาหลายตัวได้อย่างไร ฉันนับสี่วิธีที่แตกต่างกันในการทำเช่นนี้
  1. คุณสามารถกำหนดได้โดยการแจงนับ
  2. คุณสามารถติดสติกเกอร์บนช้างแล้วบอกว่าช้างที่มีสติกเกอร์อยู่บนนั้นถือเป็นช้างแอฟริกัน นี่คือการกำหนดองค์ประกอบของชุดผ่านคุณลักษณะ แอตทริบิวต์จะถือว่ามีหรือไม่มีสติกเกอร์
  3. คุณสามารถกำหนดองค์ประกอบได้โดยใช้จุดตัดของสองชุด: ชุดของช้างและชุดของสัตว์ที่อาศัยอยู่ในแอฟริกา
  4. คุณสามารถแนะนำแนวคิดเช่น "ช้างแอฟริกัน" ได้
เมื่อใช้ OWL ในการทำงานของเรา เรามีโอกาสที่จะใช้สามวิธีที่อธิบายไว้ข้างต้นเพื่อระบุเซ็ตย่อย:
  1. แสดงรายการอ็อบเจ็กต์ที่รวมอยู่ในเซ็ตย่อยอย่างชัดเจน
  2. กำหนดกฎการระบุผ่านเงื่อนไขใดๆ สำหรับคุณลักษณะใดๆ โดยมีการดำเนินการที่แตกต่างกัน ตั้งแต่ข้อเท็จจริงของการครอบครองค่าของคุณลักษณะไปจนถึงข้อเท็จจริงที่ว่าค่านี้อยู่ในช่วงที่กำหนด
  3. ระบุการดำเนินการกับชุดอื่น: ตัวอย่างเช่น ชุด A จะรวมเฉพาะออบเจ็กต์ที่รวมอยู่ในชุด B และไม่รวมอยู่ในชุด C
เพื่อให้เข้าใจว่าเราสามารถใช้วิธีที่สี่ในการระบุตัวตนโดยใช้ประเภทออบเจ็กต์ได้หรือไม่ เรามาดูกันดีกว่า

การสร้างแบบจำลองเซ็ตย่อยโดยใช้ประเภท

เพื่อกำหนดประเภทของ “ช้างแอฟริกา” ที่เราต้องการ:
  1. กลุ่มของวัตถุที่เราเลือกวัตถุสำหรับประเภทย่อย ใน ในกรณีนี้กลุ่มนี้มีชื่อ - นี่คือกลุ่มช้าง
  2. คุณสมบัติเฉพาะที่วัตถุประเภทนี้แตกต่างจากวัตถุอื่นในกลุ่ม: อาศัยอยู่ในแอฟริกา
  3. ชื่อเฉพาะสำหรับวัตถุ ประเภทนี้
คุณสามารถทำมันแตกต่างออกไปและนำสัตว์ที่อาศัยอยู่ในแอฟริกาเป็นกลุ่ม คุณสมบัติพิเศษที่ทำให้ช้างแอฟริกาแตกต่างจากสัตว์แอฟริกาอื่นๆ ก็คือสัตว์เหล่านี้คือช้าง

โดยรวมแล้ว เพื่อกำหนดประเภท คุณต้องมี:

  1. ระบุซูเปอร์เซตของออบเจ็กต์
  2. ระบุ คุณสมบัติที่โดดเด่น(คุณสมบัติเชิงอนุพันธ์) ของวัตถุประเภทที่กำหนดจากวัตถุของกลุ่ม
  3. ระบุชื่อของวัตถุประเภทนี้
นอกจากนี้ คุณยังสามารถระบุ:
  • สาเหตุที่ทำให้วัตถุประเภทนี้กลายเป็นที่ต้องการ (คุณสมบัติการทำงานเชิงอนุพันธ์ของวัตถุประเภทนี้
  • ประโยชน์ของการแนะนำวัตถุประเภทนี้
  • ประวัติความเป็นมาของคำนี้
ออบเจ็กต์ประเภทเดียวกันนั้นแตกต่างจากออบเจ็กต์อื่น ๆ ของซูเปอร์เซ็ตด้วยคุณสมบัติเฉพาะบางประการ คุณสมบัติเฉพาะนี้สามารถจำลองได้ตามเงื่อนไขใดๆ บนคุณลักษณะใดๆ แต่ไม่จำเป็นว่าค่าทั้งหมดของคุณลักษณะทั้งหมดจะตรงกันหรือองค์ประกอบของคุณลักษณะสำหรับวัตถุทั้งหมดที่เป็นประเภทเดียวกันจะเหมือนกัน

เมื่อรู้ว่าประเภทคืออะไร คุณอาจคิดว่าวิธีที่สี่ในการระบุชุดย่อยเกิดขึ้นพร้อมกับวิธีที่สอง อย่างไรก็ตาม ในการกำหนดประเภท อย่างน้อยที่สุดเราจะต้องระบุชื่อเฉพาะเพิ่มเติมและระบุคุณลักษณะอื่น ๆ ของประเภท เช่น ระบุเหตุผลในการเลือกวัตถุประเภทนี้ ประวัติ ของระยะ ฯลฯ ไม่สามารถทำได้โดยใช้วิธีที่สอง ดังนั้นวิธีที่สี่จึงแตกต่างจากวิธีที่สองและยังไม่ได้ใช้ในมาตรฐานการสร้างแบบจำลองที่ฉันรู้

ประเภทแนวคิด

ดังนั้น จากมุมมองของทฤษฎีเซต:

ประเภทเป็นวิธีหนึ่งในการเลือกเซ็ตย่อยจากซูเปอร์เซ็ตและกำหนดชื่อใหม่ให้กับออบเจ็กต์ของเซ็ตย่อยนี้

หากไม่มีซูเปอร์เซ็ต จะถือว่าประเภทนั้นเป็นสัจพจน์และไม่สามารถอนุพันธ์ได้ ดังที่ฉันได้กล่าวไปแล้ว แนวคิดของวัตถุและแนวคิดของเซตเป็นแนวคิดที่ไม่สามารถสืบทอดได้ เนื่องจากไม่สามารถให้ซูเปอร์เซ็ตของวัตถุได้

ความแตกต่างระหว่างประเภทวัตถุและชุดวัตถุ

จากการพูดคุยกันในบทความ ผมพบว่ามีคนที่เชื่อว่าประเภทของวัตถุและชุดของวัตถุเป็นอย่างใดอย่างหนึ่ง แนวคิดที่เกี่ยวข้องหรืออันเดียวกัน ฉันจะพยายามอธิบายว่าทำไมจึงไม่เป็นเช่นนั้น ประเภทเป็นทั้งกฎสำหรับการระบุวัตถุและชื่อของวัตถุเหล่านั้น นั่นคือประเภททำหน้าที่เชี่ยวชาญ (หรือเลือก) เซ็ตย่อยจากเซ็ตพร้อมกัน และตั้งชื่อใหม่ให้กับออบเจ็กต์พิเศษ

แต่ละประเภทจะกำหนดองค์ประกอบของชุด แต่ไม่ใช่ทุกชุดจะสอดคล้องกับประเภทที่กำหนดองค์ประกอบของชุด ตัวอย่างเช่น เมื่อเราพูดถึงชุดที่องค์ประกอบได้รับจากการแจกแจงองค์ประกอบ หรือเมื่อเราพูดถึงชุดที่มีองค์ประกอบต่างๆ ไม่มีชื่อของตนเอง

เป็นที่ชัดเจนว่ากฎที่กำหนดชุดไม่ใช่ชุดนั้นเอง

สำหรับฉันดูเหมือนว่าจากทั้งหมดที่กล่าวมา เป็นที่ชัดเจนว่าแนวคิดของ "ประเภทของวัตถุ" แตกต่างจากแนวคิดของ "ชุดของวัตถุ" อย่างไร

การสร้างแบบจำลองวัตถุที่คล้ายกัน

บ่อยครั้งใน IS วัตถุประเภทเดียวกันจะถูกสร้างแบบจำลองโดยใช้แบบจำลองที่มีชุดคุณลักษณะเดียวกัน ตอนนี้คุณสามารถเห็นสิ่งนั้นได้แล้ว ข้อจำกัดนี้ซ้ำซ้อน เนื่องจากวัตถุประเภทเดียวกันสามารถมีได้ ชุดที่แตกต่างกันคุณลักษณะ ข้อจำกัดนี้เกิดขึ้น คุณสมบัติทางเทคนิคการนำไปใช้งาน แต่ไม่ใช่ข้อกำหนด สาขาวิชา.

ใน IS รายการวัตถุประเภทเดียวกันมีเพิ่มมากขึ้น นี่แสดงให้เห็นองค์ประกอบที่แปรผันของชุดที่เรากำลังสร้างแบบจำลอง อย่างไรก็ตามนี่ไม่เป็นความจริง รายการออบเจ็กต์ที่ได้รับการลงทะเบียนใน IP ไม่ใช่รายการชุดทั้งหมด นั่นคือ IS ไม่ได้จัดเก็บแบบจำลองขององค์ประกอบทั้งหมดของชุด แต่จะเก็บเฉพาะแบบจำลองที่ลงทะเบียนไว้ในปัจจุบันเท่านั้น ดังนั้นเมื่อเราส่งคำขอ ความหมายของมันคือ: ให้ออบเจ็กต์ประเภทนี้ทั้งหมดที่ได้รับการลงทะเบียนใน IP แก่ฉัน

วงจรชีวิตของวัตถุ

นอกจากความจริงที่ว่าวัตถุนั้นสามารถจัดประเภทได้เป็น บางประเภทวัตถุมีอีกสองจุดที่ไม่ควรลืม:
  1. การจำแนกประเภท (การกำหนดวัตถุให้กับคลาสหรือประเภทของวัตถุบางประเภท) ถือเป็นอัตวิสัยเสมอ วัตถุเดียวกันอาจดูแตกต่างจากมุมมองที่ต่างกัน หากเรากำลังสร้างโมเดลโดเมนที่ขยายได้ การใช้งานที่เกี่ยวข้องกับการมีอยู่ของผู้มีส่วนได้ส่วนเสียที่แตกต่างกัน จะต้องเป็นไปได้ที่จะสร้างโมเดลบริบทและมุมมองที่แตกต่างกัน ยิ่งไปกว่านั้น จากมุมมองที่ต่างกัน วัตถุเดียวกันก็สามารถจำแนกได้เป็นประเภทที่ต่างกัน
  2. เมื่อคำนึงถึงวงจรชีวิตของวัตถุนั้นไม่เพียงแต่คำนึงถึงการเปลี่ยนแปลงในวัตถุเท่านั้น แต่ยังคำนึงถึงการเปลี่ยนแปลงในการรับรู้ของเราเกี่ยวกับวัตถุนี้ด้วย เนื่องจากเมื่อรวมกับกระบวนการสังเคราะห์และการวิเคราะห์แล้วยังมีกระบวนการของการคัดค้านและ de -การคัดค้าน
กระบวนการคัดค้านและการไม่คัดค้านมีลักษณะดังนี้:

การคัดค้าน

ด้วยแนวคิดประเภทต่างๆ เราจึงพยายามค้นหาวัตถุประเภทเหล่านี้ในโลกรอบตัวเรา วัตถุที่พบมักจะเป็นประเภทที่กว้างที่สุด ตัวอย่างเช่น ถ้า เรากำลังพูดถึงเกี่ยวกับองค์กร จากนั้นในขั้นตอนแรกวัตถุที่พบสามารถเกี่ยวข้องกับการดำเนินงาน ฟังก์ชัน และวัตถุได้ หรือหากเรากำลังพูดถึงพืช ก่อนอื่นเราจะแบ่งพวกมันออกเป็นต้นไม้ หญ้า และพุ่มไม้ จากนั้น ประเภทของวัตถุจะถูกทำให้กระจ่างขึ้นโดยการทดสอบสมมติฐานต่างๆ ในกระบวนการชี้แจง เรากำลังพยายามค้นหาประเภทที่บอกเราเกี่ยวกับวัตถุได้อย่างเพียงพอ เพื่อให้ความรู้นี้สามารถนำไปใช้ในทางปฏิบัติได้อย่างมีประสิทธิภาพ (เรากำลังพยายามค้นหาประเภทที่แคบกว่าซึ่งสามารถนำมาประกอบกับวัตถุนี้ได้) ในกระบวนการปรับแต่ง โมเดลออบเจ็กต์จะได้รับรายละเอียดใหม่ ในขณะเดียวกัน เราก็ใช้ความรู้ของเราเกี่ยวกับวัตถุนี้ในทางปฏิบัติ หากการประยุกต์ใช้ความรู้นี้ประสบความสำเร็จ วัตถุนั้นจะถือว่าได้มาอย่างถูกต้องและจำแนกประเภทได้อย่างถูกต้อง (เลือกประเภทวัตถุอย่างถูกต้อง)

การไม่คัดค้าน

อย่างไรก็ตามทุกอย่างเปลี่ยนไป: ความคิดเกี่ยวกับโลกรอบตัวเราเปลี่ยนไปความรู้ใหม่ ๆ ปรากฏขึ้น ฯลฯ ผลที่ตามมาก็คือแบบจำลองของวัตถุไม่สามารถตอบสนองความต้องการของยูทิลิตี้ได้ แล้วก็เช่นกัน ความเชี่ยวชาญเฉพาะทางที่แคบวัตถุนั้นกลายเป็นศัตรูของมันเอง วัตถุอยู่ภายใต้การจัดประเภทใหม่ (แอปพลิเคชันกลายเป็นความต้องการ) และบางครั้งก็ถูกทำลายโดยสิ้นเชิงเช่นเดียวกับอีเทอร์หรือแคลอรี่ที่ถูกทำลาย จากนั้นวงจรก็เริ่มต้นใหม่อีกครั้ง: การเลือกวัตถุ ชี้แจงความรู้เกี่ยวกับสิ่งเหล่านั้น ฯลฯ

กรณีศึกษา:

วัตถุประสงค์:

ให้ลูกค้ามายื่นใบสมัคร จนกว่าคำสั่งจะถูกดำเนินการ เราจะรู้ได้เฉพาะประเภทของมันด้วยความน่าจะเป็นระดับหนึ่งเท่านั้น ดังนั้นการสมัครประเภทที่กว้างที่สุดจึงต้องลงทะเบียนก่อน จากนั้น เมื่อมีการชี้แจงรายละเอียดและอยู่ในขั้นตอนการดำเนินการ โมเดลแอปพลิเคชันจะได้รับคุณลักษณะใหม่ หลังจากผ่านไประยะหนึ่ง จะชัดเจนว่าแอปพลิเคชันนี้เป็นของแอปพลิเคชันประเภทใดและมีการจำแนกประเภทขั้นสุดท้าย

การปฏิเสธวัตถุ:

ให้เรามี สถานการณ์ทั่วไปค้นหาข้อมูลบนอินเทอร์เน็ต ปล่อยให้มันบอกว่าเมื่อใดก็ตามที่คุณต้องการค้นหาข้อมูลที่จำเป็นให้ใช้เครื่องมือค้นหาดังกล่าว - โปรแกรมค้นหา ข้อมูลที่จำเป็น- ให้เราใช้โปรแกรมนี้หลายๆ ครั้ง แต่ละครั้งจะทำการค้นหา มีการดำเนินการดังกล่าวมากมายในระหว่างการทำงานของโปรแกรมนี้ และทั้งหมดถูกจัดประเภทเป็นการดำเนินการประเภท "การค้นหาข้อมูล" หลังจากนั้นไม่นานปรากฎว่าโปรแกรมเครื่องมือค้นหาทำหน้าที่สอดแนมโดย "รั่วไหล" ข้อมูลเกี่ยวกับผู้ใช้ไปยังผู้ที่สนใจข้อมูลนี้ แล้วปรากฎว่าการดำเนินการเหล่านั้นที่เครื่องมือค้นหานี้ใช้จะถูกจัดประเภทใหม่จากการดำเนินการดึงข้อมูลเป็นการดำเนินการถ่ายโอนข้อมูล ผู้มีส่วนได้เสีย- แต่อาจเป็นไปได้ว่าเราจะเรียนรู้บางอย่างเพิ่มเติมเกี่ยวกับโปรแกรมนี้ จากนั้นเราจะต้องพิจารณาการดำเนินการอื่น ๆ ที่เข้าร่วมอีกครั้ง

ข้อกำหนดสำหรับประเภทการสร้างโมเดลของผู้สร้างโมเดล

ให้เรากำหนดข้อกำหนดสำหรับผู้สร้างโมเดลที่ออกแบบมาเพื่อประเภทโมเดล:

  1. จำเป็นต้องสามารถสร้างแบบจำลองวัตถุประเภทเดียวกันซึ่งมีองค์ประกอบของคุณลักษณะไม่ตรงกัน
  2. คุณต้องสามารถสร้างโมเดลกฎที่แยกออบเจ็กต์ออกเป็นประเภทเดียวได้
  3. ความจำเป็นในการสร้างแบบจำลองคุณลักษณะอื่นๆ ของประเภท: ชื่อของวัตถุในประเภทที่กำหนด ประวัติของชื่อนี้ ฯลฯ
  4. จะต้องสามารถจำลองได้ จุดที่แตกต่างกันมุมมองของวัตถุเดียวกัน
  5. จะต้องสามารถจำลองได้ วงจรชีวิตวัตถุ
  6. จำเป็นต้องสามารถสร้างแบบจำลองการเปลี่ยนแปลงความเข้าใจของเราเกี่ยวกับวัตถุเมื่อเวลาผ่านไป

อุตสาหกรรมไอทีจะปฏิบัติตามข้อกำหนดเหล่านี้โดยไม่ต้องอาศัยโครงสร้างฐานข้อมูลได้อย่างไร โดยไม่คำนึงถึงโครงสร้างข้อมูลจะคำนึงถึงมุมมองที่แตกต่างกันเพิ่มวัตถุประเภทใหม่ชี้แจงประเภทของวัตถุจัดประเภทวัตถุใหม่หากจำเป็นได้อย่างไร

การสร้างแบบจำลองวัตถุด้วย OWL

มีข้อจำกัดประการหนึ่งที่มีอยู่ใน OWL: มันไม่ได้แยกความแตกต่างระหว่างชุดและประเภทของออบเจ็กต์ ด้วยเหตุนี้ เราจึงมีฟังก์ชันการทำงานที่จำกัดสำหรับการสร้างแบบจำลองประเภทออบเจ็กต์ อย่างไรก็ตาม ฟังก์ชันการทำงานนี้กว้างกว่าวิธีการสร้างแบบจำลองอื่นๆ ที่ให้ไว้มาก เนื่องจากเรามีความสามารถดังต่อไปนี้:
  • การเพิ่มชุดวัตถุใหม่ให้กับ OWL ก็ไม่ต่างจากการเพิ่มวัตถุใหม่
  • สามารถเรียกร้องได้ว่าหากทราบประเภทของวัตถุ แบบจำลองของวัตถุจะถูกสร้างขึ้นด้วยคุณลักษณะที่กำหนดและรู้จักก่อนหน้านี้ นอกจากนี้ หลังจากสร้างแล้ว คุณสามารถเพิ่มหรือลบแอตทริบิวต์ได้ ตัวอย่าง: เมื่อสร้างแบบจำลองแอปพลิเคชัน เราอาจจำเป็นต้องระบุค่าแอตทริบิวต์ (หมายเลขแอปพลิเคชัน, วันที่สมัคร, ผู้สมัคร, ผู้รับ) คุณเพียงแค่ต้องจำไว้ว่าคุณลักษณะเหล่านี้ใน OWL นั้นแยกจากประเภทวัตถุ และสามารถใช้แอตทริบิวต์หนึ่งรายการเมื่อสร้างแบบจำลองวัตถุของชุดต่างๆ นี้ ความแตกต่างพื้นฐานจากภาษาโปรแกรมทั่วไปซึ่งมีแอตทริบิวต์อยู่ภายในออบเจ็กต์ประเภทเดียวเท่านั้น แอ็ตทริบิวต์อื่นในประเภทอื่น แม้จะมีชื่อเดียวกัน แต่ก็จะเป็นแอททริบิวต์ที่แตกต่างกัน
  • คุณสามารถกำหนดสิ่งที่ตรงกันข้าม: เพื่อกำหนดเซ็ตย่อยของออบเจ็กต์โมเดลตามคุณลักษณะของโมเดลออบเจ็กต์และความเป็นสมาชิกในซูเปอร์เซ็ต ในการทำเช่นนี้กฎจะเขียนว่าหากแบบจำลองของวัตถุที่เป็นของ superset บางตัวมีคุณสมบัติดังกล่าวและค่าของมันเป็นไปตามกฎบางอย่างวัตถุนั้นจะถูกกำหนดให้กับเซ็ตย่อยบางเซ็ตโดยอัตโนมัติ ดังนั้นด้วยความช่วยเหลือของกฎจึงจะนำสิ่งที่เรียกว่า "การจำแนกประเภทเป็ด" มาใช้ ตัวอย่างเช่น หากโมเดลคำขอมีค่าแอตทริบิวต์ " หมายเลขโทรศัพท์” และ “การเชื่อมต่อ” คือค่าของแอตทริบิวต์ “ประเภทของงานที่ดำเนินการ” จากนั้นแอปพลิเคชันจะถูกจัดประเภทเป็นแอปพลิเคชันสำหรับเชื่อมต่อหมายเลขโทรศัพท์โดยอัตโนมัติ

การแบ่งเซตออกเป็นเซตย่อย

ให้มีชุดของวัตถุ และให้ภารกิจคือการแบ่งชุดนี้ออกเป็นเจ็ดชุดย่อย ซึ่งแต่ละชุดจะมีสีของตัวเอง: “วัตถุสีแดง”, วัตถุสีเหลือง” ฯลฯ

การแบ่งเซตออกเป็นเซตย่อยสามารถทำได้หลายวิธี

  1. คุณสามารถแบ่งชุดออกเป็นชุดย่อยที่ไม่เป็นสมาชิกร่วมได้โดยการกระจายอ็อบเจ็กต์ออกเป็นชุดย่อยโดยการแจงนับ สร้างเซ็ตย่อยเจ็ดชุดและแสดงรายการออบเจ็กต์ที่เป็นของแต่ละเซ็ตย่อย
  2. สำหรับแต่ละชุดย่อย คุณสามารถสร้างประเภทย่อยของคุณเองได้ จากนั้นทั้งชุดสามารถแบ่งออกเป็นเจ็ดชุดย่อยโดยแนะนำประเภทย่อยเจ็ดประเภท: "ประเภทของวัตถุสีแดง", "ประเภทของวัตถุสีเหลือง" ฯลฯ แต่ละวัตถุสามารถนำมาประกอบกับประเภทใดประเภทหนึ่งที่ระบุไว้และพูดเช่นนี้ : วัตถุอยู่ในประเภทของวัตถุสีแดง
  3. คุณสามารถแยกซูเปอร์เซ็ตได้โดยใช้แอตทริบิวต์และค่าของมัน ตัวอย่างเช่น คุณสามารถป้อนแอตทริบิวต์ "สี" และค่าเจ็ดค่า: "สีแดง", "สีเหลือง" ฯลฯ จากนั้นชื่อของสีจะกลายเป็นคำคุณศัพท์สำหรับวัตถุและจะมีเสียงดังนี้ วัตถุสีแดง วัตถุสีเหลือง ฯลฯ
วิธีแรกใน OWL ดำเนินการโดยการสร้างคลาสที่แตกต่างกันเจ็ดคลาสและระบุอ็อบเจ็กต์ที่เป็นของคลาสเหล่านั้น

วิธีที่สองสามารถทำได้สามวิธี:

  1. โดยการสร้างชุดย่อยที่แยกจากกันซึ่งรวมเป็นหนึ่งประเภท แต่ประเภทต่างๆ ดังที่ฉันได้กล่าวไปแล้วนั้นไม่ได้ถูกสร้างแบบจำลอง วิธีนี้ไม่แตกต่างจากวิธีแยกการแจงนับ
  2. โดยใช้หนังสืออ้างอิง "ประเภทของวัตถุที่มีสี" ค่าซึ่งจะเป็นวัตถุที่สร้างแบบจำลองประเภท: "วัตถุสีแดง", "วัตถุสีเหลือง" ฯลฯ
  3. การใช้แอตทริบิวต์ที่เรียกว่า "ประเภทวัตถุ" ซึ่งค่าจะอยู่ในรูปแบบข้อความ: "ประเภทของวัตถุสีแดง", "ประเภทของวัตถุสีเหลือง" ฯลฯ
วิธีที่สามในการแบ่งชุดออกเป็นส่วนย่อยใน IS นั้นมีการจำลองสองวิธี:
  1. การใช้ไดเร็กทอรี "สี" ค่าซึ่งจะเป็นวัตถุที่สร้างโมเดลค่าแอตทริบิวต์: สีแดง สีเหลือง ฯลฯ
  2. การใช้แอตทริบิวต์ที่เรียกว่า "สี" ซึ่งค่าจะอยู่ในรูปแบบข้อความ: "สีแดง", "สีเหลือง" ฯลฯ
จะเห็นได้ว่าการแยกโดยใช้ประเภทและคุณลักษณะนั้นมีการสร้างแบบจำลองในลักษณะเดียวกันในสองกรณี แต่มี ชื่อที่แตกต่างกัน- แท้จริงแล้ว ความเป็นเจ้าของค่าแอตทริบิวต์ใน OWL นั้นถูกสร้างแบบจำลองโดยแฝดต่อไปนี้:

#วัตถุ #คุณลักษณะ #คุณค่า

สมาชิกชั้นเรียนมีดังนี้:

#object rdf:พิมพ์ #class

นั่นคือเราสามารถพูดได้ว่าความเป็นสมาชิกคลาสนั้นแสดงโดยใช้คุณลักษณะบริการพิเศษที่กำหนดในมาตรฐาน - rdf:type

แนวคิดคุณลักษณะ

ให้เรากำหนดคำสั่ง:

คุณลักษณะเป็นวิธีการแบ่งชุดของวัตถุออกเป็นส่วนย่อย ในกรณีนี้ แต่ละค่าแอตทริบิวต์จะสอดคล้องกับชุดย่อยเฉพาะ ซึ่งออบเจ็กต์มีแอตทริบิวต์ที่มีค่านั้น

การสร้างโมเดลชุดย่อยโดยใช้แอ็ตทริบิวต์

วิธีการสร้างแบบจำลองเซ็ตย่อยทั้งสามวิธีที่ระบุไว้ก่อนหน้านี้มีข้อดีและข้อเสียของตัวเอง ขึ้นอยู่กับบริบทและวิธีการนำไปใช้ที่เลือก

หากมีชุดย่อยไม่กี่ชุด คุณสามารถเลือกวิธีการแบ่งออกเป็นชุดย่อยและการใช้งานใดๆ ที่ระบุไว้ได้

หากมีเซตย่อยจำนวนมาก (ในขีดจำกัดอนันต์ เช่น เมื่อแต่ละเซตจัดกลุ่มออบเจ็กต์ที่มีความยาวเท่ากัน) ดังนั้นอย่างเป็นทางการจะคงสภาพต่อไปนี้:

  1. วิธีที่สามในประเภทโมเดลและ
  2. วิธีที่สองในการสร้างแบบจำลองแอตทริบิวต์
อย่างไรก็ตาม ฉันเขียนไว้ก่อนหน้านี้ว่าแต่ละประเภทจะต้องได้รับการตั้งชื่อ หากมีเซตย่อยจำนวนมาก (อนันต์) การตั้งชื่อให้แต่ละเซตย่อยนั้นไม่สมจริง ดังนั้นเราจึงไม่จำลองการแบ่งส่วนนี้โดยใช้ประเภท เราจำลองการแบ่งส่วนนี้ด้วยความช่วยเหลือของแอตทริบิวต์ซึ่งมีช่วงของค่าที่จะเป็นหนึ่งในชุดทั่วไป: ชุด ตัวเลขจริงชุดที่สร้างโมเดลไทม์ไลน์ ชุดของจำนวนธรรมชาติ ชุดสตริงที่มีความยาวจำกัด ฯลฯ คุณรู้จักประเภทข้อมูลหรือไม่?

คุณสามารถอ่านเกี่ยวกับวิธีแนะนำฟังก์ชันกับชุดย่อยได้ ไม่เพียงแต่เกี่ยวกับเรื่องนั้นเท่านั้น

บรรยายคุณลักษณะแสดงถึงข้อเท็จจริงที่แท้จริงของแต่ละคำอธิบายของวัตถุ ตัวอย่าง - ฟังก์ชันลอจิคัลองค์ประกอบวงจรดิจิตอล

หากค่าของแอตทริบิวต์เชิงอธิบายเปลี่ยนแปลง แสดงว่าลักษณะของอินสแตนซ์ออบเจ็กต์มีการเปลี่ยนแปลง แต่ออบเจ็กต์ยังคงเหมือนเดิม

ชี้คุณลักษณะที่ใช้ในการระบุชื่อหรือการกำหนดอินสแตนซ์

คุณลักษณะการชี้จะใช้เป็นตัวระบุวัตถุ

ตัวช่วยคุณลักษณะใช้เพื่อเชื่อมโยงอินสแตนซ์ของวัตถุหนึ่งกับอินสแตนซ์ของวัตถุอื่น ตัวอย่างเช่น ตัวอย่างของวัตถุ "Microcircuit" ที่มีอินสแตนซ์ของ "แผนภาพวงจรไฟฟ้า"

หากค่าของแอตทริบิวต์เสริมเปลี่ยนแปลง แสดงว่าอินสแตนซ์อื่นๆ ของออบเจ็กต์เกี่ยวข้องกันในขณะนี้

คำอธิบายของคุณลักษณะ

สำหรับแอ็ตทริบิวต์เชิงพรรณนา คำอธิบายจะระบุคุณลักษณะจริงที่สรุปเป็นแอ็ตทริบิวต์

ในกรณีนี้ ให้คำอธิบายดังนี้:

    แสดงรายการค่าที่เป็นไปได้ทั้งหมดที่แอตทริบิวต์สามารถรับได้

    การกำหนดกฎที่กำหนดว่าค่าใดที่อนุญาต

    การกำหนดช่วงของค่าที่เป็นไปได้

คำอธิบายของค่าของแอตทริบิวต์ที่ระบุจะกำหนดรูปแบบของตัวบ่งชี้และขอบเขตที่คุณลักษณะนั้นสามารถใช้เป็นตัวระบุได้

คำอธิบายของแอตทริบิวต์เสริมต้องมีคำอธิบายของความสัมพันธ์จริงที่กำหนดโดยแอตทริบิวต์

กฎคุณสมบัติ

ตั้งแต่ใด แบบจำลองข้อมูลที่สร้างโดยเราไม่ควรมีข้อผิดพลาดของข้อมูล (ข้อผิดพลาด) เมื่อต้องการทำเช่นนี้ จะต้องมุ่งมั่นที่จะเป็นแบบอย่างเชิงสัมพันธ์ กล่าวคือ ความสัมพันธ์ทั้งหมดระหว่างข้อมูลแบบจำลองข้อมูลจะต้องเป็นไปตามกฎของพีชคณิตเชิงสัมพันธ์

กฎแอตทริบิวต์ที่ 1

อินสแตนซ์ออบเจ็กต์หนึ่งค่ามีค่าเดียวสำหรับแต่ละแอตทริบิวต์ในเวลาที่กำหนด

กฎแอตทริบิวต์ที่ 2

แอตทริบิวต์จะต้องไม่มีโครงสร้างภายในใดๆ คุณลักษณะทั้งหมดนั้นเรียบง่าย

กฎแอตทริบิวต์ที่ 3

หากวัตถุมีตัวระบุแบบผสม เช่น ตัวระบุที่ประกอบด้วยมากกว่าหนึ่งแอตทริบิวต์ ดังนั้นแต่ละแอตทริบิวต์ที่ไม่รวมอยู่ในตัวระบุแบบผสมจะต้องระบุลักษณะของออบเจ็กต์ทั้งหมด และไม่ใช่ส่วนหนึ่งของมัน

ความสัมพันธ์ระหว่างวัตถุ

การเชื่อมต่อเป็นนามธรรมของชุดความสัมพันธ์ที่เกิดขึ้นอย่างเป็นระบบระหว่างวัตถุประเภทต่างๆ ในโลกแห่งความเป็นจริง

แต่ละความสัมพันธ์ในแบบจำลองข้อมูลจะถูกระบุโดยคู่ชื่อที่อธิบายความสัมพันธ์จากมุมมองของแต่ละออบเจ็กต์ที่เข้าร่วม

ตัวอย่าง: แผนภาพมีองค์ประกอบต่างๆ - องค์ประกอบต่างๆ เป็นส่วนหนึ่งของแผนภาพ

ความสัมพันธ์จะแสดงเป็นภาพกราฟิกด้วยเส้นแบ่งระหว่างองค์ประกอบที่เกี่ยวข้อง

ตัวอย่าง: มาดูวัตถุทางเศรษฐกิจกัน:

ความสัมพันธ์โดยตรงแบ่งออกเป็น:

    การเชื่อมต่อแบบไม่มีเงื่อนไข

    การเชื่อมต่อแบบมีเงื่อนไข

ในบรรดาการเชื่อมต่อแบบไม่มีเงื่อนไข การเชื่อมต่อพื้นฐานมี 3 ประเภท เหล่านี้คือการเชื่อมต่อ:

    แบบหนึ่งต่อหนึ่งคือความสัมพันธ์ที่อินสแตนซ์หนึ่งของวัตถุหนึ่งเชื่อมโยงกับอินสแตนซ์หนึ่งของวัตถุอื่น

    แบบหนึ่งต่อกลุ่มคือความสัมพันธ์ที่อินสแตนซ์หนึ่งของออบเจ็กต์เชื่อมโยงกับหนึ่งอินสแตนซ์หรือมากกว่าของออบเจ็กต์อื่น และแต่ละอินสแตนซ์ของออบเจ็กต์อื่นจะเชื่อมโยงกับอินสแตนซ์เดียวของออบเจ็กต์แรกเท่านั้น

    กลุ่มต่อกลุ่มคือความสัมพันธ์ที่อินสแตนซ์หนึ่งของออบเจ็กต์เชื่อมโยงกับหนึ่งอินสแตนซ์หรือมากกว่าของออบเจ็กต์อื่น และแต่ละอินสแตนซ์ของออบเจ็กต์อื่นเชื่อมโยงกับอินสแตนซ์หนึ่งหรือหลายรายการของอินสแตนซ์แรก

การเชื่อมต่อความสัมพันธ์ประเภทที่ 2 – การเชื่อมต่อแบบมีเงื่อนไข

การเชื่อมต่อแบบมีเงื่อนไขอาจมีอินสแตนซ์ของออบเจ็กต์ที่ไม่มีส่วนร่วมในการเชื่อมต่อ

เอ็น ตัวอย่างเช่น:

การเชื่อมต่อทั้งหมดจำเป็นต้องมีคำอธิบาย คำอธิบายประกอบด้วย:

    รหัสการสื่อสาร

    การกำหนดชื่อความสัมพันธ์ในแง่ของวัตถุที่เข้าร่วม

    ประเภทของการเชื่อมต่อ (ส่วนใหญ่และเงื่อนไข)

    คำชี้แจงถึงวิธีการเชื่อมต่ออย่างเป็นทางการ (เหตุใดเราจึงแนะนำการเชื่อมต่อนี้)

การทำให้การเชื่อมต่อเป็นทางการ (คำจำกัดความ) ประกอบด้วยการสร้างการเชื่อมต่อระหว่างอินสแตนซ์ของวัตถุ ทำได้โดยใช้วิธีการเสริม

หากวัตถุมีคุณลักษณะเสริม แสดงว่าความสัมพันธ์นั้นเป็นทางการแล้ว

เพื่อทำให้ความสัมพันธ์แบบหนึ่งต่อกลุ่มเป็นทางการ คุณลักษณะเสริมจะถูกตั้งค่าไว้ที่ด้านหลายด้าน

หากเรามีความสัมพันธ์แบบกลุ่มต่อกลุ่ม เพื่อไม่ให้ละเมิดกฎแอตทริบิวต์ที่ 3 เราจะสร้างออบเจ็กต์เสริม (เชื่อมโยง) ที่มีการอ้างอิงถึงตัวระบุของแต่ละอินสแตนซ์ที่เข้าร่วม

ความสัมพันธ์ที่เกิดขึ้นเนื่องจากการมีอยู่ของการเชื่อมต่ออื่น ๆ ระหว่างวัตถุเรียกว่า องค์ประกอบการเชื่อมต่อ

หากมีการสืบทอดในโมเดลข้อมูล ก็แสดงว่ามีชนิดย่อยและชนิดพิเศษ

Supertype เป็นวัตถุหลัก

ชนิดย่อยเป็นวัตถุลูก

แผนภาพ ER

โมเดลลอจิก

ในลักษณะทั่วไปการส่ง โมเดลเชิงตรรกะ DB คือการสร้าง ER-diagrams (เอนทิตี-ความสัมพันธ์ - เอนทิตี-ความสัมพันธ์) ในแบบจำลองนี้ เอนทิตีถูกกำหนดให้เป็นออบเจ็กต์ที่ไม่ต่อเนื่องซึ่งองค์ประกอบข้อมูลถูกจัดเก็บ และความสัมพันธ์จะอธิบายความสัมพันธ์ระหว่างสองออบเจ็กต์

ในตัวอย่างผู้จัดการตัวแทนการท่องเที่ยว มี 5 วัตถุประสงค์หลัก:

นักท่องเที่ยว

บัตรกำนัล

ความสัมพันธ์ระหว่างวัตถุเหล่านี้สามารถกำหนดได้ด้วยวิธีง่ายๆ:

นักท่องเที่ยวแต่ละคนสามารถซื้อบัตรกำนัลได้หนึ่งใบหรือหลายใบ

บัตรกำนัลแต่ละใบสอดคล้องกับการชำระเงิน (อาจมีการชำระเงินหลายครั้ง เช่น หากขายบัตรกำนัลด้วยเครดิต)

แต่ละทัวร์สามารถมีได้หลายฤดูกาล

ตั๋วนี้ขายสำหรับหนึ่งฤดูกาลของหนึ่งทัวร์

วัตถุและความสัมพันธ์เหล่านี้สามารถแสดงได้ แผนภาพเอ้อดังแสดงในรูปที่ 2

รูปที่ 3.2. แผนภาพ ER สำหรับแอปพลิเคชันฐานข้อมูลผู้จัดการตัวแทนการท่องเที่ยว

แบบจำลองนี้ได้รับการพัฒนาเพิ่มเติมโดยการกำหนดคุณลักษณะสำหรับแต่ละวัตถุ คุณลักษณะของวัตถุคือองค์ประกอบข้อมูลที่เกี่ยวข้องกับวัตถุเฉพาะที่ต้องได้รับการเก็บรักษาไว้ เราวิเคราะห์พจนานุกรมข้อมูลที่คอมไพล์ เลือกออบเจ็กต์และคุณลักษณะในนั้น และขยายพจนานุกรมหากจำเป็น คุณลักษณะสำหรับแต่ละวัตถุในตัวอย่างแสดงอยู่ในตารางที่ 2

ตารางที่ 3.2. วัตถุฐานข้อมูลและคุณลักษณะ

โปรดทราบว่ามีหลายรายการหายไป ละเว้นข้อมูลการลงทะเบียนที่กล่าวถึงใน ข้อกำหนดการทำงาน- คุณจะพิจารณาตัวเองอย่างไรและสรุปตัวอย่างที่เสนอได้อย่างไร แต่ที่สำคัญกว่านั้น คุณลักษณะที่จำเป็นในการเชื่อมต่อวัตถุระหว่างกันยังคงขาดหายไป องค์ประกอบข้อมูลเหล่านี้ไม่ได้แสดงในแบบจำลอง ER เนื่องจากในความเป็นจริงไม่ใช่คุณลักษณะ "ตามธรรมชาติ" ของออบเจ็กต์ มีการประมวลผลแตกต่างกันและจะถูกนำมาพิจารณาในแบบจำลองข้อมูลเชิงสัมพันธ์

โมเดลเชิงสัมพันธ์โดดเด่นด้วยการใช้กุญแจและความสัมพันธ์ มีความแตกต่างในบริบท ฐานสัมพันธ์เงื่อนไขเหล่านี้ ความสัมพันธ์ (ความสัมพันธ์) และความสัมพันธ์ (สคีมาข้อมูล) ความสัมพันธ์จะถือเป็นตารางสองมิติที่ไม่เรียงลำดับและมีแถวที่ไม่เกี่ยวข้องกัน สคีมาข้อมูลถูกสร้างขึ้นระหว่างความสัมพันธ์ (ตาราง) ผ่านแอตทริบิวต์ทั่วไปซึ่งเป็นคีย์



มีคีย์หลายประเภท และบางครั้งจะแตกต่างกันเพียงในแง่ของความสัมพันธ์กับคุณลักษณะและความสัมพันธ์อื่นๆ เท่านั้น คีย์หลักจะระบุแถวในความสัมพันธ์ (ตาราง) โดยไม่ซ้ำกัน และแต่ละความสัมพันธ์สามารถมีคีย์หลักได้เพียงคีย์เดียว แม้ว่าจะมีแอตทริบิวต์ที่ไม่ซ้ำกันมากกว่าหนึ่งรายการก็ตาม ในบางกรณี จำเป็นต้องมีแอตทริบิวต์มากกว่าหนึ่งรายการเพื่อระบุแถวในความสัมพันธ์ การรวบรวมคุณลักษณะเหล่านี้เรียกว่าคีย์ผสม ในกรณีอื่นๆ จะต้องสร้างคีย์หลักเป็นพิเศษ (สร้างขึ้น) ตัวอย่างเช่น ในความสัมพันธ์ "นักท่องเที่ยว" การเพิ่มตัวระบุนักท่องเที่ยวที่ไม่ซ้ำกัน (รหัสนักท่องเที่ยว) เป็นคีย์หลักของความสัมพันธ์นี้เพื่อจัดระเบียบการเชื่อมต่อกับความสัมพันธ์ฐานข้อมูลอื่นๆ

คีย์อีกประเภทหนึ่งที่เรียกว่าคีย์ภายนอกมีอยู่เฉพาะในแง่ของสคีมาข้อมูลระหว่างสองความสัมพันธ์เท่านั้น คีย์ต่างประเทศในความสัมพันธ์คือคุณลักษณะที่เป็นคีย์หลัก (หรือส่วนหนึ่งของคีย์หลัก) ในความสัมพันธ์อื่น เป็นแอตทริบิวต์แบบกระจายที่สร้างสคีมาข้อมูลระหว่างสองความสัมพันธ์ในฐานข้อมูล

สำหรับฐานข้อมูลที่ออกแบบ เราจะขยายแอตทริบิวต์ของวัตถุด้วยฟิลด์โค้ดดังนี้ คีย์หลักและใช้รหัสเหล่านี้ในความสัมพันธ์ฐานข้อมูลเพื่ออ้างถึงวัตถุฐานข้อมูลดังต่อไปนี้ (ตารางที่ 3)

ยังเร็วเกินไปที่จะพิจารณาว่าสคีมาฐานข้อมูลที่สร้างขึ้นเสร็จสมบูรณ์ เนื่องจากจำเป็นต้องมีการปรับมาตรฐาน กระบวนการที่เรียกว่าการทำให้เป็นมาตรฐานฐานข้อมูลเชิงสัมพันธ์ใช้เพื่อจัดกลุ่มแอ็ตทริบิวต์ ในรูปแบบพิเศษเพื่อลดความซ้ำซ้อนและการพึ่งพาการทำงาน

ตารางที่ 3.3. วัตถุ DB และคุณลักษณะที่มีเขตข้อมูลโค้ดเพิ่มเติม

2.1.2. คุณสมบัติของวัตถุ

คุณลักษณะคือค่าที่แสดงลักษณะของวัตถุในระดับเดียวกัน ตัวอย่างของคุณลักษณะ: หมวดหมู่, ยอดคงเหลือ, เครดิต (คุณสมบัติของออบเจ็กต์ของประเภทบัญชี); ชื่อ อายุ น้ำหนัก (คุณสมบัติของวัตถุในคลาสบุคคล) ฯลฯ

คุณลักษณะแตกต่างกันไป คุณสมบัติถาวร(ค่าคงที่) และ คุณลักษณะตัวแปร- คุณลักษณะคงที่จะระบุลักษณะของวัตถุในระดับเดียวกัน (เช่น หมายเลขบัญชี หมวดหมู่ ชื่อบุคคล ฯลฯ) ค่าปัจจุบันของตัวแปรแอตทริบิวต์จะแสดงลักษณะปัจจุบัน สถานะวัตถุ (เช่น ยอดคงเหลือในบัญชี อายุของบุคคล ฯลฯ) โดยการเปลี่ยนค่าของคุณลักษณะเหล่านี้ เราจะเปลี่ยนสถานะของวัตถุ

คุณลักษณะแสดงอยู่ในส่วนที่สองของสี่เหลี่ยมที่แสดงถึงคลาส (ดูรูปที่ 2.1) บางครั้งประเภทของแอตทริบิวต์จะถูกระบุ (หลังจากทั้งหมดแต่ละแอตทริบิวต์เป็นค่าที่แน่นอน) และค่าเริ่มต้นของแอตทริบิวต์ตัวแปร (ชุดค่าเริ่มต้นของคุณลักษณะเหล่านี้จะระบุสถานะเริ่มต้นของวัตถุ)

ควรสังเกตว่าเมื่อเราพูดถึงวัตถุและคลาสของพวกมัน เราไม่ได้หมายถึงภาษาการเขียนโปรแกรมเชิงวัตถุใดๆ สิ่งนี้สะท้อนให้เห็นโดยเฉพาะในความจริงที่ว่า ในขั้นตอนนี้เมื่อพัฒนาระบบซอฟต์แวร์ คุณควรพิจารณาเฉพาะคุณลักษณะที่สมเหตุสมผลในความเป็นจริงเท่านั้น (คุณลักษณะทั้งหมดของออบเจ็กต์ของคลาสบัญชี - รูปที่ 2.1 - มีคุณสมบัตินี้) คุณสมบัติเชื่อมโยงกับคุณสมบัติ การใช้งานทั่วไป- ตัวอย่างเช่น หากคุณรู้ว่าคุณจะใช้ฐานข้อมูลที่แต่ละออบเจ็กต์มีตัวระบุที่ไม่ซ้ำกัน คุณไม่ควรรวมตัวระบุนี้ไว้ในคุณลักษณะของออบเจ็กต์ในขั้นตอนนี้ ความจริงก็คือโดยการแนะนำคุณลักษณะดังกล่าว เราจะจำกัดความเป็นไปได้ของการนำระบบไปใช้ ดังนั้น ด้วยการแนะนำตัวระบุเฉพาะของออบเจ็กต์ในฐานข้อมูลเป็นคุณลักษณะ ในช่วงเริ่มต้นของการออกแบบ เราจึงปฏิเสธที่จะใช้ DBMS ที่ไม่สนับสนุนตัวระบุดังกล่าว