کتاب SQL for Data Analysis

735 بازدید

کتاب «SQL for Data Analysis: Advanced Techniques for Transforming Data into Insights» نوشته‌ی Cathy Tanimura و منتشرشده توسط O’Reilly در سال ۲۰۲۱، یک راهنمای مدرن و کاربردی برای هر کسی است که می‌خواهد با تکیه بر SQL، از داده‌های خام به بینش‌های تحلیلی و تصمیم‌پذیر برسد.

برخلاف بسیاری از کتاب‌های SQL که روی دستورات پایه و مدیریت دیتابیس تمرکز دارند، این کتاب SQL را از زاویه‌ی تحلیل داده می‌بیند: این‌که چطور با نوشتن کوئری‌های درست، داده را آماده، تمیز، شکل‌دهی و تحلیل کنیم تا مستقیماً به سؤالات کسب‌وکار، محصول یا تحقیق پاسخ بدهیم. نویسنده با تکیه بر تجربه‌ی عملی در محیط‌های مبتنی بر دیتای بزرگ و پلتفرم‌های ابری، نشان می‌دهد چطور SQL را در کنار ابزارهای دیگر علم داده استفاده کنیم، بدون این‌که نقش اصلی SQL در قلب فرایند تحلیل را از دست بدهیم.

این کتاب هم برای کسانی مناسب است که SQL مقدماتی را بلدند و می‌خواهند وارد تحلیل جدی شوند و هم برای تیم‌هایی که قصد دارند استانداردی مشترک برای نوشتن و سازمان‌دهی کوئری‌های تحلیلی در سازمان خود ایجاد کنند.

 

ساختار و مباحث کلیدی کتاب

محتوای کتاب در چند فصل اصلی سازمان‌دهی شده که هر کدام یک نوع تحلیل یا مهارت مهم را با مثال‌های واقعی پوشش می‌دهند:

۱. تحلیل با SQL

  • تعریف تحلیل داده و جایگاه SQL در کنار زبان‌هایی مثل R و Python.
  • بررسی مزایای SQL برای تحلیل‌گر (ساده، قابل اشتراک، نزدیک به منبع داده).
  • آشنایی با انواع دیتابیس (row-store، column-store و سایر زیرساخت‌ها) و این‌که این تفاوت‌ها چطور روی طراحی کوئری و عملکرد تأثیر می‌گذارد.

۲. آماده‌سازی داده برای تحلیل

  • انواع داده (ساخت‌یافته/ناساخت‌یافته، کمی/کیفی، داده اول/دوم/سوم شخص).
  • پروفایل کردن داده با SQL: توزیع‌ها، هیستوگرام‌ها، فراوانی، n-tiles.
  • پاک‌سازی داده با استفاده از CASE، تبدیل نوع‌ها (CAST/CONVERT)، برخورد با NULL‌ها
  • شکل‌دهی داده برای خروجی‌های مختلف: گزارش، داشبورد، آمار یا مدل‌های ML.
  • Pivot و Unpivot با CASE، UNION و توابع PIVOT/UNPIVOT بسته به موتور پایگاه داده.

۳. تحلیل سری زمانی (Time Series Analysis)

  • کار با تاریخ، زمان، تایم‌زون و فرمت‌های مختلف تاریخ در SQL.
  • ساخت ترندهای ساده‌ی زمانی، درصد از کل، درصد تغییر نسبت به دوره‌های قبل.
  • تعریف پنجره‌های غلطان (rolling windows) و محاسبه rolling averages، cumulative sums و… با توابع تحلیلی (window functions).
  • تحلیل فصل‌مندی و مقایسه دوره‌های مختلف (YoY, MoM، مقایسه با چند دوره‌ی قبلی).

۴. تحلیل Cohort و ماندگاری (Retention)

  • تعریف Cohortها و این‌که چرا برای تحلیل رفتار کاربران و مشتریان حیاتی‌اند.
  • ساخت نمودار Retention فقط با SQL، از روی لاگ‌های رویداد یا جدول تراکنش.
  • تعریف Cohort ها از روی اولین رخداد، از روی جدول جداگانه، یا براساس تاریخ‌های متفاوت (مثلاً تاریخ ثبت‌نام، تاریخ خرید اول، تاریخ شروع اشتراک).
  • تحلیل‌های تکمیلی مانند Survivorship، رفتار خرید تکراری (Returnship) و محاسبات تجمعی روی Cohortها.

۵. تحلیل متن با SQL

  • چرا و کِی می‌شود تحلیل متن را مستقیماً با SQL انجام داد و کِی باید سراغ ابزارهای دیگر رفت.
  • کار با ویژگی‌های متن
  • شکستن متن، تمیز کردن و بازشکل‌دهی آن با توابع متنی و الحاق (concatenation).

۶. تشخیص ناهنجاری (Anomaly Detection)

  • محدودیت‌ها و توانمندی‌های SQL در شناسایی outlier ها.
  • پیدا کردن ناهنجاری‌ها با مرتب‌سازی، پرسنایل‌ها و انحراف معیار.
  • استراتژی‌های برخورد با ناهنجاری‌ها: تحقیق، حذف، جایگزینی با مقادیر دیگر یا نرمال‌سازی.

۷. تحلیل آزمایش‌ها و A/B Testing

  • استفاده از SQL برای تحلیل آزمایش‌های کنترل‌شده (A/B Test).
  • پیاده‌سازی تست‌های آماری رایج روی خروجی کوئری‌ها
  • چالش‌های رایج در آزمایش‌ها مثل تخصیص بد variant، outlier ها، window زمانی و مواجهه‌ی تکراری، و راه‌های «نجات» آزمایش‌های مشکل‌دار.
  • تحلیل‌های جایگزین وقتی آزمایش کنترل‌شده ممکن نیست (تحلیل قبل/بعد، natural experiments، تحلیل اطراف یک آستانه).

مهارت‌های تکمیلی و Best Practiceها

در بخش‌های پایانی، کتاب به نکات حرفه‌ای برای کار با SQL در محیط‌های واقعی می‌پردازد:

  • سازمان‌دهی کوئری‌ها، کامنت‌گذاری، فرمت‌بندی (تورفتگی، پرانتزگذاری، ساختاردهی).
  • استفاده از زیرکوئری‌ها، temporary tableها و Common Table Expression (CTE) برای خواناتر و قابل نگه‌داری‌تر شدن تحلیل.
  • مدیریت حجم داده، نمونه‌گیری (sampling) و توجه به حریم خصوصی

مخاطبان کتاب

این کتاب برای افرادی طراحی شده که SQL را به عنوان ابزار اصلی تحلیل خود می‌بینند یا می‌خواهند این کار را بکنند:

  • Data Analyst‌ها و Business Intelligence که هر روز با جدول‌ها و داشبوردها سروکار دارند.
  • مهندسین داده، مهندسین تحلیلی و Analytics Engineer‌ها که باید لایه‌ی تحلیلی روی دیتابیس‌ها و انبار داده بسازند.
  • دانشجویان علم داده، آمار و علوم کامپیوتر که می‌خواهند SQL را فراتر از SELECT و JOIN یاد بگیرند.
  • محصول، مارکتینگ و تحلیل‌گران رشد که به تحلیل Retention، Cohort، سری زمانی و آزمایش‌ها برای تصمیم‌گیری نیاز دارند.

آنچه خواننده به‌دست می‌آورد

بعد از مطالعه‌ی «SQL for Data Analysis»، خواننده:

  • می‌داند چگونه داده‌ی خام را با SQL پروفایل، پاک‌سازی و شکل‌دهی کند تا برای گزارش، داشبورد یا مدل آماده شود.
  • می‌تواند تحلیل‌های سری زمانی، Retention و Cohort را بدون نیاز به جابه‌جایی مداوم بین ابزارهای مختلف، مستقیماً در SQL پیاده‌سازی کند.
  • مهارت استفاده از توابع متنی، regular expression و عملگرهای جست‌وجو را برای تحلیل متن به‌دست می‌آورد.
  • یاد می‌گیرد چطور Outlierها و ناهنجاری‌ها را پیدا و مدیریت کند تا کیفیت تحلیل زیر سؤال نرود.
  • درک روشنی از نحوه‌ی استفاده از SQL برای تحلیل آزمایش‌ها (A/B Testing) و آزمون فرضیه‌های آماری خواهد داشت.
  • با مجموعه‌ای از بهترین رویه‌ها (Best Practices) برای ساختن کوئری‌های قابل خواندن، قابل نگه‌داری و کارآمد در محیط‌های واقعی آشنا می‌شود.

ترکیب این مهارت‌ها باعث می‌شود کتاب «SQL for Data Analysis: Advanced Techniques for Transforming Data into Insights» به یک مرجع ایده‌آل برای افرادی تبدیل شود که می‌خواهند از SQL صرفاً برای «گزارش‌گیری» استفاده نکنند، بلکه آن را به موتور اصلی تحلیل و کشف Insight در سازمان تبدیل کنند.

آیا این مطلب را می پسندید؟
https://tehrandata.org/?p=16993
اشتراک گذاری:

باکس دانلود

گزارش خرابی لینک ها
قوانین و مقررات

توافق فی مابین:

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

کلیه دانشپذیران موظف هستند جهت ثبت نام، فرم‌های ارائه شده را تکمیل نمایند و درصورت عدم تکمیل این فرم ها و مدارک مسئولیت عدم صدور گواهینامه بر عهده خود دانشپذیر می باشد.

اطلاع رسانی:

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

رعایت ضوابط انضباطی:

در صورت حضور در کلاس ها رعایت ضوابط انضباطی مطابق با قوانین دانشگاه تهران الزامی بوده وایجاد هرگونه اغتشاش یا مزاحمت در کلاس های و گروه های آموزشی ممنوع بوده و متخلف شخصا مسئول عواقب چنین مسائلی میباشد.

محتوای آموزشی:

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

مدرسین دوره آموزشی:

اساتید هریک از دروس بر اساس بررسی رزومه و سوابق آموزشی انتخاب شده و تغییر اساتید بدون تصویب در کمیته علمی دوره امکان پذیر نمی باشد. در هر دوره آموزشی به تناسب زمان بندی، از اساتید مورد نظر دعوت به عمل خواهد آمد و درصورت عدم امکان حضور یا بروز مشکل حاد، استاد جایگزین برای آن درس منطبق با معیارها و ضوابط آموزشی دوره انتخاب خواهد شد.

پرداخت شهریه:

کلیه داوطلبان موظف هستند شهریه هر دوره را حداکثر یک هفته قبل از اولین جلسه کلاس ها به صورت نقد یا پرداخت با چک صیادی تسویه نمایند. همچنین فیش واریزی به همراه چک های اقساط و تصویر ثبت چک ها در سامانه صیاد و سایر مدارک لازم میبایست به متصدی ثبت نام تسلیم شود. در غیر اینصورت مراحل ثبت نام تکمیل نشده و صدور گواهی پایان دوره امکانپذیر نخواهد بود.

گواهینامه:

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

 گواهینامه موفقیت پایان دوره در صورت اخذ نمره قبولی و همچنین عدم غیبت بیش از حد مجاز صادر می شود.

حداکثر زمان مجاز غیبت غیرموجه برای دوره ها سه جلسه غیرمتوالی و دو جلسه متوالی می باشد و غیبت بیش از این موارد با هماهنگی پشتیبان و استاد مربوط به هر دوره امکان پذیر خواهد بود.

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

فرمت و ساختار گواهی اعطایی متناسب با ساختار مصوب دانشگاه تهران می باشد و غیر قابل تغییر خواهد بود. همچنین مدت زمان صدور گواهینامه پس از اتمام دوره مطابق با زمان فرآیند صدور گواهی در دانشگاه تهران به انجام خواهد رسید.

نام هر دوره متناسب با عناوین مصوب شده دانشگاه تهران، در گواهینامه ثبت خواهد شد و بکاربردن صفات ، پسوندها و پیشوندهایی (مانند: عالی، خوب، کامل و… )که مطابق با عرف آموزشی و دانشکده نباشد در گواهینامه ثبت نمیگردد.

انصراف:

در صورتی که دانشپذیر به هر دلیلی (از جمله بر اساس مقررات و ضوابط آموزشی و انضباطی، ترک تحصیل و یا …) از حضور در دوره محروم شود، شهریه دوره آموزشی استرداد نخواهد شد.

به دلیل محدودیت ظرفیت اعمال شده و قوانین اداری و مالی، شهریه دوره پس از ثبت نام به هیچ عنوان (از قبیل: ماموریت اداری، انتقالی، مشمولیت نظام وظیفه، مسافرت به خارج، بیماری، تداخل برنامه کلاس ها با برنامه دانشگاه، عدم درک موضوع دوره، مشکلات خانوادگی، فوت نزدیکان و سایر موارد پیش بینی نشده و …) مسترد نخواهد شد.

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

برگزاری کلاس ها:

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

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

در کلاس‌های آنلاین، دانشپذیر میبایست دسترسی به اینترنت جهت حضور در کلاس ها را فراهم نماید.

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

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

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

حوادث غیر مترقبه:

در صورت بروز حوادث غیر مترقبه و پیش بینی نشده (مانند: سیل , زلزله و …) و بروز اشکالاتی که ادامه کار را ممکن نسازد تا عادی شدن شرایط تعهدات طرفین (کان لم یکن) تلقی و هیچ ادعائی به یکدیگر نخواهند داشت.

چت
سلام به سایت تهران‌دیتا خوش اومدی👋 چطور میتونم کمکت کنم؟😊

پشتیبانی آنلاین

سوال یا مشکلی دارید ؟ درخدمتتان هستیم