دسته بندی | کامپیوتر و IT |
بازدید ها | 37 |
فرمت فایل | doc |
حجم فایل | 591 کیلو بایت |
تعداد صفحات فایل | 85 |
امنیت در شبکه های بی سیم
مقدمه :
از آنجا که شبکههای بی سیم، در دنیای کنونی هرچه بیشتر در حال گسترش هستند، و با توجه به ماهیت این دسته از شبکهها، که بر اساس سیگنالهای رادیوییاند، مهمترین نکته در راه استفاده از این تکنولوژی، آگاهی از نقاط قوت و ضعف آنست. نظر به لزوم آگاهی از خطرات استفاده از این شبکهها، با وجود امکانات نهفته در آنها که بهمدد پیکربندی صحیح میتوان بهسطح قابل قبولی از بعد امنیتی دست یافت، بنا داریم در این سری از مقالات با عنوان «امنیت در شبکه های بی سیم» ضمن معرفی این شبکهها با تأکید بر ابعاد امنیتی آنها، به روشهای پیکربندی صحیح که احتمال رخداد حملات را کاهش میدهند بپردازیم.
بخش اول
1-1 شبکه های بی سیم، کاربردها، مزایا و ابعاد
تکنولوژی شبکه های بی سیم، با استفاده از انتقال داده ها توسط امواج رادیویی، در ساده ترین صورت، به تجهیزات سخت افزاری امکان می دهد تا بدون استفاده از بسترهای فیزیکی همچون سیم و کابل، یا یکدیگر ارتباط برقرار کنند. شبکه های بی سیم بازه وسیعی از کاربردها، از ساختارهای پیچیده ای چون شبکه های بی سیم سلولی - که اغلب برای تلفن های همراه استفاده می شد- و شبکه های محلی بی سیم (WLAN- wireless LAN ) گرفته تا انواع ساده ای چون هدفون های بی سیم، مرا شامل می شوند. از سوی دیگر با احتساب امواجی همچون مادون قرمز، تمامی تجهیزاتی که از امواج مادون قرمز نیز استفاده می کنند، مانند صفحه کلیدها، ماوس ها و برخی از گوشی های همراه، در این دسته بندی جای می گیرند. طبیعی ترین مزیت استفاده از این شبکه ها عدم نیاز به ساختار فیزیکی و امکان نقل و انتقال تجهیزات متصل به این گونه شبکه ها و هم چنینی امکان ایجاد تغییر در ساختار مجازی آن ها است. از نظر ابعاد ساختاری، شبکه های بی سیم به سه دسته تقسیم می شوند: WPAN , WlAN, WWAN .
مقصود از WWAN که مخفف Wireless WAN است، شبکه ها ساختار بی سیم سلولی مورد استفاده در شبکه های تلفن همراه است. WLAN پوششس محدودتر، در حد یک ساختمان یا سازمان، و در ابعاد کوچک یک سالن یا تعدادی اتاق، را فراهم می کند. کاربرد شبکه های WPAN یا Wireless Personal Area Netuork برای موارد خانگی است. ارتباطاتی چون Blue tooth و مادون قرمز در این دسته قرار میگیرند.
شبکه های WPAN از سوی دیگر در دسته شبکه های Ad Hoc نیز قرار می گیرند. در شبکه های Ad Hoc یک سخت افزار، به محض ورود به فضای تحت پوشش آن، به صورت پویا به شبکه اضافه می شود. مثالی از این نوع شبکه Blue tooth است. در این نوع، تجهیزات مختلفی از جمله صفحه کلید، ماوس، چاپگر، کامپیوتر کیفی یا جیبی و حتی تلفن همراه، در صورت قرار گرفتن در محیط تحت پوشش، وارد شبکه شده و امکان رد و بدل داده ها با دیگر تجهیزات متصل به شبکه را می یابند. تفاوت مکان شبکه های Ad Hoc با شبکه های محلی بی سیم (WLAN) در ساختار مجاز آنها است. به عبارت دیگر، ساختار مجازی شبکه های محلی بی سیم بر پایه طرحی استیاست در حالی که شبکه های Ad Hoc از هر نظر پویا هستند. طبیعی است که در کنار مزایایی که این پویایی برای استفاده کنندگان فراهم می کند، حفظ امنیت چنین شبکه های نیز با مشکلات بسیاری همراه است. با این وجود، عملاً یکی از راه حل های موجود برای افزایش امنیت در این شبکه ها، خصوصاً در انواعی همچون Blue tooth کاشتن از شعاع پوشش سیگنالهای شبکه است. در واقع مستقل از این حقیقت که عملکرد Blue tooth بر اساس فرستنده و گیرنده های کم توان استوار است و این مزیت در کامپیوتر های جیبی برتری قابل توجهی محسوب می گردد، همین کمی توان سخت افزار مربوطه، موجب کاهش محدود تحت پوشش است که در بررسی امنیتی نیز مزیت محسوب می گردد. به عبارت دیگر این مزیت به همراه استفاده از کدهای رمز نه چندان پیچیده، تنها ضربه های امنیتی این دسته از شبکه های به حساب می آیند.
2-1 اساس شبکه های بی سیم
در حال حاضر سه استاندارد در شبکه های Wireless با یکدیگر در حال رقابت هستند.
استاندارد (802.11b ) Wi-Fi که بر مناسبی برای استفاده در مکان های اداری دارد.
استاندارد 802.11a که پهنای باند بیشتری داشته و مشکلات تداخل فرکانس رادیویی آن کمتر می باشد ولی برد کوتاهتری دارد.
استاندارد Blue tooth برای برد کوتاه مثل شبکه های موقت در اتاق های کنفرانس، مدرسه ها، یا خانه ها استفاده می شود.
1-2-1 حکومت عالی Fi - Wi
Fi - Wi در حال حاضر محبوب ترین و ارزان ترین شبکه محلی بی سیم (Wireless LAN ) را دارد.
Fi - Wi در طیف رادیویی 2.4GH2 عمل می کند و می تواند سرعت انتقال اطلاعات را تا 11ubps با دامنه 30 متر بالا ببرد.
تعادلی که Fi - Wi بین اقتصاد، پهنای بلند، و مخصوصاً برد برقرار کرده، آن را به صورت استانداردی برجسته برای تجارت درآورده، و کارمندان بسیاری از این تکنولوژی برای کار و محاسبات شخصی استفاده می کنند. WECA[1] سهم خود را با تضمین صدها هزار محصول و اطمینان از کار و هماهنگی آنها با یکدیگر انجام داده، اما در Fi - Wi دو اشکال دارد.
اولاً از فضای هوایی، مشترکاً برای موبایل B;ue tooth امواج[2] رادیویی مهم و بقیه وسایل استفاده می کند. بنابراین، این تداخل امواج رادیویی، آ. را آسیب پذیر می کند.
ثانیاً به دلیل انتقال داده در هوا و وجود دیوار و دیگر موانع اجتناب ناپذیر، عملکرد واقعی به 5Mbps، یا تقریباً نصف سرعت مورد انتظار از آن می رسد.
2-2-1 802.11a یک استاندارد نوپا
802.11a دو مزیت بیشتر نسبت به Wi-Fi در فرکانس 5.35GH2 E5.15GH2 کار می کند که کمتر مورد استفاده است، در نتیجه تداخل امواج رادیویی در آن کمتر است. ثانیاً پهنای باند آن بسیار بالا است، و از نظر تئوری به 54cubp می رسد.
با وجود این که عملکرد واقعی آن نزدیک به 22Mbps است، همچنان فضای خالی برای انتقال صوت و تصویر دیجیتالی با کیفیت بالا و بقیه فایل های بزرگ، و همچنین به اشتراک گذاشتن اتصال Broad band در شبکه بیشتر از استاندارد Wi-Fi است و بعضی از تولید کننده ها، روشهای مخصوصی ارائه می دهند، که عملکرد آن را کمی بهتر می کند.
مشکل اصلی 802.11a از Wi-Fi در حال کاهش است، ولی در حال حاضر تجهیزات 802.11a بسیارگران تر از Wi-Fi است.
802.11a از Wi-Fi با یکدیگر سازگار نیستند، زیرا از دو تکنولوژی رادیویی متفاوت و دو قمست متفاوت از طیف رادیویی استفاده می کنند. به هر حال، تجهیزات استانداری برای هر دو تکنولوژی وجود دارد، که تبدیل آنها به یکدیگر را بسیار راحت کرده است. اگر می خواهید یکی از این دو استاندارد را انتخاب کنید، عوامل زیر را در نظر بگیرید:
اگر در حال حاضر از یکی از این استانداردها در کار خود استفاده می کنید، حتماً از همان استاندارد در منزل استفاده کنید، این کار ارتباط ر راحت تر می کند. اگر از لحاظ قیمت و سازگاری ( تجهیزاتی که برای سازگاری با استانداردهای دیگر هستند)، مشکلی ندارید، 802.11a کارایی بهرتری دارد و می تواند ارزش پرداخت هزیهنه اضافی را داشته باشد. اما اگر می خواهید دامنه بیشتری را با قیمت کمتر، تحت پوشش قرار دهید، Wi-Fi انتخاب بهتری است.
3-2-1 Blue tooth قطع کردن سیم ها
Blue tooth بطور اصولی یک فن آوری جایگزین کابل است. استاندارد فعلی Setup کردن کامپیوتر را در نظر بگیرید: یک صفحه کلید یک ماوس و مانیتور و احتمالاً یک چاپگر یا اسکنر به آن متصل هستند. اینها معمولاً به وسیله کابل به کامپیوتر متصل می شوند. یک تراشه Blue tooth برای جایگزین نمودن کابل ها بوسیله گرفتن اطلاعات حمل شده بصورت معمولی توسط یک کابل و انتقال آن در یک فرکانس خاص به یک تراشه گیرنده Blue tooth در کامپیوتر، تلفن، چاپگر یا هر چیز دیگری طراحی شده است. Blue tooth که در ابتدا توسط Ericsson ایجاد شده، استانداردی برای تراشه های رادیویی ارزان قیمت و کوچکی است که درون کامپیوترها، تلفن ها، موبایل ها و چاپگر ها و ممیره قرار می گیرد.
این ایده اصلی بود، اما سریعاً آشکار شد که کارهای بیشتری امکان پذیر است. شما می توانید اطلاعات را بین هر دو دستگاهی انتقال دهید، کامپیوتر و چاپگر، صفحه کلید و تلفن و موبایل، و غیره. هزینه کم تراشه Blue tooth ( حدود 5 درصد) و مصرف نیروی برق پایین آن، به این معنی است که می توان آن را تقریباً در هر جایی قرار داد.
می توانید تراشه های Blue tooth را در کانتینر های باری برای تشخیص بار در هنگام حرکت بار در گمرک یا در انبار داشته باشید، یا یک هدست که با یک تلفن موبایل در جیب شما یا در اتاق دیگری مرتبط می گردد. یا یک e-mail که به دستگاه موبایل شما ارسال شده و به محض رسیدن شما به محدوده کامپیوتر اداره چاپ می شود.
در حال حاضر می توان از یک ماوس و صفحه ملید بی سیم استفاده کرد، می توان عقب نشست و صفحه کلید را روی پاهای خود قرار داد، بدون اینکه سیم صفحه کلید مانع از انجام این کار شود.
کابل ها در اداره ها و خانه ها دردسر زیادی را ایجاد می کنند. اکثر ما این تجربه را داشته ایم که سعی نموده ایم تا سردر بیاوریم کدام کابل به کجا می رود و در سیم های پیچیده شده در پشت میز کار خود سردر گم شده ایم. رفع این مشکل با استفاده از تکنولوژی Blue tooth انجام می گیرد. Bluetooth همچنین یک استاندارد جهانی را برای ارتباط بی سیم ارائه می دهد. و پس از سال 2002 یک ریز تراشه Blue tooth در هر دستگاه دیجیتالی ساخته شده قرار خواهد گرفت. روش کار چنین است که اگر دو دستگاه Blue tooth در فاصله 10 متری از یکدیگر قرار بگیرند، می توانند با هم ارتباط برقرار کنند و چون Blue tooth از یک ارتباط رادیویی بهره می گیرد، تراشه نیازی به یک خط مرئی برای برقراری ارتباط ندارد.
تراشه رادیویی روی باند فرکانس 2.4GH2 قابلیت دسترسی جهانی دارد عمل می کند و سازگاری را در کل دنیا تضمین می کند فن آوری های Blue tooth، تمامی ارتباطات را بطور آنی برقرار می کنند و انتقال سریع و ایمن داده و صدا را ارائه می دهند.
در اینجا برخی کارهای ساده ای که می توانند بعنوان نتیجه استفاده از تکنولوژی Blue tooth برای ما فراهم شوند را می بینیم.
در آینده، احتمال می رود Blue tooth استاندارد دهها میلیون تلفن موبایل، PC، Laptop و دامنه وسیعی از دستگاه های الکترونیکی دیگر باشد. در نتیجه باید تقاضای زیادی برای برنامه های ابتکاری جدید، خدمات با ارزش افزوده، رهیافت های to-end و غیره وجود داشته باشد. احتمالات نامحدود هستند.
در ابتدا، Blue tooth شروع به جایگزینی کابل هایی خواهد نمود که دستگاه های دیجیتال متنوعی را به هم متصل می کنند و با افزایش تعداد ارتباطات، پتانسیل نیز افزایش می یابد. با پذیرش Blue tooth توسط تولید کنندگان بیشتری که آن را پشتیبانی می نمایند، توسعه دهندگان راه های جدیدی که پیشتر تصور آنها نمی رفت را برای به کارگیری نیروی آن خواهند یافت.
4-2-1 پشتیبانی خصوصی: Blue tooth
نام Blue tooth از نام یک پادشاه دانمارکی ( به نام Harald Blaatand ) که در قرن دهم زندگی می کرد، گرفته شده است. Blue tooth تا حدی متفاوت از دو استاندارد Wi-Fi و 802.11a می باشد. Blue tooth انعطاف پذیری بیشتری دارد ولی در مقیاس کوچکتر شبکه های[3] خانگی عمل می کند. عملکرد واقعی آن، فقط 300Kbps است و برد آن تقریباً 10 متر است.
Wi-Fi و 802.11a برای برقراری ارتباط بین دستگاه ها به Adaptor، مسیریابها Gateway ، Routers ها، ایستگاه های Access Point و برنامه های راه اندازی هم زمان، نیاز دارند. اما برخلاف آنها، تمام دستگاه هایی که امواج رادیویی و آنتن های Blue tooth داشته باشند، با تدارکات کمی، می توانند با یکدیگر ارتباط برقرار کنند. دستگاه هایی که با اشعه مادون قرمز کار می کنند، روشی برای انتقال فوری هستند. Blue tooth به وسیله جانشین کردن پورت های این دستگاه ها آنها را متعادل می کند و این کار را با برد بهتر و بدون نیاز به دید مستقیم (Line -of- sign) انجام می دهد. حضار در جلسات به وسیله Blue tooth هایی که به Blue tooth مجهز شده، می توانند فایل ها را از یک سر میز کنفرانس، به سر دیگر انتقال دهند، و یا فایلی را به پرینتری که به Blue tooth مجهز شده بفرستند، بدون نصب هیچ درایوی. کیوسک های مجهز به Blue tooth در فرودگاه ها و Houses Coffee به مشا اجازه می دهند تا از طریق کامپیوتر[4] کیفی یا کامپیوتر قابل حمل خود به اینترنت متصل شوید.
Blue tooth به زودی یک وسیله استاندارد بر روی بسیاری از موبایل ها و کامپیوتر های قابل حمل خواهد بود. حتی صحبت از برقرار دادن Blue tooth در وسایل خانگی می باشد.
اما با تمام منفعت که در تئوری برای Blue tooth وجود دارد، واقعیت این است که در حال حاضر، آشفتگی در سخت افزار و نرم افزار سازگار وجود دارد، به دلیل اینکه Blue tooth و Wi-Fi ، هر دو از یک رنج فرکانسی استفاده می کنند، در پهنای باند آنها تداخل صورت می گیرد و عملکرد را تا 10%، با بیشتر کاهش می دهد.
با ورود این استانداردها به بازار، طی چند سال آینده، الفبای Wireless پیچیده تر خواهد شد. برای مثال 802.11g پهنای باند Wi- Fi را تا 54Mbps افزایش خواهد داد ( در عمل 22Mbps )، در همین حال 802.11I ، تعدادی از سوارخ های امنیتی را در پروتکل WEP خواهد بست Blue tooth جدید در فرکانس بالاتر عمل خواهد کرد، در نتیجه دو برابر پهنای باند فعلی اش بهره می دهد.
ساختما ن ها می توانند سیگنالهای Wireless شما را ببلعند، به همین دلیل اسکلت اداره یا منزلتان - مکان دیوارها، حالت تالار ( راهرو)، و درها - همه چیز را به حساب آورد - اگر شما نقشه کف اتاقتان را نادیده بگیرید به شبکه ای که در هر گوشه و کناری قابل دسترسی است، خاتمه می دهید.
خطر معمول در کلیه شبکه های بی سیم متصل از پروتکل و تکنولوژی مورد نظر، بر مزیت اصلی این تکنولوژی که همان پویایی ساختار، مبتنی بر استفاده از سیگنال های رادیویی به جای سیم و کابل، استوار است. با استفاده از این سیگنالها و در واقع بدون مرز ساختن پوشش ساختار شبکه، نفوذ گران قادرند در صورت شکستن موانع امنیتی نه چندان قدرت مند این شبکه ها، خود را به عنوان عضوی از این شبکه ها جا زده و در صورت تحقق این امر امکان دست یابی به اطلاعات حیاتی، حمله به سرویس دهندگان سازمان و مجموعه، تخریب اطلاعات، ایجاد اختلال در ارتباطات گره های شبکه با یکدیگر، تولید داده ذهای غیر واقعی و گرمراه کننده، سوء استفاده از پهنای باند موثر شبکه و دیگر فعالیتهای مخرب وجود دارد.
در مجموع، در تمامی دسته های شبکه های بی سیم، از دید امنیتی حقایقی مشترک صادق است:
فهرست مطالب
عنوان صفحه
بخش اول
1-1 شبکههای بی سیم، کاربردها، مزایا و ابعاد............................................. 2
2-1 اساس شبکههای بی سیم................................................................ 3
1-2-1 حکومت عالی Wi-Fi............................................................... 3
2-2-1 802.11a یک استاندارد نوپا...................................................... 4
3-2-1 Bluetooth- قطع کردن سیمها................................................... 4
4-2-1 پشتیبانی خصوصی: Bluetooth.................................................. 6
5-2-1 آنچه پیشرو داریم................................................................... 7
3-1 منشأ ضغف امنیتی در شبکههای بیسیم و خطرات معمول............................ 7
بخش دوم
شبکههای محلی بیسیم...................................................................... 10
1-2 پیشینه..................................................................................... 10
2-2 معماری شبکههای محلی بیسیم........................................................ 11
بخش سوم
عناصر فعال و سطح پوشش WLAN ...................................................... 14
1-3 عناصر فعال شبکههای محلی بیسیم.................................................... 14
1-1-3 ایستگاه بیسیم........................................................................ 14
2-1-3 نقطة دسترسی......................................................................... 14
3-1-3 برد و سطح پوشش................................................................... 14
3-1-3 برد و سطح پوشش................................................................... 14
بخش چهارم
امنیت در شبکههای محلی بر اساس استاندارد 802.11.................................... 18
1-4 قابلیتها و ابعاد امنیتی استاندارد 802.11............................................. 19
1-1-4 Authentication................................................................. 19
2-1-4 Confidentiality................................................................. 19
3-1-4 Intergrity.......................................................................... 20
بخش پنجم
سرویسهای امنیتی Wep Authentication............................................. 21
1-5 Authentication.................................................................... 21
1-1-5 Authentication بدون رمزنگاری.............................................. 22
2-1-5 Authentication با رمزنگاری RC4.......................................... 22
بخش ششم
سرویسهای امنیتی 802.11b-privacy و integrity................................... 24
1-6 privacy................................................................................ 24
2-6 integrity.............................................................................. 25
بخش هفتم
ضعفهای اولیه امنیتی WEP................................................................ 27
1-7 استفاده از کلیدهای ثابت WEP....................................................... 27
2-7 Initialization........................................................................ 28
3-7 ضعف در الگوریتم...................................................................... 28
4-7 استفاده از CRC رمز نشده............................................................. 28
بخش هشتم
خطرها، حملات و ملزومات امنیتی .......................................................... 30
بخش نهم
پیاده سازی شبکه بی سیم..................................................................... 33
1-9 دست به کار شوید....................................................................... 33
2-9 دندة درست را انتخاب کنید............................................................ 33
3-9 راهاندازی یک شبکه بیسیم............................................................ 34
4-9 دستورالعملها را بخوانید................................................................ 35
5-9 محافظت از شبکه........................................................................ 36
بخش دهم
برنامهنویسی سیستمهای بی سیم و موبایل (معرفی WAP) ................................ 39
1-10 WAP چیست؟ ....................................................................... 39
2-10 ایدة WAP ........................................................................... 40
3-10 معماری WAP ....................................................................... 40
4-10 مدل WAP ........................................................................... 41
5-10 Wap تا چه اندازهای امن است؟ ..................................................... 42
بخش یازدهم
مفاهیم امنیت شبکه .................................................................................. 43
1-11 منابع شبکه .................................................................................... 43
2-11 حمله ........................................................................................... 44
3-11 تحلیل و خطر ................................................................................. 45
4-11 سیاست امنیتی ................................................................................. 45
5-11 طرح امنیت شبکه ............................................................................. 47
6-11 نواحی امنیتی .................................................................................. 47
7-11 مرکزی برای امنیت شبکه .................................................................... 48
8-11 چرا service directory ................................................................. 49
9-11 اکتیو دایرکتوری چگونه کار می کند ...................................................... 51
10-11 مزایای اکتیو دایرکتوری ................................................................... 52
11-11 افزایش همکاری بین شبکه ها ............................................................. 53
بخش دوازدهم
1-12 کنترل دولتی .................................................................................. 55
2-12 کنترل سازمانی ............................................................................... 55
3-12 کنترل فردی .................................................................................. 55
4-12 تقویت اینترانت ها ........................................................................... 56
5-12 وجود یک نظام قانونمند اینترنتی ....................................................... 56
6-12 کار گسترده فرهنگی .................................................................... 56
7-12 فایروالها ................................................................................... 57
8-12 سیاستگذاری ملی در بستر جهانی ....................................................... 59
9-12 اینترنت و امنیت فرهنگی ایران .......................................................... 63
10-12 جمع بندی ............................................................................... 68
بخش سیزدهم
امنیت تجهیزات شبکه ........................................................................... 70
1-13 امنیت فیزیکی ............................................................................. 71
2-13 امنیت منطقی .............................................................................. 75
3-13 ملزومات و مشکلات امنیتی ارائه دهندگان خدمات .................................. 78
فهرست منابع ..................................................................................... 80
[1]- Wireless Ethernet compatibitity Alliance
[2]- Security radios
[3] - Personal area network
[4] - Laptop
دسته بندی | برنامه نویسی |
بازدید ها | 42 |
فرمت فایل | doc |
حجم فایل | 146 کیلو بایت |
تعداد صفحات فایل | 95 |
شرح زبان سی شارپ و قابلیت های تحت وب آن (دات نت)
مقدمه
C# یکی از زبانهای جدید برنامهسازی شیگرا است که با ارائة رهیافت Component-Based به طراحی و توسعه نرمافزار میپردازد. آنچه ما در حال حاضر از زبانهای برنامهسازی Component-Based در اختیار داریم و آنچه که C# در اختیار ما قرار میدهد، افق جدیدی به سوی تولید و طراحی نرمافزارهای پیشرفته را در روی ما قرار میدهند.
نرمافزار، به عنوان یک سرویس، هدف اصلی نسل بعدی در سیستمهای محاسباتی است. برای مثال، C# زبانی مناسب برای تولید و طراحی صفحات وب، ایجاد اجزایی با قابلیت استفاده مجدد و ایجاد محیطهایی چند رسانهای را به عنوان زبانی که هدفش توسعه ایجاد نرمافزارهای پیشرفته است، در اختیار ما قرار میدهد.
زبان برنامهسازی C#، به همراه تکنولوژی جدید شرکت نرمافزاری مایکروسافت یعنیNET. ارائه گردید، از این رو از تکنولوژیNET. این شرکت بهره میبرد. پس در ابتدا به بیان مطالبی درباره محیطNET. میپردازیم.
فصل اول:تکنولوژیNET.
چراNET.؟
در گذشته زبانهای برنامهسازی، سیستمهای عامل و محیطهای اجرایی نرمافزارها برای دورهای خاص ساخته میشدند. هنگامیکه برنامهها از محیطهای رومیزی(Desktop) به اینترنت منتقل میشدند، ابزارهای موجود نیازمند API هایی اضافی و قابلیتهای دیگری بودند. بیشتر این قابلیتها در کنار زبانهای برنامهسازی بعنوان ابزارهایی جهت رفع این نیازمندیها ارائه میشدند. هرچند این ابزارهای اضافی بصورت قابل توجهی نیازمندیها را حل کرده و باعث رسیدن اینترنت به وضعیت کنونی شدند، اما همچنان مسائل بسیاری وجود داشت که نیاز به حل شدن داشتند.
NET. به منظور پشتیبانی از کاربردهای عصر جدید اینترنت ساخته شد. مواردی همچون گسترش، امنیت و versioning، که از مسایل مهممی بودند، توسط NET. پوشش داده شدند. قسمت مرکزیNET. بخش CLR (Common Language Runtime) است که یک موتور اجرایی مجازی است که از توسعه، امنیت و ارتقای نسخه کد پشتیبانی مینماید. در گذشته چنین امکاناتی برای کدهای کامپایل شده فراهم نبود. بدلیل اینکهNET. توانست بر این مشکلات اساسی فائق آید، راه حل قدرتمندتری جهت ساخت برنامههای تحت اینترنت به شمار میرود.
NET. چیست؟
NET. محیطی جهت ساخت برنامههای توزیع شده است که شامل ابزارهایی نظیر ""کتابخانه کلاسهای پایه"(BCL: Base Class Library)، CLR و زبانهای برنامهنویسی است. این ابزارها امکان ساخت انواع مختلفی از نرمافزارها، از قبیل فرمهای ویندوز، ADONET.، ASPNET. و سرویسهای وب، را فراهم میآورند.
فرمهای ویندوز، مجموعهای از کتابخانهها جهت ساخت رابطهای کاربر گرافیکی برای برنامههای کاربردی است. این کتابخانهها اغلب API های Win32 را در خود دارا میباشند. همچنین امکان استفاده از رهیافت شیگرایی را جهت تولید آسان برنامههای تحت ویندوز، فراهم میآورند.
ADONET. مجموعهای از کلاسهای شیگرایی است که جهت ساخت مولفههای داده و سطوح دسترسی داده در برنامههای n-tiered مورد استفاده قرار میگیرد.
ASPNET. شامل مدل برنامهنویسی فرمهای وب است که بوسیلة آن برنامههای تحت وب ساخته شده و تحت اینترنت قابلیت اجرا پیدا کرده و از طریق مرورگر(Browser) قابل دسترسی میباشند. این روش مدل بهبود یافته برنامهسازی وب است که در آن کدها در سرور کامپایل میشوند ولی همانند صفحات HTML در کامپیوتر مشتری اجرا میشوند.
سرویسهای وب، رهیافتی جدید، مستقل از platform و استاندارد، جهت ایجاد ارتباط و فعالیت بین سیستمهای ناهمگون در اینترنت، میباشند. سرویسهای وبNET.، از زیر ساخت شیگرایی برنامهنویسی ASPNET. استفاده میکنند، اما همچنان از استانداردهای باز و مدلی بر پایة پیغام(Message Based Model) استفاده مینمایند. استفاده از استانداردهای باز از قبیل XML، WSDL و UDDI باعث میشوند تا سرویسهای وب با سایر سرویسهای وب استاندارد که پیادهسازیهایی متفاوت دارند، بدون توجه به محیط و platform آنها، ارتباط برقرار نمایند.
این چند نمونه، اندکی از انواع مختلف نرمافزارهایی بودند که میتوان تحتNET. به پیادهسازی آنها پرداخت.
کتابخانههای کلاسهای پایه(Base Class Library: BCL)
BCL درNET.، شامل هزاران نوع قابل استفاده، جهت افزایش بهرهوری در ساخت برنامههایNET. است. به علت گستردگی BCL یادگیری تمام کلاسهای آن وقتگیر بوده و امکان پذیر نمیباشد، به همین دلیل برای صرفهجویی در زمان بهتر است قبل از ایجاد یک نوع خاص به جستجوی نوعهای موجود در BCL بپردازیم. نگاهی کلی به BCL میتواند بسیار سودمند باشد. جدول زیر Namespace های مهم و توضیح نوعهای مختلف BCL را نمایش میدهد.
NET. Namespaces |
|
Namespace |
Description |
System |
The most commonly used types. |
System.CodeDom |
Allows creating types that automate working with source code, that is, compilers and code creation tools. |
System.Collections |
Collection types such as ArrayList, Hashtable, and Stack. |
System.ComponentModel |
Supports building reusable components. |
System.Configuration |
Types for working with various kinds of XML configuration files. |
System.Data |
Most of the types for ADONET. database programming. Other types are in namespaces that are specific to a database or data interface. |
System.Diagnostics |
Process, EventLog, and Performance Counter types. |
System.DirectoryServices |
Managed interface for accessing Windows Active Directory Services. |
System.Drawing |
GDI+ types. |
System.EnterpriseServices |
COM+ types. |
System.Globalization |
Types for culture-specific support of calendars, formatting, and languages. |
System.IO |
Directory, File, and Stream types. |
System.Management |
APIs for performing WMI tasks. |
System.Messaging |
Types for working with message queues. |
SystemNET. |
Access to networking protocol types. |
System.Reflection |
Reflection APIs for inspecting assembly metadata. |
System.Resources |
Types for culture-specific resource management. |
System.Runtime |
COM Interop, Remoting, and Serialization support. |
System.Security |
Code access security, role-based security, and cryptography types. |
System.ServiceProcess |
Types for building Windows Services. |
System.Text |
Text encoding/decoding, byte array from/to string translation, the StringBuilder class, and regular expressions. |
System.Timers |
Timer types. |
System.Threading |
Threads and synchronization types. |
System.Web |
HTTP Communications, ASPNET., and Web Services types. |
System.Windows |
Windows Forms types. |
System.XML |
All XML support types, including XML Schema, XmlTextReaders/XmlTextWriters, XPath, XML Serialization, and XSLT. |
جدول 1-1 Namespaceهای مهم و رایج
هر Namespace مجموعهای از کلاسهای از پیس ساخته شدةNET. است که میتوان از آنها در برنامههای مختلف استفاده نمود.
(Common Language Runtime)CLR
CLR یک موتور اجرایی است که با هدف اصلی اجرای هدایت شدة کدها درNET. ایجاد گردیده است. CLR به مدیریت اجرا، ارتقای نسخه و امنیت تمامی کدها درNET. میپردازد. به همین دلیل کدهایNET. یا C# اغلب تحت عنوان کدهای مدیریت شده، شناخته میشوند.(Managed Code) تمامی کدهایی که به CLR مرتبت هستند، تحت عنوان "مدیریت شده" و کدهایی توسط CLR مدیریت نشدهاند، بلکه مستقیماً به کد ماشین تبدیل میشوند، تحت عنوان "مدیریت نشده" بیان میشوند.
کدهای مدیریت شده، به کد ماشین کامپایل نمیشوند، بلکه به زبان سطح میانی مایکروسافت(MSIL) کامپایل شده و مورد استفاده قرار میگیرند. این زبان سطح میانی را میتوان زبانی شبیه به زبان اسمبلی تصور کرد. IL در حافظه بارگذاری میشود و بلافاصله بوسیلة CLR در حافظه به کد ماشین کامپایل میگردد.
برنامههایNET. از اسمبلیهایی تشکیل شدهاند که اجزای خودکار منطقی توسعه، شناسایی و امنیت به حساب میآیند و تفاوت آنها با روشهای قدیمی در آن است که اسمبلی میتواند شامل یک یا چندین فایل باشد. اسمبلیNET. به صورت یک فایل اجرایی تک یا یک فایل کتابخانهای است، اما ممکن است حاوی ماژولها، که کدهایی غیر اجرایی بوده و قابلیت استفادة مجدد را دارند، نیز باشد.
مسئلة مهم دیگر در مورد CLR، نحوة بارگذاری(Load) و اجرای برنامه توسط آن است. به محض اینکه برنامةNET. شروع به اجرا میکند، ویندوز اسمبلیNET. راتشخیص داده و CLR را اجرا میکند. سپس CLR نقطه شروع برنامه را شناسایی و پروسة تعیین انواع که در آن، محل قرارگیری انواع مختلف بکار رفته در برنامه مشخص میشود را، اجرا میکند. اسمبلی شناسایی شده در پروسة Loader بارگذاری میگردد.
دسته بندی | کامپیوتر و IT |
بازدید ها | 31 |
فرمت فایل | doc |
حجم فایل | 458 کیلو بایت |
تعداد صفحات فایل | 68 |
بهینهسازی و پردازش پرس و جو
در این تحقیق ما به تکنیکهای بکار رفته توسط DMBS برای پردازش، بهینهسازی و اجرای پرس و جوهای سطح بالا میپردازیم. پرس و جوی بیان شده در زبان پرسو جوی سطح بالا مثل SQL ابتدا باید پویش و تجزیه . معتبر شود. پویشگر (اسکنر) علامت هر زبان، مثل لغات کلیدی SQL، اساس ویژگی، و اساس رابطه، را در متن پرس و جو شناسایی میکند، در عوض تجربه کننده، ساختار دستوری پرس و جو را برای تعیین اینکه آیا بر طبق قوانین دستوری زبان پرس و جو تدوین میشود یا خیر، چک میکند. پرس و جو باید همچنین معتبر شود، با چک کردن اینکه تمام اسامی رابطه و ویژگی معتبر هستند و اسامی معنیدار در طرح پایگاه اطلاعاتی ویژهای پرس و جو میشوند. نمونه داخلی پرس و جو ایجاد میشود، که تحت عنوان ساختار دادههای درختی بنام درخت پرس و جو میباشد. ارائه پرس و جو با استفاده از ساختار دادههای گراف بنام گراف پرس و جو نیز امکان پذیر است. DOMS باید استراتژی اجرایی برای بازیابی نتیجه پرس و جو از فایلهای پایگاه اطلاعاتی را هدایت کند. پرس و جو استراتژیهای اجرایی بسیاری دارد. و مرحلة انتخاب، مورد مناسبی برای پردازش پرس وجو تحت عنوان بهینهسازی پرس و جو شناخته شده است. تصویر 1، مراحل مختلف پردازش پرس و جوی سطح بالا را نشان میدهد. قطعه بر نامه بهینهساز پرس وجو، وظیفه ایجاد طرح اجرایی را بعهده دارد و ژنراتور (تولید کننده) که ، کد را برای اجرای آن طرح ایجاد میکند. پردازنده پایگاه اطلاعاتی زمان اجرا وظیفه اجرای که پرس و جو را بعهده دارد، خواه در وضعیت کامپایل شده یا تفسیر شده جهت ایجاد نتیجه پرس و جو. اگر خطای زمان اجرا نتیجه شود، پیام خطا توسط پایگاه اطلاعاتی زمان اجرا ایجاد میشود.
اصطلاح بهینهسازی نام بی مسمایی است چون در بعضی موارد، طرح اجرایی انتخاب شده، استراتژی بهینه نمیباشد، آن فقط استراتژی کارآمد معقول برای اجرای پرس و جو است. یافتن استراتژی بهینه، ضامن صرف زمان زیادی است، بجز برای سادهترین پرس و جوها، ممکن است به اطلاعاتی روی چگونگی اجرای فایلها در فهرستهای فایلها، اطلاعاتی که ممکن است کاملاً در کاتالوگ DBMS در دسترس نباشد، نیاز باشد. از اینرو، برنامهریزی استراتژی اجرا ممکن است توصیف درستتری نسبت به بهینهسازی پرس و جو باشد. برای زبانهای پایگاه اطلاعاتی (دریایی) جهتیابی در سطح پایینتر در سیستمهای قانونی، مثل شبکه DML شبکهای یا MOML سلسله مراتبی، برنامه نویس باید، استراتی اجرای پذیرش و جو را انتخاب کند ضمن اینکه برنامه پایگاه اطلاعاتی را مینویسد. اگر DBMS فقط زیان جهتیابی را ارائه دهد. فرصت و نیاز محدودی برای بهینهسازی پرس وجوی وسیع توسط DBMS وجود دارد، در عوض به برنامه نویس قابلیت انتخاب استراتژی اجرایی بهینه ارائه میشود. بعبارت دیگر، زبان پرس و جو در سطح بالا، مثل SQL برای DBMSهای رابطهای یا OQL برای DBMSهای مقصد، در ماهیت تفریطیتر است. چون آنچه نتایج مورد نظر پرس و جو است بغیر از شناسایی جزئیات چگونگی بدست آمدن نتیجه، را تعیین میکند. بهینهسازی پرس و جو برای پرس و جوهایی ضروی است که در زبان پرس و جوی سطح بالا تعیین می شوند. ما روی توصیف بهینهسازی پرس و جو در زمینه ROBMS تمرکز میکنیم چون بسیاری از تکنیکهایی که توصیف می کنیم برای، برای ODBMSها تطبیق یافتهاند. DBMS رابطهای باید استراتژیهای اجرای پرس و جوی دیگری را ارزیابی کند و استراتژی بهینه یا کارآمد معقولی را انتخاب کند. هر DBMS ، تعدادی الگاریتم دسترسی به پایگاه اطلاعاتی کلی دارد که علامتهای رابطهای مثل SELECT یا JOIN یا ترکیبی از این عملیات ها را اجرا میکند. تنها استراتژیهای اجرایی که میتوانند توسط الگاریتمهای دسترسی DBMS اجرا شوند و برای طراحی پایگاه اطلاعاتی فیزیکی ویژه و پرس و جوی خاص بکار روند، میتوانند توسط قطعه برنامه بهینهسازی پرس و جو در نظر گرفته شوند. ما با بحث کلی چگونگی ترجمه پرس و جوهای SQL به پرس و جوهای جبری رابطهای و در بهینهشدن آنها کار را شروع میکنیم. بعد ما روی الگاریتمها برای اجرای عملیاتهای رابطهای در بخش 1802 بحث میکنیم. بدنبال این مطلب، بررسی از استراتژیهای بهینهسازی پرس و جو را ارائه میدهیم. دو تکنیک اصلی برای اجرای بهینهسازی پرس و جو وجود دارد. اولین تکنیک بر اساس قوانین ذهنی جهت ترتیب دادن عملیاتها در استراتژی اجرای پرس و جو میباشد. ذهن قانونی است که بخوبی در اکثر موارد عمل میکند ولی برای کار مناسب در هر مورد کنش تضمین نمیشود. قوانین عملیاتها را در درخت پرس وجو مجدداً ترتیب میدهند. دومین تکنیک شامل برآورد هزینه استراتژیهای اجرای متفاوت و انتخاب طرح اجرایی با پایینترین هزینه برآورد است. دو تکنیک معمولاً در بهینه ساز پرس و جو (باهم ترکیب میشوند) بهم ملحق میگردند. بررسی مختصری از عوامل در نظر گرفته شده در طول بهینهسازی پرس و جو در RDBMS بازرگانی ORACLL= را ارائه میدهیم. در بخش بعدی نوعی بهینهسازی پرس و جوی معنایی را ارائه میدهد که در آن محدودیتهای شناخته شده برای پرداختن به استراتژیهای اجرایی پرس و جوی کارآمد استفاده میشوند. 2 – ترجمه پرس و جوهای SQL به پرس و جوهای رابطهای: در عمل، SQL زبان پرس وجویی است که در اکثر RDBMS های بازرگانی استفاده میشود. پرس وجوی SQL ، ابتدا به عبارت جبری رابطهای توسعه یافته معادل، نمایانگر ساختار داروهای درخت پرس و جو، ترجمه میشود و بعد بهینهسازی میشود. پرس و جوهای SQL به بلوکهای پرس و جو تجزیه میشوند، که واحدهای اساسی را تشکیل میدهند که میتوانند به عملکردهای جبری ترجمه شوند و بهینهسازی شوند. بلوک پرس و جو شامل عبارت SELECT- FROM-WHERE تکی و بندهای Groop By و HAVING است چنانچه اینها بخشی از بلوک باشند. از اینرو، پرس و جوهای تو در تو در پرس و جو بعنوان بلوکهای پرس و جوی مجزا شناسایی میشوند. چون SQL شامل عملکردهای گروهی، مثل MAX ، COUNT,SUM میباشد، این عملگرها باید در پرس و جوی جبری توسعه یافتهای شامل شوند، همانطوریکه در بخش 705 توصیف شد. پرس و جوی SQL در رابطه EMPLOEE در تصویر 705 را در نظر بگیرید: این پرس و جو شامل، پرس و جوی فرعی تو در تو است و از اینرو به دو بلوک تجزیه میشود. بلوک درونی بدین صورت است: و بلوک بیرونی بدین صورت می باشد: که C نمایانگر نتیجه حاصله از بلوک درونی است. بلوک درونی به عبارت جبری رابطهای توسعه یافته زیر ترجمه شده است: و بلوک بیرونی به عبارت زیر ترجمه شده است: بهینهساز پرس و جو، طرح اجرایی را برای هر بلوک انتخاب میکند. ما باید اشاره کنیم به در مثال فوق، بلوک درونی نیاز به ارزیابی شدن دارد تنها زمانی که، حداکثرحقوقی که بعکار میرود که بعنوان ثابت C، توسط بلوک بیرونی استفاده میشود. ما اینرو پرس و جوی تودرتوی غیرمرتبط نامیدیم (در فصل 8). آن برای بهینهسازی پرس و جوهای تو در توی مرتبط پیچیدهتر، خیلی سختتر است، جایی که متغیر Tuple از بلوک بیرونی در بند WHERE در بلوک درونی ظاهر میشود. 1802- الگاریتم های انسانی برای اجرای عملیاتهای پرس و جو: RDBMS شامل الگاریتمهایی برای اجرای انواع مختلف عملیاتهای رابطهای است که میتوانند در استراتژی اجرای پرس و جو نمایان شوند، این عملیاتها شامل عملیاتهای جبری بیسیک (اصلی) و توسعه یافته مورد بحث در فصل 7 ، و در بسیاری موارد، الحاقاتی از این عملیاتها میباشد. برای هر یک از این عملیات ها یا الحاقی از عملیاتها، یک یا چند الگاریتم برای اجرای عملیاتها در دسترس قرار دارند. الگاریتم ممکن است فقط برای ساختارهای ذخیره خاص مسیرهای دستیابی بکار روند، در اینصورت ، تنها در صورتی استفاده میشود که فایل های موجود در عملیات شامل این مسیرهای دستیابی هستند. در این بخش، ما به الگاریتمهای نمونه بکار رفته برای اجرای SEKECT ، JOIN و دیگر عملیاتهای رابطهای میپردازیم. ما بحث مرتب کردن خارجی را در بخش 180201 آغاز میکنیم که در قلب عملیاتهای رابطهای قرار دارد که از استراتژیهای ادغام کردن به مرتب کردن استفاده میکند. بعد ما به الگاریتمهایی برای اجرای عملیات SELECT در بخش 180202 میپردازیم، به عملیات JOIN در بخش 180203 و عملیات PRIJECT و عملیاتهای مجموعه در بخش IE 1802 و عملیاتهای گروهی و جمعی در بخش 2 .2 . 18 میپردازیم. 1. 2. 18- مرتب کردن خارجی: مرتب کردن، یکی از الگاریتمهای اولیه بکار رفته در پردازش پرس و جو است. برای مثال، به هر وقت پرس و جوی SQL ، بعد ORDER BY را تعیین میکند، نتیجه پرس و جو باید مرتب گردد. مرتب کردن، مؤلفه کلیدی در الگاریتمهای مرتب کردن- ادغام کردن (مرتب-ادغام) بکار رفته برای Join و عملیاتهای دیگر، دور الگاریتمهای حذف کپی برای عملیات PROYECT است. ما روی بعضی از این الگاریتمها در بخش 3. 2. 18 و 4. 02 18 بحث خواهیم کرد. توجه کنید که مرتب کردن در صورتی که اجتناب میشود که شاخص مناسب برای امکان دسترسی مرتب شده به ثبتها وجود دارد. مرتب کردن خارجی به الگاریتمهای مرتب کردن اشاره میکند که برای فایل های بزرگ ثبت های ذخیره شده روی دیسک مناسب هستند که در حافظه اصلی، مثل اکثر فایل های پایگاه اطلاعاتی تناسب نمییابد. الگاریتم مرتب کردن خارجی نمونه از استراتژی مرتب- ادغام استفاده میکند، که با مرتب کردن- فایلهای فرعی کوچک بنام اجراها در فایل اصلی شروع میشود و بعد اجراها مرتب شده ادغام میشوند، فایلهای فرعی مرتب شده بزرگتری ایجاد میشوند که بترتیب ادغام میشوند. الگاریتم ادغام –مرتب، مثل دیگر الگاریتم های پایگاه اطلاعاتی به فاضی بافر در حافظه اصلی نیاز دارد، جایی که مرتب کردن واقعی و ادغام اجراها انجام می شود. الگاریتم اصلی (سیبک) شرح داده شده در تصویر 1802 ، شامل دو مرحله است: (1) فاز یا مرحله مرتب کردن و (2) مرحله ادغام.در مرحله مرتب کردن، اجراهای فایلی که میتواند در فضای باز موجود تناسب یابد در حافظه اصلی خوانده میشوند و با استفاده از الگاریتم مرتب کردن داخلی مرتب میشود عقب دیسک بعنوان فایلهای فرعی مرتب شده متوفی نوشته میشود. اندازه اجرا و تعداد اجراهای آغازین توسط تعداد بلوکهای فایل (b) و فضای بافر موجود (NB) بیان میشود. برای مثال اگر بلوکو اندازه قایل 1024=b بلوک باشد، بعد یا 205 اجرای آغازین در هر اندازه 5 بلوک است. از اینرو، بعد از مرحله مرتب کردن، 205 اجرای مرتب شده بعنوان فایلهای فرعی موقتی روی دیسک ذخیره میشوند. اجرای مرتب شده بعنوان فایلهای فرعی موقتی و روی دیسک ذخیره میشوند. در مرحله ادغام شدن، اجراهای مرتب شده، در طول یک یا چند گذر ادغام میشوند. درجه ادغام شدن تعداد اجراهایی است که میتوانند با همدیگر در هر گذر ادغام شوند. در هر گذر، یک بلوک بافر، برای حفظ یک بلوک از هر اجرای ادغام شده نیاز میباشد، و یک بلوک برای تشکیل یک بلوک نتیجه ادغام لازم است . از اینرو، کوچکتر از و است و تعداد گذرها، است. در مثالها، است. لذا، 205 اجرای مرتب شده آغازین در 25 تا در پایان اولیه گذر ادغام میشود: که بعد به 12، بعد 4 بعد یک اجرا ادغام میشوند، که بدین معنی است که چهارگذر لازم میباشد. حداقل از 2، عملکرد بدترین مورد الگاریتم را ارائه میدهد که بدین قرار است: اولین جمله، تعداد دسترسیهای بلوک برای مرحله مرتب سازی را نشان میدهد، چون هر بلوک فایل دو برابر دسترسی میشود، یکبار برای خواندن در حافظه، یکبار برای نوشتن ثبتها دیسک بعد از مرتب کردن. دومین جمله، تعداد دسترسیهای بلوک برای مرحله ادغام کردن را نشان میدهد، با فرض اینکه بدترین مورد از 2 وجود دارد. بطور کلی، ثبت وقایع در مبنای و عبارت برای تعداد دسترسیهای بلوک نوین قرار میشود: تصویر 1802- شرح الگاریتم ادغام – مرتب کردن برای مرتب کردن خارجی: 2. 2. 18- اجرا و پیادهسازی عملیات SELECT : تعداد Optionهایی ( انتخابها) برای اجرای عملیات SELECT وجود دارد، که بعضی به فایل دارای مسیرهای دستیابی خاص بستگی دارند و تنها برای انواع معین شرایط انتخاب بکار میرود. ما به الگاریتمهایی جهت اجرای SELECT در این بخش میپردازیم. ما از عملیاتهای زیر استفاده میکنیم که روی پایگاه اطلاعاتی رابطهای در تصویر 507 مشخص شده و بحث ما را روشن میسازد: متدهای جستجو برای انتخاب ساده: تعدادی الگاریتم های جستجو برای انتخاب ثبتها از فایل امکانپذیر میباشند، چون ثبتهای فایل نامیده می شوند، چون ثبتهای فایل را برای جستجو و بازیابی ثبتهایی که شرایط انتخاب را برآورده میسازند، پویش میکنند. اگر الگاریتم جستجو شامل کاربرد شاخص باشد، جستحوی شاخص پویش شاخص نامیده میشد. متدهای جستجوی زیر ( 1S تا s6 ) مثالهایی از الگاریتمهای جستجو هستند که میتوانند برای اجرای عملیات انتخاب بکار روند: - s1 : جستجوی خطی (روش برنامهسازی پر قدرت): بازیابی هر ثبت در فایل، و تست اینکه آیا مقادیر ویژگی آن، شرط انتخاب را براورده میسازد یا خیر. - S2: جستجوی بنیادی (دودویی): اگر شرط انخاب شامل قیاس تساوی روی ویژگی کلیدی باشد که روی آن فایل مرتب میشود، جستجوی بنیادی، که نسبت به جستجوی خطی کارآمدتر است، میتواند بکار رود. مثال OP1 است چنانچه ssn ، ویژگی کلیدی با شاخص اولیه( یا کلید hash) باشد، برای مثال، SNN-‘123456789’ در opt، شاخص اولیه یا کلید hosh) برای بازیابی ثبت استفاده میشود، توجه کنید که این شرط، ثبت تکی را بازیابی میکند. - S4: کاربرد شاخص اولیه برای بازیابی ثبتهای متعدد: اگر شرط انتخاب شدن قیاس تساوی روی ویژگی غیر کلیدی با شاخص خدشهسازی باشد، برای مثال در ، شاخص را برای بازیابی کل ثبتها در برآورده ساختن شرط، استفاده کنید. - S6: بکارگیری شاخص ثانویه (درخت ) روی قیاس تساوی: این متد جستجو میتواند برای بازیابی ثبت تکی بکار رود چنانچه فیلد نمایهسازی (شاخصسازی) کلید باشد یا برای بازیابی ثبتهای متعدد بکار میرود چنانچه فیلد شاخصسازی کلید نباشد، این میتواند برای مقایساتی شامل یا بکار رود. در بخش 3. 4. 18، ما به چگونگی توسعه فرمولهایی میپردازیم که هزینهدستیابی این متدهای جستجو را در اصطلاحات تعداد دستیابیهای بلوک و زمان دستیابی برآورد میکند. Method S!برای هر فایلی استفاده میشود ولی تمام متدهای دیگر به داشتن مسیر دستیابی مناسب روی ویژگیبکار رفته در شرط انتخاب بستگی دارند. متدهای S4 و 6، میتوانند برای بازیابی ثبتها در دامنه معین بکار روند برای مثال پرس و جوها شامل این شرطها، پرس وجوهای دامنه نیامد به میشوند.متدهای جستجو برای انتخاب پیچیده: اگر شرط عملیات SELECT، شرط تقارنی و مرتبط باشد، در اینصورت اگر از چندین شرط ساده در ارتباط با ارتباط منطقی and مثل op4 فوق تشکیل شود، DBM میتواند از متدهای اضافی زیر برای اجرای عملیات استفاده کند: S7: انتخاب تقارنی یا ارتباطی با استفاده از شاخص اختصاص: اگر ویژگی شامل شده در هر شرط ساده متکی در شرط تقارنی، مسیر دستیابی داشته باشد که به کاربرد یکی از متدهای S2 تا S6 امکان عمل دهد، از آن شرط برای بازیابی ثبتهای استفاده کنید و بعد کنترل کنید آیا هر ثبت بازیابی شد، شرایط ساده باقیمانده در شرط تقارنی را برآورده میکند یا خیر. S8 : انتخاب تقارنی (ارتباطی) با استفاده از شاخص مرکب: اگر دو یا چند ویژگی در شرایط تساوی در شرط تفاوتی شامل شدند و شاخص مرکب در فیلدهای مرکب وجود داشته باشد، برای مثال اگر شاخص روی کلید مرکب (ESSN, PNO) در فایل Works ON برای OPS ایجاد شده باشد، می توان از شاخص مستقیماً اشاره کرد.
در این تحقیق ما به تکنیکهای بکار رفته توسط DMBS برای پردازش، بهینهسازی و اجرای پرس و جوهای سطح بالا میپردازیم. پرس و جوی بیان شده در زبان پرسو جوی سطح بالا مثل SQL ابتدا باید پویش و تجزیه . معتبر شود. پویشگر (اسکنر) علامت هر زبان، مثل لغات کلیدی SQL، اساس ویژگی، و اساس رابطه، را در متن پرس و جو شناسایی میکند، در عوض تجربه کننده، ساختار دستوری پرس و جو را برای تعیین اینکه آیا بر طبق قوانین دستوری زبان پرس و جو تدوین میشود یا خیر، چک میکند. پرس و جو باید همچنین معتبر شود، با چک کردن اینکه تمام اسامی رابطه و ویژگی معتبر هستند و اسامی معنیدار در طرح پایگاه اطلاعاتی ویژهای پرس و جو میشوند. نمونه داخلی پرس و جو ایجاد میشود، که تحت عنوان ساختار دادههای درختی بنام درخت پرس و جو میباشد. ارائه پرس و جو با استفاده از ساختار دادههای گراف بنام گراف پرس و جو نیز امکان پذیر است. DOMS باید استراتژی اجرایی برای بازیابی نتیجه پرس و جو از فایلهای پایگاه اطلاعاتی را هدایت کند. پرس و جو استراتژیهای اجرایی بسیاری دارد. و مرحلة انتخاب، مورد مناسبی برای پردازش پرس وجو تحت عنوان بهینهسازی پرس و جو شناخته شده است. تصویر 1، مراحل مختلف پردازش پرس و جوی سطح بالا را نشان میدهد. قطعه بر نامه بهینهساز پرس وجو، وظیفه ایجاد طرح اجرایی را بعهده دارد و ژنراتور (تولید کننده) که ، کد را برای اجرای آن طرح ایجاد میکند. پردازنده پایگاه اطلاعاتی زمان اجرا وظیفه اجرای که پرس و جو را بعهده دارد، خواه در وضعیت کامپایل شده یا تفسیر شده جهت ایجاد نتیجه پرس و جو. اگر خطای زمان اجرا نتیجه شود، پیام خطا توسط پایگاه اطلاعاتی زمان اجرا ایجاد میشود. اصطلاح بهینهسازی نام بی مسمایی است چون در بعضی موارد، طرح اجرایی انتخاب شده، استراتژی بهینه نمیباشد، آن فقط استراتژی کارآمد معقول برای اجرای پرس و جو است. یافتن استراتژی بهینه، ضامن صرف زمان زیادی است، بجز برای سادهترین پرس و جوها، ممکن است به اطلاعاتی روی چگونگی اجرای فایلها در فهرستهای فایلها، اطلاعاتی که ممکن است کاملاً در کاتالوگ DBMS در دسترس نباشد، نیاز باشد. از اینرو، برنامهریزی استراتژی اجرا ممکن است توصیف درستتری نسبت به بهینهسازی پرس و جو باشد. برای زبانهای پایگاه اطلاعاتی (دریایی) جهتیابی در سطح پایینتر در سیستمهای قانونی، مثل شبکه DML شبکهای یا MOML سلسله مراتبی، برنامه نویس باید، استراتی اجرای پذیرش و جو را انتخاب کند ضمن اینکه برنامه پایگاه اطلاعاتی را مینویسد. اگر DBMS فقط زیان جهتیابی را ارائه دهد. فرصت و نیاز محدودی برای بهینهسازی پرس وجوی وسیع توسط DBMS وجود دارد، در عوض به برنامه نویس قابلیت انتخاب استراتژی اجرایی بهینه ارائه میشود. بعبارت دیگر، زبان پرس و جو در سطح بالا، مثل SQL برای DBMSهای رابطهای یا OQL برای DBMSهای مقصد، در ماهیت تفریطیتر است. چون آنچه نتایج مورد نظر پرس و جو است بغیر از شناسایی جزئیات چگونگی بدست آمدن نتیجه، را تعیین میکند. بهینهسازی پرس و جو برای پرس و جوهایی ضروی است که در زبان پرس و جوی سطح بالا تعیین می شوند. ما روی توصیف بهینهسازی پرس و جو در زمینه ROBMS تمرکز میکنیم چون بسیاری از تکنیکهایی که توصیف می کنیم برای، برای ODBMSها تطبیق یافتهاند. DBMS رابطهای باید استراتژیهای اجرای پرس و جوی دیگری را ارزیابی کند و استراتژی بهینه یا کارآمد معقولی را انتخاب کند. هر DBMS ، تعدادی الگاریتم دسترسی به پایگاه اطلاعاتی کلی دارد که علامتهای رابطهای مثل SELECT یا JOIN یا ترکیبی از این عملیات ها را اجرا میکند. تنها استراتژیهای اجرایی که میتوانند توسط الگاریتمهای دسترسی DBMS اجرا شوند و برای طراحی پایگاه اطلاعاتی فیزیکی ویژه و پرس و جوی خاص بکار روند، میتوانند توسط قطعه برنامه بهینهسازی پرس و جو در نظر گرفته شوند. ما با بحث کلی چگونگی ترجمه پرس و جوهای SQL به پرس و جوهای جبری رابطهای و در بهینهشدن آنها کار را شروع میکنیم. بعد ما روی الگاریتمها برای اجرای عملیاتهای رابطهای در بخش 1802 بحث میکنیم. بدنبال این مطلب، بررسی از استراتژیهای بهینهسازی پرس و جو را ارائه میدهیم. دو تکنیک اصلی برای اجرای بهینهسازی پرس و جو وجود دارد. اولین تکنیک بر اساس قوانین ذهنی جهت ترتیب دادن عملیاتها در استراتژی اجرای پرس و جو میباشد. ذهن قانونی است که بخوبی در اکثر موارد عمل میکند ولی برای کار مناسب در هر مورد کنش تضمین نمیشود. قوانین عملیاتها را در درخت پرس وجو مجدداً ترتیب میدهند. دومین تکنیک شامل برآورد هزینه استراتژیهای اجرای متفاوت و انتخاب طرح اجرایی با پایینترین هزینه برآورد است. دو تکنیک معمولاً در بهینه ساز پرس و جو (باهم ترکیب میشوند) بهم ملحق میگردند. بررسی مختصری از عوامل در نظر گرفته شده در طول بهینهسازی پرس و جو در RDBMS بازرگانی ORACLL= را ارائه میدهیم. در بخش بعدی نوعی بهینهسازی پرس و جوی معنایی را ارائه میدهد که در آن محدودیتهای شناخته شده برای پرداختن به استراتژیهای اجرایی پرس و جوی کارآمد استفاده میشوند. 2 – ترجمه پرس و جوهای SQL به پرس و جوهای رابطهای: در عمل، SQL زبان پرس وجویی است که در اکثر RDBMS های بازرگانی استفاده میشود. پرس وجوی SQL ، ابتدا به عبارت جبری رابطهای توسعه یافته معادل، نمایانگر ساختار داروهای درخت پرس و جو، ترجمه میشود و بعد بهینهسازی میشود. پرس و جوهای SQL به بلوکهای پرس و جو تجزیه میشوند، که واحدهای اساسی را تشکیل میدهند که میتوانند به عملکردهای جبری ترجمه شوند و بهینهسازی شوند. بلوک پرس و جو شامل عبارت SELECT- FROM-WHERE تکی و بندهای Groop By و HAVING است چنانچه اینها بخشی از بلوک باشند. از اینرو، پرس و جوهای تو در تو در پرس و جو بعنوان بلوکهای پرس و جوی مجزا شناسایی میشوند. چون SQL شامل عملکردهای گروهی، مثل MAX ، COUNT,SUM میباشد، این عملگرها باید در پرس و جوی جبری توسعه یافتهای شامل شوند، همانطوریکه در بخش 705 توصیف شد. پرس و جوی SQL در رابطه EMPLOEE در تصویر 705 را در نظر بگیرید: این پرس و جو شامل، پرس و جوی فرعی تو در تو است و از اینرو به دو بلوک تجزیه میشود. بلوک درونی بدین صورت است: و بلوک بیرونی بدین صورت می باشد: که C نمایانگر نتیجه حاصله از بلوک درونی است. بلوک درونی به عبارت جبری رابطهای توسعه یافته زیر ترجمه شده است: و بلوک بیرونی به عبارت زیر ترجمه شده است: بهینهساز پرس و جو، طرح اجرایی را برای هر بلوک انتخاب میکند. ما باید اشاره کنیم به در مثال فوق، بلوک درونی نیاز به ارزیابی شدن دارد تنها زمانی که، حداکثرحقوقی که بعکار میرود که بعنوان ثابت C، توسط بلوک بیرونی استفاده میشود. ما اینرو پرس و جوی تودرتوی غیرمرتبط نامیدیم (در فصل 8). آن برای بهینهسازی پرس و جوهای تو در توی مرتبط پیچیدهتر، خیلی سختتر است، جایی که متغیر Tuple از بلوک بیرونی در بند WHERE در بلوک درونی ظاهر میشود. 1802- الگاریتم های انسانی برای اجرای عملیاتهای پرس و جو: RDBMS شامل الگاریتمهایی برای اجرای انواع مختلف عملیاتهای رابطهای است که میتوانند در استراتژی اجرای پرس و جو نمایان شوند، این عملیاتها شامل عملیاتهای جبری بیسیک (اصلی) و توسعه یافته مورد بحث در فصل 7 ، و در بسیاری موارد، الحاقاتی از این عملیاتها میباشد. برای هر یک از این عملیات ها یا الحاقی از عملیاتها، یک یا چند الگاریتم برای اجرای عملیاتها در دسترس قرار دارند. الگاریتم ممکن است فقط برای ساختارهای ذخیره خاص مسیرهای دستیابی بکار روند، در اینصورت ، تنها در صورتی استفاده میشود که فایل های موجود در عملیات شامل این مسیرهای دستیابی هستند. در این بخش، ما به الگاریتمهای نمونه بکار رفته برای اجرای SEKECT ، JOIN و دیگر عملیاتهای رابطهای میپردازیم. ما بحث مرتب کردن خارجی را در بخش 180201 آغاز میکنیم که در قلب عملیاتهای رابطهای قرار دارد که از استراتژیهای ادغام کردن به مرتب کردن استفاده میکند. بعد ما به الگاریتمهایی برای اجرای عملیات SELECT در بخش 180202 میپردازیم، به عملیات JOIN در بخش 180203 و عملیات PRIJECT و عملیاتهای مجموعه در بخش IE 1802 و عملیاتهای گروهی و جمعی در بخش 2 .2 . 18 میپردازیم. 1. 2. 18- مرتب کردن خارجی: مرتب کردن، یکی از الگاریتمهای اولیه بکار رفته در پردازش پرس و جو است. برای مثال، به هر وقت پرس و جوی SQL ، بعد ORDER BY را تعیین میکند، نتیجه پرس و جو باید مرتب گردد. مرتب کردن، مؤلفه کلیدی در الگاریتمهای مرتب کردن- ادغام کردن (مرتب-ادغام) بکار رفته برای Join و عملیاتهای دیگر، دور الگاریتمهای حذف کپی برای عملیات PROYECT است. ما روی بعضی از این الگاریتمها در بخش 3. 2. 18 و 4. 02 18 بحث خواهیم کرد. توجه کنید که مرتب کردن در صورتی که اجتناب میشود که شاخص مناسب برای امکان دسترسی مرتب شده به ثبتها وجود دارد. مرتب کردن خارجی به الگاریتمهای مرتب کردن اشاره میکند که برای فایل های بزرگ ثبت های ذخیره شده روی دیسک مناسب هستند که در حافظه اصلی، مثل اکثر فایل های پایگاه اطلاعاتی تناسب نمییابد. الگاریتم مرتب کردن خارجی نمونه از استراتژی مرتب- ادغام استفاده میکند، که با مرتب کردن- فایلهای فرعی کوچک بنام اجراها در فایل اصلی شروع میشود و بعد اجراها مرتب شده ادغام میشوند، فایلهای فرعی مرتب شده بزرگتری ایجاد میشوند که بترتیب ادغام میشوند. الگاریتم ادغام –مرتب، مثل دیگر الگاریتم های پایگاه اطلاعاتی به فاضی بافر در حافظه اصلی نیاز دارد، جایی که مرتب کردن واقعی و ادغام اجراها انجام می شود. الگاریتم اصلی (سیبک) شرح داده شده در تصویر 1802 ، شامل دو مرحله است: (1) فاز یا مرحله مرتب کردن و (2) مرحله ادغام.در مرحله مرتب کردن، اجراهای فایلی که میتواند در فضای باز موجود تناسب یابد در حافظه اصلی خوانده میشوند و با استفاده از الگاریتم مرتب کردن داخلی مرتب میشود عقب دیسک بعنوان فایلهای فرعی مرتب شده متوفی نوشته میشود. اندازه اجرا و تعداد اجراهای آغازین توسط تعداد بلوکهای فایل (b) و فضای بافر موجود (NB) بیان میشود. برای مثال اگر بلوکو اندازه قایل 1024=b بلوک باشد، بعد یا 205 اجرای آغازین در هر اندازه 5 بلوک است. از اینرو، بعد از مرحله مرتب کردن، 205 اجرای مرتب شده بعنوان فایلهای فرعی موقتی روی دیسک ذخیره میشوند. اجرای مرتب شده بعنوان فایلهای فرعی موقتی و روی دیسک ذخیره میشوند. در مرحله ادغام شدن، اجراهای مرتب شده، در طول یک یا چند گذر ادغام میشوند. درجه ادغام شدن تعداد اجراهایی است که میتوانند با همدیگر در هر گذر ادغام شوند. در هر گذر، یک بلوک بافر، برای حفظ یک بلوک از هر اجرای ادغام شده نیاز میباشد، و یک بلوک برای تشکیل یک بلوک نتیجه ادغام لازم است . از اینرو، کوچکتر از و است و تعداد گذرها، است. در مثالها، است. لذا، 205 اجرای مرتب شده آغازین در 25 تا در پایان اولیه گذر ادغام میشود: که بعد به 12، بعد 4 بعد یک اجرا ادغام میشوند، که بدین معنی است که چهارگذر لازم میباشد. حداقل از 2، عملکرد بدترین مورد الگاریتم را ارائه میدهد که بدین قرار است: اولین جمله، تعداد دسترسیهای بلوک برای مرحله مرتب سازی را نشان میدهد، چون هر بلوک فایل دو برابر دسترسی میشود، یکبار برای خواندن در حافظه، یکبار برای نوشتن ثبتها دیسک بعد از مرتب کردن. دومین جمله، تعداد دسترسیهای بلوک برای مرحله ادغام کردن را نشان میدهد، با فرض اینکه بدترین مورد از 2 وجود دارد. بطور کلی، ثبت وقایع در مبنای و عبارت برای تعداد دسترسیهای بلوک نوین قرار میشود: تصویر 1802- شرح الگاریتم ادغام – مرتب کردن برای مرتب کردن خارجی: 2. 2. 18- اجرا و پیادهسازی عملیات SELECT : تعداد Optionهایی ( انتخابها) برای اجرای عملیات SELECT وجود دارد، که بعضی به فایل دارای مسیرهای دستیابی خاص بستگی دارند و تنها برای انواع معین شرایط انتخاب بکار میرود. ما به الگاریتمهایی جهت اجرای SELECT در این بخش میپردازیم. ما از عملیاتهای زیر استفاده میکنیم که روی پایگاه اطلاعاتی رابطهای در تصویر 507 مشخص شده و بحث ما را روشن میسازد: متدهای جستجو برای انتخاب ساده: تعدادی الگاریتم های جستجو برای انتخاب ثبتها از فایل امکانپذیر میباشند، چون ثبتهای فایل نامیده می شوند، چون ثبتهای فایل را برای جستجو و بازیابی ثبتهایی که شرایط انتخاب را برآورده میسازند، پویش میکنند. اگر الگاریتم جستجو شامل کاربرد شاخص باشد، جستحوی شاخص پویش شاخص نامیده میشد. متدهای جستجوی زیر ( 1S تا s6 ) مثالهایی از الگاریتمهای جستجو هستند که میتوانند برای اجرای عملیات انتخاب بکار روند: - s1 : جستجوی خطی (روش برنامهسازی پر قدرت): بازیابی هر ثبت در فایل، و تست اینکه آیا مقادیر ویژگی آن، شرط انتخاب را براورده میسازد یا خیر. - S2: جستجوی بنیادی (دودویی): اگر شرط انخاب شامل قیاس تساوی روی ویژگی کلیدی باشد که روی آن فایل مرتب میشود، جستجوی بنیادی، که نسبت به جستجوی خطی کارآمدتر است، میتواند بکار رود. مثال OP1 است چنانچه ssn ، ویژگی کلیدی با شاخص اولیه( یا کلید hash) باشد، برای مثال، SNN-‘123456789’ در opt، شاخص اولیه یا کلید hosh) برای بازیابی ثبت استفاده میشود، توجه کنید که این شرط، ثبت تکی را بازیابی میکند. - S4: کاربرد شاخص اولیه برای بازیابی ثبتهای متعدد: اگر شرط انتخاب شدن قیاس تساوی روی ویژگی غیر کلیدی با شاخص خدشهسازی باشد، برای مثال در ، شاخص را برای بازیابی کل ثبتها در برآورده ساختن شرط، استفاده کنید. - S6: بکارگیری شاخص ثانویه (درخت ) روی قیاس تساوی: این متد جستجو میتواند برای بازیابی ثبت تکی بکار رود چنانچه فیلد نمایهسازی (شاخصسازی) کلید باشد یا برای بازیابی ثبتهای متعدد بکار میرود چنانچه فیلد شاخصسازی کلید نباشد، این میتواند برای مقایساتی شامل یا بکار رود. در بخش 3. 4. 18، ما به چگونگی توسعه فرمولهایی میپردازیم که هزینهدستیابی این متدهای جستجو را در اصطلاحات تعداد دستیابیهای بلوک و زمان دستیابی برآورد میکند. Method S!برای هر فایلی استفاده میشود ولی تمام متدهای دیگر به داشتن مسیر دستیابی مناسب روی ویژگیبکار رفته در شرط انتخاب بستگی دارند. متدهای S4 و 6، میتوانند برای بازیابی ثبتها در دامنه معین بکار روند برای مثال پرس و جوها شامل این شرطها، پرس وجوهای دامنه نیامد به میشوند.متدهای جستجو برای انتخاب پیچیده: اگر شرط عملیات SELECT، شرط تقارنی و مرتبط باشد، در اینصورت اگر از چندین شرط ساده در ارتباط با ارتباط منطقی and مثل op4 فوق تشکیل شود، DBM میتواند از متدهای اضافی زیر برای اجرای عملیات استفاده کند: S7: انتخاب تقارنی یا ارتباطی با استفاده از شاخص اختصاص: اگر ویژگی شامل شده در هر شرط ساده متکی در شرط تقارنی، مسیر دستیابی داشته باشد که به کاربرد یکی از متدهای S2 تا S6 امکان عمل دهد، از آن شرط برای بازیابی ثبتهای استفاده کنید و بعد کنترل کنید آیا هر ثبت بازیابی شد، شرایط ساده باقیمانده در شرط تقارنی را برآورده میکند یا خیر. S8 : انتخاب تقارنی (ارتباطی) با استفاده از شاخص مرکب: اگر دو یا چند ویژگی در شرایط تساوی در شرط تفاوتی شامل شدند و شاخص مرکب در فیلدهای مرکب وجود داشته باشد، برای مثال اگر شاخص روی کلید مرکب (ESSN, PNO) در فایل Works ON برای OPS ایجاد شده باشد، می توان از شاخص مستقیماً اشاره کرد.