مایاسکیوال
از ویکیپدیا، دانشنامهٔ آزاد.
این مقاله به تمیزکاری نیاز دارد. لطفاً آن را تا جایی که ممکن است از نظر املا، انشا، چیدمان و درستی بهتر کنید. سپس این الگو را از بالای مقاله حذف کنید. محتویات این مقاله ممکن است غیرقابل اعتماد و نادرست یا جانبدارانه باشد یا قوانین حقوق پدیدآورندگان را نقض کرده باشد. |
این مقاله نیازمند ویکیسازی است. لطفاً با توجه به راهنمای ویرایش و شیوهنامه آن را تغییر دهید. در پایان، پس از ویکیسازی این الگوی پیامی را بردارید. |
مایاسکیوال | |
نماد مایاسکیوال |
|
آخرین نسخه پایدار | ۵٫۰٫۵۱a |
زبانهای برنامهنویسی | لیسپ |
سیستم عامل | لینوکس، مایکروسافت ویندوز، مک اواس |
پروانه | GPL |
وبگاه | http://www.mysql.com |
مایاسکیوال (به انگلیسی: MySQL) یک سامانهٔ مدیریت دادگان (DBMS) است که به دلیل سادگی نصب و مدیریت، و بازمتنبودن از محبوبیت زیادی برخوردار است. SQL مخفف Structured Query Language میباشد که محبوبترین زبان کامپیوتری است که برای ایجاد، تغییر و بازیابی و عملیات بر روی دادهها در مدل رابطهای میباشد. این زبان به سمت مدل شی گرا-رابطهای نیز پیشرفت کردهاست. SQL استانداردهای را نیز دریافت کردهاست.
فهرست مندرجات |
[ویرایش] تاریخچه SQL
منشا اصلی SQL به مقاله تحت عنوان « مدل رابطهای دادهها برای بانکهای داده ای اشتراکی » که در سال ۱۹۷۰ منتشر شد،باز میگردد. در دهه ۷۰ گروهی از شرکت IBM در شهر San Jose بر روی سیستم پایگاه دادهای (System R) بدون توجه به این مقاله کار میکردند و زبان SEQUEL)Structured English Query Language) را به منظور عملیات و بازیابی اطلاعات ذخیره شده در System R ایجاد کردند. اگر چه SQL ناشی از تلاشهای کاد بود اما و را به عنوان طراحان زبان SEQUEL میدانند. سمینارهایی در زمینه تکنولوژی بانک اطلاعاتی و مباحثاتی در مورد مزایای مدل رابطهای جدید برگزار گردید. تا ۱۹۷۶ مشخص بود که IBM طرفدار جدی تکنولوژی بانک اطلاعاتی رابطهای بوده ، توجه زیادی نسبت به زبانSQL دارد. تبلیغات در زمینه System/R باعث جذب گروهی از مهندسین در Menlo Park در کالیفرنیا گردید، و این گروه به این نتیجه رسیدند که تحقیقات IBM منجر به یک بازار تجاری برای بانکهای اطلاعاتی رابطهای خواهد گردید.
در ۱۹۷۷ این گروه شرکتی بنام Inc وRelational Software تأسیس نمودند تا یک DBMS رابطهای بر اساس SQL بسازند. محصولی بنام Oracle در۱۹۷۹ عرضه گردید، و اولین DBMS رابطهای بوجود آمد. به این ترتیب محصول Oracle باعث گردید اولین محصول IBM برای مدت ۲ سال در بازار دچار رکود باشد. این محصول بر روی مینی کامپیوترهای VAx Digital’s اجرا میشد که خیلی از کامپیوترهای بزرگ IBM ارزان تر بودند. امروزه این شرکت با نام Oracle Corporation اولین فروشنده سیستمهای مدیریت بانک اطلاعاتی رابطهای است. استادان آزمایشگاههای کامپیوتر در دانشگاه برکلی کالیفرنیا نیز در نیمه دهه ۱۹۷۰ مشغول تحقیق در زمینه بانکهای اطلاعاتی رابطهای بودن (مانند تیم تحقیق IBM)، گروه فوق نیز یک نمونه از DBMS رابطهای ایجاد نمودند و سیستم خود را Ingres نام نهادند. پروژه Ingres شامل یک زبان پرسش یا Query language بود بنام QUEL، اگر چه از SQL خیلی ساخت یافته تر بود، اما شباهت آن به زبان انگلیسی کمتر بود.
در حالیکه Oracle و Ingres برای ارائه محصولات تجاری در رقابت بودند، پروژه System/R شرکت IBM در تلاش بودهاست که یک محصو ل تجاری با نام SQL/Data system (یاSQL/DS) عرضه نماید. IBM موجودیت SQL/DS را در ۱۹۸۱ اعلام، و در ۱۹۸۲ شروع به عرضه محصول خود نمود. در سال ۱۹۸۳ IBM یک نسخه SQL/DS را برای VM/CMS (سیستم عاملی که در کامپیوتر بزرگ IBM غالبا استفاده شده بود)، اعلام نمود.
همچنین در سال ۱۹۸۳ شرکتIBM ، محصول Database۲ یا DB۲ را معرفی نمود که یک DBMS رابطهای بود برای سیستمهای بزرگ آن شرکت. DB۲ تحت سیستم عامل IBM’s VMS(سیستم عامل مراکز کامپیوتری بزرگ) اجرا میشد. اولین نسخه DB۲در ۱۹۸۵ عرضه گردید، و مسئولین IBM اعلام نمو دند که این محصول یک برنامه استراتژیک برای تکنولوژی نرم افزاری IBM میباش DB۲ .از آن تاریخ تاکنون DBMS رابطهای شاخص بوده و IBM از آن حمایت نموده و زبان DB۲’s SQL استاندارد عملی زبان بانک اطلاعاتی بودهاست. SQL استاندارد ANSI (American National Standards Institute) را در سال ۱۹۸۶ و ISO (International Organization for Standardization) را در سال ۱۹۸۷ اتخاذ نمود.
[ویرایش] حوزه و وسعت
بسیاری از اصطلاحات توسعه یافته 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 : مشخص کردن اینکه کدام ستونها برای مرتب کردن دادهها به کار میرود.
مثال ۱) نشان دادن رکوردهای تمام کتابهای بیش ۱۰۰٫۰۰ واحد قیمت. نتایج بر اساس نام کتاب مرتب میگردد. نماد ستاره(*) به معنای نشان دادن تمام ستون های(صفات) جداول(ها) میباشد: Example ۱: SELECT * FROM books WHERE price > ۱۰۰٫۰۰ ORDER BY title
متال ۲) این مسئله نحوه استفاده از جداول چندگانه را نشان میدهد. bk و ba نام مستعار جداول میباشد. در این مثال تعداد مولفان مختلف هر کتاب را نشان داده میشود: Example ۲: 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 ۳ The Joy of SQL ۱ How to use Wikipedia ۲ Pitfalls of SQL ۱ How SQL Saved my Dog ۱
[ویرایش] دستورات عملیات داده
این دستورات به اختصار DML) Data Manipulation Language) گفته میشود و شامل دستوراتی همچون زیر است INSERT : اضافه کردن سطرهایی (تاپلهایی) به جدول موجود. UPDATE : جهت تغییر مقادیر سطرهای موجود جدول. MERGE : ترکیب کردن دادهها در جداول چندگانه این دستور جدید در SQL:۲۰۰۳ اضافه شدهاست، پیش از این پایگاه دادهها از دستور UPSERT استفاده میکردند. TRUNCAT : تمام دادههای جدول را حذف میکند(از دستورات غیر استاندارد اما پر کاربرد SQL میباشد) DELETE : حذف سطرهایی از جدول موجود.
مثال ۳) Example: INSERT INTO my_table (field۱, field۲, field۳) VALUES ('test', 'N', NULL); UPDATE my_table SET field۱ = 'updated value' WHERE field۲ = 'N'; DELETE FROM my_table WHERE field۲ = 'N';
[ویرایش] دستورات تراکنش داده
START TRANSACTION (BEGIN WORK) : جهت آغاز یک تراکنش پایگاه داده به کار میرود تا کنترل کند که تراکنش یا به پایان برسد یا اصلاً بی تأثیر باشد. COMMIT : باعث میشود که تغییرات درون تراکنش به طور دائمی ثبت گردد. ROLLBACK : باعث میشود که تغییرات ار آخرین COMMIT یا ROLLBACK دور انداخته شود ، در نتیجه وضعیت دادهها به قبل از درخواست دخییرات آنها بر میگردد. این دو دستور در کنار هم برای کنترل و قفل گذاری به کار میرود و هنگام خروج از تراکنش این کنترل و قفل گذاری از بین میرود.
مثال ۴) Example: START TRANSACTION; UPDATE inventory SET quantity = quantity - ۳ WHERE item = 'pants'; COMMIT;
دستورات تعریف داده دومین دسته دستورات SQL دستورات تعرف داده یا DDL (Data Definition Language) میباشد. این دستورات به کاربر اجازه تعریف جداول جدید و اجزای آنها را میدهد. بیشتر SQLهای تجاری دستوراتی با این خصوصیات را دارند. مهمترین گزینههای پایهای DDL دستورات زیر است: CREATE : ایجاد یک شی (مثلاً یک جدول). DROP : حذف شی تعریف شدهای در پایگاه داده. بیشتر پایگاههای داده دستور ALTER را نیز دارند که اجازه تغییر یک شی موجود را به شیوههای مختلف میدهد ( مثلاً اضافه کردن یک ستون به جدول).
مثال ۵) Example: CREATE TABLE my_table ( my_field۱ INT UNSIGNED, my_field۲ VARCHAR (۵۰), my_field۳ DATE NOT NULL, PRIMARY KEY (my_field۱, my_field۲) )
[ویرایش] دستورات کنترل داده
سومین دسته از دستورات SQL دستورات کنترل داده یا DCL (Data Control Language) میباشد. این دستورات جنبههای اجازه دسترسی به دادهها را مشخص میکند و تعیین میکند کدام کاربر میتواند روی پایگاه داده عملیات انجام دهد یا کدام کاربر تنها میتواند قابلیت خواندن آنها را داشته باشد. دو دستور اصلی به قرار زیر است: GRANT : اجازه دادن به یک یاچند کاربر برای اجرا کردن یک یا مجموعهای ازدستورات بر روی یک شی. REVOKE : حذف یا محدود کردن قدرت اجرای کاربران.
مثال ۶) Example: SELECT * FROM inventory -- Retrieve everything from inventory table
[ویرایش] معایب SQL
در کاربرد عملی از SQL معایب زیر وجود دارد:
- دستورات نحوی(syntax) آن تا حدی مشکل است به نحوی که گاهی آنرا با COBOL مقایسه میکنند.
- شیوه استانداردی را برای دستورات چند تکه بزرگ ندارد.
- نمونههای مختلف آنها که توسط فروشندگان مختلف ارائه میشود گاهی با هم سازگاری ندارد.
- وجود برخی دستورات بلند
- اشتباه گرفتن وظیفههای دستوراتی مثل UPDATE و INSERT .
[ویرایش] مدلهای مشابه SQL
- IBM BS۱۲ (Business System ۱۲)
- Tutorial D
- TQL Proposal
- HQL ( بر پایه ابزار JAVA
- OSQL(برپایه ابزارهای شی گرای PHP برای عملیات و گزارش گیری)
- Quel (در سال ۱۹۷۴ در دانشگاه برکلی ایجاد شد)
- ODMG (Object Data Management Group)
[ویرایش] پیوندهای بیرونی
[ویرایش] منابع
بخش انگلیسی دانشنامه آزاد ویکی پدیا