آموزش Registry

& مقدمه :

 

“ رجیستری قلب و روح ویندوز  XP   است . ”

    جری هانی کات در کتاب :   Microsoft Windows XP Registry Guide

   در حال حاضر رجیستری یکی از ملزومات اصلی ویندوز محسوب می شود و شاید اگر این امکان در ویندوز وجود نداشت، از قدرت و محبوبیت ویندوز کاسته می شد .

   رجیستری در واقع یک مخزن نگهداری اطلاعات و داده های پیکربندی ویندوز است و امکان مدیریت و ویرایش آنها را فراهم می کند . بر همین اساس می توان تعریفی از رجیستری بیان کرد :

 † رجیستری یک بانک اطلاعاتی سلسله مراتبی است و با استفاده از این ویژگی دسترسی به پارامترهای پیکربندی ویندوز را آسان می سازد . …

   پس از اجرای ویندوز هر گونه تغییرات و تنظیماتی که توسط کاربر بر روی سیستم عامل صورت گیرد در رجیستری ذخیره می شود و می توان آنها را مطابق با خواست کاربر تغییر داد . یکی از مهمترین ویژگی های رجیستری اینست که امکان ایجاد تنظیماتی را به کاربر می دهد که با استفاده از رابط گرافیکی ویندوز ممکن نیست و باعث می شود که کاربر به هر شکل که خواست تنظیمات داخلی ویندوز را سفارشی کند .

4تاریخچه :

 

 u سیستم عامل MS_DOS : داده های پیکربندی و تنظیمات زیادی در آن وجود نداشت، به همین خاطر به منظور ذخیره سازی داده های پیکربندی خود از فایلهای متنیConfig.sys , Autoexec.bat  استفاده می کرد و هر برنامه کاربردی نیز مسئول کنترل پارامترهای خود می بود .

   همچنین به دلیل اینکه این سیستم عامل از رابط گرافیکی برخوردار نبوده و فقط در حالت متنی کار می کرد لزوم ذخیره سازی داده هایی از قبیل پارامترهای مختص کاربر مثل تغییر ظاهری سیستم عامل، تغییر مکان و اندازه پنجره ها و سفارشی کردن قسمت های مختلف سیستم عامل متناسب با خواست کاربر در آن وجود نداشت .

   اطلاعات درون این فایلها در قالب رشته ای از کاراکترها و کلمات ذخیره می شد و امکان ویرایش آنها با استفاده از برنامه های ویرایش متن وجود داشت و به این طریق امکان ایجاد تنظیماتی در سیستم عامل فراهم می شد .

 v سیستم عامل Windows 3.x : شاید نام سیستم عامل Windows برای آن چندان مناسب نباشد، به دلیل اینکه شالوده اصلی آن همان سیستم عامل MS_DOS بود و تنها یک پوسته گرافیکی به همراه پنجره ها و اشکال گرافیکی بر روی آن قرار گرفته بود . به هر حال اطلاعاتی که لازم بود در این محیط گرافیکی ذخیره شود خیلی بیشتر از حالت قبل بود، برای این منظور از فایهای متنی INI استفاده شد .

   اساسی ترین فایلهای INI که در سری ویندوزهای 3.x وجود داشت فایل های  Win.ini و  System.ini  می باشد . در فایل  Win.ini  اطلاعات نرم افزاری برنامه های نصب شده تحت ویندوز ذخیره می شد . در این حالت بر اثر نصب برنامه های گوناگون در ویندوز حجم این فایل به سرعت افزایش پیدا می کرد و وقتی به مرز مجاز 64KB می رسید اجرای برنامه ها مختل شده و  با خطاهایی مواجه می گردید . شرکت Microsoft به عنوان راه حلی موقتی از طراحان نرم افزار می خواست که برای برنامه خود یک فایل .ini اختصاصی طراحی نمایند .

فایل های INI مربوط به هر نرم افزار جایگاه مشخصی در ساختار شاخه و مسیرهای دیسک سخت ندارد و هر جایی که برنامه نصب شده باشد می توان این فایل ها را پیدا کرد . بنابراین تعداد زیاد  این فایل ها و  پراکندگی آنها در سطح دیسک، جستجو و ویرایش آنها را بسیار مشکل می ساخت . فایل System.ini هم به عنوان مخزنی برای نگهداری اطلاعات سخت افزارهای نصب شده در کامپیوتر استفاده می شد .

   فایل های .ini هنوز هم در سیستم عاملهای امروزی وجود داشته و با تغییر آنها می توان تنظیماتی را در ویندوز انجام داد .

w  Windows 95 , 98 : این سیستم عامل ها نسبت به نسخه های قبلی بسیار پیچیده تر و با جزئیات بیشتری ایجاد شدند و به این ترتیب فایلهای متنی INI برای ذخیره سازی ویژگی ها و داده های پیکربندی ویندوز کافی نبود .  بنابراین در این سیستم عامل ها بطور کلی ساختار ذخیره سازی اطلاعات مربوط به رجیستری تغییر کرده و درون فایلهای باینری همچون  System.dat  ,  User.dat  ذخیره گردید .

   در فایل  User.dat  پارامترهای مختص کاربر و در فایل  System.dat  پارامترهای مختص کامپیوتر ذخیره می گردید . از آنجایی که ساختار ذخیره سازی این فایلها باینری (دودویی) بود، هم حجم بیشتری از اطلاعات را در خود جای می داد و هم امنیت آن افزایش پیدا می کرد . به منظور ایجاد امکان ویرایش رجیستری نیز یک برنامه کمکی به نام Regedit.exe در ویندوز قرار داده شد که دسترسی به پارامترهای آن را ساده تر می ساخت . در بخش های بعدی توضیحات بیشتری را در مورد این برنامه بیان می کنیم .

x  Windows 2000 , XP : باز هم ویژگی ها و جزئیات بیشتری به سیستم عامل ها افزوده شد و لازم بود که یک ساختار بزرگتر و قویتری برای ذخیره سازی رجیستری فراهم شود . در این حالت از فایلهایی موسوم به فایلهای Hive برای این منظور استفاده گردید . ساختار ذخیره سازی این فایلها نیز باینری بوده و به منظور ویرایش آن از برنامه Regedit استفاده می شود . البته ابزارهای دیگری نیز برای ویرایش رجیستری ایجاد گردید که در مورد هر یک از آنها در بخش روش های مدیریت رجیستری توضیحاتی را بیان می کنیم .

فایلهای Hive انشعاب نام فایل ندارند ولی فایلهای پشتیبان آنها انشعاب نام فایل دارند :

.alt

فایل پشتیبان هایو در ویندوز 2000

.log

فایل ثبت تراکنش و تغییرات فایلهای هایو

.sav

کپی فایل هایو در ویندوز XP

 

  فایلهای هایو مربوط به پارامترهای مختص کامپیوتر درمسیر %SYSTEMROOT%System32Config ذخیره شده است و فایلهای هایو مربوط به پارامترهای مختص کاربر در پوشه های پروفایل کاربران قرار دارند .

به عنوان مثال تعدادی از آنها در مسیر  %USERPROFILE%Ntuser.dat ذخیره شده اند .

آموزش زبان SQL

 

زبان SQL (Structure Query Language) یک زبان قدرتمند ارتباط با بانکهای اطلاعاتی و به ویژه بانکهای رابطه ای می باشد، در ابتدا چندین دستور SQL را که برای ایجاد، ویرایش، بازیابی و حذف بانکهای اطلاعاتی مورد استفاده قرار می گیرد

را بررسی می کنیم .

دستور SELECT برای بازیابی رکوردها و فیلدهای خاصی از جدول به کار میرود که نحوه استفاده از آن به شرح زیر می باشد :

SELECT [predicate] {fields-name} From tables-name

نام فیلدهای گروه بندیGroup By شرطهایی برای فیلتر کردن داده ها Where

نام فیلدی که مرتب سازی بر اساس آن انجام می شود Order By

شرطهایی برای نمایش گروه های ایجاد شده Having

به جای عبارت predicate از مقادیر زیر می توان استفاده کرد :

All : بازیابی تمام رکوردها

Distinct : حذف رکوردهایی با داده های تکراری (البته در فیلدهای انتخاب شده)

Distinct Row : کل یک رکورد را با رکورد دیگر مقایسه می کند و اگر برابر باشند آنها را در نمایش حذف می کند .

Topen[percent] : بازیابی درصدی از رکوردهای جدول

پارامتر Group By برای گروه بندی رکوردهایی که مقادیر آنها در یک و یا چند فیلد یکسان باشد مورد استفاده قرار می گیرد و حداکثر می توان 10 گروه مشخص نمود .

پارامتر Order By برای مرتب سازی رکوردها بر اساس فیلد خاصی از جدول بصورت صعودی و یا نزولی مورد استفاده قرار می گیرد، به طور پیش فرض اطلاعات بصورت صعودی مرتب شده و اگر بخواهیم آنها را بصورت نزولی مرتب نماییم باید از عبارت Descending در جلوی نام فیلد استفاده کنیم .

پارامتر Having برای ایجاد شرط در نمایش رکوردهای گروه بندی شده بکار می رود.

از دستور SELECT برای ایجاد جداول نیز می توان استفاده کرد .

برای این کار باید به شیوه زیر عمل کرد :

SELECT [predicate] {fields-name} Into Table1-name

From Table2-name [Where …] [Group By …] [Order By …] [Having]

این دستور جدول Table2 را از فیلدهای ذکر شده جدول Table1 ایجاد کرده و رکوردهای بازیابی شده از جدول Table1 را در Table2 کپی می نماید .

همچنین از دستور SELECT برای الحاق جداول و تفریق دو جدول نیز استفاده

می شود که مثالهایی از این موارد را در زیر مشاهده می کنید :

SELECT * From s,p,sp Where s.s#=sp.s# and p.p#=sp.p#

الحاق بین سه جدول s , p , sp

(s# فیلد مشترک s,sp و p# فیلد مشترک p,sp می باشد .)

SELECT * From p Where p# Not In(SELECT p# From sp)

تفریق جداول p , sp

توابع پیش ساخته SQL

این توابع می توانند در بازیابی بهتر رکوردها از جدول به ما کمک کنند .نمونه ای از این توابع و نحوه استفاده از آنها را در دستور SELECT مشاهده می کنید :

Sum : مجموع مقادیر یک فیلد

SELECT Sum(grade) From student

Avg : میانگین مقادیر یک فیلد

SELECT Avg(salary) From employee

Count : محاسبه تعداد کل رکوردها

SELECT Count(*) From class

Max , Min : کمترین و بیشترین مقدار یک فیلد

SELECT Max(average),Min(grade) From student

عملگر IN : مقایسه یک مقدار با فهرستی از مقادیر

SELECT * From s Where status IN('10' , '20' , '30')

این دستور رکوردهایی را که فیلد status آن مقادیر 10 یا 20 و یا 30 داشته باشد، بازیابی می کند .

عملگر Like : مقایسه یک مقدار با مقادیر مشابه

SELECT * From s Where s# Like '_2%'

این دستور رکوردهایی که حرف دوم فیلد s# آن 2 باشد را بازیابی می کند .

ویرایش اطلاعات جدول با استفاده از ًُSQL

دستور Insert برای اضافه کردن رکورد به جدول استفاده می شود، رکورد جدید را به دو صورت می توان اضافه نمود که در مثالهای زیر مشاهده می کنید :

Insert Into student (Stno , Fname , Lname)

')علوی' , 'رضا Values ('15' , '

Insert Into study (Stno , Name , Grade)

SELECT Stno,Name,Grade From student

دستور دوم مقادیر شماره دانشجویی، نام و نمره تمام رکوردهای جدول student را به جدول study اضافه می کند .

دستور Update برای اصلاح مقادیر جدول به کار می رود که نحوه استفاده از آن را در زیر مشاهده می کنید :

Update Table-name Set field1=value1,field2=value2,…

[Where…]

دستور Delete برای حذف رکوردها از جدول استفاده می شود و نحوه استفاده از آن مطابق نمونه زیر می باشد :

Delete From Table-name [Where…]

دستور Create table به منظور ایجاد جدول مورد استفاده قرار می گیرد که نحوه بکار بردن آن را در مثال زیر مشاهده می کنید :

Create table sp (s# integer not null , p# char(6) not null,

QTY smallint , primary key(s# , p#),

foreign key(s#) references s,

foreign key(p#) references p)

primary key برای تعریف کلید اصلی می باشد که در این مثال ترکیبی از فیلدهای

s# و p# است و همچنین foreign key برای تعریف کلید خارجی می باشد .

و اما دستور Drop table نیز برای حذف جدول بکار میرود و نحوه استفاده از آن به شرح زیر می باشد :

Drop table Table-name

به منظور تغییر ساختار جداول نیز می توان از SQL استفاده کرد، برای اینکار باید از دستور Alter table استفاده نمود :

Alter table Table-name [Modify|Add|Drop] [field-name] [Type]

[not null|null] [Add|Drop] [Constraint Constraint-name]

مثال :

Alter table s Modify (s# char(5)) , Add (price float not null)

Modify برای تغییر خواص فیلدها ، Add برای اضافه کردن فیلد و Drop برای حذف فیلد می باشد . Constraint نیز برای تغییر کلید خارجی بکار می رود .