تعاریف اولیه

- پایگاه داده: مجموعهای از دادهها که برای سرویسدهی به نرمافزارهای مختلف با هدف متمرکزسازی دادهها و جلوگیری از افزونگی به صورت سازمانیافته در کنار هم قرار گرفتهاند
مجموعه ای از داده ها که برای سرویس دهی به نرم افزار های مختلف با هدف متمرکز سازی داده ها و جلوگیری از افزونگی به صورت سازمان یافته در کنار هم قرار گرفته اند .
مثال دانشکده عمران آموزش یک فایل دانشجویی دارد و مثلا سلف هم یک فایل دانشجویی دارد و سلف اطلاعات غذا را ثبت میکند و آموزش اطلاعات نمرات را وارد میکند
اگر یک دانشجویی جدید وارد شده باشد سلف اطلاعات را ندارد و اطلاعاتی که ثبت میکند هم خوانی ندارد چون این دو در نقاط جغرافیایی مختلف قرار گرفته اند و کاری که دیتابیس می کند این است که این ها را متمرکز میکند در یک نقطه بعد یک سرویسی روی این ها قرار می دهد و
هرکس که اطلاعاتی را بخواهد مثل سلف به این سرویس مراجعه میکند و این سرویس اطلاعات را میدهد ..
متمرکز شدن اطلاعات در یک نقطه باعث می شود یک سری مشکلات مثل دیتای تکراری را رفع کنیم چون آخرین اطلاعات در دسترس است
- سیستم مدیریت پایگاه داده: سیستمی که به سازمان اجازه می دهد دادهها را در یک نقطه متمرکز نموده و آنها را به طور موثر مدیریت نمایند. این سیستم به عنوان رابط بین نرمافزار ها و فایلهای داده عمل میکند
سیستمی که به سازمان اجازه می دهد داده ها را در یک نقطه متمرکز نموده و آن ها را به طور موثر مدیریت کند . به آن DBMS می گویند
مثلا وقتی شما دیتا بیس sql را نصب میکنید به طور اتوماتیک یک DBMS هم روی سرور نصب میکنید .
- پایگاه داده رابطهای: در این نوع پایگاه داده جداول از طریق کلیدهای اصلی و خارجی با یکدیگر مرتبط میشوند
دیتا بیس های رینیشنال یعنی ابزار هایی که برای مدیریت داده های رینیشنال استفاده می شود را RDBMS می گویند
- کلید اصلی: شناسه منحصربهفرد برای هر ردیف که نمیتواند تکراری باشد
شناسه منحصر به فردی برای هر ردیف که نمیتواند تکراری باشد
- کلید خارجی: شناسهای که دادههای یک جدول را به کلید اصلی متناظر با آن مرتبط میکند
شناسه ای که داده های یک جدول را به کلید اصلی متناظر با آن مرتبط میکند
- SQL: زبانی است برای ایجاد، فراخوانی، تغییر و حذف دادههای یک پایگاه داده
زبانی است برای ایجاد ، فراخوانی ، تغییر و حذف داده های یک پایگاه داده
هر عملی که داریم انجام میدهیم در سطح رکورد است و در سطح ساختار دیتا بیس هم یک سری عملیات داریم که به آن میپردازیم
هر عملی که در سطح رکورد ثبت میکنیم به شرح زیر است: یا داریم دانشجو را ثبت میکنیم یا داریم ویرایش میکنیم یا حذف میکنیم یا لیست دانجو را فراخوانی میکنیم
کلید اصلی و خارجی
نمونه ای از کلید اصلی و خارجی در اسلاید آمده است یک جدول پارت داریم و یک جدول تامین کننده و هر پارتی میتواند توسط تامین کنندگان مختلف تامین شود .
در جدول سوم گفته است پارت نامبر ۱۳۷ توسط تامین کننده ۸۲۵۹ تامین میشود این دوتا را در جدول سوم لینک میکنیم این میشود جدول واسطه که بیان میکند چه کسی به کدام ایتم مربوط است

سیستم مدیریت پایگاه داده
سیستم مدیریت پایگاه داده در این عملیات به ما کمک میکند
دیکشنری داده حاوی اطلاعات ساختار عناصر داده و مشخصات آن است
دیکشنری داده
- حاوی اطلاعات ساختار عناصر داده و مشخصات آن
زبان SQL
تعریف ساختار. DDL یک زمانی است که می خواهیم جداول را تعریف کنیم و کاری با دیتا نداریم برای تعریف جداول باید ساختار دهی کنیم و برای تعریف ساختار از DDL استفاده میشود .
کنترل DCL حال جدول هارا تعریف کردیم میخواهیم بگوییم که چه یوزر هایی به آن دسترسی داشته باشند و در دیتا کنترل این کار را انجام می دهیم
تغییر DML دستکاری دیتا و اصلاح و ایجاد و خواندن دیتا
کنترل تراکنش. TCL گاهی اوقات هم کنترل ما در سطح ترنزاکشن انجام میشود
ترنزاکشن برای کنترل نوشته شدن دیتا روی هارد است .
مثلا یک دیتابیسی مثل واتساپ را در نظر بگیرید در ثانیه ممکن است صدها هزار دیتا به سمت دیتابیس واتساپ سرازیر شود
حجم زیاری از دیتا سرازیر می شود به سمت دیتا بیس و اگر بخواهیم هر دیتایی که می آید به سمت دیتابیس یا هر تراکنشی که می آید را ذخیرش کنیم روی هارد به هارد بسیار پر سرعتی نیاز دارییم .
برای حل این مسئله هیچ هاردی را نمیتوان پیدا کرد که با این سرعت بتواند دیتا را ذخیره کند چون هر ذخیره سازی یک کانکشن میخواهد یک قسمت از هارد را باید باز کند دیتا را ذخیره کند و کانکشن را ببندد .
این over load زیادی دارد به همین دلیل میان همه ریکوئست ها را دسته بندی میکنند یعنی همه را می آورند یک جا جمع میکنند و متمرکز می کنند در حافظه رم که سرعت آن خیلی بالا است و وقتی هارد خلوت شد بعد روی هارد نوشته شود
این چند مزیت دارد یکی این که اگر همزمان دونفر روی یک رکورد اطلاعات بنویسند همینجا با سرعت بالا هندل می شود و نتیجه آن می رود ذخیره میشود
دوم این که اگر هارد مشغول باشد ما یک فضای موقتی را داریم که روی آن ذخیره سازی را انجام میدهیم یعنی دیتا تلف نمی شود
به این ترنز اکشن میگویند ما مجموعه ای از دستورات و رکورد ها را میگذاریم در یک بسته بعد در یک ترنز اکشن میگذاریم روی هارد در دیتا بیس
- عریف ساختار (DDL)
- کنترل (DCL)
- تغییر (DML)
- کنترل تراکنش (TCL)


نرمالسازی داده
فرآیند ایجاد ساختار داده کوچک، پایدار و منعطف بر اساس گروههای پیچیده دادهها
- غیر نرمال

- نرمال

یکپارچگی ارجاعی
زمانی که یک دیتا بیس را طراحی کنیم یک حجم عظیم از دیتا یا فیلد های اطلاعاتی را داریم و دسته بندی نشده هستند
میایم این هارا دسته بندی میکنیم و هرکدام را در یک جدول قرار می دهیم مثلا اطلاعات دانشجو را با اطلاعات دانشکده در یک جدول قرار نمی دهیم این دو ماهیت جداگانه دارند ولی به هم ارتباط دارند
پس اول اطلاعات را میاوریم دسته بندی میکنیم در جداول مختلف بعد ارتباط شون رو مشخص میکنیم
در اسلاید ها یک فضای تولید و سفارش را مثال زده است
ارتباط به سه نوع تقسیم می شود یا ارتباطات یک به چند است یا یک به یک است یا چند به چند هستند .
مثلا هر دانشکده میتواند چندین دانشجو داشته باشد ولی یک دانشجو فقط یک دانشکده دارد .
معمولا ارتباطات چند به چند خودشان به دو ارتباط یک به چند و چند به یک تقسیم می شوند یعنی یک جدول واسطه دارد که این را باید تشخیص دهید و در دیزاین بیاورید
در طراحی نرم افزار ما یک طراحی اینتر فیس و فرانت
اند را باید طراحی کنیم که به آن پروتوتایپ هم می گویند
مثلا وقتی با یک کارفرمایی قرارداد میبندید اول یک پروتوتایپ به آن می دهید
یک سری ابزار برای پروتوتایپ درست کردن استفاده میشود مثل فیگما و sketch , adobe il
یک قسمت بک اند هم داریم که این را کارفرما نمی بیند و کارفرما باید ظاهر را تایید کند و در نهایت شما روی این ظاهر یک اسکلت و چارچوبی را کار میکنید
بک اند هم معمولا با جاوا ، go ، .... پیاده سازی میشود
زمانی که FE را طراحی کردید و میخواهید BE را طراحی کنید برای گذار از FE به BE نیاز به یک سری دیاگرام دارید .
این دیاگرام ها به UML معروف هستند
برای مدل سازی جنبه های مختلف دارد مثلا ساختار داده را مدل سازی میکنید که اسمش ERD است
فرایند ها را مدل سازی می کنید که اسمش SD یا Sequend diagram است
نقش ها را مدل سازی می کنید که نامش use case diyagram است
وقتی یک نرم افزار طراحی میکنید باید مشخص کنید که داده ها از کجا می آیند و به کجا می روند
مثلا جریان اطلاعات و یا جریان داده data flow زمانی که شما ثبت میکنید از سمت دانشجو میرود به سمت دانشگاه که این جریان داده است .
پس یک بخش از مدلینگ ما data flow diyagram است
این اطلاعات باید یک جایی ذخیره شود و ساختار اطلاعات را ERD میگوییم .
ابزار های مختلفی برای این موضوع هست مثل plant uml که رایگان است
- اعمال قوانینی برای اطمینان از ثبات روابط بین جداول هنگام افزودن و حذف دادهها

کلانداده
چلسه پیش راجب دیتا بیس صحبت کردیم که دیتا چطور میاد و ذخیره میشود در سک فضایی و در چه ساختاری قرار میگیرد
اما این ها در مورد دیتابیس است و اگر شما بخواهید یک پردازشی فوق دیتابیس انجام دهید نیاز به مباحث کلان داده دارید
مثلاً فرض کنید هر کشوری اطلاعات محیطزیستی خودش را ثبت میکند و این اگر یک نفر بخواهد در مورد گرمایش زمین تحلیلی انجام دهد و نیاز به اطلاعات همه کشورها داشته باشد حجم اطلاعات بسیار بالا است و شما باید یک فضایی را بسازید که این وصل شود به دیتابیس هایی که سازمان های محیط زیستی کشور های مختلف درست کردند و این اطلاعات را به هم لینک کند
هر کشوری برای خودش یک سیستمی دارد با سلیقه خودش و بر اساس نیازهای خودش و اون سیستمی که بتواند همه این اطلاعات را بیاورد و یک جا متمرکز کند و استاندارد کند و نرمال کند و سلایق را حذف کند و به یک فرمت استانداری تبدیل کند کلان داده است
مثلا میتوانیم دیتایی که در مصرف سوخت داره ثبت میشه را یک کلان داده کوچک بگیریم
این که چه کارتی در چه تاریخ و ساعتی چقدر بنزین زده است و اگر این تعداد را در کل کشور در نظر بگیرید حجم
زیادی از دیتا خواهد شد که دیتا بیس های معمولی نمیتوانند این را پردازش کنند و نیاز به کلان داده ها برای پردازش و تحلیل است
مثلا موتور جت ساده ۲۰ ترابایت در ساعت دیتا تولید میکند
کاربرد کلان داده این است که میتوانید الگو ها را شناسایی کنید .
جریان فوق العاده ای از دیتا را به وجود می اورد که می توانید مطالعات خوبی روی آن انجام دهید
وقتی شما از الگوریتم های شناسایی الگو استفاده کردید میتوانید دیدگاه های جدید را خلق کنید مثلا ارزیابی رفتار مشتری
تعریف
- دادههایی با حجم بسیار بالا به طوری سیستمهای مدیریت پایگاه داده قادر به ذخیرهسازی و تحلیل آنها نیستند
- عموماً در محدوده پتابایت و اگزابایت
در قالب میلیاردها و تریلیارد ها رکورد
مثال
- موتور جت ساده: ۲۰ ترابایت در ساعت
- توییتر: بیش از ۸ ترابایت در روز
- حجم داده ها در هر دو سال دو برابر میشود (آمار مرکز تحقیقات IDC)
کاربرد کلانداده
- شناسایی الگوها و گلوگاههای بیشتر نسبت به دیتاستهای کوچک
- ارائه دیدگاههای جدید
- ارزیابی رفتار مشتری آب و هوا بازارهای مالی و ...
