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

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

🟣 موضوع : ‏یادگیری ماشین: ماشین‌های بردار پشتیبان (SVM) - آماده‌سازی داده‌ها برای SVM (Scaling و Normalization)

نکته :

‏داده‌هاتو نرمالایز کن تا SVM گیج نشه و بتونه بهترین مرز رو پیدا کنه. 🎯 خیالت راحت باشه، کارش رو خوب انجام می‌ده!


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

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

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

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

🟣 موضوع : ‏بررسی و مقایسه انواع ذخیره‌سازی داده‌ها در SQLite
📖 سرفصل : ‏ذخیره‌سازی فایل (File-Based Databases)

نکته 1:
‏پایگاه داده‌های فایل-محور (File-Based Databases) در SQLite تمامی ساختار شمای داده، اندیس‌ها و محتوای جدول‌ها را در یک فایل دیسکی منفرد ذخیره می‌کنند.

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

نکته 3:
‏ویژگی اصلی این روش ذخیره‌سازی، تضمین دوام داده‌ها (Data Durability) است؛ به این معنا که داده‌ها حتی پس از قطع برق یا خاموشی سیستم، بر روی دیسک باقی می‌مانند.

نکته 4:
‏مکانیزم تراکنش‌های ACID در این نوع پایگاه داده‌ها از طریق استفاده از فایل ژورنال (Journal File) مجزا برای ثبت تغییرات و امکان بازیابی پس از خطا، پیاده‌سازی می‌شود.

نکته 5:
‏قابلیت حمل بالا (High Portability) فایل پایگاه داده، امکان انتقال آسان پایگاه داده بین پلتفرم‌ها و سیستم‌عامل‌های مختلف را با سادگی کپی کردن فایل فراهم می‌آورد.

نکته 6:
‏عملکرد این پایگاه داده‌ها به طور مستقیم به کارایی سیستم فایل و سرعت عملیات ورودی/خروجی دیسک (Disk I/O) سیستم میزبان بستگی دارد.

نکته 7:
‏برای مدیریت دسترسی همزمان (Concurrency)، SQLite از مکانیزم‌های قفل‌گذاری سطح فایل یا WAL (Write-Ahead Logging) برای کنترل دسترسی فرآیندهای مختلف به فایل استفاده می‌کند.

نکته 8:
‏ساختار فایل پایگاه داده به صورت صفحات با اندازه ثابت سازماندهی شده است که توسط ماژول Pager مدیریت می‌شود و این صفحات بین حافظه کش و دیسک جابه‌جا می‌گردند.

نکته 9:
‏اندازه فیزیکی فایل پایگاه داده فایل-محور توسط حجم داده‌های ذخیره‌شده و نیز مقدار فضای خالی (Free Space) که به دلیل حذف‌ها در فایل باقی می‌ماند، تعیین می‌شود.

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


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

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

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

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

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

‏Outer Join چیه؟ 🤔 مثل اینه که دو تا جعبه پازل 🧩 رو با هم ترکیب کنی، هم اون تیکه‌های مشترک رو داری و هم تیکه‌هایی که فقط تو یه جعبه هستن!

‏LEFT OUTER JOIN: همه چیز از جعبه‌ی سمت چپ ⬅️ میاد، حتی اگه تو جعبه‌ی راست ➡️ هم چیزی نداشته باشه.

‏RIGHT OUTER JOIN: همه چیز از جعبه‌ی سمت راست ➡️ میاد، حتی اگه تو جعبه‌ی چپ ⬅️ هم چیزی نداشته باشه.

‏FULL OUTER JOIN: این دیگه همه‌ی تیکه‌ها رو با هم داره! 🥳 هم از چپ و هم از راست. (تو MySQL پشتیبانی نمی‌شه، باید با UNION بسازیش)

‏کاربردش کجاست؟ 🧐 مثلاً می‌خوای ببینی کدوم مشتری‌ها خرید نکردن (LEFT OUTER JOIN) یا کدوم محصولات فروش نداشتن (RIGHT OUTER JOIN). 🛒

‏وقتی JOIN می‌زنی، حواست به NULL ها باشه! ⚠️ چون تو بعضی جاها ممکنه یه سری اطلاعات نداشته باشی.

‏ON شرط مهمی داره! 🔑 اون شرطی که مشخص می‌کنه دو تا جدول چجوری باید به هم وصل بشن (مثلاً بر اساس یه شناسه).

‏بهترین کار اینه که قبلش یه نمودار از جدولهات 📊 بکشی و ببینی دقیقا چی می‌خوای.

‏بیشتر تمرین کن! 💪 با مثال‌های مختلف کار کن تا قلقش دستت بیاد. 🤓🔥

‏اگه میخوای بفهمی کدوم ردیف‌ها تو join نیستن، از IS NULL استفاده کن. 💡


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

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

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

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

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

‏وقتی روی ستون‌های JOIN ایندکس می‌زنی، انگار داری برای کتابت فهرست درست می‌کنی. MySQL دیگه کل کتاب (جدول) رو نمی‌گرده و مستقیم میره سر اصل مطلب! 📚🚀

‏قبل از ایندکس، یه EXPLAIN روی کوئری JOIN دارت بزن. احتمالاً type: ALL رو می‌بینی (یعنی فاجعه!). بعد از ایندکس، باید ref یا eq_ref ببینی. این یعنی جادو اتفاق افتاده!

‏ستون‌های کلید خارجی (Foreign Keys) بهترین کاندیدا برای ایندکس شدن هستن. MySQL برای JOIN کردن به شدت ازشون استفاده می‌کنه، پس هواشونو داشته باش. 😉❤️

‏اگه روی دو تا جدول بزرگ JOIN می‌زنی و سرعت کمه، اولین چیزی که باید چک کنی ایندکس روی ستون‌های اتصال هست. معمولاً ۹۰٪ مشکل همینه! 💡

‏ایندکس‌ها هزینه دارن! سرعت INSERT و UPDATE رو یه کم میارن پایین. پس بی‌رویه ایندکس نساز، فقط برای ستون‌هایی که توی JOIN یا WHERE زیاد استفاده میشن. ⚖️

‏یه مثال عملی: جدول orders رو به users با userid جوین می‌کنی؟ حتماً روی orders.userid یه ایندکس بساز و تفاوت سرعت رو ببین. انگار از دوچرخه پریدی پشت فراری! 🏎️💨

‏ایندکس ترکیبی (Composite Index) رو دست کم نگیر! اگه معمولاً روی دو ستون با هم JOIN می‌زنی (مثلاً userid و productid)، یه ایندکس ترکیبی روی هر دو بساز. 🔥

‏یادت باشه ایندکس‌ها فضای دیسک مصرف می‌کنن. یه جورایی داری سرعت رو با فضا معامله می‌کنی. حواست به حجم پایگاه داده‌ات باشه. 💾💰

‏وقتی جدولت خیلی کوچیکه (مثلاً زیر ۱۰۰۰ ردیف)، شاید تاثیر ایندکس رو خیلی حس نکنی. قدرت واقعی ایندکس‌ها توی جدول‌های میلیونی خودشو نشون میده. 💪

‏فقط ستون سمت راست JOIN (جدول دوم) رو ایندکس نکن! گاهی وقتا ایندکس کردن ستون جدول اول هم به بهینه‌ساز MySQL کمک بزرگی می‌کنه. هر دو طرف رو بررسی کن. 🧐🔍


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

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

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

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

🟣 موضوع : ‏پیش‌بینی فروش

نکته :

‏اگه داده‌هات دسته بندی شده هستن، از روش‌های مناسب برای اون نوع داده‌ها استفاده کن. 📈


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

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

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

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

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

نکته 1:
‏json_object چیه؟ 🤔 این تابع بهت کمک می‌کنه تا یه سری جفت کلید و مقدار رو بگیری و به صورت یه آبجکت JSON معتبر که با شروع می‌شه، تحویل بدی. 📝💡

نکته 2:
‏ساختارش اینه: json_object('کلید1', مقدار1, 'کلید2', مقدار2). حتماً تعداد آرگومان‌ها باید زوج باشه (کلید و مقدار). 🔢

نکته 3:
‏این تابع خیلی برای ساخت داده‌های JSON جدید یا تولید گزارش‌های ساختاریافته از داده‌های جدولت کاربردیه. 🏗️

نکته 4:
‏کلیدها رو باید به صورت رشته (TEXT) بدی، اما مقدارها می‌تونن مقادیر ستون‌ها، اعداد، NULL یا حتی JSONهای دیگه باشن. 🔄

نکته 5:
‏اگه مقدار رو NULL بدی، jsonobject اون کلید رو کلاً تو خروجی حذف می‌کنه! برخلاف jsonarray که null می‌ذاره. پس حواست به NULLها باشه. 🚫

نکته 6:
‏تو می‌تونی با json_object و توابع تجمیعی (مثل GROUP BY) یه گزارش بسازی که اطلاعات خلاصه شده رو تو قالب JSON نمایش بده. 📊🔥

نکته 7:
‏برای ساخت یه آبجکت خالی، کافیه تابع رو بدون هیچ آرگومانی صدا بزنی: json_object() خروجی می‌ده . 🚪

نکته 8:
‏تو می‌تونی jsonobject رو با jsonarray ترکیب کنی تا ساختارهای پیچیده‌تر (مثلاً یه آبجکت که خودش یه آرایه داره) بسازی. مثل یه بازی پازل! 🧩

نکته 9:
‏از json_object برای ساختن داده‌های JSON برای ستونی که مخصوص ذخیره‌ی اطلاعات اضافی (Metadata) تو دیتابیس هست، استفاده کن. 🛠️

نکته 10:
‏خروجی این تابع همیشه یه رشته TEXT هست که حاوی یه آبجکت JSON معتبره. می‌تونی این رشته رو مستقیم تو دیتابیس ذخیره کنی. 💾😎


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

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

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

آدرس وبسایت:
https://Tutorial24.ir
‏برش (Slicing) تو پایتون 🐍 یه جورایی مثل برداشتن تیکه های خوشمزه از پیتزاست 🍕!

‏با Slicing میتونید بخشی از لیست یا رشته رو جدا کنید.

‏مثلا:
`my_list = [0, 1, 2, 3, 4, 5]`
‏`print(my_list[1:4])` # خروجی: `[1, 2, 3]`

`my_string = "Hello Python"`
‏`print(my_string[6:])` # خروجی: `Python`

‏خیلی کاربردیه، نه؟ 😉
#پایتون #آموزش

https://t.me/python7ir
💡 نکته #MySQL

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

‏یادگیری اولیه اتصال جداول (JOIN) با مثال مشتری و سفارش، خیلی کاربردیه! 🚀 مثل پیدا کردن صاحب هر خرید.

‏قبل از نوشتن کوئری‌های پیچیده، حتماً ساختار جدول‌هات رو خوب بفهم. 🧐 نقشه راهت رو مشخص می‌کنه!

‏وقتی دو جدول رو وصل می‌کنی، ستون مشترک (کلید خارجی) باید دقیقاً هم‌نام یا با معنی مشابه باشه. اینجوری MySQL گیج نمی‌شه. 😉

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

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

‏اسم ستون‌ها رو موقع SELECT مشخص کن، مخصوصاً وقتی از چند جدول استفاده می‌کنی. مثلاً customers.name نه فقط name. 🤓

‏یادت نره که WHERE رو بعد از JOIN بذاری. اینجوری فیلترت روی نتیجه اتصال اعمال می‌شه. 💯

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

‏اگه کوئری‌هات کند شدن، ابزار EXPLAIN رو فراموش نکن. دقیقاً بهت می‌گه کجای کار ایراد داره. 🔍

‏تمرین، تمرین، تمرین! هرچی بیشتر مثال‌های واقعی بزنی، مفاهیم اتصال جداول برات جا می‌افته. 💪🔥


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

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

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

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

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

نکته 1:
‏محدودیت NOT NULL یک قید یکپارچگی داده‌ای (Data Integrity Constraint) است که اطمینان حاصل می‌کند یک ستون مشخص در هیچ ردیفی از جدول، حاوی مقادیر تهی (NULL) نباشد.

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

نکته 3:
‏اعمال قید NOT NULL به عنوان یک شرط الزامی برای وجود داده در یک فیلد خاص در زمان درج (INSERT) یا به‌روزرسانی (UPDATE) سطرها عمل می‌کند.

نکته 4:
‏محدودیت UNIQUE یک قید یکپارچگی داده‌ای است که تضمین می‌کند تمام مقادیر ذخیره شده در ستون (یا ترکیبی از ستون‌ها) در جدول، منحصربه‌فرد (Unique) باشند.

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

نکته 6:
‏برخلاف PRIMARY KEY که به طور ضمنی شامل NOT NULL است، ستونی که تنها دارای قید UNIQUE است، می‌تواند حاوی یک یا چند مقدار NULL باشد، زیرا NULL به عنوان یک مقدار نامعلوم، از نظر SQLite با دیگر مقادیر NULL برابر نیست.

نکته 7:
‏در صورت تعریف یک قید UNIQUE بر روی چندین ستون (Composite Unique Constraint)، ترکیب مقادیر در این ستون‌ها باید در کل جدول منحصربه‌فرد باشد، نه تک تک مقادیر.

نکته 8:
‏هنگام تعریف جدول، اعمال قیدهای NOT NULL و UNIQUE منجر به ایجاد اندیس‌های مناسب (Indexes) توسط موتور SQLite می‌شود که کارایی عملیات بررسی قیدها را افزایش می‌دهد.

نکته 9:
‏اگرچه کلید اصلی (PRIMARY KEY) هر دو قید UNIQUE و NOT NULL را اعمال می‌کند، محدودیت UNIQUE امکان تعریف کلیدهای کاندید (Candidate Keys) جایگزین را فراهم می‌سازد.

نکته 10:
‏نقض هر یک از این محدودیت‌ها (NOT NULL یا UNIQUE) در حین عملیات DML، منجر به بروز یک خطای یکپارچگی (Integrity Constraint Violation Error) می‌شود و عملیات مربوطه را متوقف می‌سازد.

نکته 11:
`


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

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

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

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

🟣 موضوع : ‏دستورات DDL: ALTER TABLE

نکته :

‏"اگه یه ستون رو nullable کردی (یعنی میتونه NULL باشه)، بعداً میتونی با ALTER TABLE دوباره non-nullable اش کنی! فقط قبلش مطمئن شو که هیچ مقدار NULL توی اون ستون نباشه! 🤔"


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

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

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

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

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

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

‏برای درج یه ردیف ساده، از INSERT INTO table_name (column1, column2) VALUES (value1, value2); استفاده کن. خیلی راحته! 😉💡

‏اگه می‌خوای چند ردیف رو همزمان وارد کنی، می‌تونی از این دستور استفاده کنی: INSERT INTO table_name (column1, column2) VALUES (value1, value2), (value3, value4), ...; 🔥

‏حواست باشه که نوع داده‌ها با مقادیری که وارد می‌کنی، سازگار باشن. مثلاً برای عدد، متن ننویسی! 🙄

‏اگه ستونی auto-increment هست، نیازی نیست مقدارش رو دستی وارد کنی. خودش اتوماتیک پر میشه! 😎

‏اگه می‌خوای همه‌ی ستون‌ها رو پر کنی، می‌تونی اسم ستون‌ها رو حذف کنی: INSERT INTO table_name VALUES (value1, value2, ...); ولی ترتیب رو رعایت کن!

‏برای اینکه خیالت راحت بشه، بعد از درج داده‌ها، یه SELECT * FROM table_name; بزن تا ببینی همه‌چی درست وارد شده باشه.

‏اگه داده‌های تکراری داری، می‌تونی از INSERT IGNORE INTO استفاده کنی تا ردیف‌های تکراری وارد نشن. 👍

‏اگه می‌خوای یه فایل CSV رو وارد کنی، از دستور LOAD DATA INFILE استفاده کن. فقط باید مسیر فایل رو درست بدی. 📂

‏برای تست، می‌تونی اول داده‌های کمتری وارد کنی تا مطمئن بشی همه‌چی درست کار می‌کنه، بعد حجم داده‌ها رو زیاد کنی. 🧪


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

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

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

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

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

نکته 1:
‏از Savepoints استفاده کن! اینا مثل یه "نقطه بازگشت" تو دل یه تراکنش بزرگ هستن. اگه وسط کار بخشی خراب شد، لازم نیست کل تراکنش رو Rollback کنی. 🚩💡

نکته 2:
‏برای سرعت بیشتر، تو برنامه‌نویسی اگه تعداد زیادی INSERT داری، همه رو توی یه BEGIN...COMMIT بزرگ بذار. اینجوری به جای هزاران تراکنش، فقط یک تراکنش داری. 🚀🔥

نکته 3:
‏برای خواندن‌های حساس، می‌تونی از BEGIN IMMEDIATE استفاده کنی. این باعث می‌شه که قبل از شروع خواندن، مطمئن شی هیچ‌کس دیگه مشغول نوشتن نیست و دیتای ثابت می‌خونی. 🔒

نکته 4:
‏اگه با خطای SQLITE_BUSY زیاد روبه‌رو می‌شی، از حالت WAL (Write-Ahead Logging) استفاده کن. این مکانیزم مدیریت قفل و همزمانی SQLite رو بسیار بهتر می‌کنه. 📈

نکته 5:
‏اگه تراکنش‌های خواندنی تو خیلی طولانی هستن، دیتابیس رو با BEGIN TRANSACTION درگیر نکن. چون ممکنه جلوی COMMIT شدن نویسنده‌های دیگه رو بگیره.

نکته 6:
‏برای تضمین ماندگاری کامل داده‌ها بعد از COMMIT (حتی اگه برق بره)، حتماً چک کن که PRAGMA synchronous روی FULL باشه. این یه کم کندتره ولی امن‌تره. 🛡️

نکته 7:
‏اگه در حین یه تراکنش (قبل از COMMIT) برنامه کرش کنه، نگران نباش! SQLite هنگام باز شدن مجدد، به صورت خودکار Rollback رو انجام می‌ده. خودکار و امن!

نکته 8:
‏هرچقدر زودتر بعد از BEGIN کار نوشتنت تموم شد، سریع‌تر COMMIT کن. تراکنش‌های طولانی، بقیه فرآیندها رو منتظر می‌ذارن و باعث مشکل همزمانی می‌شن. ⏱️

نکته 9:
‏برای انتقال پول یا تغییرات وابسته به هم، مطمئن شو که هر دو عملیات (کم کردن و اضافه کردن) توی یه تراکنش واحد قرار دارن. این اصل تجزیه‌ناپذیری (Atomicity) است. 💰⚛️

نکته 10:
‏توی زبان‌های برنامه‌نویسی، همیشه از قابلیت Exception Handling برای مدیریت تراکنش‌ها استفاده کن. اگه خطا (Exception) دیدی، حتماً ROLLBACK رو صدا بزن تا دیتابیس خراب نشه. 💻😎


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

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

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

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

🟣 موضوع : On‑Demand Capacity (DynamoDB)

نکته :

‏فرض کن یه میز شلوغی داری و نمی‌دونی چند نفر قراره بیان. با On-Demand Capacity دیتابیس خودش رو با مهمونات تطبیق می‌ده! 🤩 میز همیشه اندازه است.


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

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

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

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

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

نکته 1:
‏شمای پایگاه داده (Database Schema) در SQLite شامل تعریف ساختار جداول، اندیس‌ها، نماها (Views) و تریگرها (Triggers) است که به صورت متنی در داخل جدول سیستمی sqlite_master ذخیره می‌شود.

نکته 2:
‏هر موجودیت شمای داده در جدول sqlite_master دارای یک سطر است که ستون sql آن حاوی دستور کامل SQL برای ایجاد آن موجودیت، مانند CREATE TABLE یا CREATE INDEX است.

نکته 3:
‏بر خلاف سیستم‌های پایگاه داده بزرگتر که از ابزارهای مدیریتی گسترده استفاده می‌کنند، مدیریت شمای داده در SQLite عمدتاً از طریق اجرای دستورات DDL (Data Definition Language) صورت می‌گیرد.

نکته 4:
‏برای ایجاد جداول جدید و تعریف اولیه شمای داده، از دستور استاندارد CREATE TABLE استفاده می‌شود که شامل تعیین نام ستون‌ها، نوع داده‌ها و محدودیت‌ها است.

نکته 5:
‏اصلاح شمای یک جدول موجود (Schema Evolution) به دلیل محدودیت‌های SQLite، غالباً با اجرای دستور ALTER TABLE ADD COLUMN برای افزودن ستون‌های جدید امکان‌پذیر است.

نکته 6:
‏عملیات پیچیده‌تر اصلاحی مانند حذف یا تغییر نام ستون‌ها در SQLite مستقیماً پشتیبانی نمی‌شود و معمولاً نیازمند اجرای یک فرآیند چند مرحله‌ای (Migration) است.

نکته 7:
‏فرآیند مهاجرت شمای داده (Schema Migration) شامل ایجاد یک جدول موقت با شمای جدید، کپی کردن داده‌ها از جدول قدیمی به جدول جدید و در نهایت حذف جدول قدیمی و تغییر نام جدول موقت است.

نکته 8:
‏شماره نسخه کاربر (User Version) که با PRAGMA user_version قابل تنظیم است، یک مکانیزم متداول برای ردیابی و مدیریت نسخه‌های مختلف شمای پایگاه داده در زمان توسعه می‌باشد.

نکته 9:
‏حذف کامل یک جدول و شمای مرتبط با آن، با اجرای دستور DROP TABLE انجام می‌گیرد که منجر به حذف سطر مربوطه از جدول sqlite_master و آزادسازی فضای اشغال شده توسط آن می‌شود.

نکته 10:
‏استفاده از نماها (Views) در شمای SQLite به منظور تعریف پرس‌وجوهای پیچیده به عنوان یک جدول مجازی، بدون ذخیره فیزیکی داده‌های مرتبط، برای ساده‌سازی دسترسی به داده‌ها مرسوم است.


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

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

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

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

تعادل بین Bias و Variance خیلی مهمه.

🔹 خطای بایاس یا Bias : وقتی مدل خیلی ساده باشه و نتونه الگوهای واقعی داده رو یاد بگیره → Underfitting.
🔹 واریانس Variance : وقتی مدل خیلی پیچیده باشه و روی جزئیات و نویز داده‌ها بیش‌ازحد حساس بشه → Overfitting.

⚖️ هدف یادگیری ماشین پیدا کردن یک نقطه‌ی تعادل بین این دو هست.

مدل‌های ساده (مثل Linear Regression) بایاس بالا ولی واریانس کم دارن.

مدل‌های پیچیده (مثل Random Forest عمیق یا Neural Network بزرگ) واریانس زیاد ولی بایاس کم دارن.

به زبان ساده:

یعنی Bias زیاد = مدل “کُند ذهنه” 🤔

از اون طرف Variance زیاد = مدل “خیلی وسواسیه” 😅

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


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

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

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

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

نکته 1:
‏با WHERE می‌تونی فقط داده‌های مورد نظرتو از جدول انتخاب کنی 💡

نکته 2:
‏می‌تونی مقادیر برابر، بزرگ‌تر، کوچیک‌تر یا بین دو مقدار رو فیلتر کنی 🔥📊

نکته 3:
‏استفاده از AND و OR بهت اجازه می‌ده چند شرط همزمان داشته باشی 💡

نکته 4:
‏برای جستجوی رشته‌ها می‌تونی از LIKE استفاده کنی و الگوهای خاص پیدا کنی 🔤

نکته 5:
‏NOT در WHERE بهت اجازه می‌ده داده‌های مخالف یک شرط رو بگیری 💡🔥

نکته 6:
‏می‌تونی از IN برای بررسی چند مقدار همزمان استفاده کنی 📋

نکته 7:
‏BETWEEN کمک می‌کنه محدوده‌ای از اعداد یا تاریخ‌ها رو راحت انتخاب کنی 💡

نکته 8:
‏NULL هم می‌تونی با WHERE مدیریت کنی و داده‌های خالی رو فیلتر کنی 🔥

نکته 9:
‏استفاده از پرانتز کمک می‌کنه شرط‌های پیچیده‌تر و دقیق‌تر داشته باشی 💡📊

نکته 10:
‏با تمرین WHERE، دیتابیس‌ت رو مثل یه فیلتر دقیق کنترل می‌کنی و همیشه داده درست رو می‌بینی 🔥


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

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

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

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

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

نکته 1:
‏SELECT برای خوندن داده‌ها از جدول استفاده می‌شه؛ مثل یه دوربین که داده‌ها رو برات نشون می‌ده 💡📊

نکته 2:
‏INSERT برای اضافه کردن رکوردهای جدید به جدول کاربرد داره؛ هر چیزی که می‌خوای ذخیره کنی اینجاست 🔥

نکته 3:
‏UPDATE برای تغییر داده‌های موجوده؛ می‌تونی مقادیر ستون‌ها رو به‌روزرسانی کنی 💡

نکته 4:
‏DELETE برای پاک کردن رکوردهاست؛ ولی حواست باشه چون برگشت‌پذیر نیست 🔥

نکته 5:
‏می‌تونی SELECT رو با WHERE محدود کنی تا فقط داده‌های مورد نظرتو ببینی 💡📋

نکته 6:
‏با ORDER BY می‌تونی نتیجه SELECT رو مرتب کنی؛ صعودی یا نزولی 🔝

نکته 7:
‏INSERT می‌تونه چند رکورد همزمان اضافه کنه؛ خیلی سریع و کاربردی 💨🔥

نکته 8:
‏UPDATE رو با شرط WHERE محدود کن تا فقط داده‌های دلخواهت تغییر کنن 💡

نکته 9:
‏DELETE هم با WHERE امن‌تره تا همه جدول پاک نشه 😅

نکته 10:
‏با ترکیب این چهار دستور می‌تونی تمام عملیات پایه‌ای روی دیتابیس SQLite انجام بدی 🔥💡


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

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

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

آدرس وبسایت:
https://Tutorial24.ir
This media is not supported in your browser
VIEW IN TELEGRAM
🔵 آموزش مقدماتی SQL - ساختار دستورات SQL

🟢 کیفیت : متوسط

🔴 توجه کنید این ویدیو با کیفیت متوسط می باشد. طی روزهای آینده نسخه های متفاوت با کیفیت بالاتر یا کم حجم تر از این نسخه در کانال قرار داده خواهد شد.

🟣 آموزش SQL - مقدماتی

🟢 زبان آموزش: فارسی


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

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

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

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

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

نکته 1:
‏برای اینکه محدودیت‌های کلید خارجی واقعاً کار کنن و دیتات سالم بمونه، باید اینو فعال کنی: PRAGMA foreign_keys = ON;. یادت نره! 🔒💡

نکته 2:
‏اگه می‌خوای سرعت همزمانی (خواندن حین نوشتن) رو ببری بالا، حالت WAL رو فعال کن: PRAGMA journal_mode = WAL;. این یکی از بهترین بهینه‌سازی‌هاست! 🚀🔥

نکته 3:
‏برای امنیت بیشتر داده‌ها و تضمین ماندگاری، می‌تونی سطح همگام‌سازی رو بالا ببری: PRAGMA synchronous = FULL;. اگه چه یه کمی کند می‌شه. 🛡️

نکته 4:
‏برای جلوگیری از خطای SQLITEBUSY، به SQLite بگو که قبل از خطا دادن، چند میلی‌ثانیه صبر کنه: PRAGMA busytimeout = 5000; (۵ ثانیه صبر).

نکته 5:
‏اگه می‌خوای حجم بیشتری از RAM رو برای بافر کش اختصاص بدی، می‌تونی سایز رو بر حسب تعداد صفحات تنظیم کنی: PRAGMA cache_size = 15000;. سرعت می‌ره بالا! 🧠

نکته 6:
‏اگه دیتابیس خیلی بزرگی داری و می‌خوای فضای خالی رو حذف کنی، می‌تونی قابلیت تمیزکاری خودکار رو فعال کنی: PRAGMA auto_vacuum = FULL;. 🧹

نکته 7:
‏می‌تونی اندازه صفحه (Page Size) دیتابیس رو با PRAGMA page_size = 8192; بزرگتر کنی. این برای دیتابیس‌های پر از داده‌های حجیم (BLOB) می‌تونه خوب باشه! 📏

نکته 8:
‏اگه می‌خوای موقع کار، یه دیتابیس خارجی رو هم موقتاً به پروژه‌ات وصل کنی، از این دستور استفاده کن: ATTACH DATABASE 'path.db' AS new_db;. خیلی کاربردیه! 🔗

نکته 9:
‏اگر بخوای که NULL در ستون‌های UNIQUE فقط یک بار قابل قبول باشه (مثل بقیه دیتابیس‌ها)، می‌تونی این تنظیم رو عوض کنی: PRAGMA legacyaltertable = OFF; (در نسخه‌های جدید). 🧐

نکته 10:
‏به طور کلی، PRAGMA ابزار تو برای تیونینگ موتور SQLite هست. می‌تونی دیتابیس رو برای سرعت، امنیت، یا همزمانی بهینه‌سازی کنی. 🛠️😎


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

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

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

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

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

نکته 1:
‏کلید اصلی (PRIMARY KEY) یک قید اساسی است که برای تضمین شناسایی منحصر به فرد (Unique Identification) هر سطر در یک جدول در پایگاه داده رابطه‌ای SQLite به کار می‌رود.

نکته 2:
‏یک جدول می‌تواند تنها یک کلید اصلی داشته باشد، که این کلید می‌تواند شامل یک ستون منفرد یا ترکیبی از چندین ستون (Composite Primary Key) باشد.

نکته 3:
‏محدودیت PRIMARY KEY به صورت خودکار محدودیت NOT NULL را بر روی ستون‌های مربوطه اعمال می‌کند و از درج مقادیر تهی (NULL) در آن ستون‌ها جلوگیری می‌نماید.

نکته 4:
‏SQLite به طور داخلی از یک ستون نهان به نام rowid استفاده می‌کند که به صورت یک عدد صحیح ۶۴ بیتی یکتا و افزایشی برای هر سطر عمل می‌کند.

نکته 5:
‏هنگامی که کلید اصلی یک ستون از نوع INTEGER باشد، این ستون به عنوان Alias (نام مستعار) برای ستون نهان rowid عمل می‌کند که به آن Integer Primary Key گفته می‌شود.

نکته 6:
‏استفاده از عبارت کلیدی AUTOINCREMENT همراه با Integer Primary Key تضمین می‌کند که مقادیر کلید اصلی به صورت متوالی صعودی تولید شوند و مقادیر حذف شده مجدداً استفاده نشوند.

نکته 7:
‏اگر کلید اصلی بر اساس یک ستون غیر INTEGER یا یک کلید ترکیبی تعریف شود، SQLite یک اندیس منحصر به فرد (Unique Index) بر روی ستون‌های کلید اصلی ایجاد می‌کند.

نکته 8:
‏کلید اصلی به عنوان نقطه مرجع برای ایجاد کلیدهای خارجی (FOREIGN KEYs) در جداول دیگر عمل کرده و امکان اجرای یکپارچگی ارجاعی (Referential Integrity) را فراهم می‌سازد.

نکته 9:
‏وجود یک کلید اصلی مناسب برای بهینه‌سازی عملکرد پرس‌وجوها و عملیات دستکاری داده‌ها (مانند UPDATE و DELETE) بسیار حیاتی است، زیرا دسترسی سریع به سطرها را تسهیل می‌کند.

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


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

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

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

آدرس وبسایت:
https://Tutorial24.ir
‏GraphQL با پایتون؟ 🤔 چرا که نه!

‏با Graphene، ساخت API های قدرتمند GraphQL خیلی آسون شده. 🚀

‏این فریم‌ورک بهت کمک می‌کنه داده‌هات رو دقیقاً همون‌طوری که می‌خوای دریافت کنی. 🤩

‏آموزش‌های زیادی آنلاین هست، امتحانش کن!
#پایتون #GraphQL #Graphene

https://t.me/python7ir
1