การใช้งานที่มั่นคงของทฤษฎีหมวดหมู่ใน TCS?


103

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

ฉันมีความเข้าใจที่คลุมเครือว่าทฤษฎีหมวดหมู่มีประโยชน์ในด้านการเขียนโปรแกรมภาษา / ตรรกะ ("ทฤษฎี B") และฉันสงสัยว่าอัลกอริทึมและความซับซ้อน ("ทฤษฎี A") จะมีประโยชน์มากเพียงใด มันอาจช่วยให้ฉันลงจากพื้นได้ถ้าฉันรู้ว่ามีการใช้งานที่เป็นของแข็งของทฤษฎีหมวดหมู่ในทฤษฎี B. (ฉันอยู่แล้วโดยปริยายสมมติว่าไม่มีการใช้งานในทฤษฎี A ที่พบจนถึงตอนนี้ แต่ถ้าคุณมีบางอย่างนั้น ดีกว่าสำหรับฉัน!)

โดย "แอปพลิเคชันแข็ง" ฉันหมายถึง:

(1) แอปพลิเคชันขึ้นอยู่กับทฤษฎีหมวดหมู่เป็นอย่างมากซึ่งทำได้ยากมากโดยไม่ต้องใช้เครื่องจักร

(2) แอปพลิเคชันจะเรียกใช้อย่างน้อยหนึ่งทฤษฎีที่ไม่น่าสนใจของทฤษฎีหมวดหมู่ (เช่นบทแทรกของ Yoneda)

อาจเป็นไปได้ว่า (1) หมายถึง (2) แต่ฉันต้องการตรวจสอบให้แน่ใจว่านี่เป็นแอปพลิเคชัน "ของจริง"

ในขณะที่ฉันมีพื้นหลัง "ทฤษฎี B" บางอย่างมันเป็นเวลานานดังนั้นการยกเลิกการพูดปดใด ๆ จะได้รับการชื่นชมมาก

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

คำตอบ:


79

ฉันสามารถคิดหนึ่งตัวอย่างที่ทฤษฎีประเภทได้รับโดยตรง "ใช้" ในการแก้ปัญหาเปิดในการเขียนโปรแกรมภาษา: Thorsten Altenkirch ปีเตอร์ Dybjer มาร์ติน Hofmann และฟิลสกอตต์"โดยปกติการประเมินผลสำหรับพิมพ์แคลคูลัสแลมบ์ดากับ coproducts" จากนามธรรมของพวกเขา: "เราแก้ปัญหาการตัดสินใจสำหรับแคลคูลัสแลมบ์ดาเพียงพิมพ์ด้วยผลรวมเลขฐานสองที่แข็งแกร่งเทียบเท่ากับคำว่าปัญหาสำหรับหมวดหมู่คาร์ทีเซียนฟรีปิดด้วยไบนารี coproducts วิธีการของเราขึ้นอยู่กับเทคนิคเชิงความรู้ที่เรียกว่า การแปลงการตีความไวยากรณ์เป็นรูปแบบ Sheaf ที่เหมาะสมและจากการแยกรูปแบบปกติที่ไม่ซ้ำกันที่เหมาะสม "

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

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

เมื่อไม่นานมานี้ (ทศวรรษที่ผ่านมา) คำอธิบายของเอฟเฟ็กต์ในแง่ของ monads นี้ได้รับการทบทวนจากมุมมองของการเชื่อมต่อเก่า (จัดตั้งขึ้นโดยนักทฤษฎีหมวดหมู่ในยุค 60) ระหว่าง monads และทฤษฎีพีชคณิต: ดู Martin Hyland และ John Power's , "หมวดหมู่ทฤษฎีเข้าใจของยูนิเวอร์แซพีชคณิตทฤษฎี Lawvere และ Monads" แนวคิดคือมุมมองของเอฟเฟ็กต์ monadic เข้ากันได้กับ (ในบางวิธีที่น่าสนใจมากขึ้น) มุมมองเกี่ยวกับพีชคณิตของเอฟเฟกต์นั้นเอฟเฟ็กต์นั้น (เช่นร้านค้า) สามารถอธิบายได้ในแง่ของการดำเนินงาน และสมการที่เกี่ยวข้อง (เช่น idempotency ของการอัพเดท) มีอาคารกระดาษเมื่อเร็ว ๆ นี้ในการเชื่อมต่อนี้โดย Paul-AndréMelliès "สภาพ Segal ตรงตามผลการคำนวณ"ซึ่งต้องอาศัยความคิดอย่างมากจาก"หมวดหมู่ทฤษฎีที่สูงขึ้น" (ตัวอย่างเช่นความคิดของ "โครงสร้างโยเนดะ" เป็นวิธีการจัดระเบียบความหมายของ presheaf)

อีกระดับที่เกี่ยวข้องกับตัวอย่างมาจากตรรกะเชิงเส้น ไม่นานหลังจากการแนะนำโดย Jean-Yves Girard ในยุค 80 (โดยมีจุดประสงค์เพื่อความเข้าใจที่ดีขึ้นของตรรกะเชิงสร้างสรรค์) การเชื่อมต่อที่มั่นคงกับทฤษฎีหมวดหมู่ได้ถูกจัดตั้งขึ้น สำหรับคำอธิบายของการเชื่อมต่อนี้บางส่วนให้ดูที่จอห์นและไมค์ Baez Stay ของ"ฟิสิกส์โทโพโลยีลอจิกและการคำนวณ: การ Rosetta Stone"

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


3
สวัสดีฉันคิดว่าหลังจากคำตอบที่ยอดเยี่ยมแล้วตัวแทนของคุณก็สูงพอที่จะเพิ่มลิงก์!
Suresh Venkat

ฉันประสบปัญหาเดียวกันกับมือใหม่ ฉันรอเพื่อให้คำตอบของฉันโหวตขึ้นจากนั้นฉันก็ใส่ลิงค์ คุณสามารถทำเช่นเดียวกัน ...
Andrej Bauer

10
ขอบคุณ! ขออภัยเกี่ยวกับข้อ จำกัด การเชื่อมโยงหลายมิติ ... หวังว่าจะมีวิธีที่จะบอกระบบ "yo, ฉัน Noam Zeilberger, ฉันชอบด้วยกฎหมาย"
Ryan Williams

เพิ่มลิงค์! ใช่มันเป็นนโยบายที่สมเหตุสมผลอย่างสมบูรณ์เพียงแค่ได้รับในบางครั้ง
Noam Zeilberger

46

การคำนวณควอนตัม

สิ่งที่น่าสนใจอย่างหนึ่งก็คือการประยุกต์ใช้หมวดหมู่ monoidal ต่าง ๆ เพื่อการคำนวณควอนตัม บางคนอาจแย้งว่านี่เป็นฟิสิกส์ แต่งานนี้ทำโดยคนในแผนกวิทยาศาสตร์คอมพิวเตอร์ กระดาษต้นในพื้นที่นี้เป็นความหมายหมวดหมู่ของโปรโตคอลควอนตัมโดยแซมสันเอบรัมสกี้และบ๊อบโคเคค; เอกสารล่าสุดจำนวนมากโดยAbramskyและCoeckeและคนอื่น ๆ ยังคงทำงานในทิศทางนี้

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

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

ทฤษฎีระบบ

FF สำหรับการให้เหตุผลเกี่ยวกับระบบที่อธิบายว่าเป็นถ่านหิน

การแปลงกราฟ

G1,G2Pe1:PG1e2:PG2G1G2G1G2P P

(L,K,R)LRKl:KLr:KRLKRKdKDdlGdk

ภาษาโปรแกรม (ผ่าน MathOverflow)

มีการประยุกต์ใช้ทฤษฎีหมวดหมู่มากมายในการออกแบบภาษาโปรแกรมและทฤษฎีภาษาโปรแกรม สามารถพบคำตอบมากมายได้ที่ MathOverflow https://mathoverflow.net/questions/3721/programming-languages-based-on-category-theory ) https://mathoverflow.net/questions/4235/relating-category-theory-to-programming-language-theory https://mathoverflow.net/questions/4235/relating-category-theory-to-programming-language-theory

Bigraphs - การคำนวณกระบวนการ

ในที่สุดก็มีbigraphsของ Milner ซึ่งเป็นกรอบทั่วไปสำหรับการอธิบายและการให้เหตุผลเกี่ยวกับระบบของตัวแทนที่มีปฏิสัมพันธ์ มันสามารถถูกมองว่าเป็นกรอบทั่วไปสำหรับการให้เหตุผลเกี่ยวกับจีบราส์กระบวนการและทฤษฎีโครงสร้างและพฤติกรรม วิธีการนี้ยังขึ้นอยู่กับ pushouts


35

ฉันอยู่แล้วโดยปริยายสมมติว่าไม่มีแอปพลิเคชันใน Theory A ที่พบ แต่ถ้าคุณมีบางส่วนมันก็ดีกว่าสำหรับฉัน!

  • ความเข้าใจของฉันคือทฤษฎีของเผ่าพันธุ์ Joyal ใช้กันอย่างแพร่หลายใน combinatorics นับเป็นการวางนัยทั่วไปของการสร้างฟังก์ชั่นซึ่งยังบอกคุณถึงวิธีการเปลี่ยนแปลงสิ่งต่าง ๆ นอกเหนือจากที่มีอยู่มากมาย

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

  • Roland Backhouse ให้อัลกอริทึมโลภที่เป็นนามธรรมโดยใช้การเชื่อมต่อของ Galois กับ semiring เขตร้อน

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

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

ABABA

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

การเชื่อมต่อกับมัดเกิดขึ้นจากความจริงที่ว่าเรามักจะต้องให้เหตุผลเกี่ยวกับคำที่เปิด (เช่นคำที่มีตัวแปรอิสระ) และจำเป็นต้องแยกแยะระหว่างการติดเนื่องจากข้อผิดพลาดและการติดเนื่องจากต้องการลดตัวแปร เกิดขึ้นจากการพิจารณาการลดลงของแคลคูลัสแลมบ์ดาเมื่อกำหนด morphisms ของหมวดหมู่ซึ่งเป็นเงื่อนไขของวัตถุ (กล่าวคือคำสั่งบางส่วนที่เกิดจากการลดลง) แล้วพิจารณาจาก functors ประเภทนี้เข้าชุด (กล่าวคือ predicates) Jean Gallier เขียนบทความดีๆเกี่ยวกับเรื่องนี้ในต้นปี 2000 แต่ฉันสงสัยว่าพวกเขาอ่านได้เว้นแต่คุณจะหลอมรวมแลมบ์ดาแคลคูลัสจำนวนพอสมควรแล้ว


1
คุณสามารถให้การอ้างอิงไปยังกระดาษ Backhouse ได้หรือไม่? เขามีหลายอย่างที่พูดถึง "การเชื่อมต่อ Galois" ในชื่อเรื่อง แต่การค้นหาอย่างรวดเร็วไม่ชัดเจนว่าเป็นอันใดเกี่ยวกับอัลกอริทึมโลภ (และฉันไม่คิดว่าฉันคุ้นเคยกับพื้นที่ที่จะลุยผ่านรายละเอียดและรูปภาพ ง่าย ๆ อันไหนเกี่ยวกับอัลกอริทึมโลภ) ขอบคุณ!
Joshua Grochow

1
นอกเหนือจากคำถามของโจชัวแล้วฉันยังสนใจว่านางแบบและความสัมพันธ์เชิงตรรกะเกี่ยวข้องกับการพิสูจน์ตามธรรมชาติอย่างไร
Ryan Williams

Re: Stone duality สำหรับผลงานล่าสุดที่น่าตื่นเต้นดู "Stone duality และภาษาที่เป็นที่รู้จักของพีชคณิต" ( math.ru.nl/~mgehrke/Ge09.pdf ) และ Gehrke, Grigorieff และ Pin's "วิธีการเชิงรับรู้ "( math.ru.nl/~mgehrke/GGP10.pdf )
Noam Zeilberger

Re: Gallier คุณหมายถึงช่วงปลายยุค 90 (เหมือนในsciencedirect.com/science/article/pii/0304397594002800 ?)
Blaisorblade

24

มีตัวอย่างมากมายสิ่งแรกที่นึกได้คือการใช้ทฤษฎีหมวดหมู่ของอเล็กซ์ซิมป์สันเพื่อพิสูจน์คุณสมบัติของภาษาการเขียนโปรแกรมดูเช่น " ความเพียงพอในการคำนวณสำหรับประเภทแบบเรียกซ้ำในรูปแบบของทฤษฎีเซต Intuitionistic ", พงศาวดารของตรรกะบริสุทธิ์และประยุกต์ , 130: 207-275, 2004 แม้ว่าชื่อเรื่องจะกล่าวถึงทฤษฎีที่ตั้งไว้เทคนิคก็เป็นหมวดหมู่ตามทฤษฎี ดูหน้าแรกของ Alex เพื่อดูตัวอย่างเพิ่มเติม


ขอบคุณสำหรับการอ้างอิง แต่โปรดทราบว่าฉันไม่ได้ถาม: "ผลลัพธ์ที่ได้รับจากการใช้ทฤษฎีหมวดหมู่ที่ไม่สามารถหาได้เป็นอย่างอื่น?"
Ryan Williams

จริงคุณไม่ได้ ฉันแก้ไขคำตอบของฉัน
Andrej Bauer

11

ฉันคิดว่าคุณกำลังถามคำถามสองข้อเกี่ยวกับการบังคับใช้ประเภท A และ Type B แยกกัน

ตามที่คุณทราบมีการใช้งานที่สำคัญมากมายของทฤษฎีหมวดหมู่ในการพิมพ์หัวข้อ B: ความหมายของภาษาโปรแกรม (monads, หมวดหมู่ปิดคาร์ทีเซียน), ตรรกะและการพิสูจน์ได้ (topoi, ความหลากหลายของตรรกะเชิงเส้น)

อย่างไรก็ตามดูเหมือนว่าจะมีแอพพลิเคชั่นสำคัญ ๆ สำหรับทฤษฎี A (อัลกอริทึมหรือความซับซ้อน)

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

เก็งกำไรมันอาจจะไม่ตรงกันระหว่างกลยุทธ์ปัจจุบันของทฤษฎีหมวดหมู่และวิชา A:

  • กลยุทธ์หลักของทฤษฎีหมวดหมู่คือการจัดการกับความเท่าเทียมกัน (เมื่อสิ่งต่าง ๆ เหมือนกันและเมื่อพวกเขาแตกต่างกันและวิธีที่พวกเขาแผนที่ซึ่งกันและกัน)

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

  • สำหรับอัลกอริทึมนั้นไม่มีกลยุทธ์ใดที่ครอบคลุมไปกว่าการคิดเชิง combinatorial แบบเฉพาะกิจ สำหรับบางโดเมนฉันคาดหวังว่าจะมีการสำรวจที่เป็นประโยชน์ (อัลกอริทึมสำหรับ algebras?) แต่ฉันยังไม่เห็นเลย


2
ปรากฎว่าการลดลงนั้นเกี่ยวข้องกับการจัดหมวดหมู่แบบใหม่ของการตีความ Dialectica ของ Goedel และความหมายของตรรกะเชิงเส้น ดู "คำถามและคำตอบ - Andreas Blass ของหมวดหมู่ที่เกิดขึ้นใน Linear ตรรกะทฤษฎีความซับซ้อนและทฤษฎีเซต" math.lsa.umich.edu/~ablass/qa.pdf
Neel Krishnaswami

3

แอปพลิเคชั่น "TCS-A" ที่อยู่ในใจของฉันคือสปีชีส์ combinatorial ของ Joyal (ภาพรวมของชุดพลังงานไปยัง functors เพื่ออธิบายวัตถุ combinatorial เช่นต้นไม้ฉากชุดมัลติเซ็ต ฯลฯ ) และการแปลง "เกมกระโดด" แบบเข้ารหัสโดยใช้ความสัมพันธ์ ตรรกะความน่าจะเป็นของ Hoare (Easycrypt, Certicrypt, งานของ Andreas Lochbihler) ในขณะที่หมวดหมู่ไม่ปรากฏโดยตรงในหลังพวกเขามีประโยชน์ในการพัฒนา logics พื้นฐาน (เช่น monads)

PS: เนื่องจากชื่อของฉันถูกกล่าวถึงในคำตอบแรก: การใช้ fibrations ของ groupoids เพื่อแสดง nonderivability ของสัจพจน์บางอย่างในทฤษฎีประเภทของ Martin-Löfโดย Thomas Streicher และตัวฉันเองก็สามารถใช้ทฤษฎีหมวดหมู่ "ที่มั่นคง" ได้ ในตรรกะหรือ "TCS-B")


3

หนังสือเล่มล่าสุดSeven Sketches in Compositionalityแสดงรายการการประยุกต์ใช้ทฤษฎีหมวดหมู่ในสาขาวิทยาศาสตร์คอมพิวเตอร์และวิศวกรรม ชื่นชมบทในฐานข้อมูลที่ผู้เขียนอธิบายการสืบค้นการรวมการโยกย้ายและการพัฒนาฐานข้อมูลโดยยึดตามโมเดลหมวดหมู่ ผู้เขียนใช้เวลานี้เพิ่มเติมและพัฒนาภาษา Categorical Query (CQL) และสภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE) ตามแบบจำลองหมวดหมู่ของฐานข้อมูล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.