You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/fa/2-Working-With-Data/06-non-relational/README.md

20 KiB

کار با داده‌ها: داده‌های غیر رابطه‌ای

طرح دستی توسط (@sketchthedocs)
کار با داده‌های NoSQL - طرح دستی توسط @nitya

پیش‌از‌درس: آزمون

داده‌ها محدود به پایگاه‌های داده رابطه‌ای نیستند. این درس بر داده‌های غیر رابطه‌ای تمرکز دارد و اصول اولیه صفحات گسترده و NoSQL را پوشش می‌دهد.

صفحات گسترده

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

یک دفتر کار خالی در Microsoft Excel با دو برگه

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

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

با این عناصر اصلی یک دفتر کار Excel، ما از یک مثال از الگوهای Microsoft که بر موجودی تمرکز دارد استفاده خواهیم کرد تا برخی از بخش‌های اضافی یک صفحه گسترده را مرور کنیم.

مدیریت موجودی

فایل صفحه گسترده‌ای به نام "InventoryExample" یک صفحه گسترده قالب‌بندی شده از اقلام موجود در یک موجودی است که شامل سه برگه است، جایی که زبانه‌ها با نام‌های "Inventory List"، "Inventory Pick List" و "Bin Lookup" برچسب‌گذاری شده‌اند. ردیف ۴ از برگه Inventory List سرصفحه است که مقدار هر سلول در ستون سرصفحه را توصیف می‌کند.

یک فرمول برجسته از یک لیست موجودی نمونه در Microsoft Excel

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

یک تابع برجسته از یک لیست موجودی نمونه در Microsoft Excel

ما می‌توانیم از یک فرمول دیگر برای جمع کردن تمام مقادیر ستون Inventory Value استفاده کنیم تا ارزش کل آن را به دست آوریم. این کار می‌تواند با جمع کردن هر سلول برای تولید مجموع انجام شود، اما این کار می‌تواند خسته‌کننده باشد. Excel دارای توابع یا فرمول‌های از پیش تعریف شده‌ای است که محاسبات را بر روی مقادیر سلول انجام می‌دهند. توابع به آرگومان‌ها نیاز دارند، که مقادیر مورد نیاز برای انجام این محاسبات هستند. هنگامی که توابع به بیش از یک آرگومان نیاز دارند، باید به ترتیب خاصی فهرست شوند وگرنه ممکن است تابع مقدار صحیح را محاسبه نکند. این مثال از تابع SUM استفاده می‌کند و از مقادیر ستون Inventory Value به عنوان آرگومان برای تولید مجموع استفاده می‌کند که در ردیف ۳، ستون B (که به آن B3 نیز گفته می‌شود) فهرست شده است.

NoSQL

NoSQL یک اصطلاح کلی برای روش‌های مختلف ذخیره داده‌های غیر رابطه‌ای است و می‌تواند به عنوان "غیر-SQL"، "غیر رابطه‌ای" یا "نه فقط SQL" تفسیر شود. این نوع سیستم‌های پایگاه داده را می‌توان به ۴ نوع دسته‌بندی کرد.

نمایش گرافیکی یک پایگاه داده کلید-مقدار که ۴ کلید عددی منحصر به فرد را با ۴ مقدار مختلف مرتبط می‌کند

منبع از وبلاگ Michał Białecki

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

نمایش گرافیکی یک پایگاه داده گراف که روابط بین افراد، علایق و مکان‌ها را نشان می‌دهد

منبع از Microsoft

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

نمایش گرافیکی یک پایگاه داده ستونی که یک پایگاه داده مشتری با دو خانواده ستون به نام‌های Identity و Contact Info را نشان می‌دهد

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

پایگاه‌های داده سندی با Azure Cosmos DB

پایگاه‌های داده سندی بر اساس مفهوم پایگاه داده کلید-مقدار ساخته شده‌اند و از مجموعه‌ای از فیلدها و اشیاء تشکیل شده‌اند. این بخش پایگاه‌های داده سندی را با شبیه‌ساز Cosmos DB بررسی خواهد کرد.

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

یک سند مجموعه‌ای از فیلدها و مقادیر اشیاء است، جایی که فیلدها توصیف می‌کنند که مقدار شیء چه چیزی را نشان می‌دهد. در زیر یک مثال از یک سند آورده شده است.

{
    "firstname": "Eva",
    "age": 44,
    "id": "8c74a315-aebf-4a16-bb38-2430a9896ce5",
    "_rid": "bHwDAPQz8s0BAAAAAAAAAA==",
    "_self": "dbs/bHwDAA==/colls/bHwDAPQz8s0=/docs/bHwDAPQz8s0BAAAAAAAAAA==/",
    "_etag": "\"00000000-0000-0000-9f95-010a691e01d7\"",
    "_attachments": "attachments/",
    "_ts": 1630544034
}

فیلدهای مورد توجه در این سند عبارتند از: firstname، id و age. سایر فیلدها با زیرخط‌ها توسط Cosmos DB تولید شده‌اند.

بررسی داده‌ها با شبیه‌ساز Cosmos DB

شما می‌توانید شبیه‌ساز را برای ویندوز از اینجا دانلود و نصب کنید. برای گزینه‌های اجرای شبیه‌ساز برای macOS و Linux به این مستندات مراجعه کنید.

شبیه‌ساز یک پنجره مرورگر را باز می‌کند، جایی که نمای Explorer به شما امکان می‌دهد اسناد را بررسی کنید.

نمای Explorer شبیه‌ساز Cosmos DB

اگر همراه هستید، روی "Start with Sample" کلیک کنید تا یک پایگاه داده نمونه به نام SampleDB ایجاد شود. اگر SampleDB را با کلیک بر روی فلش گسترش دهید، یک کانتینر به نام Persons پیدا خواهید کرد. یک کانتینر مجموعه‌ای از آیتم‌ها را نگه می‌دارد که اسناد درون کانتینر هستند. شما می‌توانید چهار سند فردی را تحت Items بررسی کنید.

بررسی داده‌های نمونه در شبیه‌ساز Cosmos DB

پرس‌وجوی داده‌های سندی با شبیه‌ساز Cosmos DB

ما همچنین می‌توانیم داده‌های نمونه را با کلیک بر روی دکمه پرس‌وجوی SQL جدید (دومین دکمه از سمت چپ) پرس‌وجو کنیم.

SELECT * FROM c تمام اسناد موجود در کانتینر را برمی‌گرداند. بیایید یک عبارت where اضافه کنیم و همه افراد زیر ۴۰ سال را پیدا کنیم.

SELECT * FROM c where c.age < 40

اجرای یک پرس‌وجوی SELECT بر روی داده‌های نمونه در شبیه‌ساز Cosmos DB برای یافتن اسنادی که مقدار فیلد age آن‌ها کمتر از ۴۰ است

پرس‌وجو دو سند را برمی‌گرداند، توجه کنید که مقدار age برای هر سند کمتر از ۴۰ است.

JSON و اسناد

اگر با JavaScript Object Notation (JSON) آشنا باشید، خواهید دید که اسناد شبیه JSON هستند. یک فایل PersonsData.json در این دایرکتوری وجود دارد که می‌توانید آن را به کانتینر Persons در شبیه‌ساز از طریق دکمه Upload Item آپلود کنید.

در بیشتر موارد، APIهایی که داده‌های JSON را برمی‌گردانند می‌توانند مستقیماً منتقل شده و در پایگاه‌های داده سندی ذخیره شوند. در زیر یک سند دیگر آورده شده است، این سند نمایانگر توییت‌هایی از حساب توییتر Microsoft است که با استفاده از API توییتر بازیابی شده و سپس در Cosmos DB وارد شده است.

{
    "created_at": "2021-08-31T19:03:01.000Z",
    "id": "1432780985872142341",
    "text": "Blank slate. Like this tweet if youve ever painted in Microsoft Paint before. https://t.co/cFeEs8eOPK",
    "_rid": "dhAmAIUsA4oHAAAAAAAAAA==",
    "_self": "dbs/dhAmAA==/colls/dhAmAIUsA4o=/docs/dhAmAIUsA4oHAAAAAAAAAA==/",
    "_etag": "\"00000000-0000-0000-9f84-a0958ad901d7\"",
    "_attachments": "attachments/",
    "_ts": 1630537000

فیلدهای مورد توجه در این سند عبارتند از: created_at، id و text.

🚀 چالش

یک فایل TwitterData.json وجود دارد که می‌توانید آن را به پایگاه داده SampleDB آپلود کنید. توصیه می‌شود که آن را به یک کانتینر جداگانه اضافه کنید. این کار را می‌توان با:

  1. کلیک بر روی دکمه کانتینر جدید در بالا سمت راست
  2. انتخاب پایگاه داده موجود (SampleDB) و ایجاد یک شناسه کانتینر برای کانتینر
  3. تنظیم کلید پارتیشن به /id
  4. کلیک بر روی OK (می‌توانید بقیه اطلاعات موجود در این نما را نادیده بگیرید زیرا این یک مجموعه داده کوچک است که به صورت محلی روی کامپیوتر شما اجرا می‌شود)
  5. کانتینر جدید خود را باز کنید و فایل داده‌های توییتر را با دکمه Upload Item آپلود کنید

سعی کنید چند پرس‌وجوی SELECT اجرا کنید تا اسنادی را پیدا کنید که Microsoft در فیلد text آن‌ها وجود دارد. نکته: سعی کنید از کلمه کلیدی LIKE استفاده کنید.

پس‌از‌درس: آزمون

مرور و مطالعه خودآموز

  • برخی از قالب‌بندی‌ها و ویژگی‌های اضافی به این صفحه گسترده اضافه شده‌اند که این درس آن‌ها را پوشش نمی‌دهد. Microsoft دارای کتابخانه بزرگی از مستندات و ویدیوها درباره Excel است اگر علاقه‌مند به یادگیری بیشتر هستید.

  • این مستندات معماری ویژگی‌های انواع مختلف داده‌های غیر رابطه‌ای را شرح می‌دهد: داده‌های غیر رابطه‌ای و NoSQL

  • Cosmos DB یک پایگاه داده غیر رابطه‌ای مبتنی بر ابر است که می‌تواند انواع مختلف NoSQL ذکر شده در این درس را نیز ذخیره کند. درباره این انواع در این ماژول آموزشی Cosmos DB Microsoft بیشتر بیاموزید.

تکلیف

سود نوشابه

سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌هایی باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما هیچ مسئولیتی در قبال سوءتفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.