Category Archives: Professional

How to Manage Projects with Dot Project

যেভাবে ডটপ্রজেক্টের মাধ্যমে কোন প্রকল্প চালাতে হয়ঃ
রিদওয়ান বিন শামীম

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

 

যেভাবে ডটপ্রজেক্ট ইন্সটল করতে হয়ঃ

প্রথমে আনজিপ করে সার্ভারে ডটপ্রজেক্টের জন্য নতুন ফোল্ডার খুলতে হয়।

এরপর সার্ভারে ডটপ্রজেক্ট ফাইল কপি করতে হয়।

এবার ডাটাবেস সার্ভারে নতুন ডাটাবেস খুলতে হবে, নাম ও পাসওয়ার্ড দিয়ে।

যে কোন একটি ব্রাউজার থেকে ডটপ্রজেক্ট এর ইন্সটল ফোল্ডার নির্দেশ করিয়ে দিতে হবে।যেমন,http://justetc.net/dotproject/install ইত্যাদি।

এরপর ডাটাবেসে প্রবেশের তথ্য দিতে হবে।

 

ডটপ্রজেক্ট ফিচারগুলোর সারসংক্ষেপঃ

ডটপ্রজেক্টে মূলত বিভিন্ন কোম্পানি, প্রোজেক্ট, টাস্ক, ক্যালেন্ডার, ফাইল, কন্টাক্ট, ফোরাম, টিকেট, ইউজার এডমিন, সিস্টেম এডমিন ইত্যাদি থাকে।

 

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

 

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

 

প্রকল্প এগিয়ে নেয়াঃ প্রকল্পের প্ল্যানিং ও শুরুর অন্যান্য কাজ হয়ে যাওয়ার পর সময় ,খরচ ও মানবসম্পদ বিষয়ক সিদ্ধান্ত নিতে হবে। CPM model for Time Management এর মাধ্যমে এই ধাপ গুলো করা যায়। এরপর কাজের ধারা, প্রকল্পের মান বজায় থাকছে কিনা ইত্যাদিও দেখতে হয়। ওয়াটার ফল, এগাইল বেসড মডেল এসবের দ্বারা মান নিশ্চিত করা হয়। প্রয়োজনে প্যারেন্ট প্রোজেক্ট ইত্যাদি ব্যাবহার করতে হয় এ ধাপগুলো সম্পন্ন করার জন্য। ঝুঁকি ও চ্যালেঞ্জ ইত্যাদির একটি লিস্ট করে তাও নিয়ন্ত্রণ করা হয়। এরপর একে একে দেখতে হয় সব পূর্বশর্ত পুরন হয়েছে কিনা, সব টাস্ক ১০০% হয়েছে কিনা, কোয়ালিটি, রিসোর্স ও শর্ত পুরন হয়েছে কিনা। এরপর ক্রেতা ও ভোক্তার চাহিদা মিলিয়ে দেখে চূড়ান্ত ভাবে প্রকল্প সমাপন ঘোষণা করা হয়।
http://Bangla.SaLearningSchool.com

Some Topics on Project Communication Management

প্রকল্প যোগাযোগ ব্যবস্থাপনা বিষয়ে কিছু কথাঃ
রিদওয়ান বিন শামীম

বড় প্রকল্পের জন্য পূর্ব পরিকল্পিত ও নিখুঁত যোগাযোগ ব্যবস্থার প্রয়োজন আছে। যদিও পরিস্থিতির উপর ভিত্তি করে যে কোন পরিকল্পনা পরিবর্তিত হতে পারে।

 

প্রকল্প যোগাযোগ ব্যবস্থাপনার মূল সারসংক্ষেপঃ

প্রকল্প যোগাযোগ অনেক গুরুত্বপূর্ণ একটি বিষয়, এটি অনেক চাতুর্যপূর্ণ ও রাজনৈতিক হতে পারে, প্রোজেক্ট রেকর্ড গ্রহন, প্রেরণ, সংরক্ষণ ও বণ্টন বিষয়ক হতে পারে, এবং যোগাযোগের ক্ষেত্রে সাধারণত চারটি নিয়ম মেনে চলেঃ

কি যোগাযোগ,

কার সাথে,

কখন ও

কীভাবে।

 

মাশরুম প্রোজেক্ট ম্যানেজমেন্টঃ তথ্য গোপন রেখে কাজ শেষ করার প্রবনতা এই ধরণের কাজের ধারায় পরে।

 

যোগাযোগ ব্যবস্থাপনার উপধারাগুলোঃ

যোগাযোগ পরিকল্পনা,

সম্পাদন,

পর্যবেক্ষণ ও

নিয়ন্ত্রণ

মূলত এই ক্ষেত্র গুলো যোগাযোগ পরিকল্পনার উপধারা সমুহ।

 

যোগাযোগের এই ধারা গুলো পারস্পরিক শেয়ার ও প্রকাশের মাধ্যমে শরিকদের মধ্যে গোলযোগের সম্ভবনাকে কমিয়ে আনা সম্ভব। একই সাথে দলগত অনুপ্রেরণা বাড়িয়ে তোলা সম্ভব।

 

প্রকল্প ব্যবস্থাপক বা প্রোজেক্ট ম্যনেজারের ভুমিকাঃ বেশিরভাগ সময় যোগাযোগ রক্ষা করা, মূলত সিদ্ধান্ত নেয়ার চেয়েও যোগাযোগ রক্ষা করা বেশি দরকার হতে পারে। যোগাযোগ পরিকল্পনা, ফলাফল, সময়, মিডিয়া, ওয়েব, ই মেইল, কোন তথ্য কাকে ইত্যাদি কাজ প্রোজেক্ট ম্যানেজারকেই করতে হয়। যাদের সাথে কাজ করতে হবে এমন সংস্থার পরিবেশগত দিক, প্লানিং, সম্ভবনা ইত্যাদি বিষয়েও তাকে সিদ্ধান্ত নিতে হতে পারে।

 

প্রোজেক্ট ম্যনেজারের প্রধান মাধ্যম বা টুলসঃ যোগাযোগ চ্যানেল, যা মূলত যোগাযোগ প্রকরণগুলোকে ঠিক রাখে। N সঙ্খক লোক n(n-1)/2 সঙ্খক উপায়ে যোগাযোগ করতে পারে এরকম একটি হিসাব আছে এই বিষয়ে। এক্ষেত্রে একটি সাবসেট নির্ধারণ করা হয়, মাঝে মাঝে অফিশিয়াল যোগাযোগ চ্যানেল ঠিক করা লাগতে পারে। আর যোগাযোগের ক্ষেত্রে অনলাইন যোগাযোগ, ভিডিও কনফারেন্স ইত্যাদিও মাধ্যম হিসাবে জনপ্রিয় হয়ে উঠছে।

 

যোগাযোগ ব্যবস্থাপনার পরিকল্পনাঃ এর মধ্যে আছে কাকে জানাতে হবে, কি জানাব, কাকে পাঠানো যায়, তথ্য প্রেরণের মাধ্যম, আপডেট রাখার জন্য কি করতে হবে ইত্যাদি।

 

তথ্য বণ্টনঃ তথ্য বণ্টনের জন্য প্রকল্প ব্যবস্থাপক সাধারণত যোগাযোগের মডেল ব্যবহার করেন, যে মডেলে কয়েকটি বিষয়ের দিকে খেয়াল রাখতে হয়, মনোযোগ দিয়ে তথ্য শোনা, তথ্য সংরক্ষণ, ভাষাগত দিক ইত্যাদি।

 

যোগাযোগের মাধ্যমগুলো হলঃ

প্রথাগত লেখা বা ফরমাল রাইটিং,

সাধারণ লেখা,

প্রথাগত মৌখিক যোগাযোগ ও সাধারণ মৌখিক যোগাযোগ।

 

পর্যবেক্ষণ ও নিয়ন্ত্রণ করাঃ

মূলত প্রকল্পের অগ্রগতি সম্পর্কে স্টেক হোল্ডারদের জানানো ও নিয়মিত অবহিত রাখার জন্য রিপোর্ট দেয়ার পদ্ধতি।

 

এখানে মূলত প্রকল্প ব্যবস্থাপনার যে তথ্য দেয়া হয়েছে তা PMI and PMBOK(Project Management Body of Knowledge) থেকে নেয়া হয়েছে।

http://Bangla.SaLearningSchool.com

Project Risk Management

রিস্ক কি?
PMI এর মতে, Risk বলতে প্রকল্পের একটি অনিশ্চিত ঘটনা - প্রকল্পের  উপর ইতিবাচক বা নেতিবাচক প্রভাব রয়েছে এমন বুঝায় ।

 

Risk Management Plan includes:

Risk Management Plan এর জন্য প্রয়োজনীয় সরঞ্জাম এবং পন্থাঃ

ঝুঁকি ব্যবস্থাপনা
সনাক্তকরণ এবং ঝুঁকি ব্যবস্থাপনার জন্য সম্পদ নিয়োগ
ঝুঁকি বিভাগ
ঝুঁকি সম্ভাব্যতা এবং প্রভাব
ঝুঁকি প্রতিবেদন এবং ট্র্যাকিং বিন্যাস

 

ঝুঁকি ব্যবস্থাপনা প্রসেস:

ঝুঁকি সনাক্তকারী
ঝুঁকি বিশ্লেষণ
ঝুঁকি প্রতিক্রিয়া পরিকল্পনা
ঝুঁকি Monitoring ও কন্ট্রোল

 

ঝুঁকি সনাক্তকারী প্রক্রিয়া:
ঝুঁকি সনাক্তকারী প্রক্রিয়া আউটপুট:
ঝুঁকি নিবন্ধন - চিহ্নিত ঝুঁকি তালিকা
ঝুঁকির মূল কারণ সংক্রান্ত একটি তালিকা
সম্ভাব্য প্রতিক্রিয়া একটি প্রাথমিক তালিকা

ঝুঁকি বিশ্লেষণ
ঝুঁকি সনাক্তকরণ প্রক্রিয়া আউটপুট ইনপুট হিসেবে ব্যবহার করা হয়.
গুণগত ঝুঁকি বিশ্লেষণ: ঝুঁকি অগ্রাধিকার প্রতিটি উদ্দেশ্য জন্য একটি সম্ভাবনা ও প্রভাব ম্যাট্রিক্স উপর ভিত্তি করে

পরিমাণজ্ঞাপক ঝুঁকি বিশ্লেষণ:
প্রতিটি প্রকল্পের উদ্দেশ্য পূরণের সম্ভাব্যতা মূল্যায়ন
সামগ্রিক প্রকল্পের উদ্দেশ্য উপর তাদের মোট প্রভাব উপর ভিত্তি করে ঝুঁকি অগ্রাধিকার.

ঝুঁকি রেসপন্স প্ল্যান
প্রতিটি ঝুঁকি জন্য অগ্রাধিকার উপর নির্ভর করে:
কোনো পদক্ষেপ নিন
কিছু ঘটনা ঘটলে ব্যবস্থা গ্রহণ করা
ব্যবস্থা গ্রহন করা

ধন্যবাদ , আশা করি বিষয়টি বুঝতে পেরেছেন 🙂

Project Cost Management – Part 2

প্রকল্প মূল্য ব্যবস্থাপনাঃ ২য় পর্ব।
রিদওয়ান বিন শামীম।

 

প্রকল্প মূল্য ব্যবস্থাপনার উপর কিছু সংজ্ঞা নিয়ে আলোচনা করছি,

অর্জিত মূল্যঃ এটি হল প্রকল্পের জন্য খরচ করা অর্থ, ডবল এন্ট্রি একাউন্টিঙের মত প্রতিটি খরচের জন্য পুঞ্জিত অর্থ সঞ্চিত থাকে।

বাজেটেড এট কমপ্লেসন (BAC)ঃ প্রকল্প সম্পাদনের জন্য মূলত কত অর্থ বরাদ্দ ছিল তার হিসাব।

প্ল্যানড ভ্যলুঃ কোন নির্দিষ্ট সময় পর্যন্ত প্রকল্পের কতটুকু কাজ সম্পন্ন হয়েছে তা হিসেব করে প্ল্যানড ভ্যলু।

(Planned Value = Planned% complete*BAC)।

অর্জিত মূল্য (EV): কোন নির্দিষ্ট সময়ের মধ্যে প্রকল্পের কতটুকু কাজ হয়েছে তা অর্জিত মূল্য দ্বারা বোঝানো হয়।

প্রকৃত খরচঃ নির্দিষ্ট সময় পর্যন্ত ব্যয়কৃত অর্থ।

কস্ট ভেরিএন্স বা CV ঃ অনুমিত খরচ ও প্রকৃত খরচের পার্থক্য, CV = EV – AC।

শিডিউল ভেরিএন্স বা SV: অনুমিত শিডিউল ও প্রকৃত শিডিউলের মধ্যে পার্থক্য, অর্থাৎ SV=EV-PV।

কস্ট পারফরমেন্স ইনডেক্স CPI: এটি খরচের একটি হার যেখানে প্রকৃত ব্যয় অনুমিত ব্যয়কে সমর্থন করে। CPI কোন নির্দিষ্ট সময়ের জন্য হয়ে থাকে, CPI = EV/AC।

কুমুলেটিভ সিপিআইঃ প্রকল্প শুরু থেকে কোন নির্দিষ্ট সময় পর্যন্ত সিপিআইকে কুমুলেটিভ সিপিআই বলে।

CCPI = CEV/CAC।

শিডিউল পারফরমেন্স ইনডেক্স SPIঃ নির্দিষ্ট সময় পর্যন্ত যদি প্রকল্প অনুমিত হারে সম্পন্ন হয় তবে তাকে শিডিউল পারফরমেন্স ইনডেক্স বলে।

কাজ সম্পন্ন হওয়ার সার্বিক অনুমান,EAC: কোন নির্দিষ্ট সময় পর্যন্ত সম্পন্ন কাজের হার দেখে পুরো প্রকল্পের সম্ভাব্যতা আন্দাজ করাকে সার্বিক অনুমান হিসেবে ধরা হয়। EAC = BAC/CCPI।

কাজ সম্পন্ন হতে সার্বিক অনুমান,ETC: এ ক্ষেত্রে পূর্বের পরিসংখ্যান দেখে আন্দাজ করা হয় আর কত অর্থ পুরো প্রকল্পে খরচ হতে পারে।

ভারিএন্স অফ কমপ্লেসন VAC: অনুমিত ব্যয় ও প্রকৃত ব্যয়ের পার্থক্য, VAC = BAC – EAC।

 

প্রকল্প ব্যয়ের উপর ভাল ধারণা পেতে প্রকল্প ব্যবস্থাপককে এই বিষয় গুলোতে জ্ঞান থাকতে হবে। কিসে কত খরচ হল, কীভাবে কি করব ইত্যাদি জানতে এগুলো জানা থাকতে হবে।

Project Cost Management – Part 1

প্রকল্প মূল্য ব্যবস্থাপনাঃ (১ম পর্ব)
রিদওয়ান বিন শামীম

প্রকল্প মূল্য ব্যবস্থাপনার কিছু ধারণা এখানে দেয়া হল।

প্রথমেই আলোচনা করতে হয় মূল্য বিষয়ক কয়েকটি ধাপ নিয়ে,ক্রয়মূল্য, প্রক্রিয়ার খরচ, কাজ শেষ হওয়ার পর্যন্ত খরচ ইত্যাদি।

 

মূল্য প্রকৌশলঃ

কোন প্রকল্প থেকে আমরা যে বিষয় গুলো আশা করে থাকি সে গুলো হল,

খরচ কমানো,

মূল্য বৃদ্ধি করা,

মান বৃদ্ধি করা,

শিডিউল সংক্ষিপ্ত করা ও

প্রকল্পের সম্ভাব্যতা কমতে না দেয়া ইত্যাদি।

 

মূল্য নির্ধারণ করাঃ প্রকল্প সম্ভবনা নির্ণয়ের পর কাজের খণ্ডাংশের কাঠামো যখন নিরুপিত হয় তখন মূল্য নির্ধারণ করা যায়। এ প্রক্রিয়াটি কিন্তু বারবার পুনরাবৃত্তি করা যায়।

 

মূল্য নির্ধারণের টুলসঃ

পূর্বের বিভিন্ন কাজ পর্যবেক্ষণ করে একই রকমের বিভিন্ন মূল্য অনুমান করা হয়।

 

প্রতিটা কাজের (atomic task) জন্য খরচের আলাদা হিসাব করা হয়, সময়ও নির্ধারণ করা হয়। একে বোটম আপ এস্টিমেট বলা হয়।

 

স্থিতি মাপক হিসাব বলে আরেকটি পদ্ধতি আছে, এক মাইল রাস্তা বানাতে যদি ৪০০,০০০ টাকা লাগে তাহলে ১০ মাইল রাস্তা বানাতে ১০x৪০০,০০০ টাকা লাগবে- এটি স্থিতি মাপক হিসাব।

 

রিজার্ভ এনালাইসিস হল প্রকল্পের স্লিপেজের সাপেক্ষে এক প্রকার বাফার কস্ট, মানের জন্য হিসাবঃ অভীষ্ট মান লাভের জন্য যে অনুমিত হিসাব তাকে আউটপুট হিসেবে ধরা হয়, এটি হল কাজের জন্য অনুমিত হিসাবের ফলাফল।

 

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

 

মূল্য নিয়ন্ত্রণঃ পর্যবেক্ষণ, নিয়ন্ত্রণ ও সমন্বয় সাধন মূল্য নিয়ন্ত্রণের প্রধান ক্ষেত্র, যেটি স্থায়ী চক্রাকারে হতে পারে আবার মাসিক বা ২ সপ্তাহের চক্র হিসেবেও হতে পারে। মূল্য পরিবর্তনের নিয়ন্ত্রণ ব্যবস্থা, বেস লাইনের পরিবর্তন , পারফরমেন্সের বিশ্লেষণ, কস্ট পারফরমেন্সের ইনডেক্স, প্রাপ্ত চূড়ান্ত মূল্য, বর্তমান ও অতীত মূল্য থেকে ভবিষ্যতের মূল্য আন্দাজ করা , সেই তথ্য প্রকাশ করা, প্রকরণ ব্যবস্থাপনা ইত্যাদি মূল্য নিয়ন্ত্রণের অন্তর্ভুক্ত, যার ফলাফল হল মূল্য হিসাব আপডেট ও কস্ট বেস লাইন আপডেট ।

উইন্ডোজ 8.1 টিউটোরিয়াল: স্টার্ট স্ক্রিণ (All about Start)

উইন্ডোজ 8.1 টিউটোরিয়াল: 11 এর 3

Start Screen হচ্ছে আপনার পিসি দিয়ে যা কিছু করবেন তার শুরুর ধাপ। আপনি একে চিন্তা করতে পারেন Start Menu হিসেবে কিন্তু এটি বর্তমানে সম্পূর্ণ পর্দা জুড়ে বিস্তৃত এবং আপনি একে আপনার অ্যাপলিকেশন, বন্ধু এবং ছবি দিয়ে নিজেরমত করে নিতে পারেন।

স্টার্ট স্ক্রিণ

একই জায়গায় আপনার অ্যাপলিকেশন, বন্ধু-বান্ধব এবং ওয়েবসাইট

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

Start Screen এর টাইলস গুলো কোন অ্যাপলিকেশন খোলা ছাড়াই আপনাকে আপনার বন্ধুদের সাম্প্রতিকতম তথ্য (আপডেট), নতুন ইমেইল, অ্যাপ্লিকেশন এর নটিফিকেশন এবং ক্যালেন্ডারের সাহায্যে আপনার পরবর্তী করণীয় দেখাবে। কারণ প্রত্যেক পিসি ব্যবহারকারী তাদের মাইক্রোসফট একাউন্ট দিয়ে Sign in করতে পারে, প্রত্যেকে তাদের টাইলস, রং এবং ব্যাকগ্রাউন্ড নিজের মত করে সাজিয়ে নিতে পারে।

শুরু করার পদ্ধতি

আপনার পিসির যেকোন স্থান থেকে পুরানো ডেস্কটপ ফিরে যাবার উপায়।
a
পর্দার নিচের দিকে বাম পাশের Start বাটনে b টোকা দিন বা ক্লিক করুন।

c
আপনার কীবোর্ড এর উইন্ডোজ প্রতিকে b চাপ দিন।

d
Charm খুলুন এবং Start এ টোকা দিন বা ক্লিক করুন। কিভাবে Charm খুলবেন তা জানতে দেখুন “খুজুন, শেয়ার করুন, প্রিন্ট করুন এবং আরো

আপনার সকল অ্যাপলিকেশন দেখা

e
Apps View এর মাধ্যমে আপনি আপনার সকল অ্যাপলিকেশন এবং প্রোগ্রাম দেখতে পারবেন। Apps View দেখার জন্য আপনার হাতের আঙুলের সাহায্যে Start Screen এর মাঝ বরাবর থেকে উপরের দিকে স্লাইড করুন অথবা Start Screen এর নিচের দিকে বাম পাশের অ্যারো f এ ক্লিক করুন।

আপনি চাইলে আপনি যখন প্রথম Sign in করবেন তখন আপনি App View এ প্রবেশ করতে পারেন। শেখার জন্য দেখুন “পিসিকে নিজের মতো করে সাজানো

যখন আপনি Windows Store থেকে নতুন অ্যাপলিকেশন ইনস্টল করবেন, এটি Apps View এ দেখা যাবে। তারপর যদি আপনি দ্রুততার সাথে এটিতে প্রবেশ করতে চান তাহলে একে Start Screen বা Desktop Taskbar এর সাথে পিন করে রাখতে পারেন ।

যেসকল অ্যাপলিকেশন আপনি প্রায়ই ব্যবহার করেন সেগুলোকে পিন করে রাখা

দ্রুততার সাথে খোলার জন্য আপনি আপনার পছন্দের অ্যাপলিকেশনগুলোকে Start Screen বা Taskbar এর সাথে পিন করে রাখতে পারেন এবং Tiles এ এক নজরে আপডেটগুলো দেখতে পারেন।

ধাপ 1
g
Apps View দেখার জন্য আপনার হাতের আঙুলের সাহায্যে Start Screen এর মাঝ বরাবর থেকে উপরের দিকে স্লাইড করুন অথবা Start Screen এর নিচের দিকে বাম পাশের অ্যারো Arrow এ ক্লিক করুন।

ধাপ 2
h
যে অ্যাপলিকেশন কে পিন করতে চান তার উপর চাপ দিন বা ধরে রাখুন বা রাইট ক্লিক করুন। আপনি একাধিক অ্যাপলিকেশন বাছাই করতে পারেন এবং সবগুলোকে একই সাথে পিন করতে পারেন।

ধাপ 3
i
Pin to Start অথবা Pin to taskbar এর উপর টোকা দিন বা ক্লিক করুন । যে অ্যাপলিকেশনগুলো পিন করেছেন তা Start Screen এর শেষে বা ডেস্কটপ টাস্কবারে দেখা যাবে।

স্টার্ট থেকে অ্যাপলিকেশন আনপিন করা

আপনি যদি সিদ্ধান্ত নিয়ে থাকেন যে আপনার Start Screen এ একটি টাইল আর থাকবে না, আপনি একে Start থেকে আনপিন করতে পারেন। অ্যাপলিকেশন আনপিন করা অ্যাপলিকেশন আনইনস্টল করা থেকে ভিন্নতর - যদি আপনি একটি অ্যাপলিকেশন কে Start Screen থেকে আনপিন করেন, অ্যাপলিকেশনটি সার্চ করলে (খোজা হলে) তখনও দেখা যাবে এবং এটি App View এও দেখা যাবে।

Start থেকে একটি অ্যাপ আনপিন করা
1. শুরুর পর্দায় যে Tiles কে আনপিন করতে চান তার উপর চাপ দিন বা ধরে রাখুন বা রাইট ক্লিক করুন।
আপনি একাধিক অ্যাপলিকেশন বাছাই করতে পারেন এবং সবগুলোকে একই সাথে আনপিন করতে পারেন। আপনার নির্বাচন বাদ দেওয়ার জন্য Start Screen এর উপর অথবা Apps View ফাঁকা স্থানে এ টোকা দিন বা ক্লিক করুন, অথবা Customize এ টোকা দিন বা ক্লিক করুণ।
2. Unpin from Start এ টোকা দিন বা ক্লিক করুন।
আপনি যে অ্যাপ্লিকেশনগুলোকে বাছাই করেছিলেন তা Start Screen থেকে মুছে যাবে, কিন্তু তখনও অ্যাপ ভিউ এ দেখা যাবে এবং সার্চ (খোঁজা হলে) করলে পাওয়া যাবে।

Start Screen কে সংগঠিত করুন
আপনার Start Screen আপনারই, একে সংগঠিত করুন এবং সাজান। আপনি Tiles গুলোর আকার পরিবর্তন করতে পারেন এবং যেখানে চান সেখানে সরাতে পারেন। যেমন, আপনি যে Tiles বেশি ব্যবহার করেন তা বড় এবং যেটি কম ব্যবহার করেন সেটিকে ছোট করতে পারেন। আপনার কাছে সবচেয়ে যেভাবে ভাল দেখা যায় সেভাবে আপনি আকার পরিবর্তন করতে পারেন এবং সাজাতে পারেন। আপনি ইচ্ছা করলে একসাথে Tiles এর গুচ্ছ (Group) তৈরি করতে পারেন এবং আরো বেশি দক্ষতার সাথে ব্যবহার করতে পারেন। আপনি সাজাতে পারেন টাইলস, অ্যাপলিকেশনগুলোতে সহজে প্রবেশের জন্য Start Screen কে পরিবর্তন করতে পারেন, সাজাতে পারেন ফোল্ডার, ওয়েবসাইট এবং অধিকাংশ সময় যাদের সাথে যোগাযোগ করা হয় তাদের।

Start Screen এর একটি টাইল সরাতে
1। শুরুর পর্দায় যে টাইলস কে সরাতে চান তার উপর চাপ দিন বা ক্লিক করুন এবং ধরে রাখুন।
2। যেখানে এটিকে রাখতে চান সেখানে এটিকে টেনে নিয়ে যান।

Tiles কে ছোট বড় করা
1। শুরুর পর্দায় যে Tiles কে ছোট বড় করতে চান তার উপর চাপ দিন বা ক্লিক করুন এবং ধরে রাখুন।
2। Resize এ টোকা দিন বা ক্লিক করুন।
3। আপনার চাহিদাপত সাইজ পছন্দ করুন।

টাইলস এর গ্রুপ (গোষ্ঠী) তৈরি করা
1। Start Screen এ যে  গুলোকে গোষ্ঠীভুত করতে চান তার উপর চাপ দিন এবং ধরে রাখুন বা ডান ক্লিক করুন।
2। একটি খালি জায়গায় টেনে নিয়ে যান এবং এদের পেছনে একটি দুসর বার দেখা যাবে, এদেরকে ছেড়ে দিন। এটি একটি নতুন গোষ্ঠী তৈরি করবে।
3। যদি আপনি গ্রুপ এর একটি নাম দিতে চান Name group এ টোকা দিন বা ক্লিক করুন এবং একটি নতুন নাম দিন। যখন আপনি একটি গ্রুপ তৈরি করে ফেলবেন তখন আপনি এটিকে Start Screen এর যেকোন স্থানে সরাতে পারবেন।

একটি গ্রুপকে সরাতে
1। Start Screen এর জুম আইকনে ক্লিক করুণ।
2। গ্রুপটিতে চাপ দিন ও টেনে নিয়ে যান অথবা ক্লিক করুন ও টেনে নিয়ে যান যেখানে আপনি নিতে চান।
যখন আপনি গ্রুপটিকে সরিয়ে ফেলেছেন, তখন জুম আগের অবস্থায় আনার জন্য স্ক্রিণের যেকোন স্থানে টোকা দিন বা ক্লিক করুন ।

ভিসুয়াল ওয়েব ডেভেলপার ব্যবহার না করে আবেদন প্রকাশ করা । ASP.NET MVC – Publishing the Website

ভিসুয়াল ওয়েব ডেভেলপার ব্যবহার না করে আবেদন প্রকাশ করা

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

ভিসুয়াল ওয়েব ডেভেলপার ব্যবহার না করে আবেদন প্রকাশ করাঃ/Publish Your Application Without Using Visual Web Developer
একটি ASP.NET MVC আবেদন Webmatrix , ভিসুয়াল ওয়েব ডেভেলপার বা ভিসুয়াল স্টুডিও কমান্ড ব্যবহার করে একটি দূরবর্তী সার্ভারে(remote server) প্রকাশ করা যায়।
এই ফাংশন কপি আপনার সব MVC , ওয়েব পেজ, razor , সাহায্যকারী , এবং ( একটি ডাটাবেস ব্যবহার করা হয় ) এসকিউএল সার্ভার কম্প্যাক্ট যা আপনার সব আবেদন ফাইল , কন্ট্রোলার , মডেল , ছবি, এবং সমস্ত আবশ্যক ডিএলএল ফাইল কপি করে।
আবার কখনও কখনও আপনি এই অপশনটি ব্যবহার করতে নাও চাইতে পারেন। কারণ হিসেবে বলতে পারি, হয়তো আপনার হোস্টিং প্রদানকারী শুধুমাত্র FTP সমর্থন করে? বা, হতে পারে আপনার ইতিমধ্যে ক্লাসিক এএসপি এর উপর করে একটি ওয়েব সাইট আছে ? বা, হতে পারে আপনি ফাইল নিজের জন্য কপি করতে চাইছেন ? আবার এও হতে পারে, যে আপনি প্রথম পাতা, এক্সপ্রেশন ওয়েব বা অন্য কিছু প্রকাশনা সফটওয়্যার ব্যবহার করতে চান?
আপনি কী কোন সমস্যায় আছেন? যদি হ্যাঁ হয়। তাহলে চিন্তা করার কিছু নেই। আপনি তা সমাধান করতে পারবেন।

একটি ওয়েব কপি সঞ্চালনের জন্য , আপনাকে জানতে হবে কিভাবে সঠিক ফাইল অন্তর্ভুক্ত করতে হয়, কোন DDL ফাইল কপি এবং কোথায় তাদের সঞ্চয় করে রাক্তে হবে।
নিচের পদক্ষেপগুলি অনুসরণ করুন :
1. ASP.NET এর সর্বশেষ সংস্করণ ব্যবহার করুনঃ/1. Use the Latest Version of ASP.NET
ASP.NET ব্যবহার করার আগে, নিশ্চিত করুন আপনার হোস্টিং কম্পিউটার এ ASP.NET এর সর্বশেষ সংস্করণ (4.0) রান করা আছে.

2. কপি ওয়েব ফোল্ডার/2. Copy the Web Folders
আপনার development কম্পিউটার থেকে আপনার ওয়েবসাইট ( সব ফোল্ডার এবং কন্টেন্ট) আপনার দূরবর্তী(remote) হোস্টিং কম্পিউটার (সার্ভার) এ একটি অ্যাপ্লিকেশন ফোল্ডারে কপি করুন। আপনার App_Data ফোল্ডার পরীক্ষা তথ্য ধারণ করে (test data), App_Data ফোল্ডারে কপি করবেন না (নিচে এসকিউএল তথ্য দেখুন)

3. এখন DLL ফাইলটি কপি করুন/3. Copy the DLL Files
দূরবর্তী সার্ভারে আপনার আবেদন root- র মধ্যে একটি বিন ফোল্ডার তৈরি করুন (যদি আপনার সাহায্যকারী ইনস্টল করা থকে , তাহলে আপনার ইতিমধ্যে একটি bin ফোল্ডার আছে)
ফোল্ডার থেকে সবকিছু দূরবর্তী সার্ভারে আপনার আবেদন এর bin ফোল্ডারে কপি করুনঃ

C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies

C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies

4. SQL সার্ভার কম্প্যাক্ট ডিএলএল ফাইল কপি করুন/4. Copy the SQL Server Compact DLL Files

যদি আপনার অ্যাপ্লিকেশন এ একটি SQL সার্ভার কম্প্যাক্ট ডাটাবেস ( App_Data ফোল্ডারে একটি .sdf ফাইল) থাকে, তাহলে আপনাকে এসকিউএল সার্ভার কম্প্যাক্ট ডিএলএল ফাইল কপি করতে হবে।
আপনার ফোল্ডার থেকে দূরবর্তী সার্ভারে আপনার আবেদন এর bin ফোল্ডারে কপি সবকিছু করুনঃ

C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0\Private

উদাহরণঃ
xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SqlServerCe.4.0" />

<add invariant="System.Data.SqlServerCe.4.0"
name="Microsoft SQL Server Compact 4.0"
description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.1,Culture=neutral, PublicKeyToken=89845dcd8080cc91" />

</DbProviderFactories>
</system.data>
</configuration>

5 . এবার এসকিউএল সার্ভার ডেটা কম্প্যাক্ট কপি করুন/5. Copy SQL Server Compact Data

App_Data ফোল্ডারে যা test data ধারণ করে সেখানে কি .sdf কোন ফাইল আছে?
আপনি কি দূরবর্তী সার্ভারে test data প্রকাশ করতে চান?
সম্ভবত না ।
যদি আপনি এসকিউএল ডাটা ফাইল ( .sdf ফাইল) কপি করুন , তাহলে আপনি ডাটাবেসের মধ্যে সবকিছু মুছে দিন, এবং তারপর সার্ভার আপনার উন্নয়ন কম্পিউটার থেকে empty .sdf ফাইল কপি করুন ।

দেখছেন তো? খুব মজার তাই না। সবাই ভাল থাকুন। আজ এই পর্যন্তই। আর কোথাও না বুঝতে পারলে কমেন্ট করতে ভুলবেন না কিন্তু ।

সার্চ ইঞ্জিন অপটিমাইজেশনঃ ওয়েবসাইট ভেরিফাই করা । SEO – Verifying Web Site

রিদওয়ান বিন শামিম

কোন একটি ওয়েবসাইট ডিজাইন ও ডেভলাপ করার পর কীভাবে বোঝা যাবে সব HTML syntax ঠিকভাবে ব্যবহার করা হয়েছে কিনা? কারণ সার্চ ইঞ্জিন গুলো সাধারণত ভুল HTML syntax এর জন্য কোন অভিযোগ করে না। অনেক এসইও এক্সপার্ট বলেন সার্চ ইঞ্জিন অপটিমাইজেশন HTML/XHTML ভেরিফিকেসনের উপর নির্ভর করে না। কিন্তু আমরা আলোচনা করব কী কী কারণে W3C Compliance হতে পারে । কয়েকটি কারণে HTML/XHTML ভেরিফিকেসনের প্রয়োজন হয়।একটি সাইটের মান নির্ভর করে সেটি কীভাবে লেখা হয়েছে তার উপর। সেটিকে syntactically নির্ভুল হতে হবে। সার্চ ইঞ্জিন কোন সাইটের কন্টেন্ট ইনডেক্সে সাজাতে গিয়ে HTML tags সঠিক ভাবে না পেলে কনফিউজড হয়ে যায়, একারনেই অনেক সাইটের ইনডেক্সই ঠিকভাবে সাজানো নয়। অনেক HTML tags থাকলে অনেক সময় তা depreciated হয়ে যায় ও অনেক সার্চ ইঞ্জিন তা পড়তে পারে না।

মূলত HTML Code এর সৌন্দর্য, প্রক্রিয়া করার ধরণই দক্ষ ওয়েব ব্যবহারকারীকে আকৃষ্ট করে। আলোচনা করা যাক W3C Compliance নিয়ে, W3C হল World Wide Web Consortium যা ১৯৯৪ সাল থেকে ওয়েবপেজ ও ওয়েবসাইট গঠন ও সৃষ্টি নিয়ে দিকনির্দেশনা দিয়ে যাচ্ছে। HTML/XHTML Validator ও CSS Validator এর মাধ্যমে W3C থেকে HTML/XHTML ও CSS ফাইল যা ওয়েবে প্রকাশ করা হবে তা ভ্যালিডেটেড করা হয়। ভ্যালিডেটেড করার সময় সঙ্গত কারণে অনেকসময় ভুলও হতে পারে। সব ভ্যালিডেশন XHTML DTD নামক মানদণ্ড প্রকরণ HTML দ্বারা করা হয়। W3C Compliance এর নিয়ম গুলো হল, XHTML declaration statements এর মাধ্যমে প্রতিটি XHTML পেজ শুরু করতে হয়,


<DOCTYPE html PUBLIC 
"-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">

  • প্রতিটা ট্যাগ বন্ধ হতে হয়। হেড ও বডি ট্যাগ বাধ্যতামূলক, এম্পটি ট্যাগে terminating slash ব্যবহার করতে হয়, এম্পটি ট্যাগে ইন্ড ট্যাগ ব্যবহার করতে হয় না, যেমন

<BR> is now <br />.
<HR> is now <hr />.
<IMG SRC="--"> is now <img src="--" />

  • এখন সব ট্যাগ লোয়ার কেস হবে, তবে attributes এর ক্ষেত্রে নয় কেবল ট্যাগের ক্ষেত্রে। যেমন, XHTML DTD তে নিচের উদাহরণ গুলোঃ

<FONT color="#ffffcc"> is invalid
<font color="#ffffcc"> is valid
<font color="#FFFFCC"> is also valid

  • attribute values কে double quotes এর মধ্যে রাখতে হয়।
  • ট্যাগ নেস্টেড হওয়ার দরকার নেই,

<b><i>Text</b></i> This is invalid
<b><i>Text</i></b> This is valid

  • <pre> ট্যাগ img, object, big, small, sub, বা sup.ইত্যাদি ধারন করে না,
  • একটি <form> ট্যাগ অন্য একটি <form> ট্যাগের মধ্যে থাকতে পারে না।
  • কোডের  মধ্যে & থাকলে &amp; কোড ব্যবহার করতে হয়,
  • যে কোন সিএসএস কোড থাকলে তা লোয়ার কেস হবে।

এসইও এর জন্য কনটেন্টই সেরা । SEO – Content is the King

কনটেন্টই মূলত এই সাইটে আপনি কি কি দেখাতে চান। যেমন টেক্সট, গ্রাফিক্স, এমনকি অন্যান্য ওয়েবসাইটের লিঙ্ক। আপনার সাইডে অত্যধিক গ্রাফিক্স ব্যবহার করা উচিত নয় কারণ এতে করে আপনার ওয়েব সাইড লোড হতে সময় নিবে।

আপনার ওয়েবসাইডকে সার্চ ইঞ্জিন ফ্রেন্ডলি কিভাবে করবেন তার জন্য হাজার হাজার লেখা, বই এবং ফোরাম সাইড পাবেন। কিন্তু শেষ পর্যন্ত আপনাকে একটি নিয়ম অব্যশই মানতে হবে যে, স্বতন্ত্র, উচ্চ মানের কনটেন্ট।

স্বতন্ত্র, উচ্চ মানের কনটেন্ট

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

এসইও কনটেন্ট লিখন (কপি লেখা)

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

  1. কনটেন্ট সুনির্দিষ্ট লোকদের জন্য লিখতে হবে।
  2. কীওয়ার্ড ডেনসিটির জন্য সার্চ ইঞ্জিন নীতিমালা অনুসরণ করতে হবে।
  3. শিরোনাম অব্যশই আকর্ষণীয় এবং ভিজিটরদের কাছে আকর্ষক হতে হবে।
  4. বিভ্রান্তিকর, দ্ব্যর্থক, এবং জটিল ভাষা ব্যবহার করা যাবে না।
  5. আপনার ওয়েব পেজকে সংক্ষিপ্ত করতে হবে।

ভাল কনটেন্ট এর অন্যান্য উপকারিতা

এটা শুধু এসইও নয় এর মাধ্যমে আপনি আপনার মনের চিন্তা শক্তি অন্যের কাছে উপস্থাপন করতে পারবেন। অনেক কারণেই আপনার সাইট জনপ্রিয় হতে পারে।

  • আপনার সাইডে যদি স্বতন্ত্র কিছু থাকে তবে লোকজন আপনার সাইডে ভিজিট করার জন্য অন্যকে উপদেশ দিবে।
  • অন্যান্য ওয়েবমাষ্টার আপনার সাইডের লিংক অন্য সাইডে দিবে।

উপসংহার

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

সার্চ ইঞ্জিন অপটিমাইজেশনঃ অপটিমাইজড এঙ্কর । SEO – Optimized Anchor

রিদওয়ান বিন শামিম

 

সার্চ ইঞ্জিন অপটিমাইজেশনে সমস্ত টেক্সট লিঙ্কে বর্ণনামূলক এঙ্কর টেক্সট ব্যবহার করা উচিৎ। বেশিরভাগ সার্চ ইঞ্জিন এঙ্কর টেক্সটকে সম্ভাব্য লিঙ্ক হিসাবে দেখে। এঙ্করের একটি উদাহরণ হলঃ


<a href="otherpage.htm" title="Anchor Title">Anchor Text</a>

এঙ্করের কয়েকটি গুরুত্বপূর্ণ বিষয় হল

  • এঙ্কর খুব গুরুত্বপূর্ণ তাই ভাল কীওয়ার্ড ব্যবহার করা উচিৎ।
  • এঙ্কর টাইটেল দর্শকের কাছে balloon ব্যবহার করার সুযোগ দেয় ও লিখিত টেক্সট দৃশ্যমান করে তুলে।
  • এঙ্কর টেক্সট সাবধানে নির্বাচন করা উচিৎ এটি শুধু সার্চ ইঞ্জিন নয় ন্যাভিগেশনের জন্যও গুরুত্বপূর্ণ।
  • otherpage.htm অন্য কোন পেজে যাওয়ার জন্য ব্যবহার করা হয়। এটি অন্য কোন সাইটে যাওয়ার ক্ষেত্রেও ব্যবহার করা হয়, আর এজন্যই মনে রাখতে হবে, সেই সাইটটি যেন ঠিক থাকে, নাহলে ব্রোকেন লিঙ্ক হয়ে যাবে, যা সার্চ ইঞ্জিনের রেঙ্কিং এর জন্য খারাপ হতে পারে। এই কোডটি

<a href="otherpage.htm" title="Anchor Title">
<img src="image.gif" alt="keywords" />
</a>

এক ধরণের কোড যেখানে এঙ্কর টেক্সটের বদলে ইমেজ ব্যবহার করা হয়, এক্ষেত্রে অল্ট ট্যাগ (alt tag) খুব সাবধানে ব্যবহার করা হয়। এই অল্ট ট্যাগে কী ওয়ার্ডও খুব সাবধানে ব্যবহার করা উচিৎ।

এসইও – টাইটেল অপটিমাইজেশান । SEO – Title Optimization

নয়ন চন্দ্র দত্ত

 

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

সার্চ ইঞ্জিন অপটিমাইজেশান

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

  • ওয়েবসাইটের টাইটেল বা নাম
  • ওয়েবসাইটের ডেসক্রিপশন বা বিবরণ
  • ওয়েবসাইটের মেটা ট্যাগ
  • ওয়েবসাইটের সাইট ম্যাপ
  • ওয়েবসাইটে ব্যবহৃত ছবিগুলোর টাইটেল বা নাম
  • ওয়েবসাইটে ব্যবহৃত ছবিগুলোর অল্ট বিবরণ
  • ওয়েবসাইটে ব্যবহৃত ছবিগুলোর ক্যাপশন ইত্যাদি

এই বিষয়গুলো নিশ্চিত করে ওয়েবসাইটকে সার্চ ইঞ্জিনের কাছে দৃষ্টিগোচর করার কাজটিই এসইও'র মূল কাজ বলে পরিগণিত হয়। আজ আমরা দেখব এসইও এর টাইটেল অপ্টিমাইজেশান সম্বন্ধে-

এসইও - টাইটেল অপটিমাইজেশান

একটি HTML টাইটেল ট্যাগ হেড ট্যাগ এর ভিতরে থাকে। পেজ টাইটেল (পেজের জন্য হেডিং দিয়ে বিভ্রান্ত করা যাবে না) আপনার ব্রাউজার উইন্ডোর টাইটেল বারের মধ্যে যা প্রদর্শন করা হয় এবং আপনি যখন একটি পেজ বুক্মার্ক করেন তখন যা প্রদর্শন করে অথবা আপনার ব্রাউজারে পছন্দের তালিকায় যা যোগ করা হয়।

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

এখানে একটি ওয়েব পেজ -এর টাইটেল ডিজাইন করার সময় কিছু বিবেচ্য বিষয় উল্লেখ করা হয়েছে:

  1. টাইটেল ৯ ওয়ার্ড বা ৬০ অক্ষর দ্বারা গঠিত উচিত
  2. টাইটেলের খুব প্রারম্ভে কীওয়ার্ড ব্যবহার করুন
  3. আপনার কোম্পানীর নাম যদি খুব ভালোভাবে পরিচিত না হয় তাহলে টাইটেলে আপনার কোম্পানীর নাম অন্তর্ভুক্ত করবেন না

টাইটেল তৈরী করার জন্য সর্বোত্তম উপায়

এখানে পেজের টাইটেল তৈরি করার জন্য কিছু পদ্ধতি দেওয়া হয়েছে যা আপনি অনুসরণ করতে পারেনঃ

  1. প্রতিটি পেজের জন্য একটি ইউনিক টাইটেল রাখতে হবে।
  2. সম্বব হলে, প্রতিটি পেজের প্রতিটি টাইটেল এ প্রাথমিক কীওয়ার্ড ফ্রেজ ব্যবহার করার চেষ্টা করুন।
  3. আপনার হোম পেজের টাইটেল প্রাথমিক কীওয়ার্ড ফ্রেজ দিয়ে আরম্ব করুন যা সেরা সেকেন্ডারি কীওয়ার্ড ফ্রেজ অনুসরণ করে।
  4. আপনার নির্দিষ্ট পণ্য, সেবা, বা কন্টেন্ট পাতায় আপনার প্রধান কীওয়ার্ড ফ্রেজ আরো সুনির্দিষ্টভাবে ব্যবহার করুন।
  5. যদি আপনার কোম্পানীর নাম অন্তর্ভুক্ত করতে হয় তাহলে টাইটেল এর শেষে করুন
  6. কীওয়ার্ডের জন্য বহুবচন বা একবচন এর সেরা ফর্ম ব্যবহার করুন যা WordTracker এর অনুসন্ধান এর ক্ষেত্রে বেশি ব্যবহৃত হয়।
  7. টাইটেলে আপনার কীওয়ার্ড 2 থেকে 3 এর অধিক পুনরাবৃত্তি করবেন না।
  8. এটি নিশ্চিত করুন যে <title> ট্যাগ আপনার পেজের <head> বিভাগের প্রথম উপাদান।  এটি Google এর জন্য পেজটি খুঁজে পাওয়া সহজ করে।

আজকের মত এই পর্যন্ত। আশা করি সবার খুব ভাল লেগেছে । পরবর্তি টিউটোরিয়ালে এসইও নিয়ে আরো অনেক কিছু লিখব। সবাই ভাল থাকবেন আর কোন জায়গায় বুঝতে কোন সমস্যা হলে নিশ্চই কমেন্ট করবেন ।

সার্চ ইঞ্জিন অপটিমাইজেশন মেটা ট্যাগ । SEO – Optimized Metatags

রিদওয়ান বিন শামিম।

 

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


KEYPHRASE1 etc.          about 30 to 40 unique words">
<meta name="description"   content="An accurate, keyword-rich description    about 150 characters">

মেটা ডেসক্রিপশন ট্যাগের জন্য কিছু গুরুত্বপূর্ণ বিষয় হল, মেটা ডেসক্রিপশন ট্যাগে কীওয়ার্ড ব্যবহার করা উচিৎ। কোন শব্দ বেশি রিপিট করা উচিৎ নয়, কিন্তু multiplesyntaxes কীওয়ার্ড হিসেবে ব্যবহার করা যায়। একক কোন ওয়েবপেজে ডেসক্রিপশন মেটাট্যাগে  ১৫০ এর বেশি ক্যারেকটার ব্যবহার করা উচিৎ নয়। প্রতি পেজের জন্য আলাদা মেটা ডেসক্রিপশন ট্যাগ ব্যবহার করা উচিৎ কারণ ভাল টাইটেল ও বর্ণনা আপনার সাইটটিকে খুঁজে পেতে সহায়ক হতে পারে। মেটা কীওয়ার্ড ট্যাগের জন্য সিনোনেম ও ইউনিক কীওয়ার্ড  ব্যবহার করা উচিৎ, একই ফ্রেজ বারবার ব্যবহার করার দরকার নেই তবে ভিন্ন ফ্রেজের জন্য একই শব্দ একাধিকবার ব্যবহার করা যেতে পারে।  এগুলো ছাড়াও রোবট মেটাট্যাগ নামের আরেকটি ট্যাগ আছে যা এরকম দেখায়ঃএধরনের ট্যাগ দ্বারা আপনি কোন পেজকে ইনডেক্স আকারে না চাইলে  রোবট বা স্পাইডারকে আপনি বলতে পারেন যে আপনি কোন পেজকে ইনডেক্স আকারে চান না। বা লিঙ্ক ফলোইন না চাইলে সেটিও বলতে পারেন।

এসইও – প্রাসঙ্গিক ফাইলের নাম । SEO – Relevant Filenames

সার্চ ইঞ্জিনে আপনার সাইটের অবস্থান প্রাসঙ্গিক ফাইলের নামের উপর অনেকটা নির্ভর করে । অনেক গবেষণার মাধ্যমে জানা গেছে যে, গুগল সাধারণত প্রাসঙ্গিক ফাইলের নামের উপর অধিকতর গুরুত্ব দিয়ে থাকে। সুতারাং, পেজের নামকরনের পূর্বে আপনাকে মনে রাখতে হবে পেজটা সাধারণত কোন বিষয়ের উপর লেখা।

গুগলে কোন কিওয়ার্ড লিখে সার্চ দিলে আপনার ওয়েবসাইট এর পেজ যদি সেই একই কিওয়ার্ড থাকে তাহলে টা সার্চ ইঞ্জিন এ প্রদর্শিত হবে।

 

ফাইল এর নামকরন যেভাবে করবেন

  1. ফাইল এর নামে সাধারনত বিষয়বস্তুর উপর নির্ভর করবে সেটা সংক্ষিপ্ত না বর্ণনামূলক হবে।
  2. পেজ টাইটেল এ যে কিওয়ার্ড করবেন, ফাইল নাম এ ঠিক একই কিওয়ার্ড ব্যবহার করার চেষ্টা করবেন।
  3. জেনারিক ফাইলের নাম যেমন, “job.htm, service.htm”  এগুলো ব্যবহার করা হতে বিরত থাকবেন।
  4. নামের বিভিন্ন অংশগুলোকে যদি পৃথককরনের প্রয়োজন পরে তাহলে আন্ডার স্কর বাদ দিয়ে হাইফেন ব্যবহার করার চেষ্টা করুন।
  5. সম্ভব হলে শুধুমাত্র ২ টা কিওয়ার্ডস ব্যবহার করুন।

 

ফাইল নামের উদাহরন

কিছু কিছু আদর্শ নামের উদাহরন নিম্নে উল্লেখ করা হল,

  • slazenger-brand-balls.html
  • wimbledon-brand-balls.html
  • wilson-brand-balls.html

লক্ষ্য করবেন যে, ফাইল নামের এ বিভিন্ন অংশ হাইফেন দ্বারা সংযুক্ত আছে।

 

ফাইল নামের শেষের অংশ

ফাইল নামের শেষের অংশ যেমন, .htm, .php, .html ইত্যাদি আপনার সাইট এর জন্য গুগল রাঙ্ক এ কোন অবস্থান নির্ণয়ে অবদান রাখে না। এটা শুধু ওয়েব সার্ভার কে বলে দেয়, ফাইল টি সাধারনত কিভাবে খুলবে।

 

যে বিষয়গুলি অবশ্যই মনে রাখতে হবে

  1. ফাইলএর নাম ছোট, সংক্ষিপ্ত এবং প্রাসঙ্গিক রাখার চেষ্টা সবসময় করতে হবে।
  2. ফাইলের নামে ৩-৪ টা কিওয়ার্ডস ব্যবহার করার চেষ্টা করুন এবং লক্ষ্য রাখুন সেগুলো যেন সার্চ ইঞ্জিনেও প্রকাশিত হয়।
  3. উপ- ডিরেক্টরি গুলোতে যথাসম্ভব ছোট নাম ব্যবহার করার চেষ্টা করবে।
  4. ফাইলের আকার ১০১ কিলোবাইটে সীমাবদ্ধ রাখার চেষ্টা করুন। গুগল সাধারণত নির্দিষ্ট আকারের বড় ফাইল প্রকাশ করে না।

 

এসইও অনুকূল কীওয়ার্ড । SEO – Optimized Keywords

এসইও- কীওয়ার্ড অপটিমাইজড

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

কীওয়ার্ড সম্পর্কিত নিম্নলিখিত ধারণা একটি ওয়েবপেজ নিখুঁত ভাবে খুঁজে পেতে সাহায্য করে।

কীওয়ার্ড ফ্রিকোয়েন্সি

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

সাধারণভাবে একটি অনুচ্ছেদ বা আর্টিকেলে আপনার কীওয়ার্ড ৩-৭ বার পর্যন্ত হতে পারে এটা স্বাভাবিক এতে করে এসইও-অপটিমাইজেশন এর উপর খারাপ কোন প্রভাব পরবে না।

কীওয়ার্ড প্রক্সিমিটি

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

কীওয়ার্ড এর বৈশিষ্ট্য

এটি একটি ওয়েবপেইজ তাড়াতাড়ি বা দ্রুততার সাথে খোঁজে পায়। শিরোনামে এবং একটি পৃষ্ঠার প্রথম অনুচ্ছেদের (প্রথম ২০ শব্দ) মধ্যে কীওয়ার্ড ব্যবহার করলে সবচেয়ে ভাল হয়।

কীওয়ার্ড বসানো

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

কীওয়ার্ড এর ব্যবহার

কীওয়ার্ড কিভাবে ব্যবহার করবেন তার একটি তালিক দেওয়া হলো।

  • Keywords in thetag(s) or other headline tags.
  • Keywords in the keywords link tags.
  • Keywords in the body copy.
  • Keywords in alt tags.
  • Keywords in <!-- insert comments here> comments tags.
  • Keywords in the URL or website address.

কীওয়ার্ড খোঁজা

আপনার ওয়েব সাইটের জন্য কীওয়ার্ড খুঁজে বের করার বিভিন্ন উপায় আছে। তার মধ্যে সবচেয়ে ভাল হলো Google Keyword Tool ব্যবহার করা।

শব্দ স্টেমিং কি?

গুগল এর একটি বৈশিষ্ট্য হলো এটি স্টেমিং ব্যবহার করে। যেখানে এক বচন শব্দ এবং বহু বচন শব্দ সকল ধরনের শব্দ ধরতে পারে ।

এসইও কৌশল ও কার্যপদ্ধতি । SEO – Tactics & Methods

নয়ন চন্দ্র সরকার

 

এসইও এর প্রকারভেদ

এস ই ও এর কার্যাবলী সাধারণত দুই ভাগে বিভক্ত করা যেতে পারে। যেমন,

  1. হোয়াইট হ্যাট এস ই ও
  2. ব্ল্যাক হ্যাট এস ই ও

হোয়াইট হ্যাট এসইও

এস ই ও এর কার্যাবলীগুলোর মধ্যে যদি নিম্নোক্ত বিষয়গুলি অন্তর্ভুক্ত থাকে, তাহলে তাকে হোয়াইট হ্যাট এস ই ও বলা যেতে পারে,

  1. যেটা গুগল এর নির্দেশনাসমূহ মেনে চলে ।
  2. যেটাতে কোন প্রতারনার পন্থা অবলম্বন করা হয় না ।
  3. এটা নিশ্চিত করে যে, গুগল সার্চ এ যে বিষয়বস্তু সমূহ প্রদর্শন করবে, ওয়েবসাইট এর বিষয়বস্তুসমূহ ঠিক একই হবে।
  4. এটা নিশ্চিত করবে যে, ওয়েবসাইট এর বিষয়বস্তুসমূহ প্রধানত ব্যবহারকারীদের জন্যই তৈরি করা হয়েছে, শুধুমাত্র গুগল এর সার্চ ইঞ্জিন এ ভাল অবস্থান পেতে নয়।
  5. যেটা ওয়েবপেজ এর ভাল গুনাগুন নিশ্চিত করে।
  6. যেটা ওয়েব পেজ এ ভাল মানের বিষয়বস্তুর নিশ্চয়তা বিধান করে।

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

ব্ল্যাক হ্যাট এসইও

যদি একজন অনুসন্ধান ইঞ্জিন অপটিমাইজার তাঁর ওয়েবপেজ এর সার্বিক উন্নয়নে নিম্নোক্ত পথসমুহ অবলম্বন করে, সেই পদ্ধতিকে ব্ল্যাক হ্যাট এস ই ও বলে অভিহিত করা যেতে পারে,

  1. গুগল এর নির্দেশনা সমূহ উপেক্ষা করে ওয়েবসাইট এর রাঙ্ক বৃদ্ধিতে কাজ করলে।
  2. যদি ব্যবহারকারিকে অন্যকোন ওয়েবসাইট থেকে নিজের ওয়েবসাইট এ নিয়ে আসার চেষ্টা করা হয় , যার মান পূর্বোক্ত ওয়েবসাইট এর সমান বা কম মানের অধিকারী।
  3. কি ওয়ার্ড এ মেটা ট্যাগ এর পুনরাবৃত্তি ঘটালে।
  4. ওয়েবসাইট এর ঠিকানার সাথে মিল না রেখে বিষয়বস্তু নির্ধারণ করলে।
  5. এইচ টি এম এল কোড ব্যবহার করে ওয়েব পেজ এর কোন বিষয়বস্তু গোপন করলে।

সর্বোপরি, আপনার ওয়েবসাইট এর উন্নয়েনে হোয়াইট হ্যাট এস ই ও এর কৌশল সমূহ অনুসরন করা উচিত। আপনি ওয়েবপেজ এর উন্নয়নে যেটাই অনুসরণ না কেন, গুগল অবশ্যই সেটা জানতে পারবে এবং সে অনুযায়ী বাবস্থা গ্রহণ করবে।

 

সার্চ ইঞ্জিন অপটিমাইজেশন কি? What is SEO?

মোঃ কামাল হসেন

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

সার্চ ইঞ্জিন অপটিমাইজেশনের প্রধান প্রধান উদ্দেশ্য গুলোর মধ্যে রয়েছে-

  • একটি সাইটকে সকলের কাছে সহজে পৌছে দেওয়া।
  • ওয়েব সাইটের জন্য প্রিয়তা বৃদ্ধি করা।
  • সাইটের ভিজিটর বা ট্রাফিক বৃদ্ধি করা।
  • বিভিন্ন ধরনের অনলাইন থেকে আয় করার পণটাটফরম হিসেবে কাজ করে।
  • তথ্য বিনিময় ও প্রতিযোগিতায় টিকে থাকার শক্ত ভিত হিসেবে কাজ করে।

সার্চ ইঞ্জিন কিভাবে কাজ করে

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

ক্রলিং

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

গুগল ডাটাবেজকে আপডেট রাখার ক্ষেত্রে এটি সবচেয়ে জরুরী। গুগলবট কোন পেজে পরিবর্তনের একটা ফ্রেকোয়েন্সী বের করে এবং সেই হিসেবে ঠিক করা হয় যে গুগলবট কত সময় পর পর কোন পেজ ক্রলিং করবে। কারণ যেই পেজ মাসে একবার পরিবর্তন হয় সেটা কয়েকঘন্টা পরপর ক্রলিং করা সময় নষ্ট ছাড়া কিছুই না। ডাটাবেজ আপডেট করার এই ক্রলিংকে ফ্রেশ ক্রলিং বলে।

ইন্ডেক্স

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

গুগল কুয়েরী প্রসেসর

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

বিখ্যাত কয়েকটি সার্চ ইঞ্জিনের নাম হলো

গুগল (google), ইয়াহু (yahoo),বিং( bing) ইত্যাদি । এই সব সাইটে আপনি একটি শব্দ সার্চ বক্সে লিখে সার্চ বাটনে ক্লিক করলে , কয়েক সেকেন্ড এর মধ্য অনেক ওয়েবসাইটের লিংক চলে আসে, যেসব লিংকে গেলে কাঙ্ক্ষিত ফলাফল পাওয়া যায় ।

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

সার্চ ইঞ্জিন অপটিমাইজেশন মুলত দুই ধাপের মাধ্যমে হয়ে থাকে-

  1. অন পেজ অপটিমাইজেশন
  2. অফ পেজ অপটিমাইজেশন

১) অন পেজ অপটিমাইজেশন

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

২) অফ পেজ অপটিমাইজেশন

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

তাই চেষ্টা করা উচিত সাইট এর কন্টেনটগুলো যেন অন্যান্য সাইট থেকে একটু আলাদা হয়। এর পরে আপনি আপনার কন্টেনট অনুযায়ী কিছু জনপ্রিয় কী- ওর্য়াড আপনার কন্টেনট পেইজ এ যোগ করে দিন।

এসইও বা সার্চ ইঞ্জিন অপ্টিমাইজেশন বলতে আমরা সোজা কথায় বুঝি সার্চ ইঞ্জিনের সাথে ওয়েবসাইটের ভাল সম্পর্ক তৈরি করা। সার্চ ইঞ্জিন অপ্টিমাইজেশন ছাড়া একটা ওয়েবসাইট কখনোই পূর্ণতা পায় না কারন কোটি কোটি সাইটের অবস্থান প্রথম সারিতে তৈরি করতে হলে এর বিকল্প নেই।

এসএসপিডটনেট এমভিসি – এইচটিএমএল হেল্পার . ASP.NET MVC – HTML Helpers

এসএসপিডটনেট এমভিসি - এইচটিএমএল হেল্পার
Sheikh Mahfuzur Rahman
Bangla Word: 250

এইচটিএমএল আউটপুটকে পরিবর্তন করতে এইচটিএমএল হেল্পারগুলো ব্যবহৃত হয়।

এইচটিএমএল হেল্পার/HTML Helpers

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

স্ট্যান্ডার্ড এইচটিএমএল হেল্পার/Standard HTML Helpers

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

এইচটিএমএল লিংক/HTML Links

একটি এইচটিএমএল লিংককে পরিচালনা ( render ) করার সবচেয়ে সহজ পথ হলো HTML.ActionLink() হেল্পার ব্যবহার করা। এমভিসি'র মাধ্যমে Html.ActionLink() কোন ভিউয়ের দিকে লিংক তৈরি করেনা। এটি একটি কন্ট্রোলার অ্যাকশানের দিকে লিংক তৈরি করে।

Razor Syntax:
@Html.ActionLink("About this Website", "About")
ASP Syntax:
<%=Html.ActionLink("About this Website", "About")%>

প্রথম প্যারামিটারটি হলো লিংক টেক্সট এবং দ্বিতীয় প্যারামিটারটি হলো কন্ট্রোলার অ্যাকশানের নাম।
উপরের Html.ActionLink() হেল্পারটি নিচের এইচটিএমএল'টি আউটপুট হিসেবে ফিরিয়ে দেয়ঃ
<a href="/Home/About">About this Website</a>

Html.ActionLink() হেল্পার এর কিছু সংখ্যক প্রপার্টি রয়েছেঃ

প্রপার্টি এবং ব্যাখ্যা । Properties and Explanations

.linkText লিংক টেক্সট (লেবেল)
.actionName টার্গেট অ্যাকশান

.routeValues অ্যাকশানে যে ভ্যালুগুলো পরিবাহিত (--) হয়

.controllerName টার্গেট কন্ট্রোলার

.htmlAttributes লিংক এর প্রতি অ্যাট্রিবিউটের সেট

.protocol লিংক প্রটোকল

.hostname লিংক এর হোস্ট নেম

.fragment লিংক এর অ্যাংকর টার্গেট

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

Razor Syntax C#:
@Html.ActionLink("Edit Record", "Edit", new {Id=3})
Razor Syntax VB:
@Html.ActionLink("Edit Record", "Edit", New With{.Id=3})

উপরের Html.ActionLink() হেল্পারটি নিচের এইচটিএমএল'টি আউটপুট দেয়ঃ
<a href="/Home/Edit/3">Edit Record</a>

এইচটিএমএল ফর্ম এলিমেন্ট
নিচের এইচটিএমএল হেল্পারগুলো এইচটিএমএল ফর্ম এলিমেন্টগুলোকে রেন্ডার ( মডিফাই এবং আউটপুট ) বা পরিচালনা করতে ব্যবহৃত হয়ঃ

BeginForm()
EndForm()
TextArea()
TextBox()
CheckBox()
RadioButton()
ListBox()
DropDownList()
Hidden()
Password()

ASP.NET Syntax C#:
<%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %>
<% using (Html.BeginForm()){%>
<p>
FirstName">First Name:
<%= Html.TextBox("FirstName") %>
<%= Html.ValidationMessage("FirstName", "*") %>
</p>
<p>
LastName">Last Name:
<%= Html.TextBox("LastName") %>
<%= Html.ValidationMessage("LastName", "*") %>
</p>
<p>
<label for="Password">Password:</label>
<%= Html.Password("Password") %>
<%= Html.ValidationMessage("Password", "*") %>
</p>
<p>
<label for="Password">Confirm Password:</label>
<%= Html.Password("ConfirmPassword") %>
<%= Html.ValidationMessage("ConfirmPassword", "*") %>
</p>
<p>
<label for="Profile">Profile:</label>
<%= Html.TextArea("Profile", new {cols=60, rows=10})%>
</p>
<p>
<%= Html.CheckBox("ReceiveNewsletter") %>
<label for="ReceiveNewsletter" style="display:inline">Receive Newsletter?</label>
</p>
<p>
<input type="submit" value="Register" />
</p>
<%}%>

এএসপি.নেট এমভিসি সিকিউরিটি . ASP.NET MVC – Models

এএসপি.নেট এমভিসি সিকিউরিটি
Sheikh Mahfuzur Rahman
Bangla word: 75

এএসপি.নেট এমভিসি (ASP.NET MVC) সম্পর্কে শিখতে গিয়ে আমরা একটি ইন্টারনেট অ্যাপ্লিকেশন তৈরি করছি। আজ এটির অষ্টম পর্ব নিয়ে আলোচনা করা হবে। এর আগের সাতটি পর্ব পড়ে না থাকলে সেগুলো প্রথমে পড়ে নিন।

পর্ব আটঃ সিকিউরিটি যোগ করা

এমভিসি অ্যাপ্লিকেশন সিকিউরিটি

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

Models Folder অ্যাপ্লিকেশন মডেলকে যেসব ক্লাস প্রতিনিধিত্ব করে সেগুলো ধারণ করে। ভিজ্যুয়াল ওয়েব ডেভলাপার সয়ংক্রিয়ভাবে একটি AccountModels.cs ফাইল তৈরি করে যা অ্যাপ্লিকেশন অথেনটিকেশনের মডেলগুলো ধারণ করে।

AccountModels একটি LogOnModel, একটি ChangePasswordModel, এবং একটি RegisterModel ধারণ করেঃ

 

ছবিতে দেখুনঃ

http://bangla.salearningschool.com/10.jpg

চেঞ্জ পাসওয়ার্ড মডেল/The Change Password Model

public class ChangePasswordModel
{

[Required]
[DataType(DataType.Password)]
[Display(Name = "Current password")]
public string OldPassword { get; set; }

[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2}      characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "New password")]
public string NewPassword { get; set; }

[DataType(DataType.Password)]
[Display(Name = "Confirm new password")]
[Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }

}

লগঅন মডেল/The Logon Model

public class LogOnModel
{

[Required]
[Display(Name = "User name")]
public string UserName { get; set; }

[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }

[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }

}

রেজিস্টার মডেল/The Register Model

public class RegisterModel
{

[Required]
[Display(Name = "User name")]
public string UserName { get; set; }

[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "Email address")]
public string Email { get; set; }

[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }

[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }

}

উইন্ডোজ ৮.১ টিউটোরিয়াল : শুরু করা যাক (Get started)

শুরু করা যাক উইন্ডোজ 8.1

যদি আপনি উইন্ডোজ 8.1 বা উইন্ডোজ আর টি 8.1 সম্পর্কে বিস্তারিত জানতে চান তাহলে এই টউটোরিয়ালের 11 পৃষ্ঠা হচ্ছে শুরু করার সর্বোত্তম জায়গা। কিন্তু আপনি যদি আরো বিস্তারিতভাবে জানতে চান দেখুন উইন্ডোজের সাথে পরিচিত হউন...

প্রথম যা জানতে হবে

1। অনলাইনে প্রবেশ

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

শিখুন কিভাবে অনলাইনে প্রবেশ করবেন

2। মাইক্রোসফট একাউন্ট

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

মাইক্রোসফট একাউন্ট সম্পর্কে জানুন

চারপাশে আপনার পথ খুঁজে বের করা

3। Start সম্পর্কে সবকিছু

Start Screen হচ্ছে আপনার পিসি দিয়ে যা কিছু করবেন তার শুরুর ধাপ। আপনি একে চিন্তা করতে পারেন স্টার্ট মেনু হিসেবে কিন্তু এটি বর্তমানে সম্পূর্ণ পর্দা জুড়ে বিস্তৃত এবং আপনি একে আপনার অ্যাপ্লিকেশন, বন্ধু এবং ছবি দিয়ে নিজেরমত করে নিতে পারেন।

Start Screen সম্পর্কে জানুন

4। পরিচিত ডেস্কটপ

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

"ডেস্কডট সম্পর্কে জানুন

5। আপনার পিসির চারপাশ

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

শিখুন আপনার পিসির সবকিছু

6। খুঁজা, শেয়ার করা, প্রিন্ট করা এবং আরো

কোন ব্যাপার না আপনি আপনার পিসির কোথায় আছেন, আপনি প্রাথমিক কাজ সম্পাদনের জন্য চার্ম ব্যবহার করতে পারেন। দেখুন কিভাবে ওয়েবে এবং আপনার পিসিতে কোন কিছু খুঁজে বের করতে হয়, ছবি বা ওয়েবসাইট কিভাবে শেয়ার করতে হয়, কিভাবে  ‍Start এ ফিরে যেতে হয়, কিভাবে প্রিন্ট করতে হয় এবং অন্যান্য ডিভাইস ব্যবহার করতে হয় এবং কিভাবে সেটিং পরিবর্তন করতে হয়।

চার্ম সম্পর্কে জানুন

7। অ্যাপ্লিকেশন সংগ্রহ করা এবং ব্যবহার করা

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

শিখুন কিভাবে অ্যাপ্লিকেশন সংগ্রহ ও ব্যবহার করতে হয়।

সম্পন্ন অবস্থায় পাওয়া

8। ই-মেইল সেটআপ করা

পড়ার জন্য (Read), উত্তর দেওয়ার জন্য (Replay), আপনার Inbox কে সাজিয়ে গুছিয়ে রাখার জন্য যেকোন ব্রাউজার থেকে আপনি আপনার পিসিতে Mail Application অথবা Outlook.com ব্যবহার করতে পারেন। খুজে বের করুন, কিভাবে তাদের Set up করবেন এবং আপনার একাউন্টগুলো যোগ করবেন। অথবা Outlook অ্যাপ্লিকেশনের সাহায্যে চেষ্টা করুন। এটি উইন্ডোজ আরটি 8.1 এর সাথে বিনামূল্যে প্রদান করা হয়।

ই-মেইল Set up সম্পর্কে জানুন

9। web এ ব্রাউজ করুন

Internet Explorer এর সর্বশেষ সংস্করণের সাহায্যে আপনার পছন্দের ওয়েব সাইটে প্রবেশ করুন। ব্রাউজিং এর মৌলিক স্বাদ পান এবং নতুন বৈশিষ্ট সম্পর্কেও জানুন। আপনার পছন্দের সাইটে কিভাবে দ্রুততার সাথে যাবেন তার Tips সংগ্রহ করুন এবং বিরক্তিকর বিজ্ঞাপণ থেকে পরিত্রাণ পেতে কিভাবে রিডিং ভিউ দেখবেন তা জানুন।

Internet Explorer 11 সম্পর্কে জানুন

10। আপনার পিসিকে ব্যক্তিগত রূপ প্রদান

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

শিখুন একটি পিসিকে কিভাবে ব্যক্তিগত রূপ প্রদান করতে হয়

11। অনড্রাইভ

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

OneDrive সম্পর্কে জানুন

Random Short Notes on Project Management (PMI)

ব্যবস্থাপনার উপর কিছু সংক্ষিপ্ত নোটঃ
রিদওয়ান বিন শামীম

প্রকল্পের সুযোগ ব্যবস্থাপনার পরিকল্পনাঃ সুযোগ ব্যবস্থাপনার পরিকল্পনা হল মূলত নির্দিষ্ট করে কীভাবে প্রকল্পের সম্ভাব্য সুযোগের বিভিন্ন উত্থান পতনগুলো নিয়ন্ত্রণ করা যায় ও কীভাবে সুযোগের ক্ষেত্র গুলো নির্ধারণ করা যায়।এজন্যপ্রথমেই যা করতে হবে তা হল প্রকল্প শুরু করা। একটি প্রকল্প শুরু করাঃ একটি প্রকল্প শুরু করার সাথে মূলত দুই ধরণের উপাত্ত জড়িত থাকে, প্রথমটি হল প্রকল্পের কিছু নির্দিষ্ট বৈশিষ্ট্য গড়ে তোলা এবং দ্বিতীয়টি হল সম্ভাব্য প্রাথমিক সুযোগগুলোর একটি খসড়া গঠন করা।প্রকল্প ব্যবস্থাপকদের এক্ষেত্রে সরাসরি ও সততার সাথে আচরণ করতে হয়। যেকোনো পরিস্থিতিতে কোন সমস্যা এলে তাকে সোজাসুজি সেই সমস্যা মোকাবেলা করতে হয়। প্রকল্পের বৈশিষ্ট্য, যা অফিসিয়ালি একটি প্রকল্পের ভিত্তি, সেগুলো ব্যবসায়িক চাহিদা মেনে গঠন করতে হয়, সবসময় মাথায় রাখতে হয়, কেন প্রকল্পটি করা হচ্ছে অর্থাৎ প্রকল্পটির উদ্দেশ্য কি। সুযোগের খসড়া হয়ে যাওয়ার পর ও টিমের কর্মীদের কাজ শুরু হয়ে যাওয়ার পর সাধারণত প্রকল্পের যে ধারাটি শুরু করতে হয় তা হল ডবলুবিএস প্রসেস (WBS process) যা মূলত কাজের খণ্ডিত অংশগুলোর আউটপুট বা ফলাফল নির্ধারণ করে। এই আউটপুট গুলো কয়েকটি বিষয়ের সমন্বয়ে হয়ে থাকেঃ মূল্যবান সাংগঠনিক প্রক্রিয়া, প্রকল্পবিধি ও প্রাথমিক সুযোগগুলোর খসড়া ইত্যাদি। প্রকল্পের কর্ম প্রণালীর নিষ্ঠার ক্ষেত্রে প্রকল্প ব্যবস্থাপককে সব সময় খেয়াল রাখতে হয় সমস্যা সমাধান ও সিদ্ধান্ত গ্রহনের দিকে। সমস্যা সমাধান ও সিদ্ধান্ত গ্রহনের এই বিষয়গুলো ব্যবস্থাপককে একা দেখতে হয়, এগুলো টিম ওয়ার্ক নয়। এবিষয়ে কাজের ধারার বিবরণী পাওয়া যাবে ডবলুবিএস ডিকশনারিতে(in WBS dictionary)। সুযোগের গুরুত্ব নিশ্চিতকরণ হল এমন একটি প্রক্রিয়া যেখানে ক্রেতা ও অর্থ বিনিয়োগকারী যাচাই করতে চায় চূড়ান্তভাবে প্রাপ্ত পণ্য পূর্বের ধারণা করা পণ্যের মানের মতন হয়েছে কিনা।স্টেটমেন্ট অফ ওয়ার্ক বা কাজের বিবৃতিঃ স্টেটমেন্ট অফ ওয়ার্ক বা কাজের বিবৃতি প্রকল্পের খণ্ডিত অংশের বিবরণ দেয় যাতে অনেক সময় বাইরের বিক্রেতাদের অনেক বিষয়ও জড়িত থাকে।কোড অফ কন্ডাক্টের শর্তে প্রকল্প ব্যবস্থাপনার সাথে সংশ্লিষ্ট ব্যক্তিদের আরও বলা থাকে প্রকল্পের লাভ বা লভ্যাংশ নিয়ে যেকোনো ধরণের কোন্দল এড়িয়ে চলতে। ডবলুবিএস সার্ভের উদ্দেশ্যঃ ডবলুবিএস সার্ভে পুরো বিষয়টি চূড়ান্ত ভাবে খতিয়ে দেখে, এই ডবলুবিএস সার্ভের কয়েকটি উদ্দেশ্য আছে। সেগুলো হলঃ পূর্বে নিরুপিত সম্ভাব্যতা কতটুকু নির্ভুল তা জানা, নিয়ম নিষ্ঠা ও দায়িত্ববোধ মেনে চলাকে সহজ করা, প্রকল্পের সফলতার একটি মানদণ্ড তৈরি করা ইত্যাদি। এভাবেই প্রকল্প ব্যবস্থাপনার কাজ এগিয়ে চলে।
তথ্যসুত্রঃ (Andy Crowe, the PMP Exam.)

এএসপি.নেট এমভিসি – মডেল . ASP.NET MVC – Models

এএসপি.নেট এমভিসি - মডেল
Sheikh Mahfuzur Rahman
Bangla Word: 300

এএসপি.নেট এমভিসি (ASP.NET MVC) শেখার জন্য আমরা একটি ইন্টারনেট অ্যাপ্লিকেশান তৈরি করছি। আজকে এর সপ্তম পার্ট নিয়ে আলোচনা করা হবে; পূর্বের ছয়টি পার্ট সম্পর্কে না পড়ে থাকলে পড়ে নিন।

সপ্তম পার্টঃ ডাটা মডেল যোগ করা

এমভিসি মডেল/MVC Model
এমভিসি মডেল শুধু পিউর ভিউ এবং কন্ট্রোলার লজিক ছাড়া সবগুলো অ্যাপ্লিকেশন লজিক ধারণ করে, যেমন বিজনেস লজিক, ভ্যালিডেশান লজিক এবং ডাটা অ্যাক্সেস লজিক। এমভিসি'র মাধ্যমে মডেলগুলো অ্যাপ্লিকেশন ডাটাকে একই সাথে ধারণ ও পরিবর্তন (manipulate) করে।

মডেল ফোল্ডার/Model Folder

মডেলগুলোর ফোল্ডার ক্লাসগুলোকে ধারণ করে যা অ্যাপ্লিকেশন মডেলকে প্রতিনিধিত্ব করে। ভিজ্যুয়াল ওয়েব ডেভলাপার সয়ংক্রিয়ভাবে একটি AccountModels.cs ফাইল তৈরি করে যা অ্যাপ্লিকেশন সিকিউরিটির জন্য মডেলগুলো ধারণ করে। AccountModels একটি LogOnModel, একটি ChangePasswordModel, এবং একটি RegisterModel ধারণ করে।

ডাটাবেজ মডেল যোগ করা/Add Database Model

এই টিউটোরিয়ালের জন্য যে ডাটাবেজ মডেলটি দরকার তা নিচের সহজ ধাপগুলো অনুসরন করে তৈরি করা যায়ঃ

Solution Explorer এ Models ফোল্ডারে রাইট-ক্লিক করুন এবং Add এবং Class সিলেক্ট করুন
ক্লাসটির নাম দিন MovieDB.cs এবং Add এ ক্লিক করুন
ক্লাসটিকে এডিট করুনঃ

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;

namespace MvcDemo.Models
{
public class MovieDB
{
public int ID { get; set; }
public string Title { get; set; }
public string Director { get; set; }
public DateTime Date { get; set; }

}
public class MovieDBContext : DbContext
{
public DbSet<MovieDB> Movies { get; set; }
}
}

লক্ষ্যণীয়ঃ আমরা ইচ্ছাকৃতভাবে মডেল ক্লাসের নাম দিয়েছি "MovieDB" । পূর্বের অধ্যায়ে "MovieDBs" নামটিকে ( শেষে s আছে) আপনি ডাটাবেজ টেবলের জন্য ব্যবহৃত হতে দেখেছেন। এটা দেখতে অদ্ভুত দেখায়, কিন্তু এটি নামকরণের একটি রীতি যা ডাটাবেজ টেবলের সাথে মডেলটিকে কানেক্ট করতে ব্যবহার করা হয়।

একটি ডাটাবেজ কন্ট্রোলার যোগ করা

নিচের সহজ ধাপগুলো অনুসরন করে এই টিউটোরিয়ালের জন্য প্রয়োজনীয় ডাটাবেজ কন্ট্রোলারটি তৈরি করা যায়ঃ

আপনাকে প্রজেক্টকে আবার তৈরি করুনঃ Debug সিলেক্ট করুন, এবং তারপর মেন্যু থেকে Build MvcDemo সিলেক্ট করুন।
সল্যুশান এক্সপ্লোরারে, Controllers ফোল্ডারে রাইট-ক্লিক করুন, Add এবং Controller সিলেক্ট করুন
কন্ট্রোলারের নামকে MoviesController হিসেবে সেট করুন
টেমপ্লেট সিলেক্ট করুনঃ Controller with read/write actions and views, using Entity Framework
মডেল ক্লাস সিলেক্ট করুনঃ MovieDB (MvcDemo.Models)
ডাটা কন্টেক্সট ক্লাস সিলেক্ট করুনঃ MovieDBContext (MvcDemo.Models)
ভিউ সিলেক্ট করুনঃ Razor (CSHTML)
Add এ ক্লিক করুন

ভিজ্যুয়াল ওয়েব ডেভলাপাররা নিচের ফাইলগুলো তৈরি করবেঃ

Controllers ফোল্ডারে একটি MoviesController.cs ফাইল
Movies ফোল্ডারে একটি Views ফোল্ডার

ডাটাবেজ ভিউ যোগ করা
নিচের ফাইলগুলো সয়ংক্রিয়ভাবেই মুভিজ ফোল্ডারে তৈরি হয়ে যায়ঃ

Create.cshtml
Delete.cshtml
Details.cshtml
Edit.cshtml
Index.cshtml

একটি কানেকশান স্ট্রিং যোগ করা
আপনার Web.config ফাইলের <connectionStrings> এলিমেন্টে নিচের এলিমেন্টটি যোগ করুনঃ

<add name="MovieDBContext"
connectionString="Data Source=|DataDirectory|\Movies.sdf"
providerName="System.Data.SqlServerCe.4.0"/>

অভিনন্দন!

আপনাকে অভিনন্দন! আপনি আপনার অ্যাপ্লিকেশানে প্রথম এমভিসি ডাটা মডেল যোগ করেছেন।
এখন আপনি "Movies" ট্যাবে ক্লিক করতে পারবেন 🙂

উইন্ডোজ ৮.১ টিউটোরিয়াল: অনলাইনে প্রবেশ (Getting online)

উইন্ডোজ ৮.১ টিউটোরিয়াল 11 এর 1

E-mail চেক করা, পছন্দনিয় সাইটগুলো পরিদর্শন করা, বন্ধুদের ‍Status update এ মন্তব্য করা – ইন্টারনেট কানেকশনের উপর ভিত্তি করে অনেক কিছুই আপনি করতে পারেন। পথ খুঁজে বের করুণ আপনি কিভাবে অনলাইনে প্রবেশ করবেন এবং যখন আপনি পাবলিক নেটওয়পাক এ থাকবেন তখন কিভাবে আপনার তথ্য নিরাপদ রাখবেন।

শিখুন কিভাবে Online এ প্রবেশ করবেন:

ইন্টারনেটের সাথে সংযুক্ত থাকা
আপনি Social update পোষ্ট করতে চান, বন্ধুকে E-mail পাঠাতে চান অথবা আপনার প্রিয় ওয়েবসাইটগুলো পরিদর্শন করতে চান, ইন্টারনেট সংযোগ হচ্ছে তার চাবি। এবং আপনার যদি উইন্ডোজ 8.1 অথবা উইন্ডোজ আরটি 8.1 পিসি থাকে তাহলে এই কাজগুলো করতে হলে আপনার ইন্টারনেট সংযোগ প্রয়োজন হবে।

বাড়িতে সংযুক্ত করণ:
আপনার যদি ISP (ইন্টারনেট সার্ভিস প্রোভাইডার) যেমন- phone বা cable কম্পানী এর মত একটি  একাউন্ট (আইডি) থাকে তাহলে ইতিমধ্যেই আপনার বাড়িতে ইন্টারনেট সংযোগ আছে। আপনি আপনার পিসিকে একটি ইথারনেট তারের (Ethernet cable) মাধ্যমে মডেম এর সাথে সংযুক্ত করতে পারেন এবং ইন্টারনেট ব্রাউজার ওপেন করে ইন্টারনেট ব্যবহার করতে পারেন। যদি আপনার আরো সহায়তার প্রয়োজন হয় তাহলে আপনি “ইন্টারনেটে সংযোগ” দেখতে পারেন।
যদি বিভিন্ন পিসি বা ডিভাইস এ একই সংযোগ শেয়ার করতে চান অথবা যদি আপনি একটি পাসওয়ার্ড সুরক্ষিত সংযোগ চান, তাহলে আপনি আপনার বাড়িতে একটি নেটওয়ার্ক সেট আপ করতে পারেন। একবার সেটআপ করার পরে, আপনি Charm থেকে আপনার নেটওয়ার্ক নির্বাচন করতে পারবেন, আরো জানতে “একটি ডিভাইস বা পিসি যোগ করুন” দেখুন।
আপনি যখন বাড়িতে সংযোগ নিবেন তখন HomeGroup তৈরি করুন, যা পিসি থেকে গান অথবা ভিডিও শুনতে অথবা ফাইল বা ডিভাইস (যেমন প্রিন্টার হিসেব) দুটি পিসির মধ্যে শেয়ার করার জন্য নিখুঁত। আরো জানতে দেখুন “HomeGroup শুরু থেকে শেষ”।

আপনি যখন বাহিরে থাকবেন তখনও সংযুক্ত থাকা
প্রচুর সংখ্যক Public Places ওয়াই-ফাই সংযোগ সেবা প্রদান করে, যেমন কফি শপ বা বিমানবন্দর। যখন আপনি কফি বা ফ্লাইট এর জন্য অপেক্ষা করছেন, আপনি আপনার ই-মেইল চেক করতে পারেন বা ওয়েব সাইট ব্রাউজ করতে পারেন।
আপনি যদি এমন জায়গায় থাকেন যেখানে Wi‑Fi নেই, আপনি মোবাইলে ব্রডব্যান্ড সংযোগ চালু করতে পারেন। মোবাইল ব্রডব্যান্ড সংযোগ একটি ইন্টারনেট সংযোগ যা আপনি নিজের সাথে নিয়ে যেতে পারেন এবং যতদুর মোবাইল ফোন সেবা চালু আছে তার সবখানেই ইন্টারনেট ব্যবহার করতে পারবেন। আপনার একটি সিম কার্ড ক্রয় করতে হবে Phone বা Cable কম্পানীর কাছ থেকে এবং তারপর পিসির সাথে কার্ডটি সংযোগ করে মোবাইল ব্রডব্যন্ড সংযোগ চালু করতে পারবেন। মোবাইল ব্রডব্যন্ড সম্পর্কে আরো জানতে দেখুন “মোবাইল ব্রডব্যান্ড শুরু থেকে শেষ”।
কিছু ইন্টারনেট সংযোগ (বিশেষ করে মোবাইল ব্রডব্যান্ড সংযোগ) সীমাবদ্ধ হয়, অর্থাৎ আপনার পরিকল্পনা (Plan) অনুসারে আপনি সর্বচ্চ প্রতি মাসে নির্দিষ্ট পরিমাণ ডাটা ব্যবহার করতে পারবেন। এই ধরনের পরিকল্পনায় আপনাকে সচেতন থাকতে হবে আপনার Plan এর বেশি ডাটা ব্যবহার করে যেন বাড়তি বিল গুনতে না হয়। আপনি এটি পরীক্ষা করতে পারবেন ডেস্কটপ এর নেটওয়ার্ক আইকন এ ক্লিক করার মাধ্যমে বা Settings Charms এর মাধ্যমে। আরো জানতে দেখুন “ Metered ইন্টারনেট সংযোগ: প্রায়ই জিজ্ঞাসিত প্রশ্ন”।

একটি নেটওয়ার্কের সঙ্গে সংযোগ

আপনি যখন প্রথম উইন্ডোজ Set up করবেন, আপনি সাথে সাথে একটি ইন্টারনেট সংযোগ এর সাথে সংযুক্ত থেকে থাকতে পারেন। যদি না থাকেন তাহলে বিদ্যমান নেটওয়ার্কের একটি তালিকা দেখতে পারেন এবং তাদের যেকোন একটির সাথে সংযোগ স্থাপন করতে পারেন।

04b755eb-5c2c-49f0-a048-4975b31799b6_7

61ec004f-77c1-4406-9f8e-5dc6785822dc_8

বিদ্যমান নেটওয়ার্কের তালিকা দেখতে

১। পর্দার ডান প্রান্তে সুইপ করে যান এবং Settings এ টোকা দিন।
(যদি আপনি মাউস ব্যবহার করতে চান তাহলে মাউস পয়েন্টার পর্দার ডান পার্শ্বের নিচের দিকে নিয়ে যেয়ে Settings এর উপর ক্লিক করুন।)
২। নেটওয়ার্ক আইকন চেক করুন। এটি আপনাকে দেখাবে আপনি সংযুক্ত আছেন কিনা এবং সংযুক্ত থাকলে সংযুক্তি কতটা শক্তিশালি।
৩। আপনি যদি সংযুক্ত না থাকেন তাহলে নেটওয়ার্ক আইকনে ক্লিক করুন (1 অথবা 2)
৪। টোকা দিন বা ক্লিক করুন আপনি যে নেটওয়ার্কে সংযুক্ত হতে চান এবং তারপর Connect এ ক্লিক করুন।
আপনাকে পাসওয়ার্ড প্রদান করার জন্য জিজ্ঞাস করতে পারে। আপনি এটি নেটওয়ার্ক এডমিন এর কাছে পাবেন। আপনি যদি বাড়িতে থাকেন তাহলে এটা পরিবারের যেকোন সদস্যের কাছেই থাকতে পারে। আপনি যদি কর্মক্ষেত্রে থাকেন আপনার আইটি এডমিন এর কাছে জিজ্ঞাস করুন। যদি আপনি  public place এ থাকেন যেমন- কফি শপ, এমন কাউকে জিজ্ঞাস করুণ যে সেখানে কাজ করে।
৫। যদি আপনি এই নেটওয়ার্কে সবসময় সংযুক্ত হতে চান তাহলে Connect automatically চেক বক্স এ ক্লিক করুন।

মোবাইলে ব্রডব্যান্ড কানেকশন ব্যবহার

মোবাইলে ব্রডব্যান্ড কানেকশন কিভাবে ব্যবহার করবেন তা জানতে দেখুন “মোবাইলে ব্রডব্যান্ড শুরু থেকে শেষ

একবার যখন Set up করবেন, উইন্ডোজ আপনাকে সংযুক্ত রাখবে - যখন আপনি চলন্ত অবস্থায় থাকবেন তখন সয়ংক্রিয়ভাবে Wi-Fi সংযোগ, মোবাইল ব্রডব্যান্ড সংযোগে পরিবর্তিত হবে। এইভাবে আপনি সংযুক্ত অবস্থায় থাকবেন, এমনকি যখন এক জায়গা থেকে অন্য জায়গায় চলন্ত অবস্থায় থাকবেন বা যাবেন তখনও সংযুক্ত থাকবেন। বা আপনার খরচ কম রাখার জন্য যেখানে Wi-Fi সংযোগ আছে সেখানে মোবাইল ব্রডব্যান্ড থেকে সয়ংক্রিয়ভাবে Wi-Fi এ সংযুক্ত হবেন ।

এয়ারপ্লেন মোড (Airplane mode)

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

Airplane mode ব্যবহার করতে

১। পর্দার ডান কর্ণারের দিকে যান এবং Settings এ প্রবেশ করুন।
(যদি আপনি মাউস ব্যবহার করতে চান তাহলে মাউস পয়েন্টার পর্দার ডান পার্শ্বের নিচের দিকে নিয়ে যেয়ে Settings এর উপরে ক্লিক করুণ)
২। নেটওয়ার্ক আইকনে ক্লিক করুন1
৩। যখন আপনি বিমানে থাকবেন তখন Airplane mode চালু করুন এবং যখন মাটিতে নামবেন তখন তা বন্ধ করুন।

Airplane mode
Airplane mode সম্পর্কে আরো জানতে দেখুন “Airplane mode কি?

Public Network এর গোপনীয়তা

আপনি যখন বাড়ি হতে দুরে যাবেন এবং Public Network ব্যবহার করবেন, যেমন কফি শপ অথবা বিমানবন্দর, আপনার পিসি এবং ডাটা সংরক্ষিত রাখার জন্য আপনাকে কিছু পদক্ষেপ নিতে হবে।

প্রথমবার যখন আপনি Public Network এর সাথে সংযুক্ত হবেন, তখন জিজ্ঞাসিত হতে পারেন যে, আপনি কোনো ডিভাইস খুঁজতে চান কিনা এবং সেই নেটওয়ার্কের সাথে সংযুক্ত হতে চান কিনা। বলুন না, কেননা তাহলে অন্যান্য লোকেরা আপনার পিসিকে দেখতে পারবে না যখন আপনি এই নেটওয়ার্ক এর সাথে সংযুক্ত হবেন। যদি আপনি হ্যাঁ বলে ফেলেন গাবরানোর কিছু নেই। আপনি কিভাবে আপনার Settings পরিবর্তন করবেন তা এখানো দেয়া হলো ।

Public Network এ আপনার ডাটা নিরাপদ রাখার জন্য

১। পর্দার ডান কর্ণারের দিকে যান এবং Settings এ প্রবেশ করুন।
(যদি আপনি মাউস ব্যবহার করতে চান তাহলে মাউস পয়েন্টার পর্দার ডান পার্শ্বের নিচের দিকে নিয়ে যেয়ে Settings এর উপরে ক্লিক করুণ)
2। ক্লিক Network, ক্লিক Connections এবং তারপর নেটওয়ার্ক এর নামের উপর ক্লিক করুন।
3। Find devices and content বন্ধ করুন। আপনি এখনও অনলাইনে যেতে পারবেন কিন্তু অন্যারা যারা এই Public Network ব্যবহার করছে তারা আপনার ডাটা নিয়ে যেতে পারবে না।

উইন্ডোজ ৮.১ টিউটোরিয়াল: কেন ব্যবহার করবেন? (Why Windows)

উইন্ডোজ ৮.১ ব্যবহার করার সাতটি কারণ

টাচ ডেস্কটপ তৈরি করা আগে কখনোই সহজ ছিল না।

১। এটি সহজ
উইন্ডোজ ৮.১ কে আপনি আপনার পরিচিত ডেস্কটপ দিয়ে শুরু করতে পারেন অথবা Live Tiles এর মতো অ্যাপ্লিক্যাশন হিসেবে শুরু করতে পারেন। আপনি টাচ, মাউস এবং কিবোর্ড ব্যবহার করতে পারবেন - যেটা আপনার কাছে সুবিধাজনক মনে হয়। আপনি যে সকল যন্ত্রপাতি ব্যবহার করতে চান তার সবই ব্যবহার করতে পারবেন কেননা সেগুলোর প্রায় সবগুলোই উইন্ডোজ উপযোগী। সেই সাথে আপনি আপনার কম্পিউটারে, ওয়েভ সাইটগুলোতে, ক্লাউড এবং অ্যাপ্লিকেশন গুলোতে এবং একই সাথে Bing Smart Search এর মাধ্যমে যেকোন বিষয় খুঁজে পেতে পারেন - শুধুমাত্র স্ত্রিনের ডানের সার্চ Charm এ প্রবেশ করার মাধ্যমে।

২। সকল অ্যাপ্লিকেশনস

উইন্ডোজ অ্যাপ্লিকেশনস এর জগৎ
Windows Store এ আপনি নতুন আবিস্কার এর সাথে সাথে আপনার পছন্দের অ্যাপ্লিকেশন খুঁজে পাবেন। এবং Built in App আপনাকে আরো বেশি কিছু করতে সাহায্য করবে যেমন- The Food & Drink App আপনাকে রান্নার কাজে সাহায্য করবে এবং Photo App আপনাকে নতুন ভাবে আপনার তোলা ছবি সম্পাদনা করতে সহায়তা করবে।

৩। যন্ত্র (ডিভাইসেস)

বিশাল সংখ্যক যন্ত্র আছে আপনার প্রতিটি প্রয়োজন, বাসনা এর জন্য।

৪। ব্যস্ততা

Tools আপনাকে সাহায্য করবে আপনার কাজ সম্পাদনের জন্য
Office Application এর মাধ্যমে আপনি কার্য্যত আপনার কাজ করার স্বাধীনতা পাবেন যেকোন স্থানে যেকোন Device এর মাধ্যমে। যে অফিস অ্যাপ্লিকেশন আপনি জানেন এবং যাকে বিশ্বাস করেন তার মাধ্যমে ডকুমেন্ট তৈরি করুণ, Cloud এ সংরক্ষণ করুণ এবং অফিস অনলাইনের মাধ্যমে একই সাথে (রিয়েল টাইম এ) ডকুমেন্ট সম্পাদনা ও অন্যকে সহযোগীতা করুণ। সেইসাথে আপনার যখন প্রয়োজন হবে তখন Multitasking Split Screen (একই সাথে একাধিক কাজ করার জন্য স্ক্রিণকে বিভক্ত করার মাধ্যমে) আপনাকে সহায়তা করবে। এবং Bing Smart Search আপনাকে যেকোন তথ্য খুঁজে পেতে সহায়তা করবে তা সে যেখানেই থাকুক।

৫। একে ব্যক্তিগত করা

টাইলসকে আপনার পছন্দ অনুযায়ী তৈরি করুণ
কিছু অ্যাপ্লিকেশন Live Tiles আছে সুতরাং আপনি এদেরকে খোলা ছাড়াই Real time update দেখতে পারবেন। এবং আপনি গুরুত্ব অনুযায়ী Tiles এর আকার ও বসানোর স্থান নির্দারণ করে দিতে পারবেন।

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

একেবারে ঠিক না হওয়া পর্যন্ত চিমটানো

উইন্ডোজ কাস্টমাইজ করুণ এবং নিজের বানান
Start Screen এর ব্যাকগ্রাউন্ড পছন্দ করুণ, স্থাপণ করুণ আপনার পছন্দের অ্যাপ্লিকেশন, গেম ফোল্ডার, প্রোফাইল বা ওয়েবসাইট এবং আপনার প্রয়োজন অনুসারে সাজান। এটি ঠিক না হওয়া পর্যন্ত Josh একে নিয়ে খামচাখামচি করেন। অনেকটা তার রেস্টুরেন্ট এর মেনু (খাবার তালিকা) তৈরি করার মতো।

৬। সবসময়ই সংযুক্ত

আপনার ডিভাইস জুড়ে এর উইন্ডোজ
OneDrive এর মাধ্যমে আপনি প্রবেশ করতে পারবেন আপনার সঙ্গীত, সিনেমা, ফটো, ডকুমেন্ট, সেটিংস, উইন্ডোজ অ্যাপস এমনকি ব্রাউজিং ইতিহাস আপনার যন্ত্রের (ডিভাইস এর) মাধ্যমে - সেইসাথে আপনি বিনামুল্যে পাবেন ১৫ গিগাবাইট জায়গা। যা ২৫৫ ঘন্টা সঙ্গিত বা ২০,০০০ ওয়ার্ড ডকুমেন্ট বা ৩০০.০০০ ফটো রাখার জন্য যথেষ্ট - অন্য কথায় এটি যথেষ্ট পরিমাণ জায়গা।

আপনি ইচ্ছা করলে একই Microsoft Account যেকোন Device এ ব্যবহার করতে পারবেন। এর মানে হলো আপনাকে শুধুমাত্র আপনার User ID এবং Password মনে রাখতে হবে এবং স্বয়ংক্রিয়ভাবে উক্ত Device আপনার পছন্দের তালিকা ও সেটিংস অনুযায়ী আপনাকে অনুসরণ করবে।

৭। এর মজা

উইন্ডোজ XBox আপনার বিনোদন কেন্দ্র
XBox আপনার সম্পূর্ণ বিনোদন কেন্দ্র - Cloud এ, Game এ প্রবেশ করায়, সঙ্গীত, চলচ্চিত্র, আই টিউনস লাইব্রেরি এবং অন্যান্য ক্ষেত্রে - বাড়িতে এবং যেখানেই যান।

XBox গেম:
XBox গেমস এ আপনার চাহিদা অনুসারে Tiles আছে এবং প্রতিদিনই নতুন নতুন যোগ হচ্ছে। আপনি অনেক Game এর জন্য Touch Screen  ব্যবহার করতে পারেন এবং পেতে পারেন অনন্য অভিজ্ঞতা। এবং XBox সেবার মাধ্যমে আপনি আপনার বন্ধুর সাথে কথা বলতে পারেন - বিশ্বস্ততার সাথে।

এএসপি.নেট এমভিসি – এসকিউএল ডাটাবেজ . ASP.NET MVC – SQL Database

এএসপি.নেট এমভিসি - এসকিউএল ডাটাবেজ
Sheikh Mahfuzur Rahman
Bangla word: 300

এএসপি.নেট এমভিসি (ASP.NET MVC) শিখতে গিয়ে আমরা একটি ইন্টারনেট অ্যাপ্লিকেশন তৈরি করছি। আজকে যার ষষ্ট পার্ট নিয়ে আলচোনা করা হবে। পূর্বের পার্টগুলো পড়ে না থাকলে প্রথমে পড়ে নিন।

ষষ্ট পার্টঃ ডাটাবেজ যোগ করা

ডাটাবেজটি তৈরি করা

ভিজ্যুয়াল ওয়েব ডেভলাপারে এসকিউএল সার্ভার কম্প্যাক্ট নামের একটি ফ্রি এসকিউএল ডাটাবেজ রয়েছে।
এই টিউটোরিয়ালের জন্য যে ডাটাবেজটি দরকার তা নিচের সহজ ধাপগুলো অনুসরণ করে তৈরি করা যায়ঃ

Solution Explorer ইউন্ডোতে গিয়ে App_Dat ফোল্ডারে রাইট-ক্লিক করুন
Add, New Item সিলেক্ট করুন
SQL Server Compact Local Database * সিলেক্ট করুন
ডাটাবেজটির নাম দিন Movies.sdf
Add বাটনে ক্লিক করুন

যদি এসকিউএল সার্ভার কম্প্যাক্ট লোকাল ডাটাবেজ অপশান হিশেবে না থাকে তাহলে এর মানে হলো আপনি আপনার কম্পিউটারে এসকিউএল সার্ভার কম্প্যাক্ট ইন্সটল করেননি। এই লিংক থেকে এটি ইন্সটল করে নিনঃ এসকিউএল সার্ভার কম্প্যাক্ট।

ভিজ্যুয়াল ওয়েব ডেভলাপার সয়ংক্রিয়ভাবে App_Data ফোল্ডারে ডাটাবেজটি তৈরি করে।

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

একটি ডাটাবেজ টেবল যোগ করা

App_Data ফোল্ডারের Movies.sdf ফাইলে ডাবল-ক্লিক করলে Database Explorer উইন্ডো খুলবে। ডাটাবেজটিতে একটি নতুন টেবল যোগ করতে Tables ফোল্ডারে রাইট-ক্লিক করুন এবং Create Table সিলেক্ট করুন।
নিচের কলামগুলো তৈরি করুনঃ

Column
Type
Allow Nulls
ID
int (primary key)
No
Title
nvarchar(100)
No
Director
nvarchar(100)
No
Date
datetime
No

কলামগুলোর ব্যাখ্যাঃ
ID হলো একটি ইন্টিজার বা পূর্ণ সংখ্যা যা কলামের প্রত্যকটি রেকর্ডকে চিহ্নিত করতে ব্যবহৃত হয়।
Title হলো একটি ১০০ অক্ষরের টেক্সট কলাম যা মুভির নাম সংরক্ষণ করে।
Director হলো একটি ১০০ অক্ষরের টেক্সট কলাম যা ডিরেক্টরের নাম সংরক্ষণ করে।
Date হলো একটি datetime কলাম যা মুভিটির রিলিজ ডেট সংরক্ষণ করে।

 

ছবিতে দেখুনঃ

http://bangla.salearningschool.com/aspnet/pic_mvc_dbexplorer.jpg

উপরোল্লিখিত কলামগুলো তৈরি করার পর আপনাকে অবশ্যই ID কলামকে টেবলের প্রাইমারি কি (primary key বা record identifier ) হিসেবে সেট করতে হবে। এটা করতে, কলামের নাম (ID) এ ক্লিক করুন এবং Primary Key সিলেক্ট করুন। তাছাড়া, Column Properties উইন্ডোতে Identity প্রপার্টিকে True তে সেট করুনঃ

টেবলে কলামগুলো তৈরি করা শেষ হলে, MovieDBs নাম দিয়ে টেবলটি সেভ করুন।

লক্ষ্যণীয়ঃ আমরা ইচ্ছাকৃতভাবে টেবলটির নাম দিয়েছি "MovieDBs" ( শেষে s রয়েছে )। পরবর্তী অধ্যায়ে আপনি ডাটা মডেলের জন্য "MovieDB" নামটি দেখবেন। এটা দেখতে অদ্ভুত দেখায়, কিন্তু এটাই নামকরণের রীতি যা আপনাকে কন্ট্রোলারটিকে ডাটাবেজ টেবলটির সাথে কানেক্ট করার উপযোগী করার জন্য ব্যবহার করতে হবে।

ডাটাবেজ রেকর্ড যোগ করা/Adding Database Records

মুভি ডাটাবেজে কিছু পরীক্ষামূলক রেকর্ড যোগ করতে ভিজ্যুয়াল ওয়েব ডেভলাপার ব্যবহার করতে পারেন।
App_Data ফোল্ডারে Movies.sdf ফাইলে ডাবল-ক্লিক করুন। ডাটাবেজ এক্সপ্লোরার উইন্ডোতে MovieDBs টেবলে রাইট ক্লিক করুন এবং Show Table Data সিলেক্ট করুন।

নিচের মতো কিছু রেকর্ড যোগ করুনঃ

ID
Title
Director
Date
1
Psycho
Alfred Hitchcock
01.01.1960
2
La Dolce Vita
Federico Fellini
01.01.1960

লক্ষ্যণীয়ঃ ID কলাম অটোমেটিকভাবে আপডেট হয়। আপনার এটাকে এডিট করার দরকার নেই।

এএসপি.নেট এমভিসি – ভিউস . ASP.NET MVC – Views

এএসপি.নেট এমভিসি - ভিউস
Sheikh Mahfuzur Rahman
Bangla word: 200

এএসপি.নেট এমভিসি (ASP.NET MVC) শিখার জন্য আমরা একটি ইন্টারনেট অ্যাপ্লিকেশন তৈরি করছি। আজকের টিউটোরিয়ালে যার পঞ্চম পর্ব নিয়ে আলোচনা করা হবে।

পার্ট-ফাইভঃ অ্যাপ্লিশনটি ডিসপ্লে করার জন্য ভিউস যোগ করা

ভিউস ফোল্ডার/Views Folder
Views ফোল্ডার অ্যাপ্লিকেশনটির ডিসপ্লে বা ইউজার ইন্টারফেসের সাথে সংশ্লিষ্ট ফাইলগুলো ( যেমন HTML ফাইল ) ধারণ করে। ল্যাঙ্গুয়েজ কন্টেন্ট এর উপর নির্ভর করে এই ফাইলগুলোর যেসব এক্সটেনশান থাকতে পারে সেগুলো হলো html, asp, aspx, cshtml এবং vbhtml

ভিউস ফোল্ডার প্রত্যেক কন্ট্রোলারের জন্য একটি ফোল্ডার ধারণ করে। ভিজ্যুয়াল ওয়েব ডেভলাপার Views ফোল্ডারের ভিতরে একটি অ্যাকাউন্ট ফোল্ডার, একটি হোম ফোল্ডার এবং একটি শেয়ার্ড ফোল্ডার তৈরি করেছে।

Account ফোল্ডার ইউজার অ্যাকাউন্ট রেজিস্টার করা এবং লগিন করার পেজগুলো ধারণ করে। Home ফোল্ডার হোম পেজ এবং অ্যাবাউট পেজের মতো অ্যাপ্লিকেশন পেজগুলো সংরক্ষণ করতে ব্যবহৃত হয়। Shared ফোল্ডার কন্ট্রোলারগুলোর ( মাস্টার পেজ এবং লেআউট ) মধ্যে শেয়ার্ড ভিউগুলো সংরক্ষণ করতে ব্যবহৃত হয়।

ছবিতে ফোল্ডার গুলো দেখুন

http://bangla.salearningschool.com/aspnet/pic_mvc_views.jpg
এএসপি.নেট ফাইল টাইপসমূহ/ASP.Net File Types

Views ফোল্ডারে নিচের মতো এইচইটিএমএল ফাইল পাওয়া যায়ঃ

ফাইল টাইপ এক্সটেনশান
Plain HTML .htm or .html
Classic ASP .asp
Classic ASP.NET .aspx
ASP.NET Razor C# .cshtml
ASP.NET Razor VB .vbhtml

ইন্ডেক্স ফাইল/index.html

Index.cshtml ফাইলটি অ্যাপ্লিকেশনের হোম পেজের প্রতিনিধিত্ব (represent) করে। এটাই অ্যাপ্লিকেশনের ডিফল্ট ফাইল ( index file)। ফাইলে নিচের উপাদানগুলো  যোগ করুনঃ

@{ViewBag.Title = "Home Page";}
<h1>Welcome to W3Schools</h1>
<p>Put Home Page content here</p>

অ্যবাউট ফাইল/About File
About.cshtml ফাইলটি অ্যাপ্লিকেশনের অ্যাবাউট পেজকে প্রতিনিধিত্ব করে।
ফাইলটিতে নিচের উপাধানগুলো যোগ করুনঃ

@{ViewBag.Title = "About Us";}
<h1>About Us</h1>
<p>Put About Us content here</p>

অ্যাপ্লিকেশনটিকে চালু (run) করুন

ওয়েব ডেভলাপার মেন্যু থেকে Debug সিলেক্ট করে ডিবাগিং শুরু করুন ( অথবা F5 চাপুন )।
আপনার অ্যাপ্লিকেশনটিকে নিচের মতো দেখাবেঃ

কিভাবে এটি কাজ করে তা দেখার জন্য "Home" ট্যাব এবং "About" ট্যাবে ক্লিক করুন।

 

Application er ছবি এখানে দেখুন

http://bangla.salearningschool.com/aspnet/pic_mvc_app.jpg

অভিনন্দন!

আপনাকে অভিনন্দন! আপনি আপনার প্রথম এমভিসি অ্যাপ্লিকেশন তৈরি করে ফেলেছেন!

লক্ষ্যনীয়ঃ আপনি এখনো "Movies" ট্যাবে ক্লিক করতে পারবেন না। আমরা এই টিউটোরিয়ালের পরবর্তী অধ্যায়ে "Movies" ট্যাবের জন্য কোড যোগ করবো।

এএসপি ডট নেট এমভিসি-স্টাইলস অ্যান্ড লেআউট (ASP.NET MVC – Styles and Layout)

এএসপি ডট নেট এমভিসি-স্টাইলস অ্যান্ড লেআউট (ASP.NET MVC - Styles and Layout)

লেখাঃ মীর তাউহীদুল ইসলাম ।
ওয়েব ডেভেলপার, ওডেস্ক

কেমন আছেন সবাই? অনেকদিন পর আবার আপনাদের সাথে দেখা । আজ আমি আপনাদের সাথে আলোচনা করবো এএসপি ডট নেট এমভিসি-স্টাইলস অ্যান্ড লেআউট নিয়ে।

এএসপি ডট নেট এমভিসি (ASP.NET MVC) শিখতে,আমরা একটি ইন্টারনেট অ্যাপ্লিকেশন তৈরি করতেছি।

তৃতীয় পার্ট: স্টাইল এবং সুন্দর শৈলী যোগ করা।

লেআউট যোগ করাঃ
Layout.cshtml নামক ফাইলটি অ্যাপ্লিকেশনের প্রত্যেকটি পেইজে লেআউট উপস্থাপন করে।এটি ভিউস(দেখা) ফোল্ডারের ভিতরে শেয়ার্ড ফোল্ডারে অবস্থিত।
এখন ফাইলটি ওপেন করতে হবে এবং এর ভিতরে থাকা বিষয়বস্তু রদবদল করতে হবে যা নিম্নোক্ত কোডের মাধ্যমে দেখানো হলঃ

DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>@ViewBag.Title</title>
css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")"></script>
</head>
<body>
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("Movies", "Index", "Movies")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
</ul>
<section id="main">
@RenderBody()

Copyright W3schools 2012. All Rights Reserved.
</section>
</body>
</html>

এইচটিএমএল সাহায্যকারীঃ/HTML Helpers
উপরের কোডটিতে এইচটিএমএল সাহায্যকারী গুলো এইচটিএমএল এর আউটপুট টিকে পরিবর্তন করার জন্য ব্যাবহার করা হয়েছে।
@Url.Content() -URL- এ কন্টেন্ট এখানে সন্নিবেশিত করা হবে।
@Html.ActionLink() -এইচটিএমএল লিংক এখানে সন্নিবেশ করা হবে।

রেজর সিনট্যাক্স(Razor Syntax)
উপরের কোডটিতে যে কোডগুলো লাল রং দ্বারা চিহ্নিত করা হয়েছে তাদের মধ্যে সি শার্প(C#)এবং রেজর মারকাপ ব্যাবহার করা হয়েছে।
@ViewBag.Title – পেজের শিরোনাম এখানে সন্নিবেশিত করা হবে।
@RenderBody()- পেজের কন্টেন্ট এখানে অনুষ্ঠিত হবে।

নোটঃ আমরা রেজর মারকাপ সম্পর্কে জানতে সি-শার্প এবং ভিজুয়াল বেসিক এর জন্য আমাদের রেজরের টউটোরিয়াল দেখতে পারি।

স্টাইল যোগ করাঃ
অ্যাপ্লিকেশনের জন্য যে স্টাইল-সিট রয়েছে তার নাম সাইট ডট সিএসএস(Site.css)।এটি কন্টেন্ট ফোল্ডারে থাকে।
এখন সাইট ডট সিএসএস(Site.css) ফাইলটিকে ওপেন করি এবং এর কন্টেন্ট গুলো রদবদল করিঃ

body
{
font: "Trebuchet MS", Verdana, sans-serif;
background-color: #5c87b2;
color: #696969;
}
h1
{
border-bottom: 3px solid #cc9900;
font: Georgia, serif;
color: #996600;
}
#main
{
padding: 20px;
background-color: #ffffff;
border-radius: 0 4px 4px 4px;
}
a
{
color: #034af3;
}
/* Menu Styles ------------------------------*/
ul#menu
{
padding: 0px;
position: relative;
margin: 0;
}
ul#menu li
{
display: inline;
}
ul#menu li a
{
background-color: #e8eef4;
padding: 10px 20px;
text-decoration: none;
line-height: 2.8em;
/*CSS3 properties*/
border-radius: 4px 4px 0 0;
}
ul#menu li a:hover
{
background-color: #ffffff;
}
/* Forms Styles ------------------------------*/
fieldset
{
padding-left: 12px;
}
fieldset label
{
display: block;
padding: 4px;
}
input[type="text"], input[type="password"]
{
width: 300px;
}
input[type="submit"]
{
padding: 4px;
}
/* Data Styles ------------------------------*/
table.data
{
background-color:#ffffff;
border:1px solid #c3c3c3;
border-collapse:collapse;
width:100%;
}
table.data th
{
background-color:#e8eef4;
border:1px solid #c3c3c3;
padding:3px;
}
table.data td
{
border:1px solid #c3c3c3;
padding:3px;
}

 

The _ViewStart File

Shared folder এর _ViewStart file এ নিচের লাইনটি থাকে যা (লাইনটি) সব ভিউ ফাইল এর সাথে যুক্ত হয়। এই লাইনটি remove করলে এই লাইনটি আপনাকে সব ভিউ ফাইল এ যোগ করতে হবে।

@{Layout = "~/Views/Shared/_Layout.cshtml";}

 

আশাকরি আমরা সবাই উপরের কোড টুকু বুঝতে পেরেছি।
আজ আর নয়।এপর্যন্তই থাক।এর পরে আবার হাজির হবো অন্য কিছু নিয়ে।সে পর্যন্ত ভাল থাকবেন।আর এ বিষয়ে আরও জানতে যেতে পারেন এই

http://Bangla.SaLearningSchool.com

ASP.NET MVC – অ্যাপ্লিকেশন ফোল্ডার . ASP.NET MVC – Application Folders

ASP.NET MVC - অ্যাপ্লিকেশন ফোল্ডার
লেখকঃ নয়ন চন্দ্র দত্ত

কি খবর সবার? সবাই ভালতো? আজ আমি অনেক গুরুত্বপুর্ণ একটা বিষয় নিয়ে বিস্তারিত আলোচনা করবো । সেটি হচ্ছে- ASP.NET MVC - অ্যাপ্লিকেশন ফোল্ডার।
আজ আমরা MVC - অ্যাপ্লিকেশন ফোল্ডার সম্পর্কে, এর ব্যবহার সম্পর্কে দেখব। তাহলে চলুন শুরু করা যাক ...।

ASP.NET MVC শিখতে, আমরা একটি ইন্টারনেট অ্যাপ্লিকেশন তৈরী করছি ।
অ্যাপ্লিকেশন ফোল্ডার এক্সপ্লোরিং

MVC ফোল্ডার
একটি টাইপিক্যাল ASP.NET MVC ওয়েব অ্যাপ্লিকেশনে নিম্নলিখিত ফোল্ডার কন্টেন্ট আছেঃ

 

পোস্ট এর শেষে কিছু ছবির লিঙ্ক দেয়া আছে। ছবি দেখলে ধারণা গুলো পরিস্কার হবে।
Application information

Properties
References

Application folders
App_Data Folder
Content Folder
Controllers Folder
Models Folder
Scripts Folder
Views Folder

Configuration files

Global.asax
packages.config
Web.config

ফোল্ডারের নাম সব MVC অ্যাপ্লিকেশনে সমান ।MVC ফ্রেমওয়ার্ক ডিফল্ট নামকরণ এর উপর নির্ভর করে। কন্ট্রোলারগুলো কন্ট্রোলার ফোল্ডারে, Views, Views ফোল্ডারে এবং মডেল মডেল ফোল্ডার আছে ।
অ্যাপ্লিকেশন কোড এ আপনাকে ফোল্ডারের নাম ব্যবহার করতে হবে না ।
স্ট্যান্ডার্ড নামকরণ কোডের পরিমাণ হ্রাস এবং ডেভেলপারদের MVC প্রকল্প বোঝার জন্য এটা সহজ করে তোলে। প্রতিটি ফোল্ডারের বিষয়বস্তুর একটি সংক্ষিপ্ত সারাংশ নিম্নরূপঃ

App_Data ফোল্ডার
App_Data ফোল্ডার আবেদন তথ্য সংরক্ষণের জন্য । আমরা পরে এই টিউটোরিয়াল এ App_Data ফোল্ডারে একটি SQL ডাটাবেস যোগ করব ।

Content বা বিষয়বস্তু ফোল্ডার
বিষয়বস্তু ফোল্ডার স্টাইল শীট (CSS ফাইল), আইকন এবং ইমেজের মত স্ট্যাটিক ফাইল এ ব্যবহার করা হয়। ভিসুয়াল ওয়েব ডেভেলপার স্বয়ংক্রিয়ভাবে Content বা বিষয়বস্তু ফোল্ডারে একটি থিম ফোল্ডার যোগ করে।
থিম ফোল্ডার jQuery এর শৈলী এবং ছবির দিয়ে ভরা থাকে। এই প্রকল্পের মধ্যে আপনি থিম ফোল্ডার মুছে দিতে পারেন ।
ভিসুয়াল ওয়েব ডেভেলপার প্রকল্পে একটি স্ট্যান্ডার্ড স্টাইল শীট ফাইলও যোগ করেঃ কন্টেন্ট ফোল্ডারে Site.css ফাইলটি ।স্টাইল সিট ফাইল সম্পাদনা করার উপযুক্ত হয় যখন আপনি application স্টাইল পরিবর্তন করতে চান।
আমরা এই টিউটোরিয়াল এর পরবর্তী অধ্যায়ে স্টাইল শীট ফাইল ( Site.css ) ফাইল সম্পাদনা (edit) করব।

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

Models বা মডেল ফোল্ডার
মডেল ফোল্ডার অ্যাপ্লিকেশন মডেল প্রতিনিধিত্বকারী ক্লাসগুলো ধারণ করে। মডেল হোল্ড এবং আবেদন তথ্য নিপূণভাবে করে।
আমরা এই টিউটোরিয়ালের পরবর্তী অধ্যায়ে মডেল ( ক্লাস) তৈরী করব।

Views ফোল্ডার
Views ফোল্ডার আবেদন প্রকাশ( ইউজার ইন্টারফেস ) করা সম্পর্কিত HTML ফাইল ফোল্ডার জমা রাখে। Views ফোল্ডার প্রতিটি কন্ট্রোলার ফোল্ডারের জন্য একটি ফোল্ডার ধারণ করে।
ভিসুয়াল ওয়েব ডেভেলপার একটি অ্যাকাউন্ট ফোল্ডার, একটি হোম ফোল্ডার , এবং ( Views ফোল্ডারের ভিতরে ) একটি শেয়ার করা ফোল্ডার তৈরি করে।
নিবন্ধন ও ব্যবহারকারীর অ্যাকাউন্টে লগ ইন এর জন্য অ্যাকাউন্ট ফোল্ডার পেজ ধারণ করে থাকে।
হোম ফোল্ডার মূল পৃষ্ঠা এবং about পেজের মত আবেদন পেজ জমা রাখার জন্য ব্যবহৃত হয়।
Shared ফোল্ডার কন্ট্রোলার (মাস্টার পৃষ্ঠা এবং layout বা বিন্যাস পৃষ্ঠা) মধ্যে views শেয়ার্ড জমা রাখতে ব্যবহৃত হয়।
আমরা এই টিউটোরিয়ালের পরবর্তী অধ্যায়ে layout বা বিন্যাস ফাইল সম্পাদনা করব ।

Scripts বা স্ক্রিপ্ট ফোল্ডার
জাভাস্ক্রিপ্ট ফাইল আবেদনের জাভাস্ক্রিপ্ট ফাইল জমা রাখে ।
ডিফল্টরূপে ভিসুয়াল ওয়েব ডেভেলপার এই ফোল্ডারটি স্ট্যান্ডার্ড MVC , AJAX, এবং jQuery ফাইল দিয়ে পূর্ণ করে।

[ দ্রষ্টব্য: " Modernizr " নামে জাভাস্ক্রিপ্ট ফাইল অ্যাপ্লিকেশনে HTML5 এবং CSS3 বৈশিষ্ট্য সমর্থনের জন্য ব্যবহৃত হয় ।। ]

http://bangla.salearningschool.com/aspnet/pic_mvc_scripts.jpg

আজকের মত এই পর্যন্ত। আশা করি সবার খুব ভাল লেগেছে । আশা করছি পরবর্তি টিউটোরিয়ালে MVC - অ্যাপ্লিকেশন ফোল্ডার নিয়ে আরও বিস্তারিত আলোচনা করব। সবাই বেশি বেশি করে প্রাকটিস করবেন ।

 

ছবিতে দেখার জন্য নিচের লিঙ্ক এ যেতে পারেন

http://bangla.salearningschool.com/aspnet/pic_mvc_solution.jpg

http://bangla.salearningschool.com/aspnet/pic_mvc_content.jpg

http://bangla.salearningschool.com/aspnet/pic_mvc_controllers.jpg

http://bangla.salearningschool.com/aspnet/pic_mvc_views.jpg

http://bangla.salearningschool.com/aspnet/pic_mvc_scripts.jpg
সবাই ভাল থাকবেন আর কোন সমস্যা হলে কমেন্ট অপশনত আছেই। তাই কমেন্ট করতে বুলবেন না ।

গুগল ম্যাপের মৌলিক ধারণা (Google Maps Basic)

গুগল ম্যাপের মৌলিক ধারণা
ইন্দ্র ভূষণ শুভ

একটি বেসিক গুগল ম্যাপ তৈরি করুন
এই উদাহরণটি ইংল্যান্ডের লন্ডন কেন্দ্রিক একটি গুগল ম্যাপ তৈরি করেঃ
উদাহরণ
DOCTYPE html>
<html>
<head>

<script>
function initialize() {
var mapProp = {
center:new google.maps.LatLng(51.508742,-0.120850),
zoom:5,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>

<body>
googleMap" style="width:500px;height:380px;">
</body>

</html>
নিজে চেষ্টা করুন >>
বাকি পেইজগুলো উপরের উদাহরণটিকে ধাপে ধাপে ব্যাখ্যা করবে।

১. গুগল এপিআই লোড করুন
গুগল ম্যাপের এপিআই হলো জাভাস্ক্রিপ্টের লাইব্রেরি। এটি একটি স্ক্রিপ্ট ট্যাগ দিয়ে একটি ওয়েব পেইজ যোগ করতে পারেঃ

২. ম্যাপের বৈশিষ্ট নির্ধারণ করুন
ম্যাপটি শুরু করার জন্য একটি ফাংশন তৈরি করুনঃ
function initialize() {
}
শুরুর ফাংশনটি, ম্যাপের বৈশিষ্টগুলো বর্ণনা করার জন্য একটি লক্ষ্য (mapProp) নির্ধারণ করেঃ
var mapProp = {
center:new google.maps.LatLng(51.508742, -0.120850),
zoom: 7,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
কেন্দ্র বৈশিষ্ট ম্যাপের কেন্দ্র নির্ধারণ করে। LatLng তৈরির উদ্দেশ্য একটি নির্দ্দিষ্ট বিন্দুতে কেন্দ্র নির্ধারণ করা। যাতে স্থানাঙ্ক অক্ষাংশ, দ্রাঘিমাংশ দিয়ে যায়।
জুমের বৈশিষ্ট ম্যাপের জুমের স্তর নির্ধারণ করে। জুমঃ০ একটি পৃথিবীর ম্যাপ দেখায় জুম ছাড়া। উচ্চ জুম স্তর উচ্চ রেজল্যুশনে জুম করে।
mapTypeId ম্যাপটি প্রদর্শনের ধরন নির্ধারণ করে।
নিম্নলিখিত ম্যাপগুলো সমর্থন করেঃ
রোডম্যাপ ( স্বাভাবিক, দ্বিমাত্রিক ম্যাপ )
স্যাটেলাইট ( ফটোগ্রাফিক ম্যাপ )
হাইব্রিড (ফটোগ্রাফিক ম্যাপ + শহর এবং রাস্তার নাম )
ভূখন্ড ( পাহাড়, নদী ইত্যাদি সম্বলিত ম্যাপ )

৩. ম্যাপের ধারক তৈরি করুন
ম্যাপ থাকে এমন একটি <div> উপাদান তৈরি করুন। CSS ব্যবহার করে উপাদানটির আকার তৈরি করুনঃ
উদাহরণ
googleMap" style="width:500px;height:380px;">
ম্যাপটি সবসময় এর ধারক উপাদান থেকে আকার পাবে।

৪. ম্যাপের লক্ষ্য তৈরি করুন
var map=new google.maps.Map(document.getElementById("googleMap"), mapProp);
উপরের কোডটি

উপাদানে একটি নতুন ম্যাপ (googleMap) তৈরি করবে গৃহীত (mapProp) পরিমাপক ব্যবহার করে।

৫. ম্যাপ লোড করার একটি ইভেন্ট যোগ করুন
উইন্ডো লোডের initialize() ফাংশনকে চালাতে একটি DOM যোগ করা হয় (যখন পেইজটি লোড হয়)
google.maps.event.addDomListener(window, 'load', initialize);

অ্যাসিঙ্ক্রোনাস লোডিং
গুগল ম্যাপ এপিআই কে চাহিদানুযায়ী লোড করা সম্ভব।
নিচের উদাহরনটি পেইজ পুরোপুরি লোড হওয়ার পরে গুগল ম্যাপ এপআই লোড করতে window.onload ব্যবহার করেছে।
loadScript() ফাংশনটি গুগল ম্যাপ এপআই তে
উদাহরণঃ
function loadScript() {
var script = document.createElement("script");
script.src = "http://maps.googleapis.com/maps/api/js?callback=initialize";
document.body.appendChild(script);
}

window.onload = loadScript;
নিজে চেষ্টা করুন >>
একাধিক ম্যাপ করুন
নিচের উদাহরনটি একই পেইজে চারটি ম্যাপ নির্ধারণ করে ( বিভিন্ন ধরনের চারটি ম্যাপ )
উদাহরণঃ
var map1 = new google.maps.Map(document.getElementById("googleMap1"), mapProp1);
var map2 = new google.maps.Map(document.getElementById("googleMap2"), mapProp2);
var map3 = new google.maps.Map(document.getElementById("googleMap3"), mapProp3);
var map4 = new google.maps.Map(document.getElementById("googleMap4"), mapProp4);
নিজে চেষ্টা করুন >>

গুগল এপিআই কী
গুগল একই দিনে কয়েক হাজারবার আপনার ওয়েবসাইটকে গুগল এপিআই তে কল করতে দিবে।
আপনি অধিক ট্রাফিকের পরিকল্পনা করলে গুগল এপিআই থেকে বিনামুল্যে কী (Key) নিতে পারেন।
বিনামুল্যে কী পেতে https://console.developers.google.com এই সাইটে যান।
যখন একটি এপিআই লোড হয়, গুগল ম্যাপ Key পরিমাপকে একটি এপিআই Key আশা করেঃ
<script src="http://maps.googleapis.com/maps/api/js?key=YOUR_KEY"></script>

এএসপি.নেট এমভিসি – ইন্টারনেট অ্যাপ্লিকেশন . ASP.NET MVC – Internet Application

এএসপি.নেট এমভিসি - ইন্টারনেট অ্যাপ্লিকেশন
Sheikh Mahfuzur Rahman
Bangla word: 180

এএসপি.নেট এমভিসি ( ASP.NET MVC ) সম্পর্কে শিখতে গিয়ে আমরা একটি ইন্টারনেট অ্যাপ্লিকেশন তৈরি করবো।

প্রথম পার্টঃ অ্যাপ্লিকেশনটি তৈরি করা

আমরা যা তৈরি করবো
আমরা এমন একটি ইন্টারনেট অ্যাপ্লিকেশন তৈরি করবো যা একটি ডাটাবেজে সংরক্ষিত তথ্যের adding, editing, deleting এবং listing সাপোর্ট করে।

আমরা যা যা করবো

ভিজ্যুয়াল ওয়েব ডেভলাপার ওয়েব অ্যাপ্লিকেশন তৈরির জন্য বিভিন্ন টেমপ্লেট অফার করে। আমরা এইচটিএমএল ফাইভ ( HTML5 ) মার্কআপের মাধ্যমে একটি খালি এমভিসি ইন্টারনেট অ্যাপ্লিকেশন তৈরি করতে ভিজ্যুয়াল ডেভলাপারকে ( Visual Web Developer ) ব্যবহার করবো।

যখন খালি ইন্টারনেট অ্যাপ্লিকেশনটি তৈরি হবে তখন আমরা ধীরে ধীরে অ্যাপ্লিকেশনটিতে কোড যোগ করবো যতক্ষণ না সেটি সম্পূর্ণভাবে শেষ হয়। প্রোগ্রামিং ল্যাঙ্গুয়েজ হিসেবে আমরা C# এবং সবচেয়ে নতুন Razor সার্ভার কোড মার্কআপ ব্যবহার করবো।

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

ওয়েব অ্যাপ্লিকেশনটি তৈরি করা

যদি আপনার কম্পিউটারে ভিজ্যুয়াল ওয়েব ডেভলাপার ইন্সটল করা থাকে, সেটি চালু করুন এবং New Project সিলেক্ট করুন। অন্যথায়, শুধু পড়ুন এবং শিখুন।

New Project ডায়ালগ বক্সেঃ
Visual C# টেমপ্লেট ওপেন করুন
ASP.NET MVC 3 Web Application টেমপ্লেটটি সিলেক্ট করুন
প্রজেক্ট এর নাম হিসেবে MvcDemo সেট করুন
ডিস্ক লোকেশন হিসেবে c:\w3schools_demo এর মতো কিছু একটা সেট করুন
OK তে ক্লিক করুন

http://bangla.salearningschool.com/aspnet/pic_mvc_new_project.jpg

যখন New Project ডায়ালগ বক্স ওপেন হয়ঃ
Internet Application টেমপ্লেট সিলেক্ট করুন
Razor Engine সিলেক্ট করুন
HTML5 Markup সিলেক্ট করুন
OK তে ক্লিক করুন

ভিজ্যুয়াল স্টুডিও এক্সপ্রেস ঠিক নিচের মতো একটি প্রজেক্ট তৈরি করবেঃ

http://bangla.salearningschool.com/aspnet/pic_mvc_explorer.jpg

 

এই টিউটোরিয়ালের পরবর্তী অধ্যায়ে আমরা ফাইল এবং ফোল্ডারের উপাদানগুলোকে নিয়ে আলোচনা করবো।

ASP.NET MVC টিউটোরিয়াল

ASP.NET MVC টিউটোরিয়াল
লিখেছেন ইন্দ্র ভূষণ শুভ

Minor Edit by Sayed Ahmed

ASP.NET হলো HTML, CSS, JavaScript এবং server scripting দিয়ে ওয়েব পেইজ এবং ওয়েব সাইট তৈরির একটি  কাঠামো (Framework)।

ASP.NET তিনটি ভিন্ন ভিন্ন মডেল সমর্থন করেঃ
ওয়েব পেইজ, এমভিসি (Model View Controller), এবং ওয়েব ফর্ম।
এই টিউটরিয়ালটি এমভিসি (Model View Controller) নিয়ে

MVC প্রোগ্রামিং মডেল
ASP.NET প্রোগ্রামিং মডেলের মধ্যে MVC একটি।
MVC হলো MVC (Model View Controller) ডিজাইন ব্যবহার করে ওয়েব অ্যাপ্লিকেশন তৈরির একটি কাঠামো/Framework।

 

মডেলটি/Model একটি অ্যাপ্লিকেশন এর কোর উপস্থাপন করে ( উদাহরণস্বরুপ একটি ডাটাবেস থেকে রেকর্ডের তালিকা নিয়ে আসা । ডাটাবেজ এ তথ্য জমা করা এবং

ভিউ/view: তথ্য প্রদর্শন করে (মডেল থেকে ডাটা নিয়ে)
কন্ট্রোলার/controller: ব্যবহার কারি/user এর ইনপুটকে/interaction নিয়ন্ত্রণ করে

 

এছাড়াও MVC মডেল এইচটিএমএল, সিএসএস, জাভাস্ক্রিপ্টের উপর পূর্ণ নিয়ন্ত্রণ রক্ষা করে।

MVC মডেল ৩ টি যুক্তি স্তরে ওয়েব অ্যাপ্লিকেশনকে
সংজ্ঞায়িত করেঃ
The business layer (Model logic)
The display layer (View logic)
The input control (Controller logic)

মডেল হলো অ্যাপ্লিকেশনের একটি অংশ যা অ্যাপ্লিকেশন ডাটার যুক্তিকে নিয়ন্ত্রণ করে।
মডেলটি প্রায়ই ডাটাবেস থেকে তথ্য উদ্ধার করে ( এবং সংরক্ষণ করে )।
ভিউ হলো অ্যাপ্লিকেশনের একটি অংশ যা তথ্য প্রদর্শন নিয়ন্ত্রণ করে।
ভিউ প্রায়ই মডেল ডাটা থেকে তৈরি হয়।

নিয়ন্ত্রক/Controller হলো অ্যাপ্লিকেশনের একটি অংশ যা ব্যবহারকারীদের মিথষ্ক্রিয়া/Interaction নিয়ন্ত্রণ করে।
নিয়ন্ত্রক সাধারণত ভিউ থেকে তথ্য পড়ে, ব্যবহারকারীর ইনপুট নিয়ন্ত্রণ করে, মডেলে ইনপুটের তথ্য প্রেরণ করে।
MVC বিভক্তি আপনাকে জটিল অ্যাপ্লিকেশন পরিচালনা করতে সাহায্য করবে, কারণ আপনি একই সময়ে এক এক রকম দৃষ্টিভঙ্গিতে নজড় দিতে পারবেন। এছাড়াও এটি একটি অ্যাপ্লিকেশনকে সহজেই পরীক্ষা করতে পারে।
MVC বিভক্তি গ্রুপ উন্নয়নকে সহজসাধ্য কওরে। ভিন্ন ভিন্ন ব্যবহারকারী একই সাথে the view, the controller logic, এবং the business logic কে কাজ করতে পারে।

ওয়েব ফর্ম Application বনাম MVC Application
MVC প্রোগ্রামিং মডেল গতানুগতিক ASP.NET (ওয়েব ফর্ম) থেকে একটু আলাদা। এটিতে  ASP.NET এর বৈশিষ্ট্য বিদ্যমান যেমন   মাস্টার পেজ, নিরাপত্তা । কিন্তু এটি  লাইটওয়েট, এবং সহজে testable.

ভিসুয়াল স্টুডিও এক্সপ্রেস ২০১২/২০১০
ভিসুয়াল স্টুডিও এক্সপ্রেস মাইক্রোসফট ভিসুয়াল স্টুডিও একটি মুক্ত সংস্করণ।
ভিসুয়াল স্টুডিও এক্সপ্রেস MVC ( এবং ওয়েব ফর্ম ) এর জন্য উন্নয়নের দক্ষ হাতিয়ার।

ভিসুয়াল স্টুডিও এক্সপ্রেসে রয়েছেঃ
MVC এবং ওয়েব ফর্ম
ওয়েব নিয়ন্ত্রণের ড্রাগ- এবং- ড্রপ এবং ওয়েব উপাদান
ওয়েব সার্ভারের ভাষা (Razor using VB or C# )
ওয়েব সার্ভার (IIS Express)
ডাটাবেস সার্ভার (SQL Server Compact)
পরিপূর্ণ ওয়েব উন্নয়ন কাঠামো (ASP.NET)

আপনি যদি ভিসুয়াল স্টুডিও এক্সপ্রেস ইন্সটল করেন, আপনি এই টিউটরিয়াল থেকে আরও লাভ পেতে পারেন।
আপনি যদি ভিসুয়াল স্টুডিও এক্সপ্রেস ইন্সটল করতে চান, এই লিঙ্কগুলোতে ক্লিক করেনঃ
Visual Web Developer 2012 ( আপনার যদি Windows 7 বা Windows 8 থেকে থাকে )
Visual Web Developer 2010 (Windows Vista অথবা XP জন্য )

ASP.NET MVC তথ্যসূত্র
এই টিউটরিয়ালটি শেষে আপনি ASP.NET MVC সম্পর্কে একটি পরিপুর্ণ তথ্য পাবেন।

 

এস ই ও এর জন্য বিশেষজ্ঞ নিয়োগ । SEO – Hiring an Expert

নয়ন চন্দ্র সরকার

 

এস ই ও এর বিভিন্ন অংশের কাজ এবং ওয়েব সাইট এর গুনাগুন নিশ্চিত করতে প্রয়োজন হয় একজন সুদক্ষ বা অভিজ্ঞ লোকের। যে কাজগুলো আমরা করবে পারি না বা সর্বোত্তম ভাবে সম্পাদান করতে পারি না, সেগুলোর জন্যই একজন অভিজ্ঞ লোক নিয়োগের প্রয়োজন পরে। কারন, এস ই ও এর উপরই আপনার ওয়েব সাইট এর ভবিষ্যৎ অনেকটা নির্ভর করে।

যে কাজগুলোর জন্য এস ই ও বিশেষজ্ঞ নিয়োগ করা যেতে পারে

  1. কোড এর বৈধতা নিশ্চিতকরণ এবং এর সার্বিক গুনাগুন অটুট রাখতে, এবং কোড যেন সার্চ ইঞ্জিন-সুলভ ইত্যাদি বিষয়ের জন্য বিশেষজ্ঞ নিয়োগের প্রয়োজন হয়।
  2. এস ই ওর অন পেজ অপটিমাইজেসন যেমন, পেজ টাইটেল, কল টু অ্যাকশান কপি রাইটিং ইত্যাদি কাজের জন্য।
  3. প্রাসঙ্গিক সাইটগুলোর সাথে ভাল মানের লিঙ্ক বিল্ডিং নিশ্চিতকরণ।
  4. ওয়েব সাইট এর বিষয়বস্তুর উপর ভিজিটরের আগমন নির্ভর করে। আর একজন এস ই ও বিশেষজ্ঞ এই বিষয়টি নিশ্চিত করেন।
  5. অফ পেজ অপটিমাইজেসন এর বিভিন্ন কাজ যেমন, আর্টিকেল সাবমিশন, ব্লগের ব্যবহার, লিঙ্ক বিল্ডিং, ডিরেক্টরি সাবমিশন ইত্যাদি কাজের জন্য একজন এস ই ও বিশেষজ্ঞ প্রয়োজন।

পরিশেষে বলা যায় যে, আপনি যদি নিজেই এর কাজগুলো করতে পারেন তাহলে বিশেষজ্ঞ নিয়োগের কোন প্রয়োজন নেই।

কিভাবে এস ই ও বিশেষজ্ঞ বাছাই করবেন

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

  1. আপনি আপনার বন্ধু বা পরিচিত কারোর মাধ্যমে খোঁজ করতে পারেন।
  2. এস ই ও সম্পর্কিত অনেক ফোরাম আছে যেগুলোতে আপনি এ সম্পর্কে ফিডব্যাক পেতে পারেন।
  3. উনি সাম্প্রতিকালে যেসব ওয়েব সাইট এ কাজ করেছেন সেগুলোর খোঁজ-খবর রাখতে পারে।
  4. এস ই ও কোম্পানি গুলোকে অটোমেটিক কাজ করা হতে বিরত রাখবেন।
  5. সস্তা এস ই ও বিশেষজ্ঞ নিয়োগ করবেন না। তবে ভাল দক্ষতা থাকলে ভেবে দেখতে পারেন।
  6. আর্টিকেল বা ওয়েবসাইট এর বিষয়বস্তুর উপর ভিত্তি করে কোন এস ই ও কোম্পানি কে নিয়োগ দেবেন না।
  7. ওদের ওয়েব সাইট এ প্রসংশা পত্রের প্রাচুর্যটা দেখে কখনই মুগ্ধ হবেন না।

এই বিষয় গুলো মাথাই রাখলেই আপনি একজন ভাল মানের এস ই ও অভিজ্ঞ লোক বা প্রতিষ্ঠানের সন্ধান পেতে পারেন।

জেকোয়েরি দিয়ে সিএসএস পরিচালনা(jQuery – Get and Set CSS Classes) ।

জেকোয়েরি দিয়ে সিএসএস পরিচালনা(jQuery - Get and Set CSS Classes) ।

লেখাঃ  মোস্তাফিজুর ফিরোজ ।

মেইলঃ me@firoz.me

 

কেমন আছেন সবাই? আজ আমরা জেকোয়েরি দিয়ে ওয়েব পেজ এর উপাদান (HTML Elements) গুলোর CSS property (such as display, font-height) পরিবর্তন করা শিখবো । সাথে সাথে উপাদান গুলোর CSS class পরিবর্তন করবো যেমন নতুন css class যোগ করা।

জেকোয়েরি দিয়ে খুব সহজে সিএসএস ক্লাস গুলোকে পরিচালনা করা যায় ।

 

জেকোয়েরি দিয়ে সিএসএস পরিচালনা(jQuery Manipulating CSS):

সিএসএস পরিচালনা করার জন্য জেকোয়েরি এর কয়েকটি পদ্ধতি আছে । আমরা এর ভিতর নিচের পদ্ধতি গুলো অনুসরণ করবো ।

 

১। addClass() ঃ নির্বাচিত উপাদানগুলোর সাথে এক বা একাধিক সিএসএস ক্লাস যোগ করা যায় ।

 

২। removeClass() ঃ নির্বাচিত উপাদানগুলোর সাথে এক বা একাধিক সিএসএস ক্লাস দূরীভূত করা যায় ।

 

৩। toggleClass() ঃ নির্বাচিত উপাদানগুলোর সাথে এক বা একাধিক সিএসএস ক্লাসকে সংযুক্ত বা দূরীভূত করা যায় ।

 

৪। css() ঃ স্টাইল এট্রিবিউটকে সেট করে থাকে ।

 

 

স্টাইলশিট এর উদাহরণঃ

নিচের উদাহরণটি আজ সবখানে ব্যবহার করবো । তাই খুব ভালভাবে খেয়াল করুন ।

 

.important

{

font-weight:bold;

font-size:xx-large;

}

 

.blue

{

color:blue;

}

 

 

১। jQuery addClass() Method:

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

 

$("button").click(function(){

$("h1,h2,p").addClass("blue");

$("div").addClass("important");

});

 

 

addClass() method এর মাধ্যমে আপনি একসাথে অনেক গুলো ক্লাস কে নির্দেশনা দিতে পারবেন ।

$("button").click(function(){

$("#div1").addClass("important blue");

});

 

 

 

২। jQuery removeClass() Method:

নিচের উদাহরণ দেখাবে বিভিন্ন এলিমেন্টস এর থেকে কিভাবে ক্লাস এট্রিবিউটসকে দূর করতে হয় ।

 

$("button").click(function(){

$("h1,h2,p").removeClass("blue");

});

 

 

 

৩। jQuery toggleClass() Method:

নিচের উদাহরণের মাধ্যমে আমরা দেখতে পাবো jQuery toggleClass() Method ব্যবহার করতে হয় । এই মেথড নির্বাচিত উপাদানগুলোর সাথে এক বা একাধিক সিএসএস ক্লাসকে সংযুক্ত বা দূরীভূত করে ।

 

$("button").click(function(){

$("h1,h2,p").toggleClass("blue");

});

 

 

৪। jQuery css() Method:

এই মেথড স্টাইল এট্রিবিউটকে সেট করে থাকে । এটা অনেকভাবে স্টাইল করে থাকে । তাই পরে এটা নিয়ে একটি পোস্ট করবো ।

 

তাই এই গুলো আপাতত প্র্যাকটিস করতে থাকুন । দেখা হবে পরবর্তী পোস্টে jQuery css() Method নিয়ে । ততক্ষণ আমাদের সাথেই থাকুন ।

 

 

http://www.w3schools.com/jquery/jquery_css_classes.asp

জেকোয়েরি অ্যাজাক্স মেথডস(jQuery AJAX Methods) ।

জেকোয়েরি অ্যাজাক্স মেথডস(jQuery AJAX Methods) ।

লেখকঃ  মোস্তাফিজুর ফিরোজ ।

মেইলঃ me@firoz.me

 

কেমন আছেন সবাই ? আজ আমি আপনাদের সাথে জেকোয়েরি অ্যাজাক্স মেথডস সম্পর্কে আলোচনা করবো ।

 

জেকোয়েরি অ্যাজাক্স মেথডস(jQuery AJAX Methods):

অ্যাজাক্স হলো এমন একটা কৌশল যা পুরো পেজ রিলোড না করে সার্ভারের সাথে ডাটা ট্রান্সফার করে একটি ওয়েব পেজকে আপডেট করে ।

আমরা যখন ফেসবুক ব্যবহার করি তখন যখন নিচের দিকে নামি তখন অ্যাজাক্স কিন্তু পেজটা রিলোড না করে পরের পোস্টগুলো দেখায় ।

তাহলে আসুন আমরা অ্যাজাক্স এর সকল মেথড গুলো শিখে ফেলি ।

 

 

মেথডঃ   $.ajax()

মেথডের বর্ণনাঃ  async AJAX রিকোয়েস্ট সম্পাদন করে ।

 

মেথডঃ   $.ajaxPrefilter()

মেথডের বর্ণনাঃ  যখন একটা রিকোয়েস্ট পাঠানো হয় $.ajax() প্রসেস করার আগে তখন কাস্টম অ্যাজাক্স অপশনগুলো নিয়ন্ত্রণ করে অথবা আগের অপশনগুলোকে সংশোধন করে ।

 

মেথডঃ   $.ajaxSetup()

মেথডের বর্ণনাঃ  ভবিষ্যতের অ্যাজাক্স রিকোয়েস্ট এর জন্য ডিফল্ট ভেলু গুলো ঠিক করা হয় ।

 

মেথডঃ   $.ajaxTransport()

মেথডের বর্ণনাঃ  একটি অবজেক্ট তৈরি করা হয় যা অ্যাজাক্স ডাটার পরিবর্তন নিয়ন্ত্রণ করতে পারে ।

 

মেথডঃ   $.get()

মেথডের বর্ণনাঃ  AJAX HTTP GET request সার্ভার থেকে ডাটা লোড নেয় ।

 

মেথডঃ   $.getJSON()

মেথডের বর্ণনাঃ  AJAX HTTP GET request সার্ভার থেকে JSON-encoded ডাটা লোড নেয় ।

 

মেথডঃ   $.getScript()

মেথডের বর্ণনাঃ  AJAX HTTP GET request সার্ভার থেকে জাভাস্ক্রীপ্ট লোড নেয় ।

 

মেথডঃ  $.param()

মেথডের বর্ণনাঃ  কোনো অবজেক্টের শ্রেণীবিন্যাস করে তার সিরিয়ালি প্রদর্শন করে ।

 

মেথডঃ   $.post()

মেথডের বর্ণনাঃ  AJAX HTTP POST request সার্ভার থেকে ডাটা লোড নেয় ।

 

মেথডঃ   ajaxComplete()

মেথডের বর্ণনাঃ  যখন অ্যাজাক্স রিকোয়েস্ট পূরণ হয় তখন একটি ফাংশন চালানোর জন্য নির্দেশিত হয় । কোন ফাংশন চালাবে সেটা আপনি নির্দেশ করে দিতে পারবেন ।

 

মেথডঃ  ajaxError()

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

 

মেথডঃ   ajaxSend()

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

 

মেথডঃ  ajaxStart()

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

 

মেথডঃ   ajaxStop()

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

 

মেথডঃ   ajaxSuccess()

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

 

মেথডঃ   load()

মেথডের বর্ণনাঃ  সার্ভার থেকে ডাটা লোড নেয় এবং সেই ডাটা সিলেক্টেড এলিমেন্টে পাঠায় ।

 

মেথডঃ   serialize()

মেথডের বর্ণনাঃ  অনেকগুলো এলিমেন্ট থেকে ডাটা সংগ্রহ করে ফর্ম আকারে সিরিয়ালি তা সাবমিট করে ।

 

মেথডঃ   serializeArray()

মেথডের বর্ণনাঃ  ফর্মের উপাদান থেকে নাম এবং ভেলু গুলোকে সংগ্রহ করে সিরিয়াল করে সাজায় । আপনি যেভাবে নির্দেশ করবেন সেভাবে এটা নাম এবং মানগুলোকে সিরিয়াল করবে । হতে পারে সেটা বড় মান থেকে ছোট মান অথবা ছোট থেকে বড় । নামের ক্ষেত্রেও কিন্তু তেমন A থেকে Z অথবা Z থেকে A তে সাজাতে পারবে ।

 

 

খুব মজার কিন্তু । আর এর ভিতরেই আমরা কিন্তু খুব সহজে জেকোয়েরি অ্যাজাক্সের সকল মেথড গুলো শিখে ফেললাম ।

 

 

 

http://www.w3schools.com/jquery/jquery_ref_ajax.asp

SQL(এসকিউএল) Wildcards (ওয়াইল্ডকার্ড) . SQL Wildcards

SQL(এসকিউএল) Wildcards (ওয়াইল্ডকার্ড)

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

ডাটাবেজ সিস্টেমে ডাটা তল্লাশি বা সার্চ করার ক্ষেত্রে wildcard (ওয়াইল্ডকার্ড) একটি গুরুত্বপূর্ণ টার্ম। স্ট্রিং ডাটার কোনো অংশ ‌‌'অজ্ঞাত' উল্লেখ করে ডাটা তল্লাশি করতে ওয়াইল্ডকার্ড ব্যবহার করা হয়। এই অজ্ঞাত অংশ এক থেকে বহু character (অক্ষর) পর্যন্ত হতে পারে।
একটি টেবিলের ভেতর থেকে ডাটা তল্লাশি করার জন্য এসকিউএল LIKE অপারেটরের সঙ্গে ওয়াইল্ডকার্ড character ব্যবহার করা হয়। SQL এ ব্যবহৃত wildcard গুলো হচ্ছে:

Wildcard

Description

%

শুন্য কিংবা যে কোনো এক বা একাধিক character খুঁজতে ব্যবহার করা হয়

_

একটিমাত্র character খুঁজতে ব্যবহার করা হয়

[charlist]

একাধিক character এর লিস্ট উল্লেখ করা হয় যেগুলো দিয়ে শুরু হওয়া ডাটা বাছাই করে

[^charlist]
or
[!charlist]

একাধিক character এর লিস্ট উল্লেখ করা হয় যেগুলো বাদ রেখে অন্য সব অক্ষর দিয়ে শুরু হওয়া ডাটা বাছাই করে

এই টিউটিরিয়ালে আমরা Northwind স্যাম্পল ডাটাবেজটি ব্যবহার করব, যেটি মাইক্রোসফট Excel এবং MS SQL Server এর সাথে শিক্ষার্থীদের জন্য তৈরী অবস্থায় (readymade) সংযুক্ত করা থাকে। সেই ডাটাবেজের "Customers" টেবিল থেকে কিছু ডাটা নির্বাচন করা হল:

CustomerID

CustomerName

ContactName

Address

City

PostalCode

Country

1

Alfreds Futterkiste

Maria Anders

Obere Str. 57

Berlin

12209

Germany

2

Ana Trujillo Emparedados y helados

Ana Trujillo

Avda. de la Constitución 2222

México D.F.

05021

Mexico

3

Antonio Moreno Taquería

Antonio Moreno

Mataderos 2312

México D.F.

05023

Mexico

4

Around the Horn

Thomas Hardy

120 Hanover Sq.

London

WA1 1DP

UK

5

Berglunds snabbköp

Christina Berglund

Berguvsvägen 8

Luleå

S-958 22

Sweden

SQL “%” ওয়াইল্ডকার্ড এর ব্যবহার:

নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নাম শুরু হয়েছে "ber" দিয়ে।

SELECT * FROM Customers
WHERE City LIKE 'ber%';

নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নামের মাঝে কোথাও "es" আছে:

SELECT * FROM Customers
WHERE City LIKE '%es%';

SQL “ _” ওয়াইল্ডকার্ডের ব্যবহার:

নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নাম শুরু হয়েছে যেকোন অক্ষর দিয়ে, কিন্তু তার পরের অবস্থানেই "erlin" আছে:

SELECT * FROM Customers
WHERE City LIKE '_erlin';

নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নাম শুরু হয়েছে “L” দিয়ে, তারপরের অবস্থানে যেকোন অক্ষর, তার পরের অবস্থানে “n”, তার পরের অবস্থানে যেকোন অক্ষর, তার পরেই একসাথে থাকবে "on".

SELECT * FROM Customers
WHERE City LIKE 'L_n_on';

SQL [charlist] ওয়াইল্ডকার্ডের ব্যবহার:

নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নাম শুরু হয়েছে "b", "s" কিংবা "p" দিয়ে।

SELECT * FROM Customers
WHERE City LIKE '[bsp]%';

নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নাম শুরু হয়েছে "a", "b" কিংবা "c" দিয়ে।

SELECT * FROM Customers
WHERE City LIKE '[a-c]%';

নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নাম শুরু হয়েছে "b", "s" কিংবা "p" বাদ দিয়ে

SELECT * FROM Customers
WHERE City LIKE '[!bsp]%';

or

SELECT * FROM Customers
WHERE City NOT LIKE '[bsp]%';

অ্যাংগুলার-জেএস অ্যাপ্লিকেশন . AngularJS Application

অ্যাংগুলার-জেএস অ্যাপ্লিকেশন
Sheikh Mahfuzur Rahman

অ্যাংগুলার-জেএস অ্যাপ্লিকেশন

আপনি পূর্বের সবগুলো টিউটোরিয়াল পড়ে থাকলে, একটি প্রকৃত অ্যাংগুলার-জেএস সিংগেল পেজ অ্যাপ্লিকেশন(SPA) তৈরির জন্য এটাই উপযুক্ত সময়!

একটি অ্যাংগুলার-জেএস অ্যাপ্লিকেশনের উদাহরণ
আশা করি পূর্বের টিউটোরিয়ালগুলো পড়ে আপনি আপনার প্রথম অ্যাংগুলার-জেএস অ্যাপ্লিকেশন তৈরির জন্য যথেষ্ট কৌশল শিখে নিয়েছেনঃ
My Note

Number of characters left: 100

উদাহরণসহ অ্যাপ্লিকেশনটির ব্যাখ্যাঃ

myNoteApp">

<head>

</head>

<body>

myNoteCtrl">

<h2>My Note</h2>

<textarea ng-model="message" cols="40" rows="10">

<p>
<button ng-click="save()">Save</button>
<button ng-click="clear()">Clear</button>
</p>

<p>Number of characters left: <span ng-bind="left()"></span></p>

</div>

<script src="myNoteApp.js"></script>
<script src="myNoteCtrl.js"></script>

</body>
</html>

অ্যাপ্লিকেশন ফাইলটি হলো "myNoteApp.js":

var app = angular.module("myNoteApp", []);

কন্ট্রোলার ফাইলটি হলো "myNoteCtrl.js":

app.controller("myNoteCtrl", function($scope) {
$scope.message = "";
$scope.left  = function() {return 100 - $scope.message.length;};
$scope.clear = function() {$scope.message = "";};
$scope.save  = function() {alert("Note Saved");};
});

<html> এলিমেন্টটি অ্যাংগুলার-জেএস অ্যাপ্লিকেশন ng-app="myNoteApp" এর কন্টেইনার হিসেবে কাজ করেঃ

<html ng-app="myNoteApp">

একটি <div> এলিমেন্ট এইচটিএমএল পেজে কন্ট্রোলার ng-controller="myNoteCtrl" এর স্কোপ হিসেবে কাজ করেঃ

<div ng-controller="myNoteCtrl">

একটি ng-model ডিরেক্টিভ একটি <textarea> কে কন্ট্রোলার ভ্যারিয়েবল ম্যাসেজে বাইন্ড করেঃ

<textarea ng-model="message" cols="40" rows="10"></textarea>

ng-click ইভেন্ট দু'টি কন্ট্রোলার ফাংশন clear() এবং clear() কে ইনভোক বা আহবান করেঃ

<button ng-click="save()">Save</button>
<button ng-click="clear()">Clear</button>

একটি ng-bind ডিরেক্টিভ বাকি থাকা ক্যারেকটারগুলো দেখিয়ে কন্ট্রোলার ফাংশন left() কে <span> তে বাইন্ড করেঃ

Number of characters left: <span ng-bind="left()"></span>

পেজে অ্যাপনার অ্যাপ্লিকেশন লাইব্রেরিকে যোগ করা হয়েছে (লাইব্রেরির পরে):

<script src="myNoteApp.js"></script>
<script src="myNoteCtrl.js"></script>

অ্যাংগুলার-জেএস অ্যাপ্লিকেশনের কাঠামো

উপরে ব্যবহার উপযোগী একটি বাস্তব অ্যাংগুলার-জেএস (single page application অর্থাৎ SPA) এর কাঠামো দেয়া হয়েছে।
<html> এলিমেন্টটি অ্যাংগুলার-জেএস অ্যাপ্লিকেশনের (ng-app=) কন্টেইনার।
<div> এলিমেন্টটি একটি অ্যাংগুলার-জেএস কন্ট্রোলারের (ng-controller=) স্কোপ ঠিক করে দেয়।
একটি অ্যাপ্লিকেশনে অনেকগুলো কন্ট্রোলার ব্যবহার করতে পারবেন।
একটি অ্যাপ্লিকেশন ফাইল (my...App.js) অ্যাপ্লিকেশন মড্যুল কোড নির্ধারণ করে।
এক বা একাধিক কন্ট্রোলার ফাইল (my...Ctrl.js) কন্ট্রোলার কোড নির্ধারণ করে।

পুরো প্রক্রিয়াটির সারাংশ?

অ্যাংগুলার-জেএস লাইব্রেরিটি <head> এ লোড হয়, কারন সঠিকভাবে কম্পাইলড হওয়ার জন্য স্ক্রিপ্টগুলো লাইব্রেরি কোডের উপর নির্ভর করে।
ng-app ডিরেক্টিভটি অ্যাপ্লিশনের রুট এলিমেন্টে রাখা হয়।
সিংগেল পেজ অ্যাপ্লিকেশনের(SPA) জন্য <html> এলিমেন্টটিই অধিকাংশ সময় অ্যাপ্লিকেশন রুট হয়ে থাকে।
এক বা একাধিক ng-controller ডিরেক্টিভ অ্যাপ্লিকেশন কন্ট্রোলার নির্ধারণ করে দেয়। প্রত্যেকটি কন্ট্রোলারের নিজস্ব স্কোপ (যে এইচটিএমএল এলিমেন্টে সেগুলো ডিফাইন করা হয়েছে) রয়েছে।
HTML DOMContentLoaded ইভেন্টে অ্যাংগুলার-জেএস সয়ংক্রিয়ভাবে সচল হয়ে যায়। যদি একটি ng-app ডিরেক্টিভ পাওয়া যায় অ্যাংগুলার-জেএস ঐ ডিরেক্টিভে উল্লেখিত (নেমড) যেকোন মড্যুলকে লোড করবে এবং DOM কে ng-app দিয়ে অ্যাপ্লিকেশনের রুট হিসেবে কম্পাইল করবে।
পুরো পেজটিই অ্যাপ্লিকেশনের রুট হতে পারে; অথবা এর ক্ষুদ্রতর অংশও হতে পারে। পেজের অংশটি যত ক্ষুদ্র হবে অ্যাপ্লিকেশনটি তত দ্রুত কম্পাইল ও অ্যাকজিকিউট করবে।

AngularJS References

AngularJS References
parijat biswas
student of CSE
university of Asia Pacific

AngularJS Directives
যেসব AngularJS Directives এই টিউটোরিয়ালে ব্যবহৃত হয়ছেঃ
Directive বর্ণনা ব্যাখ্যা
ng-app একটি অ্যাপ্লিকেশন এর মূল উপাদান সংজ্ঞায়িত করার জন্য ব্যবহৃত Directives
ng-bind HTML element এর innerHTML এপ্লিকেশন ডাটাতে যুক্ত করে । Introduction
ng-click একটি উপাদান ক্লিক করা হলে আচরণ সংজ্ঞায়িত করার জন্য ব্যবহৃত হয় । HTML Events

ng-controller একটি অ্যাপ্লিকেশনের object control করার জন্য ব্যবহৃত হয় । Controllers

ng-disabled HTML disabled attribute এ এপ্লিকেশন ডাটা যুক্ত করে । HTML DOM

ng-hide html উপাদান hide বা show করে । HTML DOM
ng-include একটি অ্যাপ্লিকেশন মধ্যে html যুক্ত করে । Includes

ng-init একটি অ্যাপ্লিকেশনের জন্য প্রাথমিক মান সংজ্ঞায়িত করার জন্য ব্যবহৃত Directives

ng-model এপ্লিকেশন ডাটাতে html control এর মান যুক্ত করে । Directives

ng-repeat প্রতিটি ডাটার জন্য একটি টেমপ্লেট সংজ্ঞায়িত করার জন্য ব্যবহৃত হয় । Directives

ng-show html উপাদান show অথবা hide করে । HTML DOM

AngularJS Filters
AngularJS Filters

যেসব AngularJS Filters এই টিউটোরিয়ালে ব্যবহৃত হয়ছেঃ
Filter বর্ণনা
Currency একটি নাম্বারকে currency format এ রূপান্তর করে ।

Filter একটি array থেকে subset নির্বাচন করে ।

Lowercase একটি string কে lower case এ রুপান্তর (format) করে ।

orderBy expression এর মাধ্যমে একটি array কে order করে ।

uppercase একটি string কে upper case এ রুপান্তর (format) করে ।

চিফ মার্কেটিং কর্মকর্তা হিসেবে যে আটটি এসইও ট্রেন্ড সম্পর্কে আপনাকে জানতেই হবে . 8 SEO Trends Your CMO Needs to Know for 2015

শেখ মাহ্ফুজুর রহমান

 

২০১৫ সালের বাজেট ও স্ট্র্যাটেজি তৈরির সময় বিবেচনায় রাখার মতো সেরা আটটি এসইও ট্রেন্ড

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

অবশ্য, চিফ মার্কেটিং অফিসাররা সার্চ এলগরিদমের ছোটখাটো পরিবর্তন নিয়ে মাথা না ঘামিয়ে ইন্ডাস্ট্রির বড় ধরণের ট্রেন্ডগুলোর দিকে দৃষ্টিপাত করেই সার্চের নতু নতুন পরিবর্তনের কৌশল নির্ধারণ করতে পারেন। "2015 Enterprise Buyer's Guide to SEO" থেকে নেয়া সেরা আটটি অর্গ্যানিক সার্চ ট্রেন্ড নিয়ে আজকের আলোচনাটি সাজানো হয়েছে যা সিএমও (চিফ মার্কেটিং অফিসার) এবং মার্কেটিং অর্গ্যানাইজেশনগুলো ২০১৫ সালের পরিকল্পনা তৈরির সময় বিবেচনায় রাখতে পারে।

১) ট্রুলি আর্নড লিংকের সংখ্যার ক্রমবৃদ্ধি

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

ব্র্যান্ডেড কন্টেন্ট সাইটেশন অর্জনের লক্ষ্যে অর্গ্যানিক সার্চ চ্যানেল নিয়ে চিন্তিত সিএমও'দের উচিত মূল্যবান কন্টেন্ট তৈরি করা এবং তা নির্দিষ্ট শ্রোতাদের কাছে প্রমোট করা। এগুলো শুধু মাত্র প্রোডাক্ট পেজের প্রতি কতগুলো টেক্সট লিংক না হয়ে হাই কোয়ালিটি ব্র্যান্ডেড কন্টেন্টের প্রতি উদৃতি ও লিংক হওয়া বাঞ্চনীয়।

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

২) মোবাইলের অব্যাহত গুরুত্ব বৃদ্ধি

২০১৪ সালটি ছিল মার্কেটিং এর জন্য একটি স্মারক বর্ষ যখন মোবাইল ইন্টারনেটের ব্যবহার ডেস্কটপ ইন্টারনেটের ব্যবহারকে ছাড়িয়ে গিয়েছিল। এই ঘটনাটি কনজ্যুমার বা ভোক্তার আচরণের একটি মৌলিক পরিবর্তনকে চিহ্নিত করে যা সার্চ এবং সার্চ ইঞ্জিন অপটিমাইজেশনের একটি বড় নিহিতার্থকে প্রকাশ করে।

মোবাইল সার্চ এলগরিদম ডেস্কটপের থেকে ভিন্নতর উৎকৃষ্ট পথকে নির্দেশ করে, তাই মার্কেটিং ব্যয়কে সঠিকভাবে পরিচালিত করার জন্য সিএমও'দের মোবাইল সার্চের দিকগুলো বুঝা অত্যন্ত গুরুত্বপূর্ণ। একটি ব্র্যান্ডের দ্রুততার সাথে কার্যকরভাবে উচ্চমানের মোবাইল এক্সপেরিয়েন্স সরবারহ করার সক্ষমতাই নিশ্চিতভাবে একটি প্রতিযোগিতামূলক সুযোগ তৈরি করে দেবে।

৩) প্লাটফর্ম, ডিভাইস, চ্যানেল অনুসারে সার্চকে বিভক্ত করা

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

২০১৫ সালে, সিএমও'দের উচিত গুগল ছাড়াও আমাজন, উইকিপিডিয়া, ইয়েল্প এবং মোবাইল অ্যাপ্লিকেশনের মতো প্লাটফর্মগুলোর সার্চে ব্র্যান্ড এর উপস্থিতিকে অপটিমাইজ করার দিকে নজর দেয়া।

৪) সোশ্যাল এঙ্গেজম্যান্টের সাথে থট লিডারশিপের সমন্বয়

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

প্রাসঙ্গিক শ্রোতাদের কাছ থেকে সোশ্যাল এঙ্গেজমেন্ট ছাড়া শুধু থট লিডারশিপের পক্ষে সার্চে দীর্ঘস্থায়ী সফলতা অর্জন সম্ভব নয়। দুটোকেই একসাথে চলতে হবে।

৫) লং-টেইল সার্চ ট্রাফিকের ক্রমবর্ধনশীল গুরুত্ব

এক-দুই শব্দের কি ফ্রেজ (key phrase) দিয়ে সার্চে র‍্যাংক পাওয়া কষ্টসাধ্য এবং তা পুরোপুরি কভার করেনা। সেই তুলনায়, লং-টেইল কিওয়ার্ড কোয়ারিগুলো অনেক বেশি প্রাসঙ্গিক হয়ে থাকে এবং উচ্চমাত্রায় কনভার্ট হয়ে থাকে এর নির্দিষ্টতার জন্য, পরিণামে উদ্দেশ্যের সফলতা অর্জিত হয়। যেসব ব্র্যান্ড লং-টেইল কোয়ারিগুলোর শক্তি ও প্রভাবকে যুথবদ্ধ করতে পারবে সেগুলোই ২০১৫ সালে সূচাগ্র পার্থক্য দেখতে পাবে।

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

৬) সার্চ রেজাল্ট দৃশ্যপটের পরিবর্তন

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

৭) কিওয়ার্ড ও র‍্যাঙ্কিং এর গুরুত্ব হ্রাস

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

৮) পারসোনালাইজেশনের প্রয়োজনীয়তা বৃদ্ধি

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

অর্গ্যানিক সার্চ এখনো সবকিছুর উপরে

যে চ্যানেলটি এখনো বিটুবি (B2B) এবং বিটুসি (B2C) কোম্পানিগুলোর মধ্যে বেশিরভাগ ভিজিটর, কনভার্সান এবং কাস্টমারদের চালিত করে থাকে, অর্গ্যানিক সার্চ তেমন চ্যানেল নয় যা মার্কেটিং একজিকিউটিভরা অগ্রাহ্য করতে পারে। যেসব কোম্পানি এই চ্যানেলটিকে ম্যাক্সিমাইজ করতে পারবে তারাই অবশেষে ডিজিটাল স্পেসে অধিকার পাবে এবং সেই সাথে দেখা পাবে লাভের।

২০১৫ সালে যে পাঁচটি এসএইও ট্রেন্ডকে বিবেচনায় রাখা উচিত . 5 SEO Trends You Need to Consider for 2015

আশা করি আপনারা "সার্চ ইঞ্জিন অপটিমাইজেশনের যুগ শেষ" এবং "সোশ্যাল মিডিয়াই হলো নতুন সার্চ" এই দু'টি সর্বশেষ অত্যুক্তিতে বিশ্বাস করেননা। বাস্তবতা হলো, এসইও কতগুলো বহুল পরীক্ষিত এসইও কৌশল, কন্টেন্ট মার্কেটিং এবং সোশ্যাল মিডিয়া অপটিমাইজেশনের মধ্যকার সংযুক্তিতে বিবর্তিত হচ্ছে। এটি আরও বেশী জটিল হয়েছে কিন্তু এর মূল্য সামান্য পরিমাণেও কমেনি। এই ধারণাটি মাথায় রেখে ২০১৫ সালের পাঁচটি এসইও ট্রেন্ড সম্পর্কে আলোচনা করা হলো, যেগুলো আপনি এবছর পরিকল্পনা করবেন।

১) সিম্যান্টিক সার্চ

গুগল সম্প্রতি সার্চ এলগরিদমের "Hummingbird" আপডেট প্রকাশ করেছে। পূর্বের পান্ডা ও পেঙ্গুইন আপডেটের মতো না হয়ে হামিংবার্ড আপডেটটি ছিল সম্পূর্নরূপে সিম্যান্টিক সার্চ নির্ভর। যেখানে সিম্যান্টিক হলো ভাষাতত্ত্বের একটি বিভাগ যা শব্দের অর্থঘটিত বিষয় নিয়ে আলোচনা করে। সিম্যান্টিক সার্চ সার্চ কোয়ারির (আপনি সার্চ বারে যা লিখে সার্চ করেন) অর্থ এবং যে ব্যক্তি সার্চ করছেন তার মনোভাব বুঝার চেষ্টা করে। সার্চ ইঞ্জিন ল্যান্ডের ডেনি সুলিভান বিষয়টিকে এভাবে ব্যাখ্যা করেছেনঃ

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

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

২) মোবাইল সার্চ অপটিমাইজেশন

গুগলের তথ্য অনুযায়ী মোবাইল সার্চের ৫০ভাগ কোয়ারিই হয়েছে অঞ্চলগত দিক লক্ষ্য করে। এর মানে হল সার্চকারি ব্যক্তিরা স্থানীয় ব্যবসাগুলোকে খুঁজেছেন যেন তারা ইন-স্টোর কেনাকাটা করতে পারেন। তারপরও সব মোবাইল সার্চ অঞ্চলবিশেষ লক্ষ্য করে করা হয়নি।

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

৩) সোশ্যাল সিগনেলগুলোর অকার্যকারিতা

সোশ্যাল সিগনেল যেমন টুইট, শেয়ার ও গুগলপ্লাস সার্চ রেঙ্কিংকে প্রভাবিত করে? তা করে, কিন্তু আপনি যেভাবে ভাবেন তেমন নয়।

সব সময়ই বলা হয়েছে যে টপ সার্চ রেঙ্কিংয়ে উপরের যাওয়ার উপায় হলো সোশ্যাল মিডিয়ায় শেয়ার। এটি সেই ২০১০ সালের কথা যখন গুগলের ওয়েব-স্পাম বিষয়ক প্রধান বলেছিলেন, আমরা আমাদের সার্চ রেঙ্কিং এ টুইটার ও ফেসবুকের লিংক ও রেঙ্কিংকে ব্যবহার করি। কিন্তু ২০১৪ সালে যখন তাকে একই প্রশ্ন করা হয় তখন বলেছিলেন, বর্তমানে আমাদের সার্চ এলগরিদমে তেমন কোন সিগন্যাল নেই।"

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

৪) আর্নড লিংকের ক্রমবর্ধমান গুরুত্ব বৃদ্ধি

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

সুতরাং বুঝা যাচ্ছে যে উচ্চমানসম্পন্ন কন্টেন্ট তৈরিই এসইওর জন্য সবচেয়ে গুরুত্বপূর্ণ! তাছাড়া সামজিক কার্যকলাপের মাধ্যমে অফলাইন সম্পর্ক বৃদ্ধি এবং ব্রোকেন লিংক বিল্ডিংকেও মাথায় রাখতে হবে।

৫) ব্র্যান্ড সম্পর্কে উল্লেখ এবং সাইটেশন

একটি সাইটেশন হলো আপনার ওয়েবসাইট ছাড়া অন্য কোন ওয়েব সাইটে আপনার ব্র্যান্ডের নাম, ঠিকান, ফোন নাম্বার সম্পর্কে যেকোন উদ্দৃতি। একটি কো-সাইটেশন হলো আপনার ব্যবসায়ের মতো একই রকম অন্য ব্যবসায়িক প্রতিষ্ঠানের সাইটে আপনার ব্র্যান্ড সম্পর্কিত উল্যেখ। এক্ষেত্রে লোকাল সাইটেশন, ইন্ডাস্ট্রি সাইটেশন ও নিচ্‌(Niche) সাইটেশন সম্পর্কে জানতে হবে।

সাইট স্ট্রাকচার সম্পর্কে বোনাস টিপ

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

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

AngularJS অন্তর্ভুক্ত (AngularJS Includes)

AngularJS অন্তর্ভুক্ত (AngularJS Includes)
AngularJS এ, আপনি এইচটিএমএল এ এইচটিএমএল ফাইল অন্তর্ভুক্ত করতে পারেন.
এইচটিএমএল ভবিষ্যত এইচটিএমএল এ অন্তর্ভুক্ত

এইচটিএমএল এ এইচটিএমএল এর একটি portion অন্তর্ভূক্ত দুর্ভাগ্যবশত এখনো পর্যন্ত supported না।

এইচটিএমএল ইমপোর্ট করে W3C suggestion. http://www.w3.org ভবিষ্যৎ ভার্সনগুলোর জন্য প্রযোজ্য। (With
<link rel="import" href="/path/navigation.html">

সার্ভার সাইড অন্তর্ভুক্ত (Server Side Includes)

অধিকাংশ ওয়েব সার্ভার সার্ভার সাইড ইনক্লুডস (এসএসআই) অন্তর্ভুক্তকরণ সমর্থন করে।

এসএসআই এর মাধ্যমে, আপনি আপনার পেজ ব্রাউজার এ পাঠানোর আগেই এইচটিএমএল এ এইচটিএমএল অন্তুর্ভূক্ত করতে পারবেন।

php require("navigation.php"); ?>

ক্লায়েন্ট সাইড অন্তর্ভুক্ত (Client Side Includes)

এইচটিএমএল এ এইচটিএমএল অন্তর্ভুক্ত করতে জাভাস্ক্রিপ্ট ব্যবহার করার জন্য অনেক উপায় আছে.

সবচেয়ে সাধারণ ভাবে, এইচটিটিপি (http) রিকুয়েস্ট ব্যবহার করে (AJAX) সার্ভার থেকে তথ্য সংগ্রহ করে এবং এইচটিএমএল এর তথ্যগুলো innerHTML এ write

AngularJS সাইড অন্তর্ভুক্ত (AngularJS Side Includes)

AngularJS সঙ্গে, আপনি ng-include নির্দেশ (directive) ব্যবহার করে, HTML সামগ্রী অন্তর্ভুক্ত করতে পারেন:
উদাহরণ:
<body>

<div class="container">
<div ng-include="'myUsers_List.htm'"></div>
<div ng-include="'myUsers_Form.htm'"></div>
</div>

</body>

নিচে ৩টি ধাপে পরিপূর্ণভাবে তুলে ধরা হলো:

ধাপ ১: এইচটিএমএল তালিকা তৈরি করুন (Create the HTML List)
myUsers_List.html
<table class="table table-striped">
<thead><tr>
<th>Edit</th>
<th>First Name</th>
<th>Last Name</th>
</tr></thead>
<tbody><tr ng-repeat="user in users">
<td>
<button class="btn" ng-click="editUser(user.id)">
&nbsp; Edit
</button>
</td>
<td>{{ user.fName }}</td>
<td>{{ user.lName }}</td>
</tr></tbody>
</table>

Step 2: Create the HTML Form
ধাপ ২: এইচটিএমএল ফরম তৈরি করুন (Create the HTML Form)
myUsers_Form.html
<button class="btn btn-success" ng-click="editUser('new')">
<span class="glyphicon glyphicon-user"></span> Create New User
</button>
<hr>

<h3 ng-show="edit">Create New User:
<h3 ng-hide="edit">Edit User:</h3>

<form class="form-horizontal">
<div class="form-group">
<label class="col-sm-2 control-label">First Name:</label>
<div class="col-sm-10">
<input type="text" ng-model="fName" ng-disabled="!edit" placeholder="First Name">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Last Name:</label>
<div class="col-sm-10">
<input type="text" ng-model="lName" ng-disabled="!edit" placeholder="Last Name">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Password:</label>
<div class="col-sm-10">
<input type="password" ng-model="passw1" placeholder="Password">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">Repeat:</label>
<div class="col-sm-10">
<input type="password" ng-model="passw2" placeholder="Repeat Password">
</div>
</div>
</form>

<hr>
<button class="btn btn-success" ng-disabled="error || incomplete">
<span class="glyphicon glyphicon-save"></span> Save Changes
</button>

Step 3: Create the Main Page
ধাপ ৩: মেইন পেজ তৈরি করুন (Create the HTML Form)
myUsers.html
DOCTYPE html>
<html ng-app="">
<head>
<link rel="stylesheet" href = "http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">

</head>

<body ng-controller="userController">

<div class="container">
<div ng-include="'myUsers_List.htm'"></div>
<div ng-include="'myUsers_Form.htm'"></div>
</div>

</body>
</html>

এসকিউএল Aliases এর টিউটোরিয়ালঃ SQL Aliases

এসকিউএল Aliases এর টিউটোরিয়ালঃ

কোয়েরির সুবিধার্থে Alias ব্যবহার করা হয়। টেবিল, কলাম দুটোরই এলিয়াস ব্যবহার করা যায়। এলিয়াসকে বলতে পারেন ছোটনাম বা ডাকনামের মত। বিশেষ করে কোয়েরিতে যখন একাধিক কলাম ব্যবহার করে ক্যালকুলেশন করা হয়ে থাকে তখন বেশ ভালই উপকার হয় এলিয়াস ব্যবহার করলে। এছাড়া কোয়েরিও আকারে অনেক ছোট হয়ে যায়। যেমন লেফট জয়েনে ব্যবহৃত কোয়েরি টি যদি এলিয়াস ব্যবহার করি তাহলে নিচের মত হবেঃ
1.SELECT u.username AS UserName, u.age AS Age, p.favorite_color FavColor FROM users AS u LEFT JOIN profiles AS p ON u.user_id = p.user_id;
কোয়েরিতে এভাবে কলামের নামের সামনে ডট (.) দিয়ে টেবিলের নাম বসিয়ে দেয়া ভাল অভ্যাস, এভাবেই কোয়েরি করা উচিৎ বিশেষ করে যখন সম্পর্কযুক্ত টেবিল থেকে ডেটা কোয়েরি করা হয় তখন দুটো টেবিলেই একই নামের ফিল্ড/কলাম থাকতে পারে তখনতো অবশ্যই এভাবে কলামের নামের আগে ডট দিয়ে টেবিলের নাম দিতে হবে।
ব্যাখ্যা: users টেবিলে এলিয়াস ব্যবহারের জন্য users AS u এভাবে দিয়েছি এতে করে আর কোথাও পুরো টেবিলের নামটি ব্যবহার করতে হয়নি বরং শুধু u দেয়াতেই পুরো users লেখার কাজ হয়ে গেছে এভাবে দেখুন profiles টেবিলেরও কাজ শুধু p দিয়ে হচ্ছে। এই u হচ্ছে এখানে users টেবিলের এলিয়াস আর p হচ্ছে profiles টেবিলের এলিয়াস।
ধন্যবাদ।

SQL (এসকিউএল) IN(ইন) অপারেটর . SQL IN Operator

SQL (এসকিউএল) UNIQUE কনস্ট্রেইন্ট

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

MySQL এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

UNIQUE (P_Id)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

UNIQUE কনস্ট্রেইন্ট মুছে ফেলতে চাইলে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL এর ক্ষেত্রে:

ALTER TABLE Persons

DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

SQL LIKE (লাইক) Operator (অপারেটর) . SQL Like Operator

SQL (এসকিউএল) UNIQUE কনস্ট্রেইন্ট

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

MySQL এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

UNIQUE (P_Id)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

UNIQUE কনস্ট্রেইন্ট মুছে ফেলতে চাইলে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL এর ক্ষেত্রে:

ALTER TABLE Persons

DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

এসকিউএল ডিলেট স্টেটমেন্ট . SQL Delete Statement

এসকিউএল ডিলেট স্টেটমেন্ট
Name: Sheikh Mahfuzur Rahman
এসকিউএল প্রোগ্রামিং লেংগুয়েজে একটি টেবলের রেকর্ড সমূহ যেমন টেবলের রো বা সারি মুঁছে ফেলার জন্য ডিলেট(DELETE) স্টেটমেন্ট ব্যবহার করা হয়। নিচে এ সম্পর্কে বিস্তারিত আলোচনা করা হলোঃ

এসকিউএল ডিলেট স্টেটমেন্ট

ডিলেট স্টেটমেন্ট একটি টেবলের রো বা সারিগুলো মুঁছে ফেলার কাজে ব্যবহার করা যায়।

এসকিউএল ডিলেট সিন্ট্যাক্সঃ

DELETE FROM table_name
WHERE some_column=some_value;

ডিলেট স্টেটমেন্ট এ হোয়ার(WHERE) ক্লজটি লক্ষ করুন!
হোয়ার(WHERE) ক্লজটি কোন কোন রেকর্ড বা রেকর্ডসমূহ মুঁছে ফেলা হবে তা নির্দিষ্ট করে দেয়। আপনি যদি হোয়ার(WHERE) ক্লজটি বাদ দেন তাহলে সবগুলো রেকর্ডই মুঁছে যাবে!

ডেমো ডাটাবেজঃ

এই টিউটোরিয়ালে আমরা বহুল-পরিচিত "নর্থউইন্ড(Northwind)" স্যাম্পল ডাটাবেজ ব্যবহার করবো।
নিচে কাস্টমার্স টেবলের একটি নির্বাচিত অংশ তুলে ধরা হলোঃ

CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
1

Alfreds Futterkiste
Maria Anders
Obere Str. 57
Berlin
12209
Germany
2
Ana Trujillo Emparedados y helados
Ana Trujillo
Avda. de la Constitución 2222
México D.F.
05021
Mexico
3
Antonio Moreno Taquería
Antonio Moreno
Mataderos 2312
México D.F.
05023
Mexico
4
Around the Horn
Thomas Hardy
120 Hanover Sq.
London
WA1 1DP
UK
5
Berglunds snabbköp
Christina Berglund
Berguvsvägen 8
Luleå
S-958 22
Sweden

এসকিউএল ডিলেট একজাম্পলঃ

ধরা যাক, আমরা কাস্টমার্স টেবল থেকে কাস্টমার "Alfreds Futterkiste" কে মুঁছে দিতে চাই।
আমরা নিম্নরূপ এসকিউএল স্টেইটমেন্ট ব্যবহার করবোঃ

DELETE FROM Customers
WHERE CustomerName='Alfreds Futterkiste' AND ContactName='Maria Anders';

এখন কাসস্টমার্স টেবলটি নিচের মতো দেখাবেঃ

CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
2
Ana Trujillo Emparedados y helados
Ana Trujillo
Avda. de la Constitución 2222
México D.F.
05021
Mexico
3
Antonio Moreno Taquería
Antonio Moreno
Mataderos 2312
México D.F.
05023
Mexico
4
Around the Horn
Thomas Hardy
120 Hanover Sq.
London
WA1 1DP
UK
5
Berglunds snabbköp
Christina Berglund
Berguvsvägen 8
Luleå
S-958 22
Sweden

ডিলেট অল ডাটা বা সব ডাটা মুঁছে দেয়াঃ

একটি টেবলকে না মুঁছে তার সব রো বা সারি মুঁছে ফেলা সম্ভব। অর্থাৎ এর ফলে টেবল স্ট্রাকচার, এট্রিবিউট, এবং ইন্ডেক্সগুলো মুঁছে যাবেনাঃ

DELETE FROM table_name;

or

DELETE * FROM table_name;

লক্ষ্য করুন, রেকর্ডস মুঁছে ফেলার সময় সতর্ক হোন কারণ আপনি এসকিউএল ডিলেট স্টেটমেন্ট আন্ডু(Undo) করতে পারবেন না।

SQL Update Statement

নাম-শরিফুল ইসলাম
PHP Coder

বিষয়- SQL Update Statement

SQL Update statement ব্যবহার করা হয় ডাটাবেস এর ভিতরে টেবিল এর ডাটা কে পরিবরতন করার জন্য। এই statement এর কিভাবে অ্যাপ্লাই করতে হয় তা দেখার জন্য আমাদের localhost>phpmyadmin এর আন্ডার এ ডাটাবেস তৈরি করতে হবে এবং একটি টেবিল তৈরি করতে হবে। প্রথমে ডাটাবেস এ ক্লিক করলে একটি ফিল্ড পাওয়া যাবে সেইখানে product নামে একটি ডাটাবেস তৈরি করি। এরপর ওপরের মেনু থেকে sql এ ক্লিক করি অনেক বড় একটা textarea পাওয়া যাবে। সেইখানে নিচের কোড টি paste করি
-- Database: `product`
--

-- --------------------------------------------------------

--
-- Table structure for table `product`
--

CREATE TABLE IF NOT EXISTS `product` (
`name` varchar(11) NOT NULL,
`price` int(11) NOT NULL,
`date` date NOT NULL,
`customer_id` int(250) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `product`
--

INSERT INTO `product` (`name`, `price`, `date`, `customer_id`) VALUES
('shirt', 100, '2015-01-01', 4),
('jeans', 120, '2015-01-03', 2),
('salowar', 300, '2015-01-10', 3),
('bag', 150, '2015-01-07', 1);
ফলে আমাদের টেবিল তৈরি হয়ে গেল
Name price date customer_id
Bag 150 2015-01-07 1
Shirt 100 2015-01-03 2
Salowar 300 2015-01-10 3
Jeans 120 2015-01-01 4
আমদের এই টেবিল টির নাম product. মনে করুন আমি name ফিল্ড এর আন্ডার প্রথম কলামে bag নামটা পরিবরতন করে sports bag নামটা লিখব। এই জন্য উপরের মেনু থেকে sql ক্লিক করি কোড উইন্ডো তে টাইপ করি
UPDATE `product`.`product` SET `name` = 'sports bag' WHERE `product`.`name` = 'bag' AND `product`.`price` =150 AND `product`.`date` = '2015-01-07' AND`product`.`customer_id` =1 LIMIT 1 ;
এবং go বাটন এ ক্লিক করলে bag এর পরিবর্তে sports bag হয়ে যাবে।
এই
Statement টি যদি আমরা explain করি তাহলে নিম্মের মতন হবে
Product database এর product table এর name ফিল্ড এ bag এর পরিবর্তে sports bag পরিবরতন করতে হবে যেখানে price=150 এবং date=2015-01-07 এবং customer_id=1.এইভাবে আমরা আমাদের ডাটাবেস এর যেকোনো ফিল্ড কে আপডেট করতে পারি।

SQL Insert Into Statement

নাম-শরিফুল ইসলাম
Job category-Php Coder

বিষয়- SQL Insert Into Statement
Database এর টেবিল এ কোন ডাটা insert করার জন্য আমরা insert statement ব্যবহার করে থাকি।
এরজন্ন আগে আমাদের ডাটাবেস তৈরি করে নিতে হবে। আমরা প্রোডাক্ট নামে একটা ডাটাবেস তৈরি করব এবং তার মধ্যে একটি টেবিল তৈরি করব। প্রথমে ডাটাবেস এ ক্লিক করলে একটি ফিল্ড পাওয়া যাবে সেইখানে product নামে একটি ডাটাবেস তৈরি করি। এরপর ওপরের মেনু থেকে sql এ ক্লিক করি অনেক বড় একটা textarea পাওয়া যাবে। সেইখানে নিচের কোড টি paste করি
-- Database: `product`
--

-- --------------------------------------------------------

--
-- Table structure for table `product`
--

CREATE TABLE IF NOT EXISTS `product` (
`name` varchar(11) NOT NULL,
`price` int(11) NOT NULL,
`date` date NOT NULL,
`customer_id` int(250) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--

-- --------------------------------------------------------

--
-
এবং go বাটন এ ক্লিক করার সাথে সাথে ডাটাবেস তৈরি হয়ে গেল।এখন আমরা sql query এর মাধ্যমে এই ডাটাবেস এ ডাটা যোগ করব।
উপড়ের মেন্যু থেকে SQL ক্লিক করলে একটি উইন্ডো আসবে। সেখানে টাইপ করি
-- Dumping data for table `product`
--

INSERT INTO `product` (`name`, `price`, `date`, `customer_id`) VALUES
('shirt', 100, '2015-01-01', 4),
('jeans', 120, '2015-01-03', 2),
('salowar', 300, '2015-01-10', 3),
('bag', 150, '2015-01-07', 1);
এবং go বাটন এ ক্লিক করলে নিচের টেবিল এর মতন একটি টেবিল পাওয়া যাবে

Name price date customer_id
Bag 150 2015-01-07 1
Shirt 100 2015-01-03 2
Salowar 300 2015-01-10 3
Jeans 120 2015-01-01 4
অনেক সময় দেখা যায় আমাদের সবগুলো ফিল্ড এ ডাটা ইনপুট না করে কিছু নির্দিষ্ট ফিল্ডে ডাটা ইনপুট করতে হয়। যেমন আমরা শুধু product table এর name and price এই দুটি ফিল্ডে ডাটা যোগ করতে চাই।
এর জন্য sql query
INSERT INTO `product` (`name`, `price`) VALUES
('shirt', 100),
('jeans', 120),
('salowar', 300),
('bag', 150);
এবং এর query রান করলে আমরা পাব
Name price date customer_id
Bag 150 - -
Shirt 100 - -
Salowar 300 - -
Jeans 120 - -

SQL ORDER BY কীওয়ার্ড . SQL ORDER BY Keyword

SQL ORDER BY কীওয়ার্ড

Article By: Pratap Chandra

ডাটাবেজের একটি টেবিল থেকে তুলে আনা ডাটাকে প্রয়োজন মতো সাজাতে ORDER BY কীওয়ার্ড ব্যবহার করা হয়। এক কিংবা একাধিক কলাম ধরে এই কীওয়ার্ডের সাহায্যে ডাটা সাজানো যায় এবং সজ্জার প্রকৃতি (উর্ধ্বক্রম কিংবা অধ:ক্রম) উল্লেখ না করলে স্বয়ংক্রিভাবে উর্ধ্বক্রম (ascending) অনুসারে সাজায়। প্রাপ্ত ডাটাকে অধ:ক্রম (descending) অনুসারে সাজাতে গেলে DESC কীওয়ার্ড ব্যবহার করতে হবে।

SQL ORDER BY সিনট্যাক্স

SELECT column_name,column_name

FROM table_name

ORDER BY column_name,column_name ASC|DESC;

এই সিনট্যাক্সে column_name বলতে বুঝানো হয়েছে আপনি যেটি বা যেসব কলামের ডাটা তুলে আনতে চান তার নাম। table_nameএর স্থলে ডাটাবেজের নির্দিষ্ট টেবিলের নাম লিখতে হবে। ORDER BY এর পর লিখতে হবে আপনি কোন কলাম ধরে কিংবা অগ্রাধিকার অনুসারে কোন কলামগুলো ধরে ডাটা সাজাতে চান। উর্ধ্বক্রমে সাজাতে চাইলে ASC এবং অধ:ক্রম অনুসারে সাজাতে চাইলে DESC ব্যবহার করা হয়।

ডাটা নির্বাচনের উদাহরণ:

এই টিউটিরিয়ালে আমরা বহুল পরিচিত Northwind স্যাম্পল ডাটাবেজটি ব্যবহার করব, যেটি মাইক্রোসফট Excel এবং MS SQL Server এর সাথে শিক্ষার্থীদের জন্য তৈরী অবস্থায় (readymade) সংযুক্ত করা থাকে।

Northwind ডাটাবেজের Customers টেবিল থেকে কিছু ডাটা নির্বাচন করা হলো:

AlfredsFutterkisteObereStr.57Ana TrujilloEmparedados yheladosAvda. de laConstitución2222México D.F.Mataderos 2312México D.F.WA1 1DPBerglundssnabbköpBerguvsvägen 8

CustomerID

CustomerName

ContactName

Address

City

PostalCode

Country

1 Maria Anders Berlin 12209 Germany
2 Ana Trujillo 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London UK
5 Christina Berglund Luleå S-958 22 Sweden

ORDER BY এর উদাহরণ:

নিচের SQL স্টেটমেন্টটি প্রয়োগ করলে Customers টেবিল থেকে সব customer এর তথ্য উঠে আসবে। আর এই তথ্যগুলো Country কলাম ধরে উধ্বর্ক্রম অনুসারে সাজাবে।

SELECT * FROM Customers

ORDER BY Country;

ORDER BY DESC এর উদাহরণ:

নিচের SQL স্টেটমেন্টটি প্রয়োগ করলে Customers টেবিল থেকে সব customers এর তথ্য উঠে আসবে। এই তথ্যগুলো Country কলাম ধরে অধ:ক্রম অনুসারে সাজাবে।

SELECT * FROM Customers

ORDER BY Country DESC;

একাধিক কলাম অনুসারে ডাটা সাজানোর উদাহরণ:

নিচের SQL স্টেটমেন্টটি প্রয়োগ করলে Customers টেবিল থেকে সব customer এর তথ্য উঠে আসবে। তবে এই তথ্যগুলো Country এবং CustomerName কলাম ধরে সাজাবে। প্রথম অগ্রাধিকার পাবে Country এবং দ্বিতীয় অগ্রাধিকার পাবে CustomerName।

SELECT * FROM Customers

ORDER BY Country,CustomerName;

SQL (এসকিউএল) WHERE ক্লজ . SQL WHERE Clause

<h1>SQL (এসকিউএল) WHERE ক্লজ</h1>

Article By: Pratap Chandra
<p>ডাটাবেজ থেকে ডাটা ফিল্টার (filter) বা পরিশোধন করার জন্য WHERE ক্লজ ব্যবহার করা হয়। এখানে পরিশোধন করা বলতে বুঝানো হয়েছে শর্ত প্রয়োগ করে কেবল প্রয়োজনীয় ডাটাগুলো তুলে আনা। আপনি যে শর্ত প্রয়োগ করবেন শুধু সেই শর্ত পূরণ করতে পারা ডাটাই কেবল বাছাই হবে।</p>
<h3>এসকিউএল WHERE সিনট্যাক্স বা গঠনরীতি: </h3>
<p>SELECT <em>column_name</em>,<em>column_name</em><br />
FROM <em>table_name</em><br />
WHERE <em>column_name operator value</em>;</p>

এই টিউটিরিয়ালে আমরা Northwind স্যাম্পল ডাটাবেজটি ব্যবহার করব, যেটি মাইক্রোসফট Excel এবং MS SQL Server এর সাথে শিক্ষার্থীদের জন্য তৈরী অবস্থায় (readymade) সংযুক্ত করা থাকে।  সেই ডাটাবেজের Customers টেবিল থেকে কিছু ডাটা SELECT কমান্ড প্রয়োগ করে বাছাই করা হয়েছে, যা নিচের টেবিলে দেখানো হলো:
<table border="1" cellpadding="2">
<tr>
<td><p align="center"><strong>CustomerID</strong></p></td>
<td><p align="center"><strong>CustomerName</strong></p></td>
<td><p align="center"><strong>ContactName</strong></p></td>
<td><p align="center"><strong>Address</strong></p></td>
<td><p align="center"><strong>City</strong></p></td>
<td><p align="center"><strong>PostalCode</strong></p></td>
<td><p align="center"><strong>Country</strong></p></td>
</tr>
<tr>
<td><p>1</p></td>

Alfreds Futterkiste
<td><p>Maria Anders</p></td>

Obere Str. 57
<td><p>Berlin</p></td>
<td><p>12209</p></td>
<td><p>Germany</p></td>
</tr>
<tr>
<td><p>2</p></td>

Ana Trujillo Emparedados y helados
<td><p>Ana Trujillo</p></td>

Avda. de la Constitución 2222

 

México D.F.
<td><p>05021</p></td>
<td><p>Mexico</p></td>
</tr>
<tr>
<td><p>3</p></td>
<td><p>Antonio Moreno Taquería</p></td>
<td><p>Antonio Moreno</p></td>

Mataderos 2312

 

México D.F.
<td><p>05023</p></td>
<td><p>Mexico</p></td>
</tr>
<tr>
<td><p>4</p></td>
<td><p>Around the Horn</p></td>
<td><p>Thomas Hardy</p></td>
<td><p>120 Hanover Sq.</p></td>
<td><p>London</p></td>

WA1 1DP
<td><p>UK</p></td>
</tr>
<tr>
<td><p>5</p></td>

Berglunds snabbköp
<td><p>Christina Berglund</p></td>

Berguvsvägen 8
<td><p>Luleå</p></td>
<td><p>S-958 22</p></td>
<td><p>Sweden</p></td>
</tr>
</table>
<h3>WHERE ক্লজ এর উদাহরণ:</h3>
<p>এখন Customers টেবিল থেকে আমরা কেবল Mexico এর Customer গুলো তুলে আনব। এই কাজ করতে আমাদের নিচের SQL স্টেটমেন্ট প্রয়োগ করতে হবে: <br />
</p>
<p>SELECT * FROM Customers<br />
WHERE Country='Mexico';</p>
<p>SQL স্টেটমেন্ট লেখার সময় যে শর্ত প্রয়োগ করা হয় তা single quote এর ভেতরে লেখা হয় (যদিও অনেক ডাটাবেজ double quote ও সাপোর্ট করে)। তবে numeric ডাটার ক্ষেত্রে কোনো quote ব্যবহার করার প্রয়োজন নেই। <br />
</p>
<h3>উদাহরণ: <br />
</h3>
<p>SELECT * FROM Customers<br />
WHERE CustomerID=1;<br />
<br />
<strong>WHERE ক্লজ প্রয়োগ করার সময় যে operator গুলো ব্যবহার করা হয়:</strong></p>
<table border="1" cellpadding="1" width="100%">
<tr>
<td width="19%"><p align="center"><strong>Operator</strong></p></td>
<td><p align="center"><strong>ব্যাখ্যা</strong></p></td>
</tr>
<tr>
<td><p>=</p></td>
<td><p>সমান</p></td>
</tr>
<tr>

<>&nbsp;
<td><p>অসমান। যদিও SQL এর কোনো কোনো ভার্সনে এই অপারেটরকে != এভাবেও লেখা হয় </p></td>
</tr>
<tr>

>&nbsp;
<td><p>বড়</p></td>
</tr>
<tr>

<&nbsp;
<td><p>ছোট</p></td>
</tr>
<tr>
<td><p>&gt;=</p></td>
<td><p>সমান কিংবা বড়</p></td>
</tr>
<tr>
<td><p>&lt;=</p></td>
<td><p>সমান কিংবা ছোট</p></td>
</tr>
<tr>
<td><p>BETWEEN</p></td>
<td><p>নির্ধারণ করা একটি সীমার মধ্যে (দুই প্রান্তের ডাটার মানসহ)</p></td>
</tr>
<tr>
<td><p>LIKE</p></td>
<td><p>সাদৃশ আছে এমন</p></td>
</tr>
<tr>
<td><p>IN</p></td>
<td><p>একটি কলামে একাধিক সম্ভাব্য মান নির্ধারণ করতে </p></td>
</tr>
</table>

SQL Select Distinct Statement . SQL SELECT DISTINCT Statement

নাম-শারিফুল ইসলাম
Job category-Php Coder

বিষয়- SQL Select Distinct Statement
Distinct statement ব্যবহার করা হয় একই রকম duplicate ডাটা থেকে মাত্র ভিন্ন ভিন্ন ডাটাগুলো খুজে বের করার জন্য।
এই জন্য আমরা একটি user নামে ডাটাবেস তৈরি করি। তাতে ৪ টি ফিএলদ তৈরি করি name, email , pass, city. এবং এর মাঝে ৪-৫ টি ডাটা ইন্সেরত করি।
Name city email
Bappi Dhaka bappi@yahoo.com
Nipa Dhaka nipa@yahoo.com
Kabir shylet kabir@yahoo.com
এই ভাবে করে কিছু ডাটা অ্যাড করি এবং সেভ বাটন এ ক্লিক করি।SQL query window ওপেন করে আমরা এই কোড টুকু রুন করলে আমরা একটা ফলাফল দেখতে পারব।
SQL QUERY
SELECT DISTINCT `city` FROM user
তাহলে আমরা কোড টুকু রান করার পর শুধু city এর ঘরে একটি ঢাকা ডাটা দেখতে পাব।

SQL SELECT Statement (এসকিউএল বিবৃতি নির্বাচন):

SQL SELECT Statement (এসকিউএল বিবৃতি নির্বাচন):

Article By
Fazle Rabbi
B.Sc in CSE at PSTU

SELECT স্টেটমেন্ট একটি ডাটাবেস থেকে তথ্য নির্বাচন করতে ব্যবহার করা হয়।

The SQL SELECT Statement:
SELECT স্টেটমেন্ট একটি ডাটাবেস থেকে তথ্য নির্বাচন করতে ব্যবহার করা হয়।
এর ফল টেবিলের মধ্যে সংরক্ষিত হয়, যাকে রেজাল্ট সেট বলে।

SQL SELECT Syntax (এসকিউএল নির্বাচন সিনট্যাক্স):

SELECT column_name,column_name
FROM table_name;
এবং
SELECT * FROM table_name;

Demo Database(ডেমো ডাটাবেস):
এই টিউটোরিয়ালে আমরা সুপরিচিত প্রতিলিপি নমুনা ডাটাবেস ব্যবহার করব।
নীচে "Customers" টেবিল থেকে selection বা নির্বাচন দেখানো হয়েছে:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

SELECT Column Example(নির্বাচন কলাম উদাহরণ):
নিম্নোক্ত SQL বিবৃতি "Customers" টেবিল থেকে "CustomerName" এবং "City" কলাম কিভাবে SELECT বা নির্বাচন করতে হয় তার একটা উদাহরণ দেখানো হল:

SELECT CustomerName,City FROM Customers;

SELECT * Example:
নিম্নোক্ত SQL বিবৃতি "Customers" টেবিল থেকে সব কলাম নির্বাচন করবে:

SELECT * FROM Customers;

Navigation in a Result-set(রেজাল্ট সেটে ন্যাভিগেশন):
অধিকাংশ ডাটাবেস সফ্টওয়্যার সিস্টেম রেজাল্ট সেটে ন্যাভিগেশন অনুমতি দেয় নিন্মক্ত প্রোগ্রামিং ফাংশন বাবহারের মধ্যমে,
উদাহরন্সরুপঃ Move-To-First-Record, Get-Record-Content, Move-To-Next-Record, ইত্যাদি।

প্রোগ্রামিং ফাংশনগুলো এই টিউটোরিয়াল এর অংশ নয়. ফাংশান কলের সঙ্গে তথ্য অ্যাক্সেস সম্পর্কে জানতে, আমাদের এএসপি টিউটোরিয়াল বা আমাদের পিএইচপি টিউটোরিয়াল অনুগ্রহ করে পরিদর্শন করুন.

SQL কি? Introduction to SQL

SQL কি?

SQL কে আমরা Structured Query Language বলি। সাধারণত আমরা একে সংক্ষেপে SQL বলি। এসকিউএল একটি তথ্যভান্ডারের সঙ্গে যোগাযোগ করতে ব্যবহার করা হয়। ডেটাবেসের বেশিরভাগ কাজ এসকিউয়েল স্টেটমেন্ট এর দ্বারা করা যায়। ANSI (আমেরিকান ন্যাশনাল স্ট্যান্ডার্ড ইনস্টিটিউট) মতে, এটি রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেম জন্য আদর্শ ভাষা। এসকিউএল স্টেটমেন্ট কোন ডেটাবেস থেকে তথ্য একটি ডাটাবেসের উপর আপডেট করা কর্ম সঞ্চালন।

এসকিউয়েল দিয়ে কি কি করা যায়ঃ

১। নতুন একটা ডেটাবেস তৈরী করা যায়।
২। নতুন টেবিল তৈরী করা যায়।
৩। Query করা যায়।
৪। ডেটাবেস থেকে ডেটা তুলে আনা যায়।
৫। ডেটাবেসে নতুন রেকর্ড ঢুকানো যায়।
৬। রেকর্ড আপডেট করা যায় ইত্যাদি।

কিভাবে আপনার ওয়েব সাইটের এ এসকিউএল ব্যবহার করবেনঃ

কোন ডেটাবেস থেকে তথ্য প্রদর্শন এমন একটি ওয়েব সাইট তৈরি করার জন্য, আপনাকে করতে হবে-

১। একটি RDBMS ডাটাবেস প্রোগ্রাম (অর্থাৎ মাইক্রোসফট এক্সেস, এসকিউএল সার্ভার, মাইএসকিউএল)
২। পিএইচপি বা এএসপি মত একটি সার্ভার সাইড স্ক্রিপ্টিং ভাষা ব্যবহার করা।
৩। HTML / CSS এর ব্যবহার করা।

ধন্যবাদ।

এসকিউএল টিউটোরিয়াল . SQL Tutorial

এসকিউএল টিউটোরিয়াল
Sheikh Mahfuzur Rahman

এসকিউএল(SQL) হলো ডাটাবেজগুলোতে প্রবেশ বা অ্যাক্সেস করার জন্য একটি প্রোগ্রামিং ভাষা। যারা ওয়েব ডেভলাপার হতে চান তাদের জন্য এসকিউএল একটি অত্যন্ত গুরুত্বপূর্ণ ল্যাঙ্গুয়েজ। আমাদের টিউটোরিয়ালগুলো আপনাকে এসকিউএল এর যথাযথ ব্যবহার শেখাবে যাতে আপনি এই ভাষাটি ব্যবহার করে মাইএসকিউএল(MySQL), এসকিউএল সার্ভার(SQL Server), মাইক্রোসফট অ্যাক্সেস(Access), ওরাকল(Oracle), সিবেইজ(SyBase), ডিবিটু(DB2) এবং অন্যান্য ডাটাবেজ সিস্টেমে প্রবেশ এবং ডাটা মেন্যুপিউলেট করতে পারেন।

প্রত্যেক অধ্যায়ের উদাহরণসমূহঃ
আমাদের অনলাইন এসকিউএল এডিটরের মাধ্যমে আপনি এসকিউএল স্টেইটমেন্ট এডিট করতে পারবেন এবং একটি বাটনে ক্লিক করে তার ফলাফল জানতে পারবেন।

এই প্রক্রিয়াটি কিভাবে কাজ করে তা বুঝার জন্য উপরের ট্রাই ইট ইউরসেলফ(Try It Yourself) বাটনে ক্লিক করুন।

এখনই এসকিউএল শেখা শুরু করুন!

এসকিউএল কুইজ টেস্ট
আমাদের সাইটের এসকিউএল কুজ টেস্টে অংশ নিয়ে আপনার এসকিউএল দক্ষতা যাচাই করুন!

এসকিউএল কুইক রেফারেন্স
নিচের লিংকটিতে আছে একটি এসকিউএল কুইক রেফারেন্স। এটি প্রিন্ট করে নিন এবং আপনার সাথে রাখুন!

এসকিউএল ডাটা টাইপ
মাইক্রোসফট অ্যাক্সেস, মাইএসকিউএল এবং এসকিউএল সার্ভার এর ডাটা টাইপ ও রেঞ্জগুলো সম্পর্কে ধারণা পেতে নিচের লিংকে ভিজিট করুন।

তাছাড়া আপনার এসকিউএল দক্ষতার স্বীকৃতি পেতে এবং পেশাগতভাবে সেটিকে কাজে লাগাতে আমাদের অনলাইন পরীক্ষাগুলোতে অংশ নিন!

SQL ইউনিক Constraint . SQL Unique Constraint

SQL ইউনিক Constraint
RIAZ-UL-HAQUE MIAN
ইউনিক Constraint একটি টেবিল এর যেকোনো একটি কলাম এর স্বতন্ত্রতা/ uniqueness কে বুঝায় . টেবিল এর প্রাইমারি কি সেট করলে তা automatically ইউনিক Constraint হয়ে যায়। তাহলে প্রশ্ন হলো ইউনিক Constraint দরকার কি ? কারণ আপনি একটা টেবিল এর একটা মাত্র কলাম কে ই প্রাইমারি কি করতে পারবেন , কিন্ত যদি আপনার একটা টেবিল এ একাধিক কলাম কে ইউনিক করতে হয় তাহলে SQL ইউনিক Constraint ব্যবহার করতে হবে |
টেবিল এর ইউনিক Constraint কে দুই ভাবে সেট করা যায় । প্রথম টি হলো টেবিল তৈরী করার সময় create Table starement ব্যবহার করে আর অন্য টি হলো টেবিল অল্টার করে, অর্থাত একটা টেবিল alrady তৈরী করা আছে তার কোনো একটা কলাম কে alter table statement ব্যবহার করে |
এখন আমরা দেখব টেবিল তৈরী করার সময় কি ভাবে সেট করে |
ধরে নেই আমাদের একটা টেবিল তৈরী করতে হবে যার নাম Persons এবং সেই টেবিল এর একটা কলাম P_Id যাকে আমরা SQL ইউনিক Constraint সেট করব |
SQL Server / Oracle / MS Access queary টি হবে :
CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
আর MySQL জন্য হবে :
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)
এই কাজ টি একাধিক কলাম এর জন্য করতে হলে নিচের queary টি লিখতে হবে (MySQL / SQL Server / Oracle / MS Access:)
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)

এত্তক্ষন আমরা দেখলাম কিভাবে একটা টেবিল তৈরী করার সময় ইউনিক Constraint
সেট করে। এবার মনে করি Persons টেবিল টি আগে থাকে ই তৈরী করা আছে এখন আমাদের কে P_Id ইউনিক Constraint সেট করতে হবে। এক্ষেত্রে আমরা অল্টার টেবিল statement ব্যবহার করব
ALTER TABLE Persons
ADD UNIQUE (P_Id)
সব শেষে দেখব কিভাবে কে ইউনিক Constraint রিমুভ করে । এক্ষেত্রে MySQL ও SQL Server / Oracle / MS Access SQL starement নিচে দিয়া হলো
MySQL ক্ষেত্রে query টি হবে নিন্মরূপ :
ALTER TABLE Persons
DROP INDEX uc_PersonID
আর SQL Server / Oracle / MS Access ক্ষেত্রে quraery টি হবে নিন্মরূপ :
ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID

SQL ডিফল্ট Constraint

SQL ডিফল্ট Constraint
NAZMA AKHRET
টেবিল এ যখন কোনো নতুন ভ্যালু insert করা হয় তখন কোনো টেবিল এর কোনো ফিল্ড এ ফিক্সড কোনো ভ্যালু সেট করতে হলে default (ডিফল্ট) Constraint ব্যবহার করতে হবে | যখন কোনো নিউ ভ্যালু টেবিল এ insert করা হবে তখন default (ডিফল্ট) Constraint টি row insert সাথে insert হয়ে যাবে |
এখন আমরা দেখব টেবিল তৈরী করার সময় কি ভাবে সেট করে | উধারণ সরূপ আমরা Persons Table এর city (সিটি) কলাম এ সব সময় Dhaka (ঢাকা) সেট করতে চাই সেক্ষেত্রে SQL syntax হবে :
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Dhaka'
)
default (ডিফল্ট) Constraint এ SQL server function ও ব্যবহার করা যায় যেমন
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
OrderDate date DEFAULT GETDATE()
)
এত্তক্ষন আমরা দেখলাম কিভাবে একটা টেবিল তৈরী করার সময় default (ডিফল্ট) Constraint সেট করে। এবার মনে করি Persons টেবিল টি আগে থাকে ই তৈরী করা আছে এখন আমাদের কে city column এর ডিফল্ট ভ্যালু Dhaka (ঢাকা) করতে হবে এক্ষেত্রে আমরা অল্টার টেবিল statement ব্যবহার করব
MySQL:
ALTER TABLE Persons
ALTER City SET DEFAULT 'SANDNES'
SQL Server / MS Access:
ALTER TABLE Persons
ALTER COLUMN City SET DEFAULT 'SANDNES'
Oracle:
ALTER TABLE Persons
MODIFY City DEFAULT 'SANDNES'

সব শেষে দেখব কিভাবে কে default (ডিফল্ট) Constraint রিমুভ করে । এক্ষেত্রে MySQL ও SQL Server / Oracle / MS Access SQL starement নিচে দিয়া হলো
MySQL ক্ষেত্রে query টি হবে নিন্মরূপ :
ALTER TABLE Persons
ALTER City DROP DEFAULT
আর SQL Server / Oracle / MS Access ক্ষেত্রে quraery টি হবে নিন্মরূপ :
ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT

Title: SQL CREATE INDEX Statement . SQL Create Index Statement

Title: SQL CREATE INDEX Statement
অনুবাদক: ফয়সাল রকি (এম.এ)
Total word count: 247

-----------------------------------------------------
CREATE INDEX স্টেটমেন্টের সাহায্যে কোনো table এর index প্রস্তুত করা হয়।
index ব্যবহার করে database application এর সাহায্যে কোন table এর মধ্যকার data কে সহজে খুঁজে বের করা যায়। এক্ষেত্রে পুরো table টি খুঁজতে হয় না, ফলে দ্রুত data খুঁজে পাওয়া যায়।

Indexes
index এর সাহায্যে table এর মধ্যকার data দ্রুত ও দক্ষতার সাথে খুঁজে পাওয়া যায়। এক্ষেত্রে ব্যবহারকারী index কে দেখতে পায় না তবে দ্রুত ও দক্ষতার সাথে search বা query সম্পন্ন হয়।
নোট: যেসকল table এ index যুক্ত করা থাকে সেসকল table কে update করতে index বিহীন table অপেক্ষা বেশি সময় প্রয়োজন হয়, কেননা data এর পাশাপাশি index-ও update হয়।

SQL CREATE INDEX Syntax
একটি table এ নিম্নোক্ত উপায়ে index তৈরি করা যায় (Duplicate values গ্রহণযোগ্য/ থাকতে পারে):
CREATE INDEX index_name
ON table_name (column_name)

SQL CREATE UNIQUE INDEX Syntax
একটি table এ নিম্নোক্ত উপায়ে unique index তৈরি করা যায় (Duplicate values অ্গ্রহণযোগ্য/থাকবে না):
CREATE UNIQUE INDEX index_name
ON table_name (column_name)
উল্লেখ্য যে, ভিন্ন ভিন্ন database এ index তৈরি করার ক্ষেত্রে syntax এর পার্থক্য হতে পারে। তাই আপনার database এর index তৈরি করার সময় syntax টি ভালভাবে check করুন।

CREATE INDEX উদাহরণ
নিম্নোক্ত SQL statement এর সাহায্যে "Persons" table এর "LastName" column এ "PIndex" নামক index তৈরি করা হয়েছে:
CREATE INDEX PIndex
ON Persons (LastName)

যদি আপনি একাধিক column এর মধ্যে index তৈরি করতে চান তাহলে প্রথম বন্ধনী বা parentheses এর মধ্যে comma separated বা কমা’র সাহায্যে আলাদা করে column এর list করতে পারেন।নিম্নে একটি উদাহরণ দেয়া হলো:
CREATE INDEX PIndex
ON Persons (LastName, FirstName)

এসকিউএল কন্সট্রেইন্টস . SQL Constraints

Sheikh Mahfuzur Rahman
Blogger @ BloggersEcho.Com
Bengali Word Count: 155-159

এসকিউএল কন্সট্রেইন্টস

ওয়েব ডাটাবেজ ল্যাঙ্গুয়েজ এসকিউএল(SQL) এ কন্সট্রেইন্টগুলো(Constraints) কোন টেবলের ডাটাগুলোর রুলস বা নীতি নির্ধারণে ব্যবহৃত হয়। এক্ষেত্রে ডাটা অ্যাকশান এবং কন্সট্রেইন্টের নীতির মধ্যে সাংঘর্ষিক(Violation) কিছু ঘটলে কন্সট্রেইন্টের কার্যকারিতা বাতিল হয়ে যায়। যখন টেবল তৈরি করা হয় তখন CREATE TABLE স্টেটম্যান্টের ভিতরে অথবা টেবল তৈরি করার পর ALTER TABLE স্টেটম্যান্টের ভিতরে কন্সট্রেইন্টগুলো নির্দিষ্ট করে দেয়া যায়।

এসকিউএল ক্রিয়েট টেবল + কন্সট্রেইন্ট সিন্ট্যাক্স:

CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);

এসকিউএল-এ নিচের কন্সট্রেইন্টগুলো রয়েছেঃ

NOT NULL - নির্দেশ করে যে একটি কলাম নাল ভ্যালু ধারণ করতে পারবেনা।

UNIQUE - একটি কলামের প্রত্যেক রো এর ইউনিক ভ্যালু নিশ্চিত করে।

PRIMARY KEY - এটি হলো নট নাল ও উনিক এর সমন্বয়। নিশ্চিত করে যে একটি কলাম অথবা দুই বা আরও বেশী কলাম কম্বিনশনের একটি ইউনিক বা অনন্য পরিচিতি থাকে যা একটি টেবলে কোন নির্দিষ্ট রেকর্ড সহজে এবং দ্রুততার সাথে খুঁজে পেতে সাহাজ্য করে।

FOREIGN KEY - একটি টেবলের ডাটার রেফারেন্সিয়াল ইন্টিগ্রিটি নিশ্চিত করে যাতে অন্য টেবলের ভ্যালুগুলোর সাথে মেলানো যায়।

CHECK - কোন কলামের ভ্যালু যেন একটি নির্দিষ্ট বৈশিষ্ট্য অর্জন করে তা নিশ্চিত করে।

DEFAULT - কলামের জন্য যখন কোন ভ্যালু নির্ধারণ করা হয় হয় না তখন এটি একটি ডিফল্ট ভ্যালু নির্ধারন করে দেয়।

এই ছিল এসকিউএল কস্ট্রেইন্টগুলোর প্রাথমিক ধারনা। পরবর্তী অধ্যায়ে প্রতিটি কন্সট্রেইন্ট সম্পর্কে বিস্তারিতভাবে আলোচনা করা হবে।

SQL এর PRIMARY KEY তথা প্রাথমিক চাবি এর বাধ্যবাদকতা।SQL Primary Key Constraint

SQL এর PRIMARY KEY তথা প্রাথমিক চাবি এর বাধ্যবাদকতা।
ফাছিহুর রহমান।
MSCSE From Royal University of Dhaka.
টেকনিক্যার এক্সপার্ট, বাংলাদেশ নির্বাচন কমিশন সচিবালয়।

SQL এর প্রাথমিক কি এর বাধ্যবাদকতা।
প্রাথমিক কি বাধ্যবাদকতাটি ডাটাবেজের টেবিলের প্রত্যেকটি Record তথা ক্ষেত্রকে নির্দিষ্ট ভাবে চিন্হিত করে। প্রাথমিক কি অবশ্যয় নির্দিষ্ট মান বহন করে। একটি primary key সম্বলীত কলামকে কখন ও খালি রাখা কে গ্রহণ করে না। অধিকাংশ টেবিলগুলোতে একটি primary key থাকে এবং প্রত্যেক টা টেবিলে শুধুমাত্র একটি primary key থাকে।
SQL এ একটি টেবিল তৈরীতে primary key এর বাধ্যবাদকতা।
নিন্মোক্ত SQL এ Persons টেবিল তৈরীতে P_Id কলামকে primary key হিসেবে তৈরী করা হয়েছে।
MySQL এ PRIMARY KEY তৈরী করার উদাহরণ।
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)
উক্ত Persons টেবিলে P_Id কলামকে PRIMARY KEY তৈরী করা হয়েছে।
SQL Server / Oracle / MS Access: এ PRIMARY KEY তৈরী করার উদাহরণ।
CREATE TABLE Persons
(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
উক্ত Persons টেবিলে P_Id কলামকে PRIMARY KEY তৈরী করা হয়েছে।
PRIMARY KEY এর বাধ্যবাদকতার নামকরণ এবং একাধিক কলামে PRIMARY KEY কে নির্দিষ্ট করার জন্য নিন্মোক্ত SQL নিয়মঃ
MySQL / SQL Server / Oracle / MS Access: এ একাধিক কলামে PRIMARY KEY তৈরী করার উদাহরণ।
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)
বিঃদঃ- উক্ত Persons টেবিলে মাত্র pk_PersonID কলাম কে PRIMARY KEY করা হয়েছে তথাপ ও pk_PersonID কলামের মান তথা value কে দুইটি কলামে( P_Id ও LastName) বিভক্ত করা হয়েছে।
SQL একটি তৈরীকৃত টেবিলে PRIMARY KEY এর বাধ্যবাদকতাঃ
একটি তৈরীকৃত টেবিলে P_Id কলামকে PRIMARY KEY এর বাধ্যবাদকতা হিসেবে তৈরী করতে নিন্মোক্ত SQL কমান্ড ব্যবহার করা হয়ঃ
MySQL / SQL Server / Oracle / MS Access: এ ব্যবহার
ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)
PRIMARY KEY এর বাধ্যবাদকতার নামকরণ এবং একাধিক কলামে PRIMARY KEY কে নির্দিষ্ট করার জন্য নিন্মোক্ত SQL নিয়ম ঃ
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)

বিঃদঃ- যদি তুমি একটি তৈরীকৃত টেবিল হতে অন্য একটি টেবিল তৈরীতে একটি primary key সংযোগ করতে চাও তবে অবশ্যই primary key হিসেবে ঘোষিত কলামটিকে কিছু না দিয়ে খালী রাখা যাবে না মর্মে উল্লেখ করতে হবে(এটা প্রথম টেবিল তৈরীতে)।
PRIMARY KEY এর বাধ্যবাদকতাকে বাদ দেয়াঃ
একটি PRIMARY KEY এর বাধ্যবাদকতাকে বাদ দিতে হলে নিন্মোক্ত SQL কমান্ড ব্যবহার করতে হয়।
MySQL: এ নিন্মোক্ত কমান্ড
ALTER TABLE Persons
DROP PRIMARY KEY

SQL Server / Oracle / MS Access: এ নিন্মোক্ত কমান্ড
ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID

এসকিউএল ফরেন কি কন্সট্রেইন্ট .

এসকিউএল ফরেন কি কন্সট্রেইন্ট
Sheikh Mahfuzur Rahman

একটি টেবলের FOREIGHN KEY অন্য টেবলের PRIMARY KEY এর দিকে নির্দেশ করে। একটি উদাহরণের মাধ্যমে "ফরেন কি" কে ব্যাখ্যা করা যাক। নিচের দুটো টেবলের দিকে লক্ষ্য করুন যার একটি হলো ''Persons'' টেবল এবং অন্যটি হলো "Orders” টেবলঃ

The "Persons" table:
P_Id
LastName
FirstName
Address
City
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
3
Pettersen
Kari
Storgt 20
Stavanger
The "Orders" table:
O_Id
OrderNo
P_Id
1
77895
3
2
44678
3
3
22456
2
4
24562
1

লক্ষ্য করুন, "Orders"টেবলের "P_Id” কলাম ''Persons” টেবলের ''P_Id” কলামের দিকে নির্দেশ করছে। তাই এখানে ''Persons” টেবলের "P_Id” কলাম হলো এই টেবলের প্রাইমারি কি; অন্যদিকে ''Orders” টেবলের "P_Id” কলাম হলো ''Orders” টেবলের ফরেন কি।
কিছু কিছু কার্যক্রম, যেগুলো টেবল থেকে টেবলের যে লিংক রয়েছে তা নষ্ট করে দিতে পারে, বন্ধ করার জন্য FOREIGHN KEY ব্যবহৃত হয়। FOREIGHN KEY কন্সট্রেইন্ট ফরেন কি কলামে ভুল বা ইনভ্যালিড ডাটা প্রবেশ করানোর ক্ষেত্রেও বাধা দেয় কারন এটি শুধুমাত্র সেই ভ্যালুগুলো ধারণ করতে পারবে যা অন্য টেবলের প্রাইমারি কি কলামে সংরক্ষিত রয়েছে।

CREATE TABLE এ এসকিউএল FOREIGHN KEY কন্সট্রেইন্ট
নিচের এসকিউএল সিন্টেক্সটটি ''Orders” টেবল তৈরি করার সময় তার "P_Id” কলামে একটি FOREIGHN KEY তৈরি করে; বিভিন্ন ডাটাবেজ সিস্টেমে ফরেন কি'র এসকিউএলগুলো দেখে নেয়া যাকঃ
MySQL:
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)
SQL Server / Oracle / MS Access:
CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)

FOREIGHN KEY কন্সট্রেইন্টের নামকরন করার জন্য এবং অনেকগুলো কলামে একটি FOREIGHN KEY কন্সট্রেইন্ট সংজ্ঞায়িত করার জন্য নিচের এসকিউএল সিন্টেক্সট ব্যবহার করুনঃ
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)

ALTER TABLE এ এসকিউএল FOREIGHN KEY কন্সট্রেইন্ট
যেখানে "Orders” টেবলটি ইতোমধ্যেই তৈরি করা হয়ে গেছে সেক্ষেত্রে "Orders” টেবলের '”P_Id” কলামে একটি FOREIGHN KEY” কন্সট্রেইন্ট তৈরি করতে নিচের এসকিউএল'টি ব্যবহার করুনঃ
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

ফরেন কি কন্সট্রেইন্টের নামকরন করার জন্য এবং অনেকগুলো কলামে একটি ফরেন কি কন্সট্রেইন্ট সংজ্ঞায়িত করার জন্য(ALTER TABLE এর ক্ষেত্রে) নিচের এসকিউএল সিন্ট্যাক্সট ব্যবহার করুনঃ
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

একটি ফরেন কি কন্সট্রেইন্ট ড্রপ করার জন্য
একটি FOREIGHN KEY কন্সট্রেইন্ট DROP অর্থাৎ সেটি বাদ দেয়ার জন্য নিচের এসকিউএল'টি ব্যবহার করুনঃ
MySQL:
ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders
SQL Server / Oracle / MS Access:
ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders

SQL (এসকিউএল) NULL Values(মান): SQL Null Values

SQL (এসকিউএল) NULL Values(মান):
Null value বলতে অনুপস্থিত বা মানহীন data বুঝায় । এর মান কখন শুন্য বা খালি স্ট্রিং
(String) হয় না এবং এই শুন্য বা খালি স্ট্রিং(String) একটি মান প্রকাশ করে কিন্তু আমরা জানি NULL এর কোন মান নেই । NULL এর মান NULL এ গঠিত গাণিতিক ফলাফল দ্বারা নির্ণয় করা হয় । যেমনঃ 10 + NULL = NULL

পদবিন্যাস (Syntax):

SQL> CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25) ,
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);

এখানে NOT NULL মানে কলাম সবসময় একটি সুনির্দিষ্ট মান গ্রহণ করে যার মান দেয়া থাকে । এখানে দুটি কলাম আছে যেখানে আমরা NOT NULL ব্যাবহার করি নাই যার মানে এই কলামগুলো NULL হতে পারে ।
NULL value এমন একটি মান যা কোন রেকর্ড নির্মাণের সময় খালি রাখা হয় ।

যেমনঃ
আপনাকে অবশ্যই NULL value চেক করার সময় হয় IS NULL অথবা IS NOT NULL অপারেটর
ব্যবহার করতে হবে । নিচের টেবিলে CUSTOMERS-এর নিম্নলিখিত বিবরণ রয়েছেঃ

+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | |
| 7 | Muffy | 24 | Indore | |
+----+----------+-----+-----------+----------+

নিম্নলিখিত উদাহরণটি IS NOT NULL অপারেটর:

SQL> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM CUSTOMERS
WHERE SALARY IS NOT NULL;

যা নিম্নলিখিত ফলাফল প্রকাশ করেঃ

+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
+----+----------+-----+-----------+----------+

নিম্নলিখিত উদাহরণটি IS NULL অপারেটর:

SQL> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM CUSTOMERS
WHERE SALARY IS NULL;

যা নিম্নলিখিত ফলাফল প্রকাশ করেঃ

+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 6 | Komal | 22 | MP | |
| 7 | Muffy | 24 | Indore | |
+----+----------+-----+-----------+----------+

SQL DROP INDEX, DROP TABLE, and DROP DATABASE

Title: SQL DROP INDEX, DROP TABLE, and DROP DATABASE
অনুবাদক: ফয়সাল রকি (এম.এ)
Total word count: 164

DROP statement এর সাহায্যে Indexes, tables কিংবা databases কে সহজেই deleted বা removed করা যায়।
The DROP INDEX Statement
DROP INDEX statement ব্যবহার করে একটি table এর একটি index কে delete করা যায়।
MS Access এর ক্ষেত্রে ব্যবহৃত DROP INDEX সিনট্যাক্স (Syntax) হলো:
DROP INDEX index_name ON table_name

MS SQL Server এর ক্ষেত্রে ব্যবহৃত DROP INDEX সিনট্যাক্স (Syntax) হলো:
DROP INDEX table_name.index_name

DB2/Oracle এর ক্ষেত্রে ব্যবহৃত DROP INDEX সিনট্যাক্স (Syntax) হলো:
DROP INDEX index_name

MySQL এর ক্ষেত্রে ব্যবহৃত DROP INDEX সিনট্যাক্স (Syntax) হলো:
ALTER TABLE table_name DROP INDEX index_name

The DROP TABLE Statement
DROP TABLE statement কোনো একটি table কে delete করার ক্ষেত্রে ব্যবহৃত হয়।

The DROP DATABASE Statement
DROP DATABASE Statement কোনো একটি database কে delete করার ক্ষেত্রে ব্যবহৃত হয়।

The TRUNCATE TABLE Statement
যখন আমরা কোনো table হতে নির্দিষ্ট কিছু data delete করতে চাইবো তখন TRUNCATE TABLE Statement এর সাহায্যে তা করা হয়। উল্লেখ্য যে, এক্ষেত্রে পুরো table টিকে delete করা হয় না। TRUNCATE TABLE Statement নিম্নে দেখানো হলো:
TRUNCATE TABLE table_name

SQL Date Functions

নাম-শরিফুল ইসলাম
Job category-Php Coder

বিষয়- SQL Date Functions
এটি একটি কঠিন বিষয় যখন আমরা date নিয়ে কাজ করব নির্দিষ্ট ভাবে আমাদের date format জেনে নিতে হবে।আমরা date নিয়ে কাজ করতে গেলে এর কয়েকটি ফরম্যাট আমাদের জানতে হবে।
Now()-বর্তমান সময় এবং তারিখ পাওয়া যাবে
CURDATE()-বর্তমান তারিখ পাওয়া যাবে
CURTIME()-বর্তমান সময় পাওয়া যাবে
EXTRACT()-সময়/তারিখ এর একটি single পার্ট পাওয়া যাবে।
DATEDIFF()-দুটি তারিখের মাঝের সময় নির্ধারণ করবে।
DATE_FORMAT()-ভিন্ন ভিন্ন format এর date/time ডিসপ্লে করবে।
এখন আমরা NOW() কাজে লাগিয়ে একটি টেবিল তৈরি করব। যেকোনো একটি নাম দিয়ে একটি ডাটাবেস তৈরি করি। SQL window তে গিয়ে নিচের query টি চালনা করি
CREATE TABLE Orders
(
OrderId int NOT NULL,
ProductName varchar(50) NOT NULL,
OrderDate datetime NOT NULL DEFAULT NOW(),
PRIMARY KEY (OrderId)
)
Save বাটন এ ক্লিক করার পর আবার sql window তে গিয়ে নিচের কোড টুকু টাইপ করি
INSERT INTO Orders (ProductName) VALUES ('Jarlsberg Cheese')
এবং রান করলে আমরা নিচের মতন দেখতে পাব
OrderId ProductName OrderDate
1 Jarlsberg Cheese 2015-01-25 13:23:44.657
মানে orderdate সময় এবং তারিখ সহ ইনপুট হয়েছে।একটু যদি লক্ষ্য করি আমরা orderdate এ কোন ডাটা কিন্ত ইনপুট সে অটোমেটিক কম্পিউটার থেকে টাইম ও তারিখ জেনে নিয়ে নিজেই বসিয়েছে। অর্থাৎ যদি
NOW() ব্যবহার করতে চাইলে লিখতে হবে
OrderDate datetime NOT NULL DEFAULT NOW()
CURDATE()ব্যবহার করতে চাইলে লিখতে হবে
OrderDate datetime NOT NULL DEFAULT CURDATE()
CURTIME()ব্যবহার করতে চাইলে লিখতে হবে
OrderDate datetime NOT NULL DEFAULT CURTIME()
SQL QUERY এর মাধ্যমে যদি আমরা date select করে কোন ডাটা বের করতে চাই
তাহলে লিখতে হবে
SELECT NOW(),CURDATE(),CURTIME()
এবং আমরা যে ফলাফল তা পাব
NOW() CURDATE() CURTIME()
2015-01-25 12:45:34 2015-01-25 12:45:34

যদি আমরা দুটি date এর মাঝে difference খুজে পেতে চাই তাহলে ব্যবহার করব
SELECT DATEDIFF('2014-11-30','2014-11-29') AS DiffDate
তাহলে ফলাফল আসবে ১
এখন আসা যাক কিভাবে date format ঠিক করতে হয়
SYNTAX
DATE_FORMAT(date,format)
date ফরম্যাট ঠিক রাখার জন্য আমরা কিছু ফিচার ব্যবহার করতে পারি
%a=সপ্তাহের দিনের নাম
%b=মাসের নাম
%c=মাস numeric
%D=দিন ইংলিশ suffix অনুযায়ী
%d= দিন numeric(00-31)
%e=দিন numeric(0-31)
%H=ঘণ্টা (00-23)
%h=ঘণ্টা (01-12)
%I= ঘণ্টা (01-12)
%i=minutes numeric(00-59)
%M=মাসের নাম
%m=মাসের নাম numeric(01-12)
%p=AM/PM
%s=সেকেন্ড (00-59)
%W=সপ্তাহের নাম
%w=সপ্তাহের নাম numeric(01-07)
%Y=বছর ৪ ডিজিট
%y=বছর ২ ডিজিট
SQL query এর মধ্যে যদি আমরা লিখি
DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')
DATE_FORMAT(NOW(),'%m-%d-%Y')
DATE_FORMAT(NOW(),'%d %b %y')
DATE_FORMAT(NOW(),'%d %b %Y %T:%f')
তাহলে আমাদের ফলাফল আসবে
Nov 04 2014 11:45 PM
11-04-2014
04 Nov 14
04 Nov 2014 11:45:34:243

SQL Not Null Constraint

নাম-শরিফুল ইসলাম
Job category-Php Coder

বিষয়- SQL Not Null Constraint
Null এর অর্থ কোন জাইগা ফাকা থাকা।সাধারনত কোন টেবিল এর ফিল্ড যদি আমরা কোন কিছু না ইনপুট করে থাকি এবং সেভ করি তাহলে জাইগা টা ফাকা থাকে কিন্তু mysql database এ সেটিংস্‌ ঠিক করে দিলে সেই জাইগা আমরা যতক্ষণ পর্যন্ত কোন ডাটা না ইনপুট করব ততখন সম্পূর্ণ রো কখনই অ্যাড হবে না। সেই ক্ষেত্রে আমাদের টেবিল এর কোন ফিল্ড কে বলে দিতে হবে যে এই ফিল্ড টি not null ।তাহলেই আমাদের এই নিয়মটি কাজে লাগবে। প্রথমে আমরা একটি ডাটাবেস তৈরি করি। এরপর create বাটন এ ক্লিক করি। ডাটাবেস তৈরি হয়ে যাওয়ার পর উপরের উপরের মেনু থেকে SQL বাটন এ ক্লিক করি একটি উইন্ডো আসবে। সেখানে নিচের কোড টুকু টাইপ করি
CREATE TABLE PersonsNotNull
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
এবং সবশেষে go button এ ক্লিক করলে আমাদের ডাটাবেসের টেবিল তৈরি হয়ে গেল। এরপর আবার উপড়ের মেন্যু ত্থেকে insert বাটন এ ক্লিক করলে নতুন ডাটা এন্ট্রি করার জাইগা দেখা যাবে। একটি রো insert করুন শুধু LastName ঘরটা ফাকা রেখে এবং go button এ ক্লিক করুন দেখবেন কোন ডাটাই যোগ হচ্ছে না মানে আপনের not null ব্যবহার করার কারনে এই রকম টি হচ্ছে যদি আগে আপনি not null না সেটিংস্‌ করতেন তাহলে সহজেই যেকোনো ডাটা ফাকা রেখেই পুরন করতে পারবেন।

SQL (এসকিউএল) CHECK Constraint (কনস্‌স্ট্রেইন্ট)

SQL (এসকিউএল) CHECK Constraint (কনস্‌স্ট্রেইন্ট)

Article By: Protap Chandra

CHECK constraint ব্যবহার করা হয় একটি কলামে কোন ধরনের বা কোন ডাটা ইনপুট দেয়া যাবে তার উপর নজর রাখার জন্য। যদি একটি কলামে CHECK constraint বেধে দেয়া হয় তবে সেই কলামে কেবলমাত্র ওইজাতীয় ডাটাই ইনপুট দেয়া সম্ভব হবে।

CREATE TABLE স্টেটমেন্টের সাথে CHECK Constraint প্রয়োগ:

নিচের এসকিউএল স্টেটমেন্টটি "Persons" টেবিলটি তৈরী করার সময় "P_Id" কলামে একটি CHECK constraint যুক্ত করবে। এই constraint এর কাজ হবে "P_Id" কলামে যেন কেবল পূর্ণসংখ্যা (integer) প্রবেশ করানো হয় এবং তার মান হবে শুন্যের চেয়ে বড়, সেদিকে নজর রাখা।

MySQL এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CHECK (P_Id>0)

)

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL CHECK (P_Id>0),

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

একাধিক কলামে CHECK constraint যুক্ত করতে নিচের SQL স্টেটমেন্টের syntax বা গঠনরীতি হবে নিম্নরূপ:

MySQL / SQL Server / Oracle / MS Access এর বেলায় প্রযোজ্য:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')

)

ALTER TABLE স্টেটমেন্টের মাধ্যমে CHECK Constraint যুক্ত করা:

ধরা যাক Persons টেবিলটি আগেই তৈরী হয়ে গেছে। তৈরীর সময় এতে CHECK constraint দেয়া হয়নি। এখন সেই কাজটি করতে হবে। "P_Id" কলামে CHECK constraint যুক্ত করতে নিচের SQL স্টেটমেন্টটি ব্যবহার করতে হবে।

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে প্রযোজ্য:

ALTER TABLE Persons

ADD CHECK (P_Id>0)

টেবিল তৈরী করার পর একাধিক কলামে CHECK constraint যুক্ত করতে গেলে এসকিউএল স্টেটমেন্টের গঠনরীতি হবে নিম্নরূপ:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে প্রযোজ্য:

ALTER TABLE Persons

ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')

CHECK Constraint মুছে ফেলা:

CHECK constraint মুছে ফেলতে চাইলে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

SQL Server / Oracle / MS Access এর ক্ষেত্রে প্রযোজ্য:

ALTER TABLE Persons

DROP CONSTRAINT chk_Person

MySQL এর ক্ষেত্রে:

ALTER TABLE Persons

DROP CHECK chk_Person

SQL (এসকিউএল) FOREIGN KEY কনস্ট্রেইন্টস্. SQL Foreign Key Constraint

SQL (এসকিউএল) FOREIGN KEY কনস্ট্রেইন্টস্

Article By: Protap Chandra

FOREIGN KEY কনস্ট্রেইন্ট ব্যবহার করা যায় টেবিলগুলোর মধ্যে আন্ত:সংযোগ যাতে নষ্ট না হয় তা নিশ্চিত করার জন্য। এছাড়া FOREIGN KEY কনস্ট্রেইন্ট foreign key যুক্ত কলামে অগ্রহণযোগ্য ডাটা ইনপুটে দেয়ার হাত থেকেও ব্যবহারকারীদের বিরত রাখে। কারণ FOREIGN KEY সঙ্গায়িত কলামে কেবল সেই ডাটা ইনপুট দেয়া যাবে যে ডাটা PRIMARY KEY তে আছে।

একটি টেবিলের FOREIGN KEY অন্য টেবিলে PRIMARY KEY এর সংগে সংযুক্ত।

নিচের দু'টি টেবিলের সাহায্যে আমরা FOREIGN KEY সম্পর্কে ধারণা নিব।

প্রথমটি হচ্ছে "Persons" টেবিল:

P_Id

LastName

FirstName

Address

City

1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

দ্বিতীয়টি হচ্ছে "Orders" টেবিল:

O_Id

OrderNo

P_Id

1 77895 3
2 44678 3
3 22456 2
4 24562 1

লক্ষ্য করুন, "Orders" টেবিলের "P_Id" কলাম "Persons" টেবিলের "P_Id" কলাম থেকে এসেছে। একারণে "Persons" টেবিলের "P_Id" কলাম "Persons" টেবিলের PRIMARY KEY.

অন্যদিকে, "Orders" টেবিলের "P_Id" কলাম "Orders" টেবিলের FOREIGN KEY.

নিচের SQL স্টেটমেন্টটি "Orders" টেবিল তৈরী করার সময় "P_Id" কলামটিকে FOREIGN KEY হিসেবে তৈরী করবে।

MySQL এর ক্ষেত্রে:

CREATE TABLE Orders

(

O_Id int NOT NULL,

OrderNo int NOT NULL,

P_Id int,

PRIMARY KEY (O_Id),

FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)

)

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Orders

(

O_Id int NOT NULL PRIMARY KEY,

OrderNo int NOT NULL,

P_Id int FOREIGN KEY REFERENCES Persons(P_Id)

)

একাধিক কলামে FOREIGN KEY কনস্ট্রেইন্ট তৈরী করতে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Orders

(

O_Id int NOT NULL,

OrderNo int NOT NULL,

P_Id int,

PRIMARY KEY (O_Id),

CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)

REFERENCES Persons(P_Id)

)

যদি আগে থেকে তৈরী করা একটি টেবিলের কোনো কলামে FOREIGN KEY কনস্ট্রেইন্ট যোগ করার প্রয়োজন হয় তবে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Orders

ADD FOREIGN KEY (P_Id)

REFERENCES Persons(P_Id)

যদি আগে থেকে তৈরী করা একটি টেবিলের FOREIGN KEY তে কোনো নাম যুক্ত করার প্রয়োজন হয়, তবে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Orders

ADD CONSTRAINT fk_PerOrders

FOREIGN KEY (P_Id)

REFERENCES Persons(P_Id)

FOREIGN KEY কনস্ট্রেইন্ট মুছে ফেলতে চাইলে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL এর ক্ষেত্রে:

ALTER TABLE Orders

DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access ক্ষেত্রে:

ALTER TABLE Orders

DROP CONSTRAINT fk_PerOrders

SQL (এসকিউএল) DROP INDEX, DROP TABLE এবং DROP DATABASE স্টেটমেন্ট . SQL Drop Index, Drop Table & Drop Database

SQL (এসকিউএল) DROP INDEX, DROP TABLE এবং DROP DATABASE স্টেটমেন্ট

Article By: Protap Chandra

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

নামের আগে DROP কমান্ড প্রয়োগ করে আমরা এগুলো মুছে ফেলতে পারি।

DROP INDEX স্টেটমেন্ট

DROP INDEX স্টেটমেন্ট ব্যবহার করা হয় টেবিল থেকে ইনডেক্স বা সূচি (index) মুছে ফেলার জন্য।

DROP INDEX গঠনরীতি:

MS Access এর ক্ষেত্রে:

DROP INDEX index_name ON table_name

MS SQL Server এর ক্ষেত্রে:

DROP INDEX table_name.index_name

DB2/Oracle এর ক্ষেত্রে:

DROP INDEX index_name

MySQL এর ক্ষেত্রে:

ALTER TABLE table_name DROP INDEX index_name

DROP TABLE স্টেটমেন্ট:

ডাটাবেজ থেকে কোনো একটি টেবিল মুছে ফেলতে DROP TABLE স্টেটমেন্ট ব্যবহার করা হয়। যেমন:

DROP TABLE table_name

DROP DATABASE স্টেটমেন্ট:

গোটা ডাটাবেজটিই মুছে ফেলতে DROP DATABASE স্টেটমেন্ট ব্যবহার করা হয়:

DROP DATABASE database_name

TRUNCATE TABLE স্টেটমেন্ট:

যদি কখনো টেবিল থেকে কেবল ডাটাগুলো মুছে দেয়ার প্রয়োজন হয় তখন আমরা কি করব? আমরা টেবিলটি মুছতে চাই না। সেক্ষেত্রে TRUNCATE TABLE স্টেটমেন্ট ব্যবহার করতে হবে:

TRUNCATE TABLE table_name

এসকিউএল চেক কন্সট্রেইন্ট. SQL Check Constraint

এসকিউএল চেক কন্সট্রেইন্ট

এসকিউএল(SQL) কনস্ট্রেইন্টগুলোর(Constraint) মধ্যে অন্যতম হলো CHECK কন্সট্রেইন্ট। CHECK কন্সট্রেইন্ট একটি কলামে রাখার মতো ভ্যালু রেঞ্জকে সীমিত করে দেয়ার জন্য ব্যবহৃত হয়। যদি আপনি একটি কলামে CHECK কন্সট্রেইন্ট সংজ্ঞায়িত করে দেন তাহলে ঐ কলাম শুধুমাত্র নির্দিষ্ট কতগুলো ভ্যালু গ্রহন করতে পারবে। যদি একটি টেবলে CHECK কন্সট্রেইন্ট সংজ্ঞায়িত করে দেয়া হয় তাহলে সেটি নির্দিষ্ট কলামগুলোকে ঐ রো বা সারির অন্য কলামগুলোর ভ্যালু অনুসারে ভ্যালু গ্রহন করার যোগ্যতা সীমিত করে দেয়।

CREATE TABLE এ এসকিউএল CHECK কন্সট্রেইন্টঃ
নিচের এসকিউএল সিন্টেক্সটটি যখন "Persons" টেবল তৈরি করা হয় তখন "P_Id" কলামে একটি চেক কন্সট্রেইন্ট তৈরি করে। CHECK কন্সট্রেইন্টটি নির্ধারিত করে দেয় যে "P_Id” কলাম শুধুমাত্র শূন্য থেকে বড় পূর্ণ সংখ্যা(Integer) অন্তর্ভূক্ত করতে পারবে।

MySQL:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (P_Id>0)
)

SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
P_Id int NOT NULL CHECK (P_Id>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

CHECK কন্সট্রেইন্টের নামকরন করার জন্য এবং অনেকগুলো কলামে একটি CHECK কন্সট্রেইন্ট সংজ্ঞায়িত করার জন্য নিচের এসকিউএল সিন্ট্যাক্সট ব্যবহার করুনঃ

MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
)

ALTER TABLE এ এসকিউএল CHECK কন্সট্রেইন্ট
যখন টেবলটি ইতোমধ্যেই তৈরি করা হয়ে গেছে তখন "P_Id" কলামে CHECK কন্সট্রেইন্ট তৈরি করতে নিচের এসকিএউএল সিন্টেক্সটি ব্যবহার করুনঃ

MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CHECK (P_Id>0)

CHECK কন্সট্রেইন্টের নামকরন করার জন্য এবং অনেকগুলো কলামে একটি CHECK কন্সট্রেইন্ট সংজ্ঞায়িত করার জন্য নিচের এসকিউএল সিন্ট্যাক্সট ব্যবহার করুনঃ

MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')

CHECK কন্সট্রেইন্ট ড্রপ(DROP) করার জন্য নিচের এসকিউএলটি ব্যবহার করুনঃ

SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT chk_Person
MySQL:
ALTER TABLE Persons
DROP CHECK chk_Person

SQL প্রাইমারি Constraint . SQL Primary Key Constraint

SQL প্রাইমারি Constraint
RIAZ-UL-HAQUE MIAN
প্রাইমারি Constraint একটি টেবিল এর যেকোনো একটি কলাম এর স্বতন্ত্রতা/ uniqueness কে বুঝায় .
টেবিল এর প্রাইমারি কি অবশই ইউনিক হতে হবে এবং NULL হতে পারবেনা . প্রতিটা টেবিল এ ই একটা প্রাইমারি key থাকা উচীঠ
একটা টেবিল এর একটা মাত্র কলাম কে ই প্রাইমারি কি করতে পারবেন
এখন আমরা দেখব টেবিল তৈরী করার সময় কি ভাবে প্রাইমারি Constraint সেট করে |
ধরে নেই আমাদের একটা টেবিল তৈরী করতে হবে যার নাম Persons এবং সেই টেবিল এর একটা কলাম P_Id যাকে আমরা SQL প্রাইমারি Constraint সেট করব |
SQL Server / Oracle / MS Access queary টি হবে :
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)
আর MySQL জন্য হবে :
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)

এই কাজ টি একাধিক কলাম এর জন্য করতে হলে নিচের queary টি লিখতে হবে (MySQL / SQL Server / Oracle / MS Access:)
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)
এত্তক্ষন আমরা দেখলাম কিভাবে একটা টেবিল তৈরী করার সময় প্রাইমারি Constraint
সেট করে। এবার মনে করি Persons টেবিল টি আগে থাকে ই তৈরী করা আছে এখন আমাদের কে P_Id প্রাইমারি Constraint সেট করতে হবে। এক্ষেত্রে আমরা অল্টার টেবিল statement ব্যবহার করব
ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
এক্ষেত্রে টেবিল cloumn আগে থেকে ই not NULL করা থাকতে হবে
সব শেষে দেখব কিভাবে কে প্রাইমারি Constraint রিমুভ করে । এক্ষেত্রে MySQL ও SQL Server / Oracle / MS Access SQL starement নিচে দিয়া হলো
MySQL ক্ষেত্রে query টি হবে নিন্মরূপ :
ALTER TABLE Persons
DROP PRIMARY KEY
আর SQL Server / Oracle / MS Access ক্ষেত্রে quraery টি হবে নিন্মরূপ :
ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID

SQL default (ডিফল্ট) Constraint . SQL Default Constraint

SQL default (ডিফল্ট) Constraint
RIAZ-UL-HAQUE MIAN
টেবিল এ যখন কোনো নতুন ভ্যালু insert করা হয় তখন কোনো টেবিল এর কোনো ফিল্ড এ ফিক্সড কোনো ভ্যালু সেট করতে হলে default (ডিফল্ট) Constraint ব্যবহার করতে হবে | যখন কোনো নিউ ভ্যালু টেবিল এ insert করা হবে তখন default (ডিফল্ট) Constraint টি row insert সাথে insert হয়ে যাবে |
এখন আমরা দেখব টেবিল তৈরী করার সময় কি ভাবে সেট করে | উধারণ সরূপ আমরা Persons Table এর city (সিটি) কলাম এ সব সময় Dhaka (ঢাকা) সেট করতে চাই সেক্ষেত্রে SQL syntax হবে :
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Dhaka'
)
default (ডিফল্ট) Constraint এ SQL server function ও ব্যবহার করা যায় যেমন
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
OrderDate date DEFAULT GETDATE()
)
এত্তক্ষন আমরা দেখলাম কিভাবে একটা টেবিল তৈরী করার সময় default (ডিফল্ট) Constraint সেট করে। এবার মনে করি Persons টেবিল টি আগে থাকে ই তৈরী করা আছে এখন আমাদের কে city column এর ডিফল্ট ভ্যালু Dhaka (ঢাকা) করতে হবে এক্ষেত্রে আমরা অল্টার টেবিল statement ব্যবহার করব
MySQL:
ALTER TABLE Persons
ALTER City SET DEFAULT 'SANDNES'
SQL Server / MS Access:
ALTER TABLE Persons
ALTER COLUMN City SET DEFAULT 'SANDNES'
Oracle:
ALTER TABLE Persons
MODIFY City DEFAULT 'SANDNES'

সব শেষে দেখব কিভাবে কে default (ডিফল্ট) Constraint রিমুভ করে । এক্ষেত্রে MySQL ও SQL Server / Oracle / MS Access SQL starement নিচে দিয়া হলো
MySQL ক্ষেত্রে query টি হবে নিন্মরূপ :
ALTER TABLE Persons
ALTER City DROP DEFAULT
আর SQL Server / Oracle / MS Access ক্ষেত্রে quraery টি হবে নিন্মরূপ :
ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT

SQL (এসকিউএল) ALTER TABLE স্টেটমেন্ট . SQL Alter Table Statement

SQL (এসকিউএল) ALTER TABLE স্টেটমেন্ট

Article By : Protap Chandra

ডাটাবেজে বিদ্যমান একটি টেবিলের পুরাতন ডাটার সঙ্গে নতুন ডাটা যোগ করতে, বর্তমান ডাটা মুছে ফেলতে কিংবা কলামে কোনো ধরনের পরিবর্তন আনতে ALTER TABLE স্টেটমেন্ট ব্যবহার করা হয়।

SQL ALTER TABLE সিনট্যাক্স (Syntax)

ALTER TABLE স্টেটমেন্ট ব্যবহার করে টেবিলে পরিবর্তন আনতে গেলে একেক কাজের জন্য একেক রকম বাক্যরীতি বা সিনট্যাক্স ব্যবহার করা হয়। নিচের উদাহরণগুলো আমাদের এ ব্যাপারে পরিষ্কার ধারণা দেবে।

টেবিলে একটি নতুন কলাম যোগ করতে নিচের সিনট্যাক্স প্রয়োগ করা হয়:

ALTER TABLE table_name

ADD column_name datatype

এখানে table_name বলতে বুঝানো হয়েছে যে টেবিল যোগ করবেন তার নাম। আর column_name হচ্ছে যে কলাম যোগ করা হবে তার নাম। কলামে কোন ধরনের ডাটা সংগ্রহ করা হবে তার প্রকৃতি (varchar, date, number ইত্যাদি) datatype এর স্থলে লেখা হয়।

টেবিল থেকে কোনো কলাম মুছে ফেলতে চাইলে নিচের সিনট্যাক্স প্রয়োগ করতে হবে (এখানে উল্লেখ্য যে, কিছু কিছু ডাটাবেজ সিস্টেমে কলাম মুছে ফেলার সুযোগ থাকে না):

ALTER TABLE table_name

DROP COLUMN column_name

আর টেবিলের কোনো কলামের ডাটাটাইপ পরিবর্তন করতে গেলে ডাটাবেজ ভেদে নিচের সিনট্যাক্সগুলি ব্যবহার করা হয়:

SQL Server / MS Access এর ক্ষেত্রে:

ALTER TABLE table_name

ALTER COLUMN column_name datatype

My SQL / Oracle এর ক্ষেত্রে:

ALTER TABLE table_name

MODIFY COLUMN column_name datatype

Oracle 10G এবং এর পরবর্তী ভার্সনগুলোর ক্ষেত্রে:

ALTER TABLE table_name

MODIFY column_name datatype

Persons নামের নিচের টেবিলটির দিকে খেয়াল করুন:

P_Id

LastName

FirstName

Address

City

1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

টেবিলটিতে ৫টি কলাম আছে। টেবিলটিতে আমরা DateOfBirth নামে একটি নতুন কলাম যোগ করতে চাই। এই কাজ করতে আমরা নিচের SQL স্টেটমেন্টটি ব্যবহার করব:

ALTER TABLE Persons

ADD DateOfBirth date

লক্ষ্য করুন টেবিলে DateOfBirth নামের নতুন যে কলাম যোগ করা হয়েছে তার ডাটাটাইপ হচ্ছে date এবং এই কলামে কেবল তারিখ যোগ করা যাবে। MS Access, MySQL এবং SQL Server এর ডাটাটাইপ সম্পর্কে পূর্ণ ধারণা পেতে Data Types reference লিংকটি ব্রাউজ করতে পারেন।

নতুন কলাম যোগ করার পর Persons টেবিলটির চেহারা এমন হবে:

P_Id

LastName

FirstName

Address

City

DateOfBirth

1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Data Type পরিবর্তনের উদাহরণ:

এখন আমরা Persons টেবিলের DateOfBirth কলামের ডাটাটাইপ পরিবর্তন করব। এজন্য নিচের SQL টেস্টমেন্ট ব্যবহার করতে হবে:

ALTER TABLE Persons

ALTER COLUMN DateOfBirth year

লক্ষ্য করুন DateOfBirth কলামের ডাটাটাইপ এখন year যার ফলে এটি এখন দুই কিংবা চার অঙ্কের ফরম্যাটে year ডাটা ধারণ করবে।

DROP COLUMN স্টেটমেন্টের উদাহরণ:

এখন আমরা Persons টেবিল থেকে DateOfBirth কলামটি মুছে ফেলতে চাই। এজন্য নিচের এসকিউএল স্টেটমেন্টটি প্রয়োগ করব:

ALTER TABLE Persons

DROP COLUMN DateOfBirth

Persons টেবিলটি এবার আগের চেহারায় ফিরে যাবে:

P_Id

LastName

FirstName

Address

City

1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

SQL statement এ ALTER FUNCTION এর বাবহার . SQL Alter Table Statement

নাম-শারিফুল ইসলাম
Job category-Php Coder
বিষয়- SQL statement এ ALTER FUNCTION এর বাবহার
Alter এই statement টি mysql এ বাবহার করা হয় database table এর মধ্যে কিছু ফিল্ড যোগ ,বাদ বা সংযোজন করার জন্য। আসলে কিভাবে করতে হয় তা আমরা একটি টেবিল তৈরি করার মাধমে জানতে পারব এবং কিভাবে সেখানে sql statement বাবহার করব সেই নিয়ম অনুসরন করব। প্রথমে আমরা ব্রাউজার ওপেন করে এড্রেস বারে লিখব localhost সেইখান থেকে phpmyadmin এ ক্লিক করি।উপরের মেনুবার থেকে database এ ক্লিক করি। create database field এর ঘরে টাইপ করি user এবং ডানপাশে create বাটন এ ক্লিক করি। এর মাধমে আমাদের user database তৈরি হয়ে গেল।এখন আমরা persons নামে একটি টেবিল তৈরি করব। সেখানে ৫ টি ফিল্ড তৈরি করব। বামপাছ থেকে user database এ ক্লিক করি। এখন টেবিল তৈরি করার জন্য জাইগা দিবে। টেবিল এর ঘরে লিখি persons এবং column এর ঘরে ৫ লিখি।এই ৫ টি কলাম এ ৫ টি ফিল্ড এর নাম লিখব। এবং তাদের settings গুলো ঠিক করে দিব।
Column1
Name-P_id, auto increment এ তিক দেই
Column2
Name-LastName, type-text, length-50
Column3
Name-FirstName, type-text, length-50
Column4
Name-Address, type-varchar, length-250
Column5
Name-City, type-text, length-50
এবং সবশেষে সেভ button ক্লিক করি। আমাদের database তৈরি হয়ে গেল। এখন আমাদের alter sql statement বাবহার করতে হবে। উপরের মেনু থেকে sql মেনুতে ক্লিক করি একটি textarea বক্স আসবে এখানে আমরা statement লিখব। ধরুন আমরা নতুন একটা ফিল্ড DateofBirth নামে যোগ করব।
বক্স এর মধ্যে আমরা টাইপ করি “ALTER TABLE Persons ADD COLUMN DateofBirth Date”। এবং সবশেষে go বাটন এ ক্লিক করি দেখুন অই নামে নতুন একটি কলাম যোগ হয়েছে।
আমাদের কোন কলাম পরিবরতন করার দরকার পরতে পারে।আমরা আবার আগের মতন বক্স এ টাইপ করি
“ALTER TABLE Persons ALTER COLUMN Birth Date” দেখুন DateofBirth ফিল্ড টি পরিবরতন হয়ে নতুন নাম হয়েছে শুধু Birth.
যদি কোন কলাম বাদ দিতে চাই তার জন্য এই statement বাবহার করব
“ALTER TABLE Persons DROP COLUMN Birth Date” go বাটন এ ক্লিক করার সাথে সাথে দেখুন আমাদের এই কলাম তা বাদ হয়ে গেছে। এই ভাবেই আমাদের SQL statement e এ ALTER Function ব্যবহার করতে হয়।

: SQL Views

Title: SQL Views
অনুবাদক: ফয়সাল রকি (এম.এ)
Total words in the article: 478

SQL এ view বলতে virtual table এর view কে বোঝায়, অর্থাৎ real table কে virtually দেখানো হয়।
কিভাবে view create, update বা delete করা হয় তা এই অধ্যায়ে আলোচনা করা হবে।

SQL CREATE VIEW Statement
SQL statement এর result-set এর উপর ভিত্তি করে virtual table তৈরির মাধ্যমে view দেখানো হয়।
View এর ক্ষেত্রে real table এর মতোই rows এবং columns থাকে। View এর fields গুলো database এর এক বা একাধিক real table হতে নেয়া হয়।
view এবং present করার ক্ষেত্রে যদি একটি মাত্র table হতে data নেয়া হয় তাহলে WHERE ও JOIN এর মতো SQL functions গুলো add করা যাবে।

SQL CREATE VIEW Syntax
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
নোট: view এর মাধ্যমে সবর্দাই হালনাগাদ বা up-to-date data দেখানো হয়। কোনো user যখন SQL statement view এর জন্য query করে তখন database engine ডাটাকে recreate করে দেখায়।

SQL CREATE VIEW Examples
আপনার কাছে যদি Northwind database টি থাকে তাহলে আপনি দেখবেন যে সেখানে by default অনেকগুলো view ইন্সটল রয়েছে।
"Current Product List" View টিতে শুধুমাত্র active product গুলোকে দেখানো হয়, অর্থাৎ যেসকল product active নয় বা পরবর্তীতে discontinue করেছে সেগুলোকে দেখানো হয়নি। নিম্নোক্ত SQL এর সাহায্যে View টি প্রস্তুত করা হয়েছে।
CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No

আমরা এই View টি নিম্নোক্তভাবে query করতে পারি।
SELECT * FROM [Current Product List]

Northwind sample database এর অন্য আরেকটি View এর ক্ষেত্রে "Products" table এর যেসকল Product এর unit price গড় বা average unit price এর চেয়ে বেশি সেগুলোকে নিম্নোক্তভাবে দেখানো যায়:
CREATE VIEW [Products Above Average Price] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)

আমরা এই View টি নিম্নোক্তভাবে query করতে পারি।
SELECT * FROM [Products Above Average Price]

Northwind sample database এর অন্য আরেকটি View এর ক্ষেত্রে প্রত্যেক category তে 1997 সালের মোট বিক্রয় বা total sale এর calculation দেখানো হয়েছে। এখানে উল্লেখ্য যে, এই View এর ডাটাগুলো অন্য আরেকটি View "Product Sales for 1997" হতে নেয়া হয়।
CREATE VIEW [Category Sales For 1997] AS
SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
FROM [Product Sales for 1997]
GROUP BY CategoryName

আমরা এই View টি নিম্নোক্তভাবে query করতে পারি।
SELECT * FROM [Category Sales For 1997]
আমরা এই query তে condition যোগ করতে পারি। আমরা শুধূ মাত্র "Beverages" Category এর total sale দেখার জন্য নিম্নোক্তভাবে query করতে পারি।
SELECT * FROM [Category Sales For 1997]
WHERE CategoryName='Beverages'

SQL Updating a View
নিম্নোক্ত syntax ব্যবহার করে View কে update করা যেতে পারে।

SQL CREATE অথবা REPLACE VIEW Syntax
CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

এখন যদি আমরা "Current Product List" view এ "Category" column টি যোগ করতে চাই, তাহলে নিম্নোক্ত SQL এর মাধ্যমে View টিকে update করতে হবে।
CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
WHERE Discontinued=No

SQL Dropping a View
DROP VIEW command এর সাহায্যে কোনো View কে delete করা যায়।
SQL DROP VIEW Syntax
DROP VIEW view_name

SQL (এসকিউএল) CREATE INDEX স্টেটমেন্ট

SQL (এসকিউএল) CREATE INDEX স্টেটমেন্ট
Article By : Protap Chandra

ইনডেক্স শব্দের অর্থ হলো সূচিকরণ। সহজে ও কম সময়ে ডাটা খুঁজে বের করার জন্য ডাটাকে একটি বিশেষ অর্ডারে সাজিয়ে রাখাকে ইনডেক্সিং বলে। টেবিলের ডাটাকে ইনডেক্সিং করতে CREATE INDEX স্টেটমেন্ট ব্যবহার করা হয়। ইনডেক্স করা থাকলে খুব সহজে ডাটা খুঁজে বের করা যায়। ডাটা নির্বাচন করতে ডাটাবেজ অ্যাপ্লিকেশনকে পুরো টেবিল পড়তে হয় না। তবে ডাটাবেজ ব্যবহারকারীরা কিন্তু ইনডেক্স অংশটি দেখতে পায় না।

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

এসকিউএল CREATE INDEX স্টেটমেন্ট এর গঠনরীতি:
নিচের স্টেটমেন্টটি একটি টেবিলে ইনডেক্স তৈরী করবে। এটির ক্ষেত্রে duplicate (নকল) ভ্যালুও তৈরী হতে পারে।

CREATE INDEX index_name
ON table_name (column_name)

এসকিউএল CREATE UNIQUE INDEX স্টেটমেন্ট এর গঠনরীতি:
নিচের স্টেটমেন্টটি একটি টেবিলে অনন্য (unique) ইনডেক্স তৈরী করবে। এখানে duplicate ভ্যালু তৈরী হবে না।

CREATE UNIQUE INDEX index_name
ON table_name (column_name)

আরো উল্লেখ করা প্রয়োজন যে, আলাদা আলাদা ডাটাবেজে indexe করার গঠনরীতি বা syntax আলাদা হতে পারে। তাই যে ডাটাবেজ নিয়ে কাজ করছেন সেই ডাটাবেজের ইনডেক্স গঠনরীতি ভালো করে জেনে নিতে হবে।

CREATE INDEX এর উদাহরণ:

ইনডেক্স তৈরী করার সময় ইনডেক্সের একটা নাম দিতে হয়। নিচের SQL স্টেটমেন্টটি "Persons" টেবিলের "LastName" কলামে একটি ইনডেক্স তৈরী করবে, যার নাম হবে "PIndex".

CREATE INDEX PIndex
ON Persons (LastName)

একাধিক কলামের উপরেও ইনডেক্স তৈরী করা যায়। সেক্ষেত্রে কলামগুলোর নাম বন্ধনীর ভেতর কমা দিয়ে আলাদা করে লিখতে হবে। যেমন:

CREATE INDEX PIndex
ON Persons (LastName, FirstName)

এসকিউএল ফুল আউটার জয়েন কিওয়ার্ড . SQL FULL OUTER JOIN Keyword

এসকিউএল ফুল আউটার জয়েন কিওয়ার্ড
Sheikh Mahfuzur Rahman

FULL OUTER JOIN কিওয়ার্ড বাম দিকের টেবল(table1) এবং ডান দিকের টেবলের(table2) সবগুলো সারিকে ফেরত দেয়। FULL OUTER JOIN কিওয়ার্ড LEFT ও RIGHT উভয় সংযোগ-স্থলকেই মিলিয়ে দেয়।

এসকিউএল FULL OUTER JOIN সিন্টেক্সটঃ
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;

নমুনা ডাটাবেজ
এই টিউটোরিয়ালে আমরা সুপরিচিত নর্থউইন্ড(Northwind) নমুনা ডাটাবেজ ব্যবহার করব। নিচে "Customers” টেবলের একটি অংশকে তুলে ধরা হয়েছেঃ

CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
1
Alfreds Futterkiste
Maria Anders
Obere Str. 57
Berlin
12209
Germany
2
Ana Trujillo Emparedados y helados
Ana Trujillo
Avda. de la Constitución 2222
México D.F.
05021
Mexico
3
Antonio Moreno Taquería
Antonio Moreno
Mataderos 2312
México D.F.
05023
Mexico

এবং এই অংশটি "Orders" টেবল থেকে নেয়া হয়েছেঃ

OrderID
CustomerID
EmployeeID
OrderDate
ShipperID
10308
2
7
1996-09-18
3
10309
37
3
1996-09-19
1
10310
77
8
1996-09-20
2

এসকিউএল FULL OUTER JOIN এর উদাহরণ
নিচের এসকিউএল স্টেটমেন্টটি সব কাস্টমার এবং সবগুলো অর্ডারকে নির্বাচন করেঃ
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

এই জন্য যে ফলাফল তৈরি হয় তার একটি বাছাইকরা অংশটি ঠিক এরকম দেখাবেঃ

CustomerName
OrderID
Alfreds Futterkiste

Ana Trujillo Emparedados y helados
10308
Antonio Moreno Taquería
10365

10382

10351

লক্ষ্যনীয়ঃ FULL OUTER JOIN কিওয়ার্ড বাম দিকের টেবল(Customers) এবং ডান দিকের টেবলের(Orders) সবগুলো সারিকে ফেরত দিয়েছে। যদি "Customers" টেবলে এমন কিছু সারি থাকে যা "Orders" টেবলের সাথে মিলেনা অথবা "Orders” টেবলের সারিগুলোর কোনটি যদি "Customers" টেবলের সাথে না মিলে তাহলে ঐ রো বা সারিগুলোও লিস্টে চলে আসবে।

SQL (এসকিউএল) Constraints (কনস্‌ট্রেইন্টস্) .

SQL (এসকিউএল) UNIQUE কনস্ট্রেইন্ট

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

MySQL এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

UNIQUE (P_Id)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

UNIQUE কনস্ট্রেইন্ট মুছে ফেলতে চাইলে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL এর ক্ষেত্রে:

ALTER TABLE Persons

DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

SQL (এসকিউএল) LEFT JOIN কীওয়ার্ড . SQL LEFT JOIN Keyword

SQL (এসকিউএল) UNIQUE কনস্ট্রেইন্ট

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

MySQL এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

UNIQUE (P_Id)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

UNIQUE কনস্ট্রেইন্ট মুছে ফেলতে চাইলে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL এর ক্ষেত্রে:

ALTER TABLE Persons

DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

SQL (এসকিউএল) UNIQUE কনস্ট্রেইন্ট . SQL Unique Constraint

SQL (এসকিউএল) UNIQUE কনস্ট্রেইন্ট

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

MySQL এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

UNIQUE (P_Id)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

UNIQUE কনস্ট্রেইন্ট মুছে ফেলতে চাইলে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL এর ক্ষেত্রে:

ALTER TABLE Persons

DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

SQL (এসকিউএল) RIGHT JOIN কীওয়ার্ড . SQL RIGHT JOIN Keyword

SQL (এসকিউএল) UNIQUE কনস্ট্রেইন্ট

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

MySQL এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

UNIQUE (P_Id)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

UNIQUE কনস্ট্রেইন্ট মুছে ফেলতে চাইলে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL এর ক্ষেত্রে:

ALTER TABLE Persons

DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

এসকিউয়েল দিয়ে ডেটাবেস তৈরী (SQL Database Creation Tutorial in Bangla) :

এসকিউয়েল দিয়ে ডেটাবেস তৈরী (SQL Database Creation Tutorial in Bangla) :

MySQL এ কাজ শুরুর আগে একটা ডেটাবেস তৈরী করে নিতে হবে। CREATE DATABASE এই স্টেটমেন্ট দিয়ে একটি ডেটাবেস তৈরী করতে হয়। XAMPP চালু করুন এবং ব্রাউজার খুলে এর এড্রেসবারে লিখুন http://localhost/ লিখে এন্টার দিন এবার এখানে বামদিকে নিচে Tools এর অধীনে phpMyadmin এ ক্লিক করুন সবশেষে SQL ট্যাবে ক্লিক করুন।

এখানে লিখুন “CREATE DATABASE designer” এবং go বাটনে ক্লিক করুন ব্যাস একটা ডেটাবেস তৈরী হয়ে গেল। এবার বাম দিকে দেখুন designer নামে একটা ডেটাবেস আসছে। আপনি চাইলে SQL ট্যাবে না গিয়ে সরাসরি "Databases" (SQL ট্যাবের বামে) ট্যাব থেকে একটি নতুন ডেটাবেস তৈরী করতে পারেন। Databases ট্যাবে গেলে "Create database" ফিল্ডে ডেটাবেসের কাংখিত নামটি দিয়ে "Create" বাটনে ক্লিক করতে হবে।

ধন্যবাদ।

SQL এর NOT NULL এর বাধ্যবাদকতা/Constraints। SQL Not Null Constraint

SQL এর NOT NULL এর বাধ্যবাদকতা।

সার্বিক ভাবে একটি টেবিলের কলামকে NULL বা খালী রাখা যায়।
SQL এর NOT NULL এর বাধ্যবাদকতা ।
NOT NULL এর বাধ্যবাধকতা কলামকে খালী না রাখতে বাধ্য করে বা খালী রাখাকে গ্রহণ করে না।
NOT NULL এর বাধ্যবাধকতা সর্বদা ক্ষেত্রকে কোন না কোন কিছু দিয়ে পরিপূর্ণ করতে হবে। এটার অর্থ এটা যে, তুমি কথন ও ঐ ক্ষেত্রে কোন কিছু দেয়া ব্যতিরেকে নতুন কোন রেকর্ড সংযোগ করা অথবা কোন ধরনের সংশোধন করতে পারবেনা।
নিন্মোক্ত SQL বাধ্য কর P_Id এর কলাম এবং LastName এর কলামে কোন কিছু না দিয়ে NULL বা খালী রাখাকে গ্রহণ করবেনা।

উদাহরণ।
CREATE TABLE PersonsNotNull
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

এসকিউয়েল ইনার জয়েন টিউটোরিয়ালঃ SQL INNER JOIN Keyword

এসকিউয়েল ইনার জয়েন টিউটোরিয়ালঃ

SQL INNER JOIN Keyword

দুটি সম্পর্কযুক্ত টেবিল থেকে ডেটা তোলার জন্য এসকিউয়েলে কিছু জয়েন (join) ব্যবহার করা হয়। বেশির ভাগ সময়েই ৩টি জয়েন ব্যবহার হয়ে থাকে। যেমনঃ
১. ইনার জয়েন (INNER JOIN),
২. লেফট জয়েন (LEFT JOIN),
৩. রাইট জয়েন (RIGHT JOIN)

এই টিউটোরিয়ালে ইনার জয়েন নিয়ে আলোচনা করা হলঃ
ইনার জয়েনঃ
প্রথমে দুটি টেবিল তৈরী করা যাক যাদের মধ্যে রিলেশন আছে।
এর আগে "users" টেবিল তৈরী করে সেটার সাথে one-to-one রিলেশন করে আরেকটা "profiles" টেবিল তৈরীর কোড নিচে দেয়া হলঃ

01.CREATE TABLE IF NOT EXISTS `profiles` (
02.`profile_id` int(11) NOT NULL AUTO_INCREMENT,
03.`about_me` text NOT NULL,
04.`favorite_color` varchar(200) NOT NULL,
05.`user_id` int(11) NOT NULL,
06.PRIMARY KEY (`profile_id`),
07.KEY `user_id` (`user_id`)
08.) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
09.
10.
11.INSERT INTO `profiles` (`profile_id`, `about_me`, `favorite_color`, `user_id`) VALUES
12.(4, 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis ...', 'black', 1),
13.(5, 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis ...', 'green', 2),
14.(6, 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis ...', 'maroon', 3);

এই কোয়েরিটি চালান দেখবেন ডেটাসহ একটা টেবিল তৈরী হবে।
INNER JOIN দিয়ে ঐসব ডেটাগুলি (সারিগুলি) তুলে আনা যায় (দুই টেবিল থেকেই) যেগুলির মধ্যে রিলেশন বিদ্যমান। উপরের টেবিলদুটি থেকে ডেটা তুলে আনার জন্য নিচের কোয়েরিটি রান করান-

1.SELECT username, age, favorite_color FROM users INNER JOIN profiles ON users.user_id = profiles.user_id;

এর আউটপুট ৩টি সারি আসবে। কারন "profiles" টেবিলে "user_id" কলামটি দেখুন যেটা এই টেবিলের ফরেন কি, এখানে ১, ২ এবং ৩ নম্বর ইউজারের জন্য একটি করে সারি আছে। যদি এখানে কোন সারিই না থাকত তাহলে কোন আউটপুটই আসত না, একটা সারি থাকলে একটা আউটপুট আসত। আরও একভাবে এই কোয়েরিটি করা যায়ঃ

view source
print?
1.SELECT username, age, favorite_color FROM users INNER JOIN profiles USING(user_id)

USING কিওয়ার্ডটি তখনি ব্যবহার করা যাবে যখন দুটো টেবিলেই "user_id" কলামটির নাম একই হবে। এই "user_id" কলামটি দিয়ে টেবিল দুটি সংযোগ হয়েছে, এটার নাম দিলাম ধরুন ব্রিজ কলাম।

ধন্যবাদ।

SQL (এসকিউএল) SELECT TOP ক্লজ . SQL SELECT TOP Clause

SQL (এসকিউএল) UNIQUE কনস্ট্রেইন্ট

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

MySQL এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

UNIQUE (P_Id)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

UNIQUE কনস্ট্রেইন্ট মুছে ফেলতে চাইলে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL এর ক্ষেত্রে:

ALTER TABLE Persons

DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

SQL (এসকিউএল) BETWEEN অপারেটর: SQL BETWEEN Operator

SQL (এসকিউএল) UNIQUE কনস্ট্রেইন্ট

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

MySQL এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

UNIQUE (P_Id)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

UNIQUE কনস্ট্রেইন্ট মুছে ফেলতে চাইলে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL এর ক্ষেত্রে:

ALTER TABLE Persons

DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

SQL (এসকিউএল) Joins

SQL (এসকিউএল) UNIQUE কনস্ট্রেইন্ট

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

MySQL এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

UNIQUE (P_Id)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

UNIQUE কনস্ট্রেইন্ট মুছে ফেলতে চাইলে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL এর ক্ষেত্রে:

ALTER TABLE Persons

DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

SQL (এসকিউএল) CREATE TABLE স্টেটমেন্ট .

SQL (এসকিউএল) UNIQUE কনস্ট্রেইন্ট

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

MySQL এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

UNIQUE (P_Id)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

UNIQUE কনস্ট্রেইন্ট মুছে ফেলতে চাইলে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL এর ক্ষেত্রে:

ALTER TABLE Persons

DROP INDEX uc_PersonID

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

AngularJS Input Validation

AngularJS Input Validation

AngularJS প্রয়োগকৃত Data এর বৈধতা গঠন এবং নিয়ন্ত্রন করে

Input Validation

পূর্ববর্তী অধ্যায়ে আমরা AngularJS forms and controls শিখেছিলাম
AngularJS প্রয়োগকৃত Data এর বৈধতা গঠন এবং নিয়ন্ত্রন করে এবং ব্যবহারকারিকে ভুল তথ্য Input করার সময় Notify (সতর্ক) করে

Client-side validation একা ব্যবহারকারির input তথ্যকে নিরাপত্তা দিতে পারে না, Server side validation ও দরকার এই জন্য

Application Code

DOCTYPE html>
<html>

<head>

</head>

<body>
<h2>Validation Example</h2>

<form ng-app="" ng-controller="validateCtrl"
name="myForm" novalidate>

<p>Username:<br>
<input type="text" name="user" ng-model="user" required>
<span style="color:red" ng-show="myForm.user.$dirty && myForm.user.$invalid">
<span ng-show="myForm.user.$error.required">Username is required.</span>
</span>
</p>

<p>Email:<br>
<input type="email" name="email" ng-model="email" required>
<span style="color:red" ng-show="myForm.email.$dirty && myForm.email.$invalid">
<span ng-show="myForm.email.$error.required">Email is required.</span>
<span ng-show="myForm.email.$error.email">Invalid email address.</span>
</span>
</p>

<p>
<input type="submit"
ng-disabled="myForm.user.$dirty && myForm.user.$invalid ||
myForm.email.$dirty && myForm.email.$invalid">
</p>

</form>

<script>
function validateCtrl($scope) {
$scope.user = 'John Doe';
$scope.email = 'john.doe@gmail.com';
}
</script>

</body>
</html>

নিজে চেষ্টা করুন

The HTML এর অবৈধগুন (novalidate) ব্যবহার করা হয় default browser validation অক্ষম (Disable) করতে

উদাহরনের ব্যখাঃ

AngularJS নিরদেশক ng-model input ডাঁটা গুলকে একটা মডেলের মাধমে সাজিয়ে ফেলে

The model object এর দুইটা অংশ আছে : User আর Email

ng-show এর কারনে , spans লাল রঙ্গে প্রদর্শিত হয় তখন ই যখন User অথবা Email $dirty (ত্রুটি পূর্ণ ) and $invalid(অবৈধ)

অ্যাঙ্গুলার জাভাস্ক্রিপ্ট মডিউল (AngularJS Modules in Bangla

1. লিখেছেন সুদীপ্ত সাহা

অ্যাঙ্গুলার জাভাস্ক্রিপ্ট মডিউল

মডিউল বলতে অ্যাপ্লিকেশনকে বোঝানো হয়। সকল অ্যাপ্লিকেশন কন্ট্রোলারই মডিউলের অংশ। মডিউল আপনার অ্যাপ্লিকেশনকে ভালোভাবে বুঝতে সাহায্য করে এবং একইসাথে গ্লোবাল নেমস্পেসকে সুসংগঠিত রাখে।

অ্যাঙ্গুলার জাভাস্ক্রিপ্ট মডিউল উদাহরনঃ
এই উদাহরনে myApp.js অ্যাপ্লিকেশন মডিউল ধারন করে এবং myCtrl.js কন্ট্রোলার ধারন করেঃ
DOCTYPE html>
<html>

<head>

</head>

<body>
myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>

</body>
</html>

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

মডিউলবিহীন কন্ট্রোলারঃ
এই উদাহরণের অ্যাপ্লিকেশনে নেম নেই এবং এর কন্ট্রোলার ফাংশন গ্লোবালঃ
DOCTYPE html>
<html>

<head>

</head>

<body>
<div ng-app="" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>

<script>
function myCtrl($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
}
</script>

</body>
</html>

মডিউলযুক্ত কন্ট্রোলারঃ
এই উদাহরণের অ্যাপ্লিকেশনের নেম হচ্ছে ng-app=”myApp” নেই এবং এর কন্ট্রোলার মডিউলের একটি প্রপার্টিঃ
DOCTYPE html>
<html>

<head>

</head>

<body>
<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>

<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
});
</script>

</body>
</html>

একটি লাইব্রেরি কখন লোড করতে হয়?
উপরের সবগুলো উদাহরনে অ্যাঙ্গুলার জাভাস্ক্রিপ্ট লাইব্রেরি <head> এর মধ্যে লোড হয়।

HTML অ্যাপ্লিকেশনের ক্ষেত্রে সকল স্ক্রিপ্ট ফাইলগুলো <body> এর একদম নিচের দিকে লোড করা ভালো। কিন্তু বেশিরভাগ অ্যাঙ্গুলার জাভাস্ক্রিপ্টের উদাহরণে দেখা যায়, লাইব্রেরি ফাইলগুলো <head> এর মধ্যে লোড করা হয়। এর কারণ হচ্ছে, শুধুমাত্র লাইব্রেরি ফাইল লোড হওয়ার পর অ্যাঙ্গুলার মডিউল কম্পাইল করা সম্ভব। অন্য একটি সমাধান হলঃ পেজের নিজস্ব অ্যাঙ্গুলার জাভাস্ক্রিপ্ট লোড হওয়ার পূর্বে অ্যাঙ্গুলার জাভাস্ক্রিপ্ট লাইব্রেরিকে <body> এর মধ্যে লোড করানো।
DOCTYPE html>
<html>
<body>

<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>

<script>
var app = angular.module("myApp", []);

app.controller("myCtrl", function($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
});
</script>

</body>
</html>

অ্যাঙ্গুলার জাভাস্ক্রিপ্ট অ্যাপ্লিকেশন ফাইলঃ
মডিউল কি এবং কিভাবে কাজ করে তা আমরা এখন জানি, তাই এখন আমরা আমাদের নিজেদের অ্যাপ্লিকেশন ফাইল তৈরি করতে পারব।
একটি অ্যাপ্লিকেশনে কমপক্ষে একটি অ্যাপ্লিকেশন ফাইল এবং একটি মডিউল ফাইল থাকতে হবে।

প্রথমে “myApp.js” নামের একটি মডিউল ফাইল তৈরি করিঃ
var app = angular.module("myApp", []);

মডিউলের প্যারামিটার [] কোন ডাটার উপর নির্ভরশীল মডিউলকে নির্দেশ করে।

এরপর “myCtrl.js” নামের একটি কন্ট্রোলার ফাইল তৈরি করিঃ
app.controller("myCtrl", function($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
});

এবং সবশেষে HTML ফাইলকে এডিট করতে হবেঃ
DOCTYPE html>
<html>

<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>
</head>

<body>
<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>

<script src="myApp.js"></script>
<script src="myCtrl.js"></script>

</body>
</html>

অঙ্গুলার জেএস এইচটিটিপি রিকুয়েস্ট AngularJS XMLHttpRequest . AngularJS XMLHttpRequest

অঙ্গুলার জেএস এইচটিটিপি রিকুয়েস্ট AngularJS XMLHttpRequest
মো: আসাদুজ্জামান (Md. Asaduzzaman)
ফ্রিল্যান্সার (ওয়েব ডিজাইনার এবং ডেভেলপার)

$http রিমোট সার্ভার থেকে তথ্য পড়ার জন্য একটি AngularJS সার্ভিস।

একটি JSON ফাইল পড়া (Reading a JSON File)

নিম্নলিখিত স্ট্যাটিক JSON ফাইল একটি ওয়েব সার্ভারে সংরক্ষণ করা হয়:

http://www.justetc.com/website/Customers_JSON.php
[
{
"Name" : "Alfreds Futterkiste",
"City" : "Berlin",
"Country" : "Germany"
},
{
"Name" : "Berglunds snabbköp",
"City" : "Luleå",
"Country" : "Sweden"
},
{
"Name" : "Centro comercial Moctezuma",
"City" : "México D.F.",
"Country" : "Mexico"
},
{
"Name" : "Ernst Handel",
"City" : "Graz",
"Country" : "Austria"
},
{
"Name" : "FISSA Fabrica Inter. Salchichas S.A.",
"City" : "Madrid",
"Country" : "Spain"
},
{
"Name" : "Galería del gastrónomo",
"City" : "Barcelona",
"Country" : "Spain"
},
{
"Name" : "Island Trading",
"City" : "Cowes",
"Country" : "UK"
},
{
"Name" : "Königlich Essen",
"City" : "Brandenburg",
"Country" : "Germany"
},
{
"Name" : "Laughing Bacchus Wine Cellars",
"City" : "Vancouver",
"Country" : "Canada"
},
{
"Name" : "Magazzini Alimentari Riuniti",
"City" : "Bergamo",
"Country" : "Italy"
},
{
"Name" : "North/South",
"City" : "London",
"Country" : "UK"
},
{
"Name" : "Paris spécialités",
"City" : "Paris",
"Country" : "France"
},
{
"Name" : "Rattlesnake Canyon Grocery",
"City" : "Albuquerque",
"Country" : "USA"
},
{
"Name" : "Simons bistro",
"City" : "København",
"Country" : "Denmark"
},
{
"Name" : "The Big Cheese",
"City" : "Portland",
"Country" : "USA"
},
{
"Name" : "Vaffeljernet",
"City" : "Århus",
"Country" : "Denmark"
},
{
"Name" : "Wolski Zajazd",
"City" : "Warszawa",
"Country" : "Poland"
}
]

AngularJS $http

AngularJS $http ওয়েব সার্ভার থেকে তথ্য রিড করার জন্য একটি কোর সার্ভিস।

$http.get (url) ফাংশনটি সার্ভার ডাটা রিড করার জন্য ব্যবহৃত হয়।

অঙ্গুলার জেএস উদাহরণ:
customersController">

<ul>
<li ng-repeat="x in names">
{{ x.Name + ', ' + x.Country }}
</li>
</ul>

</div>

<script>
function customersController($scope,$http) {
$http.get("http://www.justetc.com/website/Customers_JSON.php")
.success(function(response) {$scope.names = response;});
}
</script>

এপ্লিকেশন ব্যাখ্যা:

AngularJS এপ্লিকেশন ng-app দ্বারা ডিফাইন করা হয়। এপ্লিকেশনটি

ভিতরে রান করে।

ng-controller ডিরেক্টিভ কন্ট্রোলার অবজেক্ট এর নামকরণ করে।

customersController ফাংশন একটি আদর্শ জাভাস্ক্রিপ্ট অবজেক্ট কন্সট্রাক্টর।

AngularJS একটি $scope এবং $http অবজেক্ট এর সাথে customersController কে কল করবে।
$scope অ্যাপ্লিকেশন অবজেক্ট ( ভেরিয়েবল এবং ফাংশন এপ্লিকেশন এর স্বত্ত্বাধিকারী (Owner))।

$http একটি XMLHttpRequest অবজেক্ট এক্সটার্নাল ডাটা রিকুয়েস্ট এর জন্য।

$ http.get() স্ট্যাটিক JSON ডাটা করে http://www.justetc.com/website/Customers_JSON.php থেকে।

যদি সফল হয় (success), কন্ট্রোলার (names) প্রোপার্টি ক্রিয়েট করে স্কোপ এর মধ্যে, সার্ভার থেকে JSON ডাটা এর সাথে।
নোট: উপরের উল্লেখ্য কোড একটি ডাটাবেস থেকে তথ্য সংগ্রহ করার জন্যও ব্যবহার করা যেতে পারে.

AngularJS will invoke customersController with a $scope and $http object.

$scope is the application object (the owner of application variables and functions).

$http is an XMLHttpRequest object for requesting external data.

$http.get() reads static JSON data from http://www.justetc.com/website/Customers_JSON.php.

If success, the controller creates a property (names) in the scope, with JSON data from the server.

Note The code above can also be used to fetch data from a database.

অ্যাঙ্গুলার জেএস (AngularJS) ইভেন্টস

অ্যাঙ্গুলার জেএস (AngularJS) ইভেন্টস
মো: আসাদুজ্জামান (Md. Asaduzzaman)
ফ্রিল্যান্সার (ওয়েব ডিজাইনার এবং ডেভেলপার)

AngularJS এর নিজস্ব এইচটিএমএল ইভেন্টস্ নির্দেশনা (directives) আছে.

ng-click ডিরেক্টিভ

ng-click ডিরেক্টিভ একটি AngularJS ক্লিক ইভেন্টকে সংজ্ঞায়িত করে.

AngularJS উদাহরণ:
<div ng-app="" ng-controller="myController">

<button ng-click="count = count + 1">Click me!</button>

<p>{{ count }}</p>

</div>

HTML এর এলিমেন্ট হাইড (অদৃশ্য) করা

ng-hide ডিরেক্টিভ ব্যবহার করা যেতে পারে এপ্লিকেশন এর কোন একটি অংশের দৃশ্যমানতা নির্ধারণের জন্য।
ng-hide="true" ভ্যালু একটি HTML এলিমেন্টকে অদৃশ্য করে।
ng-hide="false" ভ্যালু একটি HTML এলিমেন্টকে দৃশ্যমান করে।

AngularJS উদাহরণ:
<div ng-app="" ng-controller="personController">

<button ng-click="toggle()">Toggle</button>

myVar">
First Name: <input type="text" ng-model="firstName">

Last Name: <input type="text" ng-model="lastName">

<br>
Full Name: {{firstName + " " + lastName}}
</p>

</div>

<script>
function personController($scope) {
$scope.firstName = "John",
$scope.lastName = "Doe"
$scope.myVar = false;
$scope.toggle = function() {
$scope.myVar = !$scope.myVar;
};
}
</script>

উপরোক্ত এপ্লিকেশন ব্যাখ্যা:

PersonController এর ব্যবহার কন্ট্রোলার সম্পর্কে অধ্যায়ে আলোচনার অনুরুপ।

অ্যাপ্লিকেশনে একটি ডিফল্ট প্রোপার্টি (একটি ভেরিয়েবল) আছে: $scope.myVar = false;

ng-hide ডিরেক্টিভ <p> এলিমেন্ট সহ দুইটি ইনপুট ফিল্ড এর দৃশ্যমানতা নির্ধারণ করে, myVar এর (true or false) মান অনুযায়ী।

toggle() ফাংশন, myVar এর টগল করে true এবং false এর মধ্যে।
ng-hide="true" ভ্যালু একটি HTML এলিমেন্টকে অদৃশ্য করে।

HTML এলিমেন্টসমূহ দেখানো

ng-show ডিরেক্টিভ ও ব্যবহার করা যেতে পারে এপ্লিকেশন এর কোন একটি অংশের দৃশ্যমানতা নির্ধারণের জন্য।
ng-show ="false" ভ্যালু একটি HTML এলিমেন্টকে অদৃশ্য করে।
ng-show ="true" ভ্যালু একটি HTML এলিমেন্টকে দৃশ্যমান করে।
এখানে উপরের মতো একই উদাহরণ ng-hide এর পরিবর্তে ng-show ব্যবহার করে দেখানো হলো:

AngularJS উদাহরণ:
<div ng-app="" ng-controller="personController">

<button ng-click="toggle()">Toggle</button>

<p ng-show="myVar">
First Name: <input type="text" ng-model="firstName">

Last Name: <input type="text" ng-model="lastName">

<br>
Full Name: {{firstName + " " + lastName}}
</p>

</div>

<script>
function personController($scope) {
$scope.firstName = "John",
$scope.lastName = "Doe"
$scope.myVar = true;
$scope.toggle = function() {
$scope.myVar = !$scope.myVar;
};
}
</script>

jQuery Traversing পদ্ধতি . JQuery – Traversing Methods

jQuery Traversing পদ্ধতি
ইন্দ্র ভূষণ শুভ

jQuery Traversing পদ্ধতি
পদ্ধতি বর্ণনা
add() একই রকম উপাদানের সেটে উপাদান যোগ করা
addBack() বর্তমান সেটের সাথে পুর্বের সেটের উপাদান যোগ করা
andSelf() ১.৮ সংস্করণ বাদে। addBack() এর অন্য নাম
children() বাছাইকৃত উপাদানের সব direct children ফিরে আসে
closest() বাছাইকৃত উপাদানের প্রথম ancestor ফিরে আসে
contents() বাছাইকৃত উপাদানের সব direct children ফিরে আসে ( টেক্সট এবং মন্তব্য
নোড সহ)
each() একই রকম প্রত্যেকটি উপাদান একটি ফাংশন সঞ্চালন করে
end() বর্তমান চেইনের সাম্প্রতিক ফিল্টারিং অপারেশন শেষ হয়, এবং একই রকম
উপাদানের সেট তার পূর্বের অবস্থাই ফিরে যায়।
eq() একটি উপাদান নির্দিষ্ট সংখ্যক সূচক সহ বাছাইকৃত উপাদানে ফিরে আসে
filter() একই রকম উপাদানের সংখ্যা এমনভাবে কমানো হয় যাতে বাছাইকৃত
উপাদানের সাথে মিলে যায় অথবা ফাংশন টেস্ট অতিক্রম করতে পারে
find() বাছাইকৃত উপাদানের Descendant উপাদান ফিরে আসে
first() বাছাইকৃত উপাদানের প্রথম উপাদান ফিরে আসে
has() যেসব উপাদানের ভিতর এক বা ততোধিক উপাদান রয়েছে তারা সবাই ফিরে
আসে
is() নির্বাচক / উপাদান / jQuery বস্তুর বিরুদ্ধে একই রকম উপাদানের সেট
পরীক্ষা করা হয়, এবং যদি একটি উপাদান প্রদত্ত আর্গুমেন্টের সাথে মিলে
যায় তাহলে সত্যি ফিরে আসে
last() বাছাইকৃত উপাদেনের শেষ উপাদান ফিরে আসে
map() একই রকম সেটের প্রতিটি উপাদান একটি ফাংশনের মধ্য দিয়ে যায়, ফিরে
আসা মান ধারনকারী jQuery বস্তু তৈরি করে
next() বাছাইকৃত উপাদেনের পরবর্তি sibling উপাদান ফিরে আসে
nextAll() বাছাইকৃত উপাদেনের সব পরবর্তি sibling উপাদান ফিরে আসে
nextUntil() সব পরবর্তি sibling উপাদান প্রদত্ত দুইটি আর্গুমেন্টের মধ্যে ফিরে আসে
not() বাছাইকৃত উপাদান সেট থেকে উপাদান বাদ দেওয়া হয়
offsetParent() প্রথম অবস্থার parent উপাদানে ফিরে আসে
parent() বাছাইকৃত উপাদানের সরাসরি parent উপাদান ফিরে আসে
parents() বাছাইকৃত উপাদানের সব ancestor উপাদান ফিরে আসে
parentsUntil() প্রদত্ত দুইটি আর্গুমেন্টের মধ্যে সব ancestor উপাদান ফিরে আসে
prev() বাছাইকৃত উপাদানে পূর্বের sibling উপাদান ফিরে আসে
prevAll() বাছাইকৃত উপাদানে পূর্বের সব sibling উপাদান ফিরে আসে
prevUntil() প্রদত্ত দুইটি আর্গুমেন্টের মধ্যে পূর্বের সব sibling উপাদান ফিরে আসে
siblings() বাছাইকৃত উপাদেনের সব sibling উপাদান ফিরে আসে
slice() একই রকম উপাদানের সেটকে একটি পরিসীমা সূচকের উপসেটে কমানো
হয়

জেক্যুয়েরি এজাক্স মেথডস . JQuery – AJAX Methods

1. লিখেছেন সুদীপ্ত সাহা

জেক্যুয়েরি এজাক্স মেথডস

এজাক্স হল কোন ওয়েব পেজকে সম্পূর্ণ রিলোড না করে সার্ভারের মধ্যে থেকে ডাটার আদান-প্রদানের মাধ্যমে ওয়েব পেজের কোন অংশের আপডেট করার একটি কৌশল।

নিচের টেবিলে জেক্যুয়েরিতে ব্যবহৃত এজাক্স মেথডগুলো তালিকাভুক্ত করা হয়েছেঃ

মেথড বর্ণনা
$.ajax() এজাক্সের async রিকোয়েস্ট সম্পাদন করা
$.ajaxPrefilter() $.ajax() মেথডে কোন রিকোয়েস্ট প্রেরণের আগে কাস্টম অপশনগুলো পরিচালনা করা অথবা বিদ্যমান অপশনগুলোকে পরিবর্তন করা
$.ajaxSetup() ভবিষ্যতে কোন AJAX রিকোয়েস্টের জন্য ডিফল্ট ভ্যালু সেট করা
$.ajaxTransport() AJAX ডাটা পরিচালনার জন্য অবজেক্ট তৈরি করা
$.get() সার্ভার থেকে AJAX HTTP GET রিকোয়েস্টের মাধ্যমে ডাটা লোড করা
$.getJSON() সার্ভার থেকে HTTP GET রিকোয়েস্টের মাধ্যমে JSON-encoded ডাটা লোড করা
$.getScript() AJAX HTTP GET রিকোয়েস্টের মাধ্যমে সার্ভার থেকে JavaScript লোড করা এবং চালু করা
$.param() ধারাবাহিকভাবে কোন অ্যারে বা অবজেক্টকে প্রদর্শন করা
$.post() AJAX HTTP POST রিকোয়েস্টের মাধ্যমে সার্ভার থেকে ডাটা লোড করা
ajaxComplete() AJAX রিকোয়েস্ট কমপ্লিটের পর কোন ফাংশনকে রান করা
ajaxError() AJAX রিকোয়েস্ট ইররসহ কমপ্লিটের পর কোন ফাংশনকে রান করা
ajaxSend() AJAX রিকোয়েস্ট প্রেরণের পূর্বে কোন ফাংশনকে রান করা
ajaxStart() AJAX রিকোয়েস্ট প্রথম শুরু হবার সময় কোন ফাংশনকে রান করা
ajaxStop() সকল AJAX রিকোয়েস্ট কমপ্লিটের পর কোন ফাংশনকে রান করা
ajaxSuccess() AJAX রিকোয়েস্ট সঠিকভাবে কমপ্লিটের পর কোন ফাংশনকে রান করা
load() সার্ভার থেকে ডাটা লোড করা এবং সিলেক্টেড ইলিমেন্টে ডাটা রিটার্ন করা
serialize() সাবমিশনের জন্য ফর্মের উপাদানগুলোকে স্ট্রিংএ এনকোডিং করা
serializeArray() ফর্মের উপাদানগুলোকে নেম এবং ভ্যালু অনুযায়ী অ্যারেতে এনকোডিং করা

 

jQuery ট্রাভার্সিং-ফিল্টারিং । JQuery Traversing – Filtering

লিখেছেন সুদীপ্ত সাহা

 

জেক্যুয়েরি ট্রাভার্সিং - ফিল্টারিং

ইলিমেন্টের ন্যারো-ডাউন সার্চ

বহুল ব্যবহৃত তিনটি প্রাথমিক ফিল্টারিং মেথড হল first(), last() এবং eq()। এগুলো ব্যবহার করে অনেক ইলিমেন্ট থেকে কোন নির্দিষ্ট ইলিমেন্টকে অবস্থান অনুযায়ী খুঁজে বের করা সম্ভব।

অন্যান্য ফিল্টারিং মেথড যেমন filter() এবং not() এগুলো ব্যবহার করে ইলিমেন্টকে খুঁজে বের করে যায় যা কখনো নির্দিষ্ট বৈশিষ্ট্যের সাথে ঠিকভাবে মিলে আবার কখনো মিলে না।

 

জেক্যুয়েরি first() মেথড

first() মেথড কোন নির্দিষ্ট ইলিমেন্টের প্রথম উপাদানকে (এলিমেন্টকে) রিটার্ন করে।
নিচের উদাহরণটি কোন <div> এর প্রথম <p> ইলিমেন্টকে সিলেক্ট করেঃ


$(document).ready(function(){
    $("div p").first();
});

ফলাফল : first()

জেক্যুয়েরি last() মেথড

last() মেথড কোন নির্দিষ্ট ইলিমেন্টের শেষ উপাদানকে (এলিমেন্টকে) রিটার্ন করে।
নিচের উদাহরণটি কোন <div> এর শেষ <p> ইলিমেন্টকে সিলেক্ট করেঃ


$(document).ready(function(){
    $("div p").last();
});

ফলাফল : last()

 

জেক্যুয়েরি eq() মেথড

eq() মেথড কোন নির্দিষ্ট ইলিমেন্টের নির্দিষ্ট ইনডেক্স নাম্বার অনুযায়ী উপাদানকে রিটার্ন করে।

ইনডেক্স নাম্বার সবসময় ০ থেকে শুরু হয়, তাই প্রথম উপাদানের ইনডেক্স নাম্বার হবে ০, ১ নয়।

নিচের উদাহরণটি <p> এর দ্বিতীয় ইলিমেন্টকে সিলেক্ট করে (ইনডেক্স নাম্বার ১)


$(document).ready(function(){
    $("p").eq(1);
});

ফলাফল : eq()

 

জেক্যুয়েরি filter() মেথড

filter() মেথডের সাহায্যে আপনি একটি নির্দিষ্ট বৈশিষ্ট্য ঠিক করে দিতে পারবেন। যেই উপাদানগুলো বৈশিষ্ট্যের সাথে মিলবে না সেগুলো সিলেকশন থেকে বাদ পড়বে এবং যেগুলো মিলবে সেগুলো রিটার্ন করবে।

নিচের উদাহরণটি <p> এর যেসকল উপাদান “intro” ক্লাসের অন্তর্ভুক্ত সেগুলো রিটার্ন করেঃ


$(document).ready(function(){
    $("p").filter(".intro");
});

ফলাফল : filter()

 

জেক্যুয়েরি not() মেথড

not() মেথড সেই উপাদানগুলো রিটার্ন করবে যেগুলো বৈশিষ্ট্যের সাথে মিলবে না।

ইঙ্গিতঃ not() মেথড হল filter() মেথডের বিপরীত

নিচের উদাহরণটি <p> এর যেসকল উপাদান “intro” ক্লাসের অন্তর্ভুক্ত নয় সেগুলো রিটার্ন করেঃ


$(document).ready(function(){
    $("p").not(".intro");
});

ফলাফল : not()

 

jQuery তে Siblings খোঁজা

jQuery তে Siblings খোঁজা
ইন্দ্র ভূষণ শুভ

Siblings একই parent ভাগাভাগি করে।
আপনি jQuery দিয়ে একটি উপাদানের Siblings গুলো DOM ট্রির পার্শ্বাভিমুখে খুঁজতে পারেন।

DOM ট্রির আশেপাশে খোঁজা
DOM ট্রির আশেপাশে খোঁজার জন্য অনেক ধরনের jQuery পদ্ধতি আছেঃ
• siblings()
• next()
• nextAll()
• nextUntil()
• prev()
• prevAll()
• prevUntil()

jQuery তে siblings() পদ্ধতি
siblings() পদ্ধতিতে বাছাইকৃত উপাদানে সকল siblings উপাদান ফিরে আসে।
নিচের উদাহরণটি <h2> সকল siblings উপাদান ফিরিয়ে আনেঃ
উদাহরণ
$(document).ready(function(){
$("h2").siblings();
});
নিজে চেষ্টা করুন >>
আপনি আপনার ইচ্ছা মত পরিমাপক ব্যবহার করতে পারেন siblings অনুসন্ধানকে ফিল্টার করার জন্য।
নিচের উদাহরণটি <h2> সকল siblings উপাদান ফিরিয়ে আনে যা

উপাদানঃ
উদাহরণ
$(document).ready(function(){
$("h2").siblings("p");
});
নিজে চেষ্টা করুন >>

jQuery তে next () পদ্ধতি
next () পদ্ধতি বাছাইকৃত উপাদানে পরবর্তী siblings উপাদান ফিরিয়ে আনে।
নিচের উদাহরণটি <h2> পরবর্তী siblings উপাদান ফিরিয়ে আনেঃ
উদাহরণ
$(document).ready(function(){
$("h2").next();
});
নিজে চেষ্টা করুন >>

jQuery তে nextAll () পদ্ধতি
nextAll () পদ্ধতি বাছাইকৃত উপাদানে পরবর্তী সকল siblings উপাদান ফিরিয়ে আনে।
নিচের উদাহরণটি <h2> পরবর্তী সকল siblings উপাদান ফিরিয়ে আনেঃ
উদাহরণ
$(document).ready(function(){
$("h2").nextAll();
});
নিজে চেষ্টা করুন >>

jQuery তে nextUntil() পদ্ধতি
nextUntil() পদ্ধতি দুইটি আর্গুমেন্টের মধ্যে পরবর্তী সকল siblings উপাদান ফিরিয়ে আনে।
নিচের উদাহরণটি

এবং <h6> উপাদানের মধ্যে পরবর্তী সকল siblings উপাদান ফিরিয়ে আনেঃ

উদাহরণ
$(document).ready(function(){
$("h2").nextUntil("h6");
});
নিজে চেষ্টা করুন >>

jQuery তে prev(), prevAll() এবং prevUntil() পদ্ধতিঃ
prev(), prevAll() এবং prevUntil() পদ্ধতি উপরে বর্ণিত পদ্ধতির মতই কাজ কওরে কিন্তু কার্যকারিতা বিপরীতঃ তারা পুর্বের siblings উপাদান ফিরিয়ে আনে (DOM ট্রির সামনে খোঁজার বদলে পেছনের দিকে খুজতে থাকে )।

jQuery তে খোঁজার রেফারেন্সঃ
jQuery Traversing পদ্ধতির উপর পরোপুরি ধারনা লাভের জন্য, jQuery Traversing Reference পেইজটিতে যান।

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

1. লিখেছেন সুদীপ্ত সাহা

জেকুয়্যেরি ট্রাভেসিং-ডিসেন্ডেন্টস
ডিসেন্ডেন্টস হল চাইল্ড, গ্র্যান্ডচাইন্ড, গ্রেট-গ্র্যান্ডচাইন্ড এবং একইভাবে আরও... অর্থাৎ উত্তরসূত্রি। জেকুয়্যেরির সাহায্যে আপনি DOMট্রি কে ট্রাভার্স ডাউনের মাধ্যমে কোন ইলিমেন্ট্র ডিসেন্ডন্টগুলো খুজে দেখতে পারবেন।
DOMট্রি এর ট্রাভাসিং ডাউন
DOMট্রি কে ট্রাভাসিং ডাউনের জন্য দুটি উপযোগী জেকুয়্যেরি মেথড হলঃ
▪children()
▪ find()

জেকুয়্যেরি children() মেথড
children() মেথড কোন সিলেক্টেড ইলিমেন্টের সকল ডিরেক্ট চিলড্রেনকে রিটার্ন করে। এই মেথড DOMট্রি কে শুধুমাত্র একটি লেভেলে ট্রাভাসি ডাউন করে। নিচের উদাহরনটি প্রত্যেক <div> এর সকল ডিরেক্ট চিলড্রেন ইলিমেন্টকে রিটার্ন করেঃ
$(document).ready(function(){
$("div").children();
});

সার্চ রেজাল্টের জন্য চিলড্রেন ইলিমেন্টকে ফিল্টার করতে আপনি অপশনাল একটি প্যারামিটার ব্যবহার করতে পারেন। নিচের উদাহরনটি প্রত্যেক <div> এর <p> ইলিমেন্ট এবং ক্লাসনেম "1" এরকম সকল ডিরেক্ট চিলড্রেনকে রিটার্ন করেঃ
$(document).ready(function(){
$("div").children("p.1");
});

জেকুয়্যেরি find()মেথড
find() মেথড ফেরত আনে ডিসেন্ডেন্ট ইলিমেন্ট সমূহের নির্ধারিত ইলিমেন্ট। নিচের উদাহরনটি প্রত্যেক <span> ইলিমেন্ট এরকম ডিসেন্ডেন্টকে <div>: রিটার্ন করেঃ
$(document).ready(function(){
$("div").find("span");
});

নিচের উদাহরনটি রিটার্ন করে প্রত্যেক ডিসেন্ডেন্টকে <div>:
$(document).ready(function(){
$("div").find("*");
});

jQuery ট্র্যাভার্সিং – অ্যানসেস্টরস

শেখ মাহফুজুর রহমান

 

jQuery ট্র্যাভার্সিং - অ্যানসেস্টরস

অ্যানসেস্টর (Ancestors) এর বাংলা হলো পূর্বপুরুষ অর্থাৎ পিতা, পিতামহ, প্রপিতামহ ইত্যাদি। যারা এইচটিএমএল বা এক্সএইচটিএমএল( HTML এবং XHTML) নিয়ে কাজ করেন তারা নিশ্চয়ই জানেন যে এই দু'টো ডকুমেন্ট ল্যাঙ্গুয়েজের এলিমেন্ট বা ট্যাগগুলোও ঠিক একই ধরণের সম্পর্ক রীতি মেনে চলে! তো, জেকোয়ারির মাধ্যমে আমরা এই দুটো ল্যাঙ্গুয়েজের ডম ট্রি(DOM tree) ট্র্যাভার্স বা আরোহন করে কোন এলিমেন্টের পূর্বপুরুষদের খুঁজে পেতে পারি।

 

ডম ট্রি আরোহন (Traversing)

ডম ট্রি আরোহন করার তিনটি কার্যকর জেকোয়ারি মেথড বা পদ্ধতি হলোঃ

  • parent()
  • parents()
  • parentsUntil()

 

জেকোয়ারি parent() মেথড

parent() মেথড কোন নির্বাচিত এলিমেন্টের ডাইরেক্ট প্যারেন্ট এলিমেন্ট অর্থাৎ নির্বাচিত এলিমেন্টটি ঠিক পূর্বের যে এলিমেন্টের সন্তান সেই এলিমেন্টকে (পিতাকে) ফেরত (Return) দেয়। এই পদ্ধতি ডম ট্রি'র শুধুমাত্র একটি ধাপকে আরোহন করতে পারে।

নিচের উদাহরণটি প্রত্যেকটি <span> এলিমেন্টের ডাইরেক্ট প্যারেন্ট বা পিতাকে ফেরত দেয়ঃ


$(document).ready(function(){
    $("span").parent();
});

ফলাফল : parent()

 

জেকোয়ারি parents() মেথড

এই পদ্ধতিটি কোন নির্বাচিত এলিমেন্টের সবগুলো অ্যানসেস্টরকে ফেরত দেয়, একেবারে ডকুমেন্টের রুট অর্থাৎ <html> এলিমেন্ট পর্যন্ত যতগুলো এলিমেন্ট বা ট্যাগের সাথে ঐ নির্বাচিত এলিমেন্টের সম্পর্ক আছে সেই সবগুলো এলিমেন্টকে খুঁজে পাওয়া যায়।

নিচের উদাহরণে, parents() মেথড সবগুলো <span> এলিমেন্টের সমস্ত পূর্বপুরুষকে ফেরত দেয়ঃ


$(document).ready(function(){
    $("span").parents();
});

ফলাফল : parents()

 

আনসেস্টর বা পূর্বপুরুষ খুঁজে পাওয়ার ক্ষেত্রে আপনি কিছু অপশনাল-প্যারামিটার ব্যবহার করতে পারেন যার ফলে আপনি আপনার সার্চকে ফিল্টার করতে পারবেন।

লক্ষ্য করুন, নিচের উদাহরণটি সব এলিমেন্টের সবগুলো <ul> অ্যানসেস্টর এলিমেন্ট কে ফেরত দেয়ঃ


$(document).ready(function(){
    $("span").parents("ul");
});

ফলাফল : আনসেস্টর

 

জেকোয়ারি parentsUntil() মেথড

parentsUntil() মেথড দুটো নির্দিষ্ট এলিমেন্টের মধ্যকার সবগুলো অ্যানসেস্টর এলিমেন্টকে ফেরত দেয়।

নিচের উদাহরণে, <span> এবং <div> এলিমেন্টের মধ্যকার সবগুলো অ্যানসেস্টর এলিমেন্টকে খুঁজে পাওয়া গেছেঃ


$(document).ready(function(){
    $("span").parentsUntil("div");
});

ফলাফল : parentsUntil()

jQuery আরোহন । jQuery traversing

jQuery আরোহন কি?

jQuery অভিমুখ যার অর্থ "মধ্য দিয়ে অগ্রসর", এইচটিএমএল এলিমেন্ট কে অন্য এলিমেন্ট এর সাথে সম্পর্কের ভিত্তিতে খুজে বের করা বা সিলেক্ট করার জন্য ব্যবহৃত হয়। একটি নির্বাচিত এলিমেন্ট থেকে শুরু হয় এবং আপনার কাঙ্খিত এলিমেন্ট পর্যন্ত সিলেকশন চালিয়ে যায়।

নীচের ছবিটি একটি ফ্যামিলি ট্রি প্রকাশ করে। jQuery traversing এর মাধ্যমে, আপনি সহজেই ফ্যামিলি ট্রির উপর (ancestors), নীচে (descendants), আশেপাশে (siblings) ঘুরতে পারেন, যেটা শুরু হবে আপনার বাছাইকৃত (current) উপাদান দিয়ে। এই গতিবিধিকে Traversing অথবা moving through বলে।

অভিমুখ

চিত্রের ব্যখ্যা

  • <div> হলো <ul> এর পিতা এবং এর ভেতরের সবকিছুর পূর্বপুরুষ
  • <ul> হলো উভয় <li> উপাদানের পিতা, এবং <div> এর সন্তান
  • বামের <li> উপাদান <span> এর পিতা, <ul> এর সন্তান এবং <div> এর বংশধর
  • <span> উপদান বামের <li> এর সন্তান, এবং <ul> ও <div> এর বংশধর
  • দুইটা <li> হলো ভাইবোন ( তারা একই parent ভাগাভাগি করে )
  • ডানের <li> উপাদান <b> এর পিতা, <ul> এর সন্তান এবং <div> এর বংশধর
  • <b> উপাদান ডানের <li> এর সন্তান এবং <ul> ও <div> এর বংশধর

পূর্বপুরুষ হলো একাধারে পিতা, পিতামহ, মহান পিতামহ এবং আরও।

বংশধর হলো একাধারে সন্তান, নাতি, নাতির সন্তান এবং আরও।

ভাইবোন একই parent ভাগাভাগি করে।

 

Traversing the DOM

jQuery বিভিন্ন ধরনের মেথড প্রদান করে, যা DOM কে traverse করার অনুমতি দেয়।

Traversal পদ্ধতির মধ্যে tree-traversal হল সবচেয়ে বড় পদ্ধতি।

পরবর্তি অধ্যায় দেখাবে কিভাবে DOM ট্রির উপরে, নীচে এবং আশেপাশে যাওয়া যায়।

 

jQuery এর সেট কনটেন্ট এবং এট্রিবিউটস

লিখেছেন সুদীপ্ত সাহা

 

সেট কনটেন্ট - text(), html(), and val()

কনটেন্ট সেট করার জন্য আমরা তিনটি পদ্ধতি ব্যবহার করব।

  • text()নির্বাচিত টেক্সট কন্টেন্ট ফেরৎ
  • html()নির্বাচিত ইলিমেন্টের কন্টেন্ট ফেরৎ (HTML মার্কআপ সহ)
  • val()ফর্ম এর ভেলু ফেরতের ক্ষেত্রে

কিভাবে jQuery text(), html(), এবং val() সেট করতে হয় তা নিম্নলিখিত উদাহরণে দেখানো হল।

উদাহরণ


$("#btn1").click(function(){
    $("#test1").text("Hello world!");
});
$("#btn2").click(function(){
    $("#test2").html("<b>Hello world!</b>");
});
$("#btn3").click(function(){
    $("#test3").val("Dolly Duck");
});

ফলাফল : jQuery text(), html(), এবং val()

 

একটি কলব্যাক ফাংশন এর জন্য text(), html(), এবং val()

উপরোক্ত তিনটি jQuery পদ্ধতি text(), html() এবং val() এর মাধ্যমে কলব্যাক ফাংশন তৈরি করা যায়। এই কলব্যাক ফাংশন এর দুটি প্যারামিটার আছে। index er বর্তমান তালিকার নির্বাচিত ইলিমেন্ট এবং অরজিনাল ভ্যালু (পুরাতন)। এর পরে আপনি নতুন স্ট্রিং এ ফেরত গিয়ে আপনি ফাংশনে নতুন ভ্যালু ব্যবহার করতে করতে পারেন। নিম্নলিখিত উদাহরণে text() এবং html() এর সাহায্যে একটি কলব্যাক ফাংশন,


$("#btn1").click(function(){
    $("#test1").text(function(i, origText){
        return "Old text: " + origText + " New text: Hello world!
        (index: " + i + ")";
    });
});

$("#btn2").click(function(){
    $("#test2").html(function(i, origText){
        return "Old html: " + origText + " New html: Hello <b>world!</b>
        (index: " + i + ")";
    });
});

ফলাফল : কলব্যাক ফাংশন এর জন্য text(), html(), এবং val()

 

সেট এট্রিবিউটস : Attr ()

JQuery এর Attr () এট্রিবিউটসটি ভ্যালু সেট এবং পরিবর্তন এর কাজে ব্যবহার করা হয়। নিম্নলিখিত উদাহরণে আমরা দেখব কিভাবে হাইপার লিঙ্কের মান পরিবর্তন করতে হয়।


$("button").click(function(){
    $("#w3s").attr("href", "http://www.w3schools.com/jquery");
});

ফলাফল : Attr ()

 

Attr () এট্রিবিউট এর মাধ্যম আপনি একই সময়ে একধিক ইলিমেন্ট সেট করতে পারবেন। নিম্নলিখিত উদাহরণে আমরা দেখব Attr () এট্রিবিউট এর মাধ্যমে একই সময়ে একধিক ইলিমেন্ট ব্যবহার,


$("button").click(function(){
    $("#w3s").attr({
        "href" : "http://www.w3schools.com/jquery",
        "title" : "W3Schools jQuery Tutorial"
    });
});

ফলাফল : attr()

 

একটি কলব্যাক ফাংশনে Attr () এট্রিবিউট

JQuery পদ্ধতিতে কলব্যাক ফাংশন এর জন্য Attr () এট্রিবিউট খুবই গুরুত্তপুর্ন। এই কলব্যাক ফাংশন এর দুটি প্যারামিটার আছে। index er বর্তমান তালিকার নির্বাচিত ইলিমেন্ট এবং অরজিনাল ভ্যালু(পুরাতন)। এর পরে আপনি নতুন স্ট্রিং এ ফেরত গিয়ে আপনি ফাংশনে নতুন ভ্যালু ব্যবহার করতে করতে পারেন। নিম্নলিখিত উদাহরণে Attr () এট্রিবিউট এর সাহায্যে একটি কলব্যাক ফাংশন,


$("button").click(function(){
    $("#w3s").attr("href", function(i, origValue){
        return origValue + "/jquery";
    });
});

ফলাফল : সেট এট্রিবিউটস Attr ()

 

জেকোয়ারি – কনটেন্ট ও এলিমেন্ট পাওয়া বা নির্বাচন করা

Sheikh Mahfuzur Rahman
Author at BloggersEcho.Com
Bengali Word Count: 280
জেকোয়ারি - কনটেন্ট ও এলিমেন্ট পাওয়া বা নির্বাচন করা

ওয়েব স্ক্রিপ্টিং ল্যাঙ্গুয়েজগুলোর মধ্যে জেকোয়ারি(jQuery) হলো অত্যন্ত গুরুত্বপূর্ণ ও শক্তিশালী একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ। জেকোয়ারি হলো এমন কতগুলো পদ্ধতি বা কৌশল এর সমন্বয় যার মাধ্যমে এইচটিএমএল(HTML) বা এক্সএইচটিএমএল(XHTML) ডকুমেন্টের যেকোন এলিমেন্ট বা এট্রিবিউটকে নির্বাচন এবং পরিচালনা করা সম্ভব।

জেকোয়ারি ডম ম্যানিপিউলেশন(Manipulation)

জেকোয়ারির একটি গুরুত্বপূর্ণ অংশ হলো ডমকে(DOM) ম্যানিপিউলেট বা প্রয়োজনমতো পরিচালনা করা। প্রথমে জেনে নেয়া যাক ডম কিঃ

ডম হলো ডকুমেন্ট অবজেক্ট মডেল(Document Object Model) যা এইচটিএমএল এবং এক্সএইচটিএমএল ডকুমেন্টকে অ্যাক্সেস করার আদর্শ(Standard) নির্ধারিত করে দেয়। অর্থাৎ পুর্বোক্ত দুটি ভাষাকে( HTML ও XHTML) কোন পদ্ধতি ব্যবহার করে প্রোগ্রামিং করা যাবে তা নির্ধারণ করে ডম। ডব্লিওথ্রিসি'র(W3C) সংজ্ঞানুযায়ী ডম হলো একটি প্লাটফর্ম এবং ল্যাঙ্গুয়েজ-নির্বিশেষ ইন্টারফেস যা প্রোগ্রাম ও স্ক্রিপ্টসমূহকে (যেমন JavaScript, jQuery) ডাইনামিকভাবে কোন ডকুমেন্টের কন্টেন্ট, স্ট্রাকচার(গঠন) এবং স্টাইল অ্যাক্সেস ও আপডেট করার সুযোগ করে দেয়।

জেকোয়ারি কতগুলো ডম সংশ্লিষ্ট পদ্ধতি নিয়ে গঠিত হয়েছে যার মধ্যমে সহজেই এলিম্যান্ট এবং এট্রিবিউটকে নিজের প্রয়োজনমত পরিবর্তন ও পরিচালনা করা যায়।

কন্টেন্ট নির্বাচন – text(), html(), এবং val()

ডম ম্যানিপিউলেশন করার তিনটি সহজ কিন্তু কার্যকর পদ্ধতি হলোঃ

text() - কতগুলো নির্বাচিত এলিমেন্টের টেক্সট কনন্টেকে নির্ধারণ(Set) বা ফেরত(Return) পাঠায়
html() - নির্বাচিত এলিমেন্টগুলোর(এইচটিএমএল মার্কআপসহ) কন্টেন্ট নির্ধারণ অথবা ফেরত পাঠায়।
val() - ফর্ম ফিল্ডগুলোর মান(Value) নির্ধারণ বা ফেরত পাঠায়।

কিভাবে text() এবং html() মেথডের মাধ্যমে কন্টেন্ট পাওয়া বা নির্বাচন যায় তা নিচের উদাহরণটির মাধ্যমে বুঝা যাবেঃ

$("#btn1").click(function(){
alert("Text: " + $("#test").text());
});
$("#btn2").click(function(){
alert("HTML: " + $("#test").html());
});

নিচের উদাহরণটি জেকোয়ারি val() মেথডের মাধ্যমে কোন ইনপুট ফিল্ডের মান নির্বাচন করার() কৌশল ব্যাখ্যা করা করেঃ

$("#btn1").click(function(){
alert("Value: " + $("#test").val());
});

এট্রিবিউট নির্বাচন - attr()

কোন এইচটিএমএল বা এক্সএইচটিএমএল ডকুমেন্টের এট্রিবিউটগুলোর ভ্যালু এই মেথডের মাধ্যমে পাওয়া যায়। নিচের উদাহরণটি দেখুন, কোন লিংকে কিভাবে এট্রিবিউটের ভ্যালু পাওয়া সম্ভব তা এর মাধ্যমে বুঝা যাবেঃ

$("button").click(function(){
alert($("#w3s").attr("href"));
});

এই ছিল জেকোয়ারির মাধ্যমে এইচটিএমএল ও এক্সএইচটিএমএল ডকুমেন্ট এর কন্টেন্ট ও এট্রিবিউট নির্বাচন বা পাওয়ার উপায়। পরবর্তী টিউটোরিয়ালে কন্টেন্টের ভ্যালু বা মান নির্ধারণ ও পরিবর্তন করার ব্যাপারে আলোচনা করা হবে।

AngularJS HTML DOM

AngularJS HTML DOM
parijat biswas
student of CSE
university of Asia Pacific

AngularJs Directives গুলো HTML DOM উপাদানগুলকে অ্যাপ্লিকেশন ডাটাতে যুক্ত করে ।
ng-disabled Directive
ng-disabled directive Angularjs অ্যাপ্লিকেশন ডাটাকে disabled html উপাদানগুলোর সাথে যুক্ত করে ।
AngularJS উদাহরনঃ
<div ng-app="">

<p>
mySwitch">Click Me!
</p>

<p>
<input type="checkbox" ng-model="mySwitch">Button
</p>

</div>
* নিজে চেষ্টা করে দেখুন।
আপ্লিকেশনের ব্যাখ্যাঃ
ng-disabled directive অ্যাপ্লিকেশন ডাটা mySwitch কে html বাটন disabled এ যুক্ত করে ।
ng-model directive HTML checkbox উপাদানের এর মান কে mySwitch এর মানের সাথে যুক্ত করে ।
যদি mySwitch এর মান true হয়, তবে বাটনটি disabled হবেঃ
<p>
<button disabled>Click Me!</button>
</p>
যদি mySwitch এর মান false হয়, তবে বাটনটি disabled হবেনাঃ
<p>
<button>Click Me!</button>
</p>
ng-show Directive
ng-show directives html উপাদানকে show অথবা hide করে ।
AngularJS উদাহরনঃ
<div ng-app="">

<p ng-show="true">I am visible.</p>

<p ng-show="false">I am not visible.</p>

</div>
* নিজে চেষ্টা করে দেখুন।
ng-show directive HTML উপাদানকে ng-show এর মানের উপর ভিত্তি করে দেখায়(show) বা আড়াল(hide) করে ।
আপনি true(সত্য) অথবা false(মিথ্যা) যেকোনো মান ব্যবহার করতে পারেনঃ
AngularJS উদাহরনঃ
<div ng-app="">

<p ng-show="hour > 12">I am visible.</p>

</div>
* নিজে চেষ্টা করে দেখুন।
ng-hide Directive
ng-hide directive html উপাদানকে আড়াল(hide) বা দেখায়(show) করে ।
AngularJS উদাহরনঃ
<div ng-app="">

<p ng-hide="true">I am not visible.</p>

<p ng-hide="false">I am visible.</p>

</div>
* নিজে চেষ্টা করে দেখুন।

AngularJS ডিরেক্টিভ (AngularJS Directives in Bangla)

পরাজিত বিশ্বাস

 

AngularJs আপনাকে নতুন এট্রিবিউট Directives এর মাধ্যমে html কে ব্যাখ্যা করতে সাহায্য করবে ।

AngularJS এর এক সেট বিল্ট ইন Directives আছে, যা আপনার প্রত্যেকটি অ্যাপ্লিকেশনকে কার্যকরি করে তোলে।

AngularJs আপনাকে আপনার নিজস্ব Directive সংঙ্গায়িত করার সুযোগ দেয়।

 

AngularJS ডিরেক্টিভ (AngularJS Directives)

AngularJs আপনাকে ng- prefix এর সাথে html কে ব্যাখ্যা করতে সাহায্য করবে ।

ng-app directive একটি AngularJs অ্যাপ্লিকেশন শুরু করে

ng-init directive অ্যাপ্লিকেশন ডাটার সূচনা করে

ng-model directive HTML controls (input, select, textarea) এর মান অ্যাপ্লিকেশন ডাটাতে যুক্ত করে

 

AngularJS উদাহরনঃ


<div ng-app="" ng-init="firstName='John'">

<p>Name: <input type="text" ng-model="firstName"></p>
<p>You wrote: {{ firstName }}</p>

</div>


ফলাফল : AngularJS ডিরেক্টিভ

ng-app directive AngularJS কে বলে যে, <div> এলিমেন্ট হচ্ছে AngularJs অ্যাপ্লিকেশনের মালিক ।

 

Data Binding (ডাটা যুক্তকরণ)

উদাহরনে দেওয়া {{ firstName }} expression হচ্ছে একটি AngularJS data binding expression ।
AngularJS data binding AngularJS expressions কে AngularJS data এর সাথে synchronized(সিঙ্ক্রোনাইজ) করে ।
{{ firstName }} টি ng-model="firstName" এর সাথে synchronized(সিঙ্ক্রোনাইজ) ।
পরবর্তী উদাহরনে দুইটি text filed দুইটি ng-model directives এর সাথে synchronized(সিঙ্ক্রোনাইজ):
AngularJS উদাহরনঃ
<div ng-app="" ng-init="quantity=1;price=5">

Quantity: <input type="number" ng-model="quantity">
Costs: <input type="number" ng-model="price">

Total in dollar: {{ quantity * price }}

</div>
* নিজে চেষ্টা করে দেখুন।

Repeating HTML Elements (HTML এর উপাদানসমূহ পুনরাবৃত্তি করা)
ng-repeat directive একটি HTML element কে repeat করেঃ
AngularJS উদাহরনঃ
Jani','Hege','Kai']">
<ul>
<li ng-repeat="x in names">
{{ x }}
</li>
</ul>
</div>
* নিজে চেষ্টা করে দেখুন।
ng-repeat directive ব্যবহৃত হয় একটি object এর array তেঃ
AngularJS উদাহরনঃ
<div ng-app="" ng-init="names=[
{name:'Jani',country:'Norway'},
{name:'Hege',country:'Sweden'},
{name:'Kai',country:'Denmark'}]">

<ul>
<li ng-repeat="x in names">
{{ x.name + ', ' + x.country }}
</li>
</ul>

</div>
* নিজে চেষ্টা করে দেখুন।
database CRUD (Create Read Update Delete) application এর জন্য AngularJS যথাযথ।
ng-app Directive
AngularJs এর মূল উপাদান সঙ্গায়িত করার জন্য ng-app directive কাজ করে ।
যখন একটি ওয়েব পেজ load হবে , তখন ng-app directive স্বয়ংক্রিয়ভাবে আপ্লিকেশনটির auto-bootstrap করবে ।
ng-init Directive
ng-init directive একটি AngularJs আপ্লিকেশনের initial value প্রকাশ করতে ব্যবহৃত হয় ।
সাধারনত আপনি এটি ব্যবহার করবেন না, এর পরিবর্তে আপনি controller অথবা module ব্যবহার করুন ।
controller এবং module সম্পর্কে পরে আপনি বিস্তারিত জানবেন ।
ng-model Directive
ng-model directive HTML controls (input, select, textarea) এর মান অ্যাপ্লিকেশন ডাটাতে যুক্ত করে ।
ng-model directive আরও যা করতে পারেঃ
১. application data (number, email, required) এর জন্য type validation প্রদান করতে পারে ।
২. application data (invalid, dirty, touched, error) এর অবস্থান প্রদান করতে পারে ।
৩. HTML element এর জন্য CSS class প্রদান করতে পারে ।
৪. HTML element কে HTML forms এ যুক্ত করতে পারে ।
ng-repeat Directive
একটি collection এর প্রতিটি item এর জন্য ng-repeat directive , HTML element কে clone করে। ( একটি array এর মধ্যে )

 

AngularJS Home পেজে যাওয়ার জন্য এখানে ক্লিক করুন