آموزش دیتابیس (پایگاه داده) - SQL
زمانی که اطلاعاتی را در کامپیوتر خود ذخیره میکنیم، در واقع به یک پایگاه داده در آن نیاز داریم. بدین ترتیب از این پس برای دسترسی به این اطلاعات لازم است فرایندها، عملگرها و دستورالعمل هایی مورد استفاده قرار گیرند تا ارتباط بین ما و این دیتابیس برقرار شود. در واقع به زبان مشترکی نیاز داریم تا اقدامات ما را برای کامپیوتر تعریف کند و بالعکس. اما چه اتفاقی میافتاد اگر با یک زبان مشترک، تمام پایگاههای اطلاعاتی کامپیوتر نیز با هم هماهنگ میشدند و با این یکپارچگی، تمام نرم افزارهای ما به صورت واحد و متمرکز در اختیار ما قرار داشتند. به دلیل اهمیت موضوع دیتابیس و SQL تصمیم گرفتهایم آموزش دیتابیس (پایگاه داده) SQL برای شما در کوئرا کالج فراهم کنیم.
پایگاه داده SQL چیست؟
به دلیل نیاز به دادههای مختلف در سازمان، باید فرم خاصی از دادهها را به منظور استفادههای آتی در سرورهای سازمان ذخیره کنیم؛ به همین دلیل آنها را در ساختارهای خاص از پیش تعیین شدهای ذخیره خواهیم کرد. معروفترین این ساختارهای پیشفرض، SQL و NO-SQL نام دارند.
معمولا نرمافزارهای سازمانی (Enterprise) از ساختارهای دادهای SQL استفاده میکنند. این ساختار در واقع شامل چندین جدول (Table) متفاوت است که تمامی اطلاعات مورد نظر در آن وجود دارد. هر سطر در این جداول متعلق به دادههای مرتبط به یک کد است.
نکته مهم در ارتباط با این پایگاه داده آن است که SQL به چگونگی ذخیرهسازی دادهها ورود نمیکند و تنها به نوع ساختار ذخیره اطلاعات مرتبط است. به همین ترتیب جداول دیگر مانند جدول نقشها و … نیز در این سیستم وجود داشته که ارتباط این اطلاعات با یکدیگر توسط کدهای معرف در هر سطر متعلق به هر جدول انجام خواهد شد که رفرنس کردن نام دارد. در واقع سیکوئل (SQL) ، شکلدهی به دادهها در یک ساختار منظم به منظور ارتباط بهتر با سایر دادههاست.
چرا ساختارهای SQL اهمیت دارند؟
از آنجایی که نرم افزارهای سازمانی اینترپرایز یا به طور دقیقتر تمام نرم افزارهای مالی، CRM و سایر سیستمهای اینترپرایز بخصوص در ایران، از ساختارهای دادهای SQL استفاده میکنند؛ به همین دلیل برای برقراری بهتر ارتباط و نظامدهی دادهای، از پایگاههای داده SQL استفاده میشود.
در واقع مجموعه از اطلاعات و دیتا که ساختار منظم دارند را به نام بانکهای اطلاعاتی، دیتابیس و یا پایگاه داده میشناسیم. برای کاربردی شدن این اطلاعات و استفاده از آنها توسط کامپیوتر، باید آنها را با یک زبان خاص برای کامپیوتر تعریف و ذخیره کرد. مثال خیلی ساده از پایگاههای داده، بازی اسم-فامیل و یا دفترچه تلفن منازل است. آنها نیز پایگاههای داده هستند؛ فقط با این فرق که بر روی کاغذ ذخیره شدهاند.
در اینجا، بحث ما مربوط به دیتابیسهایی است که بر روی کامپیوتر ذخیره شدهاند. هر کدام از این پایگاههای داده با کمک ابزارهای مختلف، برای جمعآوری یک یا چند موجودیت و یا توصیف ارتباط آنها استفاده میشود. اما لازم است که پیش از این مرحله، یک کاربر یا مدیر دیتابیس، اطلاعات و نحوه جمعآوری آن را تعریف کند.
ولی چطور یک انسان و یک کامپیوتر میتوانند با یکدیگر صحبت کنند؟ برای ایجاد ارتباط بین کاربر و پایگاههای داده، از Database Management System یا همان سیستم مدیریت پایگاه داده (DBMS) استفاده میشود. این سیستم دستورات را از طریق یک زبان خاص به نام Structured Query Language همان SQL دریافت میکند و درواقع همین زبان است که ارتباط بین بشر و رایانه را میسر میکند.
به کمک SQL که یک استاندارد ANSI است، میتوان دادهها را ایجاد، بروزرسانی و یا حذف کرد. همچنین امکان ایجاد Script، نماها و اعمال مجوزها روی اطلاعات ثبت شده وجود دارد. اینکه چه اتفاقی در پشت پردهی SQL برای بازخوانی اطلاعات در پایگاه دادهها میافتد در این مقطع اهمیتی ندارد، صرف نظم دهی در این ساختار و عمل خوانش دادهها در SQL مهم است.
دیتابیس چیست و چه کاربردی دارد؟
دیتابیس مجموعهای سازمان یافته از دادهها است که مدیریت دادهها را آسانتر میکند. برای مدیریت دادهها در یک پایگاه داده معمولا از یک سیستم مدیریت پایگاه داده (DBMS) یا همان (DataBase management System) استفاده میشود
به بیان سادهتر، پایگاه داده یک مجموعه از دادهها هستند که در کامپیوتر ذخیره و به نوعی ساختاردهی میشوند و همچنین امکان دسترسی به دادهها از طریق آن برای کاربران تسهیل پیدا کرده است.
پایگاههای داده معمولا در قالبی که برای دستگاهها و رایانهها قابل خواندن و قابل دسترسی باشند ذخیره میشوند.
مفاهیم اولیه دیتابیس
امروزه دادههای موجود در رایجترین انواع دیتابیس معمولا در یک سری جداول در ردیف ها و ستون های جدول مدلسازی میشوند تا پردازش و پرس و جوی دادهها کارآمد باشد.از این طریق دادهها را میتوان به راحتی در دسترس، مدیریت، اصلاح، به روز رسانی، کنترل و سازماندهی کرد.
اکثر پایگاههای داده از زبان پرس و جو ساخت یافته (SQL) برای نوشتن و پرس و جو دادهها استفاده میکنند. به زبانی دیگر پایگاه داده مجموعهای از رکوردهای ذخیره شده در رایانه با یک روش سیستماتیک (اصولی) مثل یک برنامه رایانهای است که میتواند به سوالات کاربر پاسخ دهد.
موجودیت در پایگاه داده (Entity): هر چیزی که راجع به آن بخواهیم اطلاعاتی ذخیره کنیم، یک هویت یا «موجودیت» (Entity) نامیده میشود. به عنوان مثال در یک سیستم ذخیره سازی اطلاعات حسابداری، دارایی غیر منقول یک موجودیت و وجوه نقد یک موجودیت جدا است، زیرا اطلاعات قابل تشخیص برای دارایی منقول با اطلاعات وجوه نقد متفاوت است ولی ممکن است در یک گزارش با هم مرتبط باشند.
جداول (Table): اطلاعات موجود در پایگاههای داده داخل Table ذخیره میشود.
ستون (Field): هر فیلد در برگیرنده یک صفت و ویژگی برای موجودیت است و در هر فیلد خصوصیت و مقدار آن مشخص میشود.
سطر(Record): رکوردها شامل اطلاعات طبقه بندی شده درباره یک موجودیت خاص هستند.
انواع دیتابیس
درواقع انواع مختلفی از دیتابیس وجود دارد که بسته به نحوه استفاده سازمان از دادهها مورد استفاده قرار میگیرند. در ادامه به معرفی انواع دیتابیسها میپردازیم.
دیتابیسهای NoSQL
NoSQL یا پایگاه داده غیررابطهای اجازه میدهد تا دادههای بدون ساختار و نیمه ساختار یافته ذخیره و دستکاری شوند. NoSQL با رایج شدن و پیچیدهتر شدن برنامههای کاربردی وب، محبوبیت بیشتری پیدا کردند.NoSQL مکانیزمی متفاوت با روابط جدولی استفاده شده در دیتابیس رابطهای برای ذخیره و بازیابی دادههای مدل سازی شده ارائه میکند. گاهی به این پایگاه داده (Not only SQL) نیز گفته میشود و به این معناست که پایگاه دادهNOSQL میتواند زبانهای مشابه با SQL را نیز پشتیبانی کند.
پایگاه داده رابطهای (Relational DataBase)
دیتابیس رابطهای رایجترین نوع پایگاه داده است که از یک سری جدول تشکیل شده و اطلاعات را مطابق دسته بندیهایی از پیش تعیین شده مرتب میکند. علت نامگذاری به عنوان رابطهای این است که طراحی و ساخت آن با توجه به مدل رابطهای ادگار کاد انجام شدهاند. فناوری پایگاه داده رابطهای کارآمدترین و منعطفترین راه را برای دسترسی به اطلاعات ساختاریافته فراهم میکند.
پایگاه داده مبتنی بر فضای ابری (Cloud DataBase)
دیتابیس ابری به پایگاه دادهای گفته میشود که معمولا روی یک پلتفرم محاسبهگر از نوع cloud اجرا میشود. پایگاه داده ابری نرم افزار به کار برده شده و دادههای پشته شده را به کاربر به طور واضح نشان میدهد.
پایگاه داده به عنوان سرویس (DBaaS)
با DBaaS، وظایف اداری و نگهداری توسط یک ارائه دهنده خدمات انجام میشود. در واقع دیتابیسها با استفاده از زبانهای مختلفی ایجاد میشوند. اما زبان SQL(Structured Query Language ) از همه معروفتر و رایجتر است.
دیتابیس اوراکل (Oracle DataBase)
اوراکل معمولا در بانکها و سازمان های بزرگ مورد استفاده قرار میگیرد. این پایگاه داده یک سیستم مدیریت پایگاه داده تجاری است. در اوراکل از فناوری پایگاه داده در مقیاسهای سازمانی و همراه با ویژگیهای قدرتمند و خاص استفاده میشود. در اوراکل ذخیرهسازی میتواند به صورت درون سازمانی یا در فضای ابری انجام شود.
دیتابیس PostgreSQL
PostgreSQL یک سیستم پایگاه داده منبع باز و بسیار پایدار است که از عملکردهای مختلف SQL، مانند کلیدهای خارجی، سوالات فرعی، تریگرها و انواع مختلف و عملکردهای تعریف شده توسط کاربر پشتیبانی میکند. PostgreSQL زبان SQL را بیشتر تقویت میکند و چندین ویژگی را ارائه میدهد که به دقت حجم کاری دادهها را ، مقیاس و ذخیره میکند. PostgreSQL به توسعهدهندگان در ساخت اپلیکیشنها کمک میکند. همچنین به وسیلهی حفاظت از یکپارچگی اطلاعات به مدیران کمک میکند تا محیطی با تحمل خطا را ایجاد کنند و در صورت رخ دادن خطا، مشکلی برای اطلاعات ایجاد نشود. و در واقع دیتابیس PostgreSQL قابلیت برنامه نویسی کامل سمت سرور را نیز دارد.
دیتابیس API
API (DataBase Application Programming Interface) کتابخانهای است که به پایتون اجازه میدهد به سرور پایگاه داده متصل شود. API با پشتیبانی از چندین سرور پایگاه داده به راحتی به توسعه دهندگان اجازه میدهد تا از عملکردهای پیچیدهتر مانند تراکنشها استفاده کنند.
دیتابیس Access
Access یک سیستم مدیریت پایگاه داده معروف است که توسط مایکروسافت تولید شده و بخشی از مجموعه آفیس مایکروسافت است. آموزش Access با بیان پر استفادهترین ویژگیهای آن:
- امکان وارد کردن دادهها از اکسل یا پایگاههای داده دیگر
- امکان ایجاد فرم هایی برای ورود یا مشاهده دادهها
- امکان طراحی و اجرای پرس و جوهای بازیابی دادهها
- امکان طراحی گزارش برای چاپ یا تبدیل به PDF
- امکان تعامل کاربران با Access از طریق SQL
دیتابیس ACID
برای ثبت تراکنشها در یک پایگاه داده، باید از خاصیتی به اسم ACID پشتیبانی کنند. ACID مخفف Atomicity، Consistency، Isolation و Durability است.
Atomicity- این خاصیت به خاصیت همه یا هیچ معروف است در واقع یک تراکنش یا باید به طور کامل در ACID اجرا شود یا خیر.
Consistency - سازگاری یعنی یک تراکنش، ACID را از یک حالت سازگار به یک حالت سازگار دیگر انتقال میدهد. البته ممکن است این سازگاری در بین تراکنش (وقتی هنوز تراکنش تمام نشده است) نقض شود.
Isolation- به عنوان مثال در ACID، چندین تراکنش با یکدیگر در حال اجرا هستند این تراکنشها نباید از اجرای یک دیگر مطلع شوند. یعنی این تراکنشها باید طوری اجرا شوند که انگار، فقط همین تراکنش در حال اجرا در کل ACID است.
Durability - پایداری به این معناست که یک تراکنش بعد از اتمام باید در حافظه باقی بماند. یعنی اگر یک تراکنش با موفقیت به اتمام رسید، نتایج کار، با قطع برق یا اتفاقهای دیگر از بین نرود.
اجزای دیتابیس
اجزا مختلف تشکیل دهنده دیتابیسهای معروف عبارتند از :
- سختافزار: سخت افزار در واقع یک رابط کاربری بین کامپیوترها و سیستمهای واقعی ارائه میکند.
- نرمافزار: نرمافزارها به کاربر این امکان را میدهند تا با دیتابیس ارتباط برقرار کند.
- کاربر: کاربران افرادی هستند که به روشهای مختلفی با دیتابیس ارتباط دارند.
- برنامهنویسها (DBP): افرادی که ساختار دیتابیس را طراحی میکنند.
- طراحان (DBD): افرادی که به کمک زبانهای مختلف از جمله SQL دیتابیسها را میسازند.
- مدیر پایگاه داده (DBA): افرادی که دیتابیس را مدیریت میکنند.
- کاربران نهایی (End users): کسانی که از دادهها استفاده میکنند.
- داده: اطلاعاتی که باید در دیتابیس ذخیره شوند.
- پردازهها: دستورالعملها و قوانین برای طراحی و اجرای دیتابیس هستند.
- زبان دسترسی: برای اینکه بتوانیم به دیتاهای موجود در دیتابیس دسترسی داشته باشیم استفاده میشوند.
- پردازشگر درخواستها: این بخش درخواستهای کاربر را به مجموعهای از دستورالعملهای سطح پایین تبدیل میکند.
- دیتابیس منیجر (مدیریت کننده) زمان اجرا: بخش اصلی نرم افزار DBMS محسوب میشود که رابط کاربری با اپلیکیشنها و درخواستهای ثبت شده توسط کاربران ایجاد میکند و دسترسی حین اجرا را ممکن میسازد.
- مدیریت کنندهی داده: مسئولیت کنترل داده در دیتابیس را برعهده دارد.
کاربردهای دیتابیس
در ادامه به کاربرد این تکنولوژی در زمینههای مختلف اشاره شده است.
- انجام انواع ترکنشهای بانکداری
- رزرو و زمانبندی پرواز خطوط هوایی
- ثبتنام دانشجویان، انتخاب واحد و ثبت نمره در دانشگاه و مراکز آموزشی
- ثبت اطلاعات مشتریها، محصولات و فاکتورهای خرید و فروش
- ثبت و محاسبهی حقوق کارمندان بههمراه کسورات مالیاتی در شرکتها وسازمانهای مختلف
- استفاده از پایگاه داده در بهبود فرآیندهای کسب و کار
- استفاده از پایگاه داده برای ذخیره اطلاعات شخصی در پلتفرمهای مختلف
- استفاده از پایگاه داده در سازمانهای غیر انتفاعی
- استفاده از پایگاه داده در سازمانهای درمانی بهداشتی
- استفاده از پایگاههای داده برای ذخیره اطلاعات شخصی
برای درک بهتر این کاربردها به چهار عمل اصلی میپردازیم:
دریافت
پایگاه داده برای پیدا کردن اطلاعات بسیار سریع عمل میکند و کار کردن با دیتابیس آسان است. بنابراین دریافت اطلاعات از آن آسان است.
ذخیره
دیتابیس میتواند تعداد زیادی از مستندات را به صورت موثر در خود ذخیره کند و در حین این کار، فضای خیلی کمی را به خود اختصاص میدهد.
جستجو
در پایگاه داده میتوان به راحتی عمل جستجو را انجام داد. برای مثال میتوانید بنویسید (تمامی ماشینهای برند Porsche را پیدا کن) و دیتابیس این کار را به سرعت انجام میدهد.
گزارشدهی
در دیتابیس میتوانید به راحتی اطلاعات جدید اضافه کنید یا دادههای قدیمی را ویرایش و حذف کنید و همچنین میتوانید از اطلاعات موجود در پایگاه داده گزارش تهیه کرد این گزارشات میتواند بر اساس دسته بندی هایی که در آن پایگاه لحاظ شده است متفاوت باشد.
معایب و مزایا دیتابیس
مزایا
- حذف بایگانی کاغذی
- دسترسی آسان به اطلاعات
- اشترکگذاری آسان اطلاعات
- ذخیرهسازی اصولی دادهها
- پردازش سریع و آسان دادهها
- بهبود کارایی
- کاهش احتمال خطا
- کاهش دادههای بیهوده و زائد
- بهبود وضع امنیت داده
- کاهش هزینههای مربوط به وارد کردن، ذخیره و استخراج داده
- آسان شدن ساخت اپلیکیشنها و برنامههای جدید
معایب
- طراحی و ساخت سیستمهای دیتابیس، فرآیندی پیچیده، دشوار و زمانبر است
- ایجاد دیتابیس و استفاده از آن به آموزش و تخصص احتیاج دارد
- آموزش برنامهنویسان، طراحان و کاربران متخصص هزینهبر است
- درصورتیکه دیتابیس آسیب ببیند، تمام نرمافزارهایی که با آن در ارتباطند تحت تاثیر قرار خواهند گرفت
- تبدیل سیستم قدیمی فایلی به سیستم مدرن دیتابیس هزینه بر است
- برای استفاده از دیتابیسها ممکن است به سخت افزارهای اضافه نیاز باشد
- هزینههای قابل توجه ناشی از ساخت سخت افزار و نرم افزار
نکات مهم در استفاده از دیتابیس
در استفاده از پایگاههای داده باید نکات زیر را لحاظ نمود:
- امنیت پایگاه داده
- اطمینان از امنیت فیزیکی دیتابیس
- استفاده از اپلیکیشنها و برنامههای مخصوص دفاع از دیتابیس
- کدگذاری دادهها
- دادن دسترسی به تعداد محدودی از افراد
- نظارت بر فعالیت دیتابیس
اهمیت یادگیری زبان SQL
زبان پرسوجو ساختاریافته (SQL) به یک زبان برنامهنویسی استاندارد اشاره دارد که برای استخراج، سازماندهی، مدیریت و دستکاری دادههای ذخیره شده در پایگاه دادههای رابطهای استفاده میشود. بنابراین SQL به عنوان یک زبان پایگاه داده نامیده میشود که میتواند فعالیتهایی را روی پایگاههای دادهای که از جداول تشکیلشده از ردیف و ستون تشکیل شدهاند، اجرا کند.
SQL نقش مهمی در بازیابی دادههای مربوطه از پایگاه داده ایفا میکند، که میتواند توسط پلتفرمهای مختلف مانند Python یا R برای اهداف تجزیه و تحلیل استفاده شود. SQL میتواند چندین تراکنش داده را به طور همزمان مدیریت کند که در آن حجم زیادی از دادهها به طور همزمان نوشته میشود. SQL در اوایل دهه 1970 توسط IBM توسعه یافت و در سال 1979 به صورت تجاری در دسترس قرار گرفت.
انواع پایگاههای دادهای SQL کدامند؟
شرکتهای مختلف پروتکلهای مختلفی از این پایگاه داده را ارائه کردهاند: هر مورد از این نسخهها یا پروتکلها دارای ویژگیهای مختص به خود بوده و برای هدفی خاص طراحی شدهاند اما فلسفه وجود همهی آنها یکی است؛ یعنی همگی برای نظامدهی به دادهها و اطلاعات به منظور ارتباط سادهتر، به وجود آمدهاند.
در واقع اگر SQL را خودرو فرض کنیم، هر شرکت متناسب با نیازها و اهداف خود، خودروی مورد نظر خود را تولید میکند. اگر کانسپت خودرو را SQL بدانیم، هر برند میتواند تغییرات مد نظر خود را روی ماشینها اعمال کند و آن را معرفی نماید، اما در ماشین بودن و کارکرد واحد آن خللی وارد نمیشود.
در دنیای پایگاههای داده نیز، بسیاری از شرکتها تغییرات خود را روی SQL انجام میدهند و نسخهی خود را روانه بازار میکنند. در واقع همگی از همان قوانین طبعیت میکنند، فقط زیر ساخت سیکوئلی خود را ارائه دادهاند: مثلاMy SQL ، Access : Oracle ،SQL Server
انواع پایگاههای دادهای SQL
MYSQL
مای اس کیو ال، که ابتدا توسط یک شرکت سوئدی به نام mysql AB در سال ۱۹۹۴ ارائه شد، یک سیستم مدیریت پایگاه دادهها است که بصورت متن باز عمل میکند و بر اساس مدل " رابطهای " اطلاعات را از دیتابیس جابجا میکند.
Access
در سال ۱۹۹۲ توسط شرکت Microsoft با ویندوز مایکروسافت ارائه شد و بدین ترتیب هر بسته از پایگاه داده، میتوانست از طریق تکنولوژی ODBC با سایرین ارتباط برقرار کنند.
Oracle
اوراکل در واقع به عنوان پل ارتباط میان هر منبع و دیگر پایگاههای خارجی استفاده میشود و عاملی است که بر صحت دادههای ارائه شده نیز نظارت میکند. این زبان توسط شرکت Relational Software که بعدها به Oracle تغییر نام داد، توسعه یافت و جزو اولین نرم افزارهایی بود که میان پایگاههای داده، ارتباط " تجاری " ایجاد کرد.
SQL Server
Microsoft SQL Server یک پایگاه داده قدرتمند است که توسط شرکت مایکروسافت توسعه یافته و علاوه بر خدمترسانی به عنوان یک دیتابیس رابطهای و تجاریسازی شده، بر اطلاعات مدیریت هوشمند نیز انجام میدهد.
فرصتهای شغلی برنامهنویسی SQL
مانند سایر شاخههای برنامهنویسی، حوزه دیتابیس و SQL هم فرصتهای شغلی جذابی دارد که علاقهمندان به استخدام برنامهنویس در این حوزه در صورت داشتن تخصص، میتوانند خود را برای هریک از این فرصتهای شغلی آماده کنند.
استخدام برنامه نویس SQL
جمعبندی
در این محتوا سعی کردیم اهمیت آموزش دیتابیس (پایگاه داده) SQL را با شما به اشتراک بگذاریم. اگر علاقهمند به شرکت در این دوره از کوئرا کالج هستید، میتوانید در این دوره آموزشی از سری دورههای آموزش برنامهنویسی کوئرا شرکت کنید.