রিলেশনাল ডাটাবেসগুলি কেবল এসকিউএল কোয়েরি গ্রহণ করে?


15

যতদূর আমি জানি, বেশিরভাগ রিলেশনাল ডাটাবেসগুলি কোয়েরিগুলির জন্য কোনও ড্রাইভার-স্তরের এপিআই সরবরাহ করে না, একটি queryফাংশন যা কোনও এসকিউএল স্ট্রিংকে আর্গুমেন্ট হিসাবে গ্রহণ করে।

আমি ভাবছি যদি কেউ এটি করতে পারে তবে কতটা সহজ হবে:

var result = mysql.select('article', {id: 3})

যোগদান করা টেবিলগুলির জন্য, এটি কিছুটা জটিল হবে, তবে এখনও সম্ভব। উদাহরণ স্বরূপ:

var tables = mysql.join({tables: ['article', 'category'], on: 'categoryID'});
mysql.select(tables, {'article.id': 3}, ['article.title', 'article.body', 'category.categoryID'])

ক্লিনার কোড, কোনও স্ট্রিং ওভারহেড পার্সিং নেই, কোনও ইনজেকশন সমস্যা নেই, ক্যোয়ারি উপাদানগুলির সহজ পুনরায় ব্যবহার ... আমি অনেক সুবিধা দেখতে পাচ্ছি।

এটি কেবলমাত্র এসকিউএল এর মাধ্যমে প্রশ্নের অ্যাক্সেস সরবরাহ করার জন্য কেন বেছে নেওয়া হয়েছিল তার কোনও নির্দিষ্ট কারণ আছে?


14
আপনার প্রথম উদাহরণটি কী করবে যে একটি ওআরএম ইতিমধ্যে সরবরাহ করে না?
রবার্ট হার্ভে

4
আপনার উপায়টি ঠিকঠাক কাজ করবে যদি কেউ কখনও করেনি কেবল সাধারণ প্রশ্নগুলি।
Blrfl

5
পুনঃটুইট তবে এটি এসকিউএল রূপান্তর করা প্রয়োজন। আমার প্রশ্নের মূল বিষয় হ'ল আমরা কেন ডেটা ম্যানিপুলেশন অপারেশনে ড্রাইভার স্তরের অ্যাক্সেস রাখতে পারি না।
লোরটাব্যাক

20
আমার কাছে এটি জিজ্ঞাসার মতো কেন টোস্টাররা আইসক্রিম গ্রহণ করবেন না।
এইচএলজিইএম

2
কেউ ইতিমধ্যে আপনি কী ভাবছেন তা ভেবে এটিকে আরও একধাপ এগিয়ে নিয়ে গিয়েছিল এবং এভাবেই ওআরএম এর জন্ম হয়।
মাফিন ম্যান

উত্তর:


33

ডাটাবেসগুলি প্রক্রিয়াধীন - এগুলি সাধারণত একটি ভিন্ন সার্ভারে চালিত হয়। সুতরাং আপনার কাছে একটি এপিআই থাকলেও, তারের জুড়ে এমন কিছু প্রেরণ করা দরকার যা আপনার ক্যোয়ারী এবং এর সমস্ত অনুমান, ফিল্টার, গোষ্ঠী, উপবিষয়, এক্সপ্রেশন, যোগ, সংযুক্ত ফাংশন ইত্যাদি উপস্থাপন করে যা কিছু এক্সএমএল বা জেএসএন বা কিছু হতে পারে মালিকানাধীন ফর্ম্যাট, তবে এটি এসকিউএলও হতে পারে কারণ এটি পরীক্ষিত, পরীক্ষিত এবং সমর্থিত।

এসকিউএল নিজেকে কমান্ড তৈরি করতে আজকাল এটি খুব কম দেখা যায় - অনেক লোক একরকম ওআরএম ব্যবহার করে। যদিও এগুলি শেষ পর্যন্ত এসকিউএল বিবৃতিগুলিতে অনুবাদ করে, তারা আপনার পরে থাকা এপিআই সরবরাহ করতে পারে।


17
আমি হাতে হাতে এসকিউএল কমান্ড তৈরির বিষয়ে একমত নই। খুব সরল ডাটা মডেলের জন্য ওআরএম ঠিক আছে। তুচ্ছ এর বাইরে যে কোনও কিছু আপনি নিজের এসকিউএল স্তরটি লিখছেন।
মার্টিন ইয়র্ক

2
অ্যাপ্লিকেশনগুলির চাহিদা মেটাতে যে কোনও যুক্তিযুক্ত ওআরএম কনফিগারযোগ্য হওয়া উচিত তার চেয়ে আমি শয়তানদের উকিল এবং নোট খেলব।
বাংলোস্টিংক দিন

7
@ লোকিআস্টারি: সত্য, তবে তুচ্ছ সিআরইউডি স্টাফ আপনার অ্যাপ্লিকেশনটির 80% বা তারও বেশি তৈরি করতে পারে।
রবার্ট হার্ভে

@ টিম, দুর্দান্ত পয়েন্ট আসলে, প্রশ্নটিতে প্রস্তাবিত হাইপোথিক্যাল সিনট্যাক্সটি জেএসএনের মতো একটি ভয়াবহ দেখায় looks
জন এম গ্যান্ট

জেএসএন একটি ডেটা এনক্যাপসুলেশন এবং ট্রান্সফার ফর্ম্যাট, কোনও ভাষা নয়।
ক্রেগ

35

কারণ এসকিউএল একটি সাধারণ এপিআই সরবরাহ করে। আপনি একটি এএনএসআই 92 এসকিউএল কমপ্লায়েন্ট ড্রাইভার লিখতে পারেন যা এসকিউএল নির্গত করে এবং আপনার ইচ্ছা যে এপিআই প্রকাশ করে। একটি বিশেষ বোনাস হিসাবে, এটি পুনর্লিখন না করে প্রায় কোনও এসকিউএল ডাটাবেসের সাথে কাজ করবে।

যদি এটি আপনার উপায়ে করা হয়ে থাকে তবে প্রতিটি এসকিউএল ডাটাবেসের একটি আলাদা এপিআই থাকবে। অবশ্যই, যদি না, আমরা সকলেই আপনার এপিআইতে মানকৃত করে নেই। তবে তারপরে, আমরা আবার এসকিউএল করব, কমবেশি, তাই না? আপনার এপিআইটি ভাষা-নির্দিষ্ট প্রোগ্রামিং হিসাবে উপস্থিত বলে মনে হচ্ছে, যেখানে এসকিউএল নেই।


7

প্রশাসনিক প্রয়োজনে ডাটাবেসটিতে আরও অনেক কিছু রয়েছে, তাই ব্যবহারকারীদের যুক্ত করতে ব্যাকআপগুলি চালানো, ডেটা লোড করা, স্কিমা পরিবর্তন করা ইত্যাদি স্ক্রিপ্ট করতে এবং পাঠ্য জমা দেওয়ার পক্ষে গুরুত্বপূর্ণ। বেশিরভাগ ডিবিএর লোকেরা অন্য কোনও প্রোগ্রামিং ভাষার ভিতরে এটি করতে চায় না।

যদি ডিবিএ এসকিউএল এ থাকতে চায় তবে আপনার অন্য ভাষা থাকতে হবে, ডাটাবেসটিতে উভয় প্রসেসিংয়ের বোঝা থাকবে।

ডাটাবেসে অনেকগুলি নতুন বৈশিষ্ট্য রয়েছে, তাই আমি মনে করি না যে তারা অচল হয়ে পড়েছে। তারা কোনও কারণে আপনি যে প্রস্তাব দিচ্ছেন তা করছে না।

এসকিউএল সার্ভারের এসকিউএল সিএলআর এর মাধ্যমে ভিতর থেকে .NET কোড চালানোর ক্ষমতা রয়েছে। এটি সেই কয়েকটি কাজের জন্য সহায়ক যেগুলি একটি সম্পর্কিত মডেলের সাথে খাপ খায় না, তবে কার্য সম্পাদন বজায় রাখতে চায়। আমি বুঝতে পারি এটি আপনি যা খুঁজছেন তা নয়। এটি ডেটাবেসগুলি যা করছে তার একটি উদাহরণ।

এটি খুব শীঘ্রই কোনও সময় চলে যাচ্ছে না। বাজারে সবচেয়ে সাম্প্রতিকতম ডাটাবেসের মধ্যে একটি হ'ল নুওডিবি । তারা এসকিউএল রাখে, সার্ভার বিতরণ এবং মেঘে চালানোর দক্ষতা যুক্ত করার সময় এসিডি সরবরাহ করে। তারা এসকিউএল এর ধারাবাহিকতা প্রচার করার জন্য কেন তারা এই সমস্ত সমস্যায় পড়েছিল তা খতিয়ে দেখতে চাইতে পারেন (তাদের একমাত্র কারণ নয়, এটি একটি বিশাল বিক্রয় কেন্দ্র)।


এসকিউএল সার্ভারে .NET কোডটি আসলে ডাটাবেস ইঞ্জিনের অভ্যন্তরে চলে না। এটি .NET কোডটি সার্ভারের একটি অ্যাসেমব্লিতে সংকলিত এবং সঞ্চিত পদ্ধতিগুলি স্ট্যাটিক ক্লাস পদ্ধতিগুলি হিসাবে চিহ্নিত করা হয় যা ডাটাবেস সার্ভারটি কল করতে জানে। পদ্ধতিগুলি কোনও ডেটা সরবরাহকারী ব্যবহার করে এবং অন্য কোনও নেট নেট কোডের মতো ডাটাবেসের সাথে সংযোগ স্থাপন করে। আপনার ডাটাবেসগুলির সাথে একই রকম পরিস্থিতি রয়েছে (ওরাকল, সিবাস) যা জাভা সঞ্চিত প্রক্রিয়াগুলিকে সমর্থন করে। অন্যদিকে, এসকিউএল হ'ল ডাটাবেসের "নেটিভ ইন্টারফেস", বেশিরভাগ ডাটাবেস পণ্য জুড়ে একই রকম এবং প্রকৃতপক্ষে পার্স করা হয় এবং সরাসরি ডাটাবেসে কার্যকর করা হয়।
ক্রেগ

@ ক্রেইগ - দুর্দান্ত পয়েন্ট।
JeffO

3

এসকিউএল ডিবিএমএস স্টোরের স্থানীয় ভাষা এবং অনেকের মাধ্যমে যথেষ্ট অপ্টিমাইজড অ্যাক্সেস সরবরাহ করে, যেমন আপনি নোট করেছেন যে অন্য কোনও এপিআই নেই।

ডাটাবেস প্রক্রিয়াধীন যে পর্যবেক্ষণটি বেশ কয়েকটি ক্ষেত্রে প্রযোজ্য না এবং এটি সরাসরি প্রাসঙ্গিক নয়।

এমনকি এসকিউএল ডিএমএল ব্যবহারের প্রয়োজন হয় এমন ডাটাবেসগুলি প্রায়শই ফলাফলের সেটটিতে পুনরাবৃত্তির অ্যাক্সেস সরবরাহ করার জন্য একটি কার্সার লাইব্রেরি সরবরাহ করে এবং সুপরিচিত মাইক্রোসফ্ট অ্যাক্সেস এবং বিটিরিভ এসকিউএল ডিবিএমএস উভয়ই একটি প্রক্রিয়া হিসাবে একটি ডাটাবেসে স্বতন্ত্র সারণিতে সরাসরি রেকর্ড ইন্টারফেস সরবরাহ করে নির্দিষ্ট পরিস্থিতিতে খুব উচ্চ কার্যকারিতা অ্যাক্সেস জন্য।

যেমন উল্লেখ করা হয়েছে, এই জাতীয় সিনট্যাক্স ব্যবহার করে জটিল প্রশ্নগুলি 70 এর দশকের শেষের দিক থেকে নেটওয়ার্ক ডাটাবেসের আচরণের পুনরুত্পাদন করবে।

অপরিচিততার কারণে বিকল্প অ্যাক্সেস প্রক্রিয়াগুলি মূলধারার ব্যবহারকারীদের কাছে কম আকর্ষণীয়, তবে নোএসকিউএল ডাটাবেসের জনপ্রিয়তার বিকাশ নির্দিষ্ট কর্মক্ষমতা অর্জনের জন্য অন্যান্য এপিআইগুলিতে আগ্রহ বাড়িয়ে তুলতে পারে। এই ধরনের পদ্ধতির সুপারিশ করার মতো আর কিছু নেই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.