تبلیغات
Information - data base

بازدید : مرتبه
تاریخ : دوشنبه 26 اردیبهشت 1390

همه چیز در مورد بانک اطلاعاتی

                         به نام خدا                        

1-مفهوم بانک اطلاعاتی 

2- تاریخچه بانکهای ORACLE&SQL& ACCESS

3-قایسه Oracle با  SQLServer 

4-بانک های اطلاعاتی رابطه ای  مفاهیم وتعاریف 

 5-نرمال سازی بانک اطلاعاتی رابطه ای

6-Microsoft SQL Server

 

                                      1  مفهوم بانک اطلاعاتی          

1- تعریف بانك اطلاعاتی
بانك اطلاعاتی مجموعه ای سازمان یافته از اطلاعات و داده های مرتبط به هم است. داده ها عبارتند از حقایق و ارقام یك موضوع خاص و اطلاعات عبارتند از نتابجی كه تركیب داده ها حاصل می گردد. سازمان ها معمولاً سیستم های اطلاعاتی خود را به دو صورت تشكیل داده از آن استفاده می كنند:

الف) استفاده از سیستم های اطلاعات ساده:
در این روش داده ها در فایل های جداگانه ای قرار می گیرند و برای استفاده از داده‌های موجود در آن فایل، سیستم های جداگانه ای طراحی می شوند. به این نوع سیستم های اطلاعاتی، سیستم پردازش فایل ها می گویند. در این سیستم افزونگی وجود دارد كه باعث آشفتگی می شود.

ب)استفاده از بانك اطلاعاتی:
در این روش داده های موجود، به صورت مجتمع یا بانك مورد استفاده قرار می گیرد در چنین سیستمی كاربر می تواند بدون سردرگمی و با صرف وقت اندك، اطلاعات مورد نیاز خود را از داده های موجود در مجتمع اخذ كند.
مزایای سیستم بانك اطلاعاتی:
1- اشتراكی شدن داده ها
2- كاهش میزان افزونگی
3- در دسترس بودن داده ها

معایب سیستم بانك اطلاعاتی:
1-ممكن است امنیت لازم به مخاطره بی افتد چرا كه داده ها متمركز بوده و این تمركز آن را آسیب پذیر می سازد.
3- ممكن است سخت افزار اضافی نیاز باشد.
4-اجزاء تشكیل دهندة بانك اطلاعاتی

1-كاربران:
كاربران، كسانی هستند كه به نحوی با بانك اطلاعاتی سروكار دارند. براساس نوع كاری كه كاربران با بانك اطلاعاتی دارند می توان آنها را به سه دسته تقسیم كرد:
الف) مدیر یا مسئول بانك اطلاعاتی:
مسئول بانك اطلاعاتی كسی است كه حق هرگونه تبدیل و تغییر را در بانك اطلاعاتی دارد.
ب)كاربران نهایی:
كاربران نهایی كسانی هستند كه حق هیچ گونه تغییر و تبدیل را در بانك اطلاعاتی ندارند.
بلكه فقط از امكانات آن می توانند استفاده كنند.
ج)برنامه نویسان كاربردی یا طراح بانك اطلاعاتی:
طراحان بانك اطلاعاتی كسانی هستند كه بانك اطلاعاتی را ایجاد نموده اند.
2-نرم افزار:
مجموعة نرم افزارهایی كه در پایگاه داده مورد استفاده قرار می گیرد.
3- سخت افزار:
عبارت است از: بستر سخت افزاری مورد نیاز مثل  cpu و دیسك ...
4-ده ها:
دو خصوصیت مهم دارند:
1-بلیت اشتراكی شدن: به این معنی كه بتوانیم یك قطعه از داده بین كاربران مختلف به اشتراك بگذاریم.
2-ده دارای جامعیت باشد: یعنی داده ها به صورت صحیح و درست وارد شوند.
5-نواع بانك اطلاعاتی:
بانك اطلاعاتی به سه دسته می توان تقسیم كرد:
الف) بانك اطلاعاتی هرمی:
در این مدل یك موجودیت (مفهوم كلی پدیده، فردی، كه در مورد آن می خواهیم صحبت كنیم، Entity یا موجودیت می گوییم) به عنوان پدر و موجودیت دیگر به عنوان فرزند قرار می گیرد كه در درون فایل ذخیره می شود. هر موجودیت دارای صفت خاصه هایی است صفت خاصه ویژگی جداساز یك نوع موجودیت از نوع دیگر است هر صفت خاصه دارای دو مؤلفه است:
1-اسم صفت خاصه       2- مقدار صفت خاصه
در پروژه طراحی و ایجاد بانك اطلاعاتی تاكسی سرویس
موجودیت راننده(Driver) دارای صفت خاصه و مقدار صفت خاصه زیر می باشد:
تلفن- آدرس- اسم ماشین- پلاك ماشین- نام خانوادگی- نام- شمارة راننده: صفت خاصه، 052425-88، پژو 405، 68—619 ب19، احمدی، علی، 100: مقدار صفت خاصه

ب)مدل شبكه ای
از سه نوع ركورد (ركورد مجموعه ای از فیلدهای مرتبط به هم می باشد و فیلد عبارت است از كوچكترین واحد داده ذخیره شده می باشد) تشكیل می شود كه یك ركورد به عنوان كانكتور رابط بین دو موجودیت است و این مدل مبتنی بر لیست پیوندی است.
ج)مدل رابطه ای
بین واژه های داده و اطلاعات تفاوت است. داده ها با هم تركیب می شوند و اطلاعات را بوجود می آورند. وقتی از سیستم مدیریت بانك اطلاعاتی كامپیوتر مثل اكسس استفاده می كنیم بانك اطلاعات رابطه ای بهره می بریم. در بانك اطلاعاتی رابطه ای، اطلاعات به دسته ها ی مختلفی از داده های مرتبط بهم تقسیم می شوند كه هر كدام در جدول جداگانه در فایل ذخیره می شوند. در واقع، مفهوم بانك اطلاعاتی در اكسس، مجموعه‌ای از اشیاء هستند كه داده ها را ذخیره، دستكاری و بازیابی می كنند.

 هدف رابطه:
1-قابلیت انعطاف: اگر داده ها تغییر كنند، فقط كافی است در یك محل آن تغییرات را اعمال كنیم.
2-سهولت: ذخیره داده ها به سادگی انجام می شود.
3-قدرت: ذخیره داده ها در جدول های مرتبط و جدا از هم موجب می شود تا گروه‌بندی، جستجو و بازیابی اطلاعات به روش های گوناگون دستیابی شود.
4-سهولت مدیریت: بازیابی و مدیریت داده ها در جدول های كوچكتر آسانتر است.

نمودار: ER  (Entity relationship)

این نمودار نمایشگر ارتباط بین موجودیتهای یك محیط عملیاتی است و به كمك آن داده های موجود مدل بندی می شوند.
انواع رابطه:
الف(  ارتباط یك به یك: در شكل زیر هر استاد یك درس و هر درس فقط توسط یك استاد ارائه می شود البته ممكن است استادی اصلاً درس نداشته باشد یا درسی توسط هیچ استادی این ترم ارائه نگردد:


ب)ارتباط چند به یك: در شكل زیر چند استاد ممكن است یك درس را ارائه كنند ولی هر استاد فقط یك درس را ارائه می كند.


ج)ارتباط چند به چند: در این شكل هر درس ممكن است توسط چند استاد ارائه شود و هر استاد ممكن است چند درس مختلف را ارائه كند.


انواع كلید در مدل رابطه ای:
1-ابر كلید(S.K) Super Key: هر تركیبی از صفتها كه خاصیت كلید داشته باشد مانند شمارة راننده، شمارة سرویس، شمارة اشتراك، شمارة دانشجویی ...

2-كلید كاندید (G.K) (Candidate key):
كلید كاندیدی است كه توسط طراح بانك اطلاعاتی انتخاب می شود.
كلید كاندید دارای دو ویژگی است:                                                                                                                                     1) یكتایی مقدار به انی معنا كه مقدارش در رابطه یكسان نباشد

2)كهینگی اجزایی: به این معنا كه با حذف آن یكتایی مقدار از بین برود


4-كلیدئ فرعی (A.K) (Alternative Key): هر كلید كاندید غیر از كلید اصلی را كلید فرعی می نامند.
5-كلید خارجی (F.K) (Foreign Key): امكانی است برای ارجاع از یك رابطه به رابطة دیگر و در واقع وسیله ای است بری پیوند داده رابطه های بانك اطلاعاتی با یكدیگر.

مراحل بدست آوردن مدل ER تاكسی سرویس:
مرحله اول: پیدا كردن نهادهای مرتبط
راننده (Driver)، مسافر (Subscriber)، سرویس (Service)
مرحله دوم: پیدا كردن خصوصیات هر كدام از نهادها و تعیین كلید اصلی
راننده (Driver): شمارة راننده، نام، نام خانوادگی، پلاك ماشیم، اسم ماشین، آدرس، تلفن
مسافر(Subscriber): شمارة اشتراك، نام، نام خانوادگی، جنسیت، آدرس، تلفن
سرویس(Service): شمارة سرویس، شمارة راننده، شمارة‌ اشتراك، مسیر، تاریخ، زمان، مبلغ
مرحله سوم: تعیین رابطه های لازم و نوع ارتباط
راننده با مسافر رابطه ندارد و راننده با سرویس رابطه دارد و رابطة‌ آن یك به چ��د است.
مسافر با راننده رابطه ندارد و مسافر با سرویس رابطه دارد و رابطة آن یك به چند است.
مرحله چهارم: بهینه سازی:
در این حالت بهینه می باشد و نیازی به بهینه سازی ندارد.
مرحله پنجم: تبدیل  به حالت Access.
نتایج:
قبل از ایجاد بانك اطلاعاتی ابتدا باید مراحل طراحی بانك انجام شود و بعد با استفاده از اكسس بانك اطلاعاتی مربوط را ایجاد نمود وقتی اینكار را انجام دهیم بهتر می توان بانك را ایجاد كرد.

(2) 

                              تاریخچه بانکهای اطلاعاتی        (ORACLE&SQL& ACCESS)                                                              

 

تاریخچه  SQL:

نظریات کاد (Codd) غوغایی در زمینه تحقیق در باب بانک اطلاعاتی رابطه ای ایجاد نمود، که از آن جمله پروژه تحقیقاتی درIBM بود. هدف پروژه که به نامSystem/R نامیده می شد، این بود که ثابت کند مفهوم رابطه ای قابل اجرا بوده و نیز ارائه تجربیاتی عملی در زمینه ایجاد یک DBMS رابطه ای. کار بر رویSystem/R در نیمه دهه 1970 در لابراتوارهای S’Santa Tersa IBM در San Jose کالیفرنیا آغاز گردید.

در 1974 و 1975 فاز اول پروژه System/R نمونه کوچکی از یک DBMS رابطه ای راتولید نمود. علاوه بر خود DBMS پروژه System/R شامل کار بر روی زبان های پرسشی بانک اطلاعاتی نیز بود. یکی از این زبانها بنام SEQUEL یا Structured English Query Language بود. در1976و1977 پروژه تحقیقاتیSystem/R بازنویسی گردید. در ساختار جدید پرسشهای چند جدولی نیز پیشتیبانی می شد و چندین کاربر می توانستند به طور اشتراکی از داده ها استفاده نمایند.

سیستم System/R بین چندین مشتریIBM توزیع شد تا در1978 و 1979 مورد ارزیابی قرار گیرد. این مشتریان مقداری تجربه عملی با System/R و زبان بانک اطلاعاتی آن کسب نمودند. که به SQL تغییر نام داده بود (SQL از Structured Query Language گرفته شده است). علیرغم تغییر نام، تلفظ SEQUEL باقی ماند، و تا امروز نیز ادامه دارد. در 1979 پروژه تحقیقاتی System/R به پایان رسید، و IBM نتیجه گرفت که پیاده سازی بانک های اطلاعاتی رابطه ای نه تنها عملی است، بلکه می تواند پایه ای باشد برای یک محصول تجاری مفید. پروژه System/R و زبان بانک اطلاعاتی SQL آن ، در مطبوعات فنی در دهه 1970 مورد توجه زیادی قرار گرفت.

سمینارهایی در زمینه تکنولوژی بانک اطلاعاتی و مباحثاتی در مورد مزایای مدل رابطه ای جدید برگزار گردید. تا 1976 آشکار بود که IBM طرفدار جدی تکنولوژی بانک اطلاعاتی رابطه ای بوده ، توجه زیادی نسبت به زبانSQL دارد. تبلیغات در زمینه System/R باعث جذب گروهی از مهندسین در Menlo Park در کالیفرنیا گردید، و این گروه به این نتیجه رسیدند که تحقیقات IBM منجر به یک بازار تجاری برای بانک های اطلاعاتی رابطه ای خواهد گردید.

در 1977 این گروه شرکتی بنام Inc وRelational Software تاسیس نمودند تا یک DBMS رابطه ای بر اساس SQL بسازند. محصولی بنام Oracle در1979 عرضه گردید، و اولین DBMS رابطه ای بوجود آمد. به این ترتیب محصول Oracle باعث گردید اولین محصول IBM برای مدت 2 سال در بازار دچار رکود باشد. این محصول بر روی مینی کامپیوترهایVAx Digital’s اجرا می شد که خیلی از کامپیوتر های بزرگ IBM ارزان تر بودند.

امروزه این شرکت با نام Oracle Corporation اولین فروشنده سیستم های مدیریت بانک اطلاعاتی رابطه ای است. استادان آزمایشگاههای کامپیوتر در دانشگاه برکلی کالیفرنیا نیز در نیمه دهه 1970 مشغول تحقیق در زمینه بانک های اطلاعاتی رابطه ای بودند. (مانند تیم تحقیق IBM)، گروه فوق نیز یک نمونه از DBMS رابطه ای ایجاد نمودند و سیستم خود را Ingres نام نهادند.

پروژه Ingres شامل یک زبان پرسش یا Query language بود بنام QUEL، اگر چه از SQL خیلی ساخت یافته تر بود، اما شباهت آن به زبان انگلیسی کمتر بود.

در حالیکه Oracle وIngres برای ارائه محصولات تجاری در رقابت بودند، پروژه System/R شرکت IBM در تلاش بوده است که یک محصو ل تجاری با نام SQL/Data system یاSQL/DS  عرضه نماید         . موجودیت SQL/DS را در 1981 اعلام، و در 1982 شروع به عرضه محصول خود نمود. در سال 1983 IBM یک نسخه SQL/DS را برای VM/CMS سیستم عاملی که در کامپیوتر بزرگ IBM غالبا استفاده شده بود) اعلام نمود.

همچنین در سال 1983 شرکتIBM ، محصولDatabase2 یاDB2 را معرفی نمود که یک DBMS رابطه ای بود برای سیستم های بزرگ آن شرکت. DB2 تحت سیستم عامل IBM’s VMS(سیستم عامل مراکز کامپیوتری بزرگ اجرا می شد. اولین نسخه DB2در 1985 عرضه گردید، و مسئولین IBM اعلام نمو دند که این محصول یک برنامه استراتژیک برای تکنولوژی نرم افزاری IBM می باشد. DB2 از آن تاریخ تاکنون DBMS رابطه ای شاخص بوده و IBM از آن حمایت نموده و زبان DB2’s SQL استاندارد عملی زبان بانک اطلاعاتی بوده است.

 

                                                      تاریخچه  ORACLE:

سال 1977 لری السیون ، باب ‏ماینر و اداوتس با یکدیگر شرکتی را تشکیل دادند که (اتحادیه نرم افزارهای رابطه ای) یا (RSI) نام داشت . این شرکت با استفاده از زبان های Cو SQL یک RDBMS به نام (اوراکل) را تولید کرد که خیلی زود نمونه اولیه آن آماده شد . در سال 1979 ، اولین محصول شرکت RSI به مشتریان بازار نیز تحویل داده شد . نسخه 2 اوراکل ، روی سیستم Digital PDP-11 و تحت سیستم عامل RSX-11 اجرا شد و بلافاصله به سیستم DEC VAX انتقال یافت .
در سال 1983 ، نسخه 3 اوراکل به بازار آمد . در این نسخه ، تغییراتی در زبان SQL به وجود آمد ، کارایی سیستم بهبود یافت و برخی پیشرفت های دیگر نیز صورت گرفت . این نسخه ، بر خلاف نسخه های دیگر اوراکل به طور کامل با C نوشته شده بود . در این زمان بود که شرکت RSI نام خور را به شرکت اوراکل تغییر داد .
در سال 1984 ، نسخه 4 اوراکل بیرون آمد . این نسخه علاوه بر سیستم VAX ، سیستم عامل IBM VM را نیز پشتیبانی می کرد . نسخه 4 ، اولین نسخه ای بود که (سازگاری در عمل خواندن ) را نیز شامل می شد . نسخه 5 که در سال 1985 تولید شد ، گامی مهم به شمار می آمد ، چرا که برای اولین بار سیستم متقاضی/ سرویس دهنده (Client/Server) به کمک (Net*SQL) در آن گنجانده شده بود . به علاوه ، نسخه 5 اولین نسخه ای بود که تحت MS-DOS عمل کرده و از حد 640 کیلو بایت فراتر می رفت .
در سال 1988 ، شرکت اوراکل نسخه 6 را ارائه داد . این نسخه ، امکان قفل کردن همراه با پیشرفتهایی در عملکرد و کارایی سیستم (شامل توانایی های تولید دنباله ها و نوشتن معوق) صورت گرفت . اوراکل نسخه 6 ، روی انواع سیستم ها قابل اجرا بود . سال 1991 ، شرکت اوراکل ویژگی سرویس دهنده موازی را در نسخه 1/6 سیستم RDBMS خود تحت DEC VAX ارائه داد. پس از آن بود که ویژگی مزبور روی سایر سیستمها نیز قابل استفاده شد .
اوراکل 7 که در سال 1992 به بازار آمد ، شامل تغییرات بسیاری در کاربری حافظه ، CPU و ورودی / خروجی بود . اوراکل 7 به طور کامل ویژگی هایی از RDBMS را شامل می شد که کاربران چندین سال از آنها استفاده می کردند . در این نسخه ، برای به کار بردن هر چه آسانتر برنامه ، ابزارهایی نظیر DBA*SQL ارائه شد.
… و بالاخره در سال 1997 ، شرکت اوراکل نسخه 8 نرم افزار خود را معرفی کرد که در آن امکان پیاده سازی ((اشیاء)) و چند قابلیت و ابزار جدید مدیریت گنجانده شده بود . برای اطلاع بیشتر درباره شرکت اوراکل ، محصولات تولیدی آن و همچنین چگونگی کارکردن با این نرم افزار ، می توانید به آدرس www.oracle.com رجوع کنید . در این سایت اطلاعات سودمندی درباره محصولات اوراکل و ابزارهای کمکی توسعه آن – که به ویژه برای برنامه نویسان مناسب است – در دسترس می باشد .
مدیر یا کاربر اوراکل بودن ، هر چند ممکن است حرفه یا مقامی خوشایند بوده و امتیازات فراوانی را در اختیار شخص قرار دهد ، ولی در عین حال بسیار طاقت فرسا و پر مسئولیت است .
مختصری درباره بانک اطلاعاتی(( Oracle))
از دیر باز مهمترین فاکتور در صنعت نرم افزار وIT داده ها یاDATA بوده است، لذا همیشه انتخاب بستری مناسب جهت ذخیره اطلاعات ازاهمیت بالایی برخوردار بوده است . اولین تکنولوژی که در این خصوص شکل گرفت سیستمهای مدیریت فایل بود که هنوز هم توسط تعدادی از شرکتها و موسسات مورد استفاده قرار       می گیرد اینگونه سیستمها دارای ضعفهایی بوده و هست که در ذیل به برخی از آنها می پردازیم :
1-عدم کنترل صحت اطلاعات توسط خود سیستم .
2-ضریب ایمنی پایین داده ها (به طور مثال با خاموش کردن ناگهانی کامپیوتر و یا قطع و وصل برق در هنگام نوشتن ویا خواندن اطلاعات توسط سیستم اطلاعات از بین رفته یا خراب و بهم ریخته می شود.
3-ضریب ایمنی پایین سیستم (به طور مثال کاربران خبره تر می توانند خارج از محیط نرم افزار به تغییر اطلاعات پرداخته و سوء استفاده نمایند.(
4-سرعت پایین در دسترسی به اطلاعات با افزایش داده ها.
5-. عدم توانایی در نگهداری حجم زیاد اطلاعات.
6-عدم توانایی در سرویس دهی به تعداد کاربر زیاد (این سیستمها معمولاً برای یک تا چهارکاربر بیشتر طراحی نشده است).
7- عدم توانایی در کنترل همزمانی سیستم هنگام استفاده در شبکه.
برخی از اینگونه سسیتمها عبارتند از FoxPro ، Dbase ،Btrive ،Paradox .
با توجه به ضعفهای ذکر شده سیستمهای دیگری مطرح گردید که به سیستمهای مدیریت بانکهای اطلاعاتی یا RDBMS معروف شده است . اینگونه سیستمها علاوه بر اینکه ضعفهای ذکرشده در بالا را رفع نموده امکاناتی را نیز به آن اضافه نموده است . معروف ترین بانکهای اطلاعاتی دردنیاعبارتنداز Oracle ،DB2 ، Informix ،SqlServer .
Oracle را می توان قویترین بانک اطلاعاتی در دنیا نام برد طبق آمار گیری مرکز IT آمریکا 75 درصد شرکتهای بزرگ در آمریکا واروپا از بانک اطلاعاتی Oracle استفاده می نمایند‌ ،در واقع Oracle را می توان شکست ناپذیر ترین بانک اطلاعاتی در جهان نامید.
در زیر برخی از مزایای این بانک اطلاعاتی ذکر شده است :
1- کنترل صحت اطلاعات توسط سیستم به صورت اتوماتیک (یعنی خود بانک اطلاعاتی از ورود اطلاعات غیر معتبر جلوگیری می‌نماید).
2- ضریب ایمنی بالای سیستم (عدم از بین رفتن اطلاعات را تضمین کرده و بهم ریختگی و خرابی به هیچ عنوان وجود ندارد).
3-ضریب امنیتی بالای سیستم (این خاصیت عدم دسترسی غیر مجاز کاربر به اطلاعات را تضمین می نماید.توجه به این نکته ضروری است که Oracle جهت حفاظت سیستم دارای 14 لایه امنیتی می‌باشد این در حالی است که SqlServer شرکت Microsoft فقط دارای یک لایه امنیتی می باشد).
4- سرعت بالا در دسترسی به اطلاعات در حجم انبوه .
5- توانایی نگهداری حجم انبوه اطلاعات (برای مثال Oracle امکان نگهداری سه بیلیون Tablespace و هر Tablespace قابلیت نگهداری 1022 فایل و هر فایل قابلیت نگهداری 1022 جدول را دارا می باشد . ضمناً هر جدول می تواند دارای هزار ستون و تعداد سطرهای نامحدود باشد).
6- توانایی سرویس دهی به تعداد زیادی کاربر همزمان بدون کاهش محسوس زمان پاسخگویی سیستم (با داشتن سخت افزار مناسب با استفاده از این بانک اطلاعاتی می‌توان تا بیش از بیست هزار کاربر همزمان را سرویس دهی نمود).
7-امکان کنترل همزمانی در سیستم شبکه.
8-امکان تعریف سیستم جهت انجام اتوماتیک عملیات پشتیبان‌گیری از اطلاعات (مثلاً می توان سیستم را طوری برنامه ریزی نمود که راس یک ساعت به طور روزانه ، هفتگی ، ماهانه و یا در تاریخ مشخص اقدام به پشتیبان‌گیری از اطلاعات نماید).
9-. امکان آرشیو نمودن Online اطلاعات (یعنی به محض وارد نمودن اطلاعات جدید یا تغییر ، اطلاعات جدید یا تغییر کرده در محل دیگری مانند دیسکهای نوری نیز ذخیره گردد تا در صورت خرابی سخت افزار کلیه اطلاعات قابل بازیابی باشد).
10- با استفاده ازابزارRecovery Manager امکان بازیابی سریع و راحت اطلاعات وجود دارد .
11-ابزار EnterPrise Manager امکان کنترل و مدیریت بانک اطلاعاتی را به طورساده وVisual می دهد.
11-امکان مدیریت و کنترل سیستم به صورت Remote Accsess وجود دارد.(یعنی:کاربران می توانند از محلهای دیگر با استفاده از خطوط تلفن به سیستم وصل شده و در صورت داشتن مجوز به کنترل و ومدیریت بانک اطلاعاتی بپردازند).

 

 

                                                               تاریخچه  ACCESS:                                       Access  در سال 1992 ، Microsoft Access به عنوان یک DBMS عرضه شد و در طی سالهای متمادی ، در رده خود به صدر رسید  Access. به عنوان بخشی از مجموعه برنامه های معروف Microsoft Access روزانه توسط میلیون ها نفر استفاده می شود. از همان ابتدا Access به تدریج توسعه یافت و به برنامه ای کارآمد با کاربردی آسان مبدل شد. نگارش های اخیر آن در حالی که هم چنان جایگاه خود را در دنیا به عنوان مشهورترین DBMS دسک تاپ حفظ کردند . امکان ساخت برنامه هایی را برای برنامه نویسان فراهم می کنند که این برنامه ها بر مبنای DBMS کلاینت / سرور SQL Server مقیاس جهانی مایکروسافت می توانند به اطلاعات پایگاه های داده کلاینت / سرور شبکه های بزرگ دسترسی پیدا کنند. هرچند اکثر افراد از Access برای انجام وظایف نسبتاً ساده مدیریت داده که نیازی به هیچ گونه برنامه نویسی ندارد ، استفاده می کنند ولی زبان VBA امکان میزبانی سیستم هایی را برای Access فراهم می کند که می توان آنها را برای رفع نیازهای بسیاری از سازمان ها سفارشی کرد بدون توجه به اندازه آنها یا انواع وظایفی که باید انجام دهند. نگارش های Access در سال 1922 Access 1.0 کمی پس از پیدایش ویندوز مایکروسافت عرضه شد. در سال 1993 Access 1.1 و در سال 1994 Access 2.0 ، هر نگارش جدید نمایانگر بهبود روزافزودن نگارش های قبلی است.به همین ترتیب Access 95 در سال 1995 ،Access 97 درسال 1997 ، Access 2000 در سال 1999 و Aceess 2002 در سال 2001 عرضه شدند. ویژگی های ایجاد شده در نگارشهای 1.0 و 1.1 و 2.0 از Access فناوری OLE در Table Designer: به کاربران امکان می دهد تا پایگاه های داده حاوی تصاویر گرافیکی و فایل هایی ویدیویی و صوتی را علاوه بر متن و اعداد ایجاد کنند. OLE مخفف Object Linking and Embbedding است که توصیفی است از آن چه OLE انجام می دهد. کاربران حتی می توانند اسناد Word و صفحات گسترده Excel را در یک پایگاه داده Access یکجا جمع کنند. Forms Package  به کاربران امکان می دهد تا با کشیدن عناصر فرم به روی یک صفحه خالی ، فرم های سفارشی ایجاد کنند. این مرحله استفاده از آن را آسان می سازد: Report Wizard. ایجاد گزارش را نیز آسان می کند.

:Query Designerکشیدن و انداختن از فناوری QBE استفاده شده است تا کاربران بتوانند پرس و جوها را بدون نوشتن کد برنامه ایجاد کنند. :Graph Wizard . در طی یک فرآیند گام به گام شهودی ، نموداری را نشان می دهد. Access 1.0 علاوه بر فایل های طبیعی خود می تواند روی فایل های DBASE ، PARADOX و BTRIEVE یا درایورهای طبیعی نظیر SYBASE AQL SERVER ، DEC Rdb و FOXPRO از طریق رابط ODBC عمل کند. ODBC مخفف Object DataBase Connectivity است و یک API مشترک برای پایگاه های داده ناسازگار مختلف فراهم می کند. در نگارش Access 1.1 پشتیبانی پیشرفته Btrieve , ODBC اتصال به foxpro صدور آسان داده به برنامه word برای برنامه های ادغام پست الکترونیکی اندازه های پایگاه داده حداکثر تا 1 گیگا بایت (حدود هشت بار بزرگ تر از 1.0 را می توان مدیریت کرد) زمان اجرای Access قابل دسترسی است . برنامه نویسان می توانند برنامه هایی ایجاد کنند که بدون نصب Access روی سیستم عمل می کنند. 2.0Access دارای قابلیت های بیشتری است : ویزاردها که وظایفی را خودکار کرده اند که قبلاً مستلزم کد نویسی در بخشی از برنامه بودند. مدیریت رویداد پیچیده تر یک اشکال زدا در ابزارهای برنامه نویسی به علاوه یک مستند ساز خودکار و Add – in Manager بهبودهایی در موتور JET پایگاه داده و به دنبال آن پایگاه های داده پیچیده تر برای ساخت اجرای پرس و جوها با دوبرابر سرعت 95Access 95 Access اولین نگارشی بود که رسماً به عنوان بخشی از Microsoft Office مطرح شد. کنترل های آن با سایر اعضای مجموعه برنامه های Office به خوبی کار می کنند. VBA یکی از ابزارهای برنامه نویسی است که Access با سایر برنامه های Office نظیر Word و Excel به اشتراک گذاشته است. Import Wizard و pivotTable Wizard اضافه شده اند. ویزاردهای form و report بهبود یافته اند. 97 Access 97 Access بیشتر مبتنی بر وب است. فرق پیوندها را به عنوان یک نوع داده طبیعی ذخیره کرده و امکان ذخیره سازی در HTML را فراهم می کند. کاربران می توانند اشیای پایگاه داده را در وب منتشر کنند. داده را از یک سند HTML که حاوی جدولی است استخراج کرده و سپس داده را در جدول پایگاه داده قراردهند. ماژول های کلاس می توانند حاوی تعریف شئ را نگه دارند. کامپایل شرطی به برنامه نویسان امکان می دهد تا هر دو کامپایل تولید و اشکال زدایی برنامه های خود را با تنظیم پرچم ها در کد ایجاد کنند. برنامه نویسان قادر به حذف کد منبع از برنامه هستند، بنابر این از سرعت اجرا کاسته شده و افراد نمی توانند آن را مشاهده و کپی کنند. کنترل های Activex جدیدی عرضه شده اند و سازگاری با سیستم های کنترل کد به ویرایش Developer از Office 97 اضافه شده است. 2000 Access Access در این نگارش از بسیاری از جهات بهتر شده است. یعنی کارآیی بهبود یافته و توانایی آن افزایش یافته است. این نگارش Access دارای ویژگی های زیر است: ADO عملاً جایگزین تمام عملکردهای دستیابی داده شده است که قبلاً با DAO انجام می شد. همان طور که قایل های mdb با موتور jet کار می کنند. فایل های Access Project(.adp) نیز به راحتی با فایل های Microsoft Data Engine و SQL Server کار می کنند. DAP ها عرضه شده اند که به شما امکان می دهد تا چیزهایی همانند گزارش ها و فرم های Access را در وب قرار دهید. 2002 Access این ویژگی ها به نسخه Access قبلی اضافه شده است: انجام مجدد و لغو چند سطحی گروه بندی بهتر با ورودی داده چند جدولی پشتیبانی پیشرفته برای SQL Server Desktop Engine را علاوه بر حذف ها و بهنگام رسانی های آبشاری شامل می شود. Upsizing Wizard برنامه های نوشته شده را طوری تبدیل کرده تا موتور jet فعال شود و آنها بتوانند با SQL Server Desktop Engine کار کنند. پشتیبانی XML اضافه شده است. 2003 Access ویژگی های جدید 2003 Access عبارتند از : کاربرد آسان توانایی بسیار در وارد ، صادر و کارکردن با فایل های داده XML پرچم گذاری خطاهای مشترک شناسایی وابستگی به شیء Access یک محیط برنامه نویسی محسوب می شود. شامل : کمی موانع سر راه ورودی – می توانید حتی با کمی مطالعه با آموزش مختصر ، برنامه های سودمندی را برنامه نویسی کنید. شهودی بودن آن – هرچه بیشتر از Access استفاده کنید و به مهارت خود بیفزایید . با استفاده از قدرت هر چه بیشتر Access بهتر می توانید از پس کارهای پیچیده تر برآیید. بخشی از مجموعه Office محسوب می شود. Access از قابلیت های سایر اعضای Microsoft Office نظیر word , excel برخوردار است. با Sql Server مایکروسافت کاملاً یکپارچه شده است. به همین علت Access برای انجام بسیاری از وظایف برنامه نویسی از کوچک ترین برنامه پایگاه داده شخصی گرفته تا برنامه های گسترده جهانی برای شرکت های چند ملیتی بزرگ مناسب است. معمولاً سایر محصولات DBMS برای یک یا چند منظور در نظر گرفته می شوند. تفاوت بین پایگاه های داده و برنامه های پایگاه داده گاهی اوقات افراد در تشخیص بین پایگاه های داده و برنامه های پایگاه داده دچار اشتباه می شوند. این امر در مورد افرادی صدق می کند که به طور تجربی کار کردن با Access را یاد گرفته اند نه کسانی که دوره آموزشی را طی کرده اند.

(3)

   مقایسه Oracle با  SQLServer

در زمینه:                                    :                                                                                                                                                                                        

كپی پشتیبان و بازیابی اطلاعات

همان‌طور كه قبلاً نیز اشاره شد در نسخه‌های قبلی SQL Server نمی‌توانستیم به صورت آنلا‌ین از اطلاعاتمان كپی بگیریم، ولی در نسخه جدید SQL Server 2005 مدیران بانك‌های اطلاعاتی می‌توانند به راحتی عملیات كپی و بازیابی اطلاعات را به صورت آنلاین انجام دهند.

در حالی كه سرور در حال كار كردن است. اوراكل نیز ساختاری شبیه این را با استفاده از Tablespaceها انجام می‌دهد. البته در Tablespaceهای اوراكل نمی‌توان اطلاعات قبلی را در Tablespace بازیابی نمود و از آن‌جایی كه در هر Tablespace یك Metadata وجود دارد، این Tablespaceها نمی‌توانند كامل باشند.

البته اوراكل دارای ابزار بازیابی اطلاعات كاملی است و می‌تواند با كمك گرفتن از Redo logها این كار را آسان كند.
اوراكل با استفاده از logical dump‌هایی كه می‌سازد، می‌تواند مشكلی كه باعث نیاز به بازیابی می‌شود را شناسایی كند. البته SQL Server هم ابزارهایی مانند DBCC PAGE و DBCC LOG د��رد كه مانند ابزارهای اوراكل عمل می‌كند.

انتقال و‌ ورود اطلاعات (Export and Import)
یكی از امكانات جدید Oracle 10 g برای انتقال یا صادر كردن اطلاعات به data pump معروف است. data pump ساختاری binary دارد. اوراكل این كار را توسط دو گزینه كه برای صادر و دو گزینه برای وارد كردن اطلاعات دارد، انجام می دهد. این دو گزینه exp/data و imp/data هستند.
اضافه بر این، در اوراكل ابزار sqlldr نیز وجود دارد كه اختصاصاً برای import كردن اطلاعات متنی به كار می‌رود. از طرف دیگر SQL Server2005 دارای دو گزینه برای export و import است؛ به نام‌های bcp و Bcp .DTS می‌تواند اطلاعات را (به صورت متنی import یا export كند) و حتی می‌تواند اطلاعات را به فرمتی ذخیره كند كه بانك‌های اطلاعاتی دیگر نیز بتوانند از آن استفاده كنند.

DTS نیز یكی از پر سرعت‌ترین ابزارهای انتقال اطلاعات در SQL Server است كه در مقایسه با اوراكل بسیار سریع‌تر و كار با آن آسان‌تر می‌باشد. اوراكل نیز در نسخه جدید خود از ابزار ‌WisdomForce FastReader استفاده می‌كند كه می‌تواند با سرعت زیاد كار export و import را انجام دهد و اطلاعات را با فرمت متنی آماده سازد. از این ابزار می‌توان برای انتقال اطلاعات بین اوراكل و بانك‌های اطلاعاتی دیگر مانند MS SQL ،2DB ،Sybase استفاده نمود.

 


امكانات موجود برای برنامه‌نویس‌ها
یكی از امكاناتی كه اوراكل در اختیار برنامه‌نویسان قرار می‌دهد، امكان استفاده از Exception Handling است كه توسط PL/SQL قابل دسترسی است. در SQL Server 2005 نیز این امكان توسط Transcat-SQL مهیا شده است.
در مبحث Queuing ،SQL Server 2005 ابزاری به نام Server Broker دارد كه می‌تواند امكان استفاده از Queing را برای برنامه‌نویسان فراهم سازد، اما در اوراكل ابزاری قوی به نام Oracle Advanced Queuing وجود دارد كه كار Queing را به صورت كامل انجام می‌دهد.
SQL Server 2005 می‌تواند كمك بیشتری به برنامه‌نویسان بكند؛ زیرا از NET. استفاده می‌كند، ولی بر خلاف آن، هسته اوراكل از جاوا درست شده است و مستقیماً فقط می‌تواند توسط PL/SQL اجرا شود. در نتیجه در SQL Server 2005 می‌توانیم به صورت مستقل از دستورات NET. استفاده كنیم.

از طرف دیگر از آنجا كه جاوا هسته اوراكل را تشكیل می‌دهد، نگهداری آبجكت‌های جاوای درون اوراكل درست مانند نگهداری یك سرور جاوا می‌باشد، ولی SQL Server 2005 تنها در برخی قسمت‌ها مانند اشكال‌یابی از NET trigger. استفاده می‌كند و حجم سنگینی ندارد.


امكانات ویژه SQL Server 2005

- ‌SQL Server 2005 :Replication ابزار Replication بسیار قدرتمندی دارد كه می‌تواند از اوراكل به SQL Server یا بلعكس Replication انجام دهد.
- Notification: در SQL Server 2005 سرویس Notification یكی از سرویس‌هایی است كه می‌توان با آن در ‌Alertهایی مانند Stock Market استفاده نمود.
- Reporting Services: یكی از امتیازات SQL Server 2005 در مقایسه با اوراكل، داشتن سرویس گزارش‌های داخلی است كه با استفاده از آن می‌توان انواع گزارش‌ها را استخراج نمود. البته اوراكل هم دارای Oracle IAS است كه كار گزارش‌گیری را حتی قوی‌تر از SQL Server انجام می‌دهد، ولی مانند SQL Server 2005 در داخل بانك اطلاعاتی نیست و به صورت خارجی عمل می‌كند. همچنین خرید آن نیز هزینه زیادی خواهد داشت.
- Identity: در اوراكل نمی‌توان به صورت خودكار كلید اصلی یا Primary key را تعریف كرد. در صورتی در SQL Server2005 این امكان وجود دارد. البته اوراكل دارای Sequence است، ولی نگهداری این Sequenceها توسط مدیر سیستم كار آسانی نیست.
امكانات ویژه ‌Oracle 10g

- Auditing: در اوراكل این كار با استفاده از پارامتر جدید audit_trail=db_extended, init.ora انجام می‌پذیرد كه می‌توان از تمامی جست‌وجوها به همراه مقادیر ورودی هر یك از آن‌ها اطلاعات ذخیره كرد. این كار در SQL Server2005 تنها با استفاده از Trace امكانپذیر است. آن هم نمی‌تواند مقادیر Bind شده اطلاعات را نشان دهد و استفاده از آن نیز می‌تواند كارایی سرور را تا حد زیادی پایین بیاورد.

- Logminer: در‌ اوراكل ابزاری به نام Logminer وجود دارد كه می‌تواند تاریخچه تمامی DML یا DDLهای كل پایگاه اطلاعاتی را به ما بدهد. SQL Server2005 این ابزار را ندارد، ولی می‌توان از Lumigent Log Explorer برای مشاهده برخی از این تاریخچه استفاده كرد.

- Flashback Query: این امكان در نسخه جدید Oracle 10g عرضه گردید و با كمك آن می‌توان اطلاعات از دست رفته را بازیابی كرد.

- Rollback Statistics: در اوراكل اگر عملیاتی سنگین در وسط كار انجام نپذیرد، می‌توان آن را Rollback كرد. Rollback statistics می تواند به شما بگوید چه زمانی طول خواهد كشید كه Rollback انجام شود و عملیات پایان پذیرد. كافی است جست‌وجوی زیر را به كار ببرید:
V$FAST_START_TRANSACTIONS
این قابلیت در SQL Server2005 وجود ندارد.

- AWR یا Automatic Workload Repository تصور كنید كه بانك اطلاعاتی شما بسیار حجیم است، ترافیك زیادی دارد و جوابگویی آن به كلا‌ینت‌ها كُند شده است. با استفاده از AWR در Oracle 10g می‌توانیم مشكل را بررسی كنیم و تشخیص دهیم چه مشكلی در سیستم وجود دارد. اوراكل این كار را با استفاده از درست كردن Viewهای زیر انجام می‌دهد.
v$sysmetric_history for v$sysmetric
v$active_session_history for v$active_session
v$waitclassmetric_history for v$waitclassmetric
v$session_wait_history for v$session_wait
v$servicemetric_history for v$servicemetric

- پشتیبانی از OO یا Oracle :Object Oriented قابلیت‌های شیءگرا (object oriented) دارد. برای همین، این بانك اطلاعاتی را می‌توان بانك اطلاعاتی رابطه‌ای شیءگرا نیز نامید. با استفاده از این قابلیت، برنامه‌نویسان می‌توانند Class و Objectهای برنامه شیء‌‌گرای خود را مستقیماً به جداول بانك اطلاعاتی Map كنند.

 

(4)

              بانک های اطلاعاتی رابطه ای(مفاهیم وتعاریف)

موجودیت (Entity)
به هر چیزی (شی ، شخص ، محل و ...) که می خواهیم در یک سیستم راجع به آن اطلاعاتی را جمع آوری ، پردازش و نگهداری نمائیم ، یک موجودیت گفته می شود . تعریف فوق ، متداولترین برداشت اولیه از موجودیت می باشد . مجموعه موجودیت های یک سیستم ، ساختار اطلاعاتی آن سیستم را مشخص می كند . هر موجودیت شامل اجزاء و المان هائی است که آن موجودیت را توصیف می كند كه به آنها  خصیصه و یا Attribute گفته می شود . هر موجودیت بسته به این كه  در سیستم مورد مطالعه چه میزان اطلاعات راجع به آن می خواهیم داشته باشیم ، شامل حداقل یک و یا چند خصیصه خواهد بود. از آنجا که هر موجودیت راجع به یک موضوع به خصوص می باشد ، بنابراین یک ارتباط منطقی بین کلیه خصایص موجودیت وجود خواهد داشت .در واقع  ،‌ تمام خصائص یک موجودیت توصیف کننده آن موجودیت خواهد بود . برای روشن شدن موضوع بد نیست به نمونه مثال ذیل توجه نمائید :
- موجودیت مشتری شامل خصلت های نام مشتری ، آدرس مشتری ، تلفن مشتری و ... است .
- موجودیت سفارش شامل خصلت های شماره سفارش ، تاریخ سفارش ، نام مشتری ، کالای سفارش شده ، تعداد کالای سفارش شده و ... است
همانگونه که در مثال فوق مشاهده گردید ،  تمام خصلت های موجودیت مشتری توصیف کننده یک مشتری و تمام خصلت های موجودیت سفارش توصیف کننده یک سفارش می باشند .

کلید (Key)
هر رخداد از یک موجودیت را باید بتوان به وسیله یک و یا ترکیبی از چند خصیصه آن به صورت یکتا شناسائی نمود . به تعبیر دیگر ، هر یک از رخدادهای یک موجودیت باید یکتا باشد ، در غیر اینصورت تغییر و یا حذف یک رخداد از موجودیت (در مثال فوق یک مشتری) غیر ممکن خواهد بود . از اینرو از بین خصلت های یک موجودیت یک و یا ترکیبی از چند خصیصه به عنوان کلید آن موجودیت انتخاب می شود .  این خصلت (و یا ترکیب خصلت ها) باید بتواند یکتائی هر رخداد از موجودیت را تضمین نماید . در موجودیت سفارش مثال فوق ، خصلت شماره سفارش می تواند بعنوان کلید انتخاب شود .
توضیح : در برخی از موارد در یک موجودیت چندین کلید وجود دارد  كه به هر یک از آنها یک Candidate Key یا Alternate Key گفته می شود .
در برخی از حالات نمی توان در یک موجودیت هیچ کاندیدی برای کلید یافت ، مانند موجودیت مشتری در مثال فوق . در این موجودیت هیچیك از خصلت ها و یا هیچ ترکیبی از آنها نمی تواند صد درصد تضمین کننده یکتائی آن باشد (با اینکه احتمال وجود دو مشتری هم نام در یک آدرس و با یک شماره تلفن بسیار کم است ، اما باز هم احتمال وقوع دارد) . در چنین مواردی مجبور هستیم یک خصلت به موجودیت اضافه کنیم تا تضمین کننده یکتائی رخدادهای آن باشد . در مثال فوق با اضافه کردن خصلت کد مشتری به موجودیت مشتری ، می توان یکتائی آن را تضمین نمود . به این نکته دقت شود که بسیاری از خصلت های یک موجودیت در کنترل سیستم نیست و از خارج به سیستم تحمیل می گردد . به عنوان مثال ما نمی توانیم تعیین کنیم که نام مشتری های سازمان تکراری نباشد . اما عدم تکراری بودن خصلت هائی که خود ما ایجاد نموده ایم را می توان تضمین کرد ( نظیر کد مشتری که توسط سیستم و یا سازمان مربوطه تولید می شود )  .

کلید اصلی (Primary Key)
از بین کلیدهای یک موجودیت (Candidate Key) ، می بایست یک کلید را به عنوان کلید اصلی انتخاب نمود . معیارهای مختلفی در این انتخاب دخیل هستند ، اما معمولا" بهترین کلیدی که معرف مفهوم و ماهیت موجودیت باشد به عنوان کلید اصلی انتخاب می گردد .

وابستگی تابعی (Functional Dependency)
وابستگی تابعی مفهومی است که مابین خصلت های یک موجودیت تعریف می گردد . به این معنی که می گوئیم خصلت A با خصلت B وابستگی تابعی دارد ، در صورتیکه به ازای هر مقدار مشخص از خصلت B بتوان مقدار مشخص و یکتائی از خصلت A را بدست آورد ، اما عکس آن ممکن است صادق نباشد . در موجودیت مشتری مثال قبل ، به ازای هر کد مشتری می توان نام او را بدست آورد در این صورت می گوئیم خصلت نام مشتری با خصلت کد مشتری وابستگی تابعی دارد . اما عکس آن صادق نیست چرا که به ازای یک نام مشتری مشخص ، نمی توان یک کد مشتری یکتا استخراج نمود (دو مشتری مختلف می توانند نام یکسان داشته باشند ، در این حالت یک نام مشتری ممکن است متناظر با دو  و یا حتی چند کد مشتری باشد).

انواع رابطه بین خصلت های یک موجودیت
بین خصلت های یک موجودیت سه نوع رابطه وجود دارد :
رابطه یک به یک (One To One) : در حالتی اتفاق می افتد که خصلت A وابستگی تابعی به خصلت B داشته باشد و خصلت B نیز وابستگی تابعی به خصلت A داشته باشد . در این حالت هر دو خصلت A و B کاندیدای کلید شدن می باشند.
رابطه یک به چند (One To Many) : اگر خصلت A وابستگی تابعی به خصلت B داشته باشد و عکس آن صادق نباشد ، یك ارتباط از نوع یک به چند وجود خواهد داشت . در این حالت ، خصلت B کاندید کلید شدن است و خصلت A صرفا" یکی از توصیف گرهای موجودیت محسوب می گردد .
 -  رابطه چند به چند (Many To Many) : اگر دو خصلت هیچکدام وابستگی تابعی به یکدیگر نداشته باشند آنگاه رابطه بین آنها چند به چند خواهد بود . در این حالت هیچیکدام از آنها کاندید کلید شدن نبوده (ممکن است ترکیب آنها کاندید کلید شدن باشد) و صرفا" توصیف کننده موجودیت خواهند بود .

 

هنجار سازی (Normalization)
هنجار سازی ، فرآیندی است كه طی آن یك موجودیت جهت به حداقل رسانی نابهنجاری های بوجود آمده در خلال تغییرات اعمال شده بر روی رخدادهای یک موجودیت مورد بررسی و تبدیل قرار می گیرد. اگر این فرآیند به طور صحیح بر روی یک موجودیت اعمال نگردد ، آنگاه نمی توان هیچ تضمینی در خصوص حفظ یکپارچگی اطلاعات آن موجودیت ارائه داد . فرآیند هنجار سازی به دلیل اهمیت و گستردگی آن  در مقاله ای جداگانه تشریح خواهد شد. 

نا بهنجاری
به پیامدهای ناخواسته تغییر اطلاعات نابهنجاری گفته می شود .

Relation
موجودیت ها در مدل منطقی داده های سیستم مورد بحث و بررسی قرار می گیرند و پس از طی فرآیند هنجارسازی در مرحله فیزیکی به صورت ماتریسهای دوبعدی مشتمل بر سطرها (رخدادهای مختلف یک موجودیت) و ستون ها (خصلت های مختلف آن موجودیت) تعریف می گردند . هر یک از این ماتریس ها را یک ارتباط یا Relation می نامند که در مدل فیزیکی معمولا" آنها را با نام جدول (Table) معرفی می کنند . همانطور که پیش از این اشاره شد تمام خصلت های یک موجودیت با یکدیگر ارتباط منطقی داشته و معرف آن موجودیت می باشند ، از اینرو به این جداول ارتباط می گویند .

Tuple
هر یک از رخدادهای مختلف یک موجودیت را یک Tuple می گویند که در مدل فیزیکی معمولا" از آنها با نام ردیف (Row) و یا رکورد (Record) نام برده می شود . بنابراین Tuples ، ردیف های جدول دو بعدی هستند که آن را به عنوان Relation و یا Table می شناسیم .

Attribute
هریک از خصلت های مختلف یک موجودیت را Attribute می نامند ( نظیر کد مشتری ) . معمولا" در مدل فیزیکی به جای Attribute از فیلد (Field) و یا ستون (Column) استفاده می شود . بنابراین Attributes ، ستون های جدول دو بعدی هستند که آن را به عنوان Relation و یا Table می شناسیم .

ارتباط (Relationship)
منظور ارتباط بین دو Relation  و یا جدول است که بر اساس برابری فیلدهای یکسان در هر جدول تعریف و دارای انواع مختلفی است . ( به دلیل اهمیت و گستردگی ، در مقاله ای جداگانه تشریح خواهد شد) .  این ارتباط ها در مدل منطقی مابین موجودیت ها (خصوصا" موجودیت های نرمال شده ) تعیین می گردند و به آن Entity Relation یا ER سیستم می گویند . مدل ER سیستم توسط ابزارهای مستند سازی جهت درک بهتر مدل داده ای سیستم ترسیم می گردد که به آنها ERD می گویند .

پس از تشریح برخی از مفاهیم اولیه و در عین حال مهم بانك های اطلاعاتی رابطه ای ، به اختصار می توان گفت که یک بانک اطلاعات رابطه ای مجموعه ای از رابطه ها (Relations) و یا جداول به همراه تمامی ارتباط هائی (Relationship) است که بین آنها وجود دارد  . هر بانک اطلاعاتی در خصوص یک سیستم مورد نظر طراحی و ایجاد می گردد ، اما در برخی از سازمان های بزرگ که بین سیستم های مختلف آن ارتباط وجود دارد (نظیر سیستم پرسنلی ، حقوق و دستمزد و مالی و ...) ممکن است  بانک های اطلاعاتی با یکدیگر تجمیع  و پس از طی فرآیند یکپارچه سازی به صورت یک بانک اطلاعاتی جامع و یکپارچه برای آن سازمان تعریف و ایجاد گردد .
امروزه سیستم های مدیریتی بانک های اطلاعاتی رابطه ای مختلفی وجود دارد که هر یک ویژگی ها و قابلیت هایی خاص خود را دارند . به این سیستم ها و یا نرم افزارها اختصارا" RDBMS گفته می شود .  MS ACCESS ،  MS SQL ، ORACLE ، SYBASE   ، نمونه هائی  متداول در این زمینه می باشند .
تمامی سیستم های مدیریت بانک های اطلاعاتی رابطه ای به منظور ارائه قابلیت های خود و استفاده از آنها از زبان مشترکی که به آن SQL  ( برگرفته شده از Structured Query Language )  گفته می شود ، استفاده می نمایند . تمامی نیازها و انتظارات  کاربران از بانک های اطلاعاتی نظیر جستجوی اطلاعات ، ایجاد ، تغییر و یا حذف اطلاعات حتی ایجاد بانک اطلاعاتی و یا سایر اجزاء مرتبط با آن توسط زبان فوق تعریف و تحویل RDBMS داده خواهد شد تا پس از بررسی بر روی بانک اعمال گردد.

 

(5)

  

                                                      نرمال سازی بانک اطلاعاتی رابطه ای


قبل ار مطالعه این مطلب پیشنهاد می گردد به دلیل ضرورت آشنائی خوانندگان با مفاهیم بانك های اطلاعاتی رابطه ای ، مقاله "بانك های اطلاعاتی رابطه ای : مفاهیم و تعاریف" ، مطالعه گردد .
نرمال سازی ( Normalization )  یا به تعبیری هنجار سازی فرآیندی است در رابطه با بانك های اطلاعاتی كه با دو هدف عمده زیر انجام می شود :

1-کاهش افزونگی اطلاعات ، به این معنی که اطلاعات فقط در یک مكان (جدول) ذخیره و در تمام بانک با استفاده از روابط منطقی تعریف شده (RelationShip) قابل دسترسی باشد .

2-حفظ یکپارچگی اطلاعات ، به این معنی که اعمال تغییرات بر روی اطلاعات ( نظیر ایجاد ، بهنگام سازی و حذف ) در یك مكان انجام و به دنبال آن آثار تغییرات در تمام بانك مشاهده گردد .  برای روشن شدن مفهوم یکپارچگی بد نیست به مثال ذیل توجه نمائید :
فرض كنید در یك بانك اطلاعاتی دارای دو موجودیت كتاب و نویسنده باشیم . هر یك از موجودیت های فوق دارای المان های اطلاعاتی (Attribute) مختص به خود می باشند . به عنوان نمونه موجودیت "كتاب" دارای المان اطلاعاتی نام نویسنده  و  موجودیت "نویسنده " دارای المان های اطلاعاتی متعددی نظیر نام نویسنده ، آدرس نویسنده و ... باشد .  در صورتی كه در موجودیت "کتاب"  یک رخداد (رکورد) ایجاد نمائیم بدون اینکه نام نویسنده آن را در موجودیت "نویسنده" ایجاد کرده باشیم ،  دچار یک ناهمگونی اطلاعات خواهیم شد .

با توجه به اهداف فوق می توان گفت كه فرآیند نرمال سازی از ناهنجاری های بوجود آمده به دلیل بروز تغییرات در بانك جلوگیری خواهد نمود . با اعمال فرآیند نرمال سازی ، یك بانك اطلاعاتی كارآ و مطمئن را خواهیم داشت .
فرآیند نرمال سازی ، فرم های متفاوتی دارد كه انواع متداول آن به شرح ذیل است :

  • فرم اول نرمال سازی 1NF
  • فرم دوم نرمال سازی 2NF
  • فرم سوم نرمال سازی 3NF
  • فرم بویس کد نرمال سازی BCNF
  • فرم چهارم نرمال سازی 4NF

 

فرم اول نرمال  1NF
موجودیت و یا جدولی در فرم اول نرمال است كه تمامی المان های اطلاعاتی آن ( منظور Attribute است ) یكتا و یا اصطلاحا" atomic باشند . برای روشن شدن این موضوع فرض كنید دارای موجودیتی با نام "فاكتور فروش " باشیم . 

فاكتور فروش

شماره فاکتور(کلید اصلی)
تاریخ فاکتور
کد مشتری
نام مشتری
کالای 1
تعداد کالای 1
قیمت واحد کالای 1
.
.
.
کالای n
تعداد کالای n
قیمت واحد کالای n

با مشاهده موجودیت فوق متوجه این موضوع خواهیم شد كه المان های كالا ، تعداد كالا و قیمت واحد كالا بیش از یك مرتبه در موجودیت وجود داشته و اصطلاحا" یك گروه تكرار را تشكیل می دهند . برای اجرای مدل فیزیكی این موجودیت ناچار خواهیم بود در طراحی جدول آرایه ای به طول ثابت ( به عنوان نمونه با ده عضو ) تعریف و در آن به ترتیب كالای 1 تا 10 را تعریف نمائیم . 

مشکل : طراحی فوق ما را با دو مشکل عمده روبرو خواهد ساخت : اول این كه  کارائی بانک اطلاعاتی پائین خواهد آمد (اگر در آینده تعداد کالاهای فاکتور فروش بیش از 10 کالا باشد ، آنگاه مجبور خواهیم بود طراحی جدول مربوطه و متعاقب آن نرم افزارهائی که از آن استفاده می كنند را تغییر دهیم ) و مشکل دوم این كه  بسیاری از فاکتورها لزوما" دارای 10 کالا نیستند و بنابراین محتوی بسیاری از فیلدها در جدول فوق خالی (دارای ارزش Null) خواهد ماند و حجم زیادی از فضای دیسک هدر خواهد رفت .

راه حل : برای حل این مشکل کافی است تمامی گروه های تکرار و یا آرایه ها را از موجودیت خارج کرده و به موجودیت دیگری منتقل نمائیم . در چنین مواردی ، كلید اصلی موجودیت اول را به عنوان بخشی از كلید اصلی موجودیت جدید قرار داده و با تلفیق یكی دیگر از آیتم های اطلاعاتی موجودیت جدید كه تضمین كننده یكتا بودن ركوردهای آن موجودیت ( جدول ) است ، كلید اصلی موجودیت ایجاد می گردد . بدین ترتیب ، یك ارتباط بین موجودیت پدر و فرزند بر اساس كلید اصلی موجودیت پدر برقرار خواهد شد .
مجددا" به موجودیت "فاكتور فروش " مثال قبل پس از تبدیل به فرم اول نرمال توجه نمائید : 

ردیف های فاكتور فروش



ارتباط بین موجودیت پدر و فرزند بر اساس كلید اصلی موجودیت پدر
(فاكتور فروش)

فاكتور فروش

شماره فاکتور(قسمت اول کلید اصلی)
کالا (قسمت دوم کلید اصلی)
تعداد
قیمت واحد
 

شماره فاکتور(کلید اصلی)
تاریخ فاکتور
کد مشتری
نام مشتری

به طور خلاصه می توان گفت كه هدف از فرم اول نرم سازی حذف گروه های تكرار و آرایه ها از موجودیت یا جدول است . فرآیند فوق ، می بایست بر روی تمامی موجودیت های بانك اطلاعاتی اعمال گردد تا بتوان گفت بانك اطلاعاتی نرمال شده در فرم اول است . 

فرم دوم نرمال 2NF
موجودیتی در فرم دوم نرمال است که اولا" در فرم اول نرمال باشد و ثانیا" تمامی آیتم های (Attribute) غیر کلیدی آن وابستگی تابعی به تمام کلید اصلی‌ موجودیت داشته باشند نه به بخشی از آن .همانگونه كه از تعریف فوق استنباط می گردد ، فرم دوم نرمال سازی در خصوص موجودیت هائی بررسی و اعمال می شود كه دارای كلید اصلی مركب هستند ( بیش از یك جزء ) . بنابراین در مثال فوق موجودیت "فاكتور فروش " به خودی خود در فرم دوم نرمال است ولی موجودیت "ردیف های فاكتور فروش " كه دارای كلید اصلی مركب است ، نیاز به بررسی دارد .

مشکل : در صورتی كه موجودیت در فرم دوم نرمال نباشد ، آنگاه با تغییر اطلاعات قسمت های غیروابسته به تمام كلید ، این تغییرات در یك ركورد اعمال می شود ولی تاثیری بر روی سایر ركوردها و یا جداول نخواهد داشت . در مثال فوق با تغییر محتوی قیمت واحد در موجودیت "فاكتور فروش " ، قیمت واحد كالا در یك فاكتور فروش اصلاح می گردد اما در سایر فاكتورها اعمال نخواهد شد .


راه حل : برای حل این مشکل کافی است موجودیت جدیدی ایجاد نمائیم و کلید اصلی آن را برابر با آن بخش از کلید اصلی موجودیت مورد بررسی که دارای المان های وابسته به آن است قرار دهیم ، سپس تمام المان های اطلاعاتی وابسته تابعی به این کلید را از موجودیت مورد بررسی خارج کرده و به موجودیت جدید منتقل نمائیم . در این حالت بین موجودیت جدید ایجاد شده و موجودیت نرمال شده ، بر اساس کلید اصلی موجودیت جدید ایجاد شده یک ارتباط پدر فرزندی تعریف خواهد شد . دقت کنید که بر عکس نرمال سازی فرم اول ، در این جا موجودیت موردبررسی فرزند بوده و موجودیت جدید پدر خواهد بود .
 به مثال فوق برمی گردیم و فرم دوم نرمال سازی را بر روی آن اعمال می نمائیم . موجودیت "فاکتور فروش" دارای کلید مرکب نیست پس در فرم دوم نرمال بوده و نیاز به بررسی ندارد ، اما موجودیت "ردیف های فاکتور فروش"  نیاز به بررسی دارد . در این موجودیت آیتم اطلاعاتی "قیمت واحد" وابستگی تابعی به آیتم کالا دارد که بخشی از کلید است نه کل کلید ، پس لازم است تا این موجودیت را تبدیل به فرم دوم نرمال نمائیم . بدین منظور  موجودیتی به نام "کالا" ایجاد کرده ، کلید اصلی آن را برابر کالا قرار داده و آیتم قیمت واحد را از موجودیت ردیف های فاکتور فروش خارج نموده و به این موجودیت منتقل می نمائیم. مثال فوق پس از تبدیل به فرم دوم نرمال به شکل ذیل خواهد بود :

ردیف های فاكتور فروش



ارتباط بین موجودیت پدر و فرزند بر اساس كلید اصلی موجودیت پدر (فاكتور فروش)

فاكتور فروش

شماره فاکتور(قسمت اول کلید اصلی)
کالا (قسمت دوم کلید اصلی)
تعداد
 

شماره فاکتور(کلید اصلی)
تاریخ فاکتور
کد مشتری
نام مشتری

 

ارتباط بین موجودیت پدر و فرزند بر اساس كلید اصلی موجودیت پدر (كالا)

 

كالا

کالا (کلید اصلی)
قیمت واحد

فرم سوم نرمال 3NF
موجودیت و  یا جدولی در فرم سوم نرمال است که اولا" در فرم دوم نرمال بوده و ثانیا" تمام آیتم های غیر کلید آن وابستگی تابعی به کلید اصلی داشته باشند ، نه به یک آیتم غیر کلید .

مشکل : در صورتی كه موجودیتی در فرم سوم نرمال نباشد ، آنگاه با تغییر آیتم یا آیتم های اطلاعاتی غیر وابسته به کلید اصلی در یک رکورد، تغییرات در سایر رکوردها اعمال نخواهد شد و دچار دوگانگی اطلاعات خواهیم شد (مثلا" یک مشتری با دو نام متفاوت) .

راه حل : کافی است آیتم های غیر کلیدی به هم وابسته را به موجودیت جدیدی منتقل  و کلید اصلی موجودیت جدید را تعیین نمائیم ، آنگاه کلید اصلی موجودیت جدید را در موجودیت نرمال شده به عنوان یک کلید خارجی (Foreign Key) در نظر گرفت . در موجودیت "فاکتور فروش"  مثال فوق آیتم نام مشتری وابستگی تابعی به آیتم کد مشتری دارد که خود یک آیتم غیر کلید است بنابر این باید نرمال سازی فرم سوم در خصوص آن اعمال شود . شکل ذیل نحوه انجام این كار را نشان می دهد :

ردیف های فاكتور فروش



ارتباط بین موجودیت پدر و فرزند بر اساس كلید اصلی موجودیت پدر (فاكتور فروش)

فاكتور فروش

شماره فاکتور(قسمت اول کلید اصلی)
کالا (قسمت دوم کلید اصلی)
تعداد
 

شماره فاکتور(کلید اصلی)
تاریخ فاکتور
کد مشتری (کلید خارجی)

 

ارتباط بین موجودیت پدر و فرزند بر اساس كلید اصلی موجودیت پدر (كالا)

 

ارتباط بین موجودیت پدر
 ( مشتری ) و فرزند بر اساس كلید خارجی 

 

كالا

مشتری

کالا (کلید اصلی)
قیمت واحد

کدمشتری (کلید اصلی)
نام مشتری

 

 

فرم بویس کد نرمال BCNF
فرم بویس کد دارای مفهوم جامع تری نسبت به فرم دوم و سوم نرمال است . در فرم دوم و سوم نرمال بحث بر سر وابستگی تابعی آیتم های غیر کلیدی به کلید اصلی است . اما در فرم بویس کد ، موجودیتی در فرم بویس کد نرمال است که اولا" در فرم اول نرمال بوده و ثانیا" تمام المان های غیر کلیدی آن کاملا" وابسته تابعی به یک کلید باشند و نه چیز دیگر . نکته حائز اهمیت در این فرم این است که بحث بر سر وابستگی تابعی با یک کلید است نه فقط کلید اصلی. مفهوم فوق در خصوص موجودیت هائی که دارای چندین کلید هستند (Alternate Key) مطرح می شود . 

فرم چهارم نرمال 4NF

این فرم در خصوص موجودیت هائی است که ارتباط بین المان های آن یک ارتباط چند ارزشه و یا چند به چند باشد . به عنوان مثال ، موجودیت کلاس درس می تواند شامل چندین دانش آموز و چندین معلم باشد. در چنین مواردی ارتباط بین معلم و دانش آموز یک ارتباط چند به چند می باشد . در این حالت با ایجاد یك موجودیت رابط  مابین موجودیت های مذكور، مشکل ارتباط چند به چند حل خواهد شد (بسیاری از سیستم های مدیریت  رابطه چند به چند ایجاد نمود). معمولا" تمام المان های موجودیت رابط ایجاد شده بخشی از كلید اصلی است .

خلاصه

نرمال سازی فرم های دیگری نیز دارد که به دلیل نادر بودن و خاص بودن آنها در این مقاله به آنها اشاره نشده است . آنچه در خصوص نرمال سازی  عمومیت دارد تا فرم سوم آن است ، یعنی در هنگام طراحی بانک های اطلاعاتی حتما" می بایست فرآیند نرمال سازی تا فرم سوم را انجام داد .
فرآیند نرمال سازی یک فرآیند تکراری (Recursive) است یعنی پس از هر مرحله نرمال سازی که منجر به ایجاد موجودیت های جدید می گردد ، فرآیند را باید از ابتدا تا انتها بر روی موجودیت های تازه ایجاد شده نیز اجرا نمود.

(6)

Microsoft SQL Server    

 

یکی از سیستم های مدیریت بانک های اطلاعاتی رابطه ای (Relational) است که توسط شرکت مایكروسافت ارائه شده است  . SQL Server از مدل سرویس دهنده - سرویس گیرنده (Client/Server) تبعیت می نماید . در این مدل ، درخواست های (InQuery) سرویس گیرندگان برای سرویس دهنده ارسال و در سمت سرویس دهنده بررسی و آنالیز می گردند . در ادامه ، پردازش های‌ مورد نیاز  بر روی اطلاعات ذخیره شده در بانک های اطلاعاتی انجام و در نهایت ، نتایج برای سرویس گیرنده ارسال خواهد شد .
MS SQL Server با استفاده از  مجموعه عناصری ( Components ) كه به صورت هدفمند اجراء می گردند ، قادر به تامین نیازها و درخواست ها  از مخازن داده (Data Storages) می باشد . مخازن داده در SQL Server به دو روش زیر مدیریت می گردند :

  • OLTP  ( برگرفته از  OnLine Transaction Processing System )
  • OLAP ( برگرفته از     OnLine Analytical Processing System )

در مدل OLTP ، مخازن داده به صورت جداول رابطه ای که عموما" به جهت جلوگیری از تکرار و ناهمگونی اطلاعات به صورت هنجار (Normalize) درآمده اند ، سازماندهی می شوند . این نوع از بانک های اطلاعاتی برای درج و تغییر سریع اطلاعات توسط چندین کاربر بطور همزمان مناسب می باشند .
در مدل OLAP مخازن داده جهت تجزیه و تحلیل و خلاصه سازی حجم زیادی از اطلاعات سازماندهی می شوند . مخازن داده و ارتباط بین اطلاعات در این مدل توسط SQL Server مدیریت می گردد .
یکی از اهداف مهم سیستم های مدیریت بانک های اطلاعاتی ، قابلیت رشد و توسعه (Scalability) است .     MS SQL Server مجموعه ای از پتانسیل ها را به منظور تامین هدف فوق ارائه نموده است كه به برخی از مهمترین آنها اشاره می گردد :

  • قابلیت کار با بانکهای اطلاعاتی حجیم (در حد ترابایت)
  • قابلیت دسترسی هزاران کاربر بطور همزمان به بانک اطلاعاتی
  • قابلیت خود سازگاری (Self Compatibility) . با استفاده از ویژگی فوق ، منابع مورد نیاز هر كاربر (نظیر حافظه ، فضای دیسک و ...) به محض اتصال به سرور (Log in) به صورت اتوماتیك به وی تخصیص داده می شود  و  پس از Log off ، منابع اختصاص یافته به منظور استفاده سایر كاربران آزاد  می شوند .  
  • قابلیت اعتماد و در دسترس بودن (Reliability) . با استفاده از ویژگی فوق می توان بسیاری از فعالیت های مدیریتی را بدون توقف سرور انجام داد (نظیر BackUp) .
  • برخورداری از سطوح امنیتی بالا . بدین منظور اعتبار سنجی کاربران توسط SQL  با اعتبار سنجی ویندوز تجمیع می گردد . در چنین مواردی ، ضرورتی به تعریف کاربر در MS SQL نخواهد بود و اعتبار سنجی وی توسط ویندوز انجام خواهد شد .
  • پشتیبانی از حجم بالائی از حافظه در سرور (در نسخه 2000 تا 64 گیگابایت و در نسخه 2005  متناسب با حافظه ای كه سیستم عامل از آن حمایت می نماید ) .
  • استفاده از چندین پردازنده به صورت موازی (در نسخه 2000 تا 32 پردازنده همزمان و در نسخه 2005 محدودیتی وجود ندارد )
  • پشتیبانی از لایه ها و سوکت های امنیتی نظیر SSL ، خصوصا" جهت استفاده در  وب .

یکی دیگر از ویژگی های مهم سیستم های مدیریت بانک های اطلاعاتی‌ ، ایجاد تسهیلات لازم به منظور مدیریت بانك های اطلاعاتی است .  SQL Server با ارائه برنامه های جانبی نظیر <st1:place w:st="on"><st1:city w:st="on">Enterprise</st1:city></st1:place> Manager  استفاده و مدیریت بانک های اطلاعاتی را آسان نموده است .
MS SQL Server بطور اتوماتیک در Active Directory ثبت می شود (Register) ، بنابراین کاربران شبکه به راحتی می توانند  آن را در Active Directory جستجو و در صورت نیاز به آن متصل شوند .    همچنین ،  MS SQL Server توسط IIS پشتیبانی می گردد و  مرورگرها با استفاده از پروتکل HTTP  قابلیت استفاده از آن را خواهند داشت .
از جمله نكات مهم در خصوص MS SQL Server ، اجرای آن به صورت یك سرویس است . بنابراین ، در صورتی كه كاربری به ماشینی كه MS SQL Server بر روی آن اجراء شده است ، Log on نكرده باشد ، همچنان سیستم در دسترس كاربران خواهد بود . علاوه بر این ، می توان از سیستم مانیتورینگ ویندوز به منظور مانیتورینگ SQL Server استفاده نمود .
یکی از مهمترین و شاخص ترین ویژگی های MS SQL Server که از نسخه 2000  در آن ایجاد شده است ، امکان نصب چندین نسخه SQL بر روی یک ماشین می باشد (Multi Instance) ، بطوریکه هر یک از نسخه ها  فایل های باینری مخصوص به خود را داشته و بطور جداگانه مدیریت و راهبری می گردند ، ولی تمام نسخه ها بطور همزمان اجرا می شوند (دقیقا" مشابه این است كه چندین نسخه بر روی چندین كامپیوتر نصب شده باشد ) .
با توجه به این كه نسخه (Instance) قراردادی فاقد نام است و سایر نسخه ها می بایست دارای نام باشند به آنها نسخه های دارای نام (Named Instance) می گویند . نسخه های دارای نام را می توان هر زمان نصب نمود (قبل  و یا بعد از نسخه قراردادی) .  ابزارهای همراه SQL نظیر SQL Enterprise Manager یک مرتبه نصب خواهند شد و در تمامی نسخه های SQL به صورت مشترك استفاده خواهند شد . 
تاكنون نسخه های متعددی از  MS SQL Server ارائه شده است . استفاده از نسخه های  2000 و 2005  بیش از سایر نسخه ها ، متداول است . هر یک از نسخه های MS SQL Server ، در مدل های مختلف ( با توجه به نوع استفاده و اندازه سازمان متقاضی ) ، ارائه شده اند .




طبقه بندی: تازه ها، 
ارسال توسط Ali sh
آخرین مطالب
آرشیو مطالب
صفحات جانبی
پیوند های روزانه
تبلیغات

قالب وبلاگ

اخبار سینما

خرید پستی

خرید اینترنتی

فروشگاه ستاره