{"id":28323808,"url":"https://github.com/mahimdev/b5-assignment-2-postgresql","last_synced_at":"2026-02-09T03:03:43.220Z","repository":{"id":295393961,"uuid":"989757773","full_name":"mahimDev/b5-assignment-2-postgreSQL","owner":"mahimDev","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-25T09:52:43.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-08T12:24:20.619Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mahimDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-24T19:06:15.000Z","updated_at":"2025-05-25T09:52:47.000Z","dependencies_parsed_at":"2025-05-29T12:34:52.619Z","dependency_job_id":null,"html_url":"https://github.com/mahimDev/b5-assignment-2-postgreSQL","commit_stats":null,"previous_names":["mahimdev/b5-assignment-2-postgresql"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mahimDev/b5-assignment-2-postgreSQL","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahimDev%2Fb5-assignment-2-postgreSQL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahimDev%2Fb5-assignment-2-postgreSQL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahimDev%2Fb5-assignment-2-postgreSQL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahimDev%2Fb5-assignment-2-postgreSQL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mahimDev","download_url":"https://codeload.github.com/mahimDev/b5-assignment-2-postgreSQL/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahimDev%2Fb5-assignment-2-postgreSQL/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29255388,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T01:52:29.835Z","status":"online","status_checked_at":"2026-02-09T02:00:09.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-25T16:15:02.635Z","updated_at":"2026-02-09T03:03:43.205Z","avatar_url":"https://github.com/mahimDev.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"## 📘 Bonus Questions (বাংলা)\n\n---\n\n### ১. **PostgreSQL কী?**\n\nPostgreSQL (উচ্চারণ: পোস্টগ্রে-এসকিউএল) হলো একটা জনপ্রিয় ডেটাবেজ ম্যানেজমেন্ট সফটওয়্যার। এটা ব্যবহার করে আমরা অনেক রকম তথ্য এক জায়গায় সংরক্ষণ করতে পারি, যেমন – স্কুলের ছাত্রদের নাম, রেজাল্ট, বা আমাদের অ্যাপের ইউজারদের তথ্য।\n\nএটা **ওপেন সোর্স**, মানে আমরা ফ্রি-তে ব্যবহার করতে পারি। ডেভেলপাররা এটি অনেক পছন্দ করে কারণ এটি নিরাপদ, ফাস্ট এবং বড় প্রজেক্টেও কাজ করে।\n\nআমরা যেমন একটি বন্যপ্রাণী সংরক্ষণ প্রকল্পে প্রাণীর নাম, অবস্থান, দেখা গেছে কিনা এসব তথ্য রাখতে চাই – PostgreSQL দিয়ে খুব সহজে এইসব তথ্য টেবিল আকারে রাখতে পারি এবং পরে সেটা খুঁজেও পেতে পারি।\n\n---\n\n### ২. **PostgreSQL-এ ডেটাবেজ স্কিমা (Schema) কেন দরকার?**\n\nধরো একটা লাইব্রেরিতে বই থাকে। গল্পের বই একদিকে, ধর্মীয় বই আরেকদিকে, ইতিহাসের বই আরেক পাশে। এইভাবে ভাগ করে রাখলে বই খুঁজে পাওয়া সহজ হয়।\n\nঠিক সেভাবে, **স্কিমা** হচ্ছে ডেটাবেজের ভেতরে ভাগ করে রাখা অংশ। একই ডেটাবেজে যদি অনেক টেবিল থাকে, তাহলে স্কিমা ব্যবহার করে আমরা আলাদা আলাদা ভাগে রাখতে পারি।\n\nযেমন:\n\n- `public` স্কিমা সাধারণত ডিফল্ট।\n- চাইলে আলাদা করে `animal_data`, `ranger_data` এমন স্কিমাও বানানো যায়।\n\nএর সুবিধা হচ্ছে: একই নামে দুইটা টেবিল আলাদা স্কিমাতে রাখতে পারি, আর বড় প্রজেক্টে তথ্য গুছিয়ে রাখা সহজ হয়।\n\n---\n\n### ৩. **Primary Key আর Foreign Key কী জিনিস?**\n\nএই দুইটা জিনিস ডেটাবেজের ভেতরে টেবিলগুলোকে সম্পর্কিত রাখে।\n\n- **Primary Key** মানে এমন একটা ইউনিক আইডি যেটা একটা রেকর্ডকে আলাদা করে চিনায়। যেমন `ranger_id` – এটা প্রতিটা রেঞ্জারের আলাদা নম্বর।\n\n  উদাহরণ:\n\n  | ranger_id | name        |\n  | --------- | ----------- |\n  | 1         | Alice Green |\n  | 2         | Bob White   |\n\n- **Foreign Key** মানে অন্য টেবিলের প্রাইমারি কি এর সাথে লিংক করে রাখা। যেমন `sightings` টেবিলে `ranger_id` আছে, কিন্তু সেটা মূলত `rangers` টেবিলের সাথে যুক্ত। এইভাবে আমরা বুঝতে পারি কোন রেঞ্জার কোন প্রাণী দেখেছে।\n\n  এটা না থাকলে টেবিলগুলোর মধ্যে কোনো সংযোগ থাকত না।\n\n---\n\n### ৪. **VARCHAR আর CHAR এর মধ্যে পার্থক্য কী?**\n\nদুটোই টেক্সট রাখার জন্য, তবে ব্যবহারে পার্থক্য আছে।\n\n- `CHAR(n)` মানে হলো তুমি ঠিক `n` সংখ্যক ক্যারেক্টার রাখবে, কম হলেও স্পেস দিয়ে পূরণ করবে।\n  উদাহরণ: `CHAR(10)` এ যদি “Tiger” রাখি, বাকি জায়গা ফাঁকা স্পেস দিয়ে পূরণ করবে।\n\n- `VARCHAR(n)` মানে হলো সর্বোচ্চ `n` ক্যারেক্টার পর্যন্ত যাবে, কিন্তু যতটুকু দরকার ততটুকুই নিবে।\n  উদাহরণ: `VARCHAR(10)` এ “Tiger” রাখলে শুধু 5 ক্যারেক্টারই নিবে।\n\n👉 সাধারণত `VARCHAR` বেশি ব্যবহার হয় কারণ এটা ফ্লেক্সিবল এবং জায়গা বাঁচায়।\n\n---\n\n### ৫. **SELECT স্টেটমেন্টে WHERE ক্লজের কাজ কী?**\n\n`SELECT` মানে আমরা ডেটাবেজ থেকে কিছু ডেটা দেখতে চাই। কিন্তু সব না দেখে শুধু দরকারি ডেটা দেখতে চাই, তখন `WHERE` ব্যবহার করি।\n\n📌 উদাহরণ:\n\n```sql\nSELECT * FROM species WHERE conservation_status = 'Endangered';\n```\n\nএখানে আমরা শুধু সেইসব প্রাণী দেখতে পাচ্ছি যেগুলো “Endangered” স্ট্যাটাসে আছে। এর মানে, `WHERE` দিয়ে আমরা শর্ত দিয়ে তথ্য খুঁজে বের করি।\n\nআরও একটা উদাহরণ:\n\n```sql\nSELECT * FROM sightings WHERE location LIKE '%Pass%';\n```\n\nএইটা দেবে শুধু সেই জায়গাগুলোর রেকর্ড যেখানে জায়গার নামের মধ্যে “Pass” আছে, যেমন “Snowfall Pass”।\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmahimdev%2Fb5-assignment-2-postgresql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmahimdev%2Fb5-assignment-2-postgresql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmahimdev%2Fb5-assignment-2-postgresql/lists"}