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/ur/2-Working-With-Data/06-non-relational/README.md

158 lines
20 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "c182e87f9f80be7e7cdffc7b40bbfccf",
"translation_date": "2025-09-06T06:36:28+00:00",
"source_file": "2-Working-With-Data/06-non-relational/README.md",
"language_code": "ur"
}
-->
# غیر تعلقاتی ڈیٹا کے ساتھ کام کرنا
|![ [(@sketchthedocs)](https://sketchthedocs.dev) کی طرف سے اسکیچ نوٹ ](../../sketchnotes/06-NoSQL.png)|
|:---:|
|NoSQL ڈیٹا کے ساتھ کام کرنا - _[@nitya](https://twitter.com/nitya) کی طرف سے اسکیچ نوٹ_ |
## [لیکچر سے پہلے کا کوئز](https://ff-quizzes.netlify.app/en/ds/quiz/10)
ڈیٹا صرف تعلقاتی ڈیٹا بیس تک محدود نہیں ہے۔ یہ سبق غیر تعلقاتی ڈیٹا پر مرکوز ہے اور اسپریڈشیٹس اور NoSQL کی بنیادی باتوں کا احاطہ کرے گا۔
## اسپریڈشیٹس
اسپریڈشیٹس ڈیٹا کو ذخیرہ کرنے اور دریافت کرنے کا ایک مقبول طریقہ ہیں کیونکہ اسے ترتیب دینے اور شروع کرنے میں کم محنت درکار ہوتی ہے۔ اس سبق میں آپ اسپریڈشیٹ کے بنیادی اجزاء، فارمولے اور فنکشنز کے بارے میں سیکھیں گے۔ مثالیں مائیکروسافٹ ایکسل کے ساتھ دکھائی جائیں گی، لیکن زیادہ تر حصے اور موضوعات دوسرے اسپریڈشیٹ سافٹ ویئر کے مقابلے میں ملتے جلتے نام اور مراحل رکھیں گے۔
![ایک خالی مائیکروسافٹ ایکسل ورک بک جس میں دو ورک شیٹس ہیں](../../../../2-Working-With-Data/06-non-relational/images/parts-of-spreadsheet.png)
اسپریڈشیٹ ایک فائل ہے اور کمپیوٹر، ڈیوائس، یا کلاؤڈ بیسڈ فائل سسٹم کے فائل سسٹم میں قابل رسائی ہوگی۔ سافٹ ویئر خود براؤزر بیسڈ ہو سکتا ہے یا ایک ایپلیکیشن جو کمپیوٹر پر انسٹال کی جانی چاہیے یا ایپ کے طور پر ڈاؤن لوڈ کی جانی چاہیے۔ ایکسل میں ان فائلوں کو **ورک بکس** کے طور پر بھی بیان کیا جاتا ہے اور اس سبق کے باقی حصے میں یہ اصطلاح استعمال کی جائے گی۔
ایک ورک بک میں ایک یا زیادہ **ورک شیٹس** ہوتی ہیں، جہاں ہر ورک شیٹ کو ٹیبز کے ذریعے لیبل کیا جاتا ہے۔ ورک شیٹ کے اندر مستطیلیں ہوتی ہیں جنہیں **سیلز** کہا جاتا ہے، جو اصل ڈیٹا پر مشتمل ہوتی ہیں۔ ایک سیل قطار اور کالم کے چوراہے پر ہوتا ہے، جہاں کالمز کو حروف تہجی کے کرداروں سے لیبل کیا جاتا ہے اور قطاروں کو عددی طور پر لیبل کیا جاتا ہے۔ کچھ اسپریڈشیٹس میں پہلے چند قطاروں میں ہیڈرز ہوتے ہیں جو سیل میں موجود ڈیٹا کو بیان کرتے ہیں۔
ایکسل ورک بک کے ان بنیادی عناصر کے ساتھ، ہم [مائیکروسافٹ ٹیمپلیٹس](https://templates.office.com/) سے ایک انوینٹری پر مرکوز مثال استعمال کریں گے تاکہ اسپریڈشیٹ کے کچھ اضافی حصوں کا جائزہ لیا جا سکے۔
### انوینٹری کا انتظام کرنا
اسپریڈشیٹ فائل "InventoryExample" ایک فارمیٹڈ اسپریڈشیٹ ہے جس میں انوینٹری کے اندر موجود اشیاء شامل ہیں، جس میں تین ورک شیٹس ہیں، جہاں ٹیبز کو "Inventory List"، "Inventory Pick List" اور "Bin Lookup" کے طور پر لیبل کیا گیا ہے۔ انوینٹری لسٹ ورک شیٹ کی قطار 4 ہیڈر ہے، جو ہیڈر کالم میں ہر سیل کی قدر کو بیان کرتی ہے۔
![مائیکروسافٹ ایکسل میں ایک مثال انوینٹری لسٹ سے ایک نمایاں فارمولہ](../../../../2-Working-With-Data/06-non-relational/images/formula-excel.png)
ایسے مواقع ہوتے ہیں جہاں ایک سیل اپنی قدر پیدا کرنے کے لیے دوسرے سیلز کی قدروں پر منحصر ہوتا ہے۔ انوینٹری لسٹ اسپریڈشیٹ اپنی انوینٹری میں موجود ہر آئٹم کی لاگت کو ٹریک کرتی ہے، لیکن اگر ہمیں انوینٹری میں موجود ہر چیز کی قدر جاننے کی ضرورت ہو تو کیا ہوگا؟ [**فارمولے**](https://support.microsoft.com/en-us/office/overview-of-formulas-34519a4e-1e8d-4f4b-84d4-d642c4f63263) سیل ڈیٹا پر کارروائی کرتے ہیں اور اس مثال میں انوینٹری کی لاگت کا حساب لگانے کے لیے استعمال ہوتے ہیں۔ اس اسپریڈشیٹ نے انوینٹری ویلیو کالم میں ایک فارمولہ استعمال کیا تاکہ مقدار کو QTY ہیڈر کے تحت اور اس کی لاگت کو COST ہیڈر کے تحت سیلز کے ذریعے ضرب دے کر ہر آئٹم کی قدر کا حساب لگایا جا سکے۔ کسی سیل پر ڈبل کلک کرنے یا اسے نمایاں کرنے سے فارمولہ ظاہر ہوگا۔ آپ دیکھیں گے کہ فارمولے ایک مساوی نشان سے شروع ہوتے ہیں، اس کے بعد حساب یا آپریشن ہوتا ہے۔
![مائیکروسافٹ ایکسل میں ایک مثال انوینٹری لسٹ سے ایک نمایاں فنکشن](../../../../2-Working-With-Data/06-non-relational/images/function-excel.png)
ہم انوینٹری ویلیو کی تمام قدروں کو ایک ساتھ شامل کرنے کے لیے ایک اور فارمولہ استعمال کر سکتے ہیں تاکہ اس کی کل قدر حاصل کی جا سکے۔ یہ ہر سیل کو شامل کرکے حساب لگایا جا سکتا ہے، لیکن یہ ایک محنت طلب کام ہو سکتا ہے۔ ایکسل میں [**فنکشنز**](https://support.microsoft.com/en-us/office/sum-function-043e1c7d-7726-4e80-8f32-07b23e057f89) ہوتے ہیں، یا سیل قدروں پر حساب لگانے کے لیے پہلے سے طے شدہ فارمولے۔ فنکشنز کو دلائل کی ضرورت ہوتی ہے، جو حساب لگانے کے لیے درکار قدریں ہیں۔ جب فنکشنز کو ایک سے زیادہ دلائل کی ضرورت ہوتی ہے، تو انہیں ایک خاص ترتیب میں درج کرنے کی ضرورت ہوگی ورنہ فنکشن صحیح قدر کا حساب نہیں لگا سکتا۔ اس مثال میں SUM فنکشن استعمال کیا گیا ہے، اور انوینٹری ویلیو پر موجود قدروں کو کل پیدا کرنے کے لیے دلیل کے طور پر استعمال کیا گیا ہے جو قطار 3، کالم B (جسے B3 بھی کہا جاتا ہے) کے تحت درج ہے۔
## NoSQL
NoSQL ایک چھتری اصطلاح ہے جو غیر تعلقاتی ڈیٹا کو ذخیرہ کرنے کے مختلف طریقوں کے لیے استعمال ہوتی ہے اور اسے "غیر-SQL"، "غیر تعلقاتی" یا "صرف SQL نہیں" کے طور پر سمجھا جا سکتا ہے۔ اس قسم کے ڈیٹا بیس سسٹمز کو 4 اقسام میں تقسیم کیا جا سکتا ہے۔
![ایک کلیدی-قدر ڈیٹا اسٹور کی گرافیکل نمائندگی جو 4 منفرد عددی کلیدوں کو 4 مختلف قدروں کے ساتھ جوڑتی ہے](../../../../2-Working-With-Data/06-non-relational/images/kv-db.png)
> ماخذ [Michał Białecki Blog](https://www.michalbialecki.com/2018/03/18/azure-cosmos-db-key-value-database-cloud/) سے
[کلیدی-قدر](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#keyvalue-data-stores) ڈیٹا بیسز منفرد کلیدوں کو جوڑتے ہیں، جو ایک منفرد شناخت کنندہ ہوتا ہے جو ایک قدر کے ساتھ منسلک ہوتا ہے۔ یہ جوڑے ایک [ہیش ٹیبل](https://www.hackerearth.com/practice/data-structures/hash-tables/basics-of-hash-tables/tutorial/) کے ذریعے مناسب ہیشنگ فنکشن کے ساتھ ذخیرہ کیے جاتے ہیں۔
![ایک گراف ڈیٹا اسٹور کی گرافیکل نمائندگی جو لوگوں، ان کے دلچسپیوں اور مقامات کے درمیان تعلقات کو ظاہر کرتی ہے](../../../../2-Working-With-Data/06-non-relational/images/graph-db.png)
> ماخذ [Microsoft](https://docs.microsoft.com/en-us/azure/cosmos-db/graph/graph-introduction#graph-database-by-example) سے
[گراف](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#graph-data-stores) ڈیٹا بیسز ڈیٹا میں تعلقات کو بیان کرتے ہیں اور نوڈز اور ایجز کے مجموعے کے طور پر ظاہر کیے جاتے ہیں۔ ایک نوڈ ایک ہستی کی نمائندگی کرتا ہے، کچھ ایسا جو حقیقی دنیا میں موجود ہوتا ہے جیسے ایک طالب علم یا بینک اسٹیٹمنٹ۔ ایجز دو ہستیوں کے درمیان تعلق کی نمائندگی کرتے ہیں۔ ہر نوڈ اور ایج میں اضافی معلومات فراہم کرنے کے لیے پراپرٹیز ہوتی ہیں۔
![ایک کالمار ڈیٹا اسٹور کی گرافیکل نمائندگی جو ایک کسٹمر ڈیٹا بیس کو دو کالم فیملیز کے ساتھ دکھاتی ہے جنہیں شناخت اور رابطہ معلومات کہا جاتا ہے](../../../../2-Working-With-Data/06-non-relational/images/columnar-db.png)
[کالمار](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#columnar-data-stores) ڈیٹا اسٹورز ڈیٹا کو کالمز اور قطاروں میں منظم کرتے ہیں جیسے تعلقاتی ڈیٹا ڈھانچہ لیکن ہر کالم کو گروپس میں تقسیم کیا جاتا ہے جنہیں کالم فیملی کہا جاتا ہے، جہاں ایک کالم کے تحت تمام ڈیٹا متعلقہ ہوتا ہے اور ایک یونٹ میں بازیافت اور تبدیل کیا جا سکتا ہے۔
### Azure Cosmos DB کے ساتھ دستاویزی ڈیٹا اسٹورز
[دستاویزی](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#document-data-stores) ڈیٹا اسٹورز کلیدی-قدر ڈیٹا اسٹور کے تصور پر مبنی ہوتے ہیں اور فیلڈز اور اشیاء کے سلسلے پر مشتمل ہوتے ہیں۔ اس سیکشن میں Cosmos DB ایمولیٹر کے ساتھ دستاویزی ڈیٹا بیسز کا جائزہ لیا جائے گا۔
Cosmos DB ڈیٹا بیس "Not Only SQL" کی تعریف پر پورا اترتا ہے، جہاں Cosmos DB کا دستاویزی ڈیٹا بیس ڈیٹا کو کوئری کرنے کے لیے SQL پر انحصار کرتا ہے۔ [پچھلے سبق](../05-relational-databases/README.md) میں SQL کی بنیادی باتوں کا احاطہ کیا گیا ہے، اور ہم یہاں دستاویزی ڈیٹا بیس پر کچھ وہی کوئریز لاگو کر سکیں گے۔ ہم Cosmos DB ایمولیٹر استعمال کریں گے، جو ہمیں ایک کمپیوٹر پر مقامی طور پر ایک دستاویزی ڈیٹا بیس بنانے اور دریافت کرنے کی اجازت دیتا ہے۔ ایمولیٹر کے بارے میں مزید پڑھیں [یہاں](https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator?tabs=ssl-netstd21)۔
ایک دستاویز فیلڈز اور اشیاء کی قدروں کا مجموعہ ہے، جہاں فیلڈز بیان کرتے ہیں کہ اشیاء کی قدر کیا ظاہر کرتی ہے۔ نیچے ایک دستاویز کی مثال دی گئی ہے۔
```json
{
"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`۔ باقی فیلڈز جو underscores کے ساتھ ہیں Cosmos DB کے ذریعے تیار کیے گئے تھے۔
#### Cosmos DB ایمولیٹر کے ساتھ ڈیٹا کا جائزہ لینا
آپ ایمولیٹر کو [ونڈوز کے لیے یہاں](https://aka.ms/cosmosdb-emulator) ڈاؤن لوڈ اور انسٹال کر سکتے ہیں۔ macOS اور Linux کے لیے ایمولیٹر چلانے کے اختیارات کے بارے میں اس [دستاویز](https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator?tabs=ssl-netstd21#run-on-linux-macos) کا حوالہ دیں۔
ایمولیٹر ایک براؤزر ونڈو لانچ کرتا ہے، جہاں ایکسپلورر ویو آپ کو دستاویزات کا جائزہ لینے کی اجازت دیتا ہے۔
![Cosmos DB ایمولیٹر کا ایکسپلورر ویو](../../../../2-Working-With-Data/06-non-relational/images/cosmosdb-emulator-explorer.png)
اگر آپ ساتھ ساتھ چل رہے ہیں، تو "Start with Sample" پر کلک کریں تاکہ ایک نمونہ ڈیٹا بیس جسے SampleDB کہا جاتا ہے تیار کیا جا سکے۔ اگر آپ Sample DB کو تیر پر کلک کرکے بڑھاتے ہیں تو آپ کو ایک کنٹینر جسے `Persons` کہا جاتا ہے ملے گا، ایک کنٹینر اشیاء کے مجموعے کو رکھتا ہے، جو کنٹینر کے اندر دستاویزات ہیں۔ آپ `Items` کے تحت چار انفرادی دستاویزات کا جائزہ لے سکتے ہیں۔
![Cosmos DB ایمولیٹر میں نمونہ ڈیٹا کا جائزہ لینا](../../../../2-Working-With-Data/06-non-relational/images/cosmosdb-emulator-persons.png)
#### Cosmos DB ایمولیٹر کے ساتھ دستاویزی ڈیٹا کو کوئری کرنا
ہم نمونہ ڈیٹا کو بھی کوئری کر سکتے ہیں نئے SQL کوئری بٹن پر کلک کرکے (بائیں سے دوسرا بٹن)۔
`SELECT * FROM c` کنٹینر میں موجود تمام دستاویزات کو واپس کرتا ہے۔ آئیے ایک where clause شامل کریں اور ان سب کو تلاش کریں جن کی عمر 40 سے کم ہے۔
`SELECT * FROM c where c.age < 40`
![Cosmos DB ایمولیٹر میں نمونہ ڈیٹا پر ایک SELECT کوئری چلانا تاکہ ان دستاویزات کو تلاش کیا جا سکے جن کے age فیلڈ کی قدر 40 سے کم ہے](../../../../2-Working-With-Data/06-non-relational/images/cosmosdb-emulator-persons-query.png)
کوئری دو دستاویزات واپس کرتی ہے، نوٹ کریں کہ ہر دستاویز کے age کی قدر 40 سے کم ہے۔
#### JSON اور دستاویزات
اگر آپ جاوا اسکرپٹ آبجیکٹ نوٹیشن (JSON) سے واقف ہیں تو آپ دیکھیں گے کہ دستاویزات JSON سے ملتی جلتی نظر آتی ہیں۔ اس ڈائریکٹری میں ایک `PersonsData.json` فائل موجود ہے جس میں مزید ڈیٹا ہے جسے آپ ایمولیٹر میں `Upload Item` بٹن کے ذریعے Persons کنٹینر میں اپ لوڈ کر سکتے ہیں۔
زیادہ تر معاملات میں، APIs جو JSON ڈیٹا واپس کرتے ہیں انہیں براہ راست منتقل کیا جا سکتا ہے اور دستاویزی ڈیٹا بیسز میں ذخیرہ کیا جا سکتا ہے۔ نیچے ایک اور دستاویز ہے، یہ مائیکروسافٹ ٹویٹر اکاؤنٹ سے ٹویٹس کی نمائندگی کرتی ہے جو ٹویٹر API کا استعمال کرتے ہوئے حاصل کی گئی تھی، پھر Cosmos DB میں داخل کی گئی۔
```json
{
"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. اوپر دائیں جانب نئے کنٹینر بٹن پر کلک کریں
1. موجودہ ڈیٹا بیس (SampleDB) کو منتخب کریں اور کنٹینر کے لیے ایک کنٹینر id بنائیں
1. پارٹیشن کلید کو `/id` پر سیٹ کریں
1. OK پر کلک کریں (آپ اس ویو میں باقی معلومات کو نظر انداز کر سکتے ہیں کیونکہ یہ ایک چھوٹا ڈیٹا سیٹ ہے جو آپ کے کمپیوٹر پر مقامی طور پر چل رہا ہے)
1. اپنے نئے کنٹینر کو کھولیں اور `Upload Item` بٹن کے ساتھ ٹویٹر ڈیٹا فائل اپ لوڈ کریں
کچھ SELECT کوئریز چلانے کی کوشش کریں تاکہ ان دستاویزات کو تلاش کیا جا سکے جن کے text فیلڈ میں Microsoft موجود ہے۔ اشارہ: [LIKE کلیدی لفظ](https://docs.microsoft.com/en-us/azure/cosmos-db/sql/sql-query-keywords#using-like-with-the--wildcard-character) استعمال کرنے کی کوشش کریں۔
## [لیکچر کے بعد کا کوئز](https://ff-quizzes.netlify.app/en/ds/quiz/11)
## جائزہ اور خود مطالعہ
- اس اسپریڈشیٹ میں کچھ اضافی فارمیٹنگ اور خصوصیات شامل ہیں جن کا احاطہ اس سبق میں نہیں کیا گیا۔ اگر آپ مزید سیکھنے میں دلچسپی رکھتے ہیں تو مائیکروسافٹ کے پاس ایکسل پر [دستاویزات اور ویڈیوز کی بڑی لائبریری](https://support.microsoft.com/excel) موجود ہے۔
- اس معمارانہ دستاویز میں غیر تعلقاتی ڈیٹا کی مختلف اقسام کی خصوصیات کی تفصیلات دی گئی ہیں: [غیر تعلقاتی ڈیٹا اور NoSQL](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data)
- Cosmos DB ایک کلاؤڈ بیسڈ غیر تعلقاتی ڈیٹا بیس ہے جو اس سبق میں ذکر کردہ مختلف NoSQL اقسام کو بھی ذخیرہ کر سکتا ہے۔ ان اقسام کے بارے میں مزید جاننے کے لیے اس [Cosmos DB Microsoft Learn Module](https://docs.microsoft.com/en-us/learn/paths/work-with-nosql-data-in-azure-cosmos-db/) کو دیکھیں۔
## اسائنمنٹ
[Soda Profits](assignment.md)
---
**ڈسکلیمر**:
یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔