वेब एसक्यूएल डेटाबेस क्यों निकाला जाता है?


86

मैं एक हाइब्रिड एंड्रॉइड ऐप बना रहा हूं।

सबसे पहले मैंने स्थानीयस्टोरेज का उपयोग करने का फैसला किया, 2 दिन बिताने के बाद, मुझे एहसास हुआ कि यह बहुत अजीब है और इसलिए इसे गिरा दिया।

फिर, मैंने आज का पूरा दिन बिताने के बाद indexedDB उठाया, और वास्तव में Google Chrome में आउटपुट प्राप्त करने के बाद, यह एंड्रॉइड ऐप के एक WebView के अंदर नहीं चल रहा है।

और मैंने वेब एसक्यूएल डेटाबेस का उपयोग कभी नहीं किया क्योंकि यह पदावनत किया गया था। किसी भी तरह, यह मेरी जानकारी में आया है कि PhoneGap अभी भी वेब एसक्यूएल और एंड्रॉइड के ब्राउज़र का उपयोग करता है।

वेब एसक्यूएल को पहले स्थान पर क्यों रखा गया? और अब वेब एसक्यूएल के साथ जाना मेरे लिए एक अच्छा विचार होगा?


3
आपको लोकलस्टोरेज के बारे में क्या अजीब लगा? यह सिर्फ एक कुंजी / मूल्य जोड़ी की दुकान है। मैं उत्सुक हूं कि आपको इसके बारे में क्या पसंद नहीं आया और आप किस प्रकार की समस्याओं में भाग गए। मैं इसे एक परियोजना में उपयोग कर रहा हूं और आपके द्वारा भागे गए मामले को जानना चाहूंगा।
jmq

1
@oligofren, यदि आप वेब SQL में अधिक से अधिक-बस-ब्रेन-डेड-सिम्पल SQL का उपयोग कर रहे हैं, तो आप बिलकुल इसे
लोकलस्टोरेज

2
लेकिन अपने आप को एक अमूर्त परत (जो मैंने किया था) बनाने की परेशानी से बचाएं, और अभी के लिए YDN-DB का उपयोग करें dev.yathit.com/ydn-db/index.html । यह उस डिवाइस के लिए सबसे अच्छा उपलब्ध तकनीक का उपयोग करेगा।
ओलिगोफ़्रेन

2
आप हमेशा किसी प्रकार की अमूर्त परत का उपयोग कर रहे हैं। यह प्रोग्रामिंग है और आप ब्राउज़र में कार्यान्वयन बग की परवाह किए बिना लगातार व्यवहार कैसे प्राप्त करते हैं। डमी जेएस कॉल 5000 प्रति एमएस से अधिक है, इसलिए जब तक वाईडीएन-डीबी के लेखक ने हास्यास्पद रूप से कुछ बेवकूफ नहीं किया है, आपको 100ms के आदेश के पास कहीं भी प्रदर्शन हिट नहीं मिलना चाहिए। 1: 1 ऑप्स के लिए 1ms की तरह अधिक, उन प्लेटफार्मों पर जो अनुक्रमणिका को मूल रूप से समर्थन नहीं करते हैं। जो, इस समय, केवल पुराने संस्करण हैं। सभी वर्तमान ब्राउज़र IndexedDB का समर्थन करते हैं। WebSQL को हटा दिया गया है। और इससे पहले कि आप टेक दूर करें "ऑप्टिमाइज़" :-)
ऑलिगॉफ्रेन

4
@oligofren, आपको मेरी टिप्पणी की बात याद आ रही है। मैं एक फ़ंक्शन के ओवरहेड के बारे में बात नहीं कर रहा हूं जो दूसरे और वाइसवर्स को बुला रहा है। मैं कह रहा हूं कि जब आप db एब्स्ट्रेक्शन लेयर का उपयोग करते हैं तो आप अपने आप को SQL क्वेरी पैटर्न के सबसेट तक सीमित कर लेते हैं, जिसे आप प्रदर्शन दंड से पीड़ित हुए बिना उपयोग कर सकते हैं। आप कोई ट्यूनिंग नहीं कर सकते हैं क्योंकि पुस्तकालय आपके लिए स्वचालित रूप से करता है और हमेशा इसे सही नहीं करता है। जब तक आप केवल 1 पंक्ति डेटा संग्रहीत नहीं करते हैं, तो यह 1ms नहीं होगा।
पचेरियर

जवाबों:


99

लघु संस्करण: वेब एसक्यूएल को हटा दिया गया क्योंकि मानक वास्तव में महत्वपूर्ण हैं और वेब एसक्यूएल को एक उचित मानक में बदलना निषेधात्मक रूप से कठिन होता।

चूंकि वेब एसक्यूएल के मौजूदा कार्यान्वयन मूल रूप से SQLite के आसपास रैपर हैं, इसलिए इसके मानक को परिभाषित करने का कोई भी प्रयास मूल रूप से "SQL जो करता है वह करता है।" यह काफी अच्छा नहीं है; एक मौजूदा मानक (विशेषकर SQLite जैसे तृतीय-पक्ष कार्यान्वयन) की ओर इशारा करने के बजाय इंटरफ़ेस और कॉर्नर मामलों और अपवादों को परिभाषित करने के लिए एक सच्चे मानक को आत्म-निहित होना चाहिए। अन्यथा, आप एक विशेष कार्यान्वयन के क्वार्क्स लेने और उन्हें मानक के रूप में सुनिश्चित करने के जोखिम को चलाते हैं। मैंने जो पढ़ा है, उससे W3C प्रस्तावित मानकों के कई स्वतंत्र कार्यान्वयन पसंद करता है ताकि यह सुनिश्चित हो सके कि ऐसा होता है; चूंकि वेब एसक्यूएल SQLite से इतना बंधा हुआ था, कि बस होने वाला नहीं था।

मोज़िला का ब्लॉग वेब एसक्यूएल का समर्थन नहीं करने के लिए विशेष रूप से उनके तर्क पर अधिक विवरण देता है; जाहिरा तौर पर वे वेब एसक्यूएल पदावनत होने में प्रमुख आवाजों में से एक थे।

क्या आपको अब वेब एसक्यूएल के साथ जाना चाहिए? मैं उन विक्रेताओं से यह उम्मीद नहीं करता कि वे वर्तमान में इसका समर्थन करते हैं (जैसे Google और Apple) इसे जल्द ही किसी भी समय छोड़ने के लिए, लेकिन IE और फ़ायरफ़ॉक्स इसे जोड़ नहीं पाएंगे, और चूंकि यह पदावनत है, इसलिए इसमें निवेश क्यों करें? (उदाहरण के लिए, Google डेवलपर संबंधों के साथ डायमंड्स ग्रीन , इसका उपयोग करने की अनुशंसा नहीं करता है।)


8
बर्ड्स की यह पोस्ट सुपर बेसिक है और इसमें सतह को खरोंच भी नहीं है कि एक या दूसरे का उपयोग क्यों करना चाहिए। तथ्य यह है कि, noSQL डेटाबेस को बड़े आकार को ध्यान में रखते हुए डिज़ाइन किया गया था, और यह कि उपयोगकर्ता के एकल कंप्यूटर पर चलने वाले डेटाबेस पर बस लागू नहीं होता है। आप बड़े डेटा के लिए प्रासंगिक कुछ लाभ प्राप्त कर सकते हैं, लेकिन आप JOINs जैसे सामान खो देते हैं। कोई तरीका नहीं है कि मैं अपने ओपन-सोर्स "प्लस फॉर ट्रेलो" क्रोम एक्सटेंशन को विकसित कर सकता था अगर मुझे इंडेक्सडीडीबी का उपयोग करना था (और मैं एपेंगिन में नोएससी डेटासटोर का उपयोग नहीं करता) तो मैं वेब एसक्यूएल के लिए चला गया।
जिग मंडेल

2
क्योंकि तब Google GMail MS-Outlook प्रतियोगी पूर्ण-खोज कर सकता था, और क्योंकि "आलिंगन, विस्तार, बहिष्कृत" तब संभव नहीं है जब केवल एक SQLite कार्यान्वयन (MS) हो, और क्योंकि जोनास सिटिंग (मोज़िला) SQL की तरह है। ओवरकमप्लेट किए गए इंटरफ़ेस के साथ कुंजी मूल्य स्टोर निश्चित रूप से बेहतर हैं (हाइप में उर्फ), खासकर जब से प्रत्येक जावास्क्रिप्ट ऑब्जेक्ट पहले से ही एक सहयोगी सरणी है। और चलो इसका सामना करते हैं, डेटा सामान्यीकरण, संदर्भात्मक अखंडता और सेट-आधारित संचालन वास्तव में किसी ऐसे व्यक्ति के लिए विद्रोह कर रहे हैं जो (चाहते हैं) SQL को नहीं समझते हैं, उर्फ ​​"उपयोगकर्ता SQL नहीं चाहते हैं"।
क्वैन्ड्री जूल

3
विडंबना यह है कि अगर आप वास्तव में वही करना चाहते हैं जो SQLite के साथ बातचीत करने के लिए WebSQL एकदम सही है (और आपको PRAGMA की आवश्यकता नहीं है)।
माइकल

4
इसलिए मोज़िला ने एक परियोजना और एक तकनीक को मार दिया, जो कई स्थितियों में बेहद उपयोगी थी, क्योंकि कुछ लोगों को यह पसंद नहीं आया और लोगों ने उनका बचाव किया। क्यों? वे BOTH IndexedDB और WebSQL
yoyo_fun

1
Safari 13 ने अब WebSQL के लिए समर्थन हटा दिया है जो पहले के संस्करणों में था।
थंडरफेज

17

जोश केली का जवाब अब तक का सबसे अच्छा जवाब है, जो मैंने मानक कार्य को रोकने के कारण के बारे में पाया है। उस ने कहा, मुझे लगता है कि उपयोगकर्ता-आधार के संबंध में विचार करने के लिए एक अतिरिक्त परिप्रेक्ष्य है।

आख़िरकार, मैं इस विषय के लिए डायमंड्स ग्रीन के दृष्टिकोण पर असहमत हूं ("यह वेब डेवलपर्स के लिए एक सिफारिश है कि अब तकनीक का प्रभावी ढंग से उपयोग न करें") ...

मुझे विश्वास है (जैसा कि स्टेट्स ऑफ डायमंड्स ग्रीन के लेख में vi4m बताता है):

हम (डेवलपर्स) अभी भी इस तकनीक का उपयोग कर सकते हैं। किसी भी ब्राउज़र विक्रेता ने इस तकनीक को हटाने का अनुरोध नहीं किया, न ही इसे हटाने की योजना बनाई। डेवलपर्स वेब की आवाज हैं। हम अभी भी इसे का उपयोग कर सकते हैं, शायद मोज़िला मन बदल जाएगा ;-)

और मैं एक और तार्किक दृष्टिकोण जोड़ूंगा: यदि आप मोबाइल परिवेश के लिए विकसित कर रहे हैं ... in अधिक हाथों में क्या महत्वाकांक्षाएं हैं? उत्तर: आईओएस और एंड्रॉइड ... तो अगर कोई भी WebSQL का समर्थन करता है, और आपका लक्ष्य MASSIVE MOBILE है, तो इसके लिए जाएं!

यह सोचें कि बड़े ऐप ने लगभग हमेशा ही काम किया है, पहले एमओएसटी प्राप्त करें, फिर (एक बार सफलता प्राप्त करने के बाद) शेष कम पाने के लिए काम को फिर से बनाएं (यदि आप वास्तव में उन्हें प्राप्त करना चाहते हैं या ऐसा करने के लिए कहा जाता है)। अंत में, हमेशा सफलता नहीं है जो पथ को चिह्नित करता है?


नोलन लॉसन के लेख (जिसमें उनके आविष्कार को एक मौका देने का इरादा साफ है) पढ़ने के बाद, मेरा मानना ​​है कि यह मामला तकनीक-दिग्गजों के बीच एक नया शीत-युद्ध बन गया है जो कि अस्तित्व में भी नहीं होना चाहिए। मेरा मानना ​​है कि चश्मा बने रहने के लिए बनाया गया है (संभव के रूप में लंबे समय तक और अछूता रहता है- ग्राहक उन्मुख प्रदर्शन के लिए बेहतर)। विडंबना यह है कि "चश्मा लोग" का काम नई ऐनक उत्पन्न करना है (कभी-कभी जहां किसी की आवश्यकता नहीं होती है, इसलिए उसके पास कुछ और करने के लिए कुछ हो सकता है), और इसी तरह प्रोग्रामर की नौकरियां कभी-कभी नई समस्याओं के समाधान करने के बजाय पहले से ही काम करने और बदलने के लिए ध्यान केंद्रित करती हैं। और नई प्रवृत्तियां।

मेरे लिए, क्लाइंट-साइड डेटाबेस केवल सर्वर (क्लाइंट और क्लाइंट पक्षों के बीच) समानताएं बनाने की बात थी ताकि हम आसानी से डेटा बना, स्टोर, अपलोड और डाउनलोड कर सकें। इस दृष्टिकोण के तहत, समान भाषाएं और संरचनाएं (कम से कम हमारे लिए, LAMP ओपनसोर्स डेवलपर्स) सीधे आगे और तर्क है।

मेरा मानना ​​है कि IndexedDB व्यापक और नई संभावनाओं के साथ एक विकल्प होने के लिए एक हमेशा अच्छा दृष्टिकोण है, लेकिन किसी तरह यह विकासशील सॉफ्टवेयर की आवश्यकता के लिए मेरे जैसा दिखता है जिसे स्थापित करने के लिए NEEDS (यहां तक ​​कि जब कोर समाधान क्लाउड पर रह सकते हैं)। एक ऐसी दुनिया में, जो जुड़ी रहती है, यह ए की तरह लगता है) नियंत्रण और कब्जे या बी का मामला है, जो क्लाइंट-साइड के लिए राक्षसों को विकसित करने पर ध्यान केंद्रित कर रहा है ... लेकिन उन तरह की जरूरतों के लिए मौजूद हैं एप्लिकेशन (मोबाइल दुनिया में) और सॉफ्टवेयर (पीसी की दुनिया में)। मेरा मानना ​​है कि वेबएप्स का लक्ष्य मुख्य रूप से वेब का विस्तार करते रहना चाहिए चाहे कोई भी उपकरण क्यों न हो।

मेरा मानना ​​है कि एक अच्छा इन्फोग्राफिक इस दृष्टिकोण से बाहर आ सकता है।


कृपया ध्यान दें कि हाल ही में फ़ायरफ़ॉक्स संस्करण और IE WebSQL का समर्थन नहीं करते हैं।
ओसोडो

1
जहाँ तक मुझे पता है कि उन्होंने कभी भी WebSQL का समर्थन नहीं किया है। आप यहाँ देख सकते हैं कि: [लिंक] caniuse.com/#feat=sql-storage । केवल एक ही है कि मुझे amazes है ओपेरा मिनी, वे इस तरह से बाजार खो रहे हैं। वैसे भी, मेरे लिए डेवलपर के रूप में केवल वही चीजें हैं जो कि WebApps के लिए iOS और Android हैं, और WebKit का नमूना है, जो मुझे विश्वास है कि दोनों सिस्टम के इंजन हैं।
डेविडटुबमन

1
फिर भी, सभी व्यावसायिक ब्राउज़रों द्वारा कोई क्लाइंट-साइड स्टोरेज मानक नहीं अपनाया गया है: html5rocks.com/hi/features/storage
DavidTaubmann

1
Safari 13 ने अब WebSQL के लिए समर्थन हटा दिया है जो पहले के संस्करणों में था। इसलिए "कोई ब्राउज़र विक्रेता ने इस तकनीक को हटाने का अनुरोध नहीं किया, और न ही इसे हटाने की योजना" अब सच है।
थंडरफॉज

@Thunderforge जानकारी के लिए धन्यवाद! वास्तव में जानकर अच्छा लगा! थोड़ा आगे सोचने पर, मुझे नहीं पता कि यह iOS के लिए देवता ओ के लिए बुरा होने वाला है, क्योंकि यह उपकरण इतने सालों से हमारे लिए पूर्ण और उपयोगी है। हम अपने उपयोगकर्ताओं को किसी भी अधिक मैक या आईओएस डिवाइस का उपयोग या खरीदने की सलाह नहीं दे सकते हैं, जब तक कि कोई व्यक्ति सीएडीबी को इंडेक्स करने के लिए परियोजनाओं को फिर से शुरू करने के लिए लागत का भुगतान नहीं करता है।
डेविडटुबमैन

1

वास्तविकता यह है कि योगदान करने वाले दल मानक की दिशा में एक गतिरोध पर पहुंच गए। संक्षेप में, कोई भी सहमत नहीं हो सकता है।

W3C साइट यह बताती है।

विनिर्देश एक गतिरोध पर पहुंच गया: सभी इच्छुक कार्यान्वयनकर्ताओं ने एक ही एसक्यूएल बैकेंड (स्क्लाइट) का उपयोग किया है, लेकिन हमें मानकीकरण पथ पर आगे बढ़ने के लिए कई स्वतंत्र कार्यान्वयन की आवश्यकता है।

WSC साइट


2
मेरे लिए, इसका मतलब यह है कि वे सहमत हैं कि उस रास्ते में मानकीकरण करने के लिए और कुछ नहीं है ... यह ठीक उसी तरह से काम करता है क्योंकि यह मानक के मौजूदा मौजूदा तीसरे पक्ष की तकनीक से जुड़ता है जो उनके द्वारा मानकीकृत नहीं होना चाहिए।
डेविडटुबमैन

मेरे लिए वह आवाज़ जैसे: वे उस पर असहमत थे, क्योंकि यह विक्रेता-विशिष्ट सुविधाओं (गले लगाने, विस्तार करने, भगाने?) की अनुमति नहीं देता है।
क्वांडरी

मेरा मानना ​​है कि यह किसी प्रकार के विक्रेता की विशिष्ट पसंद है, अगला वाक्य बताता है कि अनुसंधान जारी है। इसलिए मुझे यकीन नहीं है कि सभी पार्टियाँ वर्तमान स्थिति से संतुष्ट थीं ... "वेब एप्लिकेशन वर्किंग ग्रुप दो अन्य स्टोरेज-संबंधित स्पेसिफिकेशंस पर काम जारी रखता है: वेब स्टोरेज और
इंडेक्सेड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.