در سال 1967 شخصی بنام آقای "مارتین ریچاردز" برای نوشتن سیستم عامل و طراحی کامپایلر زبان جدیدی بنام BCPL طراحی نمود.
سه سال بعد، یعنی در سال 1970، "کن تامپسون" با افزودن ویژگی های جدیدی به زبان BCPL زبان جدیدی طراحی نمود و نسخه های اولیه سیستم عامل unix را با آن طراحی نمود. او این زبان را B نامید.
BCPL و B هر دو از زبانهای بدون نوع بودند. به همین جهت بررسی یک عنصر داده ای، دلیل وظیفه سنگینی بر عهده ی برنامه نویس بود. در این زبان هر عنصر داده ای یک کلمه از حافظه، معادل 2 بایت، را اشغال می کرد.
دو سال بعد، یعنی در سال 1972، آقای "دنیس ریچی" زبان جدیدی را بر پایه زبان B طراحی نمود. از آنجاییکه این زبان پس از زبان B طراحی شده بود، زبان C نام گرفت. زبان C بسیاری از ویژگی ها و مفاهیم زبانهای BCPL و B را دارا بود و ویژگی های دیگری، از جمله انواع داده ای، را نیز به آنها افزوده بود.
زبان C مستقل از سخت افزار است، به همین دلیل با طراحی خوب و دقیق نرم افزار می توان برنامه هایی نوشت که دارای قابلیت حمل در اکثر کامپیوترها باشند.
قدرت زبان C باعث شد که شرکت های مختلفی در صدد طراحی کامپایلرهای C برآیند.
این موضوع مشکل جدیدی برای طراحان برنامه هایی بود که می خواستند نرم افزارهای قابل حملی بنویسند که روی کامپیوترهای مختلفی اجرا
شود. 19 سال پس از طراحی زبان C، "کمیته استاندارد ملی آمریکا" ،ANSI ، نسخه ی استاندارد زبان C را تصویب نمود.
گامی به عقب :
در اواخر دهه 1970 هنگامی که "بیارنه استراس تروپ" بر روی تز دکترایش در دانشگاه کمبریج انگلستان کار می کرد مجبور بود برنامه های خود را به زبان Simula بنویسد. Simula از Algol مشتق شده و برای اولین بار مفاهیم کلاس به عنوان اشیا داده ای دراین زبان (Simula) مطرح شده بود. کلاس در Simula، جرقه ی طراحی و ساخت کامپایلر C++ را در ذهن "بیارنه" شعله ور نمود. او پس از مهاجرت از انگلستان به آمریکا و کار در شرکت AT&T تعمیم و گسترش زبان C را آغاز کرد. زبان جدید در سال 1980 طراحی شده و در 1982 با استقبال فراوانی روبرو شده بود.
این زبان با عناوین متفاوتی از جمله "New C" و "C With Classes" و "C84" مشهور بود! یکی از همکاران "استراس تروپ" بنام Rick Mascitti نام C++ را برای آن برگزید.
17 سال بعد از طراحی C++ یعنی در نوامبر سال 1997 C++ نیز استاندارد شد.
C++ زبانی دو رگه است! چنانچه این قابلیت را دارد که هم به صورت "پیمانه ای" و هم بصورت "شی گرا" نرم افزارهای قابل اعتمادی را ایجاد نماید. چند سال بعد زبان جاوا نیز بر پایه ی C و C++ طراحی شد.
· کتابخانه استاندارد C++
برنامه های C++از قطعاتی به نام کلاس ها و توابع تشکیل می شود. شما در عین حال که برای برنامه نویسی به این قطعات از پیش ساخته شده نیاز دارید، می توانید این قطعات را نیز خودتان بسازید.
"کتابخانه استاندارد C++" دارای کلاس های و توابع زیادی می باشد که مجموعه ای غنی، جهت برنامه نویسی را در اختیار برنامه نویسان قرار می دهد.
بنابراین برای یادگیری زبان C++ باید به دو امر مهم همت گماشت :
1- یادگیری ساختار و نحو زبان C++
2- یادگیری کلاس ها و توابع از پیش ساخته شده، در "کتابخانه ی استاندارد C++".
تذکر : برای آموختن دقیقتر این توابع و کلاس ها می توانید به کتاب The Draft Standard C++ Library مراجعه نمایید.
· پایه و اساس یک محیط نمونه برنامه نویسی C++
طراحی برنامه در C++ اغلب شامل 5 مرحله می باشد :
1- ویرایشگر : شامل تایپ کدهای برنامه در ویراستار C++ و ذخیره بر روی هارد دیسک با پسوند *.C و یا *C++. [Editor]
2- پیش پردازنده : افزودن فایل های متنی مورد نیاز، در فایلی که قرار است کامپایل شود. [PreProcessor]
3- کامپایلر : ترجمه ی کدهای برنامه به زبان ماشین توسط کامپایلر و ساختن فایل *Obj. [Compiler]
4- پیوند دهنده : ساختن فایل اجرایی (*.Exe) و افزودن تمام چیزهایی که برای اجرای برنامه بدون حضور به کامپایلر لازم است.[Linker]
5- بار کننده : انتقال کدهای زبان ماشین از روی دیسک سخت در حافظه ی اصلی کامپیوتر. [Loader]
تمامی این قسمت ها در جای مناسب مفصلا توضیح داده خواهند شد.
عملگرها و متغییرها
· عملیات ریاضی :
در زبان C++ بیش از هفتاد عملگر وجود دارد!
تعدادی از این عملگرها ماهیت ریاضی دارند. در این قسمت به بررسی این عملگرها خواهیم پرداخت.
جدول زیر بیانگر قابلیت عملگرهای اصلی ریاضی می باشد.
· تصمیم گیری : عملگرهای مقایسه ای !
تعدادی از عملگرهای زبان C++ مربوط به عملگرهای مقایسه ای می شود. این نوع عملگرها تقریبا در تمام زبانهای برنامه نویسی یافت می شوند. جدول زیر بیانگر قابلیت عملگرهای مقایسه ای می باشد :
· عملگرهای درج در جریان و استخراج از جریان:
در زبان C++ دو عملگر خاص وجود دارند که جهت کنترل صفحه نمایش بکار می روند.
این عملگرها برای نوشتن داده ها در صفحه نمایش و خواندن داده ها ازکاربر بکار می رود.
· انواع داده ای و تعریف متغییر :
متغییر چیست؟ فضا ای از حافظه ی اصلی، که در اختیار برنامه نویش قرار می گیرد. کامپایلر از این فضا محافظت می کند که سایر برنامه های در حال اجرا مقدار آن را تغییر ندهند.
در C++ چهار نوع اصلی وجود دارد :
تعریف کردن یک متغییر در زبان C++ بسیار ساده تر از آن است که فکرش را می کنید!
ابتدا نام نوع را می نویسیم و سپس نام متغییر !
دقت کنید :
int a ;
float f ;
double d ;
char ch ;
چهار متغییر به ترتیب از نوع «اعداد صحیح»، «اعداد اعشاری»، «اعدا حقیقی بزرگ» و «کاراکتری» تعریف شده است.
در قسمت های بعدی کاربرد عملی این قسمت را مشاهده خواهید کرد.
ساختار یک برنامه ی C++
· در حاشیه C++
برای کسانی که با زبان C++ آشنایی ندارند، علائم بکار رفته در این زبان شاید عجیب و حتی خنده دار باشد!
نظر شما چیست؟
#include <iostream.h>
void mian()
{
cout << "Learning The Art Of Object Oriented Programming In www.yosafy.blogsky.com" ;
};
حقیقت این است که برای یادگیری C++ باید ابتدا C را آموخت. در واقع می توان گفت که :
C++ = C + Classes
با یادگیری زبان C و سپس افزودن مباحث مربوط به کلاس ها به معلومات خویش می توان به C++ مسلط شد. برای یادگیری زبان قدرتمند visual C++ ، به ناچار باید با معلومات جامع و کاملی از C++ و ترجیجا یک زبان ویژوال داشت و سپس سراغ این اعجوبه قرن رفت.
· بررسی ساختار یک برنامه به زبان C++
در این قسمت می خواهیم ساختار عمومی یک برنامه به زبان C++ را بیاموزیم.
قطعا با معلوماتی که تا به اینجا آموختید درصد قابل قبولی از ساختار یک برنامه ی C++ را درک خواهید کرد:
1) #inlcude <iostream.h>
2) Functions Prototype
3) void mian()
4) {
5) The Programme Body (Declaration Variable, Call Functions & Objects)
6) };
7) Implementation Functions
تذکر : شماره گذاری ها برای درک ساده تر می باشد. بدیهی است که در یک برنامه شماره گذاری خطوط منجر به خطای دستوری(Syntax Error) خواهد شد.
حال به بررسی مختصر هر قسمت می پردازیم :
#include <iostream.h>
این خط (که اولین خط برنامه ی C++ هم می باشد) در واقع یک دستور پیش پردازنده است!
در واقع تمام خطوطی که با # شروع می شوند یک دستور پیش پردازنده هستند.
این دستور به "پیش پردازنده" می گوید که :
"محتویات فایل iostream.h را به برنامه اضافه کن".
در داخل فایل iostream.h دستورات مربوط به ورودی و خروجی قرار دارد. در واقع اگر برنامه ما بخواهد از دستورات ورودی و خروجی استفاده نماید باید ابتدا فایل iostream.h را به کمک دستور پیش پردازنده به بدنه برنامه اضافه نماید و آنگاه بتواند از توابع درون آن استفاده نماید.
این سبک عملکرد دقیقا مانند به کار بردن توابع API در زبان ویژوال بیسیک می باشد. در زبان ویژوال بیسیک ابتدا باید به مفسر بیسیک بگوییم که از کدام فایل های DLL می خواهیم استفاده نماییم پس از آن است که می توانیم در بدنه برنامه از توابع آن فایل DLL استفاده کنیم.
نکته : به فایل هایی مثل iostream.h «سرفایل» یا «هدر فایل» می گویند.
void mian()
مطمئنا در تمام برنامه های C++ شاهد این خط خواهیم بود.
تعریف اشیاء داده ای، تعریف متغییرها، نوشتن دستورات برنامه و ... همگی در زیر این عبارت تعریف می شوند.
یک برنامه C++ از فراخوانی متدهای کلاس ها و احیانا فراخوانی توابع ایجاد می شود. همگی این اعمال در این قسمت از برنامه انجام می شود. به این قطعه از برنامه، «تابع اصلی» گفته می شود.
توضیحات کاملتر در این مورد را به قسمت «توابع» واگذار می کنیم.
توضیحی پیرامون علامت های "{" و "}" : زبان C++ ،مانند بسیاری از زبانهای برنامه نویسی، از بلاک بندی کدها استفاده می نماید. یک بلوک از برنامه دارای ویژگی های خاص خود می باشد که از حوصله ی بحث ما خارج است(برای کسب اطلاعات بیشتر در مورد بلوک بندی در زبانهای برنامه نویسی می توانید به کتاب «طراحی و پیاده سازی زبانهای برنامه سازی» نویسنده : ترنس پرات، رجوع نمایید.)
بلوک بندی در زبان پاسکال با کلمات کلیدی begin و end ساخته می شود. در زبان ویژوال بیسیک کدهای بین private sub و end sub و همچنین کدهای نوشته شده بین if و end if در واقع یک بلوک تشکیل داده اند. در زبان C++ نیز یک بلوک با "}" آغاز گشته و با "{" خاتمه می یابد. تمام توابع، از جمله تابع اصلی، باید در یک بلوک ساخته شوند.
تذکر : توضیحات بیشتر در مورد بلوک بندی و همچنین خطوط 2 و 7 را به قسمت سوم این سلسله مقالات یعنی "توابع" موکول می کنیم.
تذکر : در پایان هر خط از برنامه C++ باید یک یک علامت سمی کولن «;» گذاشته شود.
· آغاز برنامه نویسی
به خط مقدم خوش آمدید!
بد نیست کم کم شروع کنیم:
#include <iostream.h>
void mian()
{
cout << "Learning The Art Of Object Oriented Programming In www.yosafy.blogsky.com" ;
};
در واقع تنها دستوری که باید توضیح داده شود عبارت cout می باشد!
cout << "Learning The Art Of Object Oriented Programming In www.yosafy.blogsky.com" ;
اولین دستور خروجی!
همانطور که در قسمت «عملگرها» گفته شد این قطعه کد، عبارت مقابلش را در صفحه نمایش چاپ می کند.
نحو این دستور چنین است :
cout << "عبارتی که باید در صفحه نمایش چاپ شود" ;
تذکر : در پایان هر خط از خطوط زبان C++ باید یک سمی کولن «;» گذاشته شود.
البته از این دستور به طور متوالی نیز می توان استفاده نمود. دقت کنید:
cout << "Learning The Art Of " << "Object Oriented Programming " << "In " << " www.yosafy.blogsky.com" ;
· گامی فراتر :
قصد داریم برنامه دیگری بنویسیم و از آموخته هایمان هر چه بیشتر استفاده نماییم.
این برنامه شامل اعمال استفاده از سرفایل، تعریف متغییر، خواندن مقادیر از ورودی، چاپ در صفحه نمایش، یافتن عدد بزرگتر و کوچکتر می باشد.
#include <iostream.h>
void main()
{
int a;
int b;
cout<< "Please Enter A Number : " ;
cin>> a ;
cout<< "Please Enter Next Number : " ;
cin>>b ;
if (a>b)
cout<< "a > b";
else if (a
cout<< "a
else
cout << "a=b";
};
با ساختار شرطی if بعدها آشنا خواهید شد. با توجه به آشنایی که با سایر زبانهای برنامه نویسی دارید انتظار می رود که بتوانید عملکرد برنامه بالا را درک نمایید!
راستی برنامه بالا چه کاری انجام می دهد؟
در قسمت بعدی این مقاله به بررسی انواع ساختارهای کنترل خواهیم پرداخت.
DBMS اختصار (DATABASE MANANGMENT SYSTEM ) میباشد که معنای لغوی آن سیستم مدیریت پایگاه داده یا سیستم مدیریت داده ها میباشد .
باید خدمتتون عرض کنم که بزرگترین جهشی که پایگاه داده ها در راستای رشد و تکامل داشت مربوط به همین قسمت یعنی تولید و تکامل DBMS میباشد . گفتیم که وظیفه DBMS این است که بین برنامه کاربردی و منابع داده ها قرار بگیرد و کلیه عملیاتهای مربوط به( ایجاد ، تغییر ، حذف و .... ) منابع داده ها را کنترل و مدیریت کند . کنترل و مدیریت منابع داده ها بسیار کلی و میباشد و اگر بخواهیم منظور از کنترل و مدیریت را کامل شرح دهیم باید ساعتها وقت صرف کنیم و دهها صفحه مطلب بنویسیم که قطعا در این مجموعه نخواهد گنجید ضمن آنکه این مطالب کاربردی نیط نیستند و تنها جنبه اطلاعاتی دارند لذا تنها چند نکته مهم را ذکر میکنم و در صورتی که علاقمند بودید بیشتر بدانید میتوانید به کتابهای موجود در این زمینه مراجعه فرمایید .
منظور از کنترل و مدیریت :
خوب تا اینجا با تاریخچه پایگاه داده ها به صورت کلی و ساده آشنا شدیم . در زیر چکیده ای از مطالب بالا را به همراه مزیتهای بوجود آمدن تکنولوژی بانک اطلاعاتی را ذکر خواهم کرد .و از این پس میرویم سراغ مفاهیم کاربردی پایگاه داده ها . دقت کنید که مفاهیم و کلمات مهم را به صورت زیر خط دار و زردرنگ نوشته ام .
از مجموعه مطالب ذکر شده در بالا فهمیدیم که :
با گسترش روز افزون اطلاعات و نیاز کاربران به ذخیره و بازیابی اطلاعات سیستمهایی طراحی شدند که قابلیت استفاده برای مصارف گوناگون را دارا میباشند . همچنین این برنامه ها امکان استفاده اشتراکی از منابع داده را نیز فراهم کردند . در این سیستمها ما به هر فایلی که اطلاعاتی با ساختار معین در آن قرار گرفته است را منبع داده مینامیم. این سیستمها به صورت تخصصی برای ذخیره و بازیابی اطلاعات طراحی و ساخته شده اند از این رو به این سیستمها پایگاه داده ها یا همان بانک اطلاعاتی میگوییم . تمامی پایگاه داده های موجود دارای بخشی با عنوان DBMS یا سیستم مدیریت داده ها میباشند که به عنوان واسط مابین برنامه کاربردی و منبع داده قرار میگیرد و کلیه موارد مربوط به ذخیره و بازیابی لطلاعات را به صورت خودکار کنترل میکند . این سیستم همچنین مسئول تامین امنیت داده های ذخیره شده نیز میباشد . سیستمهای ارائه شده محصول هر شرکتی که باشند از استاندارد واحدی برای ذخیره و بازیابی اطلاعات تبعیت میکنند . در ضمن تمامی پایگاه داده های موجود دارای یک زبان پایه و مشترک با نام T-SQL مبباشند که برنامه نویسان در اکثر موارد بدون آنکه نوع بانک مورد نظر مهم باشد میتوانند از این زبان برای انجام امور بانکی در برنامه های خود استفاده کنند . علاوه بر مطالب ذکر شده باید خدمتتون عرض کنم که بانکهای اطلاعاتی دارای مزیتهای بینظیری میباشند که این مزیتها به تدریج به این تکنولوژی اضافه شدند .از جمله این مزیتها میتوان کنترل متمرکز روی تمام داده هارا نام برد که یکی از مزایای این امر کاهش میزان افزونگی در ذخیره سازی داده ها میباشد .در واقع در تکنولوژی بانکهای اطلاعاتی تکرار ذخیره سازی داده ها به حداقل میرسد که این امر خود دارای مزایای فراوانی میباشد که صرفه جویی در فضای ذخیره سازی و کاهش عملیات سیستم از جمله مهمترین آنها میباشد . یکی دیگر از مزیتهای مهم بانکهای اطلاعاتی این است که با گسترش این تکنولوژی مفهوم چند سطحی بودن و معماری چند لایه به تدریج قوت یافت و بسط پیدا کرد . از دیگر مزایای این تکنولوژی این است که مفاهیمی چون منطق صوری ، سیستمهای خبره ، مفاهیم هوش مصنوعی و ... نیز در این تکنولوژی رخنه کرده اند که این امر موجب میشود که سیستم قادر به استنتاج منطقی از داده های ذخیره شده باشد . و به عنوان آخرین مزیت نیز میتوان این مورد را ذکر کرد که در این سیستمها کاربران در یک محیط انتزاعی (ABSTRACTIVE) و مبتنی بر یک ساختار داده یی تجریدی کار میکنند و بکمک احکام زبانی خاص ، عملیات مورد نظر خود را انجام میدهندو بدین ترتیب برنامه های کاربردی ازداده های محیط فیزیکی کاملا مستقل میشوند .من گفتم آخرین مزیت اما این آخرین مزیت نیست بلکه آخرین مزیتی است که من ذکر میکنم و مزیتهای استفاده از بانک اطلاعاتی نیز آنقدر زیاد است که از حوصله این مقاله خارج میباشد .
تا اینجا بحث بارها به کلمات داده ها و اطلاعات برخورد کرده ایم . اما مفهوم واقعی این دو چیست ؟ در زیر تعریف این دو واژه را برای شما ذکر خواهم کرد و با تفاوتهای این دو آشنا خواهیم شد .
توجه : مطالبی که از اینجا به بعد ذکر خواهند شد بسیار بسیار مهم و حیاتی میباشند لذا خواهشمندم تا زمانی که هر خط را کاملا متوجه نشده اید هرگز سراغ خط بعدی نروید . حتی اگر صد بار یک خط را تکرار کنید .
خوب با ارائه تعریفی برای داده با دو واژه دیگر نیز برخوردکردیم که احتمالا برای شما نامفهوم میباشد لذا تعریفی برای این دو نیز ارائه خواهم داد .
نوع موجودیت : مفهوم کلی یک پدیده ، شی و یا فرد که در ورد آنها میخواهیم اطلاع داشته باشیم .
صفت خاصه : ویژگی جداساز یک نوع موجودیت از نوع دیگر را گویند .
ببینید دوستان اگر ما یک فرد یا یک شی یا یک پدیده را درنظر بگیریم و بخواهیم در مورد آن اطلاعاتی کسب کنیم آن شی ، یا فرد یا پدیده را موجودیت مینامیم . فرض کنید ما انسان را در نظر میگیریم و از بین انسانها فردی را انتخاب میکنیم و میخواهیم در مورد این فرد اطلاعاتی کسب کنیم . فردی که ما انتخاب کرده ایم موجودیت میباشد . فرض کنید این موجودیت من هستم . خوب من حتما دارای آیتمهایی هستم که من را از شما متمایز میکند . هر یک از این آیتمها را نیز صفت خاصه میگوییم .
خوب اگر من یک موجودیت باشم قطعا یکی از صفات خاصه من نام من میباشد و دیگری نام پدرم و دیگری شماره شناسنامه ام و .... درست ؟ حالا مقدار هریک از این صفات خاصه من را داده میگویند . به عنوان مثال نام من علیرضا است پس عریضا یک داده است . شماره شناسنامه من 1912 میباشد پس عدد 1912 داده بعدی من میباشد و ...
پس موجودیت ما یک انسان در نظر گرفته شد که این انسان توسط یـکسری صفاتی دارد که مختص انـسـان اسـت ( صفات خاصه ) و هر یک از این صفات خاصه دارای مقداری هستند که این مقدار نیز همان داده است
اطلاع : اطلاع از داده حاصل میشود و در حل مسائل به کار میرود .
ببینید هر داده هنگامی که در یک موقعیت مشخص برای حل مساله ای به کار گرفته شود به اطلاع تبدیل میشود . در بالا موجودیت ما انسان بود که بنده بودم خوب من به جز نام و شماره شناسنامه و ... صفات خاصه دیگری نیز دارم که یک نمونه از آنها معدل دیپلم من است . فرض کنید معدل دیپلم من 17 باشد . پس 17 نیز یک داده است . حال اگر بخواهیم بالاترین معدل را در بین دانش آموزان دیپلم گرفته تهران پیدا کنیم چون از داده های موجود در فرمول پیدا کردن ماکزیمم استفاده میکنیم لذا عدد 17 که تاکنون داده بود به اطلاع تبدیل میشود
میدانم که احتمالا درک این مطالب احتمالا کمی مشکل به نظر میآید اما اگر کمی دقت کنیم میبینیم که اتفاقا بسیار ساده هستند . از طرفی اگر کسی این مفاهیم را نفهمد قطعا از اینجا به بعد هیچ چیز دیگری را نیز نخواهد فهمید چون از این واژه ها و مفاهیم آنها بارها و بارها استفاده خواهیم کرد و پایه تمام مطالب جدیذی که جلوتر ذکر خواهم کرد .
یک بار دیگر و برای آخرین بار این مطالب را با مثال شرح میدهم و سپس به سراغ مطالب بعدی خواهیم رفت .
در کل چهار تا واژه بسیار مهم و کاربردی داریم :
در این کره خاکی و این جهان هستی ما سه تا دسته بیشتر نداریم . یعنی هر چیزی که ما میتوانیم نام ببریم یا یک شی (مانند قابلمه ) است یا یک فرد ( مانند شما ) است یا یک پدیده ( مانند زلزله ) . ما به هریک از اجزاء این سه دسته موجودیت میگوییم . چرا چون وجود دارد . یعنی قابلمه وجود دارد پس قابلمه یک موجودیت میباشد . حالا ما چندین و چند مدل قابلمه داریم که این قابلمه ها با هم فرقهایی دارند . خوب عامل این تفاوتها چیست ؟ درسته هر قابلمه دارای یکسری خصوصیتها و صفاتی میباشد که این قابلمه را از قابلمه دیگر جدا میکند و علاوه بر آن همان صفات باعث میشنود تا بین من و قابلمه هم فرقی بوجود آید جون قابلمه صفاتی دارد که من ندارم و این صفات مخصوص قابلمه است نه انسان ! پس قابلمه دارای یکسری صفات است که مخصوص قابلمه است که ما به هر یک از این صفات صفت خاصه میگوییم . هر صفت خاصه این قابلمه دارای یک مقدار است . مثلا اگر رنگ قابلمه را به عنوان یکی از صفات خاصه آن در نظر بگیریم قطعا این صفت خاصه مقداری دارد که ما فرض میکنیم نارنجی است . خوب نارنجی هم شد داده ما . حالا اگر ما در یک پردازش یا در حل یک مساله از نارنجی استفاده کنیم نارنجی از داده به اطلاع تبدیل میشود . امیدوارم دیگه همه این مفاهیم را فهمیده باشند .
پس در حالت کلی موجودیت هر شی یا عین قابل تمیز است که ما میخواهیم داده های آن را در بانک بریزیم و در صورت نیاز از آن اطلاعات داشته باشیم /. اگر ما مجموعه ای از موجودیت ها را در نظر بگیریم به ان مجوعه محیط عملیاتی میگویند . فرضا اگر موجودیت ما دانشجو باشد محیط عملیاتی ما میشود دانشگاه . محیط عملیاتی بر اساس نوع برنامه ای که قرار است درست کنیم تغییر میکند . اگر بخواهیم برنامه کتابخانه بنویسیم موجودیت ما کتاب است و محیط عملیاتی ما نیز کتابخانه . اگر بخواهیم برنامه ای برای انتخاب واحد دانشجویان بنویسیم موجودیت ما میشود دانشجو و محیط عملیاتی ما نیز دانشگاه میباشد .
محیط عملیاتی هر چیزی که باشد موجودیتهای آن با هم ارتباطاطی دارند . به عنوان مثال بین دانشجو و درس ارتباطاطی وجود دارد که دانستن این ارتباطات در طراحی برنامه نقش حیاتی دارند . ارتباط بین موجودیت ها انواع مختلفی دارد که در زیر ذکر خواهم کرد :
تشخیص موجودیت های یک محیط عملیاتی و تعیین ارتباطات بین آنها از مهمترین وظایف یک طراح بانک اطلاعاتی میباشد . تعیین درست این ارتباطات نقش به سزایی در کارایی سیستم و بانک طراحی شده دارد لذا یکی از مهمترین مباحث موجود در بانکهای اطلاعاتی میباشد . در مبحث بعدی با این مفاهیم بیشتر آشنا خواهیم شد .
کلید واژه ها :
زبان فارسی پایگاه اطلاعاتی پیکره زبانی پایگاه داده های زبانی
این طرح ، طرحی بنیادی و گسترده برای زبان فارسی است که با توجه به هدف ، سودمندیها و کاربران گوناگون آن ، می تواند به عنوان طرح مادر یا پشتیبان برای بسیاری از طرحهای زبانی ، ادبی و زبانشناختی زبان فارسی به کار گرفته شود . اکنون چند ماه است که اجرای فازاول این طرح در پژوهشگاه علوم انسانی و مطالعات فرهنکی آغاز شده است .
1 – هدف طرح
هدف این طرح گردآوری و سازماندهی یک پیکره زبانی پایه برای زبان فارسی (شامل متنهای مهم و واژگان عمده آن ) در درون یک سیستم اطلاعات کامپیوتری و ایجاد نخستین بانک داده های زبان فارسی برای بهره گیری همه کاربران و پژوهندگان است .
2 - پیشینه بانکهای داده های زبانی
گرچه درگذشته سازمانها ، مراکز پژوهشی ، کتابخانه ها و مانند اینها به گردآوری اطلاعات تخصصی در زمینه های گوناگون و ارائه آنها با سرعت و تنوع زیاد علاقه مند بوده اند ؛ اماتنها پس از پیدایش کامپیوتر ، اندیشه ایجاد پایگاههای داده ها و بانکهای اطلاعاتی به خود جامه عمل پوشید . بویژه در زمینه پژوهشهای زبانی و فرهنگ نگاری ، روشهای کامپیوتری (یعنی پردازش خودکار زبان طبیعی Automated Natural Language Processing بسیار موفق بوده است .
در سه دهه گذشته ، بیشتر کشورهای صنعتی به ایجاد بانکهای زبانی خود پرداختنه اند . این کشورها ، ابتدا با گردآوری داده ها یا پیکره های زبانی (Corpus Linguistics ) ) و سپس با سازماندهی آنها در پایگاههای داده ها (Databases) و بانکهای اطلاعات زبانی (Linguistic Data Banks )، از شبکه های جهانی داده های زبانی (International Networks of Linguistic Data ) بهره برداری می کنند . در پیوست الف ، نمونه هایی از هریک آورده شده و برای آگاهی از جزئیات بیشتر ، از منابع مربوط نیز یاد گردیده
زبان فارسی را همواره از نظر منابع ادبی و واژگان ، یکی از زبان ها ی غنی و با سابقه به شمار آورده اند ؛ اما تا کنون بررسی همه جانبه و دقیقی با تکیه بر آمار و داده های کافی ، درباره این زبان انجام نیافته است . همچنین بسیاری از پژوهشهای زبانشناختی و تصمیم گیریها در برنامه ریزی زبانی ، تنها با دسترسی به یک پیکره زبانی کافی و است .
3-دلایل پیشنهاد طرحمستند ، ارزش و اعتبار خواهند داشت از سوی دیگر، با گسترش کار برد کامپیوتر و پیدایش امکانات تازه نرم افزاری و سخت افزاری ، و وجود نمونه های بسیاری از این گونه بانک های داده ای زبانی در جهان و اثبات سود مندی و کارایی آنها ، زمان برای آغاز کوششهایی برای زبان فارسی ، از هر جهت مناسب می نماید .
دستیابی سریع به مجمو عه عظیمی از پیکره زبان فارسی و نیز امکان هرگونه جستجوی جهتدار، موضوعی و یا ساختاری در میان داده ها ، آرزوی هر پژوهنده زبان است . یک گنجینه بسامان از متنهای مهم و واژگان فارسی ، منبعی قابل اعتماد و آماری دقیق در دسترس افراد یا سازمانهای علاقه مند قرار می دهد . برخی از کاربردها ی بانک داده های زبانی در زمینه های زیر است :
- فعالیتهای گوناگون فرهنگ نگاری
- واژه گزینی علمی
- بررسیهای دستوری و تدوین دستور زبان امروز
- بررسی تحولات تاریخی زبان فارسی و پیگیری سیر تحول واژگان آن
- مطالعات سبک شناسی در دوره های گوناگون ، یا درباره نویسندگان و شاعران مشخص
- بررسیهای آوایی و گویش شناسی
- تالیف تدوین فرهنگ تاریخی زبان فارسی
- اجرای طرح ترجمه ماشینی برای زبان فارسی
5- کاربران
به طور کلی همه سازمانها و افرادی که به گونه ای با زبان فارسی و مسائل گوناگون آن سرو کار دارند، می توانند کاربران بالقوه این پایگاه باشند .
5-1- سازمانها
- سازمانهایی که به پژوهشهای زبانی و زبان شناختی می پردازند ، مانند پژوهشگاه علوم انسانی و مطالعات فرهنگی ؛
- سازمانهای برنامه ریزی زبانی ، مانند فرهنگستان زبان ؛
- سازمانهایی که با آموزش زبان سروکار دارند ، مانند دانشگاه ها و وزارت آموزش و پرورش ؛
- سازمانهای چاپ و نشر ؛
- کتابخانه ها و مراکز اسناد ؛
- رسانه های همگانی ، و بسیاری از سازمانهای دیگر ؛
4-2- اشخاص
- نویسندگان ، شاعران و روز نامه نگاران ؛
- مترجمان و ویراستاران ؛
- منتقدان ادبی ؛
- زبانشناسان ؛
- فرهنگ نگاران ؛
- چکیده نویسان ؛
- دستور نویسان ؛
- اصطلاحشناسان ؛
- برنامه سازان کامپیوتر ؛
- معلمان زبان و پژوهندگانی که از داده های زبانی به عنوان ماده اولیه کار خود بهره می گیرند .
6- مراحل اجرای طرح
این طرح به طور کلی ، در سه دوره – یا فاز – متفاوت انجام می پذیرد :
- دوره 1. گردآوری داده ها و فراهم آوردن واژه ها مه های بسامدی ؛
- دوره 2. سارماندهی و ایجاد پایگاه داده ها
- دوره3. بهره برداری ، نگهداری ، افزایش داده ها و روز آینده سازی پایگاه .
ترتیب زمانی ، زمانبندی تخمینی و ارتباط دوره ها به صورت زیر خواهند بود :
7 – ویژگیهای پایگاه داده ها
در این طرح ، زبان فارسی و ساختار داده ها ، دارای مشخصات ویژه ای خواهند بود که در زیر تنها به چارچوب
آنها اشاره می شود :
7 – 1 – زبان فارسی
7 – 1 – 1 – گستره و محدوده :
به طور کلی این اصطلاح می تواند همه گونه های گفتاری ، نوشتاری ، سبکی و کاربردی زبان را در همه دورانهای تحول آن دربرگیرد ؛ اما لازم است که محدوده آن به گونه ای مشخص گردد . از این رو ، نخست دو برش جداگانه تاریخی از آن در نظر می گیریم : اول زبان فارسی امروز یا فارسی معاصر ، و دیگری دورانهای گذشته زبان فارسی .
از سوی دیگر برش گذشته فارسی ، خود به خود به گونه نوشتاری محدود خواهد شد ، در صورتی که برش امروزین ، گونه های گفتاری رانیز می توان دربرگیرد .
هدف نخست این طرح ، زبان فارسی امروز خواهد بود و در مراحل بعد به دورانهای گذشته پرداخته خواهد شد .
7 – 1 – 2 – بخشهای سازنده پیکره زبانی
برای فراهم آوردن پیکره زبانی فارسی امروز ، بابسته است مجموعه گوناگون و شاخصی از همه نمونه های مهم آن – تا حد امکان – را گردآورد . و برای این منظور ، یک بررسی دقیق آماری و مشاوره با کارشناسان گوناگون ضروری است؛ اما می توان پیش بینی کرد که نمونه هایی از هریک از منابع و گونه های زیر مورد نیاز باشد :
- نمونه های شاخص نظم و نثر (مهمترین آثار ادبی )؛
- نمونه های مهم متنهای علمی و آموزشی (رشته های گوناگون )؛
- نمونه های مهم از نشریات (مقاله های گوناگون در زمینه های ادبی ، فرهنگی، اجتماعی ، سیاسی ، هنری ، علمی ، ورزشی و مانند اینها )؛
- نمونه های مهم از گونه های گفتاری رسمی و غیر رسمی ( گفتارهای رادیویی و تلویزیونی ، مصاحبه ها ، گفتگوهای خودمانی ، مکالمه های تلفنی و مانند اینها که ضبط و بازنویسی شده باشند ) ؛
- فهرست های واژگانی برگرفته از فرهنگها و واژه نامه های عمومی و تخصصی و بسیاری منابع دیگر .
7 – 2 – ساختار پایگاه :
منظور از ایجاد یک پایگاه داده ها ، سازماندهی داده ها به گونه ای است که بتوان میان بخشهای آن ارتباط برقرار کرد و از راه جستجو به هر گونه آگاهی مورد نظر دست یافت .
7 – 2 – 1 – پایگاه داده های پیوستار(Relational DATABASE):
بررسی بیشتر پایگاههای ایجاد شده برای زبانهای گوناگون ، نشان می دهد که از میان سه گونه مهم و شناخته شده " سلسبه مراتبی "، " شبکه ای " و "پیوستار " ، نوع پیوستار بیشترین موفقیت را داشته است . دلیل این امر ، می تواند سادگی نسبی و کارآیی بالای آن باشد . نرم افزارهای آماده ای برای این منظور وجود دارد که با بررسی ، مشاوره و آزمون می تواند مناسبترین نمونه را برگزید .
7 – 2 – 2 – شکل داده ها :
داده های زبانی ، در این پایگاه به صورتهای گوناگون گردآوری می شود – چه به شکل متن پیوسته و چه به صورت فهرستهای واژگانی دارای تعریف و یا بدون تعریف و حتی مجموعه یادداشتهای پژوهشی .
7 – 2 – 3 – پیوندهای میان داده ها:
بخشهای متون و اقلام به گونه ای با یکدیگر ارتباط می یابند که امکان جستجو و دستیابی به بیشترین آگاهیها ، در زمانی کوتاه فراهم گردد . مثلأ با معرفی یک واژه ، بخشی از یک واژه ، یک نشانه اختصاری ، پاره ای از یک متن ، نام نویسنده ، گونه ای از زبان ، نام یک اثر ، مفهوم کلی یک واژه ، و یا نشانه های کلیدی دیگر ، بتوان به تعاریف ، مترادفها ، متضادها ، همخانواده ها ، ترکیبات ، نمونه کاربردی ، تاریخ کاربرد ، نویسنده یا کاربرنده و بسیاری دیگر از اطلاعات مربوط به آن دست یافت و یا آمارهایی از دسته های معینی واژه یا اصطلاح در یک یا چند متن دلخواه به دست آورد .
8 – مختصری پیرامون ویژگیهای هر دوره
8 – 1 – دوره اول:
این دوره ، می تواند طرحی مستقل برای تدوین تعداد دلخواهی واژه نامه بسامدی برای متنهای برگزیده
ربان فارسی به شمار آید.
این دوره شامل یک مرحله مقدماتی بررسی و آماده سازی امکانات ، نیروی انسانی و متنها ، و مرحله گردآوری و درونداد واژه ها ، اصطلاحات ، و متون شاخص و نمونه های گوناگون زبان فارسی ، و تدوین کامپیوتری واژه نامه های بسامدی ، واژه نما (معجم المفهرس ) و فهرست های آماری گوناگون است .
از ویژگیهای این دوره ، نتایج مجزا و مستقلی است که به صورت واژه نامه ها و آمار واژگانی برای انتشار ارائه میگردد . همچنین انعطاف پذیری آن است که به موازات افزایش نیروی انسانی و تجهیزات کامپیوتری ، می توان سرعت و حجم کار را افزایش داد و باامکانات کمتر ، روند پیشرفت کندتر ؛ ولی بدون اشکال ادامه خواهد یافت .
8 – 2 – دوره دوم :
این دوره ، می تواند همزمان با دوره 1 آغاز شده ، به موازات آن پیشرفت کند .
دراین دوره ، پس از نصب و راه اندازی سیستم پایگاه داده ها ، کار درونداد همه داده ها آماده شده ، و سازماندهی آنها در درون پایگاه آغاز می شود . همچنین آزمایش برنامه ها و کارآیی سیستم . آغاز بهره برداری از پایگاه ، در این مرحله انجام خواهد شد .
نیازهای نرم افزاری و سخت افزاری ، با بررسی بسته برنامه های کاربردی بسیاری که برای این منظورها تهیه شده – و در بازار موجود است – و با توجه به حجم داده ها ، تعداد کاربران و چگونگی ارائه خدمات تعیین می گردد.
8 – 3 – دوره سوم :
این دوره ، پس از مرحله نصب و راه اندازی سیستم آغاز خواهد شد و مدت آن نامحدود خواهد بود ؛ چرا که شامل عملیات نگهداری ، بهره برداری ، روزآیند کردن ، بهبود و افزایش امکانات و داده های بانک می شود . در این دوره ، کار تهیه واژه نامه های بسامدی (دوره 1 )دنبال خواهد شد و نیز بانک داده های زبانی همواره فعال خواهد بود .
9 – سازمان
سازمان و تشکیلات این پایگاه ، به موازات پیشرفت آن و با آغاز هر مرحله تازه آن ، گسترش خواهد یافت و از نظر نیروی انسانی ، به همکاری گروهی از کارشناسان با تخصصهای زبان و زبانشناسی ، کامپیوتر ، و ادبیات در کنار کارکنان بخش اداری نیاز خواهد بود .
10 – زمان بندی
زمان اجرای مراحل اول و دوم ، به طور تخمینی تعیین شده است که با پیشرفت تدریجی طرح ، می توان آن را دقت بخشید .
پیوست الف :
چند نمونه موجود و فعال پایگاه داده های زبانی
در این پیوست ، ابتدا به چند پیکره زبانی بزرگ که خود اساس ایجاد پایگاهها و بانکهای داده های زبانی قرار گرفته اند اشاره می شود.
برخی از پیکره های زبانی که تنها برای زبان انگلیسی ایجاد شده است ، عبارت اند از :
1 – پیکره دانشگاه بر اون ( Brown University Corpus of American English) که در سال 1961 با بیش از 5 میلیون واژه نمونه از کتابها و مجلات منتشر شد در همان سال ایجاد شد .
2-پیکره زبانی دانشگاه بیر منگام ( Birmingham University Corput) که از یک مجموعه متن زبان انگلیسی عمومی (با نزدیک به 20 میایون واژه )به مجموعه گوناگونی از متنهای تخصصی (با نزدیک به 20 میلیون واژه) مربوط به سالهای 1960 تا 1981 تشکیل شده است .
3 -پیکره زبانی مرکز پژوهشهای ارتباطی بل (Bellcore Corpora) مجموعه ای از متنهای زبان انگلیسی امروز (شامل 70 میلیون واژه از مرکز نیویورک تایمز از سال 1983 به بعد و متنهای گوناگون دیگر )
4- پیکره مشترک لانگمن – لانکاستر برای زبان انگلیسی (Longman – Lancaster English Language Corpus) با 30 تا 50 میلیون واژه از زبان انگلیسی گفتاری و نوشتاری .
5 -پیکره جهانی زبان انگلیسی (International Corpus of English , ICE ) طرحی برای گردأوری یک میلیون واژه از گونه های انگلیسی ، در سراسز جهان که در اوایل دهه 1990 آماده خواهد شد .
و بسیاری دیگر که برای آگاهی بیشتر درباره آنها ، می توان به منبع شماره 3 مراجعه کرد . در این کتاب ، بیش از 39 پیکره زبانی برای زبان انگلیسی و تعداد زیادی برای دورانهای گوناگون و آثار کلاسیک آن معرفی شده است .
همچنین مشخصات چندین پیکره بزرگ که برای زبان فرانسه فراهم شده ارائه گردیده ، از جمله : پیکره ARTEL که با همکاری مرکز ملی پژوشهای علمی فرانسه (CNRS) و دانشگاه شیکاگو از حدود 2000 متن برگزیده و 150 میلیون واژه تشکیل شده است . یا پیکره FRANTEXT که با 170 میلیو ن واژه برای فراهم أوردن مواد پایگاه داده های بزرگزبان فرانسه (Trexor de le Langue Francaisa ) ایجاد شد .
در همین منبع ، پیکره های زبانی ایجاد شده برای بسیاری از زبانهای جهان ، از جمله : آلمانی ، ایتالیلیی ، اسپانیایی ، بیشتر زبانهای اسلاوی ، سوئدی ، نروژی ،هلندی ، عربی ، عبری ، ارمنی ، لاتینی ، یونانی ، ژاپنی ،و مانند اینها معرفی شده است .
در پی فراهم آوردن اینگونه مواد زبانی ، بسیاری از کشورها به ایجاد بانکهای داده های زبانی در سطح ملی پرداختند ، از جمله : کشور های فرانسه ، کانادا ، آلمان ، ایتالیا ، اسپانیا ، روسیه ، ایالات متحده ، هلند ، سوئد ، دانمارک ، انگلستان .
فراتر از این ،اکنون چندین بانک داده های زبانی و واژگانی ، در سطح جهانی به وسیله سازمانهای بین المللی ایجاد گردیده و مورد بهره برداری است . مثلا جامعه اروپا ، بانک داده های خود را از طریق سازمان جهانی استاندارد (EURONET ) از راه ISONET و مرکز اطلاعات اصلاحشناسی جهانی ( Infoterm) از راه TERMNET ارائه می کنند (نگاه کنید به منابع شماره 4و 5 ).
در این مجموعه شما با اصول وروشهای استفاده از پایگاه داده در ASP.NET آشنا می شوید. |
واحد پردازش مرکزیCPU
این بخش یک مدار الکترونیکی گسترده وپیچیده است که به انجام دستورات بر نامه های ذخیره شده می پردازد دارای دو بخش است که عبارتند از
واحد کنترل و واحد محاسبه ومنطق
ازچهار بخش ذخیره سازی موقت برای ذخیرهء دستورها و یا داده ها استفاده میکند این مناطق حافظهء موقتcpu
نام دارندRegister
ثباتهای مختلف وظایف متفاوتی را انجام می دهند برای مثال ثبات آدرس مکان ذخیره شدن یک دستور ویا معمولآ نتایج محاسبات را (Accumulator)یک قطعه دادهای را در حافظه دنبال می کند وثبات انباشتگر
جمع آوری می نماید
:واحد کنترل
این بخش تمام سیستم کامپیوتر را به نحوی هدایت می کند که دستورات بر نامه های ذخیره شده را انجام دهند
این بخش باید بتواند با دو بخش واحد محاسبه ومنطق وحافظه ارتباط برقرار کند
:(Alu)واحد محاسبه ومنطق
کار این بخش انجام توابع حسابی مقایسه ای ومنطقی است توابع حسابی شامل جمع، تفریق ، ضرب وتقسیم می شوند عملیات منطقی به مقایسهء اعداد ، حروف وخصوصیات ویژه می پردازد این عملیات سه نوع شرایط را مورد آزمایش قرار می دهد
:شرایط مساوی
در این شرایط دو مقداربا هم برابر هستند
:شرایط کوچکتر
در این شرایط یک مقداراز مقدار دیگر کمتر است
:شرایط بزرگتر
در این شرایط یک مقدار از یک مقدار دیگر بیشتر است
برای توصیف توابع مقایسه ای استفاده می کند(=،<،>)از علایم Aluواحد
:توجه
واحد پردازش مرکزی را که بر روی تنها یک تراشه قرار دارد به طور مختصر ریز پردازنده و یا
PII-333 - 486-DX ریز تراشه می نامند مانند ریز پردازنده های
وقتی از یک ریز پردازنده برای کنترل وسایل بخصوصی مانند سیستم های سوختی موجود در یک -
Intel 8096 ماشین استفاده می شود به آن تراشهء منطقی ویا میکرو کنترلر های
توانایی معماری پردازنده های پنتیوم شرکت اینتل را بهبود بخشیده(Multimedia extensions) MMXتراشهء
و عملکرد بر نامه های کاربردی چند رسانه ای و مخابراتی که دارای ویژگیهای گرافیکی ، تصویری وصوتی را افزایش میدهد
حافظه
حافظه بخشی از کامپیوتر است که داده هاودستورات را برای پردازش شدن نگه میدارد اگر چه عملکردحافظه حافظه دارد اما از این واحد مجزا میباشدCPUارتباط نزدیکی با
اگر از نظر تاریخی نگاهی به حافظه داشته باشیم می بینیم حافظه های اولیه که به صورت لامپ های خلآ
بودند تحول وتکامل یافته و به صورت نیمه رساناهای جدید امروزی درآمده اند
حافظه ءنیمه رسانا
بسیاری از کامپینتر های جدید از حافظه های نیمه رسانا استفاده می کنند و علت آن هم مزایای چندی است
که این نوع حافظه ها دارند از جملهء این مزایا می توان به قابل اطمینان بودن ، فشردگی ، ارزانی و مصرف کم انرژی اشاره کرد
ارزانی این نوع حافظه ها به خاطر تولیدانبوه آن می باشد که موجب کاهش قیمت این نوع حافظه ها شده است
عیب این نوع حافظه هابی ثباتی آنهاست چون این حافظه های نیمه رسانا برای ارایهءداده ها به جریان الکتریسیتهء پیوسته ای نیازدارند اگر جریان الکتریسیته قطع شود داده ها نیز از دست می روند
حافظه ء نیمه رسانا از هزاران مدار کوچک که مسیرهایی برای عبور جریان الکتریسیته هستند ساخته شده است
این مدارها بر روی یک تراشه از جنس سیلیکون قرار گرفته اند یک نوع شناخته شده از طراحی نیمه نام وNیکی از نوع MOSFETدارد در این فن آوری نیمه رسانا از دو ترانزیستور نیمه هادیCMOSرسانا
استفاده شده است که بر روی یک تراشهء سیلیکون واحد جای می گیرند اینگونه از طراحیPودیگری نوع
حافظه انرژی آنها بسیار اندک است و از این رو برای کامپیوتر های قابل حمل مناسب می باشند
RAM ROM
یا حافظه دستیابی تصادفی تمام دستورات وداده های مربوط به بر نامه ای که در حال اجرا هستند را نگهداری می کندRAM
می تواند توسط نرم افزارهای کامپیوتر پاک و یا رو نویسی شود RAM
موجود بر روی کامپیوتر های شخصی را می توان با استفاده از تراشه های حافظه خارجی و یا با RAM
افزایش داد SIMM نصب حافظهء
:دارای دو نوع استRAMبرد مدار کوچکی است که محتوی تراشه های حافظه ای است معمولآSIMM
استاتیکRAM: SRAM
دینامیکRAM:DRAM
به طور پیوسته باز سازی شود والا محتوی خود را از دست می دهدو به همین CPUپویا باید توسط RAM
پویا یا دینامیک گفته می شود RAMدلیل است که به این نوع
دینامیک بخاطر کوچکی و RAMاستاتیک سریع تر است اما در کامپیوترهای شخصی از RAMاگر چه
ارزان تر بودن آن بیشتر استفاده میشود
:(حافظهء فقط خواندنی)ROM
این حافظه شامل برنامه هاو داده هایی است که توسط شرکت سازنده به طور دایمی در آن نوشته شده است این
حافظهROMداده ها می توانند خوانده ویا استفاده شونداما کاربر نمی تواند آنها را تغییر دهد در حقیقت
نامتغییر است
نام دارند میتوان دستورات موجود در داخل برخی ROM BURNERS البته با ابزار ویژه ای که
را تغییر دادROMاز تراشه های
می نامندتراشه های حافظهای فقط خواندنی با قابلیت بر نامه ریزی شدنPROMاین تراشه های تغییر دادنی را
حافظهء پنهان
حافظه پنهان مقدار کوچکی از حافظه بسیار سریع است که برای مقاصد بخصوصی چون افزایش سرعت داخلی داده ها و دستورات نرم افزاری طراحی شده است
این سیستم فرعی حافظه از مقادیر دادهای پر استفاده نسخه بردازی نی کند تا برای دسترسیسریع آماده باشند
که بیشتر مورد استفاده قرار می گیرند را ذخیره نموده و RAMحافظه ء پنهان محتویات مکانهایی از
و جاهایی را که این اقلام داده ای ذخیره می شوند را آدرس دهی می کنند
وقتی پردازنده به آدرسی در حافظه ارجاع می کند حافظه پنهان وارسی می کند که آیا چنین آدرسی را دارد یا نه اگر آدرسی داشته باشد داده به پردازنده برگشت داده می شودو اگر چنین آدرسی نداشته باشد یک دسترسی به حافظهء عادی اتفاق می افتد حافظه پنهانی دارای دو نوع داخلی و خارجی است حافظه پنهانی داخلی بر روی معماری خود پردازنده تعبیه شده است در حالی که خافظه پنهانی خارجی بر روی یک تراشه مجزا قرار دارد
سرعت و قدرت یک کامپیوتر
سرعت یکی از ویژگیهایی است که هنگام انتخاب کامپیوتر به آن توجه می شود البته قدرت نیز مشتق از سرعت و بسیاری از عوامل دیگر مانند اندازهء حافظه است
سرعت پردازش کامپیوتر
کامپیوتر های مختلف دارای سرعتهای پردازش متفاوتی هستند گاهی انجام یک دستور معین در یک کامپیوتر کند یک هزارم ثانیه طول می کشد در صورتی که همین دستور در کامپیوترهای سریع می تواند در یک میلینیوم ثانیه یا یک بیلینیوم ثانیه انجام شود و حتی در انواع خیلی سریعتر در یک تریلیونیم ثانیه انجام شود
سرعت ریز پردازنده ها را معمولآ بر اساس مگا هرتز نشان می دهندو منظور از آن تعداد دوری است که یک وسیله می توانددر ثانیه بچرخد یکی از واحدهای دیگری که برای سنجش سرعت کامپیوتر استفاده می استMIPSشود
معادل یک میلیون دستور در ثانیه است سومین واحدی که برای سنجش سرعت استفاده می شود MIPSهر
مگا فلاپ استو منظور از آن یک میلیون عمل اعشاری در ثانیه می باشد از این واحد برای سنجش توانایی کامپیوتر در انجام عملیات پیچیده ریاضی استفاده می شود
خطوط گذرگاهی
هر خط گذر گاهی مجموعه ای از مسیرهای الکترونیکی موازی است که به طور داخلی داده ها دا درون سیستم از یک مکان به مکان دیگری می برد مقدار دادهای که در هر بار می تواند حمل شود پهنای گذر گاه نام دارد پهنای گذر گاه نشان دهندهءتعداد مسیرهای الکترونیکی است
هر چه پهنای گذر گاه بیشتر باشد در نتیجه کامپیوتر قوی تر است وجود پهنای گذر گاه بزرگ می تواند مفاهیم زیر را به همراه داشته باشد
کامپیوتر در یک زمان معین می تواند داده های بیشتری را منتقل کند که این موجب بالا رفتن سرعت کامپیوتر می شودکامپیوتر می تواند از دستورات متنوع بیشترو بزرگتری پشتیبانی کند
وقتی جستجویی در یک موتور جستجوگر انجام و نتایج جستجو ارایه می شود، کاربران در واقع نتیجه کار بخش های متفاوت موتور جستجوگر را می بینند. موتور جستجوگر قبلا" پایگاه داده اش را آماده کرده است و این گونه نیست که درست در همان لحظه جستجو، تمام وب را بگردد. بسیاری از خود می پرسند که چگونه ممکن است گوگل در کمتر از یک ثانیه تمام سایت های وب را بگردد و میلیون ها صفحه را در نتایج جستجوی خود ارایه کند؟
گوگل و هیچ موتور جستجوگر دیگری توانایی انجام این کار را ندارند. همه آنها در زمان پاسخ گویی به جستجوهای کاربران، تنها در پایگاه داده ای که در اختیار دارند به جستجو می پردازند و نه در وب! موتور جستجوگر به کمک بخش های متفاوت خود، اطلاعات مورد نیاز را قبلا" جمع آوری، تجزیه و تحلیل می کند، آنرا در پایگاه داده اش ذخیره می نماید و به هنگام جستجوی کاربر تنها در همین پایگاه داده می گردد. بخش های مجزای یک موتور جستجوگر عبارتند از:
الف Spider- (عنکبوت)
اسپایدر یا روبوت (Robot)، نرم افزاری است که کار جمع آوری اطلاعات مورد نیاز یک موتور جستجوگر را بر عهده دارد. اسپایدر به صفحات مختلف سر می زند، محتوای آنها را می خواند، لینکها را دنبال می کند، اطلاعات مورد نیاز را جمع آوری می کند و آنرا در اختیار سایر بخش های موتور جستجوگر قرار می دهد. کار یک اسپایدر، بسیار شبیه کار کاربران وب است. همانطور که کاربران، صفحات مختلف را بازدید می کنند، اسپایدر هم درست این کار را انجام می دهد با این تفاوت که اسپایدر کدهای HTML صفحات را می بیند اما کاربران نتیجه حاصل از کنار هم قرار گرفتن این کدها را. index.html صفحه ای است که کاربران آنرا به صورت شکل (1) می بینند:
شکل 1- نمونه ای از صفحات وب که توسط مرورگرها نشان داده می شود.
اما یک اسپایدر آنرا چگونه می بیند؟
برای این که شما هم بتوانید دنیای وب را از دیدگاه یک اسپایدر ببینید، کافی است که کدهای HTML صفحات را مشاهده کنید. برای این کار در مرورگر مورد استفاده خود، مسیر نشان داده شده در شکل (2) دنبال کنید.
شکل 2- روش مشاهده کدهای HTML یک صفحه وب
با انجام این کار فایل متنی شکل (3) به شما نشان داده می شود:
شکل 3- کدهای HTML سازنده یک صفحه وب
آیا این دنیای متنی برای شما جذاب است؟
اسپایدر، به هنگام مشاهده صفحات، بر روی سرورها رد پا برجای می گذارد. شما اگر اجازه دسترسی به آمار دید و بازدیدهای صورت گرفته از یک سایت و اتفاقات انجام شده در آن را داشته باشید، می توانید مشخص کنید که اسپایدر کدام یک از موتورهای جستجوگر صفحات سایت را مورد بازدید قرار داده است. یکی از فعالیتهای اصلی که در SEM انجام می شود تحلیل آمار همین دید و بازدیدها است.
اسپایدرها کاربردهای دیگری نیز دارند، به عنوان مثال عده ای از آنها به سایت های مختلف مراجعه می کنند و فقط به بررسی فعال بودن لینک های آنها می پردازند و یا به دنبال آدرس ایمیل (Email) می گردند.
ب- Crawler (خزنده)
کراولر، نرم افزاری است که به عنوان یک فرمانده برای اسپایدر عمل می کند. آن مشخص می کند که اسپایدر کدام صفحات را مورد بازدید قرار دهد. در واقع کراولر تصمیم می گیرد که کدام یک از لینک های صفحه ای که اسپایدر در حال حاضر در آن قرار دارد، دنبال شود. ممکن است همه آنها را دنبال کند، بعضی ها را دنبال کند و یا هیچ کدام را دنبال نکند.
کراولر، ممکن است قبلا" برنامه ریزی شده باشد که آدرس های خاصی را طبق برنامه، در اختیار اسپایدر قرار دهد تا از آنها دیدن کند. دنبال کردن لینک های یک صفحه به این بستگی دارد که موتور جستجوگر چه حجمی از اطلاعات یک سایت را می تواند (می خواهد) در پایگاه داده اش ذخیره کند. همچنین ممکن است اجازه دسترسی به بعضی از صفحات به موتورهای جستجوگر داده نشده باشد.
شما به عنوان دارنده سایت، همان طور که دوست دارید موتورهای جستجوگر اطلاعات سایت شما را با خود ببرند، می توانید آنها را از بعضی صفحات سایت تان دور کنید و اجازه دسترسی به محتوای آن صفحات را به آنها ندهید. موتور جستجو اگر مودب باشد قبل از ورود به هر سایتی ابتدا قوانین دسترسی به محتوای سایت را (در صورت وجود) در فایلی خاص بررسی می کند و از حقوق دسترسی خود اطلاع می یابد. تنظیم میزان دسترسی موتورهای جستجوگر به محتوای یک سایت توسط پروتکل Robots انجام می شود. به عمل کراولر ، خزش (Crawling) می گویند.
ج- Indexer (بایگانی کننده)
تمام اطلاعات جمع آوری شده توسط اسپایدر در اختیار ایندکسر قرار می گیرد. در این بخش اطلاعات ارسالی مورد تجزیه و تحلیل قرار می گیرند و به بخش های متفاوتی تقسیم می شوند. تجزیه و تحلیل بدین معنی است که مشخص می شود اطلاعات از کدام صفحه ارسال شده است، چه حجمی دارد، کلمات موجود در آن کدامند، کلمات چندبار تکرار شده اند، کلمات در کجای صفحه قرار دارند و ... .
در حقیقت ایندکسر، صفحه را به پارامترهای آن خرد می کند و تمام این پارامترها را به یک مقیاس عددی تبدیل می کند تا سیستم رتبه بندی بتواند پارامترهای صفحات مختلف را با هم مقایسه کند. در زمان تجزیه و تحلیل اطلاعات، ایندکسر برای کاهش حجم داده ها از بعضی کلمات که بسیار رایج هستند صرفنظر می کند. کلماتی نظیر a ، an ، the ، www ، is و ... . از این گونه کلمات هستند.
د - DataBase (پایگاه داده)
تمام داده های تجزیه و تحلیل شده در ایندکسر، به پایگاه داده ارسال می گردد. در این بخش داده ها گروه بندی، کدگذاری و ذخیره می شود. همچنین داده ها قبل از آنکه ذخیره شوند، طبق تکنیکهای خاصی فشرده می شوند تا حجم کمی از پایگاه داده را اشغال کنند. یک موتور جستجوگر باید پایگاده داده عظیمی داشته باشد و به طور مداوم حجم محتوای آنرا گسترش دهد و البته اطلاعات قدیمی را هم به روز رسانی نماید. بزرگی و به روز بودن پایگاه داده یک موتور جستجوگر برای آن امتیاز محسوب می گردد. یکی از تفاوتهای اصلی موتورهای جستجوگر در حجم پایگاه داده آنها و همچنین روش ذخیره سازی داده ها در پایگاه داده است.
و- Ranker (سیستم رتبه بندی)
بعد از آنکه تمام مراحل قبل انجام شد، موتور جستجوگر آماده پاسخ گویی به سوالات کاربران است. کاربران چند کلمه را در جعبه جستجوی (Search Box) آن وارد می کنند و سپس با فشردن Enter منتظر پــاسخ می مانند. برای پاسخگویی به درخواست کاربر، ابتدا تمام صفحات موجود در پایگاه داده که به موضوع جستجو شده، مرتبط هستند، مشخص می شوند. پس از آن سیستم رتبه بندی وارد عمل شده، آنها را از بیشترین ارتباط تا کمترین ارتباط مرتب می کند و به عنوان نتایج جستجو به کاربر نمایش می دهد.
حتی اگر موتور جستجوگر بهترین و کامل ترین پایگاه داده را داشته باشد اما نتواند پاسخ های مرتبطی را ارایه کند، یک موتور جستجوگر ضعیف خواهد بود. در حقیقت سیستم رتبه بندی قلب تپنده یک موتور جستجوگر است و تفاوت اصلی موتورهای جستجوگر در این بخش قرار دارد. سیستم رتبه بندی برای پاسخ گویی به سوالات کاربران، پارامترهای بسیاری را در نظر می گیرد تا بتواند بهترین پاسخ ها را در اختیار آنها قرار دارد.
حرفه ای های دنیای SEM به طور خلاصه از آن به Algo ( الگوریتم) یاد می کنند. الگوریتم، مجموعه ای از دستورالعمل ها است که موتور جستجوگر با اعمال آنها بر پارامترهای صفحات موجود در پایگاه داده اش، تصمیم می گیرد که صفحات مرتبط را چگونه در نتایج جستجو مرتب کند. در حال حاضر قدرتمندترین سیستم رتبه بندی را گوگل در اختیار دارد.
می توان با ادغام کردن اسپایدر با کراولر و همچنین ایندکسر با پایگاه داده، موتور جستجوگر را شامل سه بخش زیر دانست که این گونه تقسیم بندی هم درست می باشد:
تذکر- برای سهولت در بیان مطالب بعدی هر گاه صحبت از بایگانی کردن (شدن) به میان می آید، مقصود این است که صفحه تجزیه و تحلیل شده و به پایگاه داده موتور جستجوگر وارد می شود.
برای آنکه تصور درستی از نحوه کار یک موتور جستجوگر داشته باشید داستان نامتعارف زیر را با هم بررسی می کنیم. داستان ما یک شکارچی دارد. او تصمیم به شکار می گیرد:
- کار کراولر:
او قصد دارد برای شکار به منطقه حفاظت شده ابیورد، واقع در شهرستان درگز (شمالی ترین شهر خراسان بزرگ) برود.
- پروتکل Robots :
ابتدا تمام محدودیت های موجود برای شکار در این منطقه را بررسی می کند:
فرض می کنیم او مجوز شکار یک اوریال (نوعی آهو) را از شکاربانی منطقه دریافت می کند.
- کار اسپایدر
او اوریالی رعنا را شکار می کند و سپس آنرا با خود به منزل می برد.
- کار ایندکسر
شکار را تکه تکه کرده، گوشت، استخوان، دل و قلوه، کله پاچه و ... آنرا بسته بندی می کند و بخش های زاید شکار را دور می ریزد.
- کار پایگاه داده
بسته های حاصل را درون فریزر قرار داده، ذخیره می کند.
- کار سیستم رتبه بندی
مهمانان سراغ او می آیند و همسرش بسته به ذائقه مهمانان برای آنها غذا طبخ می کند. ممکن است عده ای کله پاچه، عده ای آبگوشت، عده ای ... دوست داشته باشند. پخت غذا طبق سلیقه مهمانان کار سختی است. ممکن است همه آنها آبگوشت بخواهند اما آنها مسلما" بامزه ترین آبگوشت را می خواهند!
نکته ها:
» همانگونه که میدانید یک فیلد می تواند از چندین رکورد و یک جدول از چند فیلد تشکیل شود ، با توجه به این مطلب یک پایگاه داده هم میتواند دارای چندین جدول باشد . حال هر یک از این جدول ها می توانند اطلاعاتی را در خود ذخیره کنند که با جدول دیگری در ارتباط باشد یا این که هیچگونه ارتباطی را بین آنها قایل نشویم . برای مثال ما جدولی داریم مخصوص نگهداری اطلاعات فردی افراد و در جدول دیگری اطلاعات مالی این افراد را نگهداری میکنیم . بدون شک باید بین این دو جدول ارتباطی وجود داشته باشد تا ما تشخیص دهیم که کدام اطلاعات مربوط به کدام فرد است . وظیفه برقراری این ارتباط بر عهده فیلد کلید یا ( Primary Kay )است که خود ما آن را تعیین میکنیم .
» معمولا هر جدول یک فیلد موسوم به فیلد کلید KeyField دارد که از آن برای حفظ یکپارچگی پایگاه داده و برقراری رابطه با جدول های دیگر استفاده می کند . هر جدول می تواند فقط یک فیلد کلید یا کلید اولیه داشته باشد ، ولی می تواند دارای چند فیلد خارجی Foreign Key باشد . نحوه نمایش داده ها را فیلد کلید اصلی کنترل می کند و از فیلد خارجی برای مرتب کردن جدول با جدول های دیگر استفاده می شود .
» برای ایجاد ارتباط بین جدول ها در محیط Access شما باید از منوی Tools گزینه Relationships را انتخاب کنید و پس از انتخاب جدول ها خواهید توانست بین آنها توسط فیلدهای کلید ارتباط با معنی ایجاد کنید .
_ ما توسط فیلد کلید می توانیم انواع روابط زیر را بین جدول ها ایجاد کنیم :
» رابطه یک به یک : در این نوع ارتباط فیلدی در جدول اول یا اصلی به عنوان فیلد کلید تعریف می شود و با فیلد دیگری که در جدول بعدی یا فرعی به عنوان فیلد کلید تعریف شده است ارتباط داده می شود . در این صورت اطلاعات موجود در فیلد جدول فرعی باید کاملا مشابه اطلاعات و داده های موجود در فیلد کلید اصلی اصلی باشد . یعنی برای هر رکورد موجود در فیلد کلید اصلی باید رکورد متناظر با آن در فیلد کلید فرعی موجود باشد . و نمی تواند رکورد تکراری در هر یک از جدول ها وجود داشته باشد .
» رابطه یک به چند : در این نوع ارتباط فیلد اشاره گر می تواند به چند رکورد در جدول های دیگر اشاره کند یا این که برای هر رکورد موجود در فیلد کلید اصلی چند رکورد متناظر با آن در جدول های دیگر موجود باشد .
در این حالت نباید فیلد متناظر با فیلد کلید اصلی در جدول دیگر به عنوان فیلد کلید انتخاب گردد . بلکه باید فقط نوع فیلدها برابر باشد . برای مثال در پایگاه داده مخصوص یک آموزشگاه هر دانش آموز میتواند چندین دوره یا درس را برای گذراندن انتخاب کند .
نکته : ارتباط یک به چند مهمترین و پر کاربرد ترین ارتباط موجود در میان جدول ها محسوب میشود .
» رابطه چند به چند : به دلیل این که این نوع ارتباط پیچیدگی زیادی داشته و در مواقع بسیار استثنایی از آن استفاده می شود و خوب ، البته من هم آشنایی چندانی یا بهتر بگم هیچ آشنایی با این نوع رابطه ندارم از شرح آن خود داری میکنم . امیدوارم که منو درک کنید .
خلاصه مطلب : ساخت برنامه هایی که از پایگاه داده در سطح گسترده ای استفاده می کنند بدون ایجاد ارتباط بین جدول ها توسط فیلد های کلید امکان پذیر نیست .