سیستم های تجاری Sql
طراحی و پیاده سازی
مدیریت
1) Design and Implementation
2) Administrator
بانکهای اطلاعاتی به دو دسته تقسیم بندی می شوند که عبارتند از:
1) Desktop Access-paradox, foxpro-Dbase
2) client/server sql-oracl/
مدل Desktop برای کامپیوتهای single پیش بینی شده است.
به این شکل که برای یک مجموعه کوچک که با حجم زیادی از اطلاعات روبرو نیست می تواند نیاز ما را برطرف کند.
بانکهایی مانند Access شاخص ترین عضو خانواده Desktop به حساب می آید.
در این نوع از بانکهای اطلاعاتی، بانک اطلاعاتی ساخته شده بر روی یک hard قرار گرفته و برای دیگران قابل دسترسی میباشد.
اگر بخواهیم برای کاربران مختلف که در این سیستم کار میکنند محدودیت های دسترسی تعریف کنیم با مشکل مواجه خواهیم شد چرا که گزینه های امنیتی در آن نسبت به مدل client/server بسیار بسیار ضعیف می باشد.
البته در صورتیکه یک محیط شبکه داشته باشیم می توانیم فایل ساخته شده Access خود را در داخل فایل server قرار دهیم و client ها به آن دسترسی داشته باشیم.
اگر بخواهیم از این بانک که نگهدارنده اطلاعات کارگزینی کارمندان و اطلاعات حقوق و دستمزد آنها باشد.
گزارشی به شکل زیر تهیه کنیم لیست کلیه کارمندان را نمایش دهید که در دپارتمان 1 مشغول کار هستند و می خواهیم جمع حقوق کارمندان این بخش را مشخص کند.
حداکثر سرعت در شکبه
این مشکلات می تواند از زوایای مختلف بوجود بیاید:
1- تمام پردازش ها در داخل client انجام می شود.
2- در این حالت نیازمند سخت افزار قوی برای client ها و وجود یک خطوط ارتباطی پرسرعت.
3- از آنجایی که هارد server قابل دسترس برای کلیه client ها می باشد امنیت اطلاعات server از بین خواهد رفت.
4- اگر در این مدل نیاز به up date کردن برخی از رکوردها داشته باشیم بعد از آنکه رکوردها به client آمدند و تعدادی از آنها up date شدند باید بر روی هارد server ذخیره گردد.
اگر در حین انجام عمل save سیستم با قطع برق مواجه گردد و یا خطوط ارتباطی قطع شوند برخی از رکوردها در فایل بانک در server ، up date شده و برخی دیگر بدون تغییر باقی خواهد ماند.
هیچ راهی برای شناسایی اینکه کدام یک تغییر یافته اند وجود ندارد و نمی توان وضعیت بانک را به حالت اولیه آن برگرداند.
Select sum (Salary) From Employees Where Dep=1 در قالب نوع client/server یکپارچگی اطلاعات تضمین می شود به این شکل که در هنگام عمل up date چنانچه برق قطع شود با روشن شدن مجدد server بررسی می شود که آیا مراحل قبلی با موفقیت به پایان رسیده است یا خیر.
برای حفظ یکپارچگی، اطلاعات sql server قبل از ثبت قطعی اطلاعات کلیه اعمال را در فایل log خود انجام می دهد.
Sql server دارای دو نوع فایل می باشد: فایل داده با پسوند Mdf .
1) Date file فایل تراکنش با پسوند Ldf .
2) log file فایل های تراکنش Transaction log file زمانیکه سیستم روشن می شود ابتدا log file مورد ارزیابی قرار می گیرد.
اگر در فایل log با دستور commit مواجه شود یعنی کلیه اعمال قبلی به شکل کامل انجام شده اند و آماده اند برای آنکه بر روی date file نوشته شوند.
در این حالت log file بر روی data file ثبت خواهد شد.
اگر با دستور commit مواجه نشود عمل roll Back اتفاق می افتد حال می توانیم با این شرایط وضعیت سیستم را به شرایط قبلی بازگردانیم.
تمام حالتهای انجام شده به وضعیت سابق بر میگردد و بانک ثبات خود را حفظ خواهد کرد یکپارچه باقی می ماند.
انواع sql های قابل نصب: 1) sql server enterprise روی ویندوز 2000 و 2003 نصب می شود یعنی روی ویندوزهای 32 بیتی و 64 بیتی قابل نصب هست.
بهترین خاصیت آن امکان داخلی آن clustering می باشد یعنی 4 یا 8 کامپیوتر را می توان بهم وصل کرد.
4- نحوه ویرایش استاندارد 2) Standard Edition روی ویندوز 2000 و 2003 نصب می شود و تفاوتش با sql اولی این است که امکان clustering را ندارد.
Sql 2000 service pack 3a Win 2000 service pack 4 Win 2003 service pack 1 3) sql server personal edition روی ویندوز xp نصب می شود.
Spl server , client tools روی ویندوز CE کامپیوترهای جیبی (packet pc) نصب می شود.
نصب sql : بعد از نصب sql server و فعال شدن service manager به سراغ interprise manager می رویم تا بتوانیم به کمک آن به table ها دسترسی یابیم.
اگر اثری از sql نصب شده در sql server group وجود نداشت بر روی آن right click کرده گزینه new registration را انتخاب می کنیم.
با این کار sql server شناسایی خواهد شد.
سپس آن را باز کرده و لیست data base ها از folder data base کلیه بانکهای موجود را مشاهده خواهیم کرد.
حال بانکهای tempdb-msdb-model-master به عنوان بانکهای سیستیم و pubs , northwind مشاهده می شود که این دو data base (بانک) نمونههایی هستند که ماکروسافت آنها را برای آشنایی بهتر ترویج کرده است.
برای غیر فعال کردن بانکهای سیستمی وtable های سیستمی که در هر بانکی (data base های) وجود دارند می توانند بر روی نام data base ، کلیک راست کرده و گزینه edit sql server registration را انتخاب کنیم و در این پنجره گزینه show system … را غیر فعال کنیم تا هیچ یک از موارد سیستمی به نمایش در نیاید.
از این بانکهای سیستمی sql بانک master اصلی ترین بانک sql می باشد این بانک در پشت صحنه کلیه عملیات sql را مدیریت مینماید و هر نوع آسیب به این data base باعث از کارافتادن sql خواهد شد.
بانک model db بانکی است که از روی آن تمام data base های جدید ساخته می شود و در واقع طرح و الگویی جهت سایر data base هاست.
بانک temp db به ما کمک می کند که بر روی انجام عملیات موقت از این بانک اطلاعاتی استفاده نماییم زمانیکه مطمئن به انجام قطعی عملیات نیستیم می توانیم از بانک temp db استفاده کنیم هر بار sql فعال می شود temp db خالی خواهد شد.
Msdb بانکی است که وظیفه انجام کارهایی را که تحت عنوان job شناخته می شوند را بر عهده دارد.
این بانک با سرویس sql server agent کار می کند.
نکته: اگر sql در حالت stop باشد یعنی sql سرویس دهی نمی کند و اگر در حالت pause باشد باعث می شود که هر کسی که قبلاً وارد سیستم شده و در حال کار با sql است بینام خطا دریافت نکرده ولی فرد جدید نمی تواند وارد سیستم شده و کاری انجام دهد.
Stop یعنی توقف بطور کامل و sql سرویس دهی می کند ولی pause یعنی توقف لحظه ای.
اگر بخواهیم به هر دلیلی به عنوان admin بخواهیم تغییری در sql بدهیم باید sql را از حالت multi user خارج کرده و به حالت single user درآوریم و برای اجرای مجدد start را می زنیم و سرویس دهی sql دیگران قرار می گیرد.
توسط interpriser ابزارهای مدیریتی خواهیم داشت.
روی sql server کلیک می کنیم و آن را باز می کنیم.
Sql server\ service manager \ interprise manager \ registration \ wizard\ register sql server wizard اگر اسم sql را ندیدیم باید آن را ثبت کنیم.
مثلاً pcl Right click \ new sql server registration Right click \ edit … \ registed sql server properties Sql هایی که سیستمی بودند پنهان شدند.
نکته: اگر master آسیب ببیند دیگر sql کار نمی کند.
نحوه ایجاد data base : بر روی data bases ، کلیک راست کرده گزینه new data base را انتخاب می کنیم.
اسم data base را وارد می کنیم.
در قسمت collation name برای انتخاب زبان code page می باشد.
اگر در هنگام نصب گزینه collation به درستی تنظیم شده باشد در این جا بر روی انتخاب server default تنظیم خود را قرار می دهیم.
در غیر اینصورت می توانیم از موارد موجود Arabic CS-AI برای زبان فارسی انتخاب نمائیم.
اگر data base ای را حذف کنیم دیگر آن data base قابل برگشت نیست.
مثال: اسم کامل فیزیکی Employces-Data.MDF با حجم 1mG بر روی hard ساخته می شود.
تحقیق: Group file چیست؟
برای چه فایل ها را دسته بندی می کنیم؟
آیا میتواند مقداری غیر از primary بگیرد؟
دسته: فقط اولین فایل داده ساخته شده پسوند MDF دارد و فایل دوم به بعد NDF پوندش می باشد.
در قسمت properties یک قسمت automatic … وجود دارد که اگر تیک نداشته باشد گزینه های آن غیر فعال خواهد بود و اگر تیک داشته باشد می توان حجم و موارد دیگر را به دلخواه تغییر داد.
برای مثال باشد اگر بعد از پر شدن ، مگ مگ اضافه می شود.
نامحدود unrestricted محدود restricted در قسمت maximum file size می توان محدودیت قرارداد می توان محدودیت قرار دارد.
قسمت transaction فایل ساخته شده با پسوند LDF است.
تحقیق: در این قسمت log file (با پسوند LDF) چرا group file ندارد؟
در زمان ساخت data base در tab دوم فایل data را تنظیم می کنیم و در tab سوم فایل log را تنظیم می کنیم.
در قسمت پایین می توانیم نحوه رشد فایل log file , data را مشخص سازیم.
نحوه رشد می تواند برحسب mB یا percent (درصد) باشد.
در قسمت restricted حجم نهایی فایل مشخص می شود.
اگر unrestricted انتخاب شود برای حجم فایل محدودیتی قائل نخواهیم شد.
هر بانک اطلاعاتی دارای یک log file است که محل نگهداری آن همان محل فایل data می باشد.
log file تاریخچه تغییرات اطلاعاتی است که در سیستم روی می دهد.
هر data ای که بخواهیم تعویض شود در log file نوشته می شود هر عمل حذف data و یا تغییر data باعث میشود در log file ذخیره گردد بطور کلی log file همواره در حالت بزرگ شدن می باشد.
فوائد log file : 1- عمل پیگیری تراکنش ها (Transaction Tracking) برای پیگیری تراکنش ها مورد استفاده قرار می گیرد.
یعنی در هر واحد عملیاتی در data base که به آن تراکنش می گوییم می توانیم به کمک log file در صورت انصراف از تغییرات انجام شده وضعیت بانک را به حالت قبل از تراکنش برگردانیم.
2- امکان data base recovery یا بازیابی data base : اگر data base به هر دلیلی دچار مشکل گردد و فایل MDF آن آسیب ببیند می توانیم به کمک Log عمل recovery را انجام دهیم.
3- restore to the point of crash : عمل بازیابی اطلاعات یعنی restore قابل انجام خواهد بود به شرط آنکه از log file ، back up گرفته شده باشد.
در شرایطی که حتی server دچار مشکلات جدی گردد و یا بطور فیزیکی از بین برود اگر محل نگهداری log در جای دیگری خارج از آن server پیش بینی شده باشد به راحتی می توانیم، اطلاعات از بین رفته را برگردانیم.
عمل back up در sql به دو صورت قابل انجام است: 1) complete back up 2) log back up لبه option : Restricted access برای محدود کردن دسترسی می باشد که با انتخاب آن گزینه های زیر فعال می شود.
1) members of db-owner , db creator or … Db-owner مالک بانک اطلاعاتی میدان بانک اطلاعاتی نکته: کاربر معمولی جزء این گروه (میدان بانک اطلاعاتی) نمی باشد.
محدود به یک کاربر 2) single user Single user برای مواقعی است که می خواهیم تنها به شکل single (منفرد- تک) با این data base کار کنیم.
گاهی مواقع لازم است که دسترسی به بانک از حالت چند کاربره خارج شود و به حالت تک کاربره درآید.
با انتخاب Read only کل بانک اطلاعاتی حالت فقط خواندنی پیدا میکند.
مثلاً اگر بخواهیم بانک اطلاعاتی مربوط به حسابداری برای سال قبل را به شکل فقط خواندنی درآوریم تا جلوی هر تغییری در آن گرفته شود آن بانک را می توان Read only کرد.
Recovery : Model سه حالت دارد: Bulk log-simple-full اگر ویندوز Xp باشد در حالت simple خواهد بود و اگر ویندوز 2000 یا 2003 باشد در حالت full قرار خواهد گرفت.
حالت full : در این حالت همه تغییرات در فایل log ذخیره می شود و تا وقتی که از log ، back up گرفته نشود فایل log حذف نمی گردد.
حالت bulk : شبیه full است با این تفاوت که برخی از دستورات در sql مانند دستور BCP/DTS دستوراتی هستند که اطلاعات پرحجم تولید میکنند.
کسانی که جابجایی اطلاعات یعنی از بانکی مانند oracle ، access و یا حتی sql و ...
اطلاعات را به محل دیگر و یا به داخل خود sql منتقل می نمایند باید روی گزینه bulk loge انتخاب نمایند.
حالت simple : در این حالت تمام تغییرات در log نوشته می شود اما با هر بار عمل commit یا roll back از log حذف می گردد در persona نوع پیش فرض هستند در این روش log file بزرگ نمی شود.
قسمت setting : Ansi null default : این گزینه رفتار ایجاد جدول در sql را تغییر می دهد.
برای فیلدهای هر جدول می توانیم تعیین کنیم که مقدار آن null