1.1 বক্তৃতা নির্মাণের নীতি

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

এই পদ্ধতির জন্য বেশ কয়েকটি কারণ রয়েছে, তবে প্রধানটি হল শেখার প্রক্রিয়ায় সবচেয়ে মূল্যবান এবং সবচেয়ে অনুপস্থিত সম্পদ হল ছাত্র প্রেরণা

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

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

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

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

তবে আরেকটি সত্যও কম গুরুত্বপূর্ণ নয়: কয়েক দিনের ছুটিতে, আপনি বুঝতে পারবেন যে প্রোগ্রামিং আপনার জন্য নয়। আপনি এটিতে আগ্রহী নাও হতে পারেন, এবং এটি ঠিক আছে । সুতরাং, আপনার এটিতে আপনার জীবনের কয়েক মাস ব্যয় করার দরকার নেই।

স্নাতকদের মাত্র 40% তারা বিশ্ববিদ্যালয়ে প্রাপ্ত বিশেষত্বে কাজ করে। এটি সম্পর্কে চিন্তা করুন, লোকেরা 5-6 বছর ধরে অধ্যয়ন করেছে এবং তাদের মধ্যে 60% তাদের বিশেষত্বে কাজ না করার সিদ্ধান্ত নিয়েছে। হ্যাঁ, অর্জিত জ্ঞানের কিছু এখনও ব্যবহার করা হয়, তবে এর প্রায় অর্ধেক নয়।

এটি হল ফেইল ফাস্ট ধারণার মান - যত তাড়াতাড়ি সম্ভব বুঝতে হবে যে একটি নির্দিষ্ট পেশা, একটি নির্দিষ্ট ব্যক্তি বা একটি নির্দিষ্ট শখ আপনার জন্য উপযুক্ত নয়। এবং তাদের জন্য আপনার সময় এবং শক্তি নষ্ট করবেন না। দীর্ঘমেয়াদে, এটি একটি খুব ভাল কৌশল।

1.2 SQL এবং সব, সব, সব

আমরা দার্শনিক ভূমিকা শেষ করেছি, আসুন এসকিউএল শেখার দিকে ফিরে যাই।

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

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

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

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

এসকিউএল ভাষায়, এর স্ট্যান্ডার্ডের বেশ কয়েকটি সংস্করণ রয়েছে, যেগুলিকে বছর অনুসারে নামকরণ করা হয়েছে:

  • এসকিউএল: 1999
  • এসকিউএল: 2003
  • এসকিউএল: 2006
  • এসকিউএল: 2011
  • SQL:2016
  • এসকিউএল: 2019

সুসংবাদ : আমরা এই মানগুলি অধ্যয়ন করব না। প্রথমত, এই সমস্ত অধ্যয়ন করতে এবং আয়ত্ত করতে কয়েক বছর সময় লাগবে। এবং দ্বিতীয়ত, এই মানগুলি অ্যান্ড্রয়েডের সংস্করণগুলির মতো: প্রকাশের মাত্র 5-10 বছর পরে, মানটি ব্যাপকভাবে বিস্তৃত হয়।

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

1.3 বন্ধনীর বাইরে

আমি উপরে বলেছি, ডাটাবেস পেশাদার হতে কয়েক বছর সময় লাগে। একজন পেশাদার অনেক কিছু জানেন যা আমরা অধ্যয়ন করব না। কিন্তু ডাটাবেসে আর কি আছে তা নিয়ে একটু কথা বলব।

প্রায় সব আধুনিক ডাটাবেস সমর্থন করে:

1 পদ্ধতিগত ভাষা (PL)

RDBMS এসকিউএল সার্ভারে চলা পদ্ধতি এবং ফাংশন লেখার ক্ষমতা সমর্থন করে এবং প্রশ্নের সময় ডেটা দিয়ে অনেক কিছু করতে পারে। উদাহরণস্বরূপ, একবার আমি ওরাকল সার্ভারে PL SQL ক্যোয়ারী লিখেছিলাম, যেটি প্রশ্নের উত্তরে... ডেটা সহ একটি HTML পৃষ্ঠা। হ্যা, তুমি পারো.

2 ঘটনা (ট্রিগার)

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

3 লগিং

আধুনিক ডাটাবেসগুলি খুব দ্রুত হওয়ার চেষ্টা করে, তাই প্রায়শই সমস্ত পরিবর্তন (নতুন সারি, মুছে ফেলা সারি, পরিবর্তিত সারি) প্রথমে একটি লগ নামে একটি বিশেষ ফাইলে লেখা হয়। এবং কিছু সময়ের পরে, SQL সার্ভার এই রেকর্ডগুলিকে মূল ডাটাবেসের সাথে একত্রিত করবে।

কিছু উপায়ে, এটি জাভাতে আবর্জনা সংগ্রাহকের আচরণের অনুরূপ: এটি প্রথমে মুছে ফেলা বস্তুগুলিকে সহজভাবে চিহ্নিত করে এবং অলস সময়ে মেমরি ক্লিনআপ এবং অপ্টিমাইজেশন সঞ্চালন করে।

4 প্লাগইন

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

5 বিতরণকৃত কাজ (গুচ্ছ)

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

6 শেডিং

যখন প্রচুর ডেটা থাকে, তখন সেগুলি বিভিন্ন ডেটাবেসে বিভক্ত হতে শুরু করে। একটি টেবিল বিভিন্ন ডাটাবেসে অংশে সংরক্ষণ করা যেতে পারে যে সত্য পর্যন্ত.

Sharding উল্লম্ব এবং অনুভূমিক হতে পারে. উল্লম্ব শার্ডিং এর অর্থ হল টেবিলটি, যেমনটি ছিল, উল্লম্ব রেখা দ্বারা কাটা হয়, যখন অনুভূমিক শার্ডিং অনুভূমিকগুলিতে কাটা হয়।

উদাহরণস্বরূপ, আমরা টেবিলের সমস্ত ডেটা বছর দ্বারা ভাগ করার সিদ্ধান্ত নিয়েছি: 2019 এর জন্য - একটি টেবিল, 2020 এর ডেটার জন্য - দ্বিতীয়টি এবং আরও অনেক কিছু। এটি অনুভূমিক শর্ডিং হবে।

7 নন ধাক্কা

ডেটাবেসগুলির বিকাশের একটি নির্দিষ্ট পর্যায়ে, তাদের সাথে আরও বেশি ব্যবসায়িক যুক্তি যুক্ত হতে শুরু করে। এটি সমস্ত পদ্ধতি, ফাংশন, সার্ভার দ্বারা ওয়েব পৃষ্ঠা তৈরি করার সাথে শুরু হয়েছিল এবং DBMS-এ প্রায় সমস্ত জনপ্রিয় ভাষার সমর্থন যোগ করার সাথে শেষ হয়েছিল: পাইথন, জাভাস্ক্রিপ্ট এবং এমনকি জাভা এবং সি ++।

আপনি বিশদ বিবরণে যাওয়া শুরু না করা পর্যন্ত দুর্দান্ত শোনাচ্ছে: আপনি কি সত্যিই জাভাতে আপনার ওয়েব অ্যাপ্লিকেশন ব্যবসায়িক যুক্তি লিখতে চান, যা একটি SQL সার্ভারের ভিতরে কার্যকর করা হবে, যেখানে কোনও JDK, জাভা লাইব্রেরি, ফ্রেমওয়ার্ক, সামান্য মেমরি এবং প্রচুর অন্যান্য বিধিনিষেধ?