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

* تعرفه تبلیغات:
https://t.me/+w-o6dHW5O31jMWNk
Download Telegram

📢 خبر فوری: ردیت از آنتروپیک به‌خاطر استفاده غیرمجاز از داده‌ها شکایت کرد!



🌿🌿 در جدیدترین چالش میان شرکت‌های تولیدکننده محتوا و توسعه‌دهندگان هوش مصنوعی بر سر استفاده از داده‌ها، ردیت از شرکت هوش مصنوعی آنتروپیک شکایت کرده است. ردیت مدعی است بات‌های آنتروپیک بارها به طور غیرمجاز به داده‌های این پلتفرم دسترسی پیدا کرده‌اند.



🟣 نقض تعهدات و دسترسی مکرر:

ردیت روز چهارشنبه با ارائه دادخواستی به دادگاه عالی سانفرانسیسکو، آنتروپیک، توسعه‌دهنده چت‌بات محبوب کلود، را به نقض تعهدات متهم کرد. ردیت می‌گوید بات‌های آنتروپیک از ژوئیه ۲۰۲۴ تا کنون بیش از ۱۰۰ هزار بار به پلتفرم آن‌ها دسترسی داشته‌اند. این در حالی است که آنتروپیک پیش‌تر در ماه مه ۲۰۲۴ اعلام کرده بود که دسترسی بات‌های خود به ردیت را مسدود کرده است.


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



#ردیت #آنتروپیک #هوش_مصنوعی #نقض_حریم_خصوصی #داده_آموزشی


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

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

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

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

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

نکته 1:
‏رایج‌ترین نوع، VACUUM ساده است. این دستور کل دیتابیس رو بازسازی می‌کنه تا تمام فضای خالی حذف بشه و حجم فایل کم بشه. 🧹

نکته 2:
‏VACUUM INTO 'مسیر_فایل.db'; یه نوع دیگه است. این دستور دیتابیس رو بازسازی می‌کنه و نتیجه تمیز شده رو تو یه فایل جدید ذخیره می‌کنه. یه راه عالی برای بک‌آپ! 📦💾

نکته 3:
‏اگه نمی‌خوای VACUUM کل دیتابیس رو یکجا قفل کنه، می‌تونی از PRAGMA incremental_vacuum استفاده کنی. این تمیزکاری رو قدم به قدم انجام می‌ده. 🤏💡

نکته 4:
‏PRAGMA incremental_vacuum(N); یه پارامتر N می‌گیره که تعداد صفحاتی که می‌خوای تمیز بشن رو مشخص می‌کنه. اینجوری مدیریت بهتری روی زمان اجرا داری. 📏

نکته 5:
‏یه نوع دیگه از VACUUM، قابلیت PRAGMA auto_vacuum هست. اگه این رو فعال کنی، دیتابیس سعی می‌کنه بعد از حذف و آپدیت‌ها، خودش کم‌کم فضای خالی رو مدیریت کنه. ♻️

نکته 6:
‏سه حالت برای autovacuum داریم: NONE (پیش‌فرض، هیچ کاری نمی‌کنه)، FULL (فضای خالی رو مدیریت می‌کنه) و INCREMENTAL (که با incrementalvacuum کار می‌کنه). 🔢

نکته 7:
‏auto_vacuum = FULL یه سربار (Overhead) کوچیک به عملیات نوشتن اضافه می‌کنه، چون دیتابیس باید بعد از هر تغییر، لیست صفحات خالی رو آپدیت کنه. 🐢

نکته 8:
‏بهترین حالت برای دیتابیس‌های پرکاربرد، استفاده نکردن از VACUUM ساده است. در عوض، PRAGMA auto_vacuum = FULL; رو فعال کن تا دیتابیس خودش رو تمیز نگه داره. 🛡️

نکته 9:
‏VACUUM INTO تنها راهیه که می‌تونی دیتابیس رو تو حالت WAL (Write-Ahead Logging) بدون قفل شدن طولانی مدت، بهینه کنی. 🚀🔥

نکته 10:
‏برای دیدن وضعیت فعلی autovacuum می‌تونی PRAGMA autovacuum; رو اجرا کنی. این یه ابزار مدیریتی ساده و قویه! ⚙️😎


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

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

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

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

🟣 موضوع : ‏Cache و Buffer Pool

نکته :

‏برای تنظیمات کش، بیشتر سراغ تنظیمات SQL Server برو تا تنظیمات سیستم عامل. خود SQL Server بهتر می‌دونه! 👍


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

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

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

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

🟣 موضوع : ‏دستورات DML: INSERT INTO

نکته :

‏اگه جدولت auto-increment داره، نیازی نیست برای اون ستون مقدار بدی! 🤫 SQL خودش خودکار پرش می‌کنه.


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

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

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

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

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

‏یه وقتایی MySQL خودش تصمیم می‌گیره چطوری جدول‌ها رو join کنه، ولی ما می‌دونیم بهتره! 🔥 STRAIGHT_JOIN اینجاست که بهش بگیم "نه، خودمون می‌دونیم کدوم اول باید بیاد!" 😉

‏اگه دیدی query هات کند شده و حس می‌کنی MySQL داره راه رو اشتباه می‌ره، STRAIGHT_JOIN رو امتحان کن. شاید جواب همینه! 💡

‏با STRAIGHT_JOIN، تو دقیقا مشخص می‌کنی کدوم جدول اول باشه و کدوم دوم. اینجوری کنترل بیشتری رو query داری. 😎

‏یادت باشه، STRAIGHT_JOIN برای وقتیه که مطمئنی از ترتیب Join که خودت انتخاب کردی. اگه اشتباه کنی، بدتر می‌شه ها! 😅

‏وقتی داری با جدول‌های خیلی بزرگ سر و کله می‌زنی، STRAIGHT_JOIN می‌تونه یه قهرمان مخفی باشه برای بهینه‌سازی!

‏قبل از اینکه StraightJOIN بزنی، حتما explain plan رو چک کن که ببینی MySQL چطور داره کار می‌کنه. اون وقت بفهمی چرا StraightJOIN لازمه. 🤔

‏با Straight_JOIN، می‌تونی مطمئن بشی که index های درست روی جدول‌ها استفاده می‌شن. خیلی مهمه! 👍

‏اگه query هات گاهی سریع و گاهی کند هستن، شاید دلیلش همین باشه که MySQL همیشه ترتیب Join رو بهینه نمی‌کنه. Straight_JOIN کمک می‌کنه! 🚀

‏فکر کن Straight_JOIN مثل اینه که به GPS بگی "من از این جاده می‌رم!" به جای اینکه بذاری خودش مسیر رو انتخاب کنه. 🗺️

‏حواست باشه که Straight_JOIN بیشتر روی join های دو جدول اثر داره. اگه join های پیچیده‌تری داری، شاید نیاز به راه حل‌های دیگه‌ای باشه. 😉


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

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

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

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

🟣 موضوع : ‏کار با انواع JOIN در MySQL به صورت عملی
📖 سرفصل : ‏سینتکس جایگزین: INNER JOIN با کلمه‌کلیدی USING

‏وقتی اسم ستون‌های کلیدی تو دو تا جدول یکیه، به جای ON t1.id = t2.id خیلی شیک می‌نویسی USING(id). خلاص و مفید! 😎

‏کوئری‌هات کوتاه‌تر و خواناتر میشن. دیگه خبری از اون ON های طولانی و تکراری نیست و کد مثل یه شعر میشه.

‏حواست باشه! USING فقط وقتی کار می‌کنه که اسم ستون‌های مشترک برای جوین، توی هر دو جدول دقیقاً یکی باشه. 😬

‏یه نکته خفن: وقتی از USING استفاده می‌کنی، ستون مشترک فقط یک بار توی خروجی میاد. دیگه ستون تکراری و گیج‌کننده نداری! 💡

‏اگه خواستی روی چند تا ستون جوین بزنی هم مشکلی نیست! خیلی راحت بنویس USING(userid, productid). به همین سادگی! 😉

‏از نظر سرعت و پرفورمنس هیچ فرقی با ON نداره، پس با خیال راحت برای تمیزکاری و خوانایی کد ازش استفاده کن. 🚀

‏USING یه جورایی نسخه امن‌تر و کنترل‌شده‌ی NATURAL JOIN هست. اینجا خودت دقیق میگی روی کدوم ستون‌ها جوین انجام بشه. 🔥

‏برای کار تیمی عالیه. وقتی همکارت کوئری تو رو می‌بینه، سریع می‌فهمه داستان چیه و از کد تمیزت لذت می‌بره. 🤝

‏اگه اسم ستون‌ها فرق می‌کنه (مثلاً customerid و cid)، دیگه USING جواب نمیده و باید بری سراغ همون ON خودمون. 🤷‍♂️

‏یه مثال عملی: برای جوین جدول users و profiles که هر دو userid دارن، فقط بنویس ... JOIN profiles USING(userid). تمام شد و رفت! 🎉


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

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

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

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

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

نکته 1:
‏کاربرد اصلی VACUUM اینه که تمام فضای خالی و استفاده‌نشده‌ای که بعد از حذف و به‌روزرسانی داده‌ها تو دیتابیس مونده رو حذف کنه. 🧹

نکته 2:
‏اگه می‌بینی حجم فایل دیتابیس خیلی بزرگه ولی داده‌های داخلش کمن، یعنی دیتابیس تکه‌تکه (Fragmented) شده. VACUUM اون رو مرتب و فشرده می‌کنه.

نکته 3:
‏با اجرای VACUUM، دیتابیس به صورت کامل بازسازی می‌شه و تمام داده‌ها به ترتیبی بهینه کپی می‌شن. این یه جور ریبوت برای فایل دیتابیسه. 🔄💡

نکته 4:
‏یکی از کاربردهای مخفی VACUUM اینه که می‌تونه ROWIDهای دیتابیس رو پشت سر هم مرتب کنه. این باعث می‌شه دسترسی به رکوردها سریع‌تر بشه. 🚀🔥

نکته 5:
‏برای گرفتن یه بک‌آپ تمیز و بهینه می‌تونی از دستور VACUUM INTO 'backup.db'; استفاده کنی. این یه کپی بدون فضای خالی می‌گیره. 📦💾

نکته 6:
‏اگه می‌خوای از شر VACUUMهای زمان‌بر خلاص بشی، می‌تونی PRAGMA auto_vacuum = FULL; رو فعال کنی تا دیتابیس خودش کم‌کم تمیزکاری کنه. 🛠️

نکته 7:
‏VACUUM باید زمانی اجرا بشه که هیچ تراکنش فعالی در حال اجرا نباشه، چون دیتابیس رو قفل می‌کنه. پس شب‌ها یا در زمان‌های کم‌ترافیک اجراش کن. 🌙🚫

نکته 8:
‏کاربرد VACUUM برای تغییر سایز صفحه (Page Size) هم هست. اگه سایز صفحه رو با PRAGMA عوض کنی، باید VACUUM رو هم بزنی تا تغییر اعمال بشه. 📏

نکته 9:
‏تو می‌تونی با PRAGMA incremental_vacuum(صفحات); فقط یه بخش مشخص از دیتابیس رو تمیز کنی و کل دیتابیس رو یک‌جا درگیر نکنی. 🤏

نکته 10:
‏موقع اجرای VACUUM، اگه مشکلی پیش بیاد، چون عملیات تو یه تراکنش داخلی انجام می‌شه، دیتابیس به حالت قبل برمی‌گرده و خراب نمی‌شه. امنیت در حین تمیزکاری! 🛡️😎


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

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

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

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

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

نکته 1:
‏ذخیره‌سازی داده‌های JSON در SQLite به طور معمول با استفاده از نوع داده TEXT صورت می‌گیرد، به گونه‌ای که کل ساختار JSON به صورت یک رشته متنی در یک ستون ذخیره می‌شود.

نکته 2:
‏اگرچه SQLite یک نوع داده اختصاصی برای JSON ندارد، اما افزونه JSON1 توابع سطح بالا را برای عملیات‌های منطقی بر روی ساختار داخلی این رشته‌ها فراهم می‌آورد.

نکته 3:
‏از نظر کارایی، ذخیره‌سازی مقادیر JSON به صورت TEXT ممکن است سربار I/O بیشتری نسبت به داده‌های ساختاریافته سنتی داشته باشد، به ویژه برای اسناد بسیار بزرگ.

نکته 4:
‏برای اطمینان از صحت قالب‌بندی هنگام درج داده، توصیه می‌شود از تابع json\_valid(X) در عبارت‌های CHECK یا در لایه برنامه استفاده شود.

نکته 5:
‏در سناریوهای با نیاز مکرر به جستجو بر اساس یک عنصر خاص در سند JSON، بهترین رویکرد، استخراج آن عنصر و ذخیره‌سازی آن در یک ستون جداگانه برای ایندکس‌گذاری کارآمد است.

نکته 6:
‏ستون‌های مجازی ذخیره‌شده (Stored Generated Columns) راهکاری مؤثر برای ذخیره‌سازی دائمی مقادیر استخراج شده از JSON با استفاده از توابع json\_extract و اعمال شاخص بر روی این ستون‌ها هستند.

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

نکته 8:
‏هنگام ذخیره‌سازی آرایه‌های بزرگ در JSON، باید ملاحظات عملکردی در خصوص واکشی کل آرایه برای دسترسی به یک عنصر واحد در نظر گرفته شود.

نکته 9:
‏استفاده از توابع JSON امکان درج ایمن داده‌ها را فراهم می‌سازد، به طوری که توابع مانند json و json به طور خودکار از هرگونه کاراکتر خاص فرار (Escape) می‌کنند.

نکته 10:
‏در پایگاه داده‌های مقیاس‌پذیر، مدیریت داده‌های JSON امکان انعطاف‌پذیری در طرحواره را فراهم می‌آورد و نیاز به عملیات ALTER TABLE را برای تغییرات کوچک در ساختار داده کاهش می‌دهد.


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

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

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

آدرس وبسایت:
https://Tutorial24.ir
📢 ساندار پیچای: هوش مصنوعی جایگزین کارکنان نمی‌شود، بلکه باعث رشد بیشتر خواهد شد!

در گفت‌وگویی با بلومبرگ در سان‌فرانسیسکو، مدیرعامل آلفابت، ساندار پیچای، نگرانی‌ها در مورد بیکار شدن گسترده کارمندان به‌خاطر هوش مصنوعی را رد کرد. او تأکید کرد که آلفابت به گسترش خود ادامه خواهد داد و برنامه‌های توسعه تا سال آینده نیز ادامه خواهند داشت.

💬 پیچای گفت:

«انتظار دارم حتی در سال آینده هم به رشد مهندسی‌مان ادامه دهیم، چون هوش مصنوعی باعث بهره‌وری بیشتر می‌شود. این فناوری کارهای تکراری را حذف می‌کند و به مهندسان اجازه می‌دهد روی پروژه‌های مؤثرتر تمرکز کنند.»

🚀 او به جای آن‌که هوش مصنوعی را تهدیدی برای مشاغل بداند، آن را یک «شتاب‌دهنده» توصیف کرد که باعث خلق محصولات جدید و در نتیجه ایجاد فرصت‌های شغلی بیشتر خواهد شد.

📉 اگرچه آلفابت در سال‌های اخیر تعدیل نیرو داشته، اما در سال ۲۰۲۵ این اخراج‌ها محدودتر و هدفمندتر بوده‌اند. مثلاً تنها کمتر از ۱۰۰ نفر در بخش ابری گوگل و صدها نفر در واحد پلتفرم‌ها و دستگاه‌ها تحت تأثیر قرار گرفتند. این در حالی است که در سال‌های ۲۰۲۳ و ۲۰۲۴ آلفابت به ترتیب ۱۲هزار و سپس دست‌کم ۱۰۰۰ نفر را اخراج کرده بود.

🔮 پیچای به پروژه‌های در حال گسترش شرکت مانند خودروهای خودران Waymo، رایانش کوانتومی و رشد سریع YouTube اشاره کرد. فقط در هند، یوتیوب بیش از ۱۰۰ میلیون کانال و ۱۵هزار کانال با بیش از ۱ میلیون دنبال‌کننده دارد!

📌 او در پاسخ به نگرانی‌ها درباره از بین رفتن مشاغل ابتدایی با ظهور هوش مصنوعی، گفت:

«من به نظرات افراد محترمی مثل مدیرعامل Anthropic احترام می‌گذارم. این نگرانی‌ها باید بیان و بررسی شوند.»

🧠 درباره احتمال دستیابی به هوش عمومی مصنوعی (AGI)، پیچای محتاطانه خوش‌بین بود:

«پیشرفت زیادی در پیش است، اما این مسیر ممکن است به سطوحی برسد که موقتاً متوقف شود. هیچ‌کس نمی‌تواند با اطمینان بگوید که حتماً به AGI خواهیم رسید.»


#گوگل #آلفابت #هوش_مصنوعی #AGI #ساندار_پیچای #اخراج #شغل #یوتیوب #Waymo #AI #TechNews

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

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

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

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

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

نکته 1:
‏SQLite تا حد زیادی با استاندارد SQL-92 (استاندارد قدیمی‌تر) سازگاره، اما نه کاملاً! برای اکثر کارهای روزمره، دستوراتش عین بقیه دیتابیس‌ها کار می‌کنه. 🤝💡

نکته 2:
‏یکی از تفاوت‌های بزرگش، سیستم Type Affinity (تمایل نوع داده) هست. یعنی اگه یه ستون رو INTEGER تعریف کنی، باز هم می‌تونی توش TEXT ذخیره کنی! انعطاف‌پذیره. 🤸

نکته 3:
‏SQLite از برخی ویژگی‌های پیشرفته SQL (مثل FULL OUTER JOIN یا توابع پنجره‌ای پیچیده) که تو دیتابیس‌های بزرگ هست، یا پشتیبانی نمی‌کنه یا به شکل محدودتری پشتیبانی می‌کنه. ✂️

نکته 4:
‏دستور ALTER TABLE تو SQLite یه کم محدوده. مثلاً نمی‌تونی ستون رو حذف کنی یا نوع داده ستون رو به راحتی تغییر بدی (باید جدول جدید بسازی!). ⚠️

نکته 5:
‏SQLite از View (نما) پشتیبانی می‌کنه که یه استاندارد SQL هست. می‌تونی کوئری‌های پیچیده‌ات رو به صورت یه جدول مجازی ذخیره کنی. 🚀

نکته 6:
‏توابع تجمعی (Aggregate Functions) مثل COUNT، SUM و AVG که تو استاندارد SQL هستن، به طور کامل تو SQLite پشتیبانی می‌شن و خیلی کاربرد دارن. 💯

نکته 7:
‏با اینکه CHECK جزو استاندارد SQL هست، ولی SQLite تا نسخه‌های اخیر بهش اهمیت نمی‌داد. الان دیگه درست چک می‌کنه (به شرطی که نسخه‌ات جدید باشه). 🔥

نکته 8:
‏SQLite مفهوم کاربر (User) و حق دسترسی (Permission) رو نداره، چون یه دیتابیس تک‌کاربره است. این یکی از تفاوت‌های اصلیش با SQL Server یا PostgreSQL است. 🚫👥

نکته 9:
‏با اینکه نوع داده BOOLEAN تو استاندارد هست، SQLite برای ذخیره کردن مقادیر منطقی (True/False) از INTEGER (0 و 1) استفاده می‌کنه. کاربردی و ساده. 🔢

نکته 10:
‏بهترین نکته: اگرچه SQLite صد در صد استاندارد نیست، اما این سادگی و کمبود ویژگی‌های پیچیده است که اون رو سبک و سریع نگه داشته. برای اپلیکیشن‌های کوچک، عالیه! 😎


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

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

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

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

🟣 موضوع : ‏یادگیری ماشین: شبکه‌های مولد تخاصمی (GAN) - کاربردها - شبیه‌سازی داده‌های پزشکی و افزایش دیتاست‌ها

نکته :

‏با داده‌های ساده‌تر مثل عکس‌های رادیولوژی (X-ray) شروع کنین، بعد برین سراغ اسکن‌های سه‌بعدی پیچیده. اینجوری کار راحت‌تر دستتون میاد! 👨‍⚕️💡


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

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

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

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

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

نکته :

‏ببین کدام سرویس NoSQL ارائه دهنده تخفیف برای استفاده طولانی مدت داره. این می‌تونه کلی هزینه‌هات رو کم کنه. 💰


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

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

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

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

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

نکته 1:
‏تابع json_array یک تابع سازنده (Constructor Function) در SQLite است که برای تولید یک آرایه JSON معتبر (Valid JSON Array) از مجموعه‌ای از مقادیر ورودی به کار می‌رود.

نکته 2:
‏نحو استفاده از این تابع به صورت json_array(value1, value2, ...) است؛ هر آرگومان ورودی به عنوان یک عنصر مجزا در آرایه JSON خروجی قرار می‌گیرد.

نکته 3:
‏مقادیر ورودی به تابع json_array می‌توانند از انواع داده‌ای مختلف باشند، شامل اعداد صحیح، اعشاری، رشته‌های متنی، مقادیر بولی و مقادیر تهی SQL (NULL).

نکته 4:
‏اگر یکی از مقادیر ورودی خود یک رشته JSON معتبر باشد، json_array آن را به عنوان یک عنصر JSON در آرایه نهایی درج می‌کند، نه صرفاً یک رشته متنی خام.

نکته 5:
‏مقدار خروجی تابع json_array همیشه یک رشته متنی است که حاوی ساختار آرایه JSON تولید شده، مطابق با استاندارد رسمی JSON، می‌باشد.

نکته 6:
‏این تابع امکان تجمیع ستون‌ها یا نتایج محاسباتی را به صورت ساختار یافته در یک آرایه JSON واحد فراهم می‌آورد که در گزارش‌گیری‌های داده‌ای تو در تو مفید است.

نکته 7:
‏استفاده از jsonarray در ترکیب با توابعی نظیر GROUP BY و GROUPCONCAT می‌تواند برای جمع‌آوری چندین مقدار از یک گروه در یک ستون آرایه JSON به کار رود.

نکته 8:
‏در صورت ارائه یک مقدار تهی SQL (NULL) به عنوان آرگومان، json_array آن را به مقدار تهی JSON (null) تبدیل کرده و در آرایه درج می‌نماید.

نکته 9:
‏تابع json_array در مواردی که نیاز است داده‌های رابطه‌ای برای انتقال به سامانه‌های مبتنی بر JSON، مانند APIها، به فرمت آرایه استاندارد تبدیل شوند، کاربرد دارد.

نکته 10:
‏این تابع قابلیت ترکیب با سایر توابع JSON، مانند jsonobject یا jsoninsert را دارد تا ساختارهای JSON پیچیده‌تر از قبیل آرایه‌ای از اشیاء، تولید شود.


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

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

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

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

🟣 موضوع : ‏دستور CREATE DATABASE و CREATE TABLE

نکته :

‏اگر می‌خوای یه ستون نتونه خالی باشه، از NOT NULL استفاده کن. اینجوری مطمئن میشی اطلاعات مهم همیشه پر میشن! 😎🔥


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

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

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

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

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

‏حواست به شرط ON باشه! اگه یادت بره، به جای چند تا ردیف، یه عالمه ردیف تکراری و بی‌ربط می‌گیری که اصلاً نمی‌خواستی! 🤯

‏ستون‌های اشتباهی رو به هم وصل نکن! مثل اینه که کلید خونه همسایه رو تو قفل در خودت بچرخونی. 🔑 مطمئن شو users.id به posts.user_id وصل میشه، نه چیز دیگه!

‏شرط JOIN رو تو ON بنویس، نه WHERE. اینجوری کوئری‌ت تمیزتر و خواناتر می‌مونه، مخصوصاً وقتی بعداً بخوای LEFT JOIN هم اضافه کنی. 🧼

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

‏برای جدول‌هات اسم مستعار (alias) بذار! مثلاً FROM users u JOIN profiles p. اینجوری کوئری‌هات کوتاه‌تر و خوشگل‌تر میشن و خوندنشون راحت‌تره. 😎

‏بی‌دلیل یه عالمه جدول رو JOIN نکن! هرچی تعداد JOINها کمتر باشه، کوئری سریع‌تر اجرا میشه. فقط جدول‌هایی که واقعاً لازم داری رو به مهمونی دعوت کن. 🚀

‏مطمئن شو نوع داده‌ی ستون‌هایی که JOIN می‌کنی یکسانه (مثلاً هر دو INT). اگه یکی INT و یکی VARCHAR باشه، سرعت کوئری‌ت خیلی میاد پایین. 🐢

‏اگه هر دو جدول یه ستون با اسم مشابه دارن (مثلاً id)، حتماً اسم جدول رو هم قبلش بیار: users.id. وگرنه MySQL گیج میشه که کدوم id رو می‌خوای! 🤔

‏روی ستون‌هایی که باهاشون JOIN می‌کنی حتماً ایندکس (Index) بذار. ایندکس مثل یه فهرست سرعتی عمل می‌کنه و سرعت JOIN رو فوق‌العاده بالا می‌بره! ⚡️🔥

‏حواست به بزرگی و کوچکی حروف (Case-Sensitivity) باشه! ممکنه تو دیتابیس تو 'Ali' با 'ali' فرق داشته باشه و JOIN شما به خاطر همین چیز ساده کار نکنه. 🕵️‍♂️💡


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

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

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

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

🟣 موضوع : ‏مثال‌های معروف Graph (Neo4j، JanusGraph)

نکته :

‏برای شروع سریع با Neo4j، حتماً Neo4j Desktop رو امتحان کن. 💻 خیلی راحت بالا میاد و می‌تونی کد بزنی!


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

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

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

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

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

نکته 1:
‏کلید خارجی (FOREIGN KEY) یک قید مرجع است که برای برقراری و اجرای یکپارچگی ارجاعی (Referential Integrity) بین دو جدول در پایگاه داده SQLite به کار می‌رود.

نکته 2:
‏کلید خارجی ستونی (یا مجموعه‌ای از ستون‌ها) در جدول فرزند (Child Table) است که به ستون کلید اصلی (PRIMARY KEY) یا کلید منحصر به فرد (UNIQUE KEY) در جدول والد (Parent Table) ارجاع می‌دهد.

نکته 3:
‏برای فعال‌سازی پشتیبانی از کلیدهای خارجی در SQLite، باید عبارت PRAGMA foreign_keys = ON; را پیش از اجرای هرگونه عملیات دستکاری داده‌ها (DML) اجرا نمود.

نکته 4:
‏قید کلید خارجی تضمین می‌کند که هر مقداری در ستون کلید خارجی، حتماً یک مقدار متناظر در ستون ارجاعی جدول والد داشته باشد، یا مقدار آن NULL باشد.

نکته 5:
‏SQLite از اعمال‌های ارجاعی (Referential Actions) پشتیبانی می‌کند که واکنش سیستم را هنگام حذف (ON DELETE) یا به‌روزرسانی (ON UPDATE) سطر در جدول والد مشخص می‌سازد.

نکته 6:
‏اعمال‌های ارجاعی شامل: NO ACTION (جلوگیری از تغییر)، RESTRICT (عملکردی شبیه به NO ACTION)، CASCADE (اعمال تغییر به سطرهای مرتبط فرزند)، SET NULL (مقداردهی NULL به کلید خارجی فرزند) و SET DEFAULT هستند.

نکته 7:
‏گزینه ON DELETE CASCADE تضمین می‌کند که با حذف یک سطر از جدول والد، تمامی سطرهای متناظر در جدول فرزند که به آن ارجاع داده‌اند، به صورت خودکار حذف شوند.

نکته 8:
‏گزینه ON UPDATE CASCADE تضمین می‌کند که با به‌روزرسانی کلید اصلی در جدول والد، مقدار متناظر در ستون کلید خارجی جدول فرزند نیز به صورت خودکار به‌روزرسانی شود.

نکته 9:
‏در SQLite، ستون‌های کلید خارجی، برخلاف کلید اصلی، لزومی به داشتن اندیس ندارند، اما ایجاد اندیس بر روی آن‌ها می‌تواند کارایی عملیات اتصال (JOIN) و بررسی قیدها را به طور قابل توجهی بهبود بخشد.

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

نکته 11:
`


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

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

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

آدرس وبسایت:
https://Tutorial24.ir
🔵 کوییز T-SQL - مبانی SELECT #پایگاه_داده #sql_server #t_sql

🟣 سوال: آیا می‌توان از اپراتور LIKE برای جستجوی داده‌های غیرمتنی استفاده کرد؟

🟢 پاسخ: خیر، اپراتور LIKE تنها برای جستجو در داده‌های متنی مناسب است و برای مقادیر عددی باید از سایر اپراتورها مانند = یا BETWEEN استفاده کرد.
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

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

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

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


هشدار جدی وزارت ارتباطات به سازمان غذا و دارو: راه‌اندازی سامانه ملی بدون مجوز ممنوع!



🌿🌿 وزارت ارتباطات با ارسال نامه‌ای رسمی به رئیس سازمان غذا و دارو، هشدار داده است که هرگونه راه‌اندازی سامانه جدید با گستره ملی، تنها با کسب مجوز از این وزارتخانه امکان‌پذیر خواهد بود.

🟣 طبق گزارش دیجیاتو و بر اساس ضوابط فروش اینترنتی دارو، پلتفرم‌ها برای ارائه خدمات، باید به سامانه واسط تحت نظارت سازمان غذا و دارو متصل شوند. در همین راستا، «محمدمحسن صدر»، معاون وزیر ارتباطات و رئیس سازمان فناوری اطلاعات، از سازمان غذا و دارو خواسته در صورت ایجاد چنین سامانه‌ای، مجوزهای لازم را از وزارت ارتباطات دریافت کند.


🔴 همچنین، سازمان غذا و دارو موظف شده تا زمان تعیین تکلیف نهایی این موضوع، از ادامه اقدامات برای ایجاد این سامانه خودداری کند.


🔵 پیش‌تر در کمیسیون راهبری اقتصاد دیجیتال نیز اعلام شده بود که دستورالعمل ایجاد «سامانه مرجع» سازمان غذا و دارو، مغایر با قانون برنامه و قانون دوام (مدیریت داده‌ها و اطلاعات ملی) است. این قوانین صراحتاً راه‌اندازی هر سامانه‌ای در دولت را به کسب مجوز از وزارت ارتباطات و فناوری اطلاعات منوط کرده‌اند.


#وزارت_ارتباطات #سازمان_غذا_و_دارو #سامانه_ملی #مجوز #اقتصاد_دیجیتال


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

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

آدرس کانال اصلی:

https://t.me/Tu_24

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

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

نکته 1:
‏عبارت PRAGMA tableinfo(tablename) به عنوان ابزاری برای بازرسی ساختار داخلی یک جدول مشخص، شامل فهرست ستون‌ها و جزئیات آن‌ها، به کار می‌رود.

نکته 2:
‏خروجی PRAGMA table_info شامل مجموعه‌ای از ردیف‌ها است که هر ردیف معرف یک ستون بوده و شامل اطلاعاتی نظیر cid (شناسه ستون)، name (نام ستون) و type (نوع داده) می‌باشد.

نکته 3:
‏ستون type در خروجی این PRAGMA، نوع داده‌ای را که در زمان تعریف جدول (DDL) برای ستون تعیین شده است، نمایش می‌دهد، هرچند که SQLite دارای نوع‌بندی پویا است.

نکته 4:
‏ستون notnull در خروجی این تابع، وضعیت اعمال محدودیت NOT NULL را برای ستون مشخص می‌کند؛ مقدار 1 نشان‌دهنده الزام به داشتن مقدار غیرتهی است.

نکته 5:
‏ستون dflt_value (مقدار پیش‌فرض) در خروجی، مقدار تعریف شده برای ستون را در صورت عدم ارائه صریح مقدار در زمان درج (INSERT) نمایش می‌دهد.

نکته 6:
‏ستون pk (کلید اصلی) یک شاخص عددی است که وضعیت ستون را به عنوان بخشی از کلید اصلی (Primary Key) مشخص می‌کند؛ مقادیر بزرگتر از صفر نشان‌دهنده عضویت در کلید اصلی مرکب است.

نکته 7:
‏PRAGMA tableinfo یک روش استاندارد و مستقل از پلتفرم برای استخراج فراداده‌ها (Metadata) یا شمای جدول در محیط SQLite، بدون نیاز به پرس‌وجو از جدول سیستمی sqlitemaster، است.

نکته 8:
‏از PRAGMA table_info می‌توان در برنامه‌های کاربردی برای اعتبارسنجی یا مهاجرت شمای داده (Schema Migration) با بازیابی خودکار ساختار جدول استفاده نمود.

نکته 9:
‏این تابع اطلاعاتی در مورد اندیس‌های ثانویه یا محدودیت‌های کلید خارجی مرتبط با جدول را مستقیماً ارائه نمی‌دهد و برای این منظور نیاز به توابع PRAGMA دیگری نظیر PRAGMA index_list است.

نکته 10:
‏خروجی PRAGMA table_info به صورت یک مجموعه نتایج جدولی ارائه می‌شود که امکان پردازش و تحلیل آن را با استفاده از APIهای برنامه‌نویسی یا ابزارهای خط فرمان فراهم می‌سازد.


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

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

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

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

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

نکته 1:
‏تراکنش (Transaction) در SQLite مجموعه‌ای از یک یا چند عملیات پایگاه داده است که به صورت یک واحد منطقی کار انجام شده تلقی می‌شوند و یا همگی موفق می‌شوند یا همگی لغو می‌گردند.

نکته 2:
‏تراکنش‌ها برای تضمین ویژگی‌های ACID (Atomicity, Consistency, Isolation, Durability) در پایگاه داده ضروری هستند و صحت و قابلیت اطمینان داده‌ها را حفظ می‌کنند.

نکته 3:
‏Atomicity (اتمیسیته) تضمین می‌کند که تمامی عملیات‌های درون یک تراکنش به طور کامل انجام شوند (COMMIT) یا در صورت بروز مشکل به طور کامل لغو شوند (ROLLBACK).

نکته 4:
‏Durability (ماندگاری) اطمینان می‌دهد که پس از موفقیت‌آمیز بودن یک COMMIT، تغییرات اعمال شده به طور دائمی در فایل پایگاه داده ذخیره شده و در برابر خرابی‌های سیستم مقاوم باشند.

نکته 5:
‏SQLite به صورت پیش‌فرض در حالت Auto-commit عمل می‌کند، به این معنا که هر دستور DML به صورت خودکار به عنوان یک تراکنش مستقل تلقی شده و بلافاصله COMMIT می‌شود.

نکته 6:
‏برای اجرای چندین دستور به صورت یک تراکنش واحد، باید از عبارت BEGIN TRANSACTION یا BEGIN IMMEDIATE/DEFERRED استفاده کرده و در نهایت با COMMIT یا ROLLBACK آن را پایان داد.

نکته 7:
‏Isolation (ایزوله‌سازی) تضمین می‌کند که تغییرات ایجاد شده توسط یک تراکنش، تا زمان COMMIT شدن، برای سایر تراکنش‌های در حال اجرا قابل مشاهده نباشد.

نکته 8:
‏SQLite از قفل‌گذاری در سطح فایل برای مدیریت همزمانی (Concurrency) استفاده می‌کند که اجرای تراکنش‌های همزمان را در محیط‌های چند کاربره مدیریت می‌نماید.

نکته 9:
‏استفاده از حالت Write-Ahead Logging (WAL) می‌تواند ایزوله‌سازی و همزمانی را در عملیات خواندن و نوشتن بهبود بخشد، زیرا خواندن‌ها را بدون قفل کردن فایل اصلی داده امکان‌پذیر می‌سازد.

نکته 10:
‏ROLLBACK به عنوان سازوکاری برای بازگرداندن پایگاه داده به وضعیت پایدار قبل از شروع تراکنش عمل می‌کند و تمامی تغییرات موقت اعمال شده در طول آن تراکنش را خنثی می‌سازد.


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

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

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

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