डेटाबेस स्कीमा: Difference between revisions
No edit summary |
No edit summary |
||
(6 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Visual representation of database system relationships}} | {{Short description|Visual representation of database system relationships}} | ||
[[File:MediaWiki 1.28.0 database schema.svg|thumb|upright=1.32|[[मीडियाविकि]] 1.28.0 डेटाबेस स्कीमा। कई [[FOSS]] सॉफ़्टवेयर उपकरण इस तरह | [[File:MediaWiki 1.28.0 database schema.svg|thumb|upright=1.32|[[मीडियाविकि]] 1.28.0 डेटाबेस स्कीमा। कई [[FOSS|फॉस]] सॉफ़्टवेयर उपकरण इस तरह डाटाबेस लेआउट/योजनाओं के मॉडलिंग की अनुमति देते हैं। दृश्य प्रतिनिधित्व को अधिकांशतः डीबी-संगत भाषाओं जैसे [[एसक्यूएल]] में बने उत्पादन-तैयार स्रोत कोड के रूप में भी निर्यात किया जा सकता है।]][[डेटाबेस]] स्कीमा [[औपचारिक भाषा]] में वर्णित डेटाबेस की संरचना है जो सामान्यतः [[ संबंधपरक डेटाबेस |संबंधपरक डेटाबेस]] मैनेजमेंट सिस्टम (आरडीबीएमएस) द्वारा समर्थित होती है। शब्द wikt:schema डेटा के संगठन को ब्लूप्रिंट के रूप में संदर्भित करता है कि डेटाबेस कैसे बनाया जाता है (रिलेशनल डेटाबेस के स्थिति में डेटाबेस तालिकाओं में विभाजित)। डेटाबेस स्कीमा की औपचारिक परिभाषा सूत्रों (वाक्यों) का सेट है जिसे डेटाबेस पर [[ईमानदारी की कमी|निर्माण]] कहा जाता है। ये अखंडता बाधाएँ स्कीमा के भागों के बीच अनुकूलता सुनिश्चित करती हैं। सभी बाधाओं को ही भाषा में अभिव्यक्त किया जाता है। [[डेटाबेस भाषा]] की प्राप्ति में डेटाबेस को संरचना माना जा सकता है।<ref name="source1" /> एक निर्मित [[वैचारिक स्कीमा]] की अवस्थाएँ स्पष्ट मानचित्रण, डेटाबेस स्कीमा में रूपांतरित हो जाती हैं। यह वर्णन करता है कि डेटाबेस में वास्तविक दुनिया की संस्थाओं को कैसे मॉडल किया जाता है। | ||
डेटाबेस स्कीमा निर्दिष्ट करता है, डेटाबेस व्यवस्थापक के संभावित अनुप्रयोगों के ज्ञान के आधार पर, वे तथ्य जो डेटाबेस में प्रवेश कर सकते हैं, या जो संभावित अंत-उपयोगकर्ताओं के लिए रुचि रखते हैं।<ref name="source3" />एक डेटाबेस स्कीमा की धारणा विधेय कलन में सिद्धांत की धारणा के समान भूमिका निभाती है। इस सिद्धांत का मॉडल डेटाबेस से निकटता से मेल खाता है, जिसे किसी भी समय [[गणितीय वस्तु]] के रूप में देखा जा सकता है। इस प्रकार स्कीमा में डेटा अखंडता का प्रतिनिधित्व करने वाले सूत्र सम्मिलित हो सकते हैं या विशेष रूप से किसी एप्लिकेशन के लिए अखंडता बाधाओं के प्रकार और विशेष रूप से प्रकार के डेटाबेस के लिए बाधाएं, सभी ही डेटाबेस भाषा में व्यक्त की जाती हैं।<ref name="source1" /> एक [[ संबंध का डेटाबेस |संबंध का डेटाबेस]] में, स्कीमा [[ तालिका (डेटाबेस) |तालिका (डेटाबेस)]] , [[ क्षेत्र (कंप्यूटर विज्ञान) |क्षेत्र (कंप्यूटर विज्ञान)]] , [[ संबंधपरक मॉडल |संबंधपरक मॉडल]] , [[ देखें (डेटाबेस) |देखें (डेटाबेस)]] , [[ सूचकांक (डेटाबेस) |सूचकांक (डेटाबेस)]] , [[ सॉफ्टवेयर पैकेज (स्थापना) |सॉफ्टवेयर पैकेज (स्थापना)]] , [[संग्रहीत प्रक्रिया]]ओं, [[सबरूटीन]]्स, क्यू (डेटा) को परिभाषित करता है। संरचना) [[डेटाबेस ट्रिगर]], [[डेटा प्रकार]], [[अनुक्रम]], [[भौतिक दृश्य]], [[समानार्थी (डेटाबेस)]], डेटाबेस लिंक, [[निर्देशिका (फाइल सिस्टम)]], [[एक्सएमएल स्कीमा]], और अन्य तत्व सम्मिलित है। | |||
एक डेटाबेस सामान्यतः अपनी स्कीमा को [[डेटा शब्दकोश]] में संचय करता है। चूँकि स्कीमा को टेक्स्ट डेटाबेस भाषा में परिभाषित किया गया है, इसी प्रकार से इस शब्द का प्रयोग अधिकांशतः डेटाबेस संरचना के ग्राफिकल चित्रण को संदर्भित करने के लिए किया जाता है। जबकि दूसरे शब्दों में, स्कीमा डेटाबेस की संरचना है जो डेटाबेस में वस्तुओं को परिभाषित करती है। | एक डेटाबेस सामान्यतः अपनी स्कीमा को [[डेटा शब्दकोश]] में संचय करता है। चूँकि स्कीमा को टेक्स्ट डेटाबेस भाषा में परिभाषित किया गया है, इसी प्रकार से इस शब्द का प्रयोग अधिकांशतः डेटाबेस संरचना के ग्राफिकल चित्रण को संदर्भित करने के लिए किया जाता है। जबकि दूसरे शब्दों में, स्कीमा डेटाबेस की संरचना है जो डेटाबेस में वस्तुओं को परिभाषित करती है। | ||
Line 9: | Line 9: | ||
ओरेकल डाटाबेस सिस्टम में स्कीमा शब्द का थोड़ा अलग अर्थ है। | ओरेकल डाटाबेस सिस्टम में स्कीमा शब्द का थोड़ा अलग अर्थ है। | ||
== स्कीमा एकीकरण के लिए आदर्श आवश्यकताएं == | == स्कीमा एकीकरण के लिए आदर्श आवश्यकताएं == | ||
नीचे सूचीबद्ध आवश्यकताएँ उत्पादित स्कीमा की विस्तृत संरचना को प्रभावित करती हैं। और इसमें | नीचे सूचीबद्ध आवश्यकताएँ उत्पादित स्कीमा की विस्तृत संरचना को प्रभावित करती हैं। और इसमें कुछ अनुप्रयोगों के लिए इन सभी नियमो को पूरा करने की आवश्यकता नहीं होगी, किंतु ये चार आवश्यकताएं सबसे आदर्श हैं। | ||
; ओवरलैप संरक्षण | ; ओवरलैप संरक्षण | ||
: इनपुट मैपिंग में निर्दिष्ट ओवरलैपिंग तत्वों में से प्रत्येक डेटाबेस स्कीमा संबंध में भी है।<ref name="source2" /> | : इनपुट मैपिंग में निर्दिष्ट ओवरलैपिंग तत्वों में से प्रत्येक डेटाबेस स्कीमा संबंध में भी है।<ref name="source2" /> | ||
Line 42: | Line 42: | ||
== ओरेकल डेटाबेस विशिष्टता == | == ओरेकल डेटाबेस विशिष्टता == | ||
ओरेकल डेटाबेस के संदर्भ में स्कीमा ऑब्जेक्ट लॉजिकल [[ डेटाबेस भंडारण संरचनाएं |डेटाबेस संचयन संरचनाएं]] है।<ref>{{cite book | ओरेकल डेटाबेस के संदर्भ में स्कीमा ऑब्जेक्ट लॉजिकल [[ डेटाबेस भंडारण संरचनाएं |डेटाबेस संचयन संरचनाएं]] है।<ref>{{cite book | ||
|first1 = Lance | |first1 = Lance | ||
Line 80: | Line 80: | ||
* संकुल | * संकुल | ||
दूसरी ओर, गैर-स्कीमा वस्तुओं में सम्मिलित | दूसरी ओर, गैर-स्कीमा वस्तुओं में सम्मिलित हो सकते हैं:<ref>{{cite book | ||
|first1= Lance | |first1= Lance | ||
|last1= Ashdown | |last1= Ashdown | ||
Line 101: | Line 101: | ||
* डायरेक्टरी ऑब्जेक्ट्स | * डायरेक्टरी ऑब्जेक्ट्स | ||
स्कीमा ऑब्जेक्ट्स में डिस्क पर भौतिक फ़ाइलों के लिए एक-से-एक पत्राचार नहीं होता है जो उनकी जानकारी संग्रहीत करता है। चूँकि ओरेकल डेटाबेस स्कीमा ऑब्जेक्ट्स को डेटाबेस के [[ टेबल-स्पेस |टेबल-स्पेस]] के अंदर तार्किक रूप से संग्रहीत करता है। प्रत्येक वस्तु का डेटा भौतिक रूप से टेबलस्पेस के या अधिक [[ डेटा फाइल |डेटा फाइल]] | स्कीमा ऑब्जेक्ट्स में डिस्क पर भौतिक फ़ाइलों के लिए एक-से-एक पत्राचार नहीं होता है जो उनकी जानकारी संग्रहीत करता है। चूँकि ओरेकल डेटाबेस स्कीमा ऑब्जेक्ट्स को डेटाबेस के [[ टेबल-स्पेस |टेबल-स्पेस]] के अंदर तार्किक रूप से संग्रहीत करता है। प्रत्येक वस्तु का डेटा भौतिक रूप से टेबलस्पेस के या अधिक [[ डेटा फाइल |डेटा फाइल]] में समाहित होता है। कुछ ऑब्जेक्ट्स (जैसे टेबल, इंडेक्स और क्लस्टर) के लिए डेटाबेस एडमिनिस्ट्रेटर यह निर्दिष्ट कर सकता है कि ओरेकल [[RDBMS|आरडीबीएमएस]] टेबलस्पेस के डेटाफाइल्स के अंदर ऑब्जेक्ट के लिए कितना डिस्क स्थान आवंटित करता है। | ||
स्कीमा और टेबलस्पेस के बीच कोई आवश्यक संबंध नहीं है: टेबलस्पेस में अलग-अलग स्कीमा से ऑब्जेक्ट हो सकते हैं, और स्कीमा के लिए ऑब्जेक्ट अलग-अलग टेबलस्पेस में रह सकते हैं। चूँकि ओरेकल डेटाबेस विशिष्टता गैर-समरूप अनुक्रम अंतरों की प्लेटफ़ॉर्म पहचान को प्रयुक्त करती है, जिसे वर्चुअलाइज्ड अनुप्रयोगों में महत्वपूर्ण सीमित कारक माना जाता है।<ref>{{cite journal |last1=McDougall |first1=R |title=Virtualization performance: perspectives and challenges ahead |journal=ACM SIGOPS Operating Systems Review |date=2010 |volume=44 |issue=4|doi=10.1145/1899928.1899933 |s2cid=16112550 }}</ref> | स्कीमा और टेबलस्पेस के बीच कोई आवश्यक संबंध नहीं है: टेबलस्पेस में अलग-अलग स्कीमा से ऑब्जेक्ट हो सकते हैं, और स्कीमा के लिए ऑब्जेक्ट अलग-अलग टेबलस्पेस में रह सकते हैं। चूँकि ओरेकल डेटाबेस विशिष्टता गैर-समरूप अनुक्रम अंतरों की प्लेटफ़ॉर्म पहचान को प्रयुक्त करती है, जिसे वर्चुअलाइज्ड अनुप्रयोगों में महत्वपूर्ण सीमित कारक माना जाता है।<ref>{{cite journal |last1=McDougall |first1=R |title=Virtualization performance: perspectives and challenges ahead |journal=ACM SIGOPS Operating Systems Review |date=2010 |volume=44 |issue=4|doi=10.1145/1899928.1899933 |s2cid=16112550 }}</ref> | ||
== यह भी देखें == | == यह भी देखें == | ||
* [[डेटा तत्व]] | * [[डेटा तत्व]] | ||
Line 132: | Line 129: | ||
* [https://web.archive.org/web/20080828210315/http://ciobriefings.com/Publications/WhitePapers/DesigningtheStarSchemaDatabase/tabid/101/Default.aspx Designing the Star Schema Database] | * [https://web.archive.org/web/20080828210315/http://ciobriefings.com/Publications/WhitePapers/DesigningtheStarSchemaDatabase/tabid/101/Default.aspx Designing the Star Schema Database] | ||
{{DEFAULTSORT:Database Schema}} | {{DEFAULTSORT:Database Schema}} | ||
[[Category: Machine Translated Page]] | [[Category:Created On 12/06/2023|Database Schema]] | ||
[[Category: | [[Category:Lua-based templates|Database Schema]] | ||
[[Category:Machine Translated Page|Database Schema]] | |||
[[Category:Pages with script errors|Database Schema]] | |||
[[Category:Templates Vigyan Ready|Database Schema]] | |||
[[Category:Templates that add a tracking category|Database Schema]] | |||
[[Category:Templates that generate short descriptions|Database Schema]] | |||
[[Category:Templates using TemplateData|Database Schema]] | |||
[[Category:डेटा प्रबंधन|Database Schema]] | |||
[[Category:मॉडलिंग की दिनांक|Database Schema]] | |||
[[Category:संबंधपरक मॉडल|Database Schema]] |
Latest revision as of 10:44, 30 June 2023
डेटाबेस स्कीमा औपचारिक भाषा में वर्णित डेटाबेस की संरचना है जो सामान्यतः संबंधपरक डेटाबेस मैनेजमेंट सिस्टम (आरडीबीएमएस) द्वारा समर्थित होती है। शब्द wikt:schema डेटा के संगठन को ब्लूप्रिंट के रूप में संदर्भित करता है कि डेटाबेस कैसे बनाया जाता है (रिलेशनल डेटाबेस के स्थिति में डेटाबेस तालिकाओं में विभाजित)। डेटाबेस स्कीमा की औपचारिक परिभाषा सूत्रों (वाक्यों) का सेट है जिसे डेटाबेस पर निर्माण कहा जाता है। ये अखंडता बाधाएँ स्कीमा के भागों के बीच अनुकूलता सुनिश्चित करती हैं। सभी बाधाओं को ही भाषा में अभिव्यक्त किया जाता है। डेटाबेस भाषा की प्राप्ति में डेटाबेस को संरचना माना जा सकता है।[1] एक निर्मित वैचारिक स्कीमा की अवस्थाएँ स्पष्ट मानचित्रण, डेटाबेस स्कीमा में रूपांतरित हो जाती हैं। यह वर्णन करता है कि डेटाबेस में वास्तविक दुनिया की संस्थाओं को कैसे मॉडल किया जाता है।
डेटाबेस स्कीमा निर्दिष्ट करता है, डेटाबेस व्यवस्थापक के संभावित अनुप्रयोगों के ज्ञान के आधार पर, वे तथ्य जो डेटाबेस में प्रवेश कर सकते हैं, या जो संभावित अंत-उपयोगकर्ताओं के लिए रुचि रखते हैं।[2]एक डेटाबेस स्कीमा की धारणा विधेय कलन में सिद्धांत की धारणा के समान भूमिका निभाती है। इस सिद्धांत का मॉडल डेटाबेस से निकटता से मेल खाता है, जिसे किसी भी समय गणितीय वस्तु के रूप में देखा जा सकता है। इस प्रकार स्कीमा में डेटा अखंडता का प्रतिनिधित्व करने वाले सूत्र सम्मिलित हो सकते हैं या विशेष रूप से किसी एप्लिकेशन के लिए अखंडता बाधाओं के प्रकार और विशेष रूप से प्रकार के डेटाबेस के लिए बाधाएं, सभी ही डेटाबेस भाषा में व्यक्त की जाती हैं।[1] एक संबंध का डेटाबेस में, स्कीमा तालिका (डेटाबेस) , क्षेत्र (कंप्यूटर विज्ञान) , संबंधपरक मॉडल , देखें (डेटाबेस) , सूचकांक (डेटाबेस) , सॉफ्टवेयर पैकेज (स्थापना) , संग्रहीत प्रक्रियाओं, सबरूटीन्स, क्यू (डेटा) को परिभाषित करता है। संरचना) डेटाबेस ट्रिगर, डेटा प्रकार, अनुक्रम, भौतिक दृश्य, समानार्थी (डेटाबेस), डेटाबेस लिंक, निर्देशिका (फाइल सिस्टम), एक्सएमएल स्कीमा, और अन्य तत्व सम्मिलित है।
एक डेटाबेस सामान्यतः अपनी स्कीमा को डेटा शब्दकोश में संचय करता है। चूँकि स्कीमा को टेक्स्ट डेटाबेस भाषा में परिभाषित किया गया है, इसी प्रकार से इस शब्द का प्रयोग अधिकांशतः डेटाबेस संरचना के ग्राफिकल चित्रण को संदर्भित करने के लिए किया जाता है। जबकि दूसरे शब्दों में, स्कीमा डेटाबेस की संरचना है जो डेटाबेस में वस्तुओं को परिभाषित करती है।
ओरेकल डाटाबेस सिस्टम में स्कीमा शब्द का थोड़ा अलग अर्थ है।
स्कीमा एकीकरण के लिए आदर्श आवश्यकताएं
नीचे सूचीबद्ध आवश्यकताएँ उत्पादित स्कीमा की विस्तृत संरचना को प्रभावित करती हैं। और इसमें कुछ अनुप्रयोगों के लिए इन सभी नियमो को पूरा करने की आवश्यकता नहीं होगी, किंतु ये चार आवश्यकताएं सबसे आदर्श हैं।
- ओवरलैप संरक्षण
- इनपुट मैपिंग में निर्दिष्ट ओवरलैपिंग तत्वों में से प्रत्येक डेटाबेस स्कीमा संबंध में भी है।[3]
- विस्तारित ओवरलैप संरक्षण
- स्रोत-विशिष्ट तत्व जो किसी स्रोत के अतिव्यापी तत्वों से जुड़े होते हैं, डेटाबेस स्कीमा के माध्यम से पारित किए जाते हैं।[3]
- मानकीकरण
- स्रोत डेटा में स्वतंत्र संस्थाओं और संबंधों को डेटाबेस स्कीमा में समान संबंध में साथ समूहीकृत नहीं किया जाना चाहिए। विशेष रूप से स्रोत विशिष्ट स्कीमा तत्वों को अतिव्यापी स्कीमा तत्वों के साथ समूहीकृत नहीं किया जाना चाहिए, यदि समूहीकरण स्वतंत्र संस्थाओं या संबंधों को सह-खोजता है।[3]
- न्यूनता
- यदि डेटाबेस स्कीमा के किसी भी तत्व को छोड़ दिया जाता है तो डेटाबेस स्कीमा आदर्श नहीं है।[3]
दो स्कीमा एकीकरण का उदाहरण
मान लीजिए कि हम दो यात्रा डेटाबेस गो-ट्रैवल और ओके-फ़्लाइट को एकीकृत करने के लिए एक मध्यस्थ स्कीमा चाहते हैं।
Go-flight(flight-number, time, meal(yes/no))
Go-price(flight-number, date, price)
Ok-flight
केवल संबंध है:
Ok-flight(flight-number, date, time, price, nonstop(yes/no))
गो-ट्रैवल और ओके-फ्लाइट के स्कीमा में अतिव्यापी जानकारी को मध्यस्थ स्कीमा में दर्शाया जा सकता है:[3]
Flight(flight-number, date, time, price)
ओरेकल डेटाबेस विशिष्टता
ओरेकल डेटाबेस के संदर्भ में स्कीमा ऑब्जेक्ट लॉजिकल डेटाबेस संचयन संरचनाएं है।[4]
ओरेकल डेटाबेस प्रत्येक डेटाबेस उपयोगकर्ता के साथ अलग स्कीमा जोड़ता है।[5] स्कीमा में स्कीमा ऑब्जेक्ट्स का संग्रह होता है। स्कीमा ऑब्जेक्ट्स के उदाहरणों में सम्मिलित हैं:
- टेबल (डेटाबेस)
- देखें (डेटाबेस)
- अनुक्रम
- पर्यायवाची (डेटाबेस)
- इंडेक्स (डेटाबेस)
- क्लस्टर
- डेटाबेस लिंक
- स्नैपशॉट
- प्रक्रियाओं
- कार्य
- संकुल
दूसरी ओर, गैर-स्कीमा वस्तुओं में सम्मिलित हो सकते हैं:[6]
- उपयोगकर्ता
- भूमिकाएँ
- प्रसंग
- डायरेक्टरी ऑब्जेक्ट्स
स्कीमा ऑब्जेक्ट्स में डिस्क पर भौतिक फ़ाइलों के लिए एक-से-एक पत्राचार नहीं होता है जो उनकी जानकारी संग्रहीत करता है। चूँकि ओरेकल डेटाबेस स्कीमा ऑब्जेक्ट्स को डेटाबेस के टेबल-स्पेस के अंदर तार्किक रूप से संग्रहीत करता है। प्रत्येक वस्तु का डेटा भौतिक रूप से टेबलस्पेस के या अधिक डेटा फाइल में समाहित होता है। कुछ ऑब्जेक्ट्स (जैसे टेबल, इंडेक्स और क्लस्टर) के लिए डेटाबेस एडमिनिस्ट्रेटर यह निर्दिष्ट कर सकता है कि ओरेकल आरडीबीएमएस टेबलस्पेस के डेटाफाइल्स के अंदर ऑब्जेक्ट के लिए कितना डिस्क स्थान आवंटित करता है।
स्कीमा और टेबलस्पेस के बीच कोई आवश्यक संबंध नहीं है: टेबलस्पेस में अलग-अलग स्कीमा से ऑब्जेक्ट हो सकते हैं, और स्कीमा के लिए ऑब्जेक्ट अलग-अलग टेबलस्पेस में रह सकते हैं। चूँकि ओरेकल डेटाबेस विशिष्टता गैर-समरूप अनुक्रम अंतरों की प्लेटफ़ॉर्म पहचान को प्रयुक्त करती है, जिसे वर्चुअलाइज्ड अनुप्रयोगों में महत्वपूर्ण सीमित कारक माना जाता है।[7]
यह भी देखें
- डेटा तत्व
- डेटा मैपिंग
- डेटा मॉडल
- डाटाबेस डिजाइन
- इकाई-संबंध मॉडल
- ज्ञान प्रतिनिधित्व और तर्क
- ऑब्जेक्ट-रोल मॉडलिंग
- ओलॉग
- स्कीमा मिलान
- तीन-स्कीमा दृष्टिकोण
संदर्भ
- ↑ 1.0 1.1 Rybinski, H. (1987). "On First-Order-Logic Databases". ACM Transactions on Database Systems. 12 (3): 325–349. doi:10.1145/27629.27630. S2CID 2439329.
- ↑ Imielinski, T.; Lipski, W. (1982). A systematic approach to relational database theory. pp. 8–14. doi:10.1145/582353.582356. ISBN 978-0897910736. S2CID 2034345.
{{cite book}}
:|journal=
ignored (help) - ↑ 3.0 3.1 3.2 3.3 3.4 Pottinger, P.; Berstein, P. (2008). Schema merging and mapping creation for relational sources. pp. 73–84. CiteSeerX 10.1.1.405.2990. doi:10.1145/1353343.1353357. ISBN 9781595939265. S2CID 15742995.
{{cite book}}
:|journal=
ignored (help) - ↑ Ashdown, Lance; Kyte, Tom (February 2010). Oracle Database Concepts 11g Release 2 (11.2). et al. Oracle Corporation. Archived from the original on January 29, 2010. Retrieved 2010-04-14.
A database schema is a logical container for data structures, called schema objects. Examples of schema objects are tables and indexes.
- ↑
Oracle Database Concepts 10g Release 2 (10.2)Part Number B14220-02. Retrieved 2012-11-26.
A schema is a collection of logical structures of data, or schema objects. A schema is owned by a database user and has the same name as that user. Each user owns a single schema. Schema objects can be created and manipulated with SQL.
- ↑ Ashdown, Lance; Kyte, Tom (February 2010). Oracle Database Concepts 11g Release 2 (11.2). et al. Oracle Corporation. Archived from the original on January 29, 2010. Retrieved 2010-04-14.
Other types of objects are also stored in the database and can be created and manipulated with SQL statements but are not contained in a schema. These objects include database users, roles, contexts, and directory objects.
- ↑ McDougall, R (2010). "Virtualization performance: perspectives and challenges ahead". ACM SIGOPS Operating Systems Review. 44 (4). doi:10.1145/1899928.1899933. S2CID 16112550.