এসকিউএল কেন একটি সম্পর্ক ভিত্তিক / কার্যকরী ভাষা হিসাবে পরিচিত?


14

আমরা শিখছি যে বেশিরভাগ ভাষাগুলি দুটিই "সম্পর্ক ভিত্তিক" বা "উচ্চ স্তরের" হিসাবে শ্রেণীবদ্ধ করা হয়। আমি এর আগে কখনও এসকিউএল ব্যবহার করি নি তবে এর বাক্য গঠনটি পড়লে এটি কার্যকরী / সম্পর্ক ভিত্তিক (লিস্প, হাস্কেল) এর চেয়ে বেশি আবশ্যক / উচ্চ-স্তরের সিনট্যাক্সের মতো মনে হয় ??

অথবা এটি কেবল এটিই হতে পারে যে আমার অধ্যাপকের বক্তৃতা নোটগুলির আমার ব্যাখ্যাটি ভুল ... তবে এটি অবশ্যই এসকিউএলকে একটি সম্পর্ক ভিত্তিক ভাষার (উচ্চ স্তরের বিপরীতে) হিসাবে তালিকাভুক্ত করে, এবং এটি কার্যকরী সাথে সম্পর্ক-ভিত্তিক সমীকরণ করে ... অথবা সম্ভবত এটিই আমি বুঝতে পারি না যে এসকিউএল রিলেশনাল ডাটাবেসের সাথে ডিল করে যে বাস্তবায়িত হওয়া উচিত সেভাবে কার্যকরী ভাষা কেন তৈরি করে? (এবং প্রোগ্রামিং ভাষাগুলিকে শ্রেণীবদ্ধ করার সময় 'সম্পর্ক-ভিত্তিক' কেন 'কার্যকরী' এর সাথে সমান?)

ধন্যবাদ :)

উত্তর:


14

আমরা শিখছি যে বেশিরভাগ ভাষাগুলি দুটিই "সম্পর্ক ভিত্তিক" বা "উচ্চ স্তরের" হিসাবে শ্রেণীবদ্ধ করা হয়।

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

প্রকৃতপক্ষে, আরও অনেক অক্ষ রয়েছে যার সাথে প্রোগ্রামিং (এবং ডেটা) ভাষাগুলি শ্রেণিবদ্ধ করা যেতে পারে; একটি বিশেষ আকর্ষণীয় হ'ল ঘোষিত বনাম আবশ্যক । ঘোষিত ভাষাগুলি কিছু কী তা বর্ণনা করে ; অনুজ্ঞাসূচক ভাষায় কিভাবে বর্ণনা করবেন কিছু। এসকিউএল DDL অংশ অনুজ্ঞাসূচক সুদর্শন কীওয়ার্ড সত্ত্বেও, বেশিরভাগ ঘোষণামূলক হয় ( " CREATE TABLE", " DROP DATABASE", ইত্যাদি), এবং এমনকি ডেটা ম্যানিপুলেশন অংশ ( SELECT, UPDATE, INSERT, DELETE) এখনও বেশ ঘোষণামূলক হয়। এসকিউএল এর একটি খুব আকর্ষণীয় সম্পত্তি হ'ল এটি টিউরিং সম্পূর্ণ নয়: আপনি সরল স্ট্যান্ডার্ড এএনএসআই এসকিউএলে আনবাউন্ডেড লুপটি লিখতে পারবেন না।

কয়েকটি মূল ধারণার চারপাশে কার্যকরী প্রোগ্রামিং কেন্দ্রগুলি:

  • ফাংশনগুলি হ'ল প্রথম শ্রেণীর নাগরিক (এটি মান হিসাবে, অন্যান্য ফাংশনের ইনপুট হিসাবে এবং অন্যান্য ফাংশন থেকে আউটপুট হিসাবে ব্যবহৃত হতে পারে)
  • উচ্চ-অর্ডার ফাংশন (ফাংশনগুলি পরিচালনা করে এমন ফাংশন, বা ফাংশনগুলি ফিরিয়ে দেয় এমন ফাংশন)
  • বিশুদ্ধতা (একটি খাঁটি ফাংশন এমন কোনওটির কোনও পার্শ্ব প্রতিক্রিয়া নেই; একটি খাঁটি ফাংশন কোনও আই / ও করতে পারে না, এটি কোনও বিশ্বব্যাপী রাষ্ট্র পড়তে বা সংশোধন করতে পারে না, এবং এটি অবিচ্ছিন্ন রেফারেন্স যুক্তি নিতে পারে না। শুদ্ধ কার্যগুলি বিশেষত আকর্ষণীয় কারণ তারা হবে সর্বদা একই ইনপুট দেওয়া একই আউটপুট উত্পাদন)

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


এএনএসআই এসকিউএল টিউরিং-সম্পূর্ণ। আপনি সিটিই (এসকিউএল: 1999 এ প্রবর্তিত) এবং উইন্ডোভিং (এসকিউএল: 2003) ব্যবহার করে একটি সাইক্লিক ট্যাগ সিস্টেম এম্বেড করতে পারেন ।
জার্গ ডব্লু মিট্টাগ

@ জার্গডব্লিউমিত্যাগ: ট্রিগারগুলির
সাথেও

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

12

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

এরপরে সম্পর্কের ব্যবহারটি ক্যোয়ারীগুলি (SELECT বিবৃতি) ব্যবহার করে করা হয়, যা কার্যকরী যেগুলির পার্শ্ব প্রতিক্রিয়া নেই।

রিলেশনাল মডেলকে ঘিরে পুরো জিনিসটি ।


আমি মনে করি আপনি আরও শক্তিশালী মামলা করতে পারেন। প্রশ্নগুলি সেট হয় তবে সেটে সেগুলিও ফাংশন। কোয়েরিগুলি বর্গের প্রথম শ্রেণীর অবজেক্ট (বিশেষত, আপনি তাদের নীড় বা তাদের নাম রাখতে পারেন)
নাম

5

এসকিউএল আসলে ঘোষণামূলক হিসাবে তত কার্যকরী ভাষা নয়। কার্যকরী ভাষাগুলি, সাধারণত, পার্শ্ব প্রতিক্রিয়া হ্রাস করার জন্য আবশ্যকীয়তার তুলনায় ঘোষণামূলক স্টাইলকে জোর দেয়। এটি কিছু লোককে এসকিউএলকে কার্যকরী হিসাবে উল্লেখ করতে পারে, তবে এটি সঠিক নয় accurate এটি পদ্ধতিগত উপাদানগুলির সাথে ঘোষণামূলক।


1
তবে ক্যোয়ারী (সিলেক্ট স্টেটমেন্ট) হ'ল (বিশুদ্ধ গাণিতিক) ফাংশন এবং ল্যাংএজে প্রথম শ্রেণীর অবজেক্ট। এটি ভাষাটিকে কার্যকরী করে তোলে।
নাম

3

আপনার নোটগুলি স্ক্যাম্বল করা সম্ভব কি?

প্রোগ্রামিং ভাষাগুলি "সম্পর্কের উপর ভিত্তি করে" এবং "উচ্চ স্তরের" মধ্যে বিভক্ত হিসাবে আমি কখনও শুনিনি heard নিম্ন স্তরের / উচ্চ স্তরের সাধারণত এসেম্ব্লার এবং সি পৃথক ভাষাগুলি থেকে পৃথক করা হয় যা আরও বিমূর্ত কাঠামোর জন্য সরাসরি সমর্থন সরবরাহ করে। সম্পর্কগুলি একটি চমত্কার বিমূর্ত কাঠামো, তাই আমি সম্পর্কের পক্ষে সমর্থন করে এমন কোনও কিছু বলতে পারি সংজ্ঞা অনুসারে উচ্চ-স্তরের।

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


অনুসন্ধানগুলি সেট / সম্পর্কের ক্ষেত্রে খাঁটি ফাংশন এবং ভাষাতে প্রথম শ্রেণীর অবজেক্ট। ইপসো কার্যকরী।
নাম

1

এসকিউএল একটি সম্পর্কযুক্ত, সেট-ভিত্তিক ভাষা যা পদ্ধতিগত কার্যকারিতা সজ্জিত করে।

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


-1

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

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


-1

কোনও ভাষা কার্যকর করার যোগ্য হওয়ার জন্য এটির প্রয়োজনীয় সমস্ত প্রয়োজনীয়তা আমি জানি না তবে এসকিএল সার্ভার ফাংশনগুলির সাথে কাজ করার জন্য একটি খুব আন্তঃস্থায়ী উপায় চালু করে। একটি বিশেষ ধারা একটি ক্রয়ের সাথে একসাথে ইন্টারঅ্যাক্ট করতে সক্ষম করে তোলে। একে প্রয়োগ বলা হয়। আমি যখন এপিএল প্রাক্তন একজন প্রাক্তন প্রোগ্রামারের কাছে বিষয়টি স্পষ্ট করে বলি তখন তিনি আমাকে বলেছিলেন যে অনুরূপ লক্ষ্যের জন্য এপিএলে একটি একই ধারা রয়েছে। ক্লজ প্রয়োগ করুন কোনও ফাংশনের ইনপুট হিসাবে টেবিলের সারি বা টেবিল ফাংশনের সারি থেকে বৈশিষ্ট্যের সেটটি পাস করতে দেয়। বলা হচ্ছে, আমি কার্যক্ষম হিসাবে বিবেচিত হওয়ার জন্য লেখার জন্য টেবিলের ফাংশনের ধরণের উপর নিষেধাজ্ঞা আরোপ করেছি। অবশ্যই ইনলাইন হিসাবে ঘোষিত হতে হবে, যার অর্থ একক নির্বাচনের বিবৃতি হিসাবে প্রকাশ করা হচ্ছে। এটির কোনও ভেরিয়েবল নেই চাপিয়ে দেওয়া। প্রচুর যুক্তিযুক্ত এই জাতীয় প্রশ্নগুলি আপনাকে সাধারণ টেবিল এক্সপ্রেশন ব্যবহার করে এমনটি লেখা যেতে পারে যা এক্সপ্রেশনগুলিকে কলামে পরিণত করতে দেয়, একধরনের নিরবচ্ছিন্ন ভেরিয়েবল যা অন্য সিটিইতে পুনরায় ব্যবহার করা যেতে পারে। শেষ পর্যন্ত। ফাংশনটি একটি খুব বড় ম্যাক্রোতে পরিণত হয় যা অপটিমাইজারকে যেভাবে প্রয়োজন তা অপ্টিমাইজ করতে মুক্ত করে তোলে people কেবলমাত্র লোকের অভাব রয়েছে শর্তাধীন যুক্তি লেখার জন্য কিছু সহজ কৌশল এবং কোয়েরিতে কিছু ডেটা সাপোর্টিংলিক হিসাবে ঘোষিত। ওভার ক্লজটি ব্যবহার করে সর্বশেষে কিছু ফাংশন প্রয়োজন হয় যাতে অন্য সারি থেকে এক সারিতে ব্যবহারযোগ্য একটি মান হিসাবে ফলাফলগুলি চালিত করা হয় তবে এটি এখানে কিছুটা দীর্ঘসূত্র হতে পারে। শর্তসাপেক্ষ যুক্তি লেখার জন্য কিছু সহজ কৌশলই লোকেদের অভাবের একমাত্র বিষয় এবং ক্যোয়ারীতে কিছু ডেটা সাপোর্টলোগিক হিসাবে ঘোষণা করা হয়েছিল। ওভার ক্লজটি ব্যবহার করে সর্বশেষে কিছু ফাংশন প্রয়োজন হয় যাতে অন্য সারি থেকে এক সারিতে ব্যবহারযোগ্য একটি মান হিসাবে ফলাফলগুলি চালিত করা হয় তবে এটি এখানে কিছুটা দীর্ঘসূত্র হতে পারে। শর্তসাপেক্ষ যুক্তি লেখার জন্য কিছু সহজ কৌশলই লোকেদের অভাবের একমাত্র বিষয় এবং ক্যোয়ারীতে কিছু ডেটা সাপোর্টলোগিক হিসাবে ঘোষণা করা হয়েছিল। ওভার ক্লজটি ব্যবহার করে সর্বশেষে কিছু ফাংশন প্রয়োজন হয় যাতে অন্য সারি থেকে এক সারিতে ব্যবহারযোগ্য একটি মান হিসাবে ফলাফলগুলি চালিত করা হয় তবে এটি এখানে কিছুটা দীর্ঘসূত্র হতে পারে।

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