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