بانک اطلاعاتی چیست؟
در بانک اطلاعاتی تعاریف گوناگونی شده است که تعریف زیر از همه جامع تر به نظر می رسد : بانک اطلاعاتی مجموعه ای سازمان یافته از اطلاعات و داده های مرتبط به هم است. داده ها عبارت اند از : حقایق و ارقام یک موضوع خاص و اطلاعات عبارت اند از نتایجی که از ترکیب داده ها حاصل می گردند. مؤسسات و سازمان معمولاً سیستم های اطلاعاتی خود را به دو صورت تشکیل داده از آن ها استفاده می کنند.
استفاده از سیستم های اطلاعاتی ساده
در این روش در فایل های جداگانه قرار می گیرند و برای استفاده از داده های موجود در آن فایل ها، سیستم های جداگانه ای طراحی می شوند. به این نوع سیستم های اطلاعاتی سیستم پردازش فایل ها می گویند.
استفاده از بانک های اطلاعاتی
در این روش داده های موجود، به صورت مجتمع یا بانک مورد استفاده قرار می گیرند در چنین سیستمی کاربر می تواند بدون سر درگمی با صرف وقت اندکی، اطلاعات مورد نیاز خود را از داده های موجود در بانک اطلاعاتی اخذ کند. امروزه اکثر مؤسسات و سازمان ها سعی می کنند از سیستم اطلاعاتی استفاده کنند. برای پی بردن به تفاوت دو روش ذکر شده مؤسسه ای را در نظر بگیرید که داده های مربوط به حقوق کارمندان، بیمه ، تنبیه و تشویق را در چهار فایل جداگانه قرار داده برای اخذ خروجی های مورد نیاز، سیستم های جداگانه ای برای آن ها نوشته است.
کار سیستم حقوق، محاسبه دستمزد کارکنان با استفاده از داده های موجود در فایل حقوق، کار سیستم بیمه، پردازش داده های موجود در فایل بیمه و کار سیستم های تنبیه و تشویق، پردازش داده های موجود در فایل های تنبیه و تشویق می باشد. هریک از این سیستم ها می توانند خروجی مناسبی را تولید کنند، اما اگر بخواهیم اطلاعات جدیدی مانند آنچه در زیر آمده است اخذ کنیم، با مشکل مواجه خواهیم شد.
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 ابزار ساده ای برای اجرای پرسش های بانک اطلاعاتی می باشد.
SQL یک زبان برنامه نویسی بانک اطلاعاتی است. برنامه نویسان با قرار دادن دستورات SQL در برنامه های کاربردی می توانند به داده های یک بانک اطلاعاتی دسترسی داشته باشند. از این تکنیک هم در برنامه هایی که کاربران می نویسند، و هم در برنامه های مربوط به بانک اطلاعاتی (مانند برنامه هایی که گزارش می نویسد و یا برنامه های ورود اطلاعات) برای دستیابی به بانک اطلاعاتی می توان استفاده نمود.
SQL یک زبان مدیریت بانک اطلاعاتی است. برای مدیریت بانک اطلاعاتی مبنی کامپیوتر یا بانک اطلاعاتی کامپیوتر بزرگ، از SQL استفاده می شود تا ساختار بانک اطلاعاتی و کنترل داده های ذخیره شده تعیین شود.
SQL یک زبان Client/server یا سرویس دهنده / درخواست کننده می باشد. در برنامه های کامپیوترهای شخصی از SQL استفاده می شود تا در یک شبکه محلی با Server ها یا سرویس دهنده های بانک اطلاعاتی که داده های مشترک را ذخیره می کنند، ارتباط برقرار شود. بسیاری از برنامه های جدید کاربردی از این ویژگی استفاده می کنند تا ترافیک شبکه را کاهش داده و باعث شوند که PC ها و Server ها وظایف خود را بخوبی انجام دهند.
SQL یک زبان بانک اطلاعاتی شبکه ای می باشد. سیستم های مدیریت بانک اطلاعاتی شبکه ای برای کمک به امر توزیع داده ها در سیستم های کامپیوتری متعدد از SQL استفاده می کنند. نرم افزار DBMS موجود در سیستم ها برای ارتباط با سیستم های دیگر و جهت دستیابی به داده ها از SQL استفاده می کنند.
SQL یک زبان برای هماهنگی بین محصولات مختلف :
در یک شبکه کامپیوتری از محصولات مختلف DBMS استفاده می کنند، غالباً از SQL در یک gateway استفاده می شود تا یک نوع DBMS بتواند با نوع دیگر ارتباط برقرار نماید.
SQL به این ترتیب بعنوان یک ابزار قوی و مفید برای مرتبط نمودن افراد، برنامه های کامپیوتری و سیستم های کامپیوتری به داده های ذخیره شده در یک بانک اطلاعاتی رابطه ای شناخته شده است.
قابلیت و مزایای SQL
SQL زبانی است که هم فهم آن آسان است و هم وسیله ای برای مدیریت داده ها ذیلاً برخی قابلیت های اصلی و نیز شرایط بازار که سبب موفقیت SQL گردیده است شرح داده می شود :
استقلال فروشنده
قابلیت استفاده از انواع سیستم های کامپیوتری
استانداردهای SQL
تأیید IBM
پایه و اساس رابطه ای SQL
ساختار سطح بالا و شبیه زبان انگلیسی بودن
درخواست های محاوره ای و موردی
دسترسی به بانک اطلاعات از طریق برنامه نویسی
داشتن چند دید مختلف از داده ها
زبان کامل بانک اطلاعاتی
تعریف داده ها در هر زمان
ساختار Client / server (یا سرویس دهنده / درخواست کننده)
موارد فوق باعث شده که SQL بعنوان ابزاری استاندارد برای مدیریت داده ها در کامپیوترهای شخصی، مینی کامپیوترها، و کامپیوترهای بزرگ شناخته شود. ذیلاً می پردازیم به شرح هریک از عوامل فوق.
استقلال فروشنده
SQL بوسیله تمام فروشندگان مهم IBM عرضه شده است، و هیچ محصول جدید بانک اطلاعاتی بدون پشتیبانی SQL موفق نخواهد بود. در یک بانک اطلاعاتی که بر پایه SQL باشد و نیز برنامه هایی که از آن استفاده می کنند، با حداقل تغییر و حداقل معطلی، افراد می توانند برنامه های خود را از یک DBMS به DBMS فروشنده دیگر منتقل کنند. از جمله ابزارهای بانک اطلاعاتی که بر اساس SQL می باشند، و با انواع مختلف DBMS کار می کنند، می توان برنامه های تولید گزارش و مولد برنامه کاربردی را نام برد. استقلال فروشنده و عدم وابستگی او به یک تولید خاص، از دلایل مهم محبوبیت SQL می باشد.
قابلیت استفاده از انواع سیستم های کامپیوتری
فروشندگان DBMS هایی که بر اساس SQL می باشند، تولید خود را بر روی انواع سیستم های کامپیوتری از کامپیوترهای شخصی و ایستگاههای کاری گرفته تا شبکه های محلی، مینی کامپیوترها، و کامپیوترهای بزرگ, عرضه می کنند. برنامه های کاربردی که بر اساس SQL می باشند و با سیستم های تک کاربره شروع می شوند، بار رشد خود قابل انتقال به مینی کامپیوترها و سیستم های کامپیوتری بزرگ می باشند. در ضمن داده هایی که در بانک های اطلاعاتی شبکه ای قرار دارند و بر اساس SQL می باشند، قابل انتقال به بانک های اطلاعاتی کامپیوترهای شخصی هستند. و بالاخره، از کامپیوترهای شخصی بطور مؤثرتری می توان استفاده نموده و قبل از انتقال یک برنامه کاربردی بانک اطلاعاتی SQL به یک سیستم گسترده چند کاربره، یک نسخه از آن را تهیه نمود.
استانداردهای SQL
توسط انستیتوی استانداردهای ملی آمریکا یا American National Standards Instiute (یا ANSI ) و سازمان استاندارد بین المللی International Standards Orananization (یا ISO ) یک استاندارد رسمی برای SQL اعلام شده است. SQL بعنوان یک استاندارد پردازش اطلاعات در آمریکا شناخته شده و باعث گردیده تا بعنوان یک ابزار ضروری برای قراردادهای کامپیوتری بزرگ دولتی شناخته شود. در اروپا، X/OPEN که استانداردی است برای محیط برنامه های کاربردی که بر اساس UNIX می باشند، SQL را بعنوان استاندارد خود برای استفاده از بانک اطلاعاتی پذیرفته است. گروه OSF یا Open Software Foundation که شرکت فروشنده UNIX می باشد، تصمیم گرفته است که SQL را بعنوان اساس استاندارد برای استفاده از بانک اطلاعاتی قرار دهد. این استانداردها بعنوان یک مهر رسمی برای SQL خدمت نموده، و بازار آنرا گرمتر نموده اند.