طراحی و پیاده سازی
مدیریت
1) Design and Implementation
2) Administrator
بانک های اطلاعاتی به دو دسته تقسیم بندی می شوند که عبارتند از:
1) Desktop Access-paradox, foxpro-Dbase
2) client/server sql-oracl/
مدل Desktop برای کامپیوتر های single پیش بینی شده است. به این شکل که برای یک مجموعه کوچک که با حجم زیادی از اطلاعات روبرو نیست می تواند نیاز ما را برطرف کند.
بانکهایی مانند Access شاخص ترین عضو خانواده Desktop به حساب می آید. در این نوع از بانکهای اطلاعاتی، بانک اطلاعاتی ساخته شده بر روی یک hard قرار گرفته و برای دیگران قابل دسترسی میباشد. اگر بخواهیم برای کاربران مختلف که در این سیستم کار میکنند محدودیت های دسترسی تعریف کنیم با مشکل مواجه خواهیم شد چرا که گزینه های امنیتی در آن نسبت به مدل client/server
10000
بسیار بسیار ضعیف می باشد. البته در صورتیکه یک محیط شبکه داشته باشیم می توانیم فایل ساخته شده Access خود را در داخل فایل server قرار دهیم و client ها به آن دسترسی داشته باشیم.
File server
H.D.D
MDB
Client1
Client2
Client3
10000
رکورد
اگر بخواهیم از این بانک که نگهدارنده اطلاعات کارگزینی کارمندان و اطلاعات حقوق و دستمزد آنها باشد. گزارشی به شکل زیر تهیه کنیم لیست کلیه کارمندان را نمایش دهید که در دپارتمان 1 مشغول کار هستند و می خواهیم جمع حقوق کارمندان این بخش را مشخص کند.
حداکثر سرعت در شکبه
این مشکلات می تواند از زوایای مختلف بوجود بیاید:
1- تمام پردازش ها در داخل client انجام می شود.
2- در این حالت نیازمند سخت افزار قوی برای client ها و وجود یک خطوط ارتباطی پرسرعت.
3- از آنجایی که هارد server قابل دسترس برای کلیه client ها می باشد امنیت اطلاعات server از بین خواهد رفت.
4- اگر در این مدل نیاز به up date کردن برخی از رکوردها داشته باشیم بعد از آنکه رکوردها به client آمدند و تعدادی از آنها up date شدند باید بر روی هارد server ذخیره گردد.
Server processing
اگر در حین انجام عمل save سیستم با قطع برق مواجه گردد و یا خطوط ارتباطی قطع شوند برخی از رکوردها در فایل بانک در server ، up date شده و برخی دیگر بدون تغییر باقی خواهد ماند. هیچ راهی برای شناسایی اینکه کدام یک تغییر یافته اند وجود ندارد و نمی توان وضعیت بانک را به حالت اولیه آن برگرداند.
Sql Server
Client1
Client2
Client3
Win 2000
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
Client only
روی ویندوز 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 o باشد یعنی 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 (1 مالک بانک اطلاعاتی
db-creator (2 کسانی که حق ایجاد بانک اطلاعاتی دارند.
Sys admin (3 یعنی کاربری بنام Sa
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 باشد یا خیر.
با انتخاب این گزینه فیلدها بطور اتوماتیک null خواهد شد. وضعیت پیش فرض هر فیلد بدون استفاده از این گزینه not null خواهد بود.
Auto close :
Data base بطور خودکار بسته می شود.
Recursive triggers :
یعنی در حالت عادی trigger ها بازگشتی نمی باشند. با این گزینه میتوانیم trigger از نوع بازگشتی ایجاد کنیم:
از بین بردن فضای خالی
Auto shrink :
باعث می شود فضای خالی در data base از بین برود. Auto shrink زمانی کار می کند که حجم خالی به میزان 25% کل فضای data base رسیده باشد.
Auto shrink برای data base هایی لازم است که admin نداشته باشد.
: Auto create statistics , auto update statistics
اطلاعات آماری مربوط به update کردن
به کمک این گزینه ها آمار فراوانی index های sql مشخص می شود و بطور اتوماتیک با هر بار اضافه کردن record تعداد کلیدهای index مورد شمارش واقع می شود.
این آمار به این دلیل لازم و مهم است که sql تشخیص دهد که گزارش خود را بر حسب index انجام دهد یا خیر.
: Torn page detection صفحات پاره پاره پاره Torn
وسط این گزینه وجود صفحات پاره مورد شناسایی قرار می گیرد. واحد خواندن و نوشتن در page , sq می باشد که حجم آن 8kB است.
اگر در هنگام کار در زمان نوشتن اطلاعات sql دچار مشکل شود یا برق قطع گردد صفحات پاره بوجود می آیند که با run شدن مجدد sql با فعال بودن این گزینه torn page ها مورد شناسایی قرار خواهند گرفت.
: Use quoted identifiers
در حالت معمولی رشته ها (مجموعه ای از کاراکترها) در sql در داخل ‘ ‘ و یا “ “ گذاشته می شوند.
“Ali” یا ‘Ali’ : مثال
در صورت فعال بودن این گزینه عبارت را در “ “ هم می توان قرار داد.
نکته:
اگر گزینه تیک دار باشد از هر ‘ ‘ و “ “ می توان استفاده کرد ولی اگر تیک دار نباشد فقط از ‘ ‘ استفاده می کنیم.
اگر جدولی تعریف شده باشد که نام آن شامل space باشد مانند:
space
Order – details حتماً باید در داخل “ “ قرار گیرد.
نکته:
در صورتیکه این گزینه تیک نداشته باشد برای مورد خطاب قرار دادن جدول های space دار از [ ] استفاده می شود.
: Compatibility
برای سازگاری version های مختلف sql (قدیمی) با 2000
Primary
نکته:
Text
Binary
برای دسته بندی فایل ها از file group استفاده می کنیم.
Data
Log
مثل آدرس tel- محل خدمت و ...
secondry
کمتر دچار تغییرات می شود (صدا- تصویر)
برای binary می توان از یک هارد مستقل از نوع TDE استفاده کنیم و برای text می توان از هارد SCSI که گران قیمت است استفاده کنیم با این کار از سرعت بالایی برخوردار خواهیم بود. ولی هارد TDE ارزای قیمت است.
File group زمانی قابل استفاده است که در سیستم server بیش از یک هارد فیزیکی داشته باشیم.
File group برای partion های گوناگون کاربردی ندارد.
80GB
Primary
اگر ما دو تا هارد داشته باشیم و آنها را در یک file group قرار دهیم باعث می شود که عمل نوشتن و خواندن بر روی هر دو هارد بطور همزمان انجام شود یعنی موازی خواندن و موازی نوشتن.
2 Page
Mdf Ndf
H.D.D1 H.D.D1
80GB
Page (8 kB) واحد نوشتن
ولی اگر دو هارد داشته باشیم سرعت بالاتر می رود چون اطلاعات در هر دو hard نوشته می شود. دو page بطور همزمان نوشته و خوانده و پر می شود.
ولی اگر در یک file group باشد و یک hard داشته باشیم یک page که دارد پر می شود باید صبر کرد که در page بعدی پر شود.
(شکل ها و فرمولها در فایل اصلی موجود است)