بانک اطلاعاتی چیست؟
در بانک اطلاعاتی تعاریف گوناگونی شده است که تعریف زیر از همه جامع تر به نظر می رسد : بانک اطلاعاتی مجموعه ای سازمان یافته از اطلاعات و داده های مرتبط به هم است. داده ها عبارت اند از : حقایق و ارقام یک موضوع خاص و اطلاعات عبارت اند از نتایجی که از ترکیب داده ها حاصل می گردند. مؤسسات و سازمان معمولاً سیستم های اطلاعاتی خود را به دو صورت تشکیل داده از آن ها استفاده می کنند.
استفاده از سیستم های اطلاعاتی ساده
در این روش در فایل های جداگانه قرار می گیرند و برای استفاده از داده های موجود در آن فایل ها، سیستم های جداگانه ای طراحی می شوند. به این نوع سیستم های اطلاعاتی سیستم پردازش فایل ها می گویند.
استفاده از بانک های اطلاعاتی
در این روش داده های موجود، به صورت مجتمع یا بانک مورد استفاده قرار می گیرند در چنین سیستمی کاربر می تواند بدون سر درگمی با صرف وقت اندکی، اطلاعات مورد نیاز خود را از داده های موجود در بانک اطلاعاتی اخذ کند. امروزه اکثر مؤسسات و سازمان ها سعی می کنند از سیستم اطلاعاتی استفاده کنند. برای پی بردن به تفاوت دو روش ذکر شده مؤسسه ای را در نظر بگیرید که داده های مربوط به حقوق کارمندان، بیمه ، تنبیه و تشویق را در چهار فایل جداگانه قرار داده برای اخذ خروجی های مورد نیاز، سیستم های جداگانه ای برای آن ها نوشته است.
کار سیستم حقوق، محاسبه دستمزد کارکنان با استفاده از داده های موجود در فایل حقوق، کار سیستم بیمه، پردازش داده های موجود در فایل بیمه و کار سیستم های تنبیه و تشویق، پردازش داده های موجود در فایل های تنبیه و تشویق می باشد. هریک از این سیستم ها می توانند خروجی مناسبی را تولید کنند، اما اگر بخواهیم اطلاعات جدیدی مانند آنچه در زیر آمده است اخذ کنیم، با مشکل مواجه خواهیم شد.
1.کارمندانی که دارای حقوق مشخصی بوده به تعداد دفعات مشخصی تنبیه یا تشویق شده اند.
2 . کارمندانی که در تاریخ معینی استخدام شده مبلغ خاصی برای آن ها از طرف بیمه هزینه شده است.
3. کارمندانی که تعداد دفعات تنبیه آن ها بیشتر از تعداد دفعات تشویق باشد و برعکس.
در همه موارد بالا و مواردی مشابه مجبوریم از داده های موجود در دو یا چند فایل استفاده کنیم که کار ساده ای نیست. زیرا ممکن است داده های موجود در فایل ها دارای فرمت یکسانی نباشند. در حالی که اگر مؤسسه سیستم اطلاعاتی خود را به صورت بانک اطلاعاتی تشکیل دهد با چنین مشکلی مواجه نخواهد شد. شکل 2-9 نشان دهنده سیستم بانک اطلاعاتی مؤسسه سابق الذکر است.
در سیستم جدید، تمامی داده های موجود در فایل های طراحی شده در روش اول، در یک فایل بزرگ تر به نام بانک اطلاعاتی قرار می گیرند که در نتیجه پردازش داده ها و اخذ گزارش های جدید آسان تر خواهد بود.
مزایای استفاده از بانک اطلاعاتی
مزایای استفاده از سیستم بانک اطلاعاتی به جای سیستم پردازش فایل ها را می توان چنین برشمرد :
جلوگیری از اتلاف حافظه در ذخیره کردن داده ها
ایجاداطمینان نسبت به گزارش های به دست آمده
اخذ گزارش های جدید ساده است.
سرعت پردازش داده ها بالاست.
داده ها از سیستم های کاربردی مستقل هستند.
تمرکز در مدیریت داده ها به خوبی امکان پذیر است.
معایب استفاده از سیستم بانک اطلاعاتی
بانک اطلاعاتی با همه مزایایش، معایبی نیز دارد که این معایب در مقابل مزایای فوق ناچیزند، از جمله :
چون طراحی بانک های اطلاعاتی ساده نیست، جهت ایجاد آن به متخصصان ماهری نیاز است.
به دلیل متمرکز بودن سیستم اطلاعاتی، امکان آسیب پذیری سیستم زیاد است. یعنی، اگر یک قیمت از سیستم از کار بیفتد، ممکن است در کار بقیه قسمت ها خلل ایجاد شود.
اجزای تشکیل دهنده بانک اطلاعاتی
کاربران
سیستم بانک های اطلاعاتی
داده های موجود در بانک های اطلاعاتی
کاربران کسانی هستند که به نحوی به بانک اطلاعاتی سروکار دارند. بر اساس نوع کاری که کاربران با بانک اطلاعاتی دارند، می توان آن ها را به سه دسته تقسیم کرد:
مدیر یا مسئول بانک اطلاعاتی
برنامه نویسان کاربردی یا طراحان بانک های اطلاعاتی
کاربران نهایی
کاربران نهایی کسانی هستند که حق هیچ گونه تغییر و تبدیل را در بانک اطلاعاتی ندارند، بلکه فقط از امکانات آن می توانند استفاده نمایند. طراحان بانک های اطلاعاتی کسانی هستند که بانک اطلاعاتی را ایجاد نموده اند. مسئول بانک اطلاعاتی کسی است که حق هر گونه تبدیل و تغییر را در بانک اطلاعاتی دارد. به عنوان مثال اضافه کردن داده های جدید و حذف یا اصلاح داده ها به عهده مسئول بانک اطلاعاتی است. سیستم بانک اطلاعاتی مجموعه ای از برنامه هایی است که نیازهای کاربران را برآورده می کند.
بانک اطلاعاتی SQL
تاریخچه SQL
محبوبیت رو به رشد SQL یکی از مطالب مهم در صنعت امروزی کامپیوتر می باشد. در عرض چند سال گذشته، SQL زبان استاندارد در بانک های اطلاعاتی کامپیوتری گردیده است. اکنون بیش از 100 محصول مدیریت بانک اطلاعاتی بر روی سیستم های کامپیوتری از کامپیوترهای شخصی گرفته تا کامپیوترهای بزرگ ، SQL را پشتیبانی می کنند. یک استاندارد رسمی بین المللی برای SQL تهیه گردیده، و SQL نقش اساسی را در استاندارد IBM’s Systems Application Architecture بازی می کند. مجلات کامپیوتری، در عنوان های خود پیدایش SQL را بعنوان یک زبان تبریک می گویند. از ابتدای کار آن در IBM ، SQL هم بعنوان یک پروژه تحقیقاتی، هم بعنوان یک تکنولوژی کامپیوتری و هم بعنوان یک نیروی غالب در بازار خود را نشان داده است.
اما SQL واقعاً چیست؟ چرا اهمیت دارد؟ اگر واقعاً SQL یک استاندارد است، پس چرا نسخه های آن انواع مختلف دارد؟ آیا SQL واقعاً در کامپیوترهای شخصی قابل اهمیت است؟ آیا می تواند پاسخگوی نیازهای سطح بالای انتقال داده ها باشد؟ با توجه به نحوه استفاده شما از کامپیوتر، SQL چه می تواند انجام دهد، و شما چگونه می توانید از این ابزار مدیریت داده ها استفاده کنید.
زبان SQL
SQL وسیله ای است برای سازماندهی، مدیریت و بازیابی داده هایی که توسط بانک اطلاعاتی در کامپیوتر ذخیره شده اند. نام SQL از عبارت Structured Query Language و نیز به شکل SQL تلفظ می شود. همانطور که از نام آن بر می آید، SQL یک زبان کامپیوتری است، که برای یک بانک اطلاعاتی از آن استفاده می شود. در حقیقت، SQL با یک نوع بانک اطلاعاتی بنام بانک اطلاعاتی رابطه ای یا relational database کار می کند.
اگر سیستم کامپیوتری مربوط به یک کار تجاری باشد، بانک اطلاعاتی داده های مربوط به انبارداری، تولید، فروش و یا حقوق و دستمزد را نگهداری می کند. در یک کامپیوتر شخصی، بانک اطلاعاتی معمولاً داده های مربوط به چک های صادره، لیست های پرسنلی و شماره تلفن آنها، و یا داده های استخراج شده از یک سیستم کامپیوتری بزرگتر را نگهداری می کند. برنامه کامپیوتری که بانک اطلاعاتی را کنترل می کند، سیستم مدیریت بانک اطلاعاتی یا database management system و یا اختصاراً DBMS نامیده می شود.
وقتی می خواهید داده هایی را از بانک اطلاعاتی بازیابی کنید، برای اجرای کار نیاز به SQL دارید. DBMS پرسش SQL را مورد پردازش قرار داده، داده های مورد نظر را بازیابی نموده، و نتیجه را به شمار برمی گرداند. این نوع پردازش داده های درخواستی از یک بانک اطلاعاتی و دریافت نتایج، یک database queruy یا پرسش از بانک اطلاعاتی است، لذا Struetured Query Language برای کاربران خود فراهم می کند، از آن جمله :
1- بازشناسی داده یا Data definition
کاربر توسط SQL می تواند ساختار و سازمان داده های ذخیره شده را تعریف نموده و روابط بین آن داده ها را تعیین کند.
2-بازیابی داده یا Data retreval
توسط SQL یک کاربر و یا یک برنامه کاربردی می تواند داده های ذخیره شده در یک بانک اطلاعاتی را بازیابی نموده و از آنها استفاده کند.
3- تغییرات روی داده ها Data manipulation
یک کاربر یا یک برنامه کاربردی می تواند با استفاده از SQL با افزودن داده های جدید، حذف داده های قبلی، و اصلاح داده های ذخیره شده، یک بانک اطلاعاتی را تغییر دهد.
4- کنترل دستیابی کاربران به داده ها یا Access control
با استفاده از SQL می توان توانایی کاربر را برای بازیابی و تغییرداده ها محدود نموده، و مانع دستیابی افراد غیرمجاز به داده های ذخیره شده گردید.
5- استفاده اشتراکی از داده ها یا Data sharing
با استفاده از SQL می توان داده ها را بطور هم زمان برای استفاده کاربران مختلف، در اختیار آنها قرار داد، با اطمینان از اینکه کاربران با یکدیگر برخوردی نداشته باشند.
6- حفظ امنیت و انسجام داده یا Data integrity
SQL باعث می شود که در صورت قطع برق یا تغییرات غیر مترقبه، داده های بانک اطلاعاتی آسیبی نبینند. لذا SQL زبانی است برای کنترل و تأثیر گذاری متقابل با یک سیستم مدیریت بانک اطلاعاتی.
ثانیاً ، SQL یک زبان کامل کامپیوتری مانند FORTRAN,COBOL یا C نمی باشد. زبان SQL برای کنترل شرط ها اصلاً دستور IF ندارد، و برای عمل انشعاب نیز GOTO ندارد، و برای کار گردش یا حلقه از DO یا FOR استفاده نمی کند. بلکه SQL یک زبان فرعی است برای بانک اطلاعاتی ، که برای انجام امور مدیریت بانک اطلاعاتی، دارای حدوداً 30 دستور می باشد. این دستورات SQL را می توان در یک زبان دیگر مانند FORTRAN COBOL یا C قرار داد، تا آن زبان بتواند از یک بانک اطلاعاتی استفاده نماید.
و بالاخره، SQL زبانی نیست که دارای ساختار یا Stucture خاصی باشد، بخصوص در مقایسه با زبان های سطح بالایی همچون C و پاسکال . بلکه دستورات SQL شبیه جملات انگلیسی هستند که به آن کلمات کمکی یا noise words اضافه شده اند، در حالیکه این کلمات چیزی به معنای جمله اضافه نمی کنند، و فقط باعث می شوند خواندن جملات طبیعی تر شود. چند مورد عدم هماهنگی در زبان SQL وجود دارد، و نیز چند قاعده خاص که مانع آن می شوند تا آن دسته از دستورات SQL که خیلی طبیعی به نظر رسیده ولی بی معنی می باشند، ساخته شوند.
SQL بعنوان زبان استاندارد برای بانک های اطلاعاتی رابطه ای شناخته شده است، هم دارای قدرت زیادی است و هم یادگیری آن نسبتاً آسان می باشد. در فصل دوم نگاهی سریع خواهیم داشت به این زبان و قابلیت های آن.
نقش SQL
SQL خود یک سیستم مدیریت بانک اطلاعاتی نیست، در ضمن یک محصولی هم نیست که به تنهایی قابل استفاده باشد. یعنی اینکه نمی توانید SQL را از جایی خریداری کنید. بلکه SQL جزء لاینفک یک سیستم مدیریت بانک اطلاعاتی است. یعنی زبان و ابزاری است برای ارتباط با DBMS اجزاء تشکیل دهنده یک DBMS را نشان می دهد، که SQL چگونه این اجزاء را به یکدیگر وصل می کند.
موتور بانک اطلاعاتی یا Database Engine قلب DBMS بوده و مسئولیت عملی برای سازماندهی، ذخیره سازی، و بازیابی داده ها را بر روی دیسک دارد. این موتور درخواست های SQL را از اجزاء دیگر DBMS مانند تهیه کننده گزارش، یا ابزار سازنده پرسش، از برنامه های مربوط به برنامه های کربردی که کاربر نوشته، و حتی از سیستم های کامپیوتری دیگر، دریافت می کند. SQL نقش های متعددی بازی می کند :
SQL یک زبان پرسشی محاوره ای می باشد. بدین ترتیب که کاربران، دستورات SQL را در یک برنامه محاوره ای می نویسند تا داده ها را بازیابی نموده و آنها را روی صفحه نمایش، نشان داده و در واقع SQL ابزار ساده ای برای اجرای پرسش های بانک اطلاعاتی می باشد.