لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش مبانی مهندسی پایگاه داده
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
رمزگذاری همومورفیک چیست؟
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)
اسم من حسین است و مهندس نرم افزار هستم. از زمانی که عمویم اولین کتاب برنامه نویسی ام را در سال 1998 به من داد () متوجه شدم که نرم افزار علاقه من است. من وبلاگم را راه اندازی کردم و کانال یوتیوب را به عنوان یک خروجی برای صحبت در مورد نرم افزار راه اندازی کردم.
استفاده از نرم افزار برای حل مشکلات جالب یکی از چیزهای جذابی است که من واقعا از آن لذت می برم. در کانال های رسانه های اجتماعی من با من تماس بگیرید تا داستان نرم افزار خود را بگویید، سؤال بپرسید یا مشکلات جالب را به اشتراک بگذارید. من دوست دارم آن را بشنوم!
من همچنین در زمینه سیستم های اطلاعات جغرافیایی (یا GIS) تخصص دارم. من از سال 2005 به بسیاری از سازمانها در کشورهای مختلف کمک کردم تا فناوری GIS را پیادهسازی کنند و برنامههای سفارشی را متناسب با موارد استفاده و سادهسازی گردشهای کاریشان از سال 2005 نوشتم. دویست ویدیوی یوتیوب و آموزش نرم افزار تا به امروز در حال تماشا هستند و شروع به کردند. من از سال 2015 درEsri مهندس ساختمان فن آوری های GIS جالب هستم.
نمایش نظرات