دادِگان (پایگاه دادهها یا بانک اطلاعاتی) به مجموعهای از اطلاعات با ساختار منظم و سامانمند گفته میشود.
این پایگاههای اطلاعاتی معمولاً در قالبی که برای دستگاهها و رایانهها قابل خواندن و قابل دسترسی باشند ذخیره میشوند.
البته چنین شیوه ذخیرهسازی اطلاعات تنها روش موجود نیست و شیوههای دیگری مانند ذخیرهسازی ساده در پروندهها نیز استفاده میگردد.
مسئلهای که ذخیرهسازی دادهها در دادگان را مؤثر میسازد وجود یک ساختار مفهومی است برای ذخیرهسازی و روابط بین دادهها است.
پایگاه داده در اصل مجموعهای سازمان یافته از اطلاعات است.
این واژه از دانش رایانه سرچشمه میگیرد ،اما کاربرد وسیع و عمومی نیز دارد، این وسعت به اندازهای است که مرکز اروپایی پایگاه داده (که تعاریف خردمندانهای برای پایگاه داده ایجاد میکند) شامل تعاریف غیر الکترونیکی برای پایگاه داده میباشد.
در این نوشتار به کاربرد های تکنیکی برای این اصطلاح محدود میشود.
یک تعریف ممکن این است که: پایگاه داده مجموعهای از رکورد های ذخیره شده در رایانه با یک روش سیستماتیک (اصولی) مثل یک برنامه رایانهای است که میتواند به سوالات کاربر پاسخ دهد.
برای ذخیره و بازیابی بهتر، هر رکورد معمولاً به صورت مجموعهای از اجزای دادهای یا رویدادها سازماندهی میگردد.
بخشهای بازیابی شده در هر پرسش به اطلاعاتی تبدیل میشود که برای اتخاذ یک تصمیم کاربرد دارد.
برنامه رایانهای که برای مدیریت و پرسش و پاسخ بین پایگاههای دادهای استفاده میشود را مدیر سیستم پایگاه دادهای یا به اختصار (DBMS) مینامیم.
خصوصیات و طراحی سیستمهای پایگاه دادهای در علم اطلاعات مطالعه میشود.
مفهوم اصلی پایگاه داده این است که پایگاه داده مجموعهای از رکورد ها یا تکههایی از یک شناخت است.
نوعاً در یک پایگاه داده توصیف ساخت یافتهای برای موجودیتهای نگهداری شده در پایگاه داده وجود دارد: این توصیف با یک الگو یا مدل شناخته میشود.
مدل توصیفی، اشیا پایگاههای داده و ارتباط بین آنها را نشان میدهد.
روش های متفاوتی برای سازماندهی این مدل ها وجود دارد که به آنها مدلهای پایگاه داده گوییم.
پرکاربردترین مدلی که امروزه بسیار استفاده میشود، مدل رابطهای است که به طور عام به صورت زیر تعریف میشود: نمایش تمام اطلاعاتی که به فرم جداول مرتبط که هریک از سطرها و ستونها تشکیل شده است (تعریف حقیقی آن در علم ریاضیات بررسی میشود).
در این مدل وابستگی ها به کمک مقادیر مشترک در بیش از یک جدول نشان داده میشود.
مدل های دیگری مثل مدل سلسله مراتب و مدل شبکهای به طور صریح تری ارتباطها را نشان میدهند.
در مباحث تخصصیتر اصطلاح دادگان یا پایگاه داده به صورت مجموعهای از رکوردهای مرتبط با هم تعریف میشود.
بسیاری از حرفهایها مجموعهای از داده هایی با خصوصیات یکسان به منظور ایجاد یک پایگاه دادهای یکتا استفاده میکنند.
معمولاً DBMS ها بر اساس مدل هایی که استفاده میکنند تقسیم بندی میشوند: ارتباطی، شئگرا، شبکهای و امثال آن.
مدل های دادهای به تعیین زبانهای دسترسی به پایگاههای داده علاقهمند هستند.
بخش قابل توجهی از مهندسی DBMS مستقل از مدل های میباشد و به فاکتورهایی همچون اجرا، همزمانی، جامعیت و بازیافت از خطاهای سخت افزاری وابسطه است.
در این سطح تفاوتهای بسیاری بین محصولات وجود دارد.
1- تاریخچه پایگاه داده
اولین کاربردهای اصطلاح پایگاه داده به June 1963 باز میگردد، یعنی زمانی که شرکت System Development Corporation مسئولیت اجرایی یک طرح به نام توسعه و مدیریت محاسباتی یک پایگاه دادهای مرکزی را بر عهده گرفت.
پایگاه داده به عنوان یک واژه واحد در اوایل دهه 70 در اروپا و در اواخر دهه 70 در خبرنامههای معتبر آمریکایی به کار رفت.
(بانک دادهای یا Databank در اوایل سال 1966 در روزنامه واشنگتن کار رفت)
تصویر: اولین سیستم مدیریت پایگاه داده در دهه 60 گسترش یافت.
از پیشگامان این شاخه چارلز باخمن میباشد.
مقالات باخمن این را نشان داد که فرضیات او کاربرد بسیار مؤثرتری برای دسترسی به وسایل ذخیره سازی را محیا میکند.
در آن زمانها پردازش داده بر پایه کارت های منگنه و نوارهای مغناطیسی بود که پردازش سری اطلاعات را محیا میکند.
دو نوع مدل دادهای در آن زمانها ایجاد شد:CODASYL موجب توسعه مدل شبکهای شد که ریشه در نظریات باخمن داشت و مدل سلسله مراتبی که توسط North American Rockwell ایجاد شد و بعداً با اقباس از آن شرکت IBM محصول IMS را تولید نمود.
مدل رابطهای توسط E.
F.
Codd در سال 1970 ارائه شد.
او مدلهای موجود را مورد انتقاد قرار میداد.
برای مدتی نسبتاً طولانی این مدل در مجامع علمی مورد تأیید بود.
اولین محصول موفق برای میکرو کامپیوترها dBASE بود که برای سیستم عامل هایCP/M و PC-DOS/MS-DOS ساخته شد.
در جریان سال 1980 پژوهش بر روی مدل توزیع شده (distributed database) و ماشین های دادگانی (database machines) متمرکز شد، اما تاثیر کمی بر بازار گذاشت.
در سال 1990 توجهات به طرف مدل شئگرا (object-oriented databases) جلب شد.
این مدل جهت کنترل دادههای مرکب لازم بود و به سادگی بر روی پایگاه دادههای خاص، مهندسی داده (شامل مهندسی نرم افزار منابع) و دادههای چند رسانهای کار میکرد.
در سال 2000 نوآوری تازهای رخ داد و دادگان اکسامال (XML) به وجود آمد.
هدف این مدل از بین بردن تفاوت بین مستندات و داده ها است و کمک میکند که منابع اطلاعاتی چه ساخت یافته باشند یا نه در کنار هم قرار گیرند.
2- انواع دادگان ها
دادگانها از نظر ساختار مفهومی و شیوهای رفتار با دادهها بر دو نوع هستند:
1.
دادگان رابطهای
2.
دادگان شیگرا
3 مدل های پایگاه داده
شگردهای مختلفی برای مدلهای دادهای وجود دارد.
بیشتر سیستم های پایگاه دادهای هر چند که طور معمول بیشتر از یک مدل را مورد حمایت قرار میدهند، حول یک مدل مشخص ایجاد شدهاند.
برای هر یک از الگوهای منطقی (logical model) اجراهای فیزیکی مختلفی قابل پیاده شدن است و سطوح کنترل مختلفی در انطباق فیزیکی برای کاربران محیا میکند.
یک انتخاب مناسب تاثیر موثری بر اجرا دارد.
مثالی از موارد الگوی رابطهای (relational model) است: همه رویدادهای مهم در مدل رابطهای امکان ایجاد نمایههایی که دسترسی سریع به سطرها در جدول را میدهد، فراهم میشود.
یک مدل دادهای تنها شیوه ساختمانبندی دادهها نیست بلکه معمولا به صورت مجموعهای از عملیاتها که میتواند روی دادهها اجرا شود تعریف میشوند.
برای مثال در مدل رابطهای عملیاتی همچون گزینش (selection)، طرح ریزی (projection) و اتصال (join) تعریف میگردد.
۳.۱ مدل تخت
مدل تخت یا جدولی (flat (or table) model ) تشکیل شده است از یک آرایه دو بعدی با عناصر دادهای که همه اجزای یک ستون به صورت دادههای مشابه فرض میشود و همه عناصر یک سطر با هم در ارتباط هستند.
برای نمونه در ستون هایی که برای نام کاربری و رمز عبور در جزئی از سیستم های پایگاه دادهای امنیتی مورد استفاده قرار میگیرد هر سطر شامل رمز عبوری است که مخصوص یک کاربر خاص است.
ستون های جدول که با آن در ارتباط هستند به صورت داده کاراکتری، اطلاعات زمانی، عدد صحیح یا اعداد ممیز شناور تعریف میشوند.
این مدل پایه برنامههای محاسباتی(spreadsheet) است.
پایگاه دادهها با فایلهای تخت به سادگی توسط فایل های متنی تعریف میشوند.
هر رکورد یک خط است و فیلدها به کمک جدا کننده هایی از هم مجزا میشوند.
فرضا به مثال زیر دقت کنید:
پایگاه دادهها با فایلهای تخت به سادگی توسط فایل های متنی تعریف میشوند.
فرضا به مثال زیر دقت کنید: id name team 1 Amy Blues 2 Bob Reds 3 Chuck Blues 4 Dick Blues 5 Ethel Reds 6 Fred Blues 7 Gilly Blues 8 Hank Reds دادههای هر ستون مشابه هم است ما به این ستونها فیلد ها (fields) گوییم.
و هر خط را غیر از خط اول یک رکورد(record) مینامیم.
خط اول را که برخی پایگاههای دادهای آنرا ندارند رکورد برچسب (field labels) گوییم.
هر مقدار دادهای اندازه خاص خود را دارد که اگر به آن اندازه نرسد میتوان از کاراکتر فاصله برای این منظور استفاده کرد اما این مسئله مخصوصاً زمانی که بخواهیم اطلاعات را بر روی کارت های منگنه قرار دهیم مشکل ساز خواهد شد.
امروزه معمولا از نویسه TAB برای جداسازی فیلد ها و کاراکتر خط بعد برای رکورد بعدی استفاده میکنیم.
البته شیوههای دیگری هم وجود دارد مثلا به مثال زیر دقت کنید: "1"," Amy","Blues" "2"," Bob","Reds" "3"," Chuck","Blues" "4"," Dick","Blues" "5"," Ethel","Reds" "6"," Fred","Blues" "7"," Gilly","Blues" "8"," Hank","Reds" این مثال از جدا کننده کاما استفاده میکند.
در این نوع مدل تنها قابلیت حذف، اضافه، دیدن و ویرایش وجود دارد که ممکن است کافی نباشد.Microsoft Excel این مدل را پیاده سازی میکند.
۳.2 مدل شبکهای (Network) در سال 1969 و در کنفرانس زبانهای سیستم های دادهای (CODASYL) توسطCharles Bachman ارائه شد.
در سال 1971 مجدداً مطرح شد و اساس کار پایگاه دادهای قرار گرفت و در اوایل دهه 80 با ثبت آن در سازمان بینالمللی استانداردهای جهانی یا ISO به اوج رسید.
مدل شبکهای (database model) بر پایه دو سازه مهم یعنی مجموعهها و رکوردها ساخته میشود و برخلاف روش سلسله مراتبی که از درخت استفاده میکند، گراف را به کار میگیرد.
مزیت این روش بر سلسله مراتبی این است که مدل های ارتباطی طبیعی بیشتری را بین موجودیتها فراهم میکند.
علیرغم این مزیتها به دو دلیل اساسی این مدل با شکست مواجه شد: اول اینکه شرکت IBM با تولید محصولات IMS و DL/I که بر پایه مدل سلسله مراتبی است این مدل را نادیده گرفت.
دوم اینکه سرانجام مدل رابطهای (relational model) جای آن را گرفت چون سطح بالاتر و واضح تر بود.
تا اوایل دهه 80 به علت کارایی رابط های سطح پایین مدل سلسله مراتبی و شبکهای پیشنهاد میشد که بسیاری از نیازهای آن زمان را برطرف میکرد.
اما با سریعتر شدن سخت افزار به علت قابلیت انعطاف و سودمندی بیشتر سیستم های رابطهای به پیروزی رسیدند.
رکوردها در این مدل شامل فیلد هایی است (ممکن است همچون زبان کوبول (COBOL) به صورت سلسله مراتب اولویتی باشد).
مجموعه ها با ارتباط یک به چند بین رکورد ها تعریف میشود: یک مالک و چند عضو.
عملیاتهای مدل شبکهای از نوع هدایت کننده است: یک برنامه در موقعیت جاری خود باقی میماند و از یک رکورد به رکورد دیگر میرود هر گاه که ارتباطی بین آنها وجود داشته باشد.
معمولاً از اشارهگرها (pointers) برای آدرس دهی مستقیم به یک رکورد در دیسک استفاده میشود.
با این تکنیک کارایی بازیابی اضافه میشود هر چند در نمایش ظاهری این مدل ضروری نیست .
۳.3 مدل رابطهای مدل رابطه ای (relational model) در یک مقاله تحصیلی توسط E.
Codd در سال 1970 ارائه گشت.
این مدل یک مدل ریاضیاتی است که با مفاهیمی چون مستندات منطقی (predicate logic) و تئوری مجموعهها (set theory) در ارتباط است.
محصولاتی همچون اینگرس، اراکل، DB2 و سرور اسکیوال (SQL Server) بر این پایه ایجاد شده است.
ساختار داده ها در این محصولات به صورت جدول است با این تفاوت که میتواند چند سطر داشته باشد.
به عبارت دیگر دارای جداول چندگانه است که به طور صریح ارتباطات بین آنها بیان نمیشود و در عوض کلیدهایی به منظور تطبیق سطر ها در جداول مختلف استفاده میشود.
به عنوان مثال جدول کارمندان ممکن است ستونی به نام "موقعیت" داشته باشد که کلید جدول موقعیت را با هم تطبیق میدهد.
۳.4 پایگاه دادههای چند بعدی پایگاه دادههای رابطهای توانست به سرعت بازار را تسخیر کند، هرچند کارهایی نیز وجود داشت که این پایگاه دادهها نمیتوانست به خوبی انجام دهد.
به ویژه به کارگیری کلیدها در چند رکورد مرتبط به هم و در چند پایگاه داده مشترک، کندی سیستم را موجب میشد.
برای نمونه برای یافتن نشانی کاربری با نام دیوید، سیستم رابطهای باید نام وی را در جدول کاربر جستجو کند و کلید اصلی (primary key ) را بیابد و سپس در جدول نشانیها، دنبال آن کلید بگردد.
اگر چه این وضعیت از نظر کاربر، فقط یک عملیات محسوب، اما به جستجو درجداول نیازمند است که این کار پیچیده و زمان بر خواهد بود.
راه کار این مشکل این است که پایگاه دادهها اطلاعات صریح درباره ارتباط بین دادهها را ذخیره نماید.
میتوان به جای یافتن نشانی دیوید با جستجوی کلید در جدول نشانی، اشارهگر به دادهها را ذخیره نمود.
در واقع، اگر رکورد اصلی، مالک داده باشد، در همان مکان فیزیکی ذخیره خواهد شد و از سوی دیگر سرعت دسترسی افزایش خواهد یافت.
چنین سیستمی را پایگاه دادههای چند بعدی مینامند.
این سیستم در هنگامی که از مجموعه دادههای بزرگ استفاده میشود، بسیار سودمند خواهد بود.
از آنجاییکه این سیستم برای مجموعه دادههای بزرگ به کار میرود، هیچگاه در بازار به طور مستقیم عمومیت نخواهد یافت.
۳.5 پایگاه دادههای شیء اگر چه سیستمهای چند بعدی نتوانستند بازار را تسخیر نمایند، اما به توسعه سیستمهای شیء منجر شدند.
این سیستمها که مبتنی بر ساختار و مفاهیم سیستمهای چند بعدی هستند، به کاربر امکان میدهند تا اشیاء را به طور مستقیم در پایگاه دادهها ذخیره نماید.
بدین ترتیب ساختار برنامهنویسی شیء گرا (object oriented ) را میتوان به طور مستقیم و بدون تبدیل نمودن به سایر فرمتها، در پایگاه دادهها مورد استفاده قرار داد.
این وضعیت به دلیل مفاهیم مالکیت (ownership) در سیستم چند بعدی، رخ میدهد.
در برنامه شیء گرا (OO)، یک شیء خاص "مالک " سایر اشیاء در حافظه است، مثلا دیوید مالک نشانی خود میباشد.
در صورتی که مفهوم مالکیت در پایگاه دادههای رابطهای وجود ندارد.
4- ویژگیهای سیستم مدیریت پایگاه دادهها پس از این مقدمه به توصیف سیستم مدیریت پایگاه دادهها میپردازیم.
سیستم مدیریت پایگاه دادهها، مجموعهای پیچیده از برنامههای نرمافزاری است که ذخیره سازی و بازیابی دادههای (فیلدها، رکوردها و فایلها) سازمان را در پایگاه دادهها، کنترل میکند.
این سیستم، کنترل امنیت و صحت پایگاه دادهها را نیز بر عهده دارد.
سیستم مدیریت پایگاه دادهها، درخواستهای داده را از برنامه میپذیرد و به سیستم عامل دستور میدهد تا دادههای مناسب را انتقال دهد.
هنگامی که چنین سیستمی مورد استفاده قرار میگیرد، اگر نیازمندیهای اطلاعاتی سازمانی تغییر یابد، سیستمهای اطلاعاتی نیز آسانتر تغییر خواهند یافت.
سیستم مذکور از صحت پایگاه دادهها پشتیبانی میکند.
بدین ترتیب که اجازه نمیدهد بیش از یک کاربر در هر لحظه، یک رکورد را بهروز رسانی کند.
این سیستم رکوردهای تکراری را در خارج پایگاه دادهها نگاه میدارد.
برای مثال، هیچ دو مشترک با یک شماره مشتری، نمیتوانند در پایگاه دادهها وارد شوند.
این سیستم روشی برای ورود و به روز رسانی تعاملی پایگاه دادهها فراهم میآورد.
یک سیستم اطلاعات کسب و کار از موضوعاتی نظیر (مشتریان، کارمندان، فروشندگان و غیره) و فعالیتهایی چون (سفارشات، پرداختها، خریدها و غیره) تشکیل شده است.
طراحی پایگاه دادهها، فرایند تصمیم گیری درباره نحوه سازماندهی این دادهها در انواع رکوردها و برقراری ارتباط بین رکوردهاست.
سیستم مدیریت پایگاه دادهها میتواند ساختار دادهها و ارتباط آنها را در سازمان به طور اثر بخش نشان دهد.
سه نوع مدل متداول سازمانی عبارتند از: سلسله مراتبی، شبکهای و رابطهای.
یک سیستم مدیریت پایگاه دادهها ممکن است یک، دو یا هر سه روش را فراهم آورد.
سرورهای پایگاه دادهها، کامپیوترهایی هستند که پایگاه دادههای واقعی را نگاه میدارند و فقط سیستم مدیریت پایگاه دادهها و نرمافزار مربوطه را اجرا میکنند.
معمولا این سرورها رایانههای چند پردازندهای با آرایههای دیسک RAID برای ذخیره سازی میباشند.
5- فهرست سیستمهای متداول مدیریت دادگان معروفترین این نرمافزارهای مدیریت دادگانها میتوان به چند نمونه زیر اشاره کرد: 1.Oracle 2.
Microsoft SQL Server 3.My SQL 4.Postreg SQL 5.
DB2 6.
Microsoft Access تاریخچه SQL منشأ اصلی SQL به مقاله تحت عنوان «مدل رابطهای دادهها برای بانکهای داده ای اشتراکی» که در سال ۱۹۷۰ منتشر شد، باز میگردد.
در دهه ۷۰ گروهی از شرکت IBM در شهر San Jose بر روی سیستم پایگاه دادهای (System R) بدون توجه به این مقاله کار میکردند و زبان SEQUEL (Structured English Query Language) را به منظور عملیات و بازیابی اطلاعات ذخیره شده در System R ایجاد کردند.
اگر چه SQL ناشی از تلاشهای کاد بود اما او را به عنوان طراحان زبان SEQUEL میدانند.
سمینارهایی در زمینه تکنولوژی بانک اطلاعاتی و مباحثاتی در مورد مزایای مدل رابطهای جدید برگزار گردید.
تا ۱۹۷۶ مشخص بود که IBM طرفدار جدی تکنولوژی بانک اطلاعاتی رابطهای بوده ، توجه زیادی نسبت به زبانSQL دارد.
تبلیغات در زمینه System/R باعث جذب گروهی از مهندسین در Menlo Park در کالیفرنیا گردید، و این گروه به این نتیجه رسیدند که تحقیقات IBM منجر به یک بازار تجاری برای بانکهای اطلاعاتی رابطهای خواهد گردید.
در ۱۹۷۷ این گروه شرکتی بنام Inc وRelational Software تأسیس نمودند تا یک DBMS رابطهای بر اساس SQL بسازند.
محصولی بنام Oracle در۱۹۷۹ عرضه گردید، و اولین DBMS رابطهای بوجود آمد.
به این ترتیب محصول Oracle باعث گردید اولین محصول IBM برای مدت ۲ سال در بازار دچار رکود باشد.
این محصول بر روی مینی کامپیوترهای VAx Digital's اجرا میشد که خیلی از کامپیوترهای بزرگ IBM ارزان تر بودند.
امروزه این شرکت با نام Oracle Corporation اولین فروشنده سیستمهای مدیریت بانک اطلاعاتی رابطهای است.
استادان آزمایشگاههای کامپیوتر در دانشگاه برکلی کالیفرنیا نیز در نیمه دهه ۱۹۷۰ مشغول تحقیق در زمینه بانکهای اطلاعاتی رابطهای بودن (مانند تیم تحقیقIBM)، گروه فوق نیز یک نمونه از DBMS رابطهای ایجاد نمودند و سیستم خود را Ingres نام نهادند.
پروژه Ingres شامل یک زبان پرسش یا Query language بود بنام QUEL، اگر چه از SQL خیلی ساخت یافته تر بود، اما شباهت آن به زبان انگلیسی کمتر بود.
در حالیکه Oracle و Ingres برای ارائه محصولات تجاری در رقابت بودند، پروژه System/R شرکت IBM در تلاش بودهاست که یک محصو ل تجاری با نام SQL/Data system یا(SQL/DS) عرضه نماید.
IBM موجودیت SQL/DS را در ۱۹۸۱ اعلام، و در ۱۹۸۲ شروع به عرضه محصول خود نمود.
در سال ۱۹۸۳ IBM یک نسخه SQL/DS را برای VM/CMS (سیستم عاملی که در کامپیوتر بزرگ IBM غالبا استفاده شده بود)، اعلام نمود.
همچنین در سال ۱۹۸۳ شرکت IBM ، محصول Database2 یا DB2 را معرفی نمود که یک DBMS رابطهای بود برای سیستمهای بزرگ آن شرکت DB2 تحت سیستم عامل IBM's VMS (سیستم عامل مراکز کامپیوتری بزرگ) اجرا میشد.
اولین نسخه DB2در ۱۹۸۵ عرضه گردید، و مسئولین IBM اعلام نمو دند که این محصول یک برنامه استراتژیک برای تکنولوژی نرمافزاری IBM میباشد.
DB2.از آن تاریخ تاکنون DBMS رابطهای شاخص بوده و IBM از آن حمایت نموده و زبان DB's SQL2 استاندارد عملی زبان بانک اطلاعاتی بودهاست.
SQL استاندارد ANSI (American National Standards Institute) را در سال ۱۹۸۶ و ISO (International Organization for Standardization) را در سال ۱۹۸۷ اتخاذ نمود.
طریقه نصب SQL Server نصب SqlServer 2000 نسبتا ساده و بی دردسر است.
Setup را اجرا کنید (اگر Autorun بصورت خودکار اجرا نشد).
(توجه کنید که با یکی از Account های Administrator باید Login شده باشید).
با انتخاب گزینه اول که SQL Server Components است این پنجره نمایش داده خواهد شد : در مرحله بعد باید نوع نصب را انتخاب نمایید : گزینه Remote Computer برای نصب بر روی یک سیستم که در دسترس نیست (مثلاً سرور سایت شما در جایی خارج از کشور که تنها IP آن و یک Login در اختیار شما قرار دارد) مورد استفاده قرار می گیرد.
گزینه ای که احتمالاً شما همیشه از آن استفاده خواهید کرد، همان گزینه اول یا Local Computer خواهد بود.
در این کادر هم گزینه اول را انتخاب می کنید تا Sql Server بر روی سیستم نصب شود.
وارد کردن نام و نام شرکت و خواندن مقررات استفاده از Sql Server یا همان software License Agreement که بخصوص در ایران به شدت و با دقت خواندهمی شود، کارهای بعدی هستند که انجام می دهید.
بنا به فرض محال اگر Sql Server را خریده باشید (نه CD آن را به قیمت یک تا سه هزار تومان، بلکه اصل نرم افزار به قیمت 400-500 هزار تومان) یک شماره سریال 25 کاراکتری دارید که میتوانید آن را وارد نمایید (فرم خاصی برای آن نمایش داده می شود).
در کادر فوق نیز گزینه وسط را انتخاب کنید.
در صورتیکه یک نرم افزار نوشتهاید، بر روی کامپیوتر Server نصب را با گزینه وسط ادامه دهید و برای دیگر کامپیوترها با گزینه اول یا Client Tools Only.
در این مرحله نام سرور (نام نمونه سرور را که Sql Server با آن شناخته می شود) را باید وارد کنید.
می توانید همان گزینه Default را بگذارید باشد و یا اینکه یک نام دلخواه اختصاص دهید.
در این مرحله هم که کاملاً مشخص است : انتخاب چگونگی نصب ار نظر نوع و تعداد Component ها که توصیه من Typical است و در صورت آشنایی شما با Sql Server می توانید Custom را نیز انتخاب کنید.
این مرحله کاملا مهم است.
شما باید تصمیم بگیرید که سطح امنیتی دسترسی به سیستم چگونه باشد.
در حالت Windows Authentication Mode تمام User های تعریف شده در Windows NT امکان دسترسی به بانکها را خواهد (با توجه به Permission های داده شده) اما در حالت Mixed Mode علاوه بر اینکه باید جزو کاربران NT باشند باید User Name و Password خاص SQL Server را نیز داشته باشند.
روش دوم به نظر ایمن تر است اما دردسرهای آن هم بیشتر است.
بسته به امنیت محیطی که شبکه در آن پیاده سازی شده است می توانید یکی از دو نوع فوق را برگزینید.
آخرین قسمت نصب نزدیک است!
پس از نصب یک کادر دیگر نیز نمایش داده می شود که کافی است Finish کنید.
پس از نصب Sql Server باید سرویسهای مربوطه را اجرا کنید.
دو راه برای این کار وجود دارد.
یکی اجرای سرویس بصورت دستی و دیگری تنظیم آن برای شروع خودکار سرویس هنگام شروع کار ویندوز.
شروع دستی Sql Server به این صورت امکان پذیر است : در صورت لزوم مدیر خدمات SQL Server را Start کنید : با اجرای SQL Server Service Manager آیکون آن کنار ساعت روی TaskBar به این صورت نمایش داده می شود : برای متوقف کردن Service Manager کافی است روی کلید Stop کلیک کنید : یک پیام اخطار نمایش داده خواهد شد که با کلیک بر روی YES مدیر سرویس SQL SERVER متوقف خواهد شد.
چگونه مدیر خدمات SQL SERVER را بصورتی تنظیم کنیم که بشکل خودکار شروع به سرویس دادن کند؟
برای انجام این کار به Control Panel ----> Administrative Tools بروید و پنجره Services را باز کنید : و بعد از سرویسهای درحال اجرا، سرویس MSSQLSERVER را پیدا کنید : اگر در ستون Sturtup Type عبارت Automatic وجود نداشت با کلیک راست بر روی آن منو نمایش داده میشود.
در این منو، با انتخاب Properties پنجره جدیدی به این صورت نمایش داده میشود : با انتخاب Automatic و بعد Apply یا OK کردن، SQL Server Service Manager از این به بعد با Start شدن (روشن یا Restart شدن سیستم) شروع به کار می کند.
طریقه نصب SQL Server 2000 و 2005 عموماً همه شما با SQL Server 2000 کار کردهاید و ممکن است که SQL Server 2000 را روی سیستم خود نصب داشته باشید و اقدام به نصب SQL Server 2005 هم روی همان سیستم و سیستم عامل بکنید، درسته!
کاملا درست متوجه شدید، شما میتوانید همزمان هر دو نسخه 8 و 9 اس کیو ال سرور را روی سیستم خود نصب داشته باشید و اما اینکه این کار چه مزیتی دارد و میتواند چه مشکلات احتمالیای را در بر داشته باشد، هدف این مقاله هم این موضوع است.
مزایای نصب بیش از یک نسخه SQL Server کاملا مشخص است و نیاز به توضیح زیادی ندارد، ممکن است شما همزمان با دو یا چند برنامه کار کنید که نیاز به سرور SQL دارند و این برنامه ها ممکن است که هرکدام برای یک ویرایش SQL تدارک دیده شده باشند یا اینکه شما در حال ورود به محیط 2005 از محیط 2000 هستید و میخواهید همزمان که کار خود را با SQL 2000 (نسخه 8) انجام میدهید قادر به کار با نسخه 2005(نسخه 9) هم باشید و هزار و یک دلیل دیگر که ایجاب میکند دو نسخه مختلف از SQL را داشته باشید.
اگر اقدام به نصب 2 نسخه SQL کنید، دو Engine از SQL بر روی سیستم شما نصب میشود، یکی Engine نسخه 8 که وظیفه ارتباط با SQL Server 2000 را بر عهده دارد و دیگری Engine نسخه 9 که وظیفه ارتباط با SQL Server 2005 را بر عهده دارد و احتمالاً دو IDE برای اتصال به این دو Engine در اختیار خواهید داشت.
اولین IDE که فقط قادر به برقراری ارتباط با SQL Server 2000 را بر عهده دارد همان Enterprise Management یا بقولی EM و دیگری Management Studio که هم میتواند با هر دو Engine نسخه 8 و 9 کار کند.
یعنی در صورت نصب هر دو Engine و وجود Management Studio دیگر نیاز به استفاده از Enterprise Management ندارید.
طریقه اتصال به سرور برای Enterprise management به همان شکل قبلی است و اما نکتهای که باید در حین ارتباط با Management Studio مورد توجه قرار بدید!
به تصاویر زیر توجه کنید : به کادر قرمز توجه کنید در تصویر اول به Engine نسخه 8 و در تصویر دوم با نام نمونه سرور .\SQLExpress به Engine نسخه 9 متصل شدیم و این نکتهای هست که همیشه باید در زمان نصب 2 سرور بطور همزمان روی سیستم باید در نظر داشته باشید، به این شکل میتوانید از IDE نسخه 2005 برای Engine 2000 استفاده کنید.
آموزش SQL در این بحث میخواهیم به ارتباط SELECT و دستور IN بپردازیم، از این جهت که تقریبا 90% امور مربوط به گزارشگیری و اعمال پردازشی با دستور SELECT انجام میشه، تبحر در این دستور و نحوه استفاده از اون اهمیت زیادی داره، لذا سعی میکنیم نکات کاربردی در مورد این دستور ارائه بدیم.
اجازه بدین بحث رو با یک سوال شروع کنم: سوال : فرض کنین میخواین لیست تمام نمرات دانشجویانی رو بدست بیارین که در ترم اول 86 درس 2 واحدی داشتن.
خب تو یه تحلیل ساده پیش خودتون میگین اول باید کد تمام دروس 2 واحدی رو پیداکنم، بعد بگم تمام نمراتی رو بهم نشون بده که کدش یکی از این کدهاست.
در این قسمت میخواهیم طریقه انجام این کار رو با دستور SELECT و IN توضیح بدیم.
همانطور که میدانید با استفاده از دستور IN میتوانیم فیلدهایی رو که یکی از مشخصه های یک مجموعه مشخص رو داشته باشن رو انتخاب کنیم، توصیه میشه پیش از ادامه بحث در صورتی که مطالب رو از ابتدا پیگیری نکردین اینجا رو بخونین.
جهت استفاده از دستور SELECT برای تعیین موارد انتخابیای که دستور IN میتواند یکی از آن موارد باشد، باید چند شرط را رعایت کنیم: در دستور SELECT فقط و فقط یک فیلد را که کد شناسه ارتباطی بین جدول اصلی و ثانوی است را به عنوان خروجی ارسال کنیم (در اینجا فیلد مربوط به کد درس) شرطی که باید فیلد داشته باشد را در بخش WHERE دستور SELECT داخلی قید میکنیم .
(در اینجا شرط 2واحدی بودن) خب بیاین و کد مربوط به سوالی رو که ابتدای بحث مطرح کردیم رو ایجاد کنیم، با توجه به موارد قید شده دستور SELECT داخلی باید یک مجموعه از کدهای دروسی را در اختیار ما قرار دهد که درس مربوطه 2 واحدی باشد پس داریم: خب، همینطوری که میبینین این دستور لیست یک سری درس رو بهمون نشون داد که میخوایم بدونیم کدوم دانشجوها این درس (یا دروس) رو در نیمسال اول 86 انتخاب کردن: در این بخش هم میخواهیم طریقه مرتب سازی جداولی را که از این فیلترینگ ایجاد کردین را توضیح بدیم.
جهت مرتب سازی جداول ایجاد شده از دستور ORDER BY در SELECT استفاده میشه.
بحث رو با یک مثال ساده که نحوه عملکرد دستور را شرح میدهد شروع میکنیم.
مثال1 : میخواهیم از جدول مشخصات دانشجویان، لیست نام و نام خانوادگی دانشجویان را انتخاب کرده و فیلدها را بر اساس نام خانوادگی دانشجو مرتب کنیم .
* بهتر است خروجی علاوه بر اینکه براساس نام خانوادگی دانشجو مرتب میشود، بر اساس نام دانشجو نیز مرتب شود، البته در این مثال به علت عدم وجود نام خانوادگی تکراری در بانک اطلاعات دانشجو نتیجه خروجی فرقی نخواهد کرد لذا یک دانشجو جدید به این اضافه خواهیم کرد که تمایز آن با مثال فوق مشخص شود.
همانطور که مشاهده کردید برای مرتب سازی فیلدها در خروجی از ORDER BY استفاده شد و ترتیب مرتب سازی بترتیب جلوی این دستور نوشته شد .
اگر دقت کرده باشید فیلدها بترتیب صعودی مرتب شدند (حالت پیش فرض T-SQL) حال اگر بخواهیم فیلدها بر اساس ترتیب نزولی مرتب شوند میتوان از دستور DESC (مخفف واژه Descending) استفاده کرد ، میتوان در مرتب سازی صعودی از دستور ASC (مخفف واژه Ascending) نیز استفاده نمائید ، لیکن همانطور که گفته شد ترتیب پیش فرض SQL صعودی (Ascending) میباشد و این دستور را بطور اتوماتیک حذف خواهد کرد .
مثال2 : میخواهیم در جدول دروس ، لیست کلیه دروس را بصورت نزولی نمایش دهیم : الحاق جداول با استفاده از WHERE : یکی از عملکردهای بسیار مهم دستور WHERE الحاق جداول است، بدین معنی که شما میتوانید جداولی که با یک کلید با هم ارتباط دارند را الحاق کنید و یک جدول مجازی جدید ایجاد کنید.
بهتر است با یک مثال طریقه الحاق جداول را نمایش دهیم.
مثال: میخواهیم سه بانک نمرات دانشجویان، اطلاعات دانشجو و اطلاعات دروس را تلفیق کرده و بانکی از فیلدهای نام و نام خانوادگی دانشجو، نمره، نام درس، سال و ترم بدست بیاریم .
1 : نکته : همانطور که ملاحضه کردید در دستور فوق برای دسترسی به ستون name از جدول student بجای لفظ name از student.name استفاده کردیم، همینطور برای تمام فیلدهای دیگر این به این خاطر است که فیلد name در دو جدول student و course وجود دارد و باید به طریقی بین این دو فیلد تمایز ایجاد کرد لذا به این شکل استفاده شد.
توجه : برای باقی فیلدها غیر از name لزومی به ذکر کردن جدول اصلی نیست ولی برای خوانایی بیشتر بهتر است اسم جدول هم ذکر شود.
نکته : همانطور که ملاحضه کردید فیلد name درس، در خروجی با نام Expr1 آورده شده این به این علت است که این فیلد با فیلد name دانشجو، همنام است برای رفع این مشکل میتوان از دستور AS استفاده کرد، لذا دستور فوق را به صورت اصلاح شده زیر تغییر میدهیم: مثال2 : میخواهیم کارنامه دانشجویی با شماره دانشجویی 111111 را در ترم اول سال 86 چاپ کنیم مثال انتخاب رکوردها با شرایط بخصوص: زمانی که میخواهیم تعدادی رکورد با شرایط بخصوص، مثلا ًنمرات دانشجویان به قسمی که نمره کمتر از یک حد مشخص باشد میتوانیم با استفاده از دستور WHERE انتخابها را محدود کرده و گزارش مطلوب را جهت خروجی نمایش دهیم.
مثال 1 : میخواهیم در بانک اطلاعات نمرات نمرات دانشجویی با شماره دانشجویی 111111 را نمایش دهیم در اینصورت میتوان از دستور زیر استفاده کرد: مثال 2 : میخواهیم در بانک اطلاعات نمرات ، نمرات دانشجویی با شماره دانشجویی 111111 بصورتی که نمره های دانشجو بالاتریا برابر10 باشد را نمایش دهیم در اینصورت میتوان از دستور زیر استفاده کرد : مثال 3 : میخواهیم در بانک اطلاعات نمرات ، نمرات بین 12 و 18 را نمایش دهیم در اینصورت میتوان از دستور زیر استفاده کرد : مثال 4 : میخواهیم در بانک اطلاعات دانشجو ، اسامی دانشجویانی با الگوی %a% (یعنی در اسم دانشجو کاراکتر a وجود داشته باشد) را نمایش دهیم در اینصورت میتوان از دستور زیر استفاده کرد : توجه : در برخی از مفسرهای SQL در ایجاد الگو بجای کاراکتر % از کاراکتر * استفاده میشود.
مثال 5 : میخواهیم در بانک اطلاعات دانشجو، اسامی دانشجویانی که یکی از اسامی ('ali', 'reza', 'mohammad') است را نمایش دهیم در اینصورت میتوان از دستور زیر استفاده کرد: