ডেটা মডেলিং
এনটিটি, নরমালাইজেশন, স্কিমা বিবর্তন
0/11 অধ্যায় · 0 XP অর্জিত
- 00 Data Modeling — রোডম্যাপ দশটি অধ্যায় যা আপনাকে 'primary key জিনিসটা কী' থেকে load-এর নিচে ইচ্ছাকৃত schema design পর্যন্ত নিয়ে যাবে — keys, normalization, denormalization, constraints, multi-tenancy, JSONB, আর zero-downtime evolution। প্রাথমিক 5 মিনিট
- 01 Data modeling জিনিসটা কী Schema design হলো আপনার ship করা সবচেয়ে দামি জিনিস। প্রথম দিন যে column-গুলো বাছেন সেগুলো প্রতিটা framework, প্রতিটা refactor, প্রতিটা rewrite-কে ছাড়িয়ে টিকে থাকে। ভালো modeling মূলত CREATE TABLE টাইপ করার আগে ভাবা। প্রাথমিক 10 মিনিট
- 02 Entities, attributes, relationships SQL-এর আগে, ORM-এর আগে, box আর line আঁকুন। ER-চিন্তা হলো বিশ মিনিট যা এক বছরের refactoring বাঁচায়। প্রাথমিক 11 মিনিট
- 03 Keys আপনার স্কিমার সবচেয়ে দামি সিদ্ধান্ত হলো primary key। ভুল বেছে নিলে বছরের পর বছর সেটা এড়িয়ে কাজ করতে হবে। ঠিকঠাক বেছে নিলে ভুলেই যাবেন যে এটা আছে। প্রাথমিক 12 মিনিট
- 04 Normalization 1NF, 2NF, 3NF — তিনটা নিয়ম যা একই ডেটাকে দুবার রেকর্ড হওয়া থেকে ঠেকায়। এদের উপেক্ষা করুন, আর ডেটা সিঙ্ক থেকে সরে যাওয়ার সাথে সাথে আপনার স্কিমা ভেতর থেকে পচতে থাকবে। প্রাথমিক 12 মিনিট
- 05 Denormalization কখনো কখনো একই fact ইচ্ছাকৃতভাবে দুই জায়গায় থাকে। ঠিকভাবে করলে hot query উড়তে থাকে। বাজেভাবে করলে ঠিক সেই drift তৈরি হয় যা ঠেকানোর জন্য normalization বানানো হয়েছিল। মধ্যবর্তী 11 মিনিট
- 06 Constraints Application bug-এর বিরুদ্ধে schema হলো আপনার শেষ প্রতিরক্ষা। Constraint সেই নিয়মগুলো encode করে যা সবসময় সত্য থাকা উচিত — আপনার app মনে রাখুক বা না রাখুক, Postgres সেগুলো enforce করে। মধ্যবর্তী 12 মিনিট
- 07 টাইম আর সফট ডিলিট এমন টাইমস্ট্যাম্প যা টাইম জোন পেরিয়েও টিকে থাকে, সফট ডিলিট যা প্রতিটা query-কে বিষিয়ে তোলে না, আর history টেবিল যা 'গত মঙ্গলবার এটা দেখতে কেমন ছিল?' এর উত্তর দেয় মধ্যবর্তী 12 মিনিট
- 08 Multi-tenancy একটা অ্যাপ থেকে অনেক কাস্টমারকে সার্ভ করার তিনটা আর্কিটেকচার: tenant কলামসহ single database, tenant-প্রতি schema, নাকি tenant-প্রতি database। প্রতিটার cost curve আলাদা। মধ্যবর্তী 12 মিনিট
- 09 JSONB আর schemaless ফাঁদ JSONB হলো Postgres-এর অন্যতম সেরা ফিচার। ঠিকভাবে ব্যবহার করলে এটাই যেভাবে আপনি নিজের schema-র সাথে লড়াই বন্ধ করেন। ভুলভাবে ব্যবহার করলে এটাই যেভাবে relational database-এর ভেতরে আপনি একটা schemaless জঞ্জাল বানিয়ে ফেলেন। উন্নত 12 মিনিট
- 10 Schema evolution Live data-র বিরুদ্ধে প্রতিটা schema পরিবর্তনই একটা deploy। expand/contract pattern-ই যেভাবে আপনি এমন table বদলান যেখানে দশ লাখ row আর হাজারখানেক concurrent writer আছে — কোনো downtime ছাড়াই। উন্নত 13 মিনিট