Database - پشتیبانی البرزنیک
   
    07 Sep 2010 
مرکز پشتیبانی البرزنیک » مرکز اطلاعات » Database
 Database
راه حل Database چيست؟
يك Database يك مجموعه اي از داده هاست كه به شكلي سازمان يافته ذخيره شده است.نرم افزارهايي كه براي كار با ديتابيس ها بكار مي روند DBMS (Database Management System) ناميده مي شوند.در واقع ايجاد و مديريت ديتابيسها را از طريق DBMS ها انجام مي دهيم.يك ديتابيس يك يا چند فايل ذخيره شده در هاردديسك است.شما هيچ وقت مستقيماً به ديتابيس دسترسي نداريد در واقع شما از DBMS استفاده مي كنيد و DBMS به جاي شما با ديتابيس سر و كار دارد.

جدول (Tables):
يك جدول يك ليست ساخت يافته است كه مي تواند داده هاي خاصي مثل ليست مشتري ها يا توليدات را ذخيره كند.نكته مهم اين است كه داده ها بايد از نوع خاصي باشند يعني شما نمي توانيد اطلاعات افراد و همچنين مشخصات كتاب را در يك جدول قرار دهيد.انجام چنين كاري بازيابي داده ها را مشكل مي كند.هر جدول نامي منحصر به فرد (unique) در ديتابيس دارد و با آن شناسايي مي شود.
جداول مشخصاتي هايي دارند كه نحوه ذخيره شدن داده ها را مشخص مي كند.مثلاً چه داده هايي ذخيره شده،چگونه از هم جدا شده و... . اين مجموعه از اطلاعات كه يك جدول را توصيف مي كند به عنوان يك الگو (schema) شناخته مي شود.در واقع هر الگو براي توصيف ويژگي هاي جداول و ارتباط بين آنها و همچنين خود ديتابيس به كار مي رود.
ستون (Column):
جدول ها از يك يا چند ستون ساخته مي شوند.هر ستون حاوي جزء به خصوصي از اطلاعات درون جدول (field) است.مثلاً در جدولي كه اطلاعات خريداران در آن ذخيره مي شود ستون هاي كد خريدار،نام،آدرس و ... وجود خواهد داشت.اينكه داده ها را درست به ستون ها تقسيم كنيم خيلي مهم است.مثلاً كشور،شهر،ناحيه و ... هميشه بايد در ستونهاي جدا باشند.به اين ترتيب امكان فيلتر كردن و يا مرتب سازي داده ها بر روي ستون اي خاص وجود خواهد داشت.
نوع داده (Datatype):
هر Datatype يك نوع داده است.براي همهء ستون هاي جدول يك Datatype تعريف مي شود.Datatype نوع داده اي كه در ستون ذخيره مي شود را تعيين مي كند.مثلاً اگر ستوني حاوي اعداد باشد نوع دادهء آن ستون بايد از يكي از انواع عددي باشد.همچنين Datatype به مرتب سازي درست داده ها كمك مي كند.
سطر (Row):
داده ها در جدول در سطرها ذخيره مي شوند.مثلاً در جدول مربوط به خريداران اطلاعات هر مشتري در يك سطر ذخيره خواهد شد.گاهي براي اشاره به سطرها از اصطلاح record استفاده مي شود.
كليد اصلي (Primary Key):
كليد اصلي يك يا چند ستون از سطر است كه مقادير آنها منحصر بفرد است و بوسيلهء آن سطر شناسايي مي شود.بدون primary key حذف اطلاعاتي خاص از جدول خيلي مشكل است.با رعايت شرايط زير هر ستون از جدول مي تواند يك primary key باشد.
2-36-5-1- هيچ دو سطري ارزش يكساني براي primary key نداشته باشد.
2-36-5-2- ستون primary key ها نمي تواند NULL باشد.
2-36-5-3-امكان تغيير ارزش ستون primary key وجود ندارد.
2-36-5-4- اگر يك سطر از جدول حذف شود مقدار primary key آن قابل استفادهء مجدد نيست.
SQL چيست؟
sqlمخفف Structured Query Language می باشد كه محبوبترین زبان كامپیوتری است كه برای ایجاد،تغییر و بازیابی و عملیات بر روی داده ها در مدل رابطه‌ای می باشد. این زبان به سمت مدل شی گرا- رابطه‌ای نیز پیشرفت كرده است. SQL استاندارد‌های ANSI/ISO را نیز دریافت كرده است.
مفاهيم اوليه:
SQL زباني است كه براي ارتباط با ديتابيس به كار مي رود پس قبل از اينكه به خود SQL بپردازيم اهميت دارد كه برخي مفاهيم اساسي دربارهء ديتابيس را بفهميم.شايد ملتفت نباشيد! ولي شما همواره از ديتابيس استفاده مي كنيد.هر بار كه يك نام را از ليست آدرسها را در ايميلتان انتخاب مي كنيد،موقعي كه شما Search اي را در اينترنت انجام مي دهيد و ... شما داريد از ديتابيس استفاده مي كنيد.با اين وجود هنوز سردرگمي وجود دارد كه ديتابيس واقعاً چيست؟به خصوص كه هر كس تعريف خاصي از اصطلاحات ديتابيس دارد.بنابر اين يك شروع خوب آشنايي با اين اصطلاحات است.
تاریخچه SQL:
منشا اصلی SQL به مقاله Edgar F. Codd تحت عنوان " مدل رابطه‌ای داده ها برای بانك‌های داده‌ای اشتراكی " كه در سال 1970 منتشر شد،باز می گردد. در دهه 70 گروهی از شركت IBM در شهر San Jose بر روی سیستم پایگاه داده ای (System R) بدون توجه به این مقاله كار می كردند و زبان SEQUEL(Structured English Query Language) را به منظور عملیات و بازیابی اطلاعات ذخیره شده در System R ایجاد كردند. اگر چه SQL ناشی از تلاشهای كاد بود اما Donald D. Chamberlin و Raymond F. Boyce را به عنوان طراحان زبان SEQUEL می دانند.
سمینارهایی در زمینه تکنولوژی بانک اطلاعاتی و مباحثاتی در مورد مزایای مدل رابطه‌ای جدید برگزار گردید. تا 1976 مشخص بود که IBM طرفدار جدی تکنولوژی بانک اطلاعاتی رابطه‌ای بوده، توجه زیادی نسبت به زبانSQL دارد. تبلیغات در زمینه System/R باعث جذب گروهی از مهندسین در Menlo Park در کالیفرنیا گردید، و این گروه به این نتیجه رسیدند که تحقیقات IBM منجر به یک بازار تجاری برای بانک‌های اطلاعاتی رابطه‌ای خواهد گردید.
در 1977 این گروه شرکتی بنام Inc وRelational Software تاسیس نمودند تا یک DBMS رابطه‌ای بر اساس SQL بسازند. محصولی بنام Oracle در1979 عرضه گردید، و اولین DBMS رابطه‌ای بوجود آمد. به این ترتیب محصول Oracle باعث گردید اولین محصول IBM برای مدت 2 سال در بازار دچار رکود باشد. این محصول بر روی مینی کامپیوترهای VAx Digital’s اجرا می شد که خیلی از کامپیوتر‌های بزرگ IBM ارزان تر بودند.
امروزه این شرکت با نام Oracle Corporation اولین فروشنده سیستم‌های مدیریت بانک اطلاعاتی رابطه‌ای است. استادان آزمایشگاههای کامپیوتر در دانشگاه برکلی کالیفرنیا نیز در نیمه دهه 1970 مشغول تحقیق در زمینه بانک‌های اطلاعاتی رابطه‌ای بودن (مانند تیم تحقیق IBM)، گروه فوق نیز یک نمونه از DBMS رابطه‌ای ایجاد نمودند و سیستم خود را Ingres نام نهادند.
پروژه Ingres شامل یک زبان پرسش یا Query language بود بنام QUEL، اگر چه از SQL خیلی ساخت یافته تر بود، اما شباهت آن به زبان انگلیسی کمتر بود.
در حالیکه Oracle و Ingres برای ارائه محصولات تجاری در رقابت بودند، پروژه System/R شرکت IBM در تلاش بوده است که یک محصو ل تجاری با نام SQL/Data system یا(SQL/DS) عرضه نماید. IBM موجودیت SQL/DS را در 1981 اعلام، و در 1982 شروع به عرضه محصول خود نمود. در سال 1983 IBM یک نسخه SQL/DS را برای VM/CMS (سیستم عاملی که در کامپیوتر بزرگ IBM غالبا استفاده شده بود)، اعلام نمود.
همچنین در سال 1983 شرکتIBM، محصول Database2 یا DB2 را معرفی نمود که یک DBMS رابطه‌ای بود برای سیستم‌های بزرگ آن شرکت. DB2 تحت سیستم عامل IBM’s VMS(سیستم عامل مراکز کامپیوتری بزرگ) اجرا می شد. اولین نسخه DB2در 1985 عرضه گردید، و مسئولین IBM اعلام نمو دند که این محصول یک برنامه استراتژیک برای تکنولوژی نرم افزاری IBM می باش DB2 .از آن تاریخ تاکنون DBMS رابطه‌ای شاخص بوده و IBM از آن حمایت نموده و زبان DB2’s SQL استاندارد عملی زبان بانک اطلاعاتی بوده است.
SQL استاندارد ANSI (American National Standards Institute) را در سال 1986 و ISO (International Organization for Standardization) را در سال 1987 اتخاذ نمود. استاندارد‌های مختلفی از SQL تاكنون عرضه شده كه در جدول زیر بیان می كنیم:

SQL-87
SQL-89
SQL-92
SQL:1999
SQL:2003

حوزه و وسعت:
بسیاری از اصطلاحات توسعه یافته SQL تحت استاندارد بین المللی بوده و در نتیجه از آنها شبیه بقیه زبانهای استاندارد مثل محصولات شركت اوراكل PL/SQL یا Sybase و SQL PL (مدل رویه ای) از شركت IBM می باشد.
SQL برای كارهای ویژه و محدودی (گزارش گیری از داده ها در پایگاه داده رابطه ای) طراحی شده است. بر خلاف زبانهای دستوری مثل بیسیك یا سی كه برای حل مسائل طراحی شده، SQL زبانی بر پایه اعلان است. زبانهای توسعه یافته‌ای مثل PL/SQL به دنبال كامل كردن زبان به هدف ایجاد زبان برنامه نویسی با حفظ مزیت‌های SQL می باشد. شیوه دیگر كار این است كه به كد‌های زبان برنامه نویسی اجازه دسترسی به پایگاه داده به كمك دستورات SQL داده شود مثلا PostgreSQL به توابعش اجازه می دهد كه درون كد‌های Perl، Tcl و C نوشته شوند. گاهی به شوخی گفته می‌شود كه SQL نه ساخت یافته است،نه محدود به گزارش گیری ها و اصلا یك زبان نیست!
واژه‌های كلیدی: SQL
واژه‌های كلیدی SQL به گروه‌های مختلفی تقسیم می گردد، در زیر به برخی از آنها اشاره می كنیم آنهایی كه آشنا تر هستند را تنها با یك مثال شرح می دهیم:
دستورات باز یابی داده(SELECT)
دستورات عملیات داده(INSERT، UPDATE، MERGE،TRUNCAT و (DELETE
دستورات تراكنش داده(COMMIT و ROLLBACK )
دستورات تعریف دادهCREATE) وDROP )
دستورات كنترل دادهGRANT) و (REVOKE
دستورات بازیابی داده
دستور SELECT جهت بازیابی برشی سطری از یك یا چند جدول به كار میرود. این دستور پركاربردترین دستور DML می باشد و برای گزارش گیری‌های موثر مورد استفاده قرار می گیرد. ساختمان این دستور می تواند از اجزای زیر تشكیل شده باشد:
:FROM مشخص كردن جداول و نحوه اتصال آنها به هم.
:WHEREانتخاب سطر هایی با شرایط خاص.
:GROUP BYتركیب سطر ها با مقادیر مربوط به مجموعه‌ای از سطر‌های كوچكتر.
:HAVINGمشخص كردن سطر‌های تركیبی.
:ORDER BYمشخص كردن اینكه كدام ستونها برای مرتب كردن داده ها به كار میرود.
مثال 1) نشان دادن ركورد‌های تمام كتاب‌های بیش 100.00 واحد قیمت. نتایج بر اساس نام كتاب مرتب می گردد. نماد ستاره(*) به معنای نشان دادن تمام ستون های(صفات) جداول(ها) می باشد:

SELECT * FROM books WHERE price > 100.00
ORDER BY title
مثال 2) این مسئله نحوه استفاده از جداول چندگانه را نشان می دهد. bk و ba نام مستعار جداول می باشد. در این مثال تعداد مولفان مختلف هر كتاب را نشان داده می‌شود:

SELECT bk.title, count(*) AS Authors
FROM books AS bk, book_authors AS ba
WHERE bk.book_number = ba.book_number
GROUP BY bk.title



دستورات عملیات داده
این دستورات به اختصار (DML( Data Manipulation Language گفته می‌شود و شامل دستوراتی همچون زیر است:
:INSERT اضافه كردن سطر هایی (تاپل هایی) به جدول موجود.
:UPDATE جهت تغییر مقادیر سطرهای موجود جدول.
:MERGE تركیب كردن داده ها در جداول چندگانه این دستور جدید در SQL:2003 اضافه شده است، پیش از این پایگاه داده ها از دستور UPSERT استفاده می كردند.
:TRUNCAT تمام داده‌های جدول را حذف می كند(از دستورات غیر استاندارد اما پر كاربرد SQL می باشد(
:DELETE حذف سطر هایی از جدول موجود.

مثال 3(

Example:
INSERT INTO my_table (field1, field2, field3) VALUES ('test', 'N', NULL);
UPDATE my_table SET field1 = 'updated value' WHERE field2 = 'N';
DELETE FROM my_table WHERE field2 = 'N';



دستورات تراكنش داده:
START TRANSACTION (BEGIN WORK) : جهت آغاز یك تراكنش پایگاه داده به كار می رود تا كنترل كند كه تراكنش یا به پایان برسد یا اصلا بی تاثیر باشد.
:COMMIT با عث می‌شود كه تغییرات درون ترانش به طور دائمی ثبت گردد.
:ROLLBACK باعث می‌شود كه تغییرات ار آخرین COMMIT یا ROLLBACK دور انداخته شود، در نتیجه وضعیت داده ها به قبل از درخواست دخییرات آنها بر می گردد.
این دو دستور در كنار هم برای كنترل و قفل گذاری به كار می رود و هنگام خروج از تراكنش این كنترل و قفل گذاری از بین می رود.
مثال 4)

START TRANSACTION;
UPDATE inventory SET quantity = quantity - WHERE item = 'pants';
COMMIT;


دستورات تعریف داده
دومین دسته دستورات SQL دستورات تعرف داده یا (DDL (Data Definition Language می باشد. این دستورات به كاربر اجازه تعریف جداول جدید و اجزای آنها را می دهد. بیشتر SQLهای تجاری دستوراتی با این خصوصیات را دارند. مهمترین گزینه‌های پایه‌ای DDL دستورات زیر است:
CREATE : ایجاد یك شی (مثلا یك جدول).
DROP : حذف شی تعریف شده‌ای در پایگاه داده.
بیشتر پایگاه‌های داده دستور ALTER را نیز دارند كه اجازه تغییر یك شی موجود را به شیوه‌های مختلف می دهد ( مثلا اضافه كردن یك ستون به جدول).

مثال 5)


CREATE TABLE my_table
my_field1 INT UNSIGNED,
my_field2 VARCHAR (50),
my_field3 DATE NOT NULL,
PRIMARY KEY (my_field1, my_field2)



دستورات كنترل داده:
سومین دسته از دستورات SQL دستورات كنترل داده یا (DCL (Data Control Language باشد. این دستورات جنبه‌های اجازه دسترسی به داده ها را مشخص می كند و تعیین می كند كدام كاربر می تواند روی پایگاه داده عملیات انجام دهد یا كدام كاربر تنها می تواند قابلیت خواندن آنها را داشته باشد. دو دستور اصلی به قرار زیر است
: GRANT اجازه دادن به یك یاچند كاربر برای اجرا كردن یك یا مجموعه‌ای ازدستورات بر روی یك شی.
REVOKE حذف یا محدود كردن قدرت اجرای كاربران.
مثال 6(

Example: SELECT * FROM inventory -- Retrieve everything from inventory table

مزاياي SQL چيست؟
2-41-1-SQL زباني مختص كمپاني خاص نيست و تقريباً هر DBMS بزرگي آن را پشتيباني مي كند.
2-41-2- يادگيري SQL آسان است.دستورات آن از لغات معني دار لاتين تشكيل شده اند و تعدادشان كم است.
2-41-3- با وجود سادگي ظاهري SQL،آن واقعاً زباني بسيار قوي است و با استفاده از آن مي توان عمليات بسيار پيچيده اي را روي ديتابيس اجرا كرد.
بسياري از فروشندگان DBMS با اضافه كردن دستورات پشتيبانيشان از SQL را گسترش داده اند.هدف آنها از اين كار ايجاد قابليتهاي بيشتر و همچنين ايجاد راه هاي ساده تر براي انجام اعمال مختلف مي باشد.و با وجود اينكه برخي از اين موارد خيلي مفيد و كاربردي هستند باز به DBMS خاص خود تعلق دارند و بندرت ساير كمپاني ها از آنها پشتيباني مي كنند.به اين منظور انجمن استانداردهاي ANSI، SQL استانداردي را عرضه كرد كه ANSI SQL ناميده مي شود.اكثر DBMS هاي شاخص كاملاً از ANSI SQL پشتيباني مي كنند.ساير نسخه هاي اختصاصي نام مالك خود را دارند مانند: PL-SQL، Transact-SQLو...
معایب SQL:
در كاربرد عملی از SQL معایب زیر بر آن وارد است:
دستورات نحوی(syntax) آن تا حدی مشكل است به نحوی كه گاهی آنرا با COBOL مقایسه می كنند.
شیوه استانداردی را برای دستورات چند تكه بزرگ ندارد.
نمونه‌های مختلف آن ها كه توسط فروشندگان مختلف ارائه می‌شود گاهی با هم سازگاری ندارد.
وجود برخی دستورات بلند
اشتباه گرفتن وظیفه‌های دستوراتی مثل UPDATE و INSERT .

مدل‌های مشاب SQL:

IBM BS12 (Business System 12)
Tutorial D
TQL Proposal
HQL بر پایه ابزار JAVA

OSQLبرپایه ابزار‌های شی گرای PHP برای عملیات و گزارش گیری
Quel در سال 1974 در دانشگاه بركلی ایجاد شد

ODMG (Object Data Management Group)



جزئیات مقاله
شماره مقاله: 11
ایجاد شده در: 30 Nov 2008 12:20 PM

 این پاسخ مفید بود  این پاسخ مفید نبود

[فراموشی کلمه عبور]    ورود
پست الکترونیک:
کلمه عبور:
مرا به خاطر بسپار:
 
  جستجو
 امکانات مقاله
:انتخاب زبان
مرکز پشتیبانی البرزنیک | ثبت نام | ارسال درخواست | مرکز اطلاعات | رفع مشکل | اخبار | دانلودها