Courses/ Computer & ICT/ Chapter 9
Chapter 09 of 10

প্রোগ্রামিং ও ডেটাবেস

প্রোগ্রামিং ভাষার প্রজন্ম, অ্যালগরিদম, ফ্লোচার্ট, DBMS ও SQL বেসিক

📌 প্রোগ্রামিং ভাষা কী?

কম্পিউটারকে নির্দেশ দেওয়ার জন্য বিশেষ নিয়ম (Syntax) অনুসারে লেখা ভাষাকে প্রোগ্রামিং ভাষা (Programming Language) বলে। প্রোগ্রামিং ভাষা দিয়ে লেখা নির্দেশাবলিকে Program বা Source Code বলে। একজন প্রোগ্রামার Source Code লেখেন এবং কম্পিউটার তা নির্বাহ (Execute) করে।

💡 প্রোগ্রামিং-সংশ্লিষ্ট মৌলিক ধারণা
  • Program: নির্দেশাবলীর সুশৃঙ্খল সমষ্টি — কম্পিউটার Step by Step পালন করে
  • Source Code: প্রোগ্রামারের লেখা মূল কোড (Human-readable)
  • Object Code: Compiler/Assembler-এর তৈরি Machine-readable কোড
  • Bug: প্রোগ্রামের ত্রুটি | Debugging: ত্রুটি খুঁজে সংশোধন করা
  • Syntax: ভাষার ব্যাকরণ/নিয়ম | Syntax Error: নিয়ম ভঙ্গ করলে ত্রুটি
  • IDE: Integrated Development Environment — কোড লেখা, Compile ও Debug-এর একক সফটওয়্যার (যেমন VS Code, PyCharm, Eclipse)

📌 প্রোগ্রামিং ভাষার প্রজন্ম (Generation)

প্রজন্মনামবৈশিষ্ট্যউদাহরণঅনুবাদক
1GLMachine Languageশুধু 0 ও 1 (বাইনারি) — কম্পিউটার সরাসরি বোঝে, অনুবাদক লাগে না01001011...কোনোটি না
2GLAssembly Languageসংক্ষিপ্ত কোড (Mnemonic) — Machine-এর কাছের ভাষাMOV, ADD, SUB, JMPAssembler
3GLHigh-Level Languageইংরেজির কাছাকাছি — Portable, শেখা সহজC, Java, Python, C++Compiler / Interpreter
4GLVery High-Levelকম কোডে বেশি কাজ — Domain-specificSQL, MATLAB, Rবিশেষায়িত ইঞ্জিন
5GLNatural / AI Languageপ্রাকৃতিক ভাষায় কম্পিউটারকে নির্দেশ — AI/Logic ভিত্তিকProlog, LISP, MercuryInference Engine
🧠 প্রজন্ম মনে রাখুন

Low-Level = মেশিনের কাছে (1GL, 2GL) — দ্রুত কিন্তু কঠিন, হার্ডওয়্যার নির্ভর
High-Level = মানুষের কাছে (3GL+) — সহজ কিন্তু অনুবাদ দরকার, Portable
"যত নিচে = মেশিনের ভাষা (দ্রুত), যত উপরে = মানুষের ভাষা (সহজ)"
🔑 1GL = সরাসরি Execute (কোনো অনুবাদক লাগে না) — পরীক্ষায় আসে!

📌 জনপ্রিয় প্রোগ্রামিং ভাষা — উদ্ভাবক ও সাল

ভাষাউদ্ভাবকসালবিশেষত্বধরন
FORTRANJohn Backus (IBM)১৯৫৭প্রথম High-Level Language — বৈজ্ঞানিক গণনাCompiled
COBOLGrace Hopper১৯৫৯ব্যবসায়িক ডেটা প্রসেসিং — ব্যাংক/বীমায় প্রচলিতCompiled
BASICKemeny & Kurtz১৯৬৪শেখার জন্য সহজ — Beginners' All-purpose Symbolic Instruction CodeInterpreted
PascalNiklaus Wirth১৯৭০শিক্ষামূলক, Structured Programming শেখাতেCompiled
CDennis Ritchie১৯৭২সিস্টেম প্রোগ্রামিং, UNIX OS C-তে লেখা — "প্রোগ্রামিং-এর জননী"Compiled
C++Bjarne Stroustrup১৯৮৩C + OOP — গেম, সিস্টেম সফটওয়্যার, ব্রাউজারCompiled
PythonGuido van Rossum১৯৯১সহজ Syntax, AI/ML ও Data Science-এর প্রধান ভাষাInterpreted
JavaJames Gosling (Sun)১৯৯৫"Write Once, Run Anywhere" — JVM, Android AppCompiled + Interpreted
JavaScriptBrendan Eich১৯৯৫ওয়েব ডেভেলপমেন্ট — ব্রাউজারে চলে, Frontend + Backend (Node.js)Interpreted (JIT)
PHPRasmus Lerdorf১৯৯৫সার্ভার-সাইড ওয়েব ডেভেলপমেন্ট (WordPress, Facebook)Interpreted
C#Microsoft (Anders Hejlsberg)২০০০.NET Framework, Windows App, Unity GameCompiled (CLR)
SwiftApple২০১৪iOS/macOS App DevelopmentCompiled
KotlinJetBrains২০১১Android-এর আধুনিক ভাষা (Google Recommended)Compiled (JVM)
💡 পরীক্ষায় বারবার আসে — ভাষা ও উদ্ভাবক
  • C-এর জনক: Dennis Ritchie (Bell Labs, ১৯৭২) — UNIX OS-ও তিনি তৈরি করেন
  • Java-র স্লোগান: "Write Once, Run Anywhere" — JVM (Java Virtual Machine) এ চলে
  • প্রথম High-Level Language: FORTRAN (১৯৫৭, John Backus)
  • প্রথম প্রোগ্রামার: Ada Lovelace (Charles Babbage-এর Analytical Engine-এর জন্য প্রোগ্রাম লেখেন)
  • HTML প্রোগ্রামিং ভাষা নয় — এটি Markup Language (HyperText Markup Language)
  • SQL প্রোগ্রামিং ভাষা নয় — এটি Query Language (4GL)
  • LISP = AI-র প্রথম ভাষা (John McCarthy, ১৯৫৮) | Prolog = Logic Programming

📌 অনুবাদক প্রোগ্রাম (Language Translator) — বিস্তারিত

High-Level ভাষায় লেখা Source Code-কে কম্পিউটার সরাসরি বোঝে না — Machine Language-এ রূপান্তর দরকার। এই রূপান্তরের কাজ করে অনুবাদক।

অনুবাদকইনপুটআউটপুটপদ্ধতিগতিউদাহরণ
AssemblerAssembly LanguageMachine Codeএক নির্দেশ → এক Machine নির্দেশদ্রুতNASM, MASM, GAS
Compilerপুরো Source CodeObject File (.exe/.obj)পুরো কোড একবারে অনুবাদExecute দ্রুতC (GCC), C++, Java (javac)
Interpreterএক লাইন Source Codeসরাসরি Executeএক লাইন করে অনুবাদ ও সম্পাদনExecute ধীরPython, JavaScript, PHP, Ruby

Compiler vs Interpreter — গুরুত্বপূর্ণ পার্থক্য

বৈশিষ্ট্যCompilerInterpreter
অনুবাদ পদ্ধতিপুরো Source Code একবারে অনুবাদএক লাইন করে অনুবাদ ও সম্পাদন
Object Fileতৈরি হয় (.exe, .obj)তৈরি হয় না
Execution Speedদ্রুত (একবার Compile হলে বারবার চলে)ধীর (প্রতিবার অনুবাদ করতে হয়)
Error DetectionCompile-এর সময় সব Error একসাথে দেখায়Error পেলে সেখানেই থেমে যায়
Memoryবেশি লাগে (Object File রাখে)কম লাগে
Debuggingকঠিন (সব Error একসাথে)সহজ (এক লাইন করে)
উদাহরণC, C++, Go, RustPython, JavaScript, PHP, Ruby
💡 Java — বিশেষ কেস

Java = Compiler + Interpreter — Java Source Code (.java) প্রথমে javac Compiler দিয়ে Bytecode (.class) তৈরি করে, তারপর JVM (Java Virtual Machine) সেই Bytecode Interpret করে Execute করে। এজন্য Java Platform Independent — "Write Once, Run Anywhere"।

📌 প্রোগ্রামিং প্যারাডাইম (Programming Paradigm)

প্রোগ্রামিং সমস্যা সমাধানের বিভিন্ন দৃষ্টিভঙ্গি বা পদ্ধতিকে Programming Paradigm বলে।

প্যারাডাইমবৈশিষ্ট্যউদাহরণ ভাষা
Proceduralধাপে ধাপে নির্দেশ (Function/Procedure ভিত্তিক), Top-downC, Pascal, FORTRAN
Object-Oriented (OOP)Class ও Object ভিত্তিক — বাস্তব জগতের মডেলিংJava, C++, Python, C#
FunctionalFunction-কেন্দ্রিক, Side Effect নেই, Immutable DataHaskell, Lisp, Erlang, Scala
LogicLogic/Rule ভিত্তিক — AI ও Expert System-এ ব্যবহৃতProlog, Mercury
Scriptingঅটোমেশন ও ওয়েবে ব্যবহৃত — হালকা ও দ্রুত লেখাJavaScript, Python, PHP, Bash
Event-Drivenইভেন্ট (ক্লিক, কী-প্রেস) ঘটলে কোড Execute হয়JavaScript (Browser), Visual Basic

📌 অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (OOP) — বিস্তারিত

OOP হলো বর্তমান যুগের সবচেয়ে জনপ্রিয় প্রোগ্রামিং পদ্ধতি। বাস্তব জগতের বস্তুকে (Object) মডেল করে প্রোগ্রাম লেখা হয়।

ধারণাবিবরণবাস্তব উপমা
ClassObject-এর নকশা/ছাঁচ (Blueprint) — বৈশিষ্ট্য ও আচরণ সংজ্ঞায়িত"গাড়ি" শ্রেণির নকশা
ObjectClass-এর একটি নির্দিষ্ট উদাহরণ (Instance)আপনার লাল Toyota গাড়ি
Encapsulationডেটা ও Method একসাথে ক্যাপসুলে আবদ্ধ করা — বাইরে থেকে সরাসরি প্রবেশ নেইওষুধের ক্যাপসুল — ভেতরে কী আছে দেখা যায় না
Inheritanceএকটি Class-এর বৈশিষ্ট্য অন্য Class-এ উত্তরাধিকার হিসেবে পাওয়াসন্তান পিতামাতার বৈশিষ্ট্য পায়
Polymorphismএকই নামের Method ভিন্ন ভিন্নভাবে কাজ করা"কথা বলা" — মানুষ বাংলায়, পাখি কিচিরমিচিরে
Abstractionজটিলতা লুকিয়ে রাখা — শুধু প্রয়োজনীয় অংশ দেখানোগাড়ি চালানো — ইঞ্জিনের ভেতর জানতে হয় না
🧠 OOP-র ৪টি স্তম্ভ মনে রাখুন — "AEIP"

Abstraction — জটিলতা লুকানো
Encapsulation — ডেটা আবদ্ধ করা (Data Hiding)
Inheritance — উত্তরাধিকার (পুনর্ব্যবহার)
Polymorphism — বহুরূপিতা (একই নাম, ভিন্ন কাজ)
"AEI Police" — OOP-র Police যারা কোডকে সুশৃঙ্খল রাখে!

💡 OOP — পরীক্ষায় আসা তথ্য
  • Overloading: একই নামে ভিন্ন Parameter-এর Method (Compile-time Polymorphism)
  • Overriding: Parent Class-এর Method Child Class-এ নতুনভাবে লেখা (Runtime Polymorphism)
  • Constructor: Object তৈরির সময় স্বয়ংক্রিয়ভাবে চলে — Class-এর নামে Method
  • Destructor: Object ধ্বংসের সময় চলে (C++ → ~ClassName, Python → __del__)
  • Smalltalk = প্রথম পূর্ণাঙ্গ OOP ভাষা | Alan Kay = OOP ধারণার জনক

📌 অ্যালগরিদম ও ফ্লোচার্ট — বিস্তারিত

অ্যালগরিদম (Algorithm)

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

💡 একটি ভালো অ্যালগরিদমের বৈশিষ্ট্য
  • Input: এক বা একাধিক ইনপুট থাকবে (শূন্যও হতে পারে)
  • Output: অন্তত একটি আউটপুট থাকবে
  • Definiteness: প্রতিটি ধাপ সুনির্দিষ্ট ও দ্ব্যর্থহীন হবে
  • Finiteness: সীমিত ধাপে শেষ হবে (অসীম লুপ নয়)
  • Effectiveness: প্রতিটি ধাপ কার্যকর ও সম্ভব হবে

ফ্লোচার্ট (Flowchart)

অ্যালগরিদমের চিত্ররূপকে ফ্লোচার্ট বলে। বিভিন্ন জ্যামিতিক আকৃতি দিয়ে প্রতিটি ধাপ বোঝানো হয়।

প্রতীকআকৃতিকাজউদাহরণ
Oval / Terminalডিম্বাকার ⬭Start / End (শুরু/শেষ)"Start", "End"
Rectangle / Processআয়তক্ষেত্র ▭প্রক্রিয়া / গণনাSum = A + B
Diamond / Decisionরম্বস ◇সিদ্ধান্ত (শর্ত — হ্যাঁ/না)"A > B?", "Is Even?"
Parallelogramসামান্তরিক ▱Input / Output"Read A, B", "Print Sum"
Arrow / Flow Lineতীর →প্রবাহের দিক
Circle / Connectorছোট বৃত্ত ○ফ্লোচার্টের বিভিন্ন অংশ সংযুক্তপৃষ্ঠা বদলালে
Predefined Processদ্বি-রেখা আয়তক্ষেত্রআগে থেকে সংজ্ঞায়িত Subroutine/FunctionCall calculateTax()

Pseudocode (সিউডোকোড)

কোনো নির্দিষ্ট ভাষা ছাড়া সাধারণ ভাষায় অ্যালগরিদম লেখাকে Pseudocode বলে — প্রোগ্রাম লেখার পরিকল্পনা।

📝 Pseudocode উদাহরণ: বড় সংখ্যা বের করা

BEGIN
  READ A, B
  IF A > B THEN
    PRINT A "is greater"
  ELSE
    PRINT B "is greater"
  ENDIF
END

📌 ডেটা স্ট্রাকচার (Data Structure) — প্রাথমিক ধারণা

ডেটা সুশৃঙ্খলভাবে সংরক্ষণ ও পরিচালনার পদ্ধতিকে ডেটা স্ট্রাকচার বলে।

ডেটা স্ট্রাকচারবৈশিষ্ট্যবাস্তব উপমাধরন
Arrayএকই ধরনের ডেটার ক্রমানুসারী সংগ্রহ — Index (0 থেকে শুরু)একটি সারিতে বসা ছাত্রদের রোলLinear
StackLIFO — Last In, First Out (শেষে ঢুকে প্রথমে বের)থালার স্তূপ — উপর থেকে নেওয়া হয়Linear
QueueFIFO — First In, First Out (প্রথমে ঢুকে প্রথমে বের)টিকেট কাউন্টারের লাইনLinear
Linked ListNode + Pointer — প্রতিটি Node পরবর্তীকে নির্দেশ করেট্রেনের বগি (একটি অন্যটির সাথে যুক্ত)Linear
Treeশ্রেণিবদ্ধ — একটি Root + অনেক Child Nodeপারিবারিক বংশলতিকা, ফাইল সিস্টেমNon-Linear
GraphNode (Vertex) + Edge — যেকোনো সংযোগরাস্তার ম্যাপ, Social NetworkNon-Linear
🧠 Stack vs Queue মনে রাখুন

Stack = LIFO (Last In, First Out) — "বইয়ের স্তূপ" → উপরেরটাই আগে তুলবেন
Queue = FIFO (First In, First Out) — "ব্যাংকের লাইন" → আগে আসলে আগে সেবা
Stack-এ: Push (ঢোকানো) ও Pop (বের করা)
Queue-তে: Enqueue (ঢোকানো) ও Dequeue (বের করা)

💡 Sorting Algorithm — পরীক্ষায় নাম আসে
  • Bubble Sort: পাশাপাশি তুলনা করে বড়টি ডানে ঠেলে দেয় — সবচেয়ে সহজ, ধীর O(n²)
  • Selection Sort: সবচেয়ে ছোটটি খুঁজে সামনে আনে — O(n²)
  • Insertion Sort: একটি একটি করে সঠিক জায়গায় বসায় (তাসের মতো) — O(n²)
  • Merge Sort: ভাগ করো ও জয় করো (Divide & Conquer) — দ্রুত O(n log n)
  • Quick Sort: Pivot ভিত্তিক Divide & Conquer — Average-এ সবচেয়ে দ্রুত O(n log n)
  • Searching: Linear Search O(n) | Binary Search O(log n) — Sorted Array-তে

📌 ডেটাবেস ও DBMS — বিস্তারিত

ডেটাবেস (Database) হলো সংগঠিত ও কাঠামোবদ্ধ ডেটার সমাহার যা সহজে সংরক্ষণ, পুনরুদ্ধার ও ব্যবস্থাপনা করা যায়। ডেটাবেস তৈরি, রক্ষণাবেক্ষণ ও পরিচালনার সফটওয়্যারকে DBMS (Database Management System) বলে।

DBMS-এর ধরন

ধরনবৈশিষ্ট্যউদাহরণ
Hierarchical DBMSTree কাঠামো — Parent-Child সম্পর্ক (1:N)IMS (IBM)
Network DBMSGraph কাঠামো — Many-to-Many সম্পর্কIDMS
Relational DBMS (RDBMS)Table/Relation ভিত্তিক — Row ও Column, SQL ব্যবহৃতMySQL, Oracle, PostgreSQL, MS SQL Server
Object-Oriented DBMSObject ও Class ভিত্তিকObjectDB, db4o
NoSQL DBMSNon-Relational — Schema-free, বড় ডেটা ও দ্রুত AccessMongoDB, Cassandra, Redis
💡 RDBMS-এর জনক

Dr. E.F. Codd (Edgar Frank Codd) — IBM-এ কর্মরত থাকাকালীন ১৯৭০ সালে "A Relational Model of Data for Large Shared Data Banks" পেপার প্রকাশ করেন। তিনি Relational Database-এর ধারণার জনক। Codd-এর 12টি নিয়ম (Codd's 12 Rules) RDBMS-এর মানদণ্ড নির্ধারণ করে।

📌 Relational Database — মৌলিক ধারণা

RDBMS টার্মফাইল সিস্টেমেবিবরণ
Table (Relation)Fileডেটার সারি ও কলামের সমষ্টি — RDBMS-এর মূল কাঠামো
Row (Tuple/Record)Recordটেবিলের একটি সারি = একটি সম্পূর্ণ ডেটা এন্ট্রি
Column (Attribute/Field)Fieldটেবিলের একটি কলাম = ডেটার একটি বৈশিষ্ট্য (যেমন Name, Age)
Domainএকটি Attribute-তে যে ধরনের মান থাকতে পারে (যেমন Age → 0-150)
Schemaডেটাবেসের সম্পূর্ণ কাঠামো/নকশা (Table, Column, Data Type, Relation)
Queryডেটাবেসে প্রশ্ন / অনুসন্ধান — SQL দিয়ে করা হয়

📌 ডেটাবেস Key — সম্পূর্ণ তালিকা

Keyবিবরণবিশেষত্ব
Primary Keyপ্রতিটি Record-এর অনন্য পরিচয়Unique + NOT NULL — একটি Table-এ একটিই
Foreign Keyঅন্য Table-এর Primary Key — দুটি Table-এর মধ্যে সম্পর্ক তৈরি করেNULL হতে পারে, Duplicate হতে পারে
Candidate KeyPrimary Key হওয়ার যোগ্য সব KeyUnique + NOT NULL — একাধিক হতে পারে
Composite Keyদুই বা ততোধিক Column মিলে একটি Unique Keyআলাদাভাবে Unique নয়, একসাথে Unique
Super KeyUnique শনাক্তের জন্য ব্যবহৃত Attribute-এর সমষ্টিঅপ্রয়োজনীয় Attribute থাকতে পারে
Alternate KeyPrimary Key ছাড়া বাকি Candidate Keyব্যাকআপ পরিচয়
🧠 Primary Key vs Foreign Key — উপমা

Primary Key = আপনার NID নম্বর — আপনার Table-এ আপনাকে চিনতে (Unique, NOT NULL)
Foreign Key = আপনার NID অন্য Table-এ (যেমন ব্যাংক একাউন্টে) — সম্পর্ক তৈরি করে
🔑 Primary Key = অনন্য পরিচয়, Foreign Key = টেবিলগুলোকে জুড়ে দেয়

Entity Relationship (ER) Diagram

প্রতীকআকৃতিকাজ
Entityআয়তক্ষেত্র ▭বাস্তব জগতের বস্তু (Student, Employee)
Attributeডিম্বাকার ⬭Entity-র বৈশিষ্ট্য (Name, Age, Roll)
Relationshipরম্বস ◇Entity-র মধ্যে সম্পর্ক (Enrolls, Works_for)
Primary KeyUnderlined Attributeঅনন্য পরিচয় চিহ্নিত

Relationship-এর ধরন (Cardinality)

ধরনবিবরণউদাহরণ
1:1 (One-to-One)একটির সাথে একটিএকজন ব্যক্তি → একটি Passport
1:N (One-to-Many)একটির সাথে অনেকএকজন শিক্ষক → অনেক ছাত্র
M:N (Many-to-Many)অনেকের সাথে অনেকছাত্ররা → অনেক কোর্সে, কোর্সে → অনেক ছাত্র

📌 SQL (Structured Query Language) — বিস্তারিত

SQL হলো Relational Database পরিচালনার Standard ভাষা। এটি 4GL (4th Generation Language) — IBM-এর Donald Chamberlin ও Raymond Boyce ১৯৭৪ সালে SEQUEL হিসেবে তৈরি করেন, পরে SQL নামকরণ।

SQL-এর ধরন (Category)

ধরনপূর্ণরূপকাজকমান্ড
DDLData Definition Languageডেটাবেস ও টেবিলের কাঠামো তৈরি/পরিবর্তন/মুছে ফেলাCREATE, ALTER, DROP, TRUNCATE
DMLData Manipulation Languageডেটা যোগ/পরিবর্তন/মুছে ফেলাINSERT, UPDATE, DELETE
DQLData Query Languageডেটা দেখা/পড়াSELECT
DCLData Control Languageডেটাবেসে Permission/অনুমতি দেওয়া/কেড়ে নেওয়াGRANT, REVOKE
TCLTransaction Control LanguageTransaction ম্যানেজমেন্টCOMMIT, ROLLBACK, SAVEPOINT

প্রধান SQL কমান্ড — উদাহরণসহ

কমান্ডধরনকাজউদাহরণ
CREATE TABLEDDLনতুন টেবিল তৈরিCREATE TABLE students (id INT PRIMARY KEY, name VARCHAR(50), age INT);
ALTER TABLEDDLটেবিল পরিবর্তন (Column যোগ/মুছে ফেলা)ALTER TABLE students ADD email VARCHAR(100);
DROP TABLEDDLটেবিল সম্পূর্ণ মুছে ফেলাDROP TABLE students;
INSERT INTODMLনতুন ডেটা যোগINSERT INTO students VALUES (1, 'Rahim', 22);
SELECTDQLডেটা দেখা/পড়াSELECT * FROM students WHERE age > 18;
UPDATEDMLডেটা পরিবর্তনUPDATE students SET name='Karim' WHERE id=1;
DELETEDMLনির্দিষ্ট ডেটা মুছে ফেলাDELETE FROM students WHERE id=5;
ORDER BYClauseডেটা সাজানোSELECT * FROM students ORDER BY name ASC;
GROUP BYClauseগ্রুপ করে Aggregate Function ব্যবহারSELECT age, COUNT(*) FROM students GROUP BY age;
JOINClauseএকাধিক টেবিল সংযুক্ত করে দেখাSELECT * FROM orders INNER JOIN customers ON orders.cid = customers.id;
🧠 SQL-এর মূল কাজ — CRUD

Create = INSERT (তৈরি/যোগ)
Read = SELECT (পড়া/দেখা)
Update = UPDATE (পরিবর্তন)
Delete = DELETE (মুছে ফেলা)
🔑 SELECT * FROM table = টেবিলের সব ডেটা দেখায় (* = সব Column)

SQL Aggregate Functions (পরীক্ষায় আসে)

Functionকাজউদাহরণ
COUNT()মোট সংখ্যা গণনাSELECT COUNT(*) FROM students;
SUM()যোগফলSELECT SUM(marks) FROM results;
AVG()গড়SELECT AVG(age) FROM students;
MAX()সর্বোচ্চ মানSELECT MAX(salary) FROM employees;
MIN()সর্বনিম্ন মানSELECT MIN(age) FROM students;

SQL JOIN — একাধিক টেবিল সংযুক্ত

JOIN ধরনবিবরণ
INNER JOINদুই টেবিলে মিল আছে এমন Row দেখায় (সবচেয়ে বেশি ব্যবহৃত)
LEFT JOINবাম টেবিলের সব Row + ডান টেবিলে মিল থাকলে সেই ডেটা
RIGHT JOINডান টেবিলের সব Row + বাম টেবিলে মিল থাকলে সেই ডেটা
FULL OUTER JOINউভয় টেবিলের সব Row — মিল না থাকলে NULL
CROSS JOINপ্রতিটি Row-র সাথে প্রতিটি Row-র সংযুক্তি (Cartesian Product)

📌 Normalization ও ACID Properties

Normalization (স্বল্প পরিচিতি)

ডেটাবেসে Data Redundancy (অপ্রয়োজনীয় পুনরাবৃত্তি) কমানোData Integrity রক্ষার জন্য টেবিলকে ছোট ছোট টেবিলে ভাগ করার প্রক্রিয়াকে Normalization বলে।

Normal Formশর্ত
1NFপ্রতিটি Cell-এ একটিই মান (Atomic Value) — কোনো সেটে একাধিক মান নয়
2NF1NF + Partial Dependency নেই (সব Non-key Attribute পুরো Primary Key-র উপর নির্ভর)
3NF2NF + Transitive Dependency নেই (Non-key Attribute অন্য Non-key-র উপর নির্ভর না)
BCNF3NF-এর শক্তিশালী রূপ — প্রতিটি Determinant Candidate Key হতে হবে

ACID Properties (Transaction-এর বৈশিষ্ট্য)

Propertyপূর্ণরূপবিবরণ
AAtomicityTransaction হয় সম্পূর্ণ হবে, নয় একদম হবে না ("All or Nothing")
CConsistencyTransaction-এর আগে ও পরে ডেটাবেস সামঞ্জস্যপূর্ণ থাকবে
IIsolationএকসাথে চলা Transaction পরস্পরকে প্রভাবিত করবে না
DDurabilityএকবার Commit হলে ডেটা স্থায়ী — System Crash-এও থাকবে

📌 Quick Revision — পরীক্ষায় বারবার আসা তথ্য

💡 এক নজরে — সবচেয়ে গুরুত্বপূর্ণ তথ্য
  • C-এর জনক: Dennis Ritchie (১৯৭২) | C++: Bjarne Stroustrup (১৯৮৩)
  • Java: James Gosling — "Write Once, Run Anywhere" (JVM)
  • Python: Guido van Rossum — AI/ML ভাষা | JavaScript: Brendan Eich — ওয়েব
  • প্রথম HLL: FORTRAN (১৯৫৭) | প্রথম প্রোগ্রামার: Ada Lovelace
  • 1GL: Machine (০,১) | 2GL: Assembly | 3GL: HLL | 4GL: SQL | 5GL: AI (Prolog)
  • Compiler: পুরো কোড একবারে (C, C++) | Interpreter: এক লাইন করে (Python, JS)
  • OOP 4 Pillars: Abstraction, Encapsulation, Inheritance, Polymorphism
  • Stack: LIFO | Queue: FIFO
  • RDBMS-এর জনক: E.F. Codd (১৯৭০)
  • Primary Key: Unique + NOT NULL | Foreign Key: দুই টেবিলের সম্পর্ক
  • SQL = 4GL — DDL: CREATE/ALTER/DROP | DML: INSERT/UPDATE/DELETE | DQL: SELECT
  • CRUD: Create(INSERT), Read(SELECT), Update(UPDATE), Delete(DELETE)
  • ACID: Atomicity, Consistency, Isolation, Durability
  • HTML = Markup Language (প্রোগ্রামিং নয়) | SQL = Query Language
✅ Quick Check
অধ্যায়টি ঠিকমতো বুঝেছেন কিনা যাচাই করুন — ১০টি প্রশ্ন
১. C ভাষার উদ্ভাবক কে?
💡 Dennis Ritchie ১৯৭২ সালে Bell Labs-এ C ভাষা তৈরি করেন। James Gosling = Java, Guido = Python, Bjarne = C++।
২. প্রথম High-Level Programming Language কোনটি?
💡 FORTRAN (Formula Translation) — ১৯৫৭ সালে John Backus (IBM) তৈরি করেন। এটি প্রথম High-Level Programming Language।
৩. Interpreter কীভাবে কাজ করে?
💡 Interpreter এক লাইন করে পড়ে, অনুবাদ করে ও সম্পাদন করে (Python, JS)। Compiler পুরো কোড একবারে অনুবাদ করে (C, C++)। Assembler = Assembly→Machine।
৪. SQL-এ ডেটা দেখার কমান্ড কোনটি?
💡 SELECT = ডেটা দেখা/পড়া (Read — CRUD-এর R)। INSERT = Create, UPDATE = Update, DELETE = Delete।
৫. Primary Key বলতে কী বোঝায়?
💡 Primary Key = প্রতিটি রেকর্ডের অনন্য (Unique) পরিচয়, NULL হতে পারে না। Foreign Key = দুটি টেবিলের সম্পর্ক।
৬. OOP-এর ৪টি স্তম্ভের মধ্যে কোনটি "ডেটা লুকানো"র সাথে সম্পর্কিত?
💡 Encapsulation = ডেটা ও Method একসাথে ক্যাপসুলে আবদ্ধ করা (Data Hiding)। Abstraction = জটিলতা লুকানো। Inheritance = উত্তরাধিকার।
৭. Stack ডেটা স্ট্রাকচারের নীতি কোনটি?
💡 Stack = LIFO (Last In, First Out) — শেষে ঢুকে প্রথমে বের হয় (বইয়ের স্তূপ)। Queue = FIFO (First In, First Out)।
৮. Relational Database-এর জনক কে?
💡 Dr. E.F. Codd (IBM) ১৯৭০ সালে Relational Database-এর তত্ত্ব দেন। Dennis Ritchie = C ভাষা, Tim Berners-Lee = WWW।
৯. CREATE TABLE কমান্ড SQL-এর কোন ধরনে পড়ে?
💡 DDL (Data Definition Language) = কাঠামো সংক্রান্ত — CREATE, ALTER, DROP, TRUNCATE। DML = INSERT/UPDATE/DELETE। DQL = SELECT।
১০. Java-র স্লোগান কী?
💡 Java = "Write Once, Run Anywhere" (WORA) — JVM (Java Virtual Machine) আছে এমন যেকোনো Platform-এ চলে। James Gosling (Sun Microsystems) তৈরি করেন।
← Previous: সাইবার নিরাপত্তা Next: আধুনিক প্রযুক্তি →