آموزش ویدیویی پایگاه داده، SQL و NoSQL و ...
2.08K subscribers
235 photos
119 videos
1.89K links
* پیشنهادات، تبلیغات و تبادل و ... : @ma_limbs

* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
Download Telegram
🔵 نکته یادگیری ماشین

حالا بریم سراغ یه فرق اساسی که اغلب تازه‌کارها رو گیج می‌کنه: تفاوت پارامترها با هایپرپارامترها! 🧐

پارامترها در مقابل هایپرپارامترها 🍰

تصور کن می‌خوای یک کیک بپزی. 🎂

مواد لازم (آرد، شکر، تخم مرغ) رو با هم ترکیب می‌کنی. مقدار هر ماده بر اساس تجربه و دستور پخت تنظیم می‌شه.

تنظیمات فر (دمای فر، زمان پخت) رو قبل از اینکه کیک رو داخلش بذاری، مشخص می‌کنی.

در یادگیری ماشین هم همینطوره. مدل دو نوع متغیر داره:

۱. پارامترها (Parameters) 🧠

این‌ها متغیرهای درونی مدل هستن که به صورت خودکار و از طریق آموزش روی داده‌ها یاد گرفته می‌شن.

نقش: دانش واقعی مدل رو تشکیل می‌دن.

مثال:

وزن‌ها (Weights) و بایاس‌ها (Biases) در یک شبکه عصبی.

ضرایب (Coefficients) در یک مدل رگرسیون خطی.

این‌ها همون چیزهایی هستن که مدل در حین آموزش تنظیمشون می‌کنه تا تابع هزینه به حداقل برسه.

۲. هایپرپارامترها (Hyperparameters) 🛠

این‌ها متغیرهای بیرونی مدل هستن که ما، به عنوان یک دانشمند داده، قبل از شروع فرآیند آموزش، اون‌ها رو به صورت دستی تنظیم می‌کنیم.

نقش: این‌ها به مدل می‌گن که چطور یاد بگیره، نه اینکه چه چیزی رو یاد بگیره.

مثال:

نرخ یادگیری (Learning Rate) در الگوریتم نزول گرادیان.

تعداد درختان در یک مدل جنگل تصادفی.

تعداد لایه‌های پنهان در یک شبکه عصبی.

خلاصه:

پارامترها مثل مواد کیک هستن که با ترکیبشون، کیک درست می‌شه.

هایپرپارامترها مثل تنظیمات فر هستن که تعیین می‌کنن کیک چطور پخته بشه.

مدل پارامترها رو یاد می‌گیره، ولی تو باید هایپرپارامترها رو بهش بگی تا یاد بگیره! 😉

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ


لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #SQL

🟣 موضوع : ‏ساختار کلی یک دیتابیس و جدول

نکته :

‏ستون‌های جدول مثل برچسب‌های روی پرونده‌ها هستن. مثلاً اسم، سن، ایمیل. هر ستون یه نوع اطلاعات رو میگه. 🏷️


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 کوییز #یادگیری_ماشین

🟣 موضوع : ‏مدل‌های مولد (Generative Models)

🟢 سوال :

‏کدام‌یک از موارد زیر جزء کاربردهای مدل‌های مولد نیست؟

گزینه 1:
‏تولید هنر دیجیتال
گزینه 2:
‏تشخیص تقلب
گزینه 3:
‏تولید نمونه‌های داده برای آموزش مدل‌های دیگر
گزینه 4:
‏تکمیل تصاویر ناقص

🔵 گزینه صحیح: 2

🟢 توضیح :

‏مدل‌های مولد معمولاً برای تولید یا تکمیل داده‌ها استفاده می‌شوند، نه تشخیص تقلب. تشخیص تقلب معمولا با مدل‌های طبقه‌بندی انجام می شود.


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #MySQL

🟣 موضوع : ‏کار با انواع JOIN در MySQL به صورت عملی
📖 سرفصل : ‏تکنیک IS NULL با RIGHT JOIN

‏رفیق، این تکنیک "RIGHT JOIN با IS NULL" خیلی خفنه برای پیدا کردن رکوردهایی تو جدول سمت راستت که هیچ همتایی تو جدول سمت چپ ندارن! مثل کارآگاهی که گمشده‌ها رو پیدا می‌کنه. 🕵️‍♂️

‏فرض کن یه لیست از کالاها (جدول چپ) و یه لیست از انبارها (جدول راست) داری. اگه می‌خوای بدونی کدوم انبارها هیچ کالایی تو خودشون ندارن، این تکنیک به دادت می‌رسه! 📦🤷‍♀️

‏چطوری کار می‌کنه؟ وقتی RIGHT JOIN می‌زنی از TableA به TableB (یعنی TableB میشه جدول راستت)، بعدش WHERE TableA.ID IS NULL رو چک می‌کنی. این یعنی اون ردیف‌هایی از TableB که نتونستن تو TableA همتا پیدا کنن، ستون ID از TableA براشون NULL میشه. 🤯

‏یه مثال عملی دیگه: داری لیست پروژه‌ها (جدول چپ) و لیست اعضا (جدول راست). اگه RIGHT JOIN بزنی و WHERE Projects.project_id IS NULL رو چک کنی، داری اعضایی رو پیدا می‌کنی که به هیچ پروژه‌ای وصل نیستن! یه جورایی اعضای "آزاد" تیم. 🙋‍♀️🚀

‏شاید LEFT JOIN ... IS NULL بیشتر به چشمت خورده باشه، ولی RIGHT JOIN ... IS NULL فقط زاویه دیدت رو عوض می‌کنه. مهم اینه که بدونی داری از کدوم سمت دنبال رکوردهای بدون همتا می‌گردی! 🔄💡

‏از نظر کارایی هم این روش معمولاً خیلی بهینه و سریعه برای پیدا کردن ردیف‌های بدون تطابق، مخصوصاً اگه ستون‌های joinت ایندکس داشته باشن. مثل جت! 💨

‏حواست باشه که RIGHT JOIN کلاً همه ردیف‌های جدول سمت راست رو حفظ می‌کنه. پس وقتی WHERE left_table.column IS NULL رو می‌ذاری، دقیقاً داری همون ردیف‌های جدول راست رو نشون می‌گیری که نتونستن تو جدول چپ همتا پیدا کنن. 🎯🔥

‏تو سناریوهای پاکسازی دیتا خیلی به درد می‌خوره! مثلاً اگه دانش‌آموزان (چپ) و کتاب‌ها (راست) رو داری، با این روش می‌تونی کتاب‌هایی رو پیدا کنی که هیچ دانش‌آموزی اونا رو امانت نگرفته (WHERE Students.student_id IS NULL). کتابخونه رو سروسامون بدی! 📚🧹

‏یه یادآوری کوچیک از سینتکسش: SELECT B.* FROM A RIGHT JOIN B ON A.commonid = B.commonid WHERE A.common_id IS NULL; فقط کافیه A و B رو با اسم جدول‌های خودت جایگزین کنی! 💻👍

‏این تکنیک یه راه حل خیلی شیک و ساده برای پیدا کردن رکوردهای "یتیم" تو جدول سمت راستته. دیگه نیازی به ساب‌کوئری‌های پیچیده نیست! فقط یه join باهوش و یه WHERE ساده. 🌟🥳


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #SQL

🟣 موضوع : ‏فیلتر گروه‌ها با HAVING

نکته :

‏با HAVING میشه گروه‌ها رو فیلتر کرد، درست مثل WHERE که ردیف‌ها رو فیلتر می‌کنه! خیلی باحاله!


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #NoSQL

🟣 موضوع : ‏Cost Optimization در سرویس‌های ابری NoSQL

نکته :

‏هزینه‌ها رو با انتخاب درست نوع دیتابیس NoSQL شروع کن. اگه فقط سند ذخیره می‌کنی، شاید یه دیتابیس Document-based مثل MongoDB یا Couchbase مناسب‌تر باشه. 📊


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
📚 نکته #SQLite

🟣 موضوع : ‏بررسی و مقایسه انواع ذخیره‌سازی داده‌ها در SQLite
📖 سرفصل : ‏استفاده از PRAGMA برای تغییر تنظیمات

نکته 1:
‏استفاده از عبارت PRAGMA به عنوان یک ابزار قدرتمند مدیریتی، امکان تغییر پارامترهای پیکربندی موتور SQLite در طول زمان اجرای برنامه را فراهم می‌سازد.

نکته 2:
‏بسیاری از دستورات PRAGMA برای اعمال تغییرات در تنظیمات، به فرم PRAGMA setting = value اجرا می‌شوند که در آن value می‌تواند عددی، رشته‌ای یا یک کلمه کلیدی باشد.

نکته 3:
‏تغییراتی که با PRAGMA اعمال می‌شوند، عموماً تا زمانی که اتصال به پایگاه داده باز است، یا تا زمانی که صریحاً توسط یک دستور PRAGMA دیگر لغو شوند، پایدار باقی می‌مانند.

نکته 4:
‏تنظیم PRAGMA journal_mode به مقدار WAL (Write-Ahead Logging) یکی از کاربردی‌ترین تغییرات است که با هدف بهبود همزمانی و عملکرد تراکنش‌های خواندن و نوشتن اعمال می‌شود.

نکته 5:
‏PRAGMA synchronous = OFF برای سناریوهایی که حداکثر سرعت نوشتن مورد نیاز است و خطر از دست دادن داده‌ها در صورت قطع ناگهانی برق قابل پذیرش است، تنظیم می‌شود.

نکته 6:
‏تغییر PRAGMA cache_size یک عملیات مهم برای بهینه‌سازی مصرف حافظه و کاهش سربار ورودی/خروجی دیسک است که باید متناسب با منابع سیستم میزبان انجام شود.

نکته 7:
‏فعال‌سازی محدودیت‌های ارجاعی با PRAGMA foreign_keys = ON یک تغییر الزامی است که پس از اتصال به پایگاه داده و پیش از اجرای تراکنش‌های دارای وابستگی ساختاری باید اعمال گردد.

نکته 8:
‏دستور PRAGMA temp_store امکان تعیین محل ذخیره‌سازی اشیاء موقت (Temporary Objects) مانند جداول موقت را فراهم می‌کند که می‌تواند بین حافظه اصلی (memory) و فایل دیسکی (file) تغییر یابد.

نکته 9:
‏تغییر تنظیمات مرتبط با PRAGMA auto_vacuum باید پس از اجرای عملیات VACUUM و تنها در صورتی که فایل پایگاه داده قفل نشده باشد یا تراکنشی در حال اجرا نباشد، اعمال شود.

نکته 10:
‏لازم به ذکر است که برخی از تنظیمات PRAGMA، مانند page_size، پس از ایجاد اولیه فایل پایگاه داده قابل تغییر نیستند و تغییر آن‌ها نیازمند بازسازی کامل ساختار پایگاه داده است.


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #یادگیری_ماشین

🟣 موضوع : ‏یادگیری ماشین: Q-Learning - محدودیت استفاده از جدول Q در فضای حالت بزرگ

نکته :

‏"یادت باشه، وقتی داری از تابع تقریبی استفاده می‌کنی، ممکنه همگرایی تضمین نشه! 🤔 پس حواست باشه و پارامترها رو درست تنظیم کن. یه کم آزمون و خطا لازمه. 😉"


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #MySQL

🟣 موضوع : ‏کار با انواع JOIN در MySQL به صورت عملی
📖 سرفصل : ‏اهمیت ایندکس‌گذاری (Indexing) بر روی ستون‌های کلید خارجی

‏آقا، وقتی دو تا جدول رو با هم جوین می‌کنی (مثلاً جدول سفارشات و مشتری‌ها)، اگه ستون کلید خارجی ایندکس نداشته باشه، مثل این می‌مونه که بخوای توی یه کتاب بدون فهرست دنبال یه کلمه بگردی! 😅 ایندکسش کن تا جوین‌ها مثل جت بشن! 🚀

‏تصور کن می‌خوای یه مشتری رو حذف کنی. اگه ستون کلید خارجی توی جدول سفارشات ایندکس نداشته باشه، دیتابیس باید تمام رکوردهای جدول سفارشات رو بگرده. ایندکس کار رو خیلی سریع‌تر می‌کنه و از کندی نجاتت میده!

‏حتی اگه خیلی کم پیش بیاد که کلید خارجی رو آپدیت کنی (مثلاً وقتی با ON UPDATE CASCADE کار می‌کنی)، ایندکس‌ها باعث می‌شن دیتابیس سریع‌تر بفهمه کدوم ردیف‌ها نیاز به به‌روزرسانی دارن. پس آپدیت‌های کم‌تعداد هم جون می‌گیرن! 💨

‏کلید خارجی وظیفه‌ش اینه که روابط بین جدول‌ها رو حفظ کنه و نذاره اطلاعات بیهوده وارد بشن. برای اینکه MySQL بتونه این قوانین رو سریع چک کنه، به ایندکس‌ها نیاز داره. بدون ایندکس، دیتابیس باید کلی تلاش کنه! 💪

‏وقتی عملیات روی کلید خارجی سریع انجام بشه (به لطف ایندکس)، مدت زمانی که دیتابیس ردیف‌ها رو قفل می‌کنه (برای جلوگیری از تداخل)، کمتر میشه. این یعنی قفل‌شدگی و کندی‌های بیخود کمتر! 🔓🔑

‏MySQL یه قسمتی داره به اسم Query Optimizer که وظیفه‌ش پیدا کردن بهترین راه برای اجرای کوئری‌های شماست. اگه ستون‌های کلید خارجی ایندکس داشته باشن، این اپتیمایزر می‌تونه نقشه‌های اجرایی خیلی بهتری طراحی کنه و کوئری‌ها رو بهینه‌تر اجرا کنه. 💡

‏بله، ایندکس‌ها یه مقدار فضا اشغال می‌کنن و هنگام Insert/Update/Delete یه کم سربار اضافه دارن. اما برای ستون‌های کلید خارجی، مزایا انقدر زیاده که اون سربار کوچیک در مقابلش هیچی نیست! 👌 واقعاً ارزشش رو داره!

‏موتورهای ذخیره‌سازی مثل InnoDB معمولاً خودشون برای ستون‌های کلید خارجی ایندکس می‌سازن. اما همیشه خوبه که یه نگاهی بندازی و مطمئن بشی که ایندکس هست و الکی به مشکل نخوری. 👀 گاهی اوقات خودت باید دستی بزنی! 🛠️

‏اگه یه جدول مثل transactions داری که میلیون‌ها ردیف داره و userid اون یه کلید خارجیه، اگه userid ایندکس نداشته باشه، دیتابیس توی هر جوین، حذف یا آپدیت باید کلی رکورد رو اسکن کنه. ایندکس اینجا معجزه می‌کنه! 🌟

‏ایندکس روی کلید خارجی مثل داشتن یه فهرست الفبایی یا واژه‌نامه برای تمام روابط بین جدول‌هاته. هر وقت دیتابیس بخواد چیزی رو توی این روابط پیدا کنه، دیگه مجبور نیست ورق به ورق بگرده و سریع پیداش می‌کنه! 📚🔍 پس حتماً ایندکسش کن!


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
📚 نکته #SQLite

🟣 موضوع : ‏بررسی و مقایسه انواع ذخیره‌سازی داده‌ها در SQLite
📖 سرفصل : ‏رفتار پیش‌فرض SQLite

نکته 1:
‏رفتار پیش‌فرض SQLite بر اساس معماری بدون سرور (Serverless) تعریف شده است، که در آن موتور پایگاه داده به صورت یک کتابخانه در فرآیند برنامه میزبان تعبیه می‌شود.

نکته 2:
‏به طور پیش‌فرض، SQLite از یک سیستم نوع‌بندی پویا (Dynamic Typing) استفاده می‌کند؛ به این معنا که نوع داده به مقدار ذخیره شده مرتبط است، نه به تعریف ستون.

نکته 3:
‏حالت ژورنال‌نویسی (Journal Mode) پیش‌فرض در SQLite، معمولاً بر روی DELETE تنظیم شده است که پس از هر تراکنش موفق، فایل ژورنال را حذف می‌کند.

نکته 4:
‏سطح همگام‌سازی (Synchronous Level) پیش‌فرض، روی FULL قرار دارد که تضمین می‌کند تمامی تغییرات به طور کامل و فوری بر روی دیسک نوشته شوند و حداکثر پایداری داده‌ها را فراهم می‌سازد.

نکته 5:
‏مکانیزم کلید خارجی (Foreign Keys) به صورت پیش‌فرض غیرفعال است و برای فعال‌سازی محدودیت‌های یکپارچگی ارجاعی، نیاز به اجرای صریح PRAGMA foreign_keys = ON می‌باشد.

نکته 6:
‏SQLite به طور پیش‌فرض، هر دستور SQL را که یک تراکنش صریح (Explicit Transaction) توسط BEGIN آغاز نکرده باشد، به صورت یک تراکنش خودکار (Autocommit Transaction) جداگانه اجرا می‌کند.

نکته 7:
‏اندازه حافظه کش (Cache Size) به صورت پیش‌فرض یک مقدار نسبتاً کم (مانند 2000 صفحه) است که برای سناریوهای عمومی و مصرف کم حافظه بهینه شده است.

نکته 8:
‏رفتار پیش‌فرض در مدیریت فضای خالی، PRAGMA auto_vacuum = NONE است؛ به این معنا که فضای خالی دیسک به طور خودکار به سیستم‌عامل بازگردانده نمی‌شود.

نکته 9:
‏شیوه قفل‌گذاری پیش‌فرض، NORMAL است که اجازه می‌دهد تا چندین خواننده به صورت همزمان به پایگاه داده دسترسی داشته باشند، اما عملیات نوشتن انحصاری است.

نکته 10:
‏ماژول Pager به طور پیش‌فرض، داده‌ها را در قالب صفحات دیسکی با اندازه 4096 بایت ذخیره و مدیریت می‌کند، مگر اینکه در زمان ایجاد پایگاه داده تنظیم متفاوتی اعمال شده باشد.


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #MySQL

🟣 موضوع : ‏کار با انواع JOIN در MySQL به صورت عملی
📖 سرفصل : ‏معرفی CROSS JOIN: تولید حاصلضرب دکارتی

‏سلام رفقا! اگه می‌خواید تمام ترکیبات ممکن دو تا جدول رو با هم مقایسه کنید، CROSS JOIN 🤯 بهترین دوستتونه! 🤝

‏می‌خواید یه لیست از همه ترکیب‌های ممکن محصولات و رنگ‌ها داشته باشید؟ CROSS JOIN 🎨 رو امتحان کنید! خیلی سریع و آسونه. 😉

‏یادتون باشه، CROSS JOIN کل ردیف‌های جدول اول رو با کل ردیف‌های جدول دوم جفت می‌کنه. 🔥

‏یه مثال ساده: اگه جدول A 3 تا ردیف و جدول B 2 تا ردیف داشته باشه، نتیجه CROSS JOIN می‌شه 6 ردیف!

‏قبل از استفاده از CROSS JOIN، حواستون به حجم داده‌ها باشه! ممکنه تعداد ردیف‌ها خیلی زیاد بشه. 😬

‏وقتی CROSS JOIN می‌زنید، دیگه نیازی به شرط (WHERE) ندارید، چون خودش همه چیز رو ترکیب می‌کنه. 😎

‏یه کاربرد باحال: ایجاد ترکیب‌های تست! می‌تونید باهاش داده‌های آزمایشی متنوع بسازید. 💡

‏اگه به دنبال ترکیبات خاص هستید، بعد از CROSS JOIN می‌تونید از WHERE برای فیلتر کردن استفاده کنید. 🤔

‏با CROSS JOIN، می‌تونید گزارش‌های پیچیده و متنوعی رو راحت‌تر تولید کنید. 🎉

‏خلاصه، CROSS JOIN یه ابزار قدرتمنده که می‌تونه خیلی جاها به کارتون بیاد! 👍


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir

🔵 کوییز #SQL



مقدار NULL در SQL نشان‌دهنده‌ی چیست؟ 

A) یک مقدار صفر (0) 
B) یک رشته خالی ("") 
C) یک مقدار نامشخص یا ناموجود 
D) یک مقدار خطا 

پاسخ:
C)
یک مقدار نامشخص یا ناموجود 

توضیح: NULL در SQL به معنی عدم وجود مقدار یا داده‌ی نامشخص است، نه صفر یا رشته خالی. 



💗 مطالب بعدی ما رو حتما دنبال کنید!



ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
آدرس کانال اصلی:
https://t.me/Tu_24
آدرس وبسایت:
https://tutorial24.ir/
💡 نکته #یادگیری_ماشین

🟣 موضوع : ‏یادگیری ماشین: K-Means - تأثیر نویز و داده‌های پرت (Outliers)

نکته :

‏روش "آرنج" (Elbow method) برای پیدا کردن بهترین تعداد خوشه (K)، وقتی داده پرت داری ممکنه بهت جواب اشتباه بده. حواست باشه گول نخوری! 📈😬


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #MySQL

🟣 موضوع : ‏کار با انواع JOIN در MySQL به صورت عملی
📖 سرفصل : ‏تمرین عملی با SELF JOIN

‏با SELF JOIN تمرین کن! یه جدول فرضی بساز و ارتباطاتش رو با خودِ جدول بررسی کن. کلی چیز یاد میگیری! 🤓

‏وقتی داری SELF JOIN میزنی، حتماً از alias (نام مستعار) استفاده کن. اینجوری خیلی راحت‌تر میشه فیلدها رو مشخص کنی و سردرگم نشی! 😎💡

‏با SELF JOIN میتونی ساختار درختی رو توی دیتابیس پیاده‌سازی کنی. مثلاً یه جدول کارمندان با فیلد سرپرست. باحاله، نه؟ 🔥🌳

‏یادت نره شرط JOIN رو درست تعریف کنی! اگه اشتباه باشه، یه عالمه ردیف تکراری میگیری که اصلاً خوب نیست. 😬

‏یه سناریو واقعی پیدا کن که SELF JOIN توش کاربرد داشته باشه. مثلاً پیدا کردن کارمندانی که حقوقشون از سرپرستشون بیشتره. 💰🤔

‏قبل از اینکه SELF JOIN خیلی پیچیده بزنی، اول یه SELECT ساده بنویس تا مطمئن شی داده‌ها رو درست میفهمی. 🧐

‏با SELF JOIN میتونی روابط بین رکوردها رو پیدا کنی. مثلاً مشتری‌هایی که توی یه شهر زندگی میکنن و از یه محصول خریدن. 🤝📍

‏برای اینکه SELF JOIN سریعتر بشه، حتماً روی فیلدهایی که JOIN میکنی index (فهرست) بذار. 🚀💨

‏اگه SELF JOIN خیلی کند شد، سعی کن با یه query دیگه (مثلاً subquery) همون نتیجه رو بگیری. شاید سریعتر بشه! 🐢➡️🐇

‏بعد از اینکه SELF JOIN نوشتی، حتماً query رو تست کن و مطمئن شو که داره درست کار میکنه. یه داده‌ی پرت رو هم تست کن! 🧪💯


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #SQL

🟣 موضوع : ‏ORMها و ارتباط با SQL (مثلاً Entity Framework)

نکته :

‏اگه با ORM مشکل داری، لازم نیست همه‌چیو از اول بنویسی. می‌تونی کوئری‌های SQL خام رو هم تو ORM استفاده کنی. یه جورایی قاطی پاتی! 😜


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🤖🔥 مدل جدید Hugging Face دنیای رباتیک را متحول می‌کند: اجرای هوش مصنوعی رباتیک روی مک‌بوک!

پلتفرم Hugging Face این هفته مدل هوش مصنوعی جدیدی با نام SmolVLA برای پروژه‌های رباتیک معرفی کرد که آن‌قدر سبک و کارآمد است که حتی روی یک مک‌بوک هم قابل اجراست!

📌 ویژگی‌ها و دستاوردهای SmolVLA:

🔹 آموزش‌دیده بر اساس داده‌های متن‌باز و دارای مجوز اشتراک
🔹 عملکرد بهتر از مدل‌های بسیار بزرگ‌تر در محیط‌های واقعی و مجازی
🔹 قابل اجرا روی GPU مصرفی یا حتی لپ‌تاپ مک‌بوک
🔹 طراحی شده برای کمک به توسعه ربات‌های عمومی و کاهش هزینه سخت‌افزار رباتیک

🧠 مدل SmolVLA با ۴۵۰ میلیون پارامتر، از داده‌های «LeRobot Community» تغذیه شده و هدف آن دموکراتیزه کردن دسترسی به مدل‌های «بینایی-زبان-عمل» است. جالب‌تر این‌که از ساختاری استفاده می‌کند که پردازش دیداری و شنوایی را از عملکرد ربات جدا می‌کند، که به گفته Hugging Face باعث واکنش سریع‌تر در شرایط پویا می‌شود.

👨‍💻 یک کاربر در توییتر (X) اعلام کرده که با استفاده از این مدل، بازوی رباتیکی Koch را با تنها ۳۱ نمونه آموزش، به خوبی کنترل کرده است.

🛠 گفته می شود Hugging Face تلاش دارد اکوسیستم رباتیک متن‌باز و کم‌هزینه‌ای ایجاد کند. از جمله پروژه‌های اخیر آن می‌توان به LeRobot و خرید استارتاپ فرانسوی Pollen Robotics اشاره کرد.

🔍 البته Hugging Face تنها بازیگر این میدان نیست؛ شرکت‌هایی مانند:

* Nvidia با مجموعه ابزارهای رباتیک متن‌باز
* K-Scale Labs با هدف ساخت انسان‌نماهای متن‌باز
* Dyna Robotics
* Physical Intelligence (با حمایت جف بزوس)
* RLWRLD

نیز در این مسیر گام برمی‌دارند.

📥 مدل SmolVLA هم‌اکنون از طریق Hugging Face قابل دریافت است.


#رباتیک #هوش_مصنوعی #HuggingFace #SmolVLA #LeRobot #AI #Robotics #متن_باز #مکبوک #هوش_مصنوعی_در_رباتیک


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir


🌠 خبر داغ: iOS 26 و انقلاب شخصی‌سازی پیام‌ها با هوش مصنوعی!



🌿🌿 به نظر می‌رسد اپل قصد دارد با iOS 26 گام بزرگی در شخصی‌سازی و هوش مصنوعی بردارد! کدهای جدید لو رفته نشان می‌دهند که کاربران آیفون، آیپد و مک قرار است بتوانند با استفاده از توصیف‌های متنی، برای پس‌زمینه اپلیکیشن Messages (پیامک‌ها) تصاویر اختصاصی و منحصربه‌فرد تولید کنند.


🟣 جادوی هوش مصنوعی در Image Playground

این قابلیت جذاب با بهره‌گیری از ابزار Image Playground اپل، به کاربران امکان می‌دهد تا با نوشتن توضیحات دلخواه خود، پس‌زمینه‌های بصری را خلق کنند. گزینه‌های مختلفی برای سبک این تصاویر نیز در دسترس خواهد بود، از جمله Animation (انیمیشن)، Illustration (تصویرسازی) و Sketch (طراحی دستی). تصور کنید چقدر خلاقیت شما در شخصی‌سازی چت‌هایتان افزایش پیدا می‌کند!


🔴 پس‌زمینه‌های اختصاصی برای هر مکالمه

نکته جالب اینجاست که این پس‌زمینه‌ها اختصاصی برای هر مکالمه قابل تنظیم هستند. یعنی می‌توانید برای هر چت با دوستان، خانواده یا همکارانتان، یک پس‌زمینه بصری کاملاً متفاوت و متناسب با موضوع گفتگو یا سلیقه طرفین انتخاب کنید.


🔵 همگام‌سازی جادویی در iMessage

ویژگی هیجان‌انگیز دیگر این است که این پس‌زمینه‌ها بین همه شرکت‌کنندگان هر گفتگو همگام‌سازی می‌شوند! به این معنا که اگر شما برای یک چت در iMessage پس‌زمینه‌ای را انتخاب کنید، طرف مقابل شما نیز همان پس‌زمینه زیبا و هوش مصنوعی تولید شده را مشاهده خواهد کرد. این قابلیت جدید، تجربه پیام‌رسانی را برای کاربران اپل غنی‌تر و تعاملی‌تر می‌کند.


🟢 رقابت با بزرگان پیام‌رسان

این ویژگی در حالی به iOS اضافه می‌شود که اپلیکیشن‌های محبوبی مانند واتس‌اپ و تلگرام سال‌هاست از امکان تعیین پس‌زمینه‌های سفارشی پشتیبانی می‌کنند. ورود اپل به این حوزه با قابلیت‌های هوش مصنوعی، نشان‌دهنده تمرکز این شرکت بر رقابت با اپلیکیشن‌های پیام‌رسان پیشرو و ارائه تجربه‌ای منحصربه‌فرد به کاربران خود است.


🟠 این خبر نشان‌دهنده روندی است که هوش مصنوعی به شکلی عمیق‌تر در جنبه‌های روزمره زندگی دیجیتال ما نفوذ می‌کند و تجربه‌های کاربری را به سطحی جدید ارتقا می‌دهد.

#iOS26 #هوش_مصنوعی #اپل #شخصی_سازی #پیام_رسان

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی:
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
📚 نکته #SQLite

🟣 موضوع : ‏بررسی و مقایسه انواع ذخیره‌سازی داده‌ها در SQLite
📖 سرفصل : ‏مفاهیم اولیه SQL (SELECT, INSERT, UPDATE, DELETE)

نکته 1:
‏دستور SELECT یک دستور زبان دستکاری داده‌ها (DML - Data Manipulation Language) است که برای بازیابی (Retrieval) مجموعه‌ای از داده‌ها از یک یا چند جدول در پایگاه داده SQLite به کار می‌رود.

نکته 2:
‏بند WHERE در دستور SELECT به منظور اعمال یک یا چند شرط گزینش (Predicate) تعریف می‌شود تا فقط سطرهایی که این شروط را ارضا می‌کنند، در مجموعه نتیجه (Result Set) لحاظ شوند.

نکته 3:
‏دستور INSERT برای افزودن ردیف‌های جدید به یک جدول مشخص شده در پایگاه داده استفاده می‌شود و در اصل، ذخیره‌سازی داده‌های جدید را محقق می‌سازد.

نکته 4:
‏هنگام استفاده از INSERT، باید اطمینان حاصل شود که مقادیر ارائه شده از نظر تعداد، ترتیب و سازگاری نوع‌دهی (Type Affinity) با ستون‌های جدول هدف مطابقت داشته باشند.

نکته 5:
‏دستور UPDATE به منظور تغییر مقادیر ستون‌ها در یک یا چند ردیف موجود از یک جدول در پایگاه داده، بر اساس شرایط مشخص شده، به کار گرفته می‌شود.

نکته 6:
‏در دستور UPDATE، عدم تعیین بند WHERE موجب اعمال تغییرات بر روی تمامی ردیف‌های جدول هدف خواهد شد که می‌تواند منجر به ناهمگونی داده‌ها گردد.

نکته 7:
‏دستور DELETE برای حذف ردیف‌های موجود از یک جدول به کار می‌رود و بر اساس شروط تعیین‌شده در بند WHERE، امکان حذف انتخابی سطرها را فراهم می‌سازد.

نکته 8:
‏دستور DELETE، برخلاف دستور DROP TABLE که ساختار جدول را حذف می‌کند، صرفاً محتوای داده‌ای سطرها را حذف کرده و ساختار جدول را حفظ می‌نماید.

نکته 9:
‏این چهار دستور (SELECT, INSERT, UPDATE, DELETE) اساس عملیات CRUD (Create, Read, Update, Delete) را در تمامی سامانه‌های مدیریت پایگاه داده رابطه‌ای، از جمله SQLite، تشکیل می‌دهند.

نکته 10:
‏در SQLite، اجرای این دستورات DML، در صورت عدم استفاده صریح از دستور COMMIT یا ROLLBACK، به صورت پیش‌فرض توسط سیستم تراکنش مدیریت می‌شود.


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #MySQL

🟣 موضوع : ‏کار با انواع JOIN در MySQL به صورت عملی
📖 سرفصل : ‏ترکیب LEFT JOIN و INNER JOIN در یک کوئری

‏وقتی LEFT JOIN و INNER JOIN رو قاطی می‌کنی، اول INNER JOIN رو بنویس تا فیلترش زودتر اعمال شه و سرعتت بره بالا 🚀.

‏اگه تو LEFT JOIN شرط WHERE گذاشتی، حواست باشه! ممکنه ردیف‌هایی که انتظار داری رو نشون نده. به جاش بذار تو ON!💡

‏یادت باشه، LEFT JOIN همه ردیف‌های جدول سمت چپ رو میاره، حتی اگه تو جدول سمت راست چیزی پیدا نکنه. با INNER JOIN فقط ردیف‌های مشترک رو داری.

‏وقتی چندتا JOIN داری، ترتیبشون خیلی مهمه! اول اونایی که بیشتر فیلتر می‌کنن رو بذار. اینجوری MySQL کمتر گیج می‌زنه.🤓

‏یه وقتایی می‌تونی به جای ترکیب JOINها از subquery استفاده کنی. شاید خوندنش راحت‌تر باشه، ولی حواست به performance باشه!🔥

‏اگه میخوای ردیف‌هایی از LEFT JOIN رو پیدا کنی که تو جدول سمت راست نیستن، از WHERE [نام ستون] IS NULL استفاده کن. خیلی کار راه بندازه! 😎

‏تو ترکیب JOINها، اسم جدول‌ها رو کوتاه کن (alias) تا کوئریت خواناتر شه. مثلاً به جای customers بنویس c. 😇

‏اگه LEFT JOIN زدی و دیدی داره خیلی کند کار می‌کنه، حتماً ایندکس‌هات رو چک کن. شاید یه ایندکس کم داری!🤔

‏موقعی که LEFT JOIN و INNER JOIN رو ترکیب می‌کنی، حواست باشه کدوم جدول اصلیته. یعنی کدوم جدولیه که حتماً باید همه‌ی ردیف‌هاش باشه.🫂

‏برای اینکه بفهمی کوئریت درست کار می‌کنه، اول یه مثال کوچیک با داده‌های تستی بزن. بعد برو سراغ داده‌های اصلی.💯


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💡 نکته #SQLite

🟣 موضوع : ‏بررسی و مقایسه انواع ذخیره‌سازی داده‌ها در SQLite
📖 سرفصل : ‏کاربرد JSON در سناریوهای مختلف

نکته 1:
‏وقتی داری اطلاعات تنظیمات (Configuration) رو ذخیره می‌کنی، JSON بهترینه! به جای ده‌ها ستون، کل تنظیمات رو تو یه ستون JSON بریز. ⚙️💡

نکته 2:
‏برای ذخیره کردن داده‌های لاگ (Logs) یا رویدادها (Events) که ساختار ثابتی ندارن، JSON خیلی کار راه اندازه. هر رویداد می‌تونه فیلدای خودش رو داشته باشه. 📝

نکته 3:
‏تو برنامه‌نویسی وب، اگه یه API بهت یه JSON بزرگ می‌ده، به جای اینکه همه رو به ستون‌های جدول تبدیل کنی، کل JSON رو تو یه ستون نگه دار. 📦

نکته 4:
‏JSON برای ذخیره کردن متادیتا (Metadata) یا اطلاعات اضافی محصولات (مثل رنگ‌ها، سایزهای مختلف یا امتیاز کاربران) تو یه ستون عالیه. 🏷️

نکته 5:
‏از JSON تو سناریوهایی استفاده کن که نیاز داری داده‌ها رو سریع و منعطف تغییر بدی، بدون اینکه بخوای Schema جدول اصلی رو مدام عوض کنی. 🔄

نکته 6:
‏تو می‌تونی آرایه‌ای از برچسب‌ها (Tags) یا نظرات رو تو یه ستون JSON ذخیره کنی. با توابع JSON می‌تونی راحت توشون جستجو کنی. 🏷️🔍

نکته 7:
‏برای ساخت گزارش‌های تو در تو یا خلاصه‌سازی اطلاعات چند جدول، می‌تونی از توابع JSON برای تولید خروجی JSON نهایی استفاده کنی. 📊

نکته 8:
‏اگه داری یه فروشگاه آنلاین می‌سازی، جزئیات سبد خرید کاربر (Cart Details) مثل لیست محصولات، تعداد و قیمت رو تو یه JSON ذخیره کن. 🛒💰

نکته 9:
‏یه سناریوی خوب دیگه، ذخیره‌سازی گزینه‌های انتخابی کاربر تو پرسشنامه‌هاست. چون هر پرسشنامه می‌تونه پاسخ‌های مختلفی داشته باشه. ✍️

نکته 10:
‏به طور خلاصه، هر جا که ساختار داده انعطاف‌پذیره، JSON بهترین دوست تو تو SQLite است. این بهت قدرت NoSQL می‌ده. 💯🔥😎


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
📚 نکته #SQLite

🟣 موضوع : ‏بررسی و مقایسه انواع ذخیره‌سازی داده‌ها در SQLite
📖 سرفصل : ‏کار با داده‌های JSON در SQLite

نکته 1:
‏عملیات پرس‌وجو (Querying) بر روی داده‌های JSON با استفاده از توابع خانواده json و json که امکان دسترسی به عناصر داخلی سند را فراهم می‌سازند، صورت می‌پذیرد.

نکته 2:
‏برای فیلتر کردن ردیف‌ها بر اساس مقادیر خاص در سند JSON، تابع json\_extract در بند WHERE به کار می‌رود که مقدار استخراج شده را با معیار جستجو مقایسه می‌کند.

نکته 3:
‏تابع json() و json() به عنوان ابزارهای کلیدی برای اصلاح محتوای سند JSON در هنگام عملیات‌های UPDATE مورد استفاده قرار می‌گیرند.

نکته 4:
‏از تابع json\_remove(X, P1, P2, ) برای حذف یک یا چند عنصر مشخص شده توسط مسیر (Path) از یک سند JSON استفاده می‌شود.

نکته 5:
‏تابع جدول مجازی json\_each(X, P) برای تبدیل یک آرایه یا شیء JSON به مجموعه‌ای از ردیف‌های موقتی استفاده می‌شود که هر ردیف، شامل کلید، مقدار و نوع داده عنصر است.

نکته 6:
‏شاخص‌گذاری مؤثر (Effective Indexing) بر روی داده‌های JSON معمولاً با استفاده از ستون‌های مجازی (Generated Columns) که مقادیر پرکاربرد را از JSON استخراج می‌کنند، محقق می‌شود.

نکته 7:
‏برای ایجاد یک شیء یا آرایه JSON جدید به صورت پویا، توابع json(k1, v1, k2, v2, ) و json(v1, v2, ) به کار گرفته می‌شوند.

نکته 8:
‏تابع json(X) و json(X, Y) به عنوان توابع تجمیعی (Aggregate Functions) امکان جمع‌آوری نتایج ردیف‌های کوئری به صورت آرایه یا شیء JSON را فراهم می‌سازند.

نکته 9:
‏از تابع json\_patch(X, Y) برای اعمال یک سند JSON وصله (Y) بر روی سند هدف (X) به منظور انجام اصلاحات دقیق در استاندارد RFC 7396 استفاده می‌شود.

نکته 10:
‏هنگام کار با JSON، باید همواره از صحت مسیرهای (Path) استفاده شده در توابع اطمینان حاصل کرد، چرا که مسیر نامعتبر منجر به برگرداندن مقدار NULL یا خطای کوئری می‌شود.


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir