مایاسکیوال
از ویکیپدیا، دانشنامهٔ آزاد.
مایاسکیوال | |
---|---|
![]() نماد مایاسکیوال |
|
اطلاعات برنامه | |
تولید کننده | شرکت مایاسکیوال ایبی با کمک جامعهی علاقهمندان |
آخرین نسخه | ۵/۰/۲۴ (۲۷ جولای ۲۰۰۶) |
سیستم عامل | ویندوز، لینوکس، یونیکس، مک او اس |
سکو | چندسکویی |
گونه | {{{گونه}}} |
اجازهنامه | جیپیال |
وبگاه | www.mysql.com |
یک پایگاه داده بازمتن، که به دلیل سادگی نصب و مدیریت، از محبوبیت بالایی برخوردار میباشد. SQL مخفف Structured Query Language مي باشد كه محبوبترين زبان كامپيوتري است كه براي ايجاد،تغيير و بازيابي و عمليات بر روي داده ها در مدل رابطه اي مي باشد. اين زبان به سمت مدل شي گرا-رابطه اي نيز پيشرفت كرده است. SQL استاندارد هاي را نيز دريافت كرده است.
فهرست مندرجات |
[ویرایش] تاريخچه SQL
منشا اصلي SQL به مقاله تحت عنوان " مدل رابطه اي داده ها براي بانك هاي داده اي اشتراكي " كه در سال 1970 منتشر شد،باز مي گردد. در دهه 70 گروهي از شركت IBM در شهر San Jose بر روي سيستم پايگاه داده اي (System R) بدون توجه به اين مقاله كار مي كردند و زبان SEQUEL(Structured English Query Language) را به منظور عمليات و بازيابي اطلاعات ذخيره شده در System R ايجاد كردند. اگر چه SQL ناشي از تلاشهاي كاد بود اما و را به عنوان طراحان زبان 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 تحت استاندارد بين المللي بوده و در نتيجه از آنها شبيه بقيه زبانهاي استاندارد مثل محصولات شركت اوراكل 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 دستور SELECT جهت بازيابي برشي سطري از يك يا چند جدول به كار ميرود. اين دستور پركاربردترين دستور DML مي باشد و براي گزارش گيري هاي موثر مورد استفاده قرار مي گيرد. ساختمان اين دستور مي تواند از اجزاي زير تشكيل شده باشد:
- FROM : مشخص كردن جداول و نحوه اتصال آنها به هم.
- WHERE : انتخاب سطر هايي با شرايط خاص.
- GROUP BY : تركيب سطر ها با مقادير مربوط به مجموعه اي از سطر هاي كوچكتر.
- HAVING : مشخص كردن سطر هاي تركيبي.
- ORDER BY : مشخص كردن اينكه كدام ستونها براي مرتب كردن داده ها به كار ميرود.
مثال 1) نشان دادن ركورد هاي تمام كتاب هاي بيش 100.00 واحد قيمت. نتايج بر اساس نام كتاب مرتب مي گردد. نماد ستاره(*) به معناي نشان دادن تمام ستون هاي(صفات) جداول(ها) مي باشد: Example 1: SELECT * FROM books WHERE price > 100.00 ORDER BY title
متال 2) اين مسئله نحوه استفاده از جداول چندگانه را نشان مي دهد. bk و ba نام مستعار جداول مي باشد. در اين مثال تعداد مولفان مختلف هر كتاب را نشان داده مي شود: Example 2: 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 خروجي فرضي براي اين مثال مي تواند به صورت زير باشد:
Title Authors
-------
SQL Examples and Guide 3 The Joy of SQL 1 How to use Wikipedia 2 Pitfalls of SQL 1 How SQL Saved my Dog 1
[ویرایش] دستورات عمليات داده
اين دستورات به اختصار 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) Example: START TRANSACTION; UPDATE inventory SET quantity = quantity - 3 WHERE item = 'pants'; COMMIT;
دستورات تعريف داده دومين دسته دستورات SQL دستورات تعرف داده يا DDL (Data Definition Language) مي باشد. اين دستورات به كاربر اجازه تعريف جداول جديد و اجزاي آنها را مي دهد. بيشتر SQL هاي تجاري دستوراتي با اين خصوصيات را دارند. مهمترين گزينه هاي پايه اي DDL دستورات زير است: CREATE : ايجاد يك شي (مثلا يك جدول). DROP : حذف شي تعريف شده اي در پايگاه داده. بيشتر پايگاه هاي داده دستور ALTER را نيز دارند كه اجازه تغيير يك شي موجود را به شيوه هاي مختلف مي دهد ( مثلا اضافه كردن يك ستون به جدول).
مثال 5) Example: 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
در كاربرد عملي از 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)
[ویرایش] منابع
بخش انگليسي دانشنامه آزاد ويكي پديا