دانشجوی مهندسی کامپیوتر ;)
کلان داده یا همان Big Data چیست؟
1. چکیده
در این تحقیق تلاش شده است تا مفهوم Big Data مورد بحث قرار گرفته و بیان شود که ابتداً مفهوم داده چیست و سپس در چه مواقعی با داده های بزرگ سروکار خواهیم داشت و همین طور دسته بندی داده ها به چه شکلی است و از چه روش هایی برای ذخیره سازی و تحلیل این داده های بزرگ استفاده می شود. سپس نگاهی کلی به استفاده از مفاهیم هوش مصنوعی مثل یادگیری ماشین درباره داده های بزرگ می اندازیم.
2. معنا شناسی کلمه Data
معنای لغت نامه: حقایق و آمار و ارقام ای که در کنار یکدیگر جمع شده اند به منظور رجوع یا آنالیز.
معنای کاربردی: مقادیر، کاراکتر ها و سمبل ای که به وسیله عملیات های کامپیوتری تولید و به کار گرفته می شوند و می تواند ذخیره شده و یا به شکل سیگنال های الکتریکی ارسال شوند و در نوار های مغناطیسی یا نوری یا مکانیکی ذخیره شوند.
کلمه Data حالت جمع کلمه Datum می باشد.
3. انواع داده چیست ؟
داده به چند دسته کلی تقسیم می شوند:
- متن
- اعداد
- عکس
- صوت
- فیلم
این دسته بندی یک دسته بندی کلی است، اما باید توجه داشت که برای مثال طول و عرض جغرافیایی پدیده های طبیعی زمین، اطلاعات آب و هوایی، اطلاعات رشد گیاهان و بررسی های آزمایشگاهی، اطلاعات سیستم های حمل و نقلی عمومی و خصوصی و بسیاری دیگر از داده هایی که به صورت روزمره با آن ها درارتباط هسیتم نیز زیرمجموعه این موارد قرار می گیرند و جدای از این ها نیستند.
4. خصوصیات کلان داده
به صورت غیرآکادمیک و در محیط تجاری برای کلان دادهها و نحوهی کار با آنها چندین ویژگی منحصر به فرد میشمارند که هر یک از آنها به یک بعد از این موضوع اشاره دارد. این ویژگیها که با نام «ویهای بیگ دیتا» (Vs of big data) شناخته می شوند (دلیل آن شروع هر یک از این خصوصیات با حرف V انگلیسی است)، به تعداد مختلفی بیان شدهاند که به جهت رعایت اختصار در زیر به 5 مورد از آنها اشاره شده است:
4.1 . حجم (Volume)
با توجه به اینکه بیش از ۹۰ درصد تمام دادههای امروز در چند سال گذشته به دلیل گسترش سکوهای ارتباط جمعی ایجاد شدهاست، حجم عظیم دادهی تولید شده موجب شگفتی نیست. مقدار فعلی اطلاعات میتواند واقعا سرسامآور باشد و همین ویژگی است که به صورت کاملاً مشخص حتی در نام این حوزه (Big Data) دیده میشود. در اینجا چند مثال آورده شدهاست:
· در هر دقیقه ۳۰۰ ساعت ویدئو در یوتیوب آپلود میشود.
· تخمین زده میشود که ۱.۱ تریلیون عکس در سال ۲۰۱۶ گرفته شدهاست و این تعداد در سال ۲۰۱۷ به میزان ۹ درصد افزایش خواهد یافت. از آنجا که از هر عکس معمولاً چندین نمونه در محیط های گوناگون - خدمات وب، سایتهای ارتباط جمعی و ... – وجود دارد، انتظار میرود تعداد کل عکسها نیز از ۳.۹ تریلیون در سال ۲۰۱۶ به ۴.۷ هزار میلیارد در سال ۲۰۱۷ رشد داشته باشد.
در سال ۲۰۱۶ تخمین زده شد که ترافیک هوایی جهانی بالغ بر6.2 اگزابایت (6.2 میلیارد گیگابایت) در ماه است.
4.2 . سرعت (Velocity)
این ویژگی همانطور که از نام آن برمیآید مربوط به سرعت تولید داده است که با توجه به گسترش وسایل ارتباطات و نیز شرکت حجم عظیمی از مردم جهان در آنها بعید به نظر نمیرسد. اما شاید روبهرو شدن با اعداد و ارقام واقعی آن ما را طور دیگری با این وجه از کلان داده آشنا کند. البته به این موضوع بخش شماره 5 پرداخته شده است.
4.3 . تنوع (Variety)
تنوع، یکی از جالبترین تحولات در تکنولوژی است، همانطور که اطلاعات گوناگونی روز به روز تبدیل به دادههای دیجیتال میشوند. دادههایی که از دادههای سنتی (دادههای ساختاریافته – Structured Data) مانند اطلاعات یک نامهی بانکی (تاریخ و زمان و ...) تا داده های غیرساختاریافته (Unstructured Data) مانند فایلهای صوتی، تصاویر MRI، صفحات وب و ... را دربر میگیرد که در بخش شماره 8 به آن پرداخته خواهد شد.
4.4 . صحت (Veracity)
به نظر میرسد صحت برای دادههای کلان یک ویژگی دور از دسترس باشد. از آنجا که هر یک از ویژگیهای بالا افزایش مییابد، صحت (اعتماد یا اطمینان در دادهها) افت میکند. این مشابه با، اما نه یکسان، اعتبار (Validity) داده است. صحت به منشأ یا منبع قابلیت اطمینان دادهها، بافت آن و میزان معنیدار بودن آن با توجه به تحلیل آن اشاره دارد.
به عنوان مثال در مورد دادههای مربوط به آنچه که مردم در طی پنج سال گذشته در رستورانها و این موارد خرید کردهاند پاسخ به سؤالاتی از قبیل، چه کسی این منبع این دادهها بوده است؟ آنها در جمعآوری دادهها چه روشی را دنبال کردند؟ سازندگان دادهها اطلاعات را خلاصه میکنند؟ آیا اطلاعات توسط شخص دیگری ویرایش شده یا اصلاح شدهاند؟ و ... برای تعیین صحت این اطلاعات ضروری است.
دانش صحت اطلاعات به نوبهی خود به ما کمک میکند تا خطرات مرتبط با تحلیل و تصمیمات کسبوکار را براساس این مجموعه دادهی خاص بیابیم.
4.5 . ارزش (Value)
آخرین، اما مسلماً مهمترین ویژگی، ارزش است. اگر شما ارزش کسبوکار را از دادهها کسب نکنید، ویژگیهای دیگر دادههای بزرگ بیمعنی هستند.
ارزش قابلتوجهی را می توان در دادههای بزرگ یافت؛ از جمله: درک بهتر مشتریان، هدف گذاری بهتر بر روی آن، بهینهسازی فرآیندها و بهبود عملکرد دستگاه و ... . که البته این موضوع نیز با توجه به اهمیت آن به صورت جداگانه در یکی از عناوین مقاله آورده شده است.
5. سرعت تولید داده
سرعت تولید داده در عصر حاضر بسیار بالاست، درصورتی که به روند رشد تعداد کاربران اینترنت نگاهی بکنیم، متوجه خواهیم شد که این رشد کاربران بسیار مشهود می باشد.(شکل 1)
این افزایش کاربران تاثیرات زیادی دارد و مشهود ترین آن ها تولید محتوای بسیار بالا در شبکه های اجتماعی و سایت ها و رسانه های دیجیتال می باشد. در سال 2019 سرعت تولید داده در بعضی از شبکه های اجتماعی و سایت ها در شکل زیر آمده است که خود نشان دهنده سرعت بالای رشد داده در جهان است.(شکل 1)
1. ارزش کلان داده (Big Data Value)
در عصر حاضر که از آن با نام «عصر اطلاعات» (Information Era) نیز یاد میشود، ارزش اطلاعات به طور چشمگیری ملموس است. به طوری که علت ایجاد شرکتهای امنیتی در حوزه سایبری را در بسیاری از کشورها میتوان در این مقوله دانست.
با این تعریف دادههایی که در فضای سایبر تولید و در اینترنت به اشتراک گذاشته میشوند روز به روز و با پیشرفت تکنولوژیهای جمع آوری داده (Data Mining) اهمیت بیشتری پیدا میکنند. اما اگر بخواهیم به لحاظ علمی و مختصر به آن بنگریم ارزش این اطلاعات در 2 رویکرد قابل بررسی است.
رویکرد اول، که مربوط به نتایج مراحل فرآوری داده است، هرمی را نشان میدهد که موسوم به «هرم دانش» (Knowledge Pyramid / DI-KW pyramid) است. در این هرم با فرآوری دادههای خام و انجام عملیاتهای متعدد یک دادهی خام که در ابتدا شاید از ارزش کمی برخوردار باشد تبدیل به تحلیل یا مقالهای پر ارزش میشود که در سطوح مدیریتی بالا از آن استفاده میشود.
رویکرد دوم نیز مربوط به همان مراحل است اما به طور خاص به فرآیند، و نه نتیجه و محصول، میپردازد. به صورتی که در طی این مراحل که دادهی خام ورودی آن است ارزش یک داده افزایش پیدا میکند. البته این رویکرد بیشتر در فضای تجاری کاربرد دارد.
1. کاربردهای کلان داده
در حاضر که به دلیل گستردگی وسایل ارتباطات جمعی، مقیاس بزرکی از داده در ابعاد مختلفی از زندگی اجتماعی در بستر اینترنت تولید میشود باعث شده تا شرکتها و نهادهای مختلف با توجه و اهداف گوناگون با به کارگیری الگوریتمها و تکنیکهای دادهکاوی و نیز با جمعآوری و ذخیرهی داده از این علم در راستای اهداف خود بهره گیرند که کاربردهای این علم را در بسیاری از حوزهها تشکیل میدهد. برخی از این داده ها که در زندگی روزمره با آن برخورد میکنیم به صورت زیر است:
- توییتهای ذخیرهشده در سرورهای توییتر
- اطلاعاتی که گوگل از ردیابی خودروهای سواری بهدست میآورد
- مجموعهای کامل از نتایج انتخابات محلی و ملی کشور که ابتداییترین رکوردها را نیز در بردارد
- اطلاعات شرکتهای بیمه درمانی دربارهی افرادی که تحت درمان قرار میگیرند، نوع معالجات آنها و بیمارستان مورد نظر دارند
- اطلاعات لیست خریدها و مکانهای ثبت شده در کارتهای اعتباری
- اطلاعات زمان، مکان و مدت زمان فیلمهایی که افراد در نتفلیکس تماشا میکنند
حال جدای از تأثیر این موضوع بر اقتصاد و تعاملاتی که در حوزه ی خرید و فروش و معامله ی داده انجام میشود که نمونه ای از آن را در افشای اطلاعات مشترکان توسط فیسبوک در سال 2018 و فروش آن به شرکتی مشاورهای مشاهده شد، میخواهیم به صورت مختصر کاربردهای کلان داده را بررسی کنیم:
1.1 . خدمات بهداشتی، درمانی و سلامت
شرکتهای بیمه سلامت و نیز نهادهای دولتی و بیمارستانی با روی آوردن به ثبت پرونده و اطلاعات به صورت دیجیتالی و تحلیل این دادهها از آن در تصمیمات خود استفاده میکنند. برای مثال تحلیل اطلاعات بیماران در طول سال میتواند به شرکتهای بیمهای در سرمایهگذاری در زمینههای خاصی از بیماریها کمک کند.
1.2 . صنعت انرژی
از کلان داده برای صرفه جویی در انرژی نیز میتوان استفاده کرد. شرکتی به نام Xcel Energy از فناوری Smart grid در ساختمانها استفاده میکند. با این فناوری میتوان میزان مصرف انرژی را کنترل و بهینهسازی کرد. علاوه بر این این شرکت به سازمانها و کمپانیهای مختلف پیشنهاداتی را برای بهبود در ساختن ساختمانهایشان و استفاده انرژی به صورت درست بهینه در بخشهای مختلف ساختمان ارائه میدهد. تمامی این کارها به کمک کلان داده امکان پذیر است.
1.3 . ورزش
باید گفت بیشتر تیمهای محبوب و معروف از کلان داده برای بهبود تیم و ورزشکاران خود استفاده میکنند. برای مثال آنالیزهای ویدیویی یا نصب سنسور روی بدن بازیکنان و جمعآوری اطلاعات بدنی و حرکتی آنها در حین فعالیت و … از کارهایی است که برای استفاده از بیگ دیتا در زمینهی ورزش انجام میشود.
1.4 . شبکههای اجتماعی
یکی از مهمترین کاربردهای این موضوع تحلیل شبکههای اجتماعی است. شناسایی چهره، تطبیق پروفایل و … مثالهایی از این کاربرد هستند. باید گفت شبکههای اجتماعی در ارتباط با بدنه اصلی جامعه هستند و مرتباً به روز میشوند. منبع و کانالی که قبل از به وجود آمدن این شبکهها وجود نداشت و حالا میتواند به رایگان در اختیار شرکتها به شرط رعایت حریم خصوصی افراد قرار بگیرد و به خصوص در علوم اجتماعی بسیار مفید واقع شود.
1.5 . امنیت و تشخیص کلاهبرداری
برخی از نهادهای مالی و نیز بانکها با استفاده از این دادهها تشخیص بسیاری از کلاهبرداریهایی که به واسطهی عدم توانایی تحلیل حجم بالای اطلاعات توان انجام نبود را میسر ساختهاند. یک نمونهی آن تشخیص کارتهای تقلبی و کلاهبرداری کارتهای بانکی است. به این صورت که با تحلیل فاصله زمانی و مکانیِ زمان و مکان استفاده از کارت بانکی و تحلیل آن (از نظر امکانپذیری بودن) تشخیص میدهند که کاربر این کارت مرتکب جرم شده است یا خیر.
2. دسته بندی داده بزرگ (Big Data)
برای داده های بزرگ (Big Data) دسته بندی های متنوعی مطرح شده است که البته این دسته بندی ها برای داده های عادی نیز صدق می کند، ولی معروف ترین دسته بندی که موجود است به شکل زیر می باشد:
- داده ساختار یافته (Structured Data)
- داده بدون ساختار (Unstructured Data)
- داده شبه ساختار یافته (Semi-Structured Data)
2.1 . داده ساختار یافته (Structured Data)
داده ساختاریافته به داده هایی گفته می شود که به گونه ای هستند که قابلیت ذخیره سازی به صورت خودکار و مرتب در داخل پایگاه های داده و فایل ها را دارند و امکان آنالیز آن ها به راحتی فراهم می باشد.
این داده ها حدود 20 درصد داده های امروزه جهان را تشکیل می دهند.
منابع تولید این گونه داده ها به دو دسته کلی 1.انسان، 2.کامپیوتر(ماشین) تقسیم می شوند.
داده هایی که به وسیله انسان تولید می شود، داده هایی هستند مثل تمامی اطلاعاتی که وسیله انسان در سایت ها و سامانه های مجازی وارد می شوند مثل اسم، شماره تلفن، ایمیل، سن و ... یا شامل تمامی کلیک هایی که بر روی لینک ها نقاط مختلف سایت ها، حرکت های بازیکن های یک بازی کامپیوتری و ... هستند.
داده هایی که به واسطه ماشین تولید می شوند نیز شامل طیف گسترده ای هستند، داده های سنسورها، وبلاگ ها، سیستم های مالی و اقتصادی، دستگاه های دارویی و درمانی و حفظ سلامتی، دستگاه های GPS و بسیاری دیگر از داده هایی که با سرعت بالایی در حال تولید هستند به خصوص که در دنیای امروز یکی از حوزه های پر استفاده و مطرح جهان بحث اینترنت اشیاء و خانه ها و شهر های هوشمند هستند که در این صورت سرعت تولید داده به صورت سرسام آوری افزایش خواهد یافت.
دنیای آینده دنیایی خواهد بود که اتومبیل های خودران و خانه های هوشمندی که لوازم خود را به صورت خودکار تامین می کنند شاید ساده ترین دستگاه های تولید داده در آن زمان خواهند بود.
با این همه باید به این موضوع توجه داشت که این دسته از داده ها تنها 20 درصد کل داده هایی است که در جهان تولید می شوند!
2.2 . داده بدون ساختار (Unstructured Data)
این داده ها شامل داده هایی هستند که به دلیل عدم تطابق نوع آن ها با یکدیگر امکان ذخیره سازی خودکار آن ها نیست، و در اکثر موارد لازم است تا در روند ذخیره سازی آن ها انسان دخالت کند.
البته ذخیره سازی آن ها مشکل نیست، مرتب سازی ذخیره ها کار دشواری است، در حالت ساختاریافته به دلیل این که تمامی ریکورد ها داده هایی از یک نوع و شبیه به هم هستند، امکان ذخیره سازی مرتب آن ها به راحتی فراهم است و سپس آنالیز آن ها بر همین اساس صورت می گیرد. اما در حالت بدون ساختار به دلیل این که داده ها از انواع بسیار مختلفی هستند، ذخیره سازی آن ها به گونه ای که قابل آنالیز باشند بسیار دشوار و در بسیاری از موارد تقریبا غیر ممکن است.
این داده ها حدود 80 درصد داده های امروزه جهان را تشکیل می دهند.
منابع تولید این گونه داده ها به دو دسته کلی 1.انسان، 2.کامپیوتر(ماشین) تقسیم می شوند.
داده هایی که توسط انسان ها تولید می شوند، داده هایی هستند مثل داده های شبکه های اجتماعی، داده های ذخیره شده در موبایل (مثل لیست تماس ها، پیامک ها، اطلاعات ذخیره شده اپلیکیشن ها و ...)، داده های موجود در وبسایت ها و ... ؛ این داده ها به گونه ای هستند که امکان این که به صورت مرتب ذخیره شوند تا بتوان آنالیز دقیقی روی آن ها انجام داد نیست. برای توضیح این موضوع برای مثال عکسی که شما در فیسبوک یا اینستاگرام آپلود می کنید یا فیلمی که در یوتیوب یا آپارات تماشا می کنید یا حتی پیامک هایی که رد و بدل می کنید همه این موارد زیر مجموعه این دسته قرار می گیرند.
تحلیل این داده ها کار بسیار دشواری است، برای مثال فرض کنید در یک شرکت به شما گفته شده باشد که فیلم آموزشی راجع به یک موضوع خاص از خودتان ضبط کنید و در اختیار شرکت قرار دهید و همین موضوع را به تعداد خیلی زیادی از کارمندان دیگر شرکت نیز گفته باشند و موضوعات آموزشی هم متفاوت باشد. از سمت دیگر مدیران این شرکت به جهت اطمینان از این که این ویدیو های آموزشی واقعا مرتبط هستند و اطلاعات خوبی را ارائه می دهند، نیاز دارند تا ویدیو ها چک شود. اما این جا با این مشکل رو به رو می شوند که تعداد ویدیو ها بسیار زیاد است و هیچ راهکار کامپیوتری برای چک کردن ویدیو ها به صورت خودکار وجود ندارد. این نمونه ای از نوع داده های بدون ساختار است که نمی توان بدون دخالت انسان به آنالیز آن ها پرداخت. به عنوان مثال می توان به هیت مپ هایی که در سایت های مختلف به منظور کنترل رفتار مشتریان استفاده می شود اشاره کرد.(شکل 4)
نوع دیگر تولید این داده ها توسط ماشین هاست، که می توان به عنوان مثال از عکس های ماهواره ها، داده های آزمایشگاهی از آزمایش های متفاوت، داده های راداری که از تکنولوژی های متفاوتی استفاده می کنند و...، همه این موارد از نوع داده هایی هستند که تحلیل آن ها بدون دخالت انسان امکان پذیر نیست؛ به عنوان مثال عکس های ماهواره ای به صورت متوالی و تعداد بسیار بالا گرفته می شود؛ برای این که متوجه شویم کدام عکس، عکس بهتری است و کیفت آن بالاتر است و موضوعات بهتری از کهکشان ها را و یا حتی از زمین را برای ما مشخص می کند، نیاز است تا انسان در روند کار دخالت کرده و این تفکیک را انجام دهد.
1.1 . داده شبه ساختار یافته (Semi-structured Data)
این داده ها شباهت زیادی به داده های ساختار نیافته دارند، به گونه ای که خط مشخصی بین آن ها وجود ندارد، هرچه علم روز بیشتر پیشرفت می کند و فناوری های جدیدی ابداء می شود، بسیاری از داده های ساختار نیافته را می توان با روش هایی آنالیز کرد و مرتب کرد تا بتوان بدون دخالت انسان به آنالیز آن ها بپردازیم. به همین دلیل بسیاری از داده ها در این دسته قرار می گیرند یعنی با روش هایی می توان به تحلیل آن ها پرداخت.
امکان ذخیره سازی این نوع داده ها در پایگاه داده های عادی مقدور نیست و برای ذخیره سازی آن ها از روش های دیگری استفاده می شود که پایگاه های داده بدون ارتباط (Non-relational Databases) نام دارند. که در بخش 5.2 به توضیح آن می پردازیم.
2. روش های ذخیره سازی
به طور کلی می توان روش های ذخیره سازی را به دو دسته تقسیم کرد:
- استفاده از فایل سیستم ها
- استفاده از پایگاه های داده
2.1 . استفاده از فایل سیستم ها
یکی از روش های سنتی ذخیره سازی استفاده از فایل سیستم است، با استفاده از فایل ها و دایرکتوری ها می توان یک سیستم جامع برای ذخیره سازی هایی یک نرم افزار استفاده کرد. فایل سیستم ها انواع مختلفی دارند که از جمله معروف ترین های آن ها FAT و NTFS هستند. البته فایل سیستم ها گستره بزرگی دارند و این جا نمی خواهیم وارد توضیحات دقیق این موضوع شویم.
2.2 . استفاده از پایگاه های داده
روش ذخیره سازی در پایگاه های داده تفاوت ویژه ای که با فایل ها دارد این است که داده ها در داخل جداول، گراف ها و یا نوع داده های خاصی ذخیره می شوند تا کاربری مناسبی برای موضوعی خاص داشته باشند. بسیاری از کارهای پرتکرار به صورت خودکاری روی پایگاه های داده تعریف شده است، و در زبان هایی که برای درخواست داده به این پایگاه های داده طراحی شده اند گنجانده شده است. که یکی از معروف ترین آن ها SQL است که مخفف Standard Query Language می باشد.
پایگاه های داده دسته بندی های بسیاری دارند، در این جا به بعضی از آن ها اشاره می شود:
- پایگاه های داده متمرکز (Centralized DBs)
- پایگاه های داده غیرمتمرکز (Decentralized DBs)
- پایگاه های داده توزیع شده (Distributed DBs)
- پایگاه های داده رابطه ای (Relational DBs)
- پایگاه های داده غیر رابطه ای (Non-relational DBs)
- پایگاه های داده سلسله مراتبی (Hierarchical DBs)
1.1.1 پایگاه های داده متمرکز (Centralized DBs)
پایگاه های داده ای که تمامی داده ها در یک دیتابیس و به صورت متمرکز ذخیره می شوند و برای دسترسی به داده لازم است تا با همین دیتابیس ارتباط گرفته شود و داده ها تنها در همین جا موجود هستند.
1.1.2 پایگاه های داده غیرمتمرکز (Decentralized DBs)
این پایگاه های داده همانند پایگاه های داده متمرکز هستند با این تفاوت که داده ها در یک نقطه ذخیره نمی شوند و به صورت پخش در سرور ها و پایگاه های داده متفاوتی ذخیره می شوند ولی این سرور ها به یک دیگر متصل هستند و داده های آن ها با یک دیگر هماهنگ است.
1.1.3 پایگاه های داده توزیع شده (Distributed DBs)
این پایگاه های داده به گونه ای هستند که بتوانند داده ها را به صورت غیر متمرکز و در مراکز مختلف نگهداری کنند و نکته مهم این است که در این پایگاه های داده هر داده ذخیره شده در یک نود با نود دیگر متفاوت است و داده ها یکسان نیست.
1.1.4 پایگاه های داده رابطه ای (Relational Databases)
این پایگاه های داده که به پایگاه های داده سنتی معروف هستند به نحوی هستند که جداول آن ها به یک دیگر مرتبط هستند از جمله این پایگاه های داده می توان به Microsoft SQL Management System، MySQL و SQLite اشاره کرد. اتصالات جداول این پایگاه های داده به شکل های مختلفی است که توضیح مختصری در این باره ارائه می کنیم. انواع اتصالات : 1. یک به یک، 2. یک به چند، 3. چند به چند
1. اتصالات یک به یک(one to one relationship): این اتصالات به گونه ایست که یک خط ذخیره شده در یک جدول ( اصطلاحا ریکورد(Record)) تنها به یک خط از جدول دیگری متصل است.
مثال: فرض کنید در یک نرم افزار هر کاربر نام و نام خانوادگی آن در یک جدول ذخیره می شود، این کاربر علاوه بر این اطلاعات، اطلاعات محل سکونت و شماره تلفن نیز دارد. برای ذخیره سازی این اطلاعات بهتر است یک جدول مجزا برای این امر ایجاد شود و به جدول کاربر متصل شود. این اتصال یک اتصال یک به یک است.
1. اتصالات یک به چند(one to many relationship): این اتصالات به گونه ایست که یک خط ذخیره شده در یک جدول به بیش از یک خط در جدول دیگر متصل است.
مثال: فرض کنید یک جدول داشته باشیم که شهر ها در آن ذخیره شده باشند، و علاوه بر این یک جدول داشته باشیم که کاربران ذخیره شده باشند، هر کاربر ساکن یک شهر است. اما اگر برعکس نگاه کنیم خواهیم دید که هر شهر به چندین کاربر متصل می شود، برای جلوگیری از این که اسم شهر ها در جدول شهر ها تکرار شود یک اتصال یک به چند از شهر به جدول کاربر متصل می کنیم.
1. اتصالات چند به چند (many to many relationship): این اتصالات به گونه ایست که چند خط ذخیره شده در یک جدول به چند خط دیگر از جدول دیگر متصل هستند.
مثال: یک کتاب ممکن است چند نویسنده داشته باشد و از طرفی هر نویسنده چندین کتاب نوشته است. این یک رابطه چند به چند است؛ برای این منظور لازم است از یک جدول واسط(pivot-table) استفاده کنیم تا بتوانیم ارتباط موجود را ایجاد کنیم.
1.1.1 پایگاه های داده غیر رابطه ای (Non-relational Databases)
این پایگاه های داده که به پایگاه های داده NoSQL معروف هستند به نحوی هستند که همانند پایگاه های داده سنتی دارای جدول و ارتباط نیستند؛ بلکه به شکل های متفاوتی هستند که به آن ها اشاره کوتاهی می کنیم:
پایگاه Key-Value: این شکل ذخیره سازی بسیار ساده داده ها را ذخیره می کند، یعنی یک keyدارد که برای شناسایی داده است و متمایز کردن آن از دیگران و یک value که مقدار مورد نظر برای ذخیره سازی است. نمونه ای از این نوع ذخیره سازی در مرورگر های وب می باشد که داده های سایت ها را به این شکل ذخیره می کنند. به عنوان مثال در شکل 11 یک نمونه از این نوع ذخیره سازی آمده است.
پایگاه Document-Oriented: این شکل ذخیره سازی به گونه ای است که برای ذخیره سازی داده های همانند JSON عمل می کند، یعنی به جای ایجاد جداول متعدد، یک جدول ایجاد کرده و به صورت شیء گونه ارتباط بین موجودیت ها را برقرار می کند؛ به عنوان مثال در شکل بالا برای ذخیره سازی یک کاربر و محل زندگی او، محل زندگی را به عنوان یکی از JSON ها داخل JSON اطلاعات خود کاربر ذخیره می کند. به عنوان مثال در شکل 12 یک نمونه از این نوع ذخیره سازی آمده است. ( JSON: JavaScript Object Notation)
پایگاه Graph: این روش ذخیره سازی برای داده های بسیار گسترده به کار می رود که از تکنیک های گراف ها برای ذخیره سازی داده استفاده می کند که در این تکنیک ها هم یال ها و هم node ها داده حمل می کنند. در بیشتر شبکه های اجتماعی برای ذخیره سازی داده از این روش استفاده می شود. به عنوان مثال در شکل 13 یک نمونه از این نوع ذخیره سازی آمده است.
پایگاه Wide-Column: این روش شباهت زیادی به روش رابطه ای دارد، با این تفاوت که بجای ذخیره سازی داده به صورت ردیفی، داده ها در یک ردیف و در تعداد ستون های گسترده ذخیره می شوند. به عنوان مثال در شکل 14 یک نمونه از این نوع ذخیره سازی آمده است.
1.1.1 پایگاه های داده سلسله مراتبی (Hierarchical DBs)
این پایگاه های داده به نحوی عمل می کنند که داده ها را به شکل یک درخت و سلسله مراتبی ذخیره می کنند و به یک دیگر متصل هستند. یعنی به عنوان مثال داده های شخصی افراد مثل آدرس خانه و ... که مربوط به یک کاربر هستند در سطح دوم ذخیره می شوند و به همین ترتیب ادامه می دهد.
توجه به این نکته ضروری است که این دسته بندی هایی که برای پایگاه های داده نام بردیم، لزوما مستقل از هم نیستند و ممکن است در بسیاری از موارد به صورت ترکیبی از چند دسته بندی اجرا شود.
ذکر این نکته مهم است که در بسیار از موارد برای کار کردن با Big Data لازم است از file systems ها استفاده شود زیرا داده ها به نحوی هستند که حتی امکان ذخیره سازی آن ها به دلایل مختلف مثل زمانبر بودن، نیازمند بودن به دخالت انسان و ... در پایگاه های داده غیر رابطه ای هم فراهم نمی باشد.
1. روش تحلیل MapReduce
این روش که در بعضی موارد به اشتباه با روش های ذخیره سازی مقایسه می شود، به نوعی می توان گفت روشی است برای به دست آوردن و کشف داده به صورت همزمان.
این روش به گونه ای عمل می کند که تعدادی ورودی دریافت می کند و ابتدا ورودی ها را به دست هایی می شکند (split) سپس هر یک را به شاخه ای موازی ارائه می دهد تا تحیلی روی این داده ها صورت گیرد (map) سپس عملیات کاهش صورت می گیرد و دسته ها مرتب می شوند (reduce) و پس از این خروجی ها ارائه می شوند.(شکل 15) البته ممکن است مراحل بیشتری در این بین انجام شود اما این مراحل سه گانه، مراحل اصلی این روش هستند.
برای این منظور فریم وورک های متفاوتی وجود دارد که از جمله محبوب ترین های آن ها می توان به Hadoop و Spark و Flink اشاره کرد.
1. علم داده چیست؟
با توجه حجم بالای داده های تولید شده در هر دقیقه این موضوع بسیار بدیهیست که برای تحلیل این داده ها نیاز به دانش های گسترده ای در حوزه های مختلف است که بتوان این داده ها را مرتب کرد و تحلیل نمود.
شاید این مسئله مورد سوال قرار گیرد که تحلیل این داده ها چه سودی برای ما خواهد داشت؟ اما همان طور که در بخش های قبل اشاره کردیم این خود داده نیست که برای ما ارزشمند است؛ بلکه تحلیل داده است که به آن ارزش می بخشد وگرنه داشتن داده های متفاوت تا وقتی نتوان از آن ها استفاده مفیدی کرد سودی برای ما نخواهد داشت.
امروز بسیاری از تجارت ها به تحلیل داده های مشتریان خود و مشتریان احتمالی خود و حتی افرادی که از آن ها خرید نمی کنند می پردازند تا بتوانند ابتداً مشتریان خود را حفظ، مشتریان احتمالی را راغب تر به خرید و مشکلی که افرادی غیر مشتری با این تجارت دارند را حل کنند تا حتی بتوانند آن ها را نیز جذب کنند. ازجمله این تلاش ها می توان به تحلیل هایی که اکثر سایت ها امروزه با استفاده از ابزار های تحلیل گر داده مثل Google Analytics , Mouse Flow , Optimizely و ... به تحلیل رفتار افرادی که سایت آن ها را مشاهده می کنند می پردازند. علاوه بر این بسیاری از شرکت ها مثل Facebook , Google , Netflix و ... نیز خود با استفاده از ابزار های خاص و تحلیل های مختص خودشان به تحلیل رفتار مشتریان خود می پردازند و حتی بسیاری از ابزار های مفید برای آنالیز را خود آن ها به بازار ارائه می دهند.
برای تمامی این تحلیل ها نیازمند شناخت راجع به روند تولید داده، نحوه های مختلف آنالیز داده و تحلیل آن و همین طور نحوه های ویژوالایز کردن آن ها بسیار حائذ اهمیت می شود؛ و به همین دلیل بسیاری از شرکت ها نیرو های خاصی برای تحلیل داده و آنالیز آنها و ارائه پیشنهادات در این حوزه دارند.
1. ارتباط ماشین لرنینگ با علم داده
1.1 ماشین لرنینگ چیست؟
تعریف ساده ای که از ماشین لرنینگ می توان ارائه کرد این است که؛ با ارائه مثال، ایجاد تجربه برای ماشین، ارائه ورودی های خاص به ماشین این توانایی را بدهیم که بدون دخالت انسان شروع به یادگیری کند و در آزمایش ها و تصمیم گیری های بعدی بتواند براساس مثال ها و ورودی های اولیه تصمیمات مناسب تری بگیرد.
1.2 حوزه های علم داده
تقسم بندی شکل 16 یکی از معروف ترین تقسیم بندی های علم داده می باشد که طبق آن کل مباحث هوش مصنوعی و ماشین لرنینگ زیرمجموعه علم داده به حساب می آیند.
1.3 ارتباط ماشین لرنینگ و علم داده
ماشین لرنینگ و دیپ لرنینگ برای آنالیز داده مورد استفاده قرار می گیرد تا بتواند اطلاعات مفیدی از آن ها استخراج کند. سپس این اطلاعات استخراج شده را در اختیار شما می گذارد و می توان از آن برای رشد تجارت استفاده نمود. به عنوان مثال شرکت های فیلم سازی ای مثل NETFLIX می توانند با تحلیل رفتار مشتریان خود به موضوعات مختلفی پی ببرند به عنوان مثال علایق آن ها را تشخصی دهند و بر آن اساس فیلم های موثرتر و پربیننده تری بسازند و یا داده های علایق را به شرکت های ارائه دهنده خدمات مختلف بفروشند تا آن ها بر این اساس کالاهایی تولید کنند که کاربران علاقه مند باشند به آن ها و همین طور می تواند تبلیغات موثری در حوزه های مختلف داشته باشد و به صورت کلی می توان شرکت های فیلم سازی را یکی از موثر ترین شرکت ها در حوزه تجارت دانست که با علایق و احساسات مردم در ارتباط هستند؛ حال این نکته قابل توجه است که با توجه به گستردگی کاربران شرکت ها آیا می توان این عملیات شناخت مشتریان و رفتار آن ها را به وسیله انسان ها انجام داد؟ پاسخ بدیهیست؛ مشخص است که اگر انسان عهده دار این مسئولیت شود به دلیل خطا های انسانی و از آن مهم تر حجم انبوه داده یا ممکن است نتایج اشتباهی را به دست آورد و حتی اگر به احتمال کمی به تمامی نتایج درست دست پیدا کنیم انقدر زمان بر خواهد بود که اصطلاحا داده طراوت خود را از دست داده است و دیگر کاربرد چندانی ندارد. به همین دلایل و دلایل متعدد دیگر لازم است که روش های یادگیری ماشین و روش های سریعی را دخیل کنیم تا بتوان به سرعت بالایی برای تحلیل دست پیدا کنیم.
به امید موفقیت
محمدحسین موثقی نیا،
محمدحسین ولیخانی
مطلبی دیگر از این انتشارات
ا Unicode چیست؟ UTF-8 چطور کار میکند؟
مطلبی دیگر از این انتشارات
بررسی 15 موضوع متنوع و مفید در مهندسی نرمافزار
مطلبی دیگر از این انتشارات
متااسپلوییت چیست ؟