آموزش مبانی مهندسی پایگاه داده

Fundamentals of Database Engineering

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: ACID، Indexing، Partitioning، Sharding، Concurrency Control، Replication، موتورهای DB، بهترین روش ها و موارد دیگر را بیاموزید! بیاموزید و درک کنید نمایه سازی ویژگی های ACID پایگاه داده پارتیشن بندی پایگاه داده همانند سازی پایگاه داده تکثیر پایگاه داده نشانگرها کنترل همزمانی (خوشبینانه، بدبینانه) B-Trees در سیستم های پایگاه داده تولید طرح های سیستم پایگاه داده تفاوت بین سیستم مدیریت پایگاه داده، موتور پایگاه داده و پایگاه داده موتورهای جاسازی شده مانند پایگاه داده MyDISe , RocksDB, LevelDB و مزایای بیشتر استفاده از یک موتور پایگاه داده نسبت به موتورهای دیگر سوئیچینگ پایگاه داده با امنیت پایگاه داده MySQL رمزگذاری همورفیک پیش نیازها: قبلاً با پایگاه های داده کار کرده ام اما مایل به درک عمیق دانش پایه SQL هستید.

مهندسی پایگاه داده بخش بسیار جالبی در مهندسی نرم افزار است. اگر علاقه مند به یادگیری در مورد مهندسی پایگاه داده هستید، به جای درستی آمده اید. من این دوره را با دقت مدیریت کرده ام تا در مورد مفاهیم اساسی مهندسی پایگاه داده بحث کنم.


این دوره زبان های SQL یا برنامه نویسی را به شما آموزش نمی دهد، اما مجموعه مهارت ها و الگوهایی را به شما آموزش می دهد که می توانید در مهندسی پایگاه داده استفاده کنید. تعدادی از چیزهایی که یاد خواهید گرفت عبارتند از Indexing، Partitioning، Sharding، Replication، نمایه سازی عمیق b-trees، کنترل همزمان، موتورهای پایگاه داده و امنیت، و موارد دیگر.


من معتقدم که یادگیری اصول مهندسی پایگاه داده شما را به ابزارهای لازم برای مقابله با مشکلات دشوار و چالش برانگیز مجهز می کند. من همیشه مهندسی را با ریاضی مقایسه می‌کنم، شما هرگز فرمول‌ها و معادلات خاصی را حفظ نمی‌کنید، شما اثبات‌های اولیه را می‌دانید و هر معادله‌ای را که به شما می‌زند استخراج و حل می‌کنید. مهندسی پایگاه داده مشابه است، نمی توان گفت MongoDB بهتر از MySQL یا Postgres بهتر از Oracle است. در عوض، موارد استفاده خود را یاد می گیرید و با درک اینکه هر پلتفرم پایگاه داده چگونه مبادلات خود را انجام می دهد، می توانید تصمیمات بهینه بگیرید.


یک چیز دیگری که در این دوره یاد خواهید گرفت پایین ترین رابط پایگاه داده است که با سیستم عامل که موتور پایگاه داده است صحبت می کند. موتورهای پایگاه داده یا موتورهای ذخیره سازی یا حتی گاهی اوقات پایگاه داده های جاسازی شده نیز نامیده می شود، یک کتابخانه نرم افزاری است که یک نرم افزار مدیریت پایگاه داده برای ذخیره داده ها روی دیسک و انجام CRUD (ایجاد حذف به روز رسانی) استفاده می کند. Embedded به معنای جابجایی همه چیز در یک نرم افزار بدون سرویس گیرنده-سرور شبکه است. در این دوره ویدیویی، من می خواهم چند موتور پایگاه داده محبوب را مرور کنم، تفاوت های بین آنها را توضیح دهم و در نهایت، می خواهم یک پایگاه داده را چرخانده و موتور آن را تغییر دهم و ویژگی های مختلف هر موتور را نشان دهم.


از دوره لذت ببرید.


سرفصل ها و درس ها

به روز رسانی دوره Course Updates

  • به دوره خوش آمدید Welcome to the Course

  • نکته درس 1 Course Note 1

  • تبصره ۲ Course Note 2

  • نکته درس 3 Course Note 3

  • نکته ای در مورد داکر Note about Docker

به روز رسانی دوره Course Updates

  • به دوره خوش آمدید Welcome to the Course

  • نکته درس 1 Course Note 1

  • تبصره ۲ Course Note 2

  • نکته درس 3 Course Note 3

  • نکته ای در مورد داکر Note about Docker

اسید ACID

  • مقدمه ای بر ACID Introduction to ACID

  • تراکنش چیست؟ What is a Transaction?

  • اتمی بودن Atomicity

  • انزوا Isolation

  • ثبات Consistency

  • ماندگاری Durability

  • اسید با مثال های عملی ACID by Practical Examples

  • فانتوم می خواند Phantom Reads

  • Serializable vs Repeatable Read Serializable vs Repeatable Read

  • سازگاری نهایی Eventual Consistency

  • آزمون اسید ACID Quiz

اسید ACID

  • مقدمه ای بر ACID Introduction to ACID

  • تراکنش چیست؟ What is a Transaction?

  • اتمی بودن Atomicity

  • انزوا Isolation

  • ثبات Consistency

  • ماندگاری Durability

  • اسید با مثال های عملی ACID by Practical Examples

  • فانتوم می خواند Phantom Reads

  • Serializable vs Repeatable Read Serializable vs Repeatable Read

  • سازگاری نهایی Eventual Consistency

  • آزمون اسید ACID Quiz

آشنایی با اطلاعات داخلی پایگاه داده Understanding Database Internals

  • نحوه ذخیره جداول و نمایه ها روی دیسک (قبل از ادامه باید تماشا کرد) How tables and indexes are stored on disk (MUST WATCH before continue)

  • پایگاه‌های داده مبتنی بر ردیف در مقابل ستون‌محور Row-Based vs Column-Based Databases

  • کلید اصلی در مقابل کلید ثانویه - آنچه احتمالاً نمی دانستید Primary Key vs Secondary Key - What you probably didn't know

آشنایی با اطلاعات داخلی پایگاه داده Understanding Database Internals

  • نحوه ذخیره جداول و نمایه ها روی دیسک (قبل از ادامه باید تماشا کرد) How tables and indexes are stored on disk (MUST WATCH before continue)

  • پایگاه‌های داده مبتنی بر ردیف در مقابل ستون‌محور Row-Based vs Column-Based Databases

  • کلید اصلی در مقابل کلید ثانویه - آنچه احتمالاً نمی دانستید Primary Key vs Secondary Key - What you probably didn't know

نمایه سازی پایگاه داده Database Indexing

  • ایجاد جدول Postgres با یک میلیون ردیف (از ابتدا) Create Postgres Table with a million Rows (from scratch)

  • شروع کار با نمایه سازی Getting Started with Indexing

  • درک SQL Query Planner و Optimizer با Explain Understanding The SQL Query Planner and Optimizer with Explain

  • اسکن نمایه بیت مپ در مقابل اسکن فهرست در مقابل اسکن جدول Bitmap Index Scan vs Index Scan vs Table Scan

  • نمایه سازی پایگاه داده با ستون های کلیدی در مقابل غیرکلیدی Key vs Non-Key Column Database Indexing

  • Index Scan در مقابل Index Only Scan Index Scan vs Index Only Scan

  • ترکیب شاخص های پایگاه داده برای عملکرد بهتر Combining Database Indexes for Better Performance

  • نحوه تصمیم گیری بهینه سازهای پایگاه داده برای استفاده از شاخص ها How Database Optimizers Decide to Use Indexes

  • ایجاد فهرست همزمان - از مسدود کردن نوشته های پایگاه داده تولید خودداری کنید Create Index Concurrently - Avoid Blocking Production Database Writes

  • فیلترهای بلوم Bloom Filters

  • کار با جدول میلیارد ردیفی Working with Billion-Row Table

  • مقاله - هزینه معاملات طولانی مدت Article - The Cost of Long running Transactions

  • مقاله - طراحی فهرست خوشه ای سرور Microsoft SQL Article - Microsoft SQL Server Clustered Index Design

  • آزمون نمایه سازی Indexing Quiz

نمایه سازی پایگاه داده Database Indexing

  • ایجاد جدول Postgres با یک میلیون ردیف (از ابتدا) Create Postgres Table with a million Rows (from scratch)

  • شروع کار با نمایه سازی Getting Started with Indexing

  • درک SQL Query Planner و Optimizer با Explain Understanding The SQL Query Planner and Optimizer with Explain

  • اسکن نمایه بیت مپ در مقابل اسکن فهرست در مقابل اسکن جدول Bitmap Index Scan vs Index Scan vs Table Scan

  • نمایه سازی پایگاه داده با ستون های کلیدی در مقابل غیرکلیدی Key vs Non-Key Column Database Indexing

  • Index Scan در مقابل Index Only Scan Index Scan vs Index Only Scan

  • ترکیب شاخص های پایگاه داده برای عملکرد بهتر Combining Database Indexes for Better Performance

  • نحوه تصمیم گیری بهینه سازهای پایگاه داده برای استفاده از شاخص ها How Database Optimizers Decide to Use Indexes

  • ایجاد فهرست همزمان - از مسدود کردن نوشته های پایگاه داده تولید خودداری کنید Create Index Concurrently - Avoid Blocking Production Database Writes

  • فیلترهای بلوم Bloom Filters

  • کار با جدول میلیارد ردیفی Working with Billion-Row Table

  • مقاله - هزینه معاملات طولانی مدت Article - The Cost of Long running Transactions

  • مقاله - طراحی فهرست خوشه ای سرور Microsoft SQL Article - Microsoft SQL Server Clustered Index Design

  • آزمون نمایه سازی Indexing Quiz

B-Tree در مقابل B+Tree در سیستم های پایگاه داده تولید B-Tree vs B+Tree in Production Database Systems

  • مقدمه و دستور کار بخش B-Tree B-Tree Section's Introduction & Agenda

  • اسکن کامل جدول Full Table Scans

  • B-Tree اصلی Original B-Tree

  • چگونه B-Tree اصلی به عملکرد کمک می کند How the Original B-Tree Helps Performance

  • محدودیت های اصلی B-Tree Original B-Tree Limitations

  • B+Tree B+Tree

  • ملاحظات B+Tree DBMS B+Tree DBMS Considerations

  • هزینه ذخیره سازی B+Tree در MySQL در مقابل Postgres B+Tree Storage Cost in MySQL vs Postgres

  • خلاصه بخش B-Tree B-Tree Section's Summary

B-Tree در مقابل B+Tree در سیستم های پایگاه داده تولید B-Tree vs B+Tree in Production Database Systems

  • مقدمه و دستور کار بخش B-Tree B-Tree Section's Introduction & Agenda

  • اسکن کامل جدول Full Table Scans

  • B-Tree اصلی Original B-Tree

  • چگونه B-Tree اصلی به عملکرد کمک می کند How the Original B-Tree Helps Performance

  • محدودیت های اصلی B-Tree Original B-Tree Limitations

  • B+Tree B+Tree

  • ملاحظات B+Tree DBMS B+Tree DBMS Considerations

  • هزینه ذخیره سازی B+Tree در MySQL در مقابل Postgres B+Tree Storage Cost in MySQL vs Postgres

  • خلاصه بخش B-Tree B-Tree Section's Summary

پارتیشن بندی پایگاه داده Database Partitioning

  • مقدمه ای بر پارتیشن بندی پایگاه داده Introduction to Database Partitioning

  • پارتیشن بندی چیست؟ What is Partitioning?

  • پارتیشن بندی عمودی در مقابل افقی Vertical vs Horizontal Partitioning

  • انواع پارتیشن بندی Partitioning Types

  • تفاوت بین پارتیشن بندی و شاردینگ The Difference Between Partitioning and Sharding

  • آماده سازی: Postgres، پایگاه داده، جدول، فهرست ها Preparing: Postgres, Database, Table, Indexes

  • چند پرس و جو را روی جدول اجرا کنید Execute Multiple Queries on the Table

  • جداول پارتیشن بندی شده را ایجاد و پیوست کنید Create and Attach Partitioned Tables

  • پارتیشن ها را پر کنید و نمایه ایجاد کنید Populate the Partitions and Create Indexes

  • پروژه کلاس - پرس و جو و بررسی اندازه پارتیشن ها Class Project - Querying and Checking the Size of Partitions

  • مزایای پارتیشن بندی The Advantages of Partitioning

  • معایب پارتیشن بندی The Disadvantages of Partitioning

  • خلاصه بخش - پارتیشن بندی Section Summary - Partitioning

  • نحوه خودکارسازی پارتیشن بندی در Postgres How to Automate Partitioning in Postgres

پارتیشن بندی پایگاه داده Database Partitioning

  • مقدمه ای بر پارتیشن بندی پایگاه داده Introduction to Database Partitioning

  • پارتیشن بندی چیست؟ What is Partitioning?

  • پارتیشن بندی عمودی در مقابل افقی Vertical vs Horizontal Partitioning

  • انواع پارتیشن بندی Partitioning Types

  • تفاوت بین پارتیشن بندی و شاردینگ The Difference Between Partitioning and Sharding

  • آماده سازی: Postgres، پایگاه داده، جدول، فهرست ها Preparing: Postgres, Database, Table, Indexes

  • چند پرس و جو را روی جدول اجرا کنید Execute Multiple Queries on the Table

  • جداول پارتیشن بندی شده را ایجاد و پیوست کنید Create and Attach Partitioned Tables

  • پارتیشن ها را پر کنید و نمایه ایجاد کنید Populate the Partitions and Create Indexes

  • پروژه کلاس - پرس و جو و بررسی اندازه پارتیشن ها Class Project - Querying and Checking the Size of Partitions

  • مزایای پارتیشن بندی The Advantages of Partitioning

  • معایب پارتیشن بندی The Disadvantages of Partitioning

  • خلاصه بخش - پارتیشن بندی Section Summary - Partitioning

  • نحوه خودکارسازی پارتیشن بندی در Postgres How to Automate Partitioning in Postgres

Sharding پایگاه داده Database Sharding

  • مقدمه ای بر Sharding پایگاه داده Introduction to Database Sharding

  • Sharding پایگاه داده چیست؟ What is Database Sharding?

  • هش کردن مداوم Consistent Hashing

  • پارتیشن بندی افقی در مقابل شاردینگ Horizontal partitioning vs Sharding

  • اشتراک گذاری با Postgres Sharding with Postgres

  • چرخش Docker Postgres Shards Spin up Docker Postgres Shards

  • نوشتن به شارد Writing to a Shard

  • خواندن از شارد Reading from a Shard

  • مزایای Sharding پایگاه داده Advantages of Database Sharding

  • معایب Sharding پایگاه داده Disadvantages of Database Sharding

  • خلاصه بخش Sharding پایگاه داده Database Sharding Section Summary

  • چه زمانی باید به Sharding پایگاه داده خود فکر کنید؟ When Should you consider Sharding your Database?

Sharding پایگاه داده Database Sharding

  • مقدمه ای بر Sharding پایگاه داده Introduction to Database Sharding

  • Sharding پایگاه داده چیست؟ What is Database Sharding?

  • هش کردن مداوم Consistent Hashing

  • پارتیشن بندی افقی در مقابل شاردینگ Horizontal partitioning vs Sharding

  • اشتراک گذاری با Postgres Sharding with Postgres

  • چرخش Docker Postgres Shards Spin up Docker Postgres Shards

  • نوشتن به شارد Writing to a Shard

  • خواندن از شارد Reading from a Shard

  • مزایای Sharding پایگاه داده Advantages of Database Sharding

  • معایب Sharding پایگاه داده Disadvantages of Database Sharding

  • خلاصه بخش Sharding پایگاه داده Database Sharding Section Summary

  • چه زمانی باید به Sharding پایگاه داده خود فکر کنید؟ When Should you consider Sharding your Database?

کنترل همزمانی Concurrency Control

  • قفل های اشتراکی در مقابل انحصاری Shared vs Exclusive Locks

  • قفل های مرده Dead Locks

  • قفل دو فاز Two-phase Locking

  • حل مشکل رزرو دوبل (مثال کد) Solving the Double Booking Problem (Code Example)

  • مسئله رزرو دوگانه قسمت 2 (راه حل جایگزین و توضیح) Double Booking Problem Part 2 ( Alternative Solution and explination)

  • صفحه بندی SQL با افست بسیار کند است SQL Pagination With Offset is Very Slow

  • ادغام اتصال پایگاه داده Database Connection Pooling

کنترل همزمانی Concurrency Control

  • قفل های اشتراکی در مقابل انحصاری Shared vs Exclusive Locks

  • قفل های مرده Dead Locks

  • قفل دو فاز Two-phase Locking

  • حل مشکل رزرو دوبل (مثال کد) Solving the Double Booking Problem (Code Example)

  • مسئله رزرو دوگانه قسمت 2 (راه حل جایگزین و توضیح) Double Booking Problem Part 2 ( Alternative Solution and explination)

  • صفحه بندی SQL با افست بسیار کند است SQL Pagination With Offset is Very Slow

  • ادغام اتصال پایگاه داده Database Connection Pooling

تکرار پایگاه داده Database Replication

  • مقدمه ای بر Replication پایگاه داده Introduction to Database Replication

  • Master/Standby Replication Master/Standby Replication

  • Multi-Master Replication Multi-master Replication

  • همانندسازی همزمان در مقابل ناهمزمان Synchronous vs Asynchronous Replication

  • نسخه ی نمایشی تکراری با Postgres 13 Replication Demo with Postgres 13

  • مزایا و معایب تکرار Pros and Cons of Replication

تکرار پایگاه داده Database Replication

  • مقدمه ای بر Replication پایگاه داده Introduction to Database Replication

  • Master/Standby Replication Master/Standby Replication

  • Multi-Master Replication Multi-master Replication

  • همانندسازی همزمان در مقابل ناهمزمان Synchronous vs Asynchronous Replication

  • نسخه ی نمایشی تکراری با Postgres 13 Replication Demo with Postgres 13

  • مزایا و معایب تکرار Pros and Cons of Replication

طراحی سیستم پایگاه داده Database System Design

  • طراحی پایگاه داده طراحی سیستم توییتر Twitter System Design Database Design

  • ساخت یک پایگاه داده سیستم URL کوتاه Building a Short URL System Database Backend

طراحی سیستم پایگاه داده Database System Design

  • طراحی پایگاه داده طراحی سیستم توییتر Twitter System Design Database Design

  • ساخت یک پایگاه داده سیستم URL کوتاه Building a Short URL System Database Backend

موتورهای پایگاه داده Database Engines

  • معرفی Introduction

  • موتور پایگاه داده چیست؟ What is a Database Engine?

  • MyISAM MyISAM

  • InnoDB InnoDB

  • XtraDB XtraDB

  • SQLite SQLite

  • آریا Aria

  • BerkeleyDB BerkeleyDB

  • LevelDB LevelDB

  • RocksDB RocksDB

  • موتورهای پایگاه داده محبوب Popular Database Engines

  • تعویض موتورهای پایگاه داده با mySQL Switching Database Engines with mySQL

موتورهای پایگاه داده Database Engines

  • معرفی Introduction

  • موتور پایگاه داده چیست؟ What is a Database Engine?

  • MyISAM MyISAM

  • InnoDB InnoDB

  • XtraDB XtraDB

  • SQLite SQLite

  • آریا Aria

  • BerkeleyDB BerkeleyDB

  • LevelDB LevelDB

  • RocksDB RocksDB

  • موتورهای پایگاه داده محبوب Popular Database Engines

  • تعویض موتورهای پایگاه داده با mySQL Switching Database Engines with mySQL

مکان نماهای پایگاه داده Database Cursors

  • مکان نماهای پایگاه داده چیست؟ What are Database Cursors?

  • سمت سرور در مقابل نشانگرهای پایگاه داده سمت مشتری Server Side vs Client Side Database Cursors

  • درج میلیون ردیف با پایتون در Postgres با استفاده از مکان نما سمت مشتری Inserting Million Rows with Python in Postgres using Client Side Cursor

  • پرس و جو با مکان نما سمت مشتری Querying with Client Side Cursor

  • پرس و جو با مکان نما سمت سرور Querying with Server Side Cursor

  • مزایا و معایب مکان نماهای سمت سرور در مقابل کلاینت Pros and Cons of Server vs Client Side Cursors

  • مقاله - انواع مکان نما سمت سرور در SQL Server Article - Server Side Cursor Types in SQL Server

مکان نماهای پایگاه داده Database Cursors

  • مکان نماهای پایگاه داده چیست؟ What are Database Cursors?

  • سمت سرور در مقابل نشانگرهای پایگاه داده سمت مشتری Server Side vs Client Side Database Cursors

  • درج میلیون ردیف با پایتون در Postgres با استفاده از مکان نما سمت مشتری Inserting Million Rows with Python in Postgres using Client Side Cursor

  • پرس و جو با مکان نما سمت مشتری Querying with Client Side Cursor

  • پرس و جو با مکان نما سمت سرور Querying with Server Side Cursor

  • مزایا و معایب مکان نماهای سمت سرور در مقابل کلاینت Pros and Cons of Server vs Client Side Cursors

  • مقاله - انواع مکان نما سمت سرور در SQL Server Article - Server Side Cursor Types in SQL Server

SQL در مقابل NoSQL Architecture SQL vs NoSQL Architecture

  • معماری MongoDB MongoDB Architecture

SQL در مقابل NoSQL Architecture SQL vs NoSQL Architecture

  • معماری MongoDB MongoDB Architecture

امنیت پایگاه داده Database Security

  • چگونه با فعال کردن TLS/SSL پایگاه داده Postgres خود را ایمن کنید How to Secure Your Postgres Database by Enabling TLS/SSL

  • نگاهی عمیق به پروتکل سیم Postgres با Wireshark Deep Look into Postgres Wire Protocol with Wireshark

  • نگاهی عمیق به پروتکل سیمی MongoDB با Wireshark Deep Look Into MongoDB Wire Protocol with Wireshark

  • بزرگترین بیانیه SQL که می توانید به پایگاه داده خود ارسال کنید چیست؟ What is the Largest SQL Statement that You can Send to Your Database

  • بهترین روش های کار با REST و پایگاه های داده Best Practices Working with REST & Databases

  • مجوزهای پایگاه داده و بهترین روش ها برای ایجاد REST API Database Permissions and Best Practices for Building REST API

امنیت پایگاه داده Database Security

  • چگونه با فعال کردن TLS/SSL پایگاه داده Postgres خود را ایمن کنید How to Secure Your Postgres Database by Enabling TLS/SSL

  • نگاهی عمیق به پروتکل سیم Postgres با Wireshark Deep Look into Postgres Wire Protocol with Wireshark

  • نگاهی عمیق به پروتکل سیمی MongoDB با Wireshark Deep Look Into MongoDB Wire Protocol with Wireshark

  • بزرگترین بیانیه SQL که می توانید به پایگاه داده خود ارسال کنید چیست؟ What is the Largest SQL Statement that You can Send to Your Database

  • بهترین روش های کار با REST و پایگاه های داده Best Practices Working with REST & Databases

  • مجوزهای پایگاه داده و بهترین روش ها برای ایجاد REST API Database Permissions and Best Practices for Building REST API

رمزگذاری هم شکل - انجام پرس و جوهای پایگاه داده روی داده های رمزگذاری شده Homomorphic Encryption - Performing Database Queries on Encrypted Data

  • مقدمه ای بر رمزگذاری همومورفیک Introduction to Homomorphic Encryption

  • رمزگذاری چیست؟ What is Encryption?

  • چرا همیشه نمی توانیم رمزگذاری کنیم؟ Why Can't we always Encrypt?

  • رمزگذاری همومورفیک چیست؟ What is Homomorphic Encryption

  • نسخه ی نمایشی رمزگذاری هم شکل Homomorphic Encryption Demo

  • شبیه سازی و ساخت کد Clone and Build the Code

  • عبور از کد و پایگاه داده Going Through the Code and the Database

  • جستجو در پایگاه داده رمزگذاری شده Searching The Encrypted Database

  • آیا رمزگذاری هممورفیک آماده است؟ Is Homomorphic Encryption Ready?

رمزگذاری هم شکل - انجام پرس و جوهای پایگاه داده روی داده های رمزگذاری شده Homomorphic Encryption - Performing Database Queries on Encrypted Data

  • مقدمه ای بر رمزگذاری همومورفیک Introduction to Homomorphic Encryption

  • رمزگذاری چیست؟ What is Encryption?

  • چرا همیشه نمی توانیم رمزگذاری کنیم؟ Why Can't we always Encrypt?

  • رمزگذاری همومورفیک چیست؟ What is Homomorphic Encryption

  • نسخه ی نمایشی رمزگذاری هم شکل Homomorphic Encryption Demo

  • شبیه سازی و ساخت کد Clone and Build the Code

  • عبور از کد و پایگاه داده Going Through the Code and the Database

  • جستجو در پایگاه داده رمزگذاری شده Searching The Encrypted Database

  • آیا رمزگذاری هممورفیک آماده است؟ Is Homomorphic Encryption Ready?

پاسخگویی به سوالات شما Answering your Questions

  • تفاوت Snapshot و Repeatable Read Isolation؟ Snapshot and Repeatable Read Isolation difference?

  • من یک Index دارم چرا پایگاه داده اسکن جدول کامل را انجام می دهد؟ I have an Index why is the database doing a full table scan?

  • چرا پایگاه داده ها به جای ردیف، صفحات را می خوانند؟ Why Databases Read Pages instead of Rows?

  • نمایه سازی یک ستون با مقادیر تکراری چگونه کار می کند؟ How does Indexing a column with duplicate values work?

  • آیا باید ایندکس های استفاده نشده را رها کنم؟ Should I drop unused indexes?

  • وقتی SELECT FOR UPDATE داریم، چرا از سطح جداسازی سریالی استفاده کنیم؟ Why use serializable Isolation Level when we have SELECT FOR UPDATE?

  • آیا می توانم از یک اتصال پایگاه داده برای چندین مشتری استفاده کنم؟ Can I use the same database connection for multiple clients?

  • آیا اگر فقط در حال خواندن هستم نیاز به معامله دارم؟ Do I need a transaction if I'm only reading?

  • چرا یک به روز رسانی در Postgres همه ایندکس ها را لمس می کند؟ Why does an update in Postgres touches all indexes?

  • ارزش اسکن نمایه بیت مپ چیست؟ What is the value of bitmap index scan?

  • توضیح تجزیه و تحلیل در واقع چه کاری انجام می دهد؟ What does Explain Analyze actually do?

  • Postgres در مقابل MySQL (تفاوت های اساسی) Postgres vs MySQL (The fundamental differences)

پاسخگویی به سوالات شما Answering your Questions

  • تفاوت Snapshot و Repeatable Read Isolation؟ Snapshot and Repeatable Read Isolation difference?

  • من یک Index دارم چرا پایگاه داده اسکن جدول کامل را انجام می دهد؟ I have an Index why is the database doing a full table scan?

  • چرا پایگاه داده ها به جای ردیف، صفحات را می خوانند؟ Why Databases Read Pages instead of Rows?

  • نمایه سازی یک ستون با مقادیر تکراری چگونه کار می کند؟ How does Indexing a column with duplicate values work?

  • آیا باید ایندکس های استفاده نشده را رها کنم؟ Should I drop unused indexes?

  • وقتی SELECT FOR UPDATE داریم، چرا از سطح جداسازی سریالی استفاده کنیم؟ Why use serializable Isolation Level when we have SELECT FOR UPDATE?

  • آیا می توانم از یک اتصال پایگاه داده برای چندین مشتری استفاده کنم؟ Can I use the same database connection for multiple clients?

  • آیا اگر فقط در حال خواندن هستم نیاز به معامله دارم؟ Do I need a transaction if I'm only reading?

  • چرا یک به روز رسانی در Postgres همه ایندکس ها را لمس می کند؟ Why does an update in Postgres touches all indexes?

  • ارزش اسکن نمایه بیت مپ چیست؟ What is the value of bitmap index scan?

  • توضیح تجزیه و تحلیل در واقع چه کاری انجام می دهد؟ What does Explain Analyze actually do?

  • Postgres در مقابل MySQL (تفاوت های اساسی) Postgres vs MySQL (The fundamental differences)

بحث های پایگاه داده Database Discussions

  • سیاهههای مربوط به WAL، Redo و Undo WAL, Redo and Undo logs

  • SELECT COUNT (*) می تواند بر عملکرد برنامه Backend شما تأثیر بگذارد، در اینجا دلیل آن است SELECT COUNT (*) can impact your Backend Application performance, here is why

  • نحوه تغییر Shopify از UUID به عنوان کلید اصلی How Shopify Switched from UUID as Primary Key

  • پایگاه داده چگونه داده ها را روی دیسک ذخیره می کند؟ How does the Database Store Data On Disk?

  • آیا QUIC پروتکل خوبی برای پایگاه داده است؟ Is QUIC a Good Protocol for Databases?

  • تراکنش توزیع شده چیست؟ What is a Distributed Transaction?

  • جداول هش و هش مداوم Hash Tables and Consistent Hashing

  • نمایه سازی در PostgreSQL در مقابل MySQL Indexing in PostgreSQL vs MySQL

  • چرا Uber از Postgres به MySQL منتقل شد (بحث) Why Uber Moved from Postgres to MySQL (Discussion)

  • آیا NULL ها می توانند عملکرد کوئری های پایگاه داده شما را بهبود بخشند؟ Can NULLs Improve your Database Queries Performance?

  • تقویت نوشتن در برنامه های Backend، سیستم های پایگاه داده و SSD ها توضیح داده شده است Write Amplification Explained in Backend Apps, Database Systems and SSDs

  • کنترل همزمانی خوش بینانه در مقابل بدبینانه Optimistic vs Pessmistic Concurrency Control

بحث های پایگاه داده Database Discussions

  • سیاهههای مربوط به WAL، Redo و Undo WAL, Redo and Undo logs

  • SELECT COUNT (*) می تواند بر عملکرد برنامه Backend شما تأثیر بگذارد، در اینجا دلیل آن است SELECT COUNT (*) can impact your Backend Application performance, here is why

  • نحوه تغییر Shopify از UUID به عنوان کلید اصلی How Shopify Switched from UUID as Primary Key

  • پایگاه داده چگونه داده ها را روی دیسک ذخیره می کند؟ How does the Database Store Data On Disk?

  • آیا QUIC پروتکل خوبی برای پایگاه داده است؟ Is QUIC a Good Protocol for Databases?

  • تراکنش توزیع شده چیست؟ What is a Distributed Transaction?

  • جداول هش و هش مداوم Hash Tables and Consistent Hashing

  • نمایه سازی در PostgreSQL در مقابل MySQL Indexing in PostgreSQL vs MySQL

  • چرا Uber از Postgres به MySQL منتقل شد (بحث) Why Uber Moved from Postgres to MySQL (Discussion)

  • آیا NULL ها می توانند عملکرد کوئری های پایگاه داده شما را بهبود بخشند؟ Can NULLs Improve your Database Queries Performance?

  • تقویت نوشتن در برنامه های Backend، سیستم های پایگاه داده و SSD ها توضیح داده شده است Write Amplification Explained in Backend Apps, Database Systems and SSDs

  • کنترل همزمانی خوش بینانه در مقابل بدبینانه Optimistic vs Pessmistic Concurrency Control

سخنرانی های آرشیو شده Archived Lectures

  • مقدمه ای بر ACID (بایگانی شده) Introduction to ACID (Archived)

  • تراکنش چیست؟ (بایگانی شده) What is a Transaction? (Archived)

  • اتمی (بایگانی شده) Atomicity (Archived)

  • جداسازی (بایگانی شده) Isolation (Archived)

  • سازگاری (بایگانی شده) Consistency (Archived)

  • دوام (بایگانی شده) Durability (Archived)

سخنرانی های آرشیو شده Archived Lectures

  • مقدمه ای بر ACID (بایگانی شده) Introduction to ACID (Archived)

  • تراکنش چیست؟ (بایگانی شده) What is a Transaction? (Archived)

  • اتمی (بایگانی شده) Atomicity (Archived)

  • جداسازی (بایگانی شده) Isolation (Archived)

  • سازگاری (بایگانی شده) Consistency (Archived)

  • دوام (بایگانی شده) Durability (Archived)

نمایش نظرات

آموزش مبانی مهندسی پایگاه داده
جزییات دوره
24.5 hours
146
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
63,089
4.7 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Hussein Nasser Hussein Nasser

نویسنده، مهندس نرم افزار

اسم من حسین است و مهندس نرم افزار هستم. از زمانی که عمویم اولین کتاب برنامه نویسی ام را در سال 1998 به من داد () متوجه شدم که نرم افزار علاقه من است. من وبلاگم را راه اندازی کردم و کانال یوتیوب را به عنوان یک خروجی برای صحبت در مورد نرم افزار راه اندازی کردم.

استفاده از نرم افزار برای حل مشکلات جالب یکی از چیزهای جذابی است که من واقعا از آن لذت می برم. در کانال های رسانه های اجتماعی من با من تماس بگیرید تا داستان نرم افزار خود را بگویید، سؤال بپرسید یا مشکلات جالب را به اشتراک بگذارید. من دوست دارم آن را بشنوم!

من همچنین در زمینه سیستم های اطلاعات جغرافیایی (یا GIS) تخصص دارم. من از سال 2005 به بسیاری از سازمان‌ها در کشورهای مختلف کمک کردم تا فناوری GIS را پیاده‌سازی کنند و برنامه‌های سفارشی را متناسب با موارد استفاده و ساده‌سازی گردش‌های کاری‌شان از سال 2005 نوشتم. دویست ویدیوی یوتیوب و آموزش نرم افزار تا به امروز در حال تماشا هستند و شروع به کردند. من از سال 2015 در Esri مهندس ساختمان فن آوری های GIS جالب هستم.