SlideShare a Scribd company logo
‫حق‬ ‫بسمه‬
‫و‬ ‫کالسترینگ‬ ‫مفهوم‬
xa transaction
‫ابزارهای‬ ‫و‬
,
maxscale spider storage engine
‫باال‬ ‫کارایی‬ ‫برای‬ ‫گامهایی‬ ‫و‬
‫در‬
/
mariadb mysql
: ‫نویسنده‬
‫دخت‬ ‫اسمعیل‬ ‫یاشار‬ ‫مهندس‬
: ‫نسخه‬
0.1
maxscale and spider engine  for performance and security and clustering
: ‫نویسنده‬ ‫درباره‬
‫رشته‬ ‫آموخته‬ ‫دانش‬ ‫دخت‬ ‫اسمعیل‬ ‫یاشار‬ ‫بنده‬
cyber security
. ‫هستم‬
‫از‬ ‫بیش‬
۱۵
. ‫دارم‬ ‫فعالیت‬ ‫سابقه‬ ‫سال‬
‫مولف‬ - ‫مدرس‬ - ‫مشاور‬ : ‫داد‬ ‫شرح‬ ‫زیر‬ ‫های‬ ‫ساختار‬ ‫در‬ ‫میتوان‬ ‫را‬ ‫بنده‬ ‫های‬ ‫فعالیت‬ ‫جمله‬ ‫از‬
/ / / / / /
Devops Platform Cloud Eng |Gnu Linux System Network Security Storage
/
Engineer Admin & Oracle Dba | Linux Trainer |Consultant
): ‫جدید‬ ‫دنیاهای‬ ‫کشف‬ ‫و‬ ‫تحقیق‬ ‫و‬ ‫مطالعه‬ ‫به‬ ‫مند‬ ‫عالقه‬
. ‫کنم‬ ‫اشاره‬ ‫استراتژی‬ ‫های‬ ‫بازی‬ ‫و‬ ‫اوتلو‬ ‫و‬ ‫شطرنج‬ ‫بازی‬ ‫به‬ ‫میتوانم‬ ‫من‬ ‫های‬ ‫سرگرمی‬ ‫از‬ ‫واقع‬ ‫در‬
‫تبریز‬ ‫الگ‬ ‫گذاران‬ ‫بنیان‬ ‫از‬ ‫یکی‬ ‫و‬ ‫لینوکس‬/‫گنو‬ ‫و‬ ‫باز‬ ‫متن‬ ‫دنیای‬ ‫عاشق‬ . ‫هستم‬ ‫عاشق‬ ‫یک‬ ‫من‬
: ‫کنید‬ ‫پیدا‬ ‫و‬ ‫کنید‬ ‫دنبال‬ ‫را‬ ‫من‬ ‫میتوانید‬ ‫چطور‬ ‫خب‬
: 09141100257
Mob
Telegram ID : yashar_esm
Telegram channel : unixmens
Instagram Account
Linkedin Account :/ /
in yashar_esmaildokht
. ‫بشنوم‬ ‫را‬ ‫انتقادتون‬ ‫یا‬ ‫پیشنهاد‬ ‫هرگونه‬ ‫میشم‬ ‫خوشحال‬ ‫همچنین‬
: ‫کنید‬ ‫پیدا‬ ‫را‬ ‫من‬ ‫از‬ ‫ی‬ ‫دیگر‬ ‫های‬ ‫کتاب‬ ‫میتونید‬ ‫چطور‬
‫توی‬
slideshare
. ‫کنید‬ ‫پیدا‬ ‫را‬ ‫کردم‬ ‫منتشر‬ ‫آزاد‬ ‫بصورت‬ ‫که‬ ‫دیگری‬ ‫های‬ ‫کتاب‬ ‫میتونید‬ ‫بگردید‬ ‫من‬ ‫اسم‬ ‫دنبال‬ ‫گوگل‬ ‫یا‬
‫این‬ ‫از‬ ‫میتوانید‬ ‫هم‬ ‫دونیت‬ ‫جهت‬
‫لینک‬
‫کنید‬ ‫استفاده‬
: ‫مشاوره‬
. ‫بود‬ ‫خواهم‬ ‫شما‬ ‫دسترس‬ ‫در‬ ‫من‬ . ‫فرمایید‬ ‫حاصل‬ ‫تماس‬ . ‫کردم‬ ‫اشاره‬ ‫قبل‬ ‫صفحه‬ ‫در‬ ‫که‬ ‫هایی‬ ‫کانال‬ ‫از‬ ‫میتوانید‬ ‫مشاوره‬ ‫جهت‬
: ‫به‬ ‫تقدیم‬
‫خدا‬
‫شتافت‬ ‫یاریم‬ ‫به‬ ‫که‬ ‫بود‬ ‫او‬ ‫تنها‬ ‫هایم‬ ‫سختی‬ ‫در‬ ‫که‬ ‫چرا‬
‫مادرم‬
‫اویم‬ ‫مدیون‬ ‫که‬ ‫را‬ ‫حبت‬‫َم‬ ‫و‬ ‫انسانیت‬ ‫داد‬ ‫یاد‬ ‫و‬ . ‫کرد‬ ‫تقدیم‬ ‫زندگی‬ ‫به‬ ‫مرا‬ ‫که‬ ‫چرا‬
‫پدرم‬
‫اویم‬ ‫مدیون‬ ‫و‬ ‫بود‬ ‫من‬ ‫حامی‬ ‫همیشه‬ ‫روحش‬ ‫که‬
‫عشقم‬
‫هست‬ ‫و‬ ‫بود‬ ‫مشوقم‬ ‫که‬
‫سورس‬ ‫اپن‬ ‫جامعه‬
‫بشریت‬
‫را‬ ‫هایش‬ ‫دانسته‬ ‫میکند‬ ‫منتشر‬ ‫و‬ ‫میخواند‬ ‫که‬ ‫او‬ ‫و‬
): ‫هیچ‬ ‫دیگر‬ ‫و‬ ‫جهانی‬ ‫صلح‬ ‫امید‬ ‫به‬ ‫و‬
: ‫مقدمه‬
‫تخصصی‬ ‫و‬ ‫اجرایی‬ ‫بحث‬
‫با‬ ‫ساختاری‬ ‫آشنایی‬ ‫بدون‬ ‫خود‬ ‫‌ای‬
‫ه‬‫حرف‬ ‫زندگی‬ ‫آغاز‬ ‫در‬ ‫که‬ ‫هستند‬ ‫غیرمتخصص‬ ‫کدنویسان‬ ‫برخی‬ ‫اطالعاتی‬ ‫بانک‬ ‫ساخت‬ ‫زمینه‬ ‫در‬
( ‫‌کنند‬
‫ی‬‫م‬ ‫جدولی‬ ‫بین‬ ‫ارتباطات‬ ‫ایجاد‬ ‫حتی‬ ‫یا‬ ‫جداول‬ ‫ساخت‬ ‫به‬ ‫اقدام‬ ‫اطالعاتی‬ ‫بانک‬ ‫سرور‬ ‫‌های‬
‫ه‬‫پای‬
relations
‫یا‬
RDBMS
‫امر‬ ‫این‬ )
‫پیچیده‬ ‫را‬ ‫آن‬ ‫با‬ ‫مرتبط‬ ‫مسایل‬ ‫و‬ ‫شده‬ ‫کاربران‬ ‫نارضایتی‬ ‫باعث‬ ‫روند‬ ‫این‬ . ‫مینماید‬ ‫کار‬ ‫و‬ ‫کسب‬ ‫برای‬ ‫را‬ ‫زیادی‬ ‫مشکالت‬ ‫ایجاد‬ ‫باعث‬
. ‫میکند‬
:‫جمله‬ ‫از‬ ‫است‬ ‫مطرح‬ ‫همیشه‬ ‫ثابت‬ ‫بحث‬ ‫چند‬ ‫اطالعاتی‬ ‫بانک‬ ‫طراحی‬ ‫در‬
،)‫حجم‬ ‫در‬ ‫‌جویی‬
‫ه‬‫صرف‬ ‫برای‬ ‫تکرار‬ ‫از‬ ‫(اجتناب‬ ‫‌سازی‬
‫ل‬‫نرما‬
،)‫سرعت‬ ‫افزایش‬ ‫برای‬ ‫تکرار‬ ‫برای‬ ‫(تالش‬ ‫‌سازی‬
‫ل‬‫نانرما‬
Indexing
‫جستجو‬ ‫به‬ ‫بخشیدن‬ ‫سرعت‬ ‫برای‬ ‫هدفمند‬ ‫‌سازی‬
‫ب‬‫مرت‬ :
Indexing
‫پیدا‬ ‫دسترسی‬ ‫نظر‬ ‫مورد‬ ‫اطالعات‬ ‫به‬ ‫سرعت‬ ‫به‬ ‫‌کند‬
‫ی‬‫م‬ ‫کمک‬ ‫‌ها‬
‫ه‬‫داد‬ ‫پایگاه‬ ‫به‬ ‫که‬ ‫است‬ ‫تکنیکی‬ ،‫هدفمند‬ ‫‌سازی‬
‫ب‬‫مرت‬ ‫یا‬
‫کمک‬ ‫سرور‬ ‫به‬ ‫و‬ ‫‌کند‬
‫ی‬‫م‬ ‫مرتب‬ ‫حرف‬ ‫اساس‬ ‫بر‬ ‫را‬ ‫اطالعات‬ ‫که‬ ‫است‬ ‫‌شده‬
‫ه‬‫بهین‬ ‫و‬ ‫منظم‬ ‫‌ای‬
‫ه‬‫داد‬ ‫ساختار‬ ‫ایجاد‬ ‫شامل‬ ‫تکنیک‬ ‫این‬ .‫کنند‬
.‫کند‬ ‫پیدا‬ ‫دسترسی‬ ‫جستجو‬ ‫مورد‬ ‫‌های‬
‫ه‬‫داد‬ ‫به‬ ‫باالتری‬ ‫سرعت‬ ‫با‬ ‫تا‬ ‫‌کند‬
‫ی‬‫م‬
‫انواع‬
Indexing
:
‫نوع‬ ‫دو‬
Indexing
:‫دارد‬ ‫وجود‬ ‫مهم‬
*
Clustered Index
‫نوع‬ ‫این‬ :
Indexing
( ‫اولیه‬ ‫کلید‬ ‫مثل‬
PKs
‫داده‬ ‫پایگاه‬ ‫در‬ ‫فیزیکی‬ ‫صورت‬ ‫به‬ ‫را‬ ‫‌ها‬
‫ف‬‫ردی‬ ‫و‬ ‫‌کند‬
‫ی‬‫م‬ ‫عمل‬ )
.‫‌کند‬
‫ی‬‫م‬ ‫مرتب‬
*
Secondary Index
‫نوع‬ ‫این‬ :
Indexing
‫به‬ ‫تا‬ ‫‌کند‬
‫ی‬‫م‬ ‫کمک‬ ‫سرور‬ ‫به‬ ‫و‬ ‫‌شود‬
‫ی‬‫م‬ ‫ایجاد‬ )‫نام‬ ‫(مثال‬ ‫مختلف‬ ‫‌های‬
‫ن‬‫ستو‬ ‫برای‬
‫نوع‬ ‫این‬ .‫کند‬ ‫پیدا‬ ‫را‬ ‫نظر‬ ‫مورد‬ ‫‌های‬
‫ف‬‫ردی‬ ‫سرعت‬
Indexing
.‫است‬ ‫مناسب‬ ‫کلیدی‬ ‫غیر‬ ‫‌های‬
‫ن‬‫ستو‬ ‫در‬ ‫جستجو‬ ‫برای‬
-
B Tree
‫و‬
Indexing
:
-
B Tree
‫برای‬ ‫که‬ ‫است‬ ‫‌کننده‬
‫ل‬‫متعاد‬-‫خود‬ ‫‌ای‬
‫ه‬‫داد‬ ‫ساختار‬ ‫یک‬
Indexing
.‫‌شود‬
‫ی‬‫م‬ ‫استفاده‬
-
B Tree
‫با‬ ‫تا‬ ‫‌کند‬
‫ی‬‫م‬ ‫کمک‬ ‫سرور‬ ‫به‬
.‫کند‬ ‫پیدا‬ ‫دسترسی‬ ‫جستجو‬ ‫مورد‬ ‫‌های‬
‫ه‬‫داد‬ ‫به‬ ‫باالتری‬ ‫سرعت‬
-
B Tree
‫مرتب‬ )‫‌ای‬
‫ه‬‫مرحل‬ ‫(چند‬ ‫مراتبی‬ ‫سلسله‬ ‫صورت‬ ‫به‬ ‫را‬ ‫اطالعات‬
.‫‌رسد‬
‫ی‬‫م‬ ‫نظر‬ ‫مورد‬ ‫‌های‬
‫ه‬‫داد‬ ‫به‬ ‫ممکن‬ ‫زمان‬ ‫‌ترین‬
‫ع‬‫سری‬ ‫در‬ ،‫شده‬ ‫مرتب‬ ‫اطالعات‬ ‫با‬ ‫جستجو‬ ‫مورد‬ ‫مقدار‬ ‫مقایسه‬ ‫با‬ ‫و‬ ‫‌کند‬
‫ی‬‫م‬
‫ایجاد‬ ‫زمان‬ ‫در‬ ‫که‬ ‫است‬ ‫جستجو‬ ‫نوع‬ ‫با‬ ‫متناسب‬ ‫کامپوزیت‬ ‫یا‬ ‫ترکیبی‬ ‫‌های‬
‫س‬‫ایندک‬ ‫ایجاد‬ ‫اطالعاتی‬ ‫بانک‬ ‫کارایی‬ ‫افزایش‬ ‫مهم‬ ‫مباحث‬
.‫است‬ ‫برخوردار‬ ‫مهمی‬ ‫اهمیت‬ ‫از‬ ‫جداول‬ ‫بین‬ ‫ارتباطات‬
‫اطالعاتی‬ ‫موتور‬ ‫نوع‬ ‫چه‬ ‫از‬ ‫اینکه‬ ‫‌کیوال‬
‫س‬‫‌ا‬
‫ی‬‫ما‬ ‫مانند‬ ‫سرورها‬ ‫برخی‬ ‫در‬ ‫مباحث‬ ‫این‬ ‫تمام‬ ‫بین‬ ‫در‬
MyISAM
‫یا‬
InnoDB
‫استفاده‬
‫یا‬ ‫شود‬
spider
‫تعادل‬ ‫نماینده‬ ‫دومی‬ ‫و‬ )‫بایگانی‬ ‫(معموًال‬ ‫است‬ ‫اطالعات‬ ‫ثبت‬ ‫در‬ ‫سرعت‬ ‫نماینده‬ ‫اولی‬ ‫زیرا‬ ‫است‬ ‫سواالت‬ ‫اولین‬ ‫از‬ ‫و‬
…
‫یا‬ ‫غیرتراکنشی‬ ‫عنوان‬ ‫با‬ ‫و‬ ‫‌کند‬
‫ی‬‫م‬ ‫قفل‬ ‫را‬ ‫جدول‬ ‫کل‬ ‫داده‬ ‫ثبت‬ ‫زمان‬ ‫در‬ ‫اولی‬ ‫در‬ ‫دلیل‬ ‫این‬ ‫به‬ ‫خواندن‬ ‫هم‬ ‫و‬ ‫ثبت‬ ‫هم‬ ‫سرعت‬ ‫در‬
‫شاهد‬ ‫را‬ ‫تری‬ ‫پیشرفته‬ ‫امکانات‬ ‫سومی‬ ‫در‬ ‫و‬ .‫‌کند‬
‫ی‬‫م‬ ‫قفل‬ ‫را‬ ‫‌ها‬
‫ف‬‫ردی‬ ‫و‬ ‫است‬ ‫برعکس‬ ‫دومی‬ ‫که‬ ‫حالی‬ ‫در‬ ‫‌شود‬
‫ی‬‫م‬ ‫شناخته‬ ‫غیرترزاکشن‬
. ‫هستیم‬
‫بر‬ ‫شرحی‬
index
: ‫ها‬
( ‫‌ها‬
‫س‬‫ایندک‬ ‫از‬ ‫مختلفی‬ ‫انواع‬ ، ‫ما‬
Indexes
‫هر‬ .‫‌شوند‬
‫ی‬‫م‬ ‫استفاده‬ ‫‌ها‬
‫ه‬‫داد‬ ‫به‬ ‫دسترسی‬ ‫و‬ ‫جستجوها‬ ‫کارایی‬ ‫بهبود‬ ‫برای‬ ‫که‬ ‫دارند‬ ‫وجود‬ )
:‫‌پردازیم‬
‫ی‬‫م‬ ‫اوراکل‬ ‫دیتابیس‬ ‫در‬ ‫‌ها‬
‫س‬‫ایندک‬ ‫مختلف‬ ‫انواع‬ ‫به‬ ‫ادامه‬ ‫در‬ .‫است‬ ‫مناسب‬ ‫‌ها‬
‫ه‬‫داد‬ ‫و‬ ‫کاربردها‬ ‫از‬ ‫خاصی‬ ‫نوع‬ ‫برای‬ ‫ایندکس‬ ‫نوع‬
‫ا‬
1
.
-
B Tree Index
:
.‫است‬ ‫مناسب‬ ‫‌ها‬
‫ه‬‫داد‬ ‫به‬ ‫دسترسی‬ ‫و‬ ‫جستجو‬ ‫عملیات‬ ‫اکثر‬ ‫برای‬ ‫که‬ ‫ایندکس‬ ‫نوع‬ ‫‌ترین‬
‫ج‬‫رای‬ :‫کاربرد‬ -
( ‫دقیق‬ ‫جستجوهای‬ ‫در‬ ‫خوب‬ ‫عملکرد‬ :‫مزایا‬ -
Exact Match
( ‫‌ای‬
‫ه‬‫محدود‬ ‫و‬ )
Range Queries
.)
.‫‌کند‬
‫ی‬‫م‬ ‫فراهم‬ ‫را‬ ‫‌ها‬
‫ه‬‫داد‬ ‫به‬ ‫سریع‬ ‫دسترسی‬ ‫که‬ ‫متوازن‬ ‫درختی‬ ‫ساختار‬ :‫ساختار‬ -
‫ا‬
2
.
Bitmap Index
:
.)‫تأهل‬ ‫وضعیت‬ ‫یا‬ ‫جنسیت‬ ‫(مثل‬ ‫متمایز‬ ‫مقادیر‬ ‫از‬ ‫محدودی‬ ‫تعداد‬ ‫با‬ ‫‌هایی‬
‫ن‬‫ستو‬ ‫برای‬ ‫مناسب‬ :‫کاربرد‬ -
.‫پیچیده‬ ‫جستجوهای‬ ‫و‬ ‫ترکیبی‬ ‫‌های‬
‫ی‬‫کوئر‬ ‫در‬ ‫باال‬ ‫کارایی‬ :‫مزایا‬ -
.‫نیست‬ ‫مناسب‬ ‫‌روزرسانی‬
‫ه‬‫ب‬ ‫و‬ ‫حذف‬ ،‫درج‬ ‫عملیات‬ ‫زیادی‬ ‫تعداد‬ ‫با‬ ‫جداول‬ ‫برای‬ :‫معایب‬ -
‫ا‬
3
.
-
Function Based Index
:
.‫باشد‬ ‫عبارت‬ ‫یک‬ ‫یا‬ ‫تابع‬ ‫یک‬ ‫نتایج‬ ‫اساس‬ ‫بر‬ ‫جستجو‬ ‫به‬ ‫نیاز‬ ‫که‬ ‫زمانی‬ :‫کاربرد‬ -
.‫هستند‬ ‫محاسباتی‬ ‫عبارات‬ ‫یا‬ ‫توابع‬ ‫شامل‬ ‫که‬ ‫‌هایی‬
‫ی‬‫کوئر‬ ‫‌سازی‬
‫ه‬‫بهین‬ :‫مزایا‬ -
‫تابع‬ ‫روی‬ ‫بر‬ ‫ایندکس‬ ‫ایجاد‬ :‫مثال‬ -
( )
UPPER column_name
.
‫ا‬
4
.
Composite Index
‫(یا‬
Concatenated Index
:)
.‫است‬ ‫مناسب‬ ‫‌کنند‬
‫ی‬‫م‬ ‫جستجو‬ ‫را‬ ‫ستون‬ ‫چندین‬ ‫که‬ ‫‌هایی‬
‫ی‬‫کوئر‬ ‫‌سازی‬
‫ه‬‫بهین‬ ‫برای‬ ‫و‬ ‫است‬ ‫ستون‬ ‫یک‬ ‫از‬ ‫بیش‬ ‫شامل‬ :‫کاربرد‬ -
.‫‌شوند‬
‫ی‬‫م‬ ‫فیلتر‬ ‫ستون‬ ‫چندین‬ ‫اساس‬ ‫بر‬ ‫که‬ ‫‌هایی‬
‫ی‬‫کوئر‬ ‫کارایی‬ ‫بهبود‬ :‫مزایا‬ -
‫ا‬
5
.
Unique Index
:
.‫‌ها‬
‫ن‬‫ستو‬ ‫از‬ ‫ترکیبی‬ ‫یا‬ ‫ستون‬ ‫یک‬ ‫در‬ ‫مقادیر‬ ‫یکتایی‬ ‫تضمین‬ :‫کاربرد‬ -
.‫تکراری‬ ‫مقادیر‬ ‫درج‬ ‫از‬ ‫جلوگیری‬ :‫مزایا‬ -
‫ا‬
6
.
Reverse Key Index
:
‫‌های‬
‫ن‬‫ستو‬ ‫(مانند‬ ‫‌دار‬
‫ی‬‫توال‬ ‫مقادیر‬ ‫دلیل‬ ‫به‬ ‫است‬ ‫ممکن‬ ‫که‬ ‫‌ها‬
‫ه‬‫داد‬ ‫درج‬ ‫عملیات‬ ‫در‬ ‫زیاد‬ ‫‌های‬
‫ل‬‫قف‬ ‫از‬ ‫جلوگیری‬ :‫کاربرد‬ -
Sequence
.‫دهد‬ ‫رخ‬ )
.‫متوالی‬ ‫درج‬ ‫عملیات‬ ‫باالی‬ ‫حجم‬ ‫با‬ ‫‌هایی‬
‫م‬‫سیست‬ ‫در‬ ‫کارایی‬ ‫بهبود‬ :‫مزایا‬ -
‫ا‬
7
.
Domain Index
:
( ‫‌شده‬
‫ف‬‫تعری‬-‫کاربر‬ ‫داده‬ ‫‌های‬
‫ع‬‫نو‬ ‫و‬ ‫پیچیده‬ ‫‌های‬
‫ه‬‫داد‬ ‫برای‬ :‫کاربرد‬ -
-
User Defined Data Types
.)
.‫خاص‬ ‫کاربردهای‬ ‫برای‬ ‫باال‬ ‫‌پذیری‬
‫ف‬‫انعطا‬ :‫مزایا‬ -
‫ا‬
8
.
Cluster Index
:
( ‫‌ای‬
‫ه‬‫خوش‬ ‫جداول‬ ‫برای‬ :‫کاربرد‬ -
Clustered Tables
.‫‌شوند‬
‫ی‬‫م‬ ‫ذخیره‬ ‫هم‬ ‫کنار‬ ‫در‬ ‫فیزیکی‬ ‫صورت‬ ‫به‬ ‫مرتبط‬ ‫‌های‬
‫ه‬‫داد‬ ‫که‬ )
.‫مرتبط‬ ‫‌های‬
‫ه‬‫داد‬ ‫به‬ ‫دسترسی‬ ‫کارایی‬ ‫بهبود‬ :‫مزایا‬ -
‫ا‬
9
.
Partitioned Index
:
.‫‌اند‬
‫ه‬‫شد‬ ‫تقسیم‬ )‫(پارتیشن‬ ‫کوچکتر‬ ‫‌های‬
‫ش‬‫بخ‬ ‫به‬ ‫که‬ ‫بزرگ‬ ‫جداول‬ ‫برای‬ ‫مناسب‬ :‫کاربرد‬ -
.‫بزرگ‬ ‫جداول‬ ‫در‬ ‫‌ها‬
‫ه‬‫داد‬ ‫به‬ ‫دسترسی‬ ‫کارایی‬ ‫بهبود‬ ‫و‬ ‫بهتر‬ ‫مدیریت‬ :‫مزایا‬ -
‫و‬ ‫‌ها‬
‫ه‬‫داد‬ ‫ساختار‬ ‫به‬ ‫ایندکس‬ ‫مناسب‬ ‫نوع‬ ‫انتخاب‬ ‫اما‬ ،‫کند‬ ‫کمک‬ ‫‌ها‬
‫ه‬‫داد‬ ‫به‬ ‫دسترسی‬ ‫کارایی‬ ‫بهبود‬ ‫به‬ ‫‌تواند‬
‫ی‬‫م‬ ‫‌ها‬
‫س‬‫ایندک‬ ‫این‬ ‫از‬ ‫یک‬ ‫هر‬
.‫دارد‬ ‫بستگی‬ ‫‌ها‬
‫ی‬‫کوئر‬ ‫خاص‬ ‫‌های‬
‫ی‬‫نیازمند‬
‫لینوکس‬ ‫و‬ ‫گنو‬ ‫تاریخچه‬
“ ‫مخفف‬ ‫گنو‬ .‫‌باشد‬
‫ی‬‫م‬ ‫سازگار‬ ‫یونیکس‬ ‫با‬ ‫‌ای‬
‫ه‬‫فزایند‬ ‫طــور‬ ‫به‬ ‫کــه‬ ‫بــوده‬ ‫آزاد‬ ‫کامال‬ ‫عامل‬ ‫سیــستم‬ ‫یک‬ ‫گنو‬ ‫عامل‬ ‫سیستم‬
’
GNU s Not
Unix
‫سپتامبر‬ ‫در‬ ‫را‬ ‫گنو‬ ‫پروژه‬ ‫اولیه‬ ‫اطالعیه‬ ‫استالمن‬ ‫ریچارد‬ .‫است‬ ”
۱۹۸۳
‫سپتامبر‬ ‫در‬ ‫گنو‬ ‫اعالمیه‬ ‫نام‬ ‫به‬ ‫آن‬ ‫‌تر‬
‫ل‬‫کام‬ ‫نسخه‬ .‫کرد‬ ‫منتشر‬
۱۹۸۵
.‫است‬ ‫شده‬ ‫ترجمه‬ ‫زبان‬ ‫چندین‬ ‫به‬ ‫که‬ ‫شد‬ ‫منتشر‬
“ ‫برای‬ ‫بازگشتی‬ ‫مخفف‬ ‫یک‬ ،‫نخست‬ ‫‌کند؛‬
‫ی‬‫م‬ ‫بــرطــرف‬ ‫را‬ ‫نیــازها‬ ‫از‬ ‫تعدادی‬ ‫که‬ ‫است‬ ‫شده‬ ‫انتخاب‬ ‫علت‬ ‫این‬ ‫به‬ »‫«گنو‬ ‫نام‬
’
GNU s Not
Unix
.‫است‬ ‫جالب‬ ‫آن‬ )‫خواندن‬ ‫(یا‬ ‫گفتن‬ ‫آهنگ‬ ،‫سوم‬ ،‫است‬ ‫واقعی‬ ‫کلمه‬ ‫یک‬ ،‫دوم‬ ،‫است‬ ”
‫یا‬ ‫بپردازید‬ ‫مبلغی‬ ‫است‬ ‫ممکن‬ ‫آزاد‬ ‫‌افزار‬
‫م‬‫نر‬ ‫آوردن‬ ‫دست‬ ‫به‬ ‫برای‬ ‫شما‬ .‫قیمت‬ ‫نه‬ ،‫‌کند‬
‫ی‬‫م‬ ‫اشاره‬ ‫آزادی‬ ‫به‬ »‫آزاد‬ ‫‌افزار‬
‫م‬‫«نر‬ ‫در‬ »‫«آزاد‬ ‫کلمه‬
‫آزادی‬ ،‫نخست‬ .‫داشت‬ ‫خواهید‬ ‫آن‬ ‫از‬ ‫استفاده‬ ‫برای‬ ‫ویــژه‬ ‫آزادی‬ ‫ســه‬ ،‫باشید‬ ‫داشتــه‬ ‫اختیار‬ ‫در‬ ‫را‬ ‫‌افزار‬
‫م‬‫نر‬ ‫وقتـی‬ ،‫صورت‬ ‫هر‬ ‫در‬ .‫نپردازید‬
‫داشتن‬ ‫با‬ ،‫دلخواه‬ ‫طور‬ ‫به‬ ‫برنامه‬ ‫در‬ ‫تغییرات‬ ‫اعمال‬ ‫بــرای‬ ‫آزادی‬ ،‫دوم‬ ‫همــکاران؛‬ ‫و‬ ‫دوستان‬ ‫به‬ ‫آن‬ ‫دادن‬ ‫هدیه‬ ‫و‬ ‫برنامه‬ ‫از‬ ‫برداری‬ ‫نسخه‬ ‫برای‬
‫را‬ ‫گنو‬ ‫‌افزار‬
‫م‬‫نر‬ ‫مجددا‬ ‫(اگر‬ .‫جامعه‬ ‫ساخت‬ ‫به‬ ‫کمک‬ ‫نهایت‬ ‫در‬ ‫و‬ ‫یافته‬ ‫بهبود‬ ‫نسخه‬ ‫توزیع‬ ‫برای‬ ‫آزادی‬ ،‫سوم‬ ‫منبع؛‬ ‫کدهای‬ ‫به‬ ‫کامل‬ ‫دسترسی‬
.)‫کنید‬ ‫هدیه‬ ‫رایگان‬ ‫طور‬ ‫به‬ ‫را‬ ‫آنها‬ ‫یا‬ ‫و‬ ‫کنید‬ ‫دریافت‬ ‫را‬ ‫مبلغی‬ ‫نسخه‬ ‫یک‬ ‫انتقال‬ ‫فیزیکی‬ ‫کار‬ ‫بــرای‬ ‫‌تــوانـید‬
‫ی‬‫م‬ ،‫نمایید‬ ‫توزیع‬
‫ســال‬ ‫در‬ .‫‌شود‬
‫ی‬‫م‬ ‫نامیده‬ «‫گنو‬ ‫»پروژه‬ ،‫گنو‬ ‫سیستم‬ ‫توسعه‬ ‫پروژه‬
۱۹۸۳
‫در‬ ‫که‬ ‫همکاری‬ ‫روح‬ ‫بازگرداندن‬ ‫برای‬ ‫راهی‬ ‫عنوان‬ ‫به‬ ‫گنــو‬ ‫پــروژه‬
‫انحصاری‬ ‫‌افزارهای‬
‫م‬‫نر‬ ‫صاحبان‬ ‫توسط‬ ‫که‬ ‫موانع‬ ‫بردن‬ ‫بین‬ ‫از‬ ‫با‬ ‫تا‬ ‫شد‬ ‫ایجاد‬ ‫داشـت‬ ‫وجــود‬ ‫کامپیــوتر‬ ‫کاربران‬ ‫جامعه‬ ‫بین‬ ‫در‬ ‫نخست‬ ‫روزهای‬
.‫سازد‬ ‫ممکن‬ ‫را‬ ‫همکاری‬ ‫دیگر‬ ‫بار‬ ‫یک‬ ،‫بودند‬ ‫شده‬ ‫تحمیل‬
‫سال‬ ‫در‬
۱۹۷۱
‫دانشگاه‬ ‫در‬ ‫را‬ ‫خود‬ ‫کار‬ ‫استالمن‬ ‫ریچارد‬ ‫که‬ ‫هنگامی‬
MIT
‫استفاده‬ ‫آزاد‬ ‫‌افزار‬
‫م‬‫نر‬ ‫از‬ ‫منحصرا‬ ‫کــه‬ ‫گــروهی‬ ‫در‬ ،‫کرد‬ ‫آغاز‬
‫آزاد‬ ‫یکدیگر‬ ‫با‬ ‫همکاری‬ ‫در‬ ‫‌نویسان‬
‫ه‬‫بــرنام‬ .‫‌کــردند‬
‫ی‬‫م‬ ‫توزیع‬ ‫آزاد‬ ‫‌افزار‬
‫م‬‫نر‬ ‫اغلب‬ ‫نیز‬ ‫کامپیوتری‬ ‫‌های‬
‫ت‬‫شرک‬ ‫حتی‬ .‫پرداخت‬ ‫کار‬ ‫به‬ ‫‌کردند‬
‫ی‬‫م‬
.‫‌دادند‬
‫ی‬‫م‬ ‫انجام‬ ‫را‬ ‫کار‬ ‫همین‬ ‫نیز‬ ‫اغلب‬ ‫و‬ ‫بودند‬
‫دهه‬ ‫در‬
۱۹۸۰
‫منع‬ ‫را‬ ‫کاربزان‬ ‫توسط‬ ‫همکاری‬ ‫آنها‬ ‫مالکان‬ ‫و‬ ‫داشتند‬ ‫مالک‬ ‫که‬ ‫معنی‬ ‫این‬ ‫بــه‬ ،‫بودند‬ ‫انحصاری‬ ‫‌افزارها‬
‫م‬‫نر‬ ‫تمام‬ ‫تقریبا‬
.‫‌کرد‬
‫ی‬‫م‬ ‫ایجاب‬ ‫را‬ ‫گنو‬ ‫پروژه‬ ‫ضرورت‬ ‫کار‬ ‫این‬ ‫که‬ ‫‌کردند‬
‫ی‬‫م‬
‫‌توانید‬
‫ی‬‫نم‬ ‫حتی‬ ‫شـما‬ ،‫بــاشـد‬ ‫نـداشـته‬ ‫وجــود‬ ‫آزادی‬ ‫عامل‬ ‫سـیـستم‬ ‫اگــر‬ ‫دارند؛‬ ‫نیــاز‬ ‫عامل‬ ‫سیستم‬ ‫یــک‬ ‫به‬ ‫کامپیوتر‬ ‫کاربران‬ ‫تمام‬
‫عامل‬ ‫سیستم‬ ‫یک‬ ‫وجود‬ ،‫آزاد‬ ‫‌افزار‬
‫م‬‫نر‬ ‫در‬ ‫ضرورت‬ ‫اولیــن‬ ‫بنــابــراین‬ .‫کنید‬ ‫شروع‬ ‫را‬ ‫کامپیوتر‬ ‫با‬ ‫کار‬ ‫انحصاری‬ ‫‌افزارهای‬
‫م‬‫نر‬ ‫از‬ ‫استفاده‬ ‫بدون‬
.‫است‬ ‫آزاد‬
‫انتقال‬ ‫قابل‬ ‫و‬ ‫خورده‬ ‫محک‬ ‫قبال‬ ‫آن‬ ‫کلی‬ ‫طــراحی‬ ‫زیرا‬ ‫بساند‬ ‫یونیکس‬ ‫با‬ ‫منطبق‬ ‫عاملی‬ ‫سیستم‬ ‫تا‬ ‫گرفتند‬ ‫تصمیم‬ ‫آزاد‬ ‫افزاری‬ ‫نرم‬ ‫جنبش‬
.‫‌کرد‬
‫ی‬‫م‬ ‫آسان‬ ‫را‬ ‫گنو‬ ‫به‬ ‫یونیکس‬ ‫کاربران‬ ‫حرکت‬ ‫سازگاری‬ ‫این‬ ‫همچنین‬ ‫و‬ ،‫بود‬
،‫متن‬ ‫‌بندی‬
‫ب‬‫قال‬ ‫‌های‬
‫ه‬‫برنام‬ ،‫ویــرایشــگـرها‬ ،‫کامپــایـلرها‬ ‫شــامــل‬ ‫و‬ ‫اســت؛‬ ‫هسته‬ ‫یک‬ ‫از‬ ‫بیشتر‬ ‫خیلی‬ ‫یونیکس‬ ‫شبه‬ ‫عامل‬ ‫سیستم‬ ‫یک‬
‫ژانویه‬ ‫در‬ .‫است‬ ‫بزرگی‬ ‫بسیار‬ ‫کار‬ ‫کامل‬ ‫عامل‬ ‫سیستم‬ ‫یک‬ ‫نوشتن‬ ‫بنابرایـن‬ .‫‌باشد‬
‫ی‬‫م‬ ‫دیگر‬ ‫چیزهای‬ ‫خیلی‬ ‫و‬ ‫پستی‬ ‫‌افزارهای‬
‫م‬‫نر‬
۱۹۸۴
‫شروع‬
‫اکتبر‬ ‫در‬ ‫آزاد‬ ‫‌افزار‬
‫م‬‫نر‬ ‫بنیاد‬ .‫انجامید‬ ‫طول‬ ‫به‬ ‫سالها‬ ‫کردند‬ ‫کار‬ ‫به‬
۱۹۸۵
.‫شد‬ ‫تاسیس‬ ‫گنو‬ ‫توسعه‬ ‫به‬ ‫کمک‬ ‫جهت‬ ‫سرمایه‬ ‫جذب‬ ‫برای‬ ‫بیشتر‬
‫سال‬ ‫تا‬
۱۹۹۰
‫سال‬ ‫در‬ ،‫یونیکس‬ ‫شبه‬ ‫هسته‬ ‫یک‬ ،‫لینوکس‬ ‫سپس‬ . ‫یافتند‬ ‫دست‬ ‫هسته‬ ‫جــز‬ ‫بــه‬ ،‫عامل‬ ‫سیستم‬ ‫اصلی‬ ‫اجزای‬ ‫تمامی‬ ‫به‬
۱۹۹۱
‫ســال‬ ‫در‬ ‫و‬ ‫کرد‬ ‫پیدا‬ ‫توسعه‬ ‫تروالدز‬ ‫لینوس‬ ‫توسط‬
۱۹۹۲
‫گنو‬ ‫کامل‬ ‫تقریبا‬ ‫سیستم‬ ‫با‬ ‫لینوکس‬ ‫ترکیب‬ .‫شد‬ ‫آزاد‬ ‫‌افـزار‬
‫م‬‫نــر‬ ‫یــک‬
‫‌های‬
‫م‬‫سیست‬ ‫از‬ ‫نفر‬ ‫میلیون‬ ‫‌ها‬
‫ه‬‫د‬ ‫‌اکنون‬
‫م‬‫ه‬ ‫که‬ ‫‌شود‬
‫ی‬‫م‬ ‫زده‬ ‫تخمــین‬ .‫لینوکس‬/‫گنـو‬ ‫سیستم‬ :‫شد‬ ‫کــامل‬ ‫عامــل‬ ‫سیستم‬ ‫یک‬ ‫به‬ ‫منجر‬
.‫‌کنند‬
‫ی‬‫م‬ ‫استفاده‬ ‫غـیـره‬ ‫و‬ ‫ردهــت‬ ،‫دبیــان‬ ،‫اسلکور‬ ‫شــامــل‬ ،‫لینوکس‬/‫گنو‬
‫را‬ ‫‌افزارها‬
‫م‬‫نر‬ ‫از‬ ‫کامل‬ ‫مجموعه‬ ‫یک‬ ‫تا‬ ‫دارد‬ ‫نظر‬ ‫در‬ ‫آزاد‬ ‫‌افزار‬
‫م‬‫نر‬ ‫بنیاد‬ .‫است‬ ‫نشده‬ ‫محدود‬ ‫عامل‬ ‫سیستم‬ ‫یک‬ ‫به‬ ‫فقط‬ ‫گنو‬ ‫پروژه‬ ،‫حال‬ ‫این‬ ‫با‬
.‫‌شود‬
‫ی‬‫م‬ ‫نیز‬ ‫کاربردی‬ ‫‌افزارهای‬
‫م‬‫نـر‬ ‫شــامــل‬ ‫مــوضــوع‬ ‫ایــن‬ .‫باشند‬ ‫داشته‬ ‫‌خواهند‬
‫ی‬‫م‬ ‫کاربــران‬ ‫از‬ ‫بسیاری‬ ‫که‬ ‫آنچه‬ ‫هر‬ ، ‫کند‬ ‫ایجاد‬
‫بنیاد‬ ‫جهت‬ ‫همین‬ ‫به‬ ‫کنند‬ ‫تهیه‬ ‫‌افزار‬
‫م‬‫نر‬ ‫نیز‬ ‫ندارند‬ ‫مهارت‬ ‫کامپیـوتر‬ ‫زمینه‬ ‫در‬ ‫که‬ ‫کاربرانی‬ ‫برای‬ ‫دارد‬ ‫قصد‬ ‫همچنین‬ ‫آزاد‬ ‫‌افزار‬
‫م‬‫نر‬ ‫بنیاد‬
.‫کرد‬ ‫ایجاد‬ ،‫گنو‬ ‫سیستم‬ ‫از‬ ‫استفاده‬ ‫در‬ ‫‌کار‬
‫ه‬‫تاز‬ ‫کاربران‬ ‫به‬ ‫کمک‬ ‫منظور‬ ‫به‬ ‫گرافیکی‬ ‫کار‬ ‫میز‬ ‫یک‬ ‫آزاد‬ ‫‌افزار‬
‫م‬‫نر‬
.‫است‬ ‫دسترس‬ ‫در‬ ‫‌اکنون‬
‫م‬‫ه‬ ‫آزاد‬ ‫بازی‬ ‫تعدادی‬ .‫کند‬ ‫ایجاد‬ ‫نیز‬ ‫دیگــری‬ ‫تفریح‬ ‫ابزارهای‬ ‫و‬ ‫‌ها‬
‫ی‬‫باز‬ ‫‌خــواهد‬
‫ی‬‫م‬ ‫همچنین‬ ‫آزاد‬ ‫‌افزار‬
‫م‬‫نر‬ ‫بنیاد‬
‫به‬ ‫را‬ ‫گنو‬ ‫‌افزار‬
‫م‬‫نر‬ ،‫انحصاری‬ ‫سیستم‬ ‫مانند‬ ‫قوانینی‬ ‫که‬ ‫زمانی‬ ‫جز‬ ‫بـه‬ ،‫نـدارد‬ ‫وجــود‬ ‫محدودیتی‬ ‫هیچ‬ ‫برود؟‬ ‫پیش‬ ‫‌تواند‬
‫ی‬‫م‬ ‫کجا‬ ‫تا‬ ‫آزاد‬ ‫‌افزار‬
‫م‬‫نر‬
‫دهند‬ ‫انجام‬ ‫‌خواهند‬
‫ی‬‫م‬ ‫کامپیوتر‬ ‫کاربران‬ ‫که‬ ‫کارهایی‬ ‫تمام‬ ‫انجام‬ ‫برای‬ ‫آزاد‬ ‫‌افزارهای‬
‫م‬‫نر‬ ‫کردن‬ ‫فراهم‬ ‫نــهـایی‬ ‫هــدف‬ .‫کننــد‬ ‫منع‬ ‫کامل‬ ‫طور‬
.‫‌باشد‬
‫ی‬‫م‬ ‫انحصاری‬ ‫‌افزارهای‬
‫م‬‫نر‬ ‫کردن‬ ‫مطرود‬ ‫نتیجه‬ ‫در‬ ‫و‬
‫باز‬ ‫متن‬ ‫افزار‬ ‫نرم‬
Open Source
Software
‫مقدمه‬
‫قواعد‬ ‫گذاشته‬ ‫‌افزار‬
‫م‬‫نر‬ ‫اکوسیستم‬ ‫در‬ ‫‌گذاران‬
‫ه‬‫سرمای‬ ‫اقتصادی‬ ‫رفتار‬ ‫بر‬ ‫که‬ ‫‌ای‬
‫ه‬‫مالحظ‬ ‫قابل‬ ‫تأثیر‬ ‫با‬ ‫‌باز‬
‫ن‬‫مت‬ ‫افزار‬ ‫نرم‬
‫تولید‬ ‫فشار‬ ‫شرکتها‬ ،‫باشند‬ ‫کد‬ ‫کننده‬ ‫اعمال‬ ‫‌کنند‬
‫ی‬‫م‬ ‫سعی‬ ‫‌دهنگان‬
‫ه‬‫توسع‬ ‫تازه‬ ‫محیط‬ ‫این‬ ‫در‬ .‫است‬ ‫داده‬ ‫تغییر‬ ‫را‬ ‫بازی‬
.‫‌کشند‬
‫ی‬‫م‬ ‫را‬ ‫سرشاری‬ ‫سود‬ ‫انتظار‬ ‫سیستم‬ ‫فروشندگان‬ ‫و‬ ‫‌کنند‬
‫ی‬‫م‬ ‫حس‬ ‫را‬ ‫‌باز‬
‫ن‬‫مت‬ ‫محصوالت‬
۱
‫معرفی‬ .
‫فعل‬ ‫در‬ ‫عمده‬ ‫تغییراتی‬ ‫اتفاق‬ ‫این‬ .‫است‬ ‫آورده‬ ‫بار‬ ‫به‬ ‫کاربران‬ ‫برای‬ ‫ارزانتر‬ ‫‌افزار‬
‫م‬‫نر‬ ‫از‬ ‫بیش‬ ‫چیزی‬ ‫‌باز‬
‫ن‬‫مت‬ ‫‌افزار‬
‫م‬‫نر‬ ‫ظهور‬
.‫است‬ ‫کرده‬ ‫ایجاد‬ ‫‌افزار‬
‫م‬‫نر‬ ‫حوزه‬ ‫بازیگران‬ ‫بین‬ ‫اقتصادی‬ ‫انفعال‬ ‫و‬
‫معنای‬ ‫به‬ ‫اما‬ ‫است‬ - ‫زندگی‬ ‫از‬ ‫سبکی‬ ‫حتی‬ ‫یا‬ - ‫‌افزار‬
‫م‬‫نر‬ ‫توسعه‬ ‫به‬ ‫ویژه‬ ‫نگاهی‬ ‫تجسم‬ ‫‌باز‬
‫ن‬‫مت‬ ‫‌افزار‬
‫م‬‫نر‬ ‫‌ها‬
‫ی‬‫خیل‬ ‫برای‬
‫جامعه‬ ‫رشد‬ ‫برای‬ ‫باید‬ ‫شرکتها‬ ‫که‬ ‫است‬ ‫این‬ ‫گابریل‬ ‫ریچارد‬ ‫و‬ ‫گلدمن‬ ‫ران‬ ‫پیشنهاد‬ .‫هست‬ ‫هم‬ ‫تجاری‬ ‫تدبیر‬ ‫نوعی‬
.‫نمایند‬ ‫ایجاد‬ ‫خدماتشان‬ ‫و‬ ‫محصوالت‬ ‫اطراف‬ ‫زنده‬ ‫محیطی‬ ‫و‬ ‫کنند‬ ‫استفاده‬ ‫‌باز‬
‫ن‬‫مت‬ ‫‌افزار‬
‫م‬‫نر‬ ‫از‬ ‫کاربرانشان‬
‫به‬ ‫است‬ ‫نیاز‬ ‫مورد‬ ‫کاربر‬ ‫احتیاجات‬ ‫با‬ ‫آن‬ ‫دادن‬ ‫تطبیق‬ ‫برای‬ ‫که‬ ‫را‬ ‫کد‬ ‫متن‬ ‫و‬ ‫است‬ ‫رایگان‬ ‫‌باز‬
‫ن‬‫مت‬ ‫‌افزار‬
‫م‬‫نر‬ ‫معمول‬ ‫بطور‬
‫مبلغی‬ ‫دریافت‬ ‫ازای‬ ‫در‬ ‫را‬ ‫ممکن‬ ‫تغییرات‬ ‫بعالوه‬ ‫‌افزار‬
‫م‬‫نر‬ ‫بازپخش‬ ‫اجازه‬ ‫کاربر‬ ‫به‬ ‫‌باز‬
‫ن‬‫مت‬ ‫‌های‬
‫ه‬‫پروان‬ ‫اغلب‬ .‫دارد‬ ‫همراه‬
( ‫باشد‬ ‫دسترس‬ ‫در‬ ‫عمومی‬ ‫بصورت‬ ‫کد‬ ‫متن‬ ‫تغییرات‬ ‫که‬ ‫زمانی‬ ‫تا‬ ‫‌دهند‬
‫ی‬‫م‬ ‫بازپخش‬ ‫برای‬
. .
www opensource org
.)
‫یک‬ ‫اینکه‬ ‫بجای‬ .‫‌دهد‬
‫ی‬‫م‬ ‫توسعه‬ ‫جامعه‬ ‫که‬ ‫است‬ ‫‌افزاری‬
‫م‬‫نر‬ ‫جمعی‬ ‫‌باز‬
‫ن‬‫مت‬ .‫دارد‬ ‫وجود‬ ‫‌باز‬
‫ن‬‫مت‬ ‫‌افزار‬
‫م‬‫نر‬ ‫نوع‬ ‫دو‬
‫از‬ ‫یک‬ ‫کدام‬ ‫که‬ ‫‌گیرند‬
‫ی‬‫م‬ ‫تصمیم‬ ‫داوطلبان‬ ‫از‬ ‫برگزیده‬ ‫گروهی‬ ‫گاهی‬ ‫باشد‬ ‫‌افزار‬
‫م‬‫نر‬ ‫مالک‬ ‫حقوقی‬ ‫شخصیت‬
‫‌دهندگان‬
‫ه‬‫توسع‬ .‫برود‬ ‫سو‬ ‫کدام‬ ‫به‬ ‫‌افزار‬
‫م‬‫نر‬ ‫و‬ ‫شوند‬ ‫پذیرفته‬ ‫اصلی‬ ‫کد‬ ‫متن‬ ‫به‬ ‫ورود‬ ‫برای‬ ‫شده‬ ‫اعمال‬ ‫همکاریهای‬
‫آپاچی‬ ‫وب‬ ‫سرور‬ ‫مورد‬ ‫مانند‬ ‫‌گیرند‬
‫ی‬‫م‬ ‫تصمیم‬ ‫‌افزار‬
‫م‬‫نر‬ ‫درباره‬ ‫بخصوص‬ ‫شرکت‬ ‫یک‬ ‫نه‬ ‫و‬ ‫کد‬ ‫کنندگان‬ ‫اعمال‬ ،‫شخصی‬
(
. .
httpd apache org
.)
‫در‬ ‫را‬ ‫تالیف‬ ‫حق‬ ‫شرکت‬ .‫است‬ ‫آن‬ ‫‌دهنده‬
‫ه‬‫توسع‬ ‫و‬ ‫مالک‬ ،‫سود‬ ‫پی‬ ‫در‬ ‫شخصیتی‬ ‫که‬ ‫است‬ ‫‌افزاری‬
‫م‬‫نر‬ ‫تجاری‬ ‫‌باز‬
‫ن‬‫مت‬
‫مانند‬ ‫دهد‬ ‫انجام‬ ‫کاری‬ ‫چه‬ ‫آینده‬ ‫در‬ ‫و‬ ‫بپذیرد‬ ‫اصلی‬ ‫کد‬ ‫متن‬ ‫به‬ ‫ورود‬ ‫برای‬ ‫را‬ ‫کد‬ ‫کدام‬ ‫که‬ ‫‌کند‬
‫ی‬‫م‬ ‫تعیین‬ ‫و‬ ‫دارد‬ ‫اختیار‬
‫مورد‬
MySQL
‫داده‬ ‫پایگاه‬ ‫و‬
( . . )
MySQL www mysql com
.
‫متمرکز‬ ‫کار‬ ‫نیروی‬ ‫اقتصاد‬ ‫بر‬ ‫اغلب‬ ‫جامعه‬ ‫بوسیله‬ ‫شده‬ ‫داده‬ ‫توسعه‬ ‫‌باز‬
‫ن‬‫مت‬ ‫‌افزار‬
‫م‬‫نر‬ ‫اقتصاد‬ ‫درباره‬ ‫پیشین‬ ‫مطالعات‬
‫اشاره‬ ‫ریموند‬ ‫اریک‬ .‫‌یابد‬
‫ی‬‫م‬ ‫تخصیص‬ ‫‌باز‬
‫ن‬‫مت‬ ‫‌افزار‬
‫م‬‫نر‬ ‫به‬ ‫‌آوری‬
‫ب‬‫تعج‬ ‫فراوان‬ ‫داوطلبانه‬ ‫کار‬ ‫میزان‬ ‫آن‬ ‫در‬ ‫که‬ ‫است‬
‫کمک‬ ‫‌باز‬
‫ن‬‫مت‬ ‫‌های‬
‫ه‬‫پروژ‬ ‫به‬ ‫همتایانشان‬ ‫بین‬ ‫اعتبار‬ ‫افزایش‬ ‫از‬ ‫ناشی‬ ‫شخصی‬ ‫لذت‬ ‫بخاطر‬ ‫‌دهندگان‬
‫ه‬‫توسع‬ ‫که‬ ‫‌کند‬
‫ی‬‫م‬
. ‫رسیدند‬ ‫مشابهی‬ ‫نتیجه‬ ‫به‬ ‫نیز‬ ‫خود‬ ‫تجربی‬ ‫مطالعه‬ ‫در‬ ‫همکارانش‬ ‫و‬ ‫هارووی‬ ‫ارنان‬ ‫‌کنند‬
‫ی‬‫م‬
‫‌انداز‬
‫م‬‫چش‬ ‫بهبود‬ ‫و‬ ‫فنی‬ ‫تواناییهای‬ ‫کردن‬ ‫مستند‬ ‫برای‬ ‫‌دهندگان‬
‫ه‬‫توسع‬ ‫که‬ ‫‌کنند‬
‫ی‬‫م‬ ‫استدالل‬ ‫تیروله‬ ‫جین‬ ،‫لرنرو‬ ‫جاشوا‬
‫لذت‬ ‫که‬ ‫‌کنند‬
‫ی‬‫م‬ ‫گزارش‬ ‫گلف‬ ‫رابرت‬ ‫الخانیو‬ ‫کریم‬ ‫و‬ ‫‌کنند‬
‫ی‬‫م‬ ‫کمک‬ ‫‌باز‬
‫ن‬‫مت‬ ‫‌های‬
‫ه‬‫پروژ‬ ‫به‬ ‫آتی‬ ‫کارفرمایان‬ ‫برای‬ ‫شغلی‬
‫نشان‬ ‫مطالعه‬ ‫این‬ ‫گرچه‬ ‫است‬ ‫‌باز‬
‫ن‬‫مت‬ ‫‌های‬
‫ه‬‫پروژ‬ ‫به‬ ‫‌دهندگان‬
‫ه‬‫توسع‬ ‫کمک‬ ‫برای‬ ‫مهمی‬ ‫ذاتی‬ ‫محرک‬ ‫کار‬ ‫از‬ ‫بردن‬
.‫‌اند‬
‫م‬‫مه‬ ‫هم‬ ‫مالی‬ ‫‌های‬
‫ه‬‫انگیز‬ ‫که‬ ‫‌دهد‬
‫ی‬‫م‬
‫را‬ ‫اشخاصی‬ ‫شرکتها‬ ‫چرا‬ ‫که‬ ‫‌دهد‬
‫ی‬‫نم‬ ‫شرح‬ ‫را‬ ‫این‬ ‫اما‬ ‫است‬ ‫داوطلبانه‬ ‫کار‬ ‫برای‬ ‫توضیحات‬ ‫از‬ ‫‌ای‬
‫ه‬‫پار‬ ‫اینها‬ ‫که‬ ‫حالی‬ ‫در‬
‫همکارانش‬ ‫و‬ ‫هان‬ ‫هورن‬ ‫ایل‬ .‫‌کنند‬
‫ی‬‫م‬ ‫کمک‬ ‫‌باز‬
‫ن‬‫مت‬ ‫‌افزار‬
‫م‬‫نر‬ ‫‌های‬
‫ه‬‫پروژ‬ ‫به‬ ‫شرکت‬ ‫کاری‬ ‫زمان‬ ‫در‬ ‫که‬ ‫‌کنند‬
‫ی‬‫م‬ ‫استخدام‬
‫در‬ ‫آنها‬ ‫رتبه‬ ‫با‬ ‫مستقیمی‬ ‫رابطه‬ ‫‌کنند‬
‫ی‬‫م‬ ‫کمک‬ ‫آپاچی‬ ‫افزار‬ ‫نرم‬ ‫بنیاد‬ ‫پروژه‬ ‫به‬ ‫که‬ ‫کسانی‬ ‫حقوق‬ ‫که‬ ‫دریافتند‬
‫معیاری‬ ‫عنوان‬ ‫به‬ ‫را‬ ‫بنیاد‬ ‫در‬ ‫‌دهندگان‬
‫ه‬‫توسع‬ ‫رتبه‬ ‫کارفرمایان‬ ‫که‬ ‫گرفتند‬ ‫نتیجه‬ ‫محققین‬ ‫پس‬ .‫دارد‬ ‫آپاچی‬ ‫تشکیالت‬
.‫‌گیرند‬
‫ی‬‫م‬ ‫بکار‬ ‫مولد‬ ‫‌های‬
‫ی‬‫توانای‬ ‫سنجش‬ ‫برای‬
‫‌ها‬
‫ه‬‫داد‬ ‫پایگاه‬
،)»‫«پایگاه‬ ،‫خالصه‬ ‫‌طور‬
‫ه‬‫(ب‬
‫اطالعاتی‬ ‫بانک‬
،
‫داِدگان‬
‫یا‬
‫ِدیتاِبیس‬
:‫انگلیسی‬ ‫(به‬
Database
‫با‬ ‫‌ها‬
‫ه‬‫داد‬ ‫از‬ ‫‌ای‬
‫ه‬‫مجموع‬ ‫به‬ )
.‫‌شود‬
‫ی‬‫م‬ ‫گفته‬ ‫‌مند‬
‫ن‬‫ساما‬ ‫و‬ ‫منظم‬ ‫ساختار‬
‫اجمالی‬ ‫بررسی‬ ‫و‬ ‫اصطالحات‬
‫از‬ ‫معموًال‬ ‫اطالعات‬ ‫این‬ ‫به‬ ‫دسترسی‬ ‫که‬ ‫است‬ ‫سازمان‬ ‫یا‬ ‫ساختار‬ ‫و‬ ‫مرتبط‬ ‫‌های‬
‫ه‬‫داد‬ ‫از‬ ‫‌ای‬
‫ه‬‫مجموع‬ ‫به‬ ‫اشاره‬ »‫داده‬ ‫«پایگاه‬ ،‫دیگر‬ ‫بعبارت‬
( »‫داده‬ ‫پایگاه‬ ‫مدیریت‬ ‫«سیستم‬ ‫طریق‬
DBMS
‫تا‬ ‫‌دهد‬
‫ی‬‫م‬ ‫اجازه‬ ‫که‬ ‫است‬ ‫کامپیوتری‬ ‫‌افزارهای‬
‫م‬‫نر‬ ‫از‬ ‫یکپارچه‬ ‫مجموعه‬ ‫یک‬ ‫از‬ ‫متشکل‬ )
. .‫‌کند‬
‫ی‬‫م‬ ‫فراهم‬ ‫را‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫موجود‬ ‫اطالعات‬ ‫تمام‬ ‫به‬ ‫دسترسی‬ ‫و‬ ‫‌ها‬
‫ه‬‫داد‬ ‫پایگاه‬ ‫چند‬ ‫یا‬ ‫یک‬ ‫با‬ ‫کردن‬ ‫برقرار‬ ‫ارتباط‬ ‫برای‬ ‫کاربران‬
‫به‬ ‫را‬ ‫آن‬ ‫‌توان‬
‫ی‬‫م‬ ‫که‬ ‫دهد‬ ‫انجام‬ ‫را‬ ‫خود‬ ‫‌های‬
‫ه‬‫داد‬ ‫و‬ ‫داده‬ ‫پایگاه‬ ‫یک‬ ‫مدیریت‬ ‫که‬ ‫‌دهد‬
‫ی‬‫م‬ ‫اجازه‬ ‫مختلف‬ ‫توابع‬ ‫به‬ ‫موجود‬ ‫اس‬ .‫اس‬.‫ام‬.‫بی‬.‫دی‬
:‫کرد‬ ‫‌بندی‬
‫ه‬‫طبق‬ ‫اصلی‬ ‫گروه‬ ‫چهار‬
1
.
‫‌ها‬
‫ه‬‫داد‬ ‫تعریف‬
.‫‌کنیم‬
‫ی‬‫م‬ ‫تعریف‬ ‫آن‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫را‬ ‫داده‬ ‫سازمان‬ ‫که‬ ‫تعاریف‬ ‫از‬ ‫حذف‬ ‫و‬ ‫اصالح‬ ،‫ایجاد‬ -
2
.
‫روزرسانی‬ ‫به‬
.‫واقعی‬ ‫‌های‬
‫ه‬‫داد‬ ‫حذف‬ ‫و‬ ‫اصالح‬ ،‫درج‬ -
3
.
‫اطالعات‬ ‫ارائه‬
.‫دیگر‬ ‫کاربردی‬ ‫‌های‬
‫ه‬‫برنام‬ ‫توسط‬ ‫بیشتر‬ ‫پردازش‬ ‫برای‬ ‫یا‬ ‫استفاده‬ ‫قابل‬ ‫مستقیم‬ ‫‌طور‬
‫ه‬‫ب‬ ‫فرم‬ ‫یک‬ ‫در‬
4
.
‫اداره‬
‫کنترل‬ ‫با‬ ‫فروش‬ ‫و‬ ‫خرید‬ ،‫‌ها‬
‫ه‬‫داد‬ ‫تمامیت‬ ‫حفظ‬ ،‫عملکرد‬ ‫بر‬ ‫نظارت‬ ،‫‌ها‬
‫ه‬‫داد‬ ‫امنیت‬ ‫اجرای‬ ،‫کاربران‬ ‫بر‬ ‫نظارت‬ ‫و‬ ‫نام‬ ‫ثبت‬ -
‫همزمانی‬
‫داده‬ ‫پایگاه‬ ‫تاریخچه‬
‫داده‬ ‫پایگاه‬ ‫مفهوم‬
‫ده‬ ‫از‬ ‫داده‬ ‫پایگاه‬ ‫مفهوم‬
‫ٔه‬
۱۹۶۰
.‫‌است‬
‫ه‬‫شد‬ ‫ایجاد‬ ‫اطالعاتی‬ ‫‌های‬
‫م‬‫سیست‬ ‫نگهداشت‬ ‫و‬ ،‫ساخت‬ ،‫طراحی‬ ‫در‬ ‫فزاینده‬ ‫مشکالت‬ ‫کاهش‬ ‫برای‬
.‫‌است‬
‫ه‬‫کرد‬ ‫رشد‬ ‫‌کند‬
‫ی‬‫م‬ ‫ممکن‬ ‫را‬ ‫‌ها‬
‫ه‬‫داد‬ ‫پایگاه‬ ‫به‬ ‫کارا‬ ‫و‬ ‫مؤثر‬ ‫دستکاری‬ ‫که‬ ‫داده‬ ‫پایگاه‬ ‫مدیریت‬ ‫‌های‬
‫م‬‫سیست‬ ‫مفهوم‬ ‫همراه‬ ‫به‬ ‫مفهوم‬ ‫این‬
‫ژوئن‬ ‫به‬ ‫داده‬ ‫پایگاه‬ ‫اصطالح‬ ‫کاربردهای‬ ‫اولین‬
۱۹۶۳
‫شرکت‬ ‫که‬ ‫زمانی‬ ‫یعنی‬ ،‫‌گردد‬
‫ی‬‫بازم‬
System Development
Corporation
.‫گرفت‬ ‫عهده‬ ‫بر‬ ‫را‬ »‫مرکزی‬ ‫‌ای‬
‫ه‬‫داد‬ ‫پایگاه‬ ‫یک‬ ‫محاسباتی‬ ‫مدیریت‬ ‫و‬ ‫«توسعه‬ ‫نام‬ ‫به‬ ‫طرح‬ ‫یک‬ ‫اجرایی‬ ‫مسئولیت‬
‫دهه‬ ‫اوایل‬ ‫در‬ ‫واحد‬ ‫واژه‬ ‫یک‬ ‫عنوان‬ ‫به‬ ‫داده‬ ‫پایگاه‬
۷۰
‫دهه‬ ‫اواخر‬ ‫در‬ ‫و‬ ‫اروپا‬ ‫در‬
۷۰
‫(بانک‬ .‫رفت‬ ‫کار‬ ‫به‬ ‫آمریکایی‬ ‫معتبر‬ ‫‌های‬
‫ه‬‫نام‬ ‫خبر‬ ‫در‬
‫سال‬ ‫اوایل‬ ‫در‬ ‫یا‬ ‫‌ای‬
‫ه‬‫داد‬
۱۹۶۶
)‫رفت‬ ‫کار‬ ‫به‬ ‫پست‬ ‫واشینگتن‬ ‫روزنامه‬ ‫در‬
‫دهه‬ ‫در‬ ‫داده‬ ‫پایگاه‬ ‫مدیریت‬ ‫سیستم‬ ‫اولین‬
۶۰
‫شاخه‬ ‫این‬ ‫پیشگامان‬ ‫از‬ .‫یافت‬ ‫گسترش‬
‫بکمن‬ ‫چارلز‬
‫نشان‬ ‫را‬ ‫این‬ ‫بکمن‬ ‫مقاالت‬ .‫‌باشد‬
‫ی‬‫م‬
‫پایه‬ ‫بر‬ ‫داده‬ ‫پردازش‬ ‫‌ها‬
‫ن‬‫زما‬ ‫آن‬ ‫در‬ .‫‌کند‬
‫ی‬‫م‬ ‫مهیا‬ ‫را‬ ‫‌سازی‬
‫ه‬‫ذخیر‬ ‫وسایل‬ ‫به‬ ‫دسترسی‬ ‫برای‬ ‫مؤثرتری‬ ‫بسیار‬ ‫کاربرد‬ ‫او‬ ‫فرضیات‬ ‫که‬ ‫داد‬
.‫شد‬ ‫ایجاد‬ ‫‌ها‬
‫ن‬‫زما‬ ‫آن‬ ‫در‬ ‫‌ای‬
‫ه‬‫داد‬ ‫مدل‬ ‫نوع‬ ‫دو‬ .‫‌کند‬
‫ی‬‫م‬ ‫مهیا‬ ‫را‬ ‫اطالعات‬ ‫سری‬ ‫پردازش‬ ‫که‬ ‫بود‬ ‫مغناطیسی‬ ‫نوارهای‬ ‫و‬ ‫منگنه‬ ‫‌های‬
‫ت‬‫کار‬
CODASYL
‫توسط‬ ‫که‬ ‫مراتبی‬ ‫سلسله‬ ‫مدل‬ ‫و‬ ‫داشت‬ ‫بکمن‬ ‫نظریات‬ ‫در‬ ‫ریشه‬ ‫شدکه‬ ‫‌ای‬
‫ه‬‫شبک‬ ‫مدل‬ ‫توسعه‬ ‫موجب‬
North
American Rockwell
‫شرکت‬ ‫آن‬ ‫از‬ ‫اقتباس‬ ‫با‬ ‫بعدًا‬ ‫و‬ ‫شد‬ ‫ایجاد‬
IBM
‫محصول‬
IMS
.‫نمود‬ ‫تولید‬ ‫را‬
‫توسط‬ ‫‌ای‬
‫ه‬‫رابط‬ ‫مدل‬
. .
E F Codd
‫سال‬ ‫در‬
۱۹۷۰
‫طوالنی‬ ‫نسبتًا‬ ‫مدتی‬ ‫برای‬ .‫‌داد‬
‫ی‬‫م‬ ‫قرار‬ ‫انتقاد‬ ‫مورد‬ ‫را‬ ‫موجود‬ ‫‌های‬
‫ل‬‫مد‬ ‫او‬ .‫شد‬ ‫ارائه‬
‫کامپیوترها‬ ‫میکرو‬ ‫برای‬ ‫موفق‬ ‫محصول‬ ‫اولین‬ .‫بود‬ ‫تأیید‬ ‫مورد‬ ‫علمی‬ ‫مجامع‬ ‫در‬ ‫مدل‬ ‫این‬
dBASE
‫‌های‬
‫ل‬‫‌عام‬
‫م‬‫سیست‬ ‫برای‬ ‫بودکه‬
/
CP M
‫و‬
- / -
PC DOS MS DOS
‫سال‬ ‫جریان‬ ‫در‬ .‫شد‬ ‫ساخته‬
۱۹۸۰
( ‫پایگاهی‬ ‫‌های‬
‫ن‬‫ماشی‬ ‫و‬ ‫شده‬ ‫توزیع‬ ‫مدل‬ ‫‌های‬
‫ه‬‫پایگا‬ ‫روی‬ ‫بر‬ ‫پژوهش‬
database machines
‫سال‬ ‫در‬ .‫گذاشت‬ ‫بازار‬ ‫بر‬ ‫کمی‬ ‫تأثیر‬ ‫اما‬ ،‫شد‬ ‫متمرکز‬ )
۱۹۹۰
.‫شد‬ ‫جلب‬ ‫گرا‬ ‫شیء‬ ‫مدل‬ ‫طرف‬ ‫به‬ ‫توجهات‬
‫‌افزار‬
‫م‬‫نر‬ ‫مهندسی‬ ‫(شامل‬ ‫داده‬ ‫مهندسی‬ ،‫خاص‬ ‫‌های‬
‫ه‬‫داد‬ ‫پایگاه‬ ‫روی‬ ‫بر‬ ‫‌سادگی‬
‫ه‬‫ب‬ ‫و‬ ‫بود‬ ‫الزم‬ ‫مرکب‬ ‫‌های‬
‫ه‬‫داد‬ ‫کنترل‬ ‫جهت‬ ‫مدل‬ ‫این‬
.‫‌کرد‬
‫ی‬‫م‬ ‫کار‬ ‫‌ای‬
‫ه‬‫رسان‬ ‫چند‬ ‫‌های‬
‫ه‬‫داد‬ ‫و‬ )‫منابع‬
‫سال‬ ‫در‬
۲۰۰۰
( ‫‌ال‬
‫م‬‫‌ا‬
‫س‬‫اک‬ ‫پایگاه‬ ‫و‬ ‫داد‬ ‫رخ‬ ‫‌ای‬
‫ه‬‫تاز‬ ‫نوآوری‬
XML
‫و‬ ‫مستندات‬ ‫بین‬ ‫تفاوت‬ ‫بردن‬ ‫بین‬ ‫از‬ ‫مدل‬ ‫این‬ ‫هدف‬ .‫آمد‬ ‫وجود‬ ‫به‬ )
.‫گیرند‬ ‫قرار‬ ‫هم‬ ‫کنار‬ ‫در‬ ‫نه‬ ‫یا‬ ‫باشند‬ ‫یافته‬ ‫ساخت‬ ‫چه‬ ‫اطالعاتی‬ ‫منابع‬ ‫که‬ ‫‌کند‬
‫ی‬‫م‬ ‫کمک‬ ‫و‬ ‫است‬ ‫‌ها‬
‫ه‬‫داد‬
‫اس‬ .‫ام‬.‫بی‬.‫دی‬ ‫توضیح‬
DBMS
‫برخی‬ .‫دارد‬ ‫نیاز‬ ‫وتوسعه‬ ‫تالش‬ ‫سال‬ ‫و‬ ‫نفر‬ ‫هزاران‬ ‫به‬ ‫معمول‬ ‫‌طور‬
‫ه‬‫ب‬ ‫آن‬ ‫توسعه‬ ‫و‬ ‫‌است‬
‫ه‬‫یافت‬ ‫تکامل‬ ‫پیچیده‬ ‫‌افزار‬
‫م‬‫نر‬ ‫سیستم‬ ‫یک‬
‫مانند‬ ‫اس‬ .‫ام‬.‫بی‬.‫دی‬ ‫از‬
Adabas
‫و‬ ‫اوراکل‬ ،
2
DB
.
‫صرفه‬ ‫به‬ ‫مقرون‬ ‫‌تواند‬
‫ی‬‫م‬ ‫توسعه‬ ‫هزینه‬ ‫که‬ ‫است‬ ‫واقعیت‬ ‫این‬ ،‫حال‬ ‫این‬ ‫با‬ .‫ست‬ ‫کاربردی‬ ‫‌های‬
‫ه‬‫برنام‬ ‫نیازهای‬ ‫رفع‬ ‫اس‬ .‫ام‬.‫بی‬.‫دی‬ ‫هدف‬
،‫حال‬ ‫این‬ ‫با‬ .‫باشد‬ ‫تر‬
DBMS
‫موارد‬ ‫برخی‬ ‫در‬ :‫دارد‬ ‫‌ای‬
‫ه‬‫بهین‬ ‫حل‬ ‫راه‬ ‫همیشه‬
DBMS
.‫کند‬ ‫معرفی‬ ‫را‬ ‫غیرضروری‬ ‫سربار‬ ‫است‬ ‫ممکن‬
‫‌های‬
‫م‬‫سیست‬ :‫است‬ ‫ایمیل‬ ‫سیستم‬ ‫رایج‬ ‫مثال‬ ‫یک‬ .‫دارد‬ ‫وجود‬ ‫خاص‬ ‫‌های‬
‫ه‬‫داد‬ ‫پایگاه‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫که‬ ‫‌های‬
‫م‬‫سیست‬ ‫از‬ ‫بسیاری‬ ‫‌های‬
‫ه‬‫نمون‬
‫قابلیت‬ ‫از‬ ‫توجهی‬ ‫قابل‬ ‫بخش‬ ‫نیازی‬ ‫و‬ ،‫ایمیل‬ ‫‌های‬
‫م‬‫پیا‬ ‫مدیریت‬ ‫‌سازی‬
‫ه‬‫بهین‬ ‫برای‬ ‫‌است‬
‫ه‬‫شد‬ ‫طراحی‬ ‫ایمیل‬
DBMS
‫از‬ ‫بسیاری‬ .‫است‬
‫رابط‬ ‫دادن‬ ‫قرار‬ ‫بدون‬ ،‫نهایی‬ ‫کاربران‬ ‫طرف‬ ‫از‬ ‫داده‬ ‫پایگاه‬ ‫به‬ ‫دسترسی‬ ‫برای‬ ‫است‬ ‫‌ای‬
‫ه‬‫برنام‬ ‫اطالعاتی‬ ‫‌های‬
‫ک‬‫بان‬
DBMS
‫‌طور‬
‫ه‬‫ب‬
‫برنامه‬ ‫‌نویسی‬
‫ه‬‫برنام‬ ‫رابط‬ ‫یک‬ ‫طریق‬ ‫از‬ ‫زیاد‬ ‫احتمال‬ ‫به‬ ‫یا‬ ،‫مستقیم‬ ‫‌طور‬
‫ه‬‫ب‬ ‫سیم‬ ‫پروتکل‬ ‫یک‬ ‫است‬ ‫ممکن‬ ‫‌افزار‬
‫م‬‫نر‬ ‫نویسان‬ ‫برنامه‬ .‫مستقیم‬
‫با‬ ‫داده‬ ‫پایگاه‬ ‫مدیران‬ ‫و‬ ‫داده‬ ‫پایگاه‬ ‫طراحان‬ .‫کنند‬ ‫استفاده‬
DBMS
‫حفظ‬ ‫و‬ ‫ساخت‬ ‫برای‬ ‫شده‬ ‫داده‬ ‫اختصاص‬ ‫‌های‬
‫ط‬‫راب‬ ‫طریق‬ ‫از‬
‫رابط‬ ‫و‬ ‫اس‬ .‫ام‬.‫بی‬.‫دی‬ ‫عملکرد‬ ‫چگونگی‬ ‫مورد‬ ‫در‬ ‫درک‬ ‫و‬ ‫بیشتر‬ ‫دانش‬ ‫از‬ ‫برخی‬ ‫به‬ ‫نیاز‬ ‫نتیجه‬ ‫در‬ ‫و‬ ،‫داده‬ ‫‌های‬
‫ه‬‫پایگا‬ ‫کاربردی‬ ‫‌های‬
‫ه‬‫برنام‬
'
.‫‌کنند‬
‫ی‬‫م‬ ‫تعامل‬ ‫اس‬ .‫ام‬.‫بی‬.‫دی‬ ‫تنظیم‬ ‫پارامترهای‬ ‫و‬ ‫خارجی‬
‫داده‬ ‫پایگاه‬ ‫‌های‬
‫ل‬‫مد‬
‫هر‬ ‫برای‬ .‫دارد‬ ‫وجود‬ ‫‌ای‬
‫ه‬‫داد‬ ‫‌های‬
‫ل‬‫مد‬ ‫برای‬ ‫مختلفی‬ ‫شگردهای‬ .‫‌کند‬
‫ی‬‫م‬ ‫مشخص‬ ‫منطقی‬ ‫سطح‬ ‫در‬ ‫را‬ ‫‌ها‬
‫ه‬‫داد‬ ‫پایگاه‬ ‫کاربران‬ ‫کاری‬ ‫الگوی‬
‫مهیا‬ ‫کاربران‬ ‫برای‬ ‫فیزیکی‬ ‫انطباق‬ ‫در‬ ‫مختلفی‬ ‫کنترل‬ ‫سطوح‬ ‫و‬ ‫است‬ ‫‌سازی‬
‫ه‬‫پیاد‬ ‫قابل‬ ‫مختلفی‬ ‫فیزیکی‬ ‫اجراهای‬ ‫منطقی‬ ‫‌های‬
‫ل‬‫مد‬ ‫از‬ ‫یک‬
‫مدیریت‬ ‫سامانه‬ ‫کار‬ ‫اساس‬ ‫‌ای‬
‫ه‬‫رابط‬ ‫مدل‬ .‫‌ای‬
‫ه‬‫رابط‬ ‫مدل‬ ‫و‬ ‫‌ای‬
‫ه‬‫شبک‬ ‫مدل‬ ،‫مراتبی‬ ‫سلسله‬ ‫مدل‬ ،‫تخت‬ ‫مدل‬ ‫از‬ ‫عبارتند‬ ‫‌ها‬
‫ل‬‫مد‬ ‫این‬ .‫‌کند‬
‫ی‬‫م‬
.‫است‬ ‫امروزی‬ ‫‌های‬
‫ه‬‫داد‬ ‫پایگاه‬
‫‌سازی‬
‫ل‬‫مد‬ ‫و‬ ‫طراحی‬
‫داده‬ ‫پایگاه‬ ‫در‬ ‫اطالعات‬ ‫ساختار‬ ‫‌کننده‬
‫س‬‫منعک‬ ‫که‬ ‫مفهومی‬ ‫داده‬ ‫مدل‬ ‫یک‬ ‫تولید‬ ‫برای‬ ‫که‬ ‫است‬ ‫این‬ ‫داده‬ ‫پایگاه‬ ‫طراح‬ ‫یک‬ ‫وظیفه‬ ‫اولین‬
‫روش‬ ‫از‬ ‫دیگر‬ ‫یکی‬ .‫طراحی‬ ‫ابزار‬ ‫کمک‬ ‫با‬ ‫اغلب‬ ،‫ارتباط‬-‫موجودیت‬ ‫مدل‬ ‫یک‬ ‫توسعه‬ ‫منظور‬ ‫به‬ .‫کند‬ ‫پیشنهاد‬ ‫طرحی‬ ‫‌شود‬
‫ی‬‫م‬ ‫برگزار‬
‫به‬ :‫شود‬ ‫خارج‬ ‫جهان‬ ‫از‬ ‫ممکن‬ ‫مدل‬ ‫دارد‬ ‫بستگی‬ ‫‌کننده‬
‫س‬‫منعک‬ ‫حالت‬ ‫دقت‬ ‫به‬ ‫موفق‬ ‫داده‬ ‫مدل‬ .‫است‬ ‫یکپارچه‬ ‫‌سازی‬
‫ل‬‫مد‬ ‫زبان‬ ‫محبوب‬
.‫شود‬ ‫ذخیره‬ ‫اطالعات‬ ‫یک‬ ‫از‬ ‫بیش‬ ‫که‬ ‫‌دهد‬
‫ی‬‫نم‬ ‫اجازه‬ ‫حقیقت‬ ‫در‬ ،‫باشد‬ ‫داشته‬ ‫تلفن‬ ‫شماره‬ ‫یک‬ ‫از‬ ‫بیش‬ ‫‌توانند‬
‫ی‬‫م‬ ‫مردم‬ ‫اگر‬ ،‫مثال‬ ‫عنوان‬
.‫دارد‬ ‫کاربران‬ ‫کاربرد‬ ‫دامنه‬ ‫از‬ ‫خوبی‬ ‫درک‬ ‫به‬ ‫نیاز‬ ‫خوب‬ ‫مفهومی‬ ‫داده‬ ‫مدل‬ ‫طراحی‬
،‫‌باشد‬
‫ی‬‫م‬ ‫دارد‬ ‫عالقه‬ ‫آن‬ ‫به‬ ‫سازمان‬ ‫یک‬ ‫که‬ ‫چیزهایی‬ ‫مورد‬ ‫در‬ ‫عمیق‬ ‫‌های‬
‫ل‬‫سوا‬ ‫پرسیدن‬ ‫شامل‬ ‫معموًال‬
،‫‌رسد‬
‫ی‬‫م‬ ‫فروش‬ ‫به‬ ‫‌بندی‬
‫ه‬‫بست‬ ‫از‬ ‫مختلف‬ ‫فرم‬ ‫دو‬ ‫با‬ ‫محصول‬ ‫یک‬ ‫اگر‬ ‫یا‬ ، ‫باشد؟‬ ‫کاال‬ ‫‌کننده‬
‫ه‬‫عرض‬ ‫یک‬ ‫‌تواند‬
‫ی‬‫م‬ ‫مشتری‬ ‫یک‬ ‫مانند‬
" " "
‫و‬ )‫پرواز‬ ‫بخش‬ ،‫پرواز‬ ،‫محصوالت‬ ،‫(مشتریان‬ ‫اشخاص‬ ‫برای‬ ‫اصطالحات‬ ‫تعاریف‬ ‫پرسش‬ ‫؟‬ ‫است‬ ‫آن‬ ‫مختلف‬ ‫محصوالت‬ ‫یا‬ ‫محصول‬ ‫همان‬
"
‫کسب‬ ‫فرایندهای‬ ‫از‬ ‫ورودی‬ ‫شامل‬ ‫اوقات‬ ‫گاهی‬ ‫مفهومی‬ ‫داده‬ ‫مدل‬ ‫تولید‬ .‫‌گیرد‬
‫ی‬‫م‬ ‫قرار‬ ‫استفاده‬ ‫مورد‬ ‫شده‬ ‫ایجاد‬ ‫‌های‬
‫ی‬‫ویژگ‬ ‫و‬ ‫‌ها‬
‫ن‬‫آ‬ ‫روابط‬
‫عنوان‬ ‫به‬ .‫کند‬ ‫کمک‬ ‫نیاز‬ ‫مورد‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫اطالعاتی‬ ‫ایجاد‬ ‫به‬ ‫‌تواند‬
‫ی‬‫م‬ ‫این‬ .‫است‬ ‫سازمان‬ ‫در‬ ‫کار‬ ‫گردش‬ ‫تحلیل‬ ‫و‬ ‫تجزیه‬ ‫یا‬ ،‫کار‬ ‫و‬
‫تولید‬ ‫از‬ ‫پس‬ .‫کند‬ ‫کمک‬ ‫فعلی‬ ‫‌های‬
‫ه‬‫داد‬ ‫همچنین‬ ‫و‬ ‫تاریخی‬ ‫‌های‬
‫ه‬‫داد‬ ‫نگهداری‬ ‫برای‬ ‫نیاز‬ ‫مورد‬ ‫داده‬ ‫پایگاه‬ ‫‌گیری‬
‫م‬‫تصمی‬ ‫به‬ ‫‌تواند‬
‫ی‬‫م‬ ،‫مثال‬
.‫هستند‬ ‫خوشحال‬ ‫کاربران‬ ، ‫مفهومی‬ ‫داده‬ ‫مدل‬ ‫یک‬
maxscale and spider engine  for performance and security and clustering
maxscale and spider engine  for performance and security and clustering
maxscale and spider engine  for performance and security and clustering
maxscale and spider engine  for performance and security and clustering
MariaDB MaxScale
‫و‬
Spider Engine
‫در‬ ‫قدرتمند‬ ‫ویژگی‬ ‫دو‬ ‫این‬ ‫پردازیم‬ ‫می‬
MariaDB
‫به‬ ‫‌توانند‬
‫ی‬‫م‬ ‫که‬ ‫هستند‬
‫از‬ ‫یک‬ ‫هر‬ ‫توضیح‬ ‫به‬ ‫ادامه‬ ‫در‬ .‫ببخشند‬ ‫بهبود‬ ‫را‬ ‫خود‬ ‫‌های‬
‫ه‬‫داد‬ ‫پایگاه‬ ‫‌پذیری‬
‫س‬‫دستر‬ ‫و‬ ‫‌پذیری‬
‫س‬‫مقیا‬ ،‫عملکرد‬ ‫تا‬ ‫کنند‬ ‫کمک‬ ‫‌ها‬
‫ن‬‫سازما‬
.‫‌پردازم‬
‫ی‬‫م‬ ‫‌ها‬
‫ن‬‫سازما‬ ‫برای‬ ‫‌ها‬
‫ن‬‫آ‬ ‫منافع‬ ‫و‬ ‫ویژگی‬ ‫دو‬ ‫این‬
‫ا‬
MaxScale
‫داده‬ ‫‌های‬
‫ه‬‫پایگا‬ ‫برای‬ ‫پیشرفته‬ ‫و‬ ‫‌پذیر‬
‫س‬‫مقیا‬ ‫پراکسی‬ ‫یک‬
MariaDB
‫و‬
MySQL
‫بهبود‬ ‫منظور‬ ‫به‬ ‫که‬ ‫است‬
‫مهم‬ ‫‌های‬
‫ی‬‫ویژگ‬ ‫و‬ ‫امکانات‬ ‫از‬ ‫برخی‬ .‫است‬ ‫شده‬ ‫طراحی‬ ‫عملکرد‬ ‫و‬ ‫امنیت‬ ،‫‌پذیری‬
‫س‬‫دستر‬ ‫افزایش‬ ‫و‬ ‫‌ها‬
‫ه‬‫داد‬ ‫پایگاه‬ ‫مدیریت‬
MaxScale
:‫از‬ ‫عبارتند‬
-
Load Balancing
:)‫بار‬ ‫(توزیع‬
‫ا‬
MaxScale
‫کاری‬ ‫بار‬ ‫متوازن‬ ‫توزیع‬ ‫و‬ ‫عملکرد‬ ‫افزایش‬ ‫باعث‬ ‫که‬ ،‫کند‬ ‫تقسیم‬ ‫داده‬ ‫پایگاه‬ ‫سرور‬ ‫چندین‬ ‫بین‬ ‫را‬ ‫‌ها‬
‫ت‬‫درخواس‬ ‫‌تواند‬
‫ی‬‫م‬
.‫‌شود‬
‫ی‬‫م‬
-
Failover
:
،‫شود‬ ‫خراب‬ ‫سرورها‬ ‫از‬ ‫یکی‬ ‫که‬ ‫صورتی‬ ‫در‬
MaxScale
‫تا‬ ‫‌کند‬
‫ی‬‫م‬ ‫منتقل‬ ‫دیگر‬ ‫سرورهای‬ ‫به‬ ‫را‬ ‫ترافیک‬ ‫خودکار‬ ‫صورت‬ ‫به‬
.‫شود‬ ‫تضمین‬ ‫داده‬ ‫پایگاه‬ ‫‌پذیری‬
‫س‬‫دستر‬
-
Query Routing
:)‫‌ها‬
‫ت‬‫درخواس‬ ‫(مسیریابی‬
.‫کند‬ ‫مسیریابی‬ ‫مناسب‬ ‫سرورهای‬ ‫به‬ ‫را‬ ‫مختلف‬ ‫‌های‬
‫ت‬‫درخواس‬ ،‫خاص‬ ‫نیازهای‬ ‫اساس‬ ‫بر‬ ‫‌تواند‬
‫ی‬‫م‬
-
Security
:)‫(امنیت‬
‫ا‬
MaxScale
.‫دهد‬ ‫بهبود‬ ‫رمزنگاری‬ ‫و‬ ‫دسترسی‬ ‫کنترل‬ ،‫هویت‬ ‫احراز‬ ‫مانند‬ ‫‌هایی‬
‫ی‬‫ویژگ‬ ‫طریق‬ ‫از‬ ‫را‬ ‫‌ها‬
‫ه‬‫داد‬ ‫امنیت‬ ‫‌تواند‬
‫ی‬‫م‬
: ‫ببریم‬ ‫بهره‬ ‫مفهوم‬ ‫این‬ ‫از‬ ‫باید‬ ‫چرا‬ ‫اما‬ ‫و‬
•
:‫اطمینان‬ ‫قابلیت‬ ‫و‬ ‫‌پذیری‬
‫س‬‫دستر‬ ‫افزایش‬
‫قابلیت‬ ‫از‬ ‫استفاده‬ ‫با‬
failover
‫و‬
load balancing
‫حاصل‬ ‫اطمینان‬ ‫‌ها‬
‫ه‬‫داد‬ ‫پایگاه‬ ‫مداوم‬ ‫‌پذیری‬
‫س‬‫دستر‬ ‫از‬ ‫‌توانند‬
‫ی‬‫م‬ ‫‌ها‬
‫ن‬‫سازما‬ ،
.‫کنند‬
•
:‫عملکرد‬ ‫بهبود‬
.‫شود‬ ‫سیستم‬ ‫کلی‬ ‫عملکرد‬ ‫بهبود‬ ‫باعث‬ ‫‌تواند‬
‫ی‬‫م‬ ‫‌ها‬
‫ت‬‫درخواس‬ ‫هوشمند‬ ‫مسیریابی‬ ‫و‬ ‫سرور‬ ‫چندین‬ ‫بین‬ ‫کاری‬ ‫بار‬ ‫توزیع‬
•
:‫‌تر‬
‫ن‬‫آسا‬ ‫مدیریت‬
‫ا‬
max scale
‫بزرگ‬ ‫‌های‬
‫ن‬‫سازما‬ ‫در‬ ‫‌ها‬
‫ه‬‫داد‬ ‫پایگاه‬ ‫مدیریت‬ ‫پیچیدگی‬ ‫کاهش‬ ‫باعث‬ ‫که‬ ‫‌کند‬
‫ی‬‫م‬ ‫فراهم‬ ‫را‬ ‫‌ای‬
‫ه‬‫پیشرفت‬ ‫مدیریتی‬ ‫امکانات‬
.‫‌شود‬
‫ی‬‫م‬
‫ا‬
Spider Engine
‫؟‬ ‫کنیم‬ ‫استفاده‬ ‫ویژگی‬ ‫این‬ ‫از‬ ‫باید‬ ‫چرا‬ ‫و‬ ‫چیست‬
‫ا‬
Spider Engine
( ‫‌سازی‬
‫ه‬‫ذخیر‬ ‫موتور‬ ‫یک‬
Storage Engine
‫در‬ ‫توزیعی‬ )
MariaDB
‫بین‬ ‫‌ها‬
‫ه‬‫داد‬ ‫تقسیم‬ ‫امکان‬ ‫که‬ ‫است‬
‫را‬ ‫زیر‬ ‫امکانات‬ ‫و‬ ‫است‬ ‫شده‬ ‫طراحی‬ ‫‌شده‬
‫ع‬‫توزی‬ ‫داده‬ ‫‌های‬
‫ه‬‫پایگا‬ ‫از‬ ‫پشتیبانی‬ ‫برای‬ ‫موتور‬ ‫این‬ .‫‌کند‬
‫ی‬‫م‬ ‫فراهم‬ ‫را‬ ‫پارتیشن‬ ‫یا‬ ‫سرور‬ ‫چندین‬
:‫‌دهد‬
‫ی‬‫م‬ ‫ارائه‬
-
Sharding
:)‫‌ها‬
‫ه‬‫داد‬ ‫‌بندی‬
‫ن‬‫(پارتیش‬
.‫‌شود‬
‫ی‬‫م‬ ‫‌پذیری‬
‫س‬‫مقیا‬ ‫افزایش‬ ‫و‬ ‫بار‬ ‫توزیع‬ ‫باعث‬ ‫که‬ ،‫‌کند‬
‫ی‬‫م‬ ‫فراهم‬ ‫سرور‬ ‫چندین‬ ‫بین‬ ‫را‬ ‫‌ها‬
‫ه‬‫داد‬ ‫تقسیم‬ ‫امکان‬
-
Distributed Transactions
:)‫‌شده‬
‫ع‬‫توزی‬ ‫‌های‬
‫ش‬‫(تراکن‬
‫از‬ ‫‌هایی‬
‫ه‬‫داد‬ ‫شامل‬ ‫‌توانند‬
‫ی‬‫م‬ ‫سیستم‬ ‫یک‬ ‫در‬ ‫شده‬ ‫انجام‬ ‫‌های‬
‫ش‬‫تراکن‬ ‫که‬ ‫معنا‬ ‫این‬ ‫به‬ ،‫‌کند‬
‫ی‬‫م‬ ‫پشتیبانی‬ ‫‌شده‬
‫ع‬‫توزی‬ ‫‌های‬
‫ش‬‫تراکن‬ ‫از‬
.‫باشند‬ ‫سرور‬ ‫چندین‬
-
Parallel Query Execution
:)‫‌ها‬
‫ی‬‫کوئر‬ ‫موازی‬ ‫(اجرای‬
.‫‌شود‬
‫ی‬‫م‬ ‫پیچیده‬ ‫‌های‬
‫ی‬‫کوئر‬ ‫به‬ ‫‌دهی‬
‫خ‬‫پاس‬ ‫سرعت‬ ‫افزایش‬ ‫باعث‬ ‫که‬ ‫‌کند‬
‫ی‬‫م‬ ‫فراهم‬ ‫را‬ ‫‌ها‬
‫ت‬‫درخواس‬ ‫موازی‬ ‫اجرای‬ ‫قابلیت‬
‫چرا‬ ‫اما‬ ‫و‬
spider engine
‫؟‬ ‫نماییم‬ ‫استفاده‬ ‫آن‬ ‫از‬ ‫باید‬ ‫چرا‬ ‫و‬
:‫‌پذیری‬
‫س‬‫مقیا‬ ‫افزایش‬ -
‫از‬ ‫استفاده‬ ‫با‬
Spider Engine
‫را‬ ‫‌ها‬
‫ه‬‫داد‬ ‫و‬ ‫کنند‬ ‫‌پذیر‬
‫س‬‫مقیا‬ ‫افقی‬ ‫صورت‬ ‫به‬ ‫را‬ ‫خود‬ ‫‌های‬
‫ه‬‫داد‬ ‫پایگاه‬ ‫سادگی‬ ‫به‬ ‫‌توانند‬
‫ی‬‫م‬ ‫‌ها‬
‫ن‬‫سازما‬ ،
.‫کنند‬ ‫توزیع‬ ‫سرور‬ ‫چندین‬ ‫بین‬
‫سیستم‬ ‫کلی‬ ‫عملکرد‬ ‫و‬ ‫داده‬ ‫کاهش‬ ‫را‬ ‫‌دهی‬
‫خ‬‫پاس‬ ‫زمان‬ ‫‌تواند‬
‫ی‬‫م‬ ‫‌ها‬
‫ه‬‫داد‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ‫و‬ ‫‌ها‬
‫ی‬‫کوئر‬ ‫موازی‬ ‫اجرای‬ :‫‌ها‬
‫ی‬‫کوئر‬ ‫عملکرد‬ ‫بهبود‬ -
.‫بخشد‬ ‫بهبود‬ ‫را‬
:‫بزرگ‬ ‫‌های‬
‫ه‬‫داد‬ ‫مدیریت‬ -
‫امکانات‬ ‫از‬ ‫‌توانند‬
‫ی‬‫م‬ ،‫‌کنند‬
‫ی‬‫م‬ ‫کار‬ ‫داده‬ ‫باالی‬ ‫‌های‬
‫م‬‫حج‬ ‫با‬ ‫که‬ ‫‌هایی‬
‫ن‬‫سازما‬
Spider Engine
‫‌های‬
‫ه‬‫داد‬ ‫کارآمدتر‬ ‫و‬ ‫بهتر‬ ‫مدیریت‬ ‫برای‬
.‫کنند‬ ‫استفاده‬ ‫خود‬
‫از‬ ‫استفاده‬ ‫واقع‬ ‫در‬
MariaDB MaxScale
‫و‬
Spider Engine
‫را‬ ‫خود‬ ‫‌های‬
‫ه‬‫داد‬ ‫پایگاه‬ ‫که‬ ‫‌دهد‬
‫ی‬‫م‬ ‫را‬ ‫امکان‬ ‫این‬ ‫‌ها‬
‫ن‬‫سازما‬ ‫به‬
‫به‬ ‫نیاز‬ ‫که‬ ‫پرکاربرد‬ ‫و‬ ‫بزرگ‬ ‫‌های‬
‫ن‬‫سازما‬ ‫برای‬ ‫ویژه‬ ‫به‬ ‫‌ها‬
‫ی‬‫ویژگ‬ ‫این‬ .‫کنند‬ ‫مدیریت‬ ‫بهتر‬ ‫عملکرد‬ ‫با‬ ‫و‬ ‫‌تر‬
‫ن‬‫ایم‬ ،‫‌پذیرتر‬
‫س‬‫مقیا‬ ‫صورت‬ ‫به‬
.‫بود‬ ‫خواهند‬ ‫مفید‬ ‫بسیار‬ ،‫دارند‬ ‫داده‬ ‫از‬ ‫زیادی‬ ‫‌های‬
‫م‬‫حج‬ ‫مدیریت‬
‫مباحث‬ ‫از‬ ‫جزوی‬ ‫کردیم‬ ‫اشاره‬ ‫که‬ ‫امکاناتی‬ ‫از‬ ‫بخشی‬
partitioning
: ‫میپردازیم‬ ‫ساختار‬ ‫و‬ ‫تکنولوژی‬ ‫این‬ ‫بررسی‬ ‫به‬ ‫ادامه‬ ‫در‬ . ‫هست‬
( ‫داده‬ ‫پایگاه‬ ‫مدیریت‬ ‫سیستم‬ ‫با‬ ‫کسی‬ ‫هر‬ ‫امروزه‬
dbms
. ‫است‬ ‫درگیر‬ ‫داده‬ ‫پایگاه‬ ‫مفاهیم‬ ‫و‬ )
‫تا‬ ‫گرفته‬ ‫اداری‬ ‫اتوماسیون‬ ‫سیستم‬ ‫از‬
... ‫و‬ ‫بیمارستان‬ ‫در‬ ‫حیاتی‬ ‫و‬ ‫مهم‬ ‫سیستم‬ ‫و‬ ‫وبالگ‬
‫پس‬
( . ‫است‬ ‫اهمیت‬ ‫حائز‬ ‫بسیار‬ ‫داده‬ ‫پایگاه‬ ‫سرعت‬ ‫و‬ ‫عملکرد‬
performance tuning
)
‫راهکارهایی‬ ‫چه‬ ‫است‬ ‫این‬ ‫سوال‬ ‫حال‬.
‫افزایش‬ ‫برای‬
pt
. ‫پرداخت‬ ‫خواهیم‬ ‫پارتیشنینگ‬ ‫محضر‬ ‫از‬ ‫ساختار‬ ‫این‬ ‫بررسی‬ ‫به‬ ‫کلی‬ ‫بصورت‬ ‫اینجا‬ ‫در‬ . ‫باشیم‬ ‫می‬ ‫دارا‬ ‫را‬
. ‫نباشید‬ ‫آشنا‬ ‫کامل‬ ‫بصورت‬ ‫داده‬ ‫پایگاه‬ ‫مفاهیم‬ ‫با‬ ‫اگر‬ ‫حتی‬ . ‫میباشد‬ ‫مناسب‬ ‫افراد‬ ‫عموم‬ ‫برای‬ ‫جلسه‬ ‫و‬ ‫وبینار‬ ‫این‬ : ‫نکته‬
‫؟‬ ‫معناست‬ ‫چه‬ ‫به‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫بندی‬ ‫پارتیشن‬ ‫حال‬
‫ورژن‬ ‫از‬ ‫که‬ ‫است‬ ‫کاربردی‬ ‫ویژگی‬ ‫یک‬ ‫ویژگی‬ ‫این‬
5.5
‫بعد‬ ‫به‬
Mysql
. ‫شد‬ ‫گنجانده‬
،‫دارید‬ ‫می‬ ‫نگه‬ ‫را‬ ‫اشخاص‬ ‫فهرست‬ ‫جدولی‬ ‫در‬ ‫اگر‬ ‫مثال‬ ‫عنوان‬ ‫به‬ .‫است‬ ‫‌تر‬
‫ل‬‫مستق‬ ‫‌های‬
‫ت‬‫قسم‬ ‫به‬ ‫‌ها‬
‫ه‬‫داد‬ ‫تقسیم‬ ،‫‌بندی‬
‫ن‬‫پارتیش‬ ‫از‬ ‫منظور‬
‫در‬ ‫و‬ ‫کارایی‬ ‫افزایش‬ ‫سبب‬ ‫کار‬ ‫این‬ .‫نمایید‬ ‫‌بندی‬
‫ه‬‫دست‬ ‫جدول‬ ‫همان‬ ‫در‬ ...‫و‬ ‫تولد‬ ‫سال‬ ،‫جنسیت‬ ‫همچون‬ ‫معیارهایی‬ ‫با‬ ‫را‬ ‫‌ها‬
‫ن‬‫آ‬ ‫توانید‬ ‫می‬
.‫شود‬ ‫می‬ ‫‌ها‬
‫ه‬‫داد‬ ‫بیشتر‬ ‫پذیری‬ ‫دسترس‬ ‫نتیجه‬
‫داریم؟‬ ‫نیاز‬ ‫داده‬ ‫پایگاه‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ‫به‬ ‫چرا‬ ‫و‬ ‫زمانی‬ ‫چه‬
:‫‌انجامد‬
‫ی‬‫م‬ ‫بازدهی‬ ‫محسوس‬ ‫افزایش‬ ‫به‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ‫از‬ ‫استفاده‬ ‫زیر‬ ‫موارد‬ ‫در‬
‫زیاد‬ ‫خیلی‬ ‫‌های‬
‫ه‬‫داد‬
‫حافظه‬ ‫کمبود‬
RAM
‫های‬ ‫داده‬
HISTORICAL
‫ها‬ ‫داده‬ ‫حجم‬ ‫افزایش‬
‫مشخص‬ ‫‌های‬
‫ی‬‫‌بند‬
‫ه‬‫دست‬ ‫با‬ ‫‌هایی‬
‫ه‬‫داد‬
‫؟‬ ‫معناست‬ ‫چه‬ ‫به‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫بندی‬ ‫پارتیشن‬
‫ورژن‬ ‫از‬ ‫که‬ ‫است‬ ‫کاربردی‬ ‫ویژگی‬ ‫یک‬ ‫ویژگی‬ ‫این‬
5.5
‫بعد‬ ‫به‬
Mysql
. ‫شد‬ ‫گنجانده‬
،‫دارید‬ ‫می‬ ‫نگه‬ ‫را‬ ‫اشخاص‬ ‫فهرست‬ ‫جدولی‬ ‫در‬ ‫اگر‬ ‫مثال‬ ‫عنوان‬ ‫به‬ .‫است‬ ‫‌تر‬
‫ل‬‫مستق‬ ‫‌های‬
‫ت‬‫قسم‬ ‫به‬ ‫‌ها‬
‫ه‬‫داد‬ ‫تقسیم‬ ،‫‌بندی‬
‫ن‬‫پارتیش‬ ‫از‬ ‫منظور‬
‫در‬ ‫و‬ ‫کارایی‬ ‫افزایش‬ ‫سبب‬ ‫کار‬ ‫این‬ .‫نمایید‬ ‫‌بندی‬
‫ه‬‫دست‬ ‫جدول‬ ‫همان‬ ‫در‬ ...‫و‬ ‫تولد‬ ‫سال‬ ،‫جنسیت‬ ‫همچون‬ ‫معیارهایی‬ ‫با‬ ‫را‬ ‫‌ها‬
‫ن‬‫آ‬ ‫توانید‬ ‫می‬
.‫شود‬ ‫می‬ ‫‌ها‬
‫ه‬‫داد‬ ‫بیشتر‬ ‫پذیری‬ ‫دسترس‬ ‫نتیجه‬
: ‫آن‬ ‫های‬ ‫معیار‬ ‫و‬ ‫بندی‬ ‫پارتیشن‬ ‫انواع‬
‫کلید‬ ‫یک‬ ‫ابتدا‬ ،‫منظور‬ ‫این‬ ‫برای‬ .‫دارد‬ ‫وجود‬ ‫داده‬ ‫پایگاه‬ ‫تقسیم‬ ‫جهت‬ ‫گوناگونی‬ ‫ضوابط‬ ‫و‬ ‫معیارها‬ ‫‌ای‬
‫ه‬‫رابط‬ ‫داده‬ ‫‌های‬
‫ه‬‫پایگا‬ ‫نوع‬ ‫در‬
( ‫‌بندی‬
‫ن‬‫پارتیش‬
Partitioning Key
‫مختلف‬ ‫‌های‬
‫ن‬‫پارتیش‬ ‫را‬ ‫‌ها‬
‫ه‬‫داد‬ ‫مشخص‬ ‫معیارهای‬ ‫و‬ ‫آن‬ ‫اساس‬ ‫بر‬ ‫سپس‬ ‫و‬ ‫کرده‬ ‫تعریف‬ ‫را‬ )
:‫از‬ ‫عبارتند‬ ‫معیارها‬ ‫‌ترین‬
‫ی‬‫عموم‬ .‫‌کنند‬
‫ی‬‫م‬ ‫تقسیم‬
( ‫‌ای‬
‫ه‬‫محدود‬ ‫‌بندی‬
‫ن‬‫پارتیش‬
Range partitioning
)
‫در‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫رقمی‬ ‫ده‬ ‫کدپستی‬ ‫اطالعات‬ ‫که‬ ‫کنید‬ ‫فرض‬ .‫‌پذیرد‬
‫ی‬‫م‬ ‫صورت‬ ‫شده‬ ‫داده‬ ‫کلید‬ ‫و‬ ‫آن‬ ‫محدوده‬ ‫براساس‬ ‫پارتیشن‬ ‫انتخاب‬
۹
‫دسته‬
۱۰۰۰۰۰۰۰۰۰
‫این‬ ‫از‬ ‫یکی‬ ‫در‬ ‫شده‬ ‫داده‬ ‫کلید‬ ‫که‬ ‫صورتی‬ ‫در‬ .‫اند‬ ‫شده‬ ‫تقسیم‬
۹
‫آن‬ ‫در‬ ‫موجود‬ ‫اطالعات‬ ‫فقط‬ ،‫باشد‬ ‫محدوده‬
)‫(کدپستی‬ ‫کلید‬ ‫مثال‬ ‫عنوان‬ ‫به‬ .‫گرفت‬ ‫خواهند‬ ‫قرار‬ ‫بررسی‬ ‫مورد‬ ‫محدوده‬
۶۸۹۵۶۳۲۶۵۳
‫محدوده‬ ‫فقط‬ ‫که‬ ‫کند‬ ‫می‬ ‫مشخص‬
۶۰۰۰۰۰۰۰۰۰
‫تا‬
۶۹۹۹۹۹۹۹۹۹
‫تقریبا‬ ‫یعنی‬ .‫شود‬ ‫بررسی‬
۱/۹
.‫نظر‬ ‫مورد‬ ‫جدول‬ ‫اطالعات‬ ‫کل‬
( ‫‌وار‬
‫ت‬‫فهرس‬ ‫‌بندی‬
‫ن‬‫پارتیش‬
List partitioning
)
‫‌های‬
‫ن‬‫استا‬ ‫مثال‬ . ...‫و‬ ‫مرکزی‬ ،‫شرقی‬ ،‫غربی‬ ‫‌های‬
‫ن‬‫استا‬ ‫فهرست‬ ‫مثال‬ ‫عنوان‬ ‫به‬ .‫‌شوند‬
‫ی‬‫م‬ ‫مشخص‬ ‫فهرست‬ ‫یک‬ ‫اساس‬ ‫بر‬ ‫‌ها‬
‫ن‬‫پارتیش‬
‫صورتیکه‬ ‫در‬ .‫دهند‬ ‫تشکیل‬ ‫‌غریی‬
‫ل‬‫شما‬ ‫‌های‬
‫ن‬‫استا‬ ‫عنوان‬ ‫با‬ ‫پارتیشنی‬ ‫‌توانند‬
‫ی‬‫م‬ ‫زنجان‬ ‫و‬ ‫اردبیل‬ ،‫شرقی‬ ‫آذربایجان‬ ،‫غربی‬ ‫آذربایجان‬
.‫‌شوند‬
‫ی‬‫م‬ ‫بررسی‬ ‫‌غربی‬
‫ل‬‫شما‬ ‫‌های‬
‫ن‬‫استا‬ ‫‌های‬
‫ه‬‫داد‬ ‫فقط‬ ،‫باشد‬ ‫اردبیل‬ ‫آدرس‬ ‫یک‬ ‫استان‬
( ‫درهم‬ ‫‌بندی‬
‫ن‬‫پارتیش‬
Hash partitioning
)
( ‫‌سازی‬
‫م‬‫دره‬ ‫تابع‬ ‫و‬ ‫کلید‬ ‫یک‬ ‫اساس‬ ‫بر‬ ‫‌ها‬
‫ه‬‫داد‬ ،‫‌بندی‬
‫ن‬‫پارتیش‬ ‫نوع‬ ‫این‬ ‫در‬
hash function
.‫‌شوند‬
‫ی‬‫م‬ ‫تقسیم‬ ‫مختلف‬ ‫‌های‬
‫ن‬‫پارتیش‬ ‫به‬ )
( ‫کلیدی‬ ‫‌بندی‬
‫ن‬‫پارتیش‬
Key partitioning
)
‫داده‬ ‫پایگاه‬ ‫توسط‬ ‫خودکار‬ ‫صورت‬ ‫به‬ ‫اطالعات‬ ‫قرارگیری‬ ‫نحوه‬ ‫که‬ ‫تفاوت‬ ‫این‬ ‫با‬ ‫است‬ ‫درهم‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ‫مانند‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ‫نوع‬ ‫این‬
.‫‌گیرد‬
‫ی‬‫م‬ ‫صورت‬
( ‫ترکیبی‬ ‫‌بندی‬
‫ن‬‫پارتیش‬
Composite partitioning
)
.‫است‬ ‫‌ها‬
‫ی‬‫‌بند‬
‫ن‬‫پارتیش‬ ‫انواع‬ ‫از‬ ‫‌ای‬
‫ه‬‫مجموع‬ ،‫ترکیبی‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ،‫است‬ ‫مشخص‬ ‫وی‬ ‫نام‬ ‫از‬ ‫که‬ ‫همانگونه‬
•
‫شده‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ‫اطالعات‬ ‫ذخیره‬ ‫‌های‬
‫ش‬‫رو‬
•
.‫‌کند‬
‫ی‬‫م‬ ‫ذخیره‬ ‫‌تر‬
‫ک‬‫کوچ‬ ‫قطعات‬ ‫در‬ ‫و‬ ‫کرده‬ ‫تقسیم‬ ‫را‬ ...‫و‬ ‫‌ها‬
‫ف‬‫ردی‬ ،‫جداول‬ ‫یا‬ ‫و‬ ‫داده‬ ‫پایگاه‬ ‫کل‬ ‫مانند‬ ‫اطالعاتی‬ ،‫‌بندی‬
‫ن‬‫پارتیش‬
( ‫افقی‬ ‫صورت‬ ‫به‬ ‫‌توان‬
‫ي‬‫م‬ ‫جدول‬ ‫یک‬ ‫در‬ ‫موجود‬ ‫‌های‬
‫ف‬‫ردی‬ ‫کردن‬ ‫تقسیم‬ ‫برای‬
Horizontal
( ‫عمودی‬ ‫و‬ )
Vertical
‫عمل‬ )
.‫کرد‬
•
‫حالت‬ ‫در‬
( ‫افقی‬
Horizontal
)
‫جدول‬ ‫در‬ ‫مثال‬ ‫عنوان‬ ‫به‬ .‫‌شوند‬
‫ی‬‫م‬ ‫ذخیره‬ ‫جداگانه‬ ‫‌های‬
‫ل‬‫جدو‬ ‫در‬ ‫مختلف‬ ‫‌های‬
‫ف‬‫ردی‬
‫از‬ ‫کمتر‬ ‫آنان‬ ‫کدپستی‬ ‫که‬ ‫افرادی‬ ،‫مشتریان‬
50000
( ‫شرقی‬ ‫مشتریان‬ ‫جدول‬ ‫در‬ ‫باشد‬
CustomerEast
‫افرادی‬ ‫باقی‬ ‫و‬ )
‫باالی‬ ‫کدپستی‬ ‫دارای‬ ‫که‬
50000
( ‫غربی‬ ‫مشتریان‬ ‫جدول‬ ‫در‬ ‫‌باشند‬
‫ی‬‫م‬
CustomerWest
‫برای‬ ‫همچنین‬ .‫‌شوند‬
‫ی‬‫م‬ ‫ذخیره‬ )
‫از‬ ‫استفاده‬ ‫با‬ ‫توان‬ ‫می‬ ‫مشتریان‬ ‫تمامی‬ ‫به‬ ‫دستیابی‬
UNION
‫یک‬
VIEW
.‫باشد‬ ‫‌ها‬
‫ف‬‫ردی‬ ‫تمامی‬ ‫شامل‬ ‫که‬ ‫کرد‬ ‫ایجاد‬
•
‫در‬
( ‫عمودی‬ ‫حالت‬
Vertical
)
‫در‬ ‫متناظر‬ ‫صورت‬ ‫به‬ ‫‌ها‬
‫ن‬‫ستو‬ ‫بقیه‬ ‫و‬ ‫‌گیرند‬
‫ی‬‫م‬ ‫قرار‬ ‫اصلی‬ ‫جدول‬ ‫در‬ ‫کمتری‬ ‫‌های‬
‫ن‬‫ستو‬
‫با‬ ‫‌هایی‬
‫ن‬‫ستو‬ ‫و‬ ‫ثابت‬ ‫نسبتا‬ ‫اطالعات‬ ‫با‬ ‫‌هایی‬
‫ن‬‫ستو‬ ‫جداکردن‬ ‫روش‬ ‫این‬ ‫کاربرد‬ ‫‌ترین‬
‫ی‬‫عموم‬ .‫‌گیرند‬
‫ی‬‫م‬ ‫قرار‬ ‫دیگر‬ ‫‌های‬
‫ل‬‫جدو‬
‫فعلی‬ ‫نسخه‬ .‫است‬ ‫متغیر‬ ‫اطالعات‬
5.6
MySQL
.‫‌شود‬
‫ی‬‫نم‬ ‫پشتیبانی‬ ‫عمودی‬ ‫حالت‬ ‫از‬
•
•
‫داریم؟‬ ‫نیاز‬ ‫داده‬ ‫پایگاه‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ‫به‬ ‫چرا‬ ‫و‬ ‫زمانی‬ ‫چه‬
•
:‫‌انجامد‬
‫ی‬‫م‬ ‫بازدهی‬ ‫محسوس‬ ‫افزایش‬ ‫به‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ‫از‬ ‫استفاده‬ ‫زیر‬ ‫موارد‬ ‫در‬
•
‫زیاد‬ ‫خیلی‬ ‫‌های‬
‫ه‬‫داد‬
•
‫حافظه‬ ‫کمبود‬
RAM
•
‫های‬ ‫داده‬
HISTORICAL
•
‫ها‬ ‫داده‬ ‫حجم‬ ‫افزایش‬
•
‫مشخص‬ ‫‌های‬
‫ی‬‫‌بند‬
‫ه‬‫دست‬ ‫با‬ ‫‌هایی‬
‫ه‬‫داد‬
maxscale and spider engine  for performance and security and clustering
maxscale and spider engine  for performance and security and clustering
maxscale and spider engine  for performance and security and clustering
( ‫کوئری‬ ‫اجرای‬ ‫هنگام‬
Query
:‫مانند‬ .‫‌شود‬
‫ی‬‫م‬ ‫اجرا‬ ‫جدول‬ ‫کل‬ ‫روی‬ ‫بر‬ ‫دستور‬ ،‫باشد‬ ‫نشده‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ‫نظر‬ ‫مورد‬ ‫جدول‬ ‫صورتیکه‬ ‫در‬ )
maxscale and spider engine  for performance and security and clustering
‫اجرای‬ ‫هنگام‬ ،‫نمایید‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ‫را‬ ‫نظر‬ ‫مورد‬ ‫جدول‬ ‫اگر‬ ‫حال‬
Query
‫شامل‬ ‫را‬ ‫مرتبط‬ )‫پارتیشن(های‬ ‫فقط‬ ‫بررسی‬ ‫‌ی‬
‫ه‬‫محدود‬ ،
:‫‌نماید‬
‫ی‬‫م‬ ‫بررسی‬ ‫را‬ ‫زیر‬ ‫شده‬ ‫مشخص‬ ‫‌های‬
‫ه‬‫محدود‬ ،‫جدول‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ‫فرض‬ ‫با‬ ‫قبلی‬ ‫دستورات‬ .‫‌شود‬
‫ی‬‫م‬
maxscale and spider engine  for performance and security and clustering
: ‫کنید‬ ‫استفاده‬ ‫بندی‬ ‫پارتیشن‬ ‫از‬ ‫باید‬ ‫که‬ ‫دلیل‬ ‫چند‬
•
‫به‬ ‫بخشیدن‬ ‫سرعت‬
select
‫و‬
insert
•
‫های‬ ‫محدوده‬ ‫سریعتر‬ ‫نتایج‬ ‫آوردن‬ ‫بدست‬
select
•
‫مختلف‬ ‫های‬ ‫مسیر‬ ‫دستیابی‬ ‫برای‬ ‫ها‬ ‫داده‬ ‫جداسازی‬ ‫به‬ ‫کمک‬
•
‫ها‬ ‫داده‬ ‫به‬ ‫ای‬ ‫تاریخچه‬ ‫دسترسی‬ ‫ذخیره‬
•
‫ای‬ ‫محدوده‬ ‫های‬ ‫داده‬ ‫سریعتر‬ ‫حذف‬
•
‫و‬
…
: ‫بندی‬ ‫پارتیشن‬ ‫محدودیت‬
( ‫عدد‬ ‫نوع‬ ‫از‬ ‫ستونی‬ ‫توسط‬ ‫بایستی‬ ‫پارتیشن‬
INTEGER
‫با‬ ‫ستون‬ ‫این‬ ‫جای‬ ‫به‬ ‫‌توانید‬
‫ی‬‫م‬ ‫شما‬ ‫حال‬ ‫این‬ ‫با‬ .‫باشد‬ ‫شده‬ ‫مشخص‬ )
:‫دهید‬ ‫بسط‬ ‫را‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ‫زیر‬ ‫موارد‬ ‫رعایت‬
•
‫صورت‬ ‫به‬ ‫از‬ ‫ستونی‬ ‫اگر‬
Unique Key
‫یا‬
Primary Key
.‫گیرد‬ ‫بر‬ ‫در‬ ‫ستون‬ ‫این‬ ‫باید‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ،‫باشد‬ ‫شده‬ ‫تعریف‬
•
‫توابع‬ ‫(شامل‬ ‫عبارت‬ ‫از‬ ،‫ستون‬ ‫یک‬ ‫جای‬ ‫به‬ ‫توانید‬ ‫می‬ ‫پارتیشن‬ ‫ساخت‬ ‫در‬
MySQL
‫عبارت‬ ‫که‬ ‫شرط‬ ‫این‬ ‫با‬ .‫نمایید‬ ‫استفاده‬ )
.‫بازگرداند‬ ‫را‬ ‫عددی‬ ‫مقدار‬ ‫نظر‬ ‫مورد‬
•
‫عبارت‬ ‫از‬ ‫توانید‬ ‫می‬ ‫عددی‬ ‫محدود‬ ‫ندانستن‬ ‫صورت‬ ‫در‬
MAXVALUE
.‫نمایید‬ ‫استفاده‬ ‫باال‬ ‫بازه‬ ‫برای‬
•
‫‌ها‬
‫ن‬‫پارتیش‬ ‫تعداد‬ ‫حداکثر‬
210
=
1024
.‫باشد‬ ‫می‬
‫در‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ‫‌سازی‬
‫ه‬‫پیاد‬
MySQL|MariaDb
‫بوده‬ ‫گسترده‬ ‫بسیار‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫اطالعات‬ ‫‌بندی‬
‫ش‬‫پارتی‬ ‫مبحث‬ .‫است‬ ‫منبع‬ ‫خود‬ ‫راهنمای‬ ‫مطالعه‬ ،‫مهارتی‬ ‫هر‬ ‫فراگیری‬ ‫برای‬ ‫راه‬ ‫بهترین‬
‫خالصه‬ ‫صورت‬ ‫به‬ ‫حال‬ ‫این‬ ‫با‬ .‫است‬ ‫خارج‬ ‫مقاله‬ ‫این‬ ‫حوصله‬ ‫از‬ ‫‌ها‬
‫ن‬‫آ‬ ‫‌ی‬
‫ه‬‫هم‬ ‫به‬ ‫پرداختن‬ ‫که‬ ‫‌باشد‬
‫ی‬‫م‬ ‫زیادی‬ ‫درشت‬ ‫و‬ ‫ریز‬ ‫نکات‬ ‫دارای‬ ‫و‬
.‫‌اند‬
‫ه‬‫شد‬ ‫ارائه‬ ‫زیر‬ ‫در‬ ‫‌ها‬
‫ن‬‫پارتیش‬ ‫ایجاد‬ ‫نحوه‬
( ‫‌ای‬
‫ه‬‫محدود‬ ‫پارتیشن‬ ‫ساخت‬ ‫نحوه‬
Range partitioning
)
1
2
3
4
5
6
7
8
9
CREATE TABLE t1 (
id int
) ENGINE=InnoDB
# or MyISAM, ARCHIVE
PARTITION BY RANGE (id)
(
PARTITION P1 VALUES LESS THAN (10),
PARTITION P2 VALUES LESS THAN (20)
)
( ‫‌وار‬
‫ت‬‫فهرس‬ ‫پارتیشن‬ ‫ساخت‬ ‫نحوه‬
List partitioning
)
1
2
3
4
5
6
7
8
CREATE TABLE t1 (id int)
ENGINE=InnoDB
PARTITION BY LIST (id)
(
PARTITION P1 VALUES IN (1,2,4),
PARTITION P2 VALUES IN (3,5,9)
)
( ‫درهم‬ ‫پارتیشن‬ ‫ساخت‬ ‫نحوه‬
Hash partitioning
)
1
2
3
4
5
CREATE TABLE t1 (id int not null
primary key ) ENGINE=InnoDB
PARTITION BY HASH (id)
PARTITIONS 10;
( ‫کلیدی‬ ‫پارتیشن‬ ‫ساخت‬ ‫نحوه‬
Key partitioning
)
1
2
3
4
5
CREATE TABLE t1 (
id int not null primary key
) ENGINE=InnoDB
PARTITION BY KEY ()
PARTITIONS 10;
‫های‬ ‫جدول‬ ‫در‬ ‫پارتیشن‬ ‫ساخت‬ ‫نحوه‬ ‫با‬ ‫باال‬ ‫موارد‬ ‫بیشتر‬ ‫درک‬ ‫برای‬
1
t
‫و‬
2
t
:‫فرمایید‬ ‫توجه‬ ‫زیر‬ ‫در‬
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE t1 (d date)
ENGINE=InnoDB
PARTITION BY RANGE (YEAR(d))
(PARTITION P1 VALUES
LESS THAN (1999),
PARTITION P2 VALUES
LESS THAN (2005),
PARTITION P3 VALUES
LESS THAN (2010),
PARTITION P4 VALUES
LESS THAN (MAXVALUE)
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE t2 (d date) ENGINE=InnoDB
PARTITION BY RANGE (TO_DAYS(d))
(PARTITION P1 VALUES
LESS THAN (TO_DAYS('1999-01-01')),
PARTITION P2 VALUES
LESS THAN (TO_DAYS('2005-01-01')),
PARTITION P3 VALUES
LESS THAN (TO_DAYS('2010-01-01')),
PARTITION P4 VALUES
LESS THAN (MAXVALUE)
)
CREATE TABLE t1 (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job_code INT NOT NULL,
store_id INT NOT NULL
)
PARTITION BY RANGE (store_id) (
PARTITION p0 VALUES LESS THAN (6),
PARTITION p1 VALUES LESS THAN (11),
PARTITION p2 VALUES LESS THAN (16),
PARTITION p3 VALUES LESS THAN (21)
);
‫دارد؟‬ ‫تاثیر‬ ‫دستورات‬ ‫اجرای‬ ‫سرعت‬ ‫در‬ ‫چقدر‬ ‫‌بندی‬
‫ن‬‫پارتیش‬
‫پروژه‬ ‫از‬ ‫منظور‬ ‫این‬ ‫برای‬ .‫داریم‬ ‫اطالعات‬ ‫توجهی‬ ‫قابل‬ ‫مقدار‬ ‫با‬ ‫داده‬ ‫پایگاه‬ ‫یک‬ ‫به‬ ‫نیاز‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ‫تاثیر‬ ‫بررسی‬ ‫برای‬
MySQL
Employees Test Database
‫حدودا‬ ‫شامل‬ ‫که‬
۴
‫در‬ ‫رکورد‬ ‫میلیون‬
۶
‫پایگاه‬ ‫این‬ ‫ساختار‬ ‫زیر‬ ‫در‬ .‫‌ایم‬
‫ه‬‫کرد‬ ‫استفاده‬ ‫است‬ ‫جدول‬
:‫‌کنید‬
‫ی‬‫م‬ ‫مشاهده‬ ‫را‬ ‫داده‬
( ‫جستار‬ ‫به‬
Query
:‫فرمایید‬ ‫توجه‬ ‫آن‬ ‫اجرای‬ ‫زمان‬ ‫و‬ ‫زیر‬ )
1
2
3
4
5
6
7
SELECT COUNT(*) FROM salaries WHERE from_date BETWEEN '1999-01-01' AND '1999-12-
31';
+----------+
| COUNT(*) |
+----------+
| 260957 |
+----------+
1 row in set (1.07 sec)
:‫‌بندی‬
‫ن‬‫پارتیش‬ ‫از‬ ‫بعد‬ ‫دستور‬ ‫همان‬ ‫و‬
1
2
3
4
5
6
7
SELECT COUNT(*) FROM salaries WHERE from_date BETWEEN '1999-01-01' AND '1999-12-
31';
+----------+
| COUNT(*) |
+----------+
| 260957 |
+----------+
1 row in set (0.32 sec)
( ‫جستار‬ ‫به‬ ‫اطالعات‬ ‫حذف‬ ‫سرعت‬ ‫افزایش‬ ‫برای‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ‫عملکرد‬ ‫مشاهده‬ ‫برای‬
Query
:‫فرمایید‬ ‫توجه‬ ‫آن‬ ‫اجرای‬ ‫زمان‬ ‫و‬ ‫زیر‬ )
1
2
DELETE FROM salaries WHERE from_date BETWEEN '1999-01-01' AND '1999-12-31';
Query OK, 247489 rows affected (10.57 sec)
:‫‌بندی‬
‫ن‬‫پارتیش‬ ‫از‬ ‫بعد‬ ‫حذف‬ ‫دستور‬ ‫همان‬ ‫و‬
1
2
ALTER TABLE salaries DROP PARTITION p15;
Query OK, 0 rows affected (1.35 sec)
‫جدول‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ‫نحوه‬
salaries
‫داده‬ ‫پایگاه‬ ‫در‬
employees
( ‫‌ها‬
‫ق‬‫حقو‬ ‫جدول‬ ‫‌بندی‬
‫ن‬‫پارتیش‬ ‫دستور‬ ‫زیر‬ ‫در‬
salaries
( ‫‌ای‬
‫ه‬‫محدود‬ ‫صورت‬ ‫به‬ )
RANGE
‫سال‬ ‫تاریخ‬ ‫اساس‬ ‫بر‬ )
from_date
:‫‌فرمایید‬
‫ی‬‫م‬ ‫مشاهده‬
ALTER TABLE salaries
PARTITION BY RANGE (YEAR(from_date))
(
PARTITION p1 VALUES LESS THAN (1985),
PARTITION p2 VALUES LESS THAN (1986),
PARTITION p3 VALUES LESS THAN (1987),
PARTITION p4 VALUES LESS THAN (1988),
PARTITION p5 VALUES LESS THAN (1989),
PARTITION p6 VALUES LESS THAN (1990),
PARTITION p7 VALUES LESS THAN (1991),
PARTITION p8 VALUES LESS THAN (1992),
PARTITION p9 VALUES LESS THAN (1993),
PARTITION p10 VALUES LESS THAN (1994),
PARTITION p11 VALUES LESS THAN (1995),
PARTITION p12 VALUES LESS THAN (1996),
PARTITION p13 VALUES LESS THAN (1997),
PARTITION p14 VALUES LESS THAN (1998),
PARTITION p15 VALUES LESS THAN (1999),
PARTITION p16 VALUES LESS THAN (2000),
PARTITION p17 VALUES LESS THAN (2001),
PARTITION p18 VALUES LESS THAN (2002),
PARTITION p19 VALUES LESS THAN (2003),
PARTITION p20 VALUES LESS THAN (MAXVALUE)
)
;
‫خطای‬ ‫با‬ ‫اگر‬ : ‫نکته‬
:
Cannot delete or update a parent row a foreign key constraint fails
‫مواجه‬
‫خارجی‬ ‫کلید‬ ‫زیر‬ ‫دستور‬ ‫با‬ ،‫شدید‬
1
salaries_ibfk_
:‫نمایید‬ ‫حذف‬ ‫را‬
ALTER TABLE salaries DROP FOREIGN KEY 1
salaries_ibfk_
;
: ‫لیست‬ ‫بواسطه‬ ‫بندی‬ ‫پارتیشن‬
: ‫هش‬ ‫بواسطه‬ ‫بندی‬ ‫پارتیشن‬
‫بواسطه‬ ‫بندی‬ ‫پارتیشن‬
key
:
. ‫شود‬ ‫استفاده‬ ‫آن‬ ‫در‬ ‫زیر‬ ‫مقادیر‬ ‫از‬ ‫باید‬ ‫رنج‬ ، ‫لیست‬ ، ‫هش‬ ‫بندی‬ ‫پارتیشن‬ : ‫نکته‬
‫قابلیت‬ ‫از‬ ‫استفاده‬ ‫برای‬ : ‫نکته‬
partition
. ‫باشد‬ ‫فعال‬ ‫آن‬ ‫پالگین‬ ‫باید‬
. ‫ایم‬ ‫کرده‬ ‫استفاده‬ ‫پارتیشن‬ ‫از‬ ‫هایی‬ ‫ساختار‬ ‫چه‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫اینکه‬ ‫فهمیدن‬ ‫چگونگی‬
maxscale and spider engine  for performance and security and clustering
maxscale and spider engine  for performance and security and clustering
: ‫ها‬ ‫کوئری‬ ‫در‬ ‫کش‬ ‫قابلیت‬ ‫کردن‬ ‫فعال‬
. ‫دارد‬ ‫تکراری‬ ‫های‬ ‫کوئری‬ ‫سرعت‬ ‫افزایش‬ ‫در‬ ‫شایانی‬ ‫کمک‬ ‫کار‬ ‫این‬
‫باید‬ ‫قابلیت‬ ‫این‬ ‫بودن‬ ‫فعال‬ ‫بررسی‬ ‫برای‬
have_query_cache
‫برابر‬
yes
. ‫باشد‬
‫در‬ : ‫نکته‬
mariadb
‫بهره‬ ‫زیر‬ ‫ساختار‬ ‫از‬ ‫توان‬ ‫می‬ ‫ان‬ ‫تعغیر‬ ‫برای‬ ‫نبود‬ ‫فعال‬ ‫اگر‬. ‫باشد‬ ‫می‬ ‫فعال‬ ‫فرض‬ ‫پیش‬ ‫بصورت‬ ‫قابلیت‬ ‫این‬
. ‫برد‬
= =
SET optimizer_switch 'subquery_cache on';
‫ساختارهای‬ ‫از‬
optimizer_switch
: ‫کرد‬ ‫اشاره‬ ‫زیر‬ ‫موارد‬ ‫به‬ ‫توان‬ ‫می‬
. ‫داد‬ ‫تعغییر‬ ‫را‬ ‫کش‬ ‫میزان‬ ‫حجم‬ ‫توان‬ ‫می‬ ‫همچنین‬
: ‫تکمیلی‬ ‫اطالعات‬
query_cache_size
• :
Description Size in bytes available to the query cache. 40
About KB is needed for
, .
query cache structures so setting a size lower than this will result in a warning 0,
the default before 10.1.7
MariaDB , .
effectively disables the query cache Starting
from 10.1.7
MariaDB , query_cache_type is automatically set to ON if the server is
- ( - ) .
started with the query_cache_size set to a non zero and non default value
• :
Commandline -- - - =
query cache size #
• :
Scope Global
• :
Dynamic Yes
• :
Data Type numeric
• :
Default Value 1M ( =
> 10.1.7
MariaDB ), 0 ( =
< 10.1.6
MariaDB ) (although frequently
)
given a default value in some setups
• :
Valid Values 0 1024.
upwards in units of
query_cache_type
• :
Description If set to 0, the query cache (
is disabled although a buffer of
query_cache_size ).
bytes is still allocated If set to 1 all SELECT queries will be
.
cached unless SQL_NO_CACHE is specified If set to 2 (or DEMAND), only queries
.
with the SQL CACHE clause will be cached Note that if the server is started with
, .
the query cache disabled it cannot be enabled at runtime Starting from MariaDB
10.1.7, query_cache_type is automatically set to ON if the server is started with the
query_cache_size - ( - ) .
set to a non zero and non default value
• :
Commandline -- - - =
query cache type #
• :
Scope ,
Global Session
• :
Dynamic Yes
• :
Data Type enumeration
• :
Default Value OFF ( =
> 10.1.7
MariaDB ), ON ( =
< 10.1.6
MariaDB )
• :
Valid Values 0 or OFF, 1 or ON, 2 or DEMAND
‫در‬ ‫قابلیت‬ ‫این‬ ‫کردن‬ ‫فعال‬ ‫برای‬ : ‫نکته‬
mysql
‫فایل‬ ‫به‬ ‫توان‬ ‫می‬ ‫را‬ ‫ساختار‬ ‫این‬
.
my cnf
. ‫نمود‬ ‫اضافه‬
query_cache_size = 268435456
query_cache_type=1
query_cache_limit=1048576
... ‫دارد‬ ‫ادامه‬

More Related Content

PDF
the refrence of Oracle Database - The 0.4 release
PDF
Pg autoscaling in ceph
PDF
Rbdmap ceph realease 0.2
PDF
rbdmap in ceph
PDF
how enable ceph dashboard
PDF
Ceph: A Powerful, Scalable, and Flexible Storage Solution
PDF
how upgrade ceph
PDF
Network management 2_sample
the refrence of Oracle Database - The 0.4 release
Pg autoscaling in ceph
Rbdmap ceph realease 0.2
rbdmap in ceph
how enable ceph dashboard
Ceph: A Powerful, Scalable, and Flexible Storage Solution
how upgrade ceph
Network management 2_sample

Similar to maxscale and spider engine for performance and security and clustering (20)

PDF
openstack designate
PDF
bcache and cachefs its benefits.
PDF
nbd and it's benefits
PDF
(ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ...
PDF
PDF
PDF
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
PDF
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
PDF
PDF
devops and bcp (bussiness continues planning)
PDF
PDF
Systemd and its various uses and capabilities.
PDF
تجارت الکترونبکی با opencart
PDF
lunch box plugin
PDF
Package management
PDF
how add and remove Mgr in ceph cluster
PDF
openstack designate
bcache and cachefs its benefits.
nbd and it's benefits
(ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ...
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
devops and bcp (bussiness continues planning)
Systemd and its various uses and capabilities.
تجارت الکترونبکی با opencart
lunch box plugin
Package management
how add and remove Mgr in ceph cluster
Ad

More from Yashar Esmaildokht (17)

PDF
ceph csi vs rook and its benefit and future
PDF
firewalling in linux and netfilter and iptables
PDF
The Refrence Of DevOps -The 0.5 release
PDF
Ceph RADOS Gateway (RGW) - s3 swift -object storage
PDF
oracle mysql/mariadb api -the connect engine
PDF
what is staging in database (oracle and mariadb |mysql)
PDF
DevOps reference - Devops metadologhy - devops technologhy
PDF
louad balancing vs api getway vs reverse proxy
PDF
how install and config sdn in proxmox virtualization
PDF
service registery and the service discovery
PDF
مرجع oracle mysql |mariadb
PDF
how add and delete new mon in ceph cluster
PDF
raid with megacli
PDF
Openstack Rally
PDF
OpenStack and its service
PDF
Load Balancing-as-a-Service (LBaaS) with octavia in openstack
PDF
نحوه ایجاد snapshot و ایجاد point در سیستم‌های گنو/لینوکسی برای ایجاد sys...
ceph csi vs rook and its benefit and future
firewalling in linux and netfilter and iptables
The Refrence Of DevOps -The 0.5 release
Ceph RADOS Gateway (RGW) - s3 swift -object storage
oracle mysql/mariadb api -the connect engine
what is staging in database (oracle and mariadb |mysql)
DevOps reference - Devops metadologhy - devops technologhy
louad balancing vs api getway vs reverse proxy
how install and config sdn in proxmox virtualization
service registery and the service discovery
مرجع oracle mysql |mariadb
how add and delete new mon in ceph cluster
raid with megacli
Openstack Rally
OpenStack and its service
Load Balancing-as-a-Service (LBaaS) with octavia in openstack
نحوه ایجاد snapshot و ایجاد point در سیستم‌های گنو/لینوکسی برای ایجاد sys...
Ad

maxscale and spider engine for performance and security and clustering

  • 1. ‫حق‬ ‫بسمه‬ ‫و‬ ‫کالسترینگ‬ ‫مفهوم‬ xa transaction ‫ابزارهای‬ ‫و‬ , maxscale spider storage engine ‫باال‬ ‫کارایی‬ ‫برای‬ ‫گامهایی‬ ‫و‬ ‫در‬ / mariadb mysql : ‫نویسنده‬ ‫دخت‬ ‫اسمعیل‬ ‫یاشار‬ ‫مهندس‬ : ‫نسخه‬ 0.1
  • 3. : ‫نویسنده‬ ‫درباره‬ ‫رشته‬ ‫آموخته‬ ‫دانش‬ ‫دخت‬ ‫اسمعیل‬ ‫یاشار‬ ‫بنده‬ cyber security . ‫هستم‬ ‫از‬ ‫بیش‬ ۱۵ . ‫دارم‬ ‫فعالیت‬ ‫سابقه‬ ‫سال‬ ‫مولف‬ - ‫مدرس‬ - ‫مشاور‬ : ‫داد‬ ‫شرح‬ ‫زیر‬ ‫های‬ ‫ساختار‬ ‫در‬ ‫میتوان‬ ‫را‬ ‫بنده‬ ‫های‬ ‫فعالیت‬ ‫جمله‬ ‫از‬ / / / / / / Devops Platform Cloud Eng |Gnu Linux System Network Security Storage / Engineer Admin & Oracle Dba | Linux Trainer |Consultant ): ‫جدید‬ ‫دنیاهای‬ ‫کشف‬ ‫و‬ ‫تحقیق‬ ‫و‬ ‫مطالعه‬ ‫به‬ ‫مند‬ ‫عالقه‬ . ‫کنم‬ ‫اشاره‬ ‫استراتژی‬ ‫های‬ ‫بازی‬ ‫و‬ ‫اوتلو‬ ‫و‬ ‫شطرنج‬ ‫بازی‬ ‫به‬ ‫میتوانم‬ ‫من‬ ‫های‬ ‫سرگرمی‬ ‫از‬ ‫واقع‬ ‫در‬ ‫تبریز‬ ‫الگ‬ ‫گذاران‬ ‫بنیان‬ ‫از‬ ‫یکی‬ ‫و‬ ‫لینوکس‬/‫گنو‬ ‫و‬ ‫باز‬ ‫متن‬ ‫دنیای‬ ‫عاشق‬ . ‫هستم‬ ‫عاشق‬ ‫یک‬ ‫من‬ : ‫کنید‬ ‫پیدا‬ ‫و‬ ‫کنید‬ ‫دنبال‬ ‫را‬ ‫من‬ ‫میتوانید‬ ‫چطور‬ ‫خب‬ : 09141100257 Mob Telegram ID : yashar_esm Telegram channel : unixmens Instagram Account Linkedin Account :/ / in yashar_esmaildokht . ‫بشنوم‬ ‫را‬ ‫انتقادتون‬ ‫یا‬ ‫پیشنهاد‬ ‫هرگونه‬ ‫میشم‬ ‫خوشحال‬ ‫همچنین‬ : ‫کنید‬ ‫پیدا‬ ‫را‬ ‫من‬ ‫از‬ ‫ی‬ ‫دیگر‬ ‫های‬ ‫کتاب‬ ‫میتونید‬ ‫چطور‬ ‫توی‬ slideshare . ‫کنید‬ ‫پیدا‬ ‫را‬ ‫کردم‬ ‫منتشر‬ ‫آزاد‬ ‫بصورت‬ ‫که‬ ‫دیگری‬ ‫های‬ ‫کتاب‬ ‫میتونید‬ ‫بگردید‬ ‫من‬ ‫اسم‬ ‫دنبال‬ ‫گوگل‬ ‫یا‬ ‫این‬ ‫از‬ ‫میتوانید‬ ‫هم‬ ‫دونیت‬ ‫جهت‬ ‫لینک‬ ‫کنید‬ ‫استفاده‬
  • 4. : ‫مشاوره‬ . ‫بود‬ ‫خواهم‬ ‫شما‬ ‫دسترس‬ ‫در‬ ‫من‬ . ‫فرمایید‬ ‫حاصل‬ ‫تماس‬ . ‫کردم‬ ‫اشاره‬ ‫قبل‬ ‫صفحه‬ ‫در‬ ‫که‬ ‫هایی‬ ‫کانال‬ ‫از‬ ‫میتوانید‬ ‫مشاوره‬ ‫جهت‬
  • 5. : ‫به‬ ‫تقدیم‬ ‫خدا‬ ‫شتافت‬ ‫یاریم‬ ‫به‬ ‫که‬ ‫بود‬ ‫او‬ ‫تنها‬ ‫هایم‬ ‫سختی‬ ‫در‬ ‫که‬ ‫چرا‬ ‫مادرم‬ ‫اویم‬ ‫مدیون‬ ‫که‬ ‫را‬ ‫حبت‬‫َم‬ ‫و‬ ‫انسانیت‬ ‫داد‬ ‫یاد‬ ‫و‬ . ‫کرد‬ ‫تقدیم‬ ‫زندگی‬ ‫به‬ ‫مرا‬ ‫که‬ ‫چرا‬ ‫پدرم‬ ‫اویم‬ ‫مدیون‬ ‫و‬ ‫بود‬ ‫من‬ ‫حامی‬ ‫همیشه‬ ‫روحش‬ ‫که‬ ‫عشقم‬ ‫هست‬ ‫و‬ ‫بود‬ ‫مشوقم‬ ‫که‬ ‫سورس‬ ‫اپن‬ ‫جامعه‬ ‫بشریت‬ ‫را‬ ‫هایش‬ ‫دانسته‬ ‫میکند‬ ‫منتشر‬ ‫و‬ ‫میخواند‬ ‫که‬ ‫او‬ ‫و‬ ): ‫هیچ‬ ‫دیگر‬ ‫و‬ ‫جهانی‬ ‫صلح‬ ‫امید‬ ‫به‬ ‫و‬
  • 6. : ‫مقدمه‬ ‫تخصصی‬ ‫و‬ ‫اجرایی‬ ‫بحث‬ ‫با‬ ‫ساختاری‬ ‫آشنایی‬ ‫بدون‬ ‫خود‬ ‫‌ای‬ ‫ه‬‫حرف‬ ‫زندگی‬ ‫آغاز‬ ‫در‬ ‫که‬ ‫هستند‬ ‫غیرمتخصص‬ ‫کدنویسان‬ ‫برخی‬ ‫اطالعاتی‬ ‫بانک‬ ‫ساخت‬ ‫زمینه‬ ‫در‬ ( ‫‌کنند‬ ‫ی‬‫م‬ ‫جدولی‬ ‫بین‬ ‫ارتباطات‬ ‫ایجاد‬ ‫حتی‬ ‫یا‬ ‫جداول‬ ‫ساخت‬ ‫به‬ ‫اقدام‬ ‫اطالعاتی‬ ‫بانک‬ ‫سرور‬ ‫‌های‬ ‫ه‬‫پای‬ relations ‫یا‬ RDBMS ‫امر‬ ‫این‬ ) ‫پیچیده‬ ‫را‬ ‫آن‬ ‫با‬ ‫مرتبط‬ ‫مسایل‬ ‫و‬ ‫شده‬ ‫کاربران‬ ‫نارضایتی‬ ‫باعث‬ ‫روند‬ ‫این‬ . ‫مینماید‬ ‫کار‬ ‫و‬ ‫کسب‬ ‫برای‬ ‫را‬ ‫زیادی‬ ‫مشکالت‬ ‫ایجاد‬ ‫باعث‬ . ‫میکند‬ :‫جمله‬ ‫از‬ ‫است‬ ‫مطرح‬ ‫همیشه‬ ‫ثابت‬ ‫بحث‬ ‫چند‬ ‫اطالعاتی‬ ‫بانک‬ ‫طراحی‬ ‫در‬ ،)‫حجم‬ ‫در‬ ‫‌جویی‬ ‫ه‬‫صرف‬ ‫برای‬ ‫تکرار‬ ‫از‬ ‫(اجتناب‬ ‫‌سازی‬ ‫ل‬‫نرما‬ ،)‫سرعت‬ ‫افزایش‬ ‫برای‬ ‫تکرار‬ ‫برای‬ ‫(تالش‬ ‫‌سازی‬ ‫ل‬‫نانرما‬ Indexing ‫جستجو‬ ‫به‬ ‫بخشیدن‬ ‫سرعت‬ ‫برای‬ ‫هدفمند‬ ‫‌سازی‬ ‫ب‬‫مرت‬ : Indexing ‫پیدا‬ ‫دسترسی‬ ‫نظر‬ ‫مورد‬ ‫اطالعات‬ ‫به‬ ‫سرعت‬ ‫به‬ ‫‌کند‬ ‫ی‬‫م‬ ‫کمک‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫پایگاه‬ ‫به‬ ‫که‬ ‫است‬ ‫تکنیکی‬ ،‫هدفمند‬ ‫‌سازی‬ ‫ب‬‫مرت‬ ‫یا‬ ‫کمک‬ ‫سرور‬ ‫به‬ ‫و‬ ‫‌کند‬ ‫ی‬‫م‬ ‫مرتب‬ ‫حرف‬ ‫اساس‬ ‫بر‬ ‫را‬ ‫اطالعات‬ ‫که‬ ‫است‬ ‫‌شده‬ ‫ه‬‫بهین‬ ‫و‬ ‫منظم‬ ‫‌ای‬ ‫ه‬‫داد‬ ‫ساختار‬ ‫ایجاد‬ ‫شامل‬ ‫تکنیک‬ ‫این‬ .‫کنند‬ .‫کند‬ ‫پیدا‬ ‫دسترسی‬ ‫جستجو‬ ‫مورد‬ ‫‌های‬ ‫ه‬‫داد‬ ‫به‬ ‫باالتری‬ ‫سرعت‬ ‫با‬ ‫تا‬ ‫‌کند‬ ‫ی‬‫م‬
  • 7. ‫انواع‬ Indexing : ‫نوع‬ ‫دو‬ Indexing :‫دارد‬ ‫وجود‬ ‫مهم‬ * Clustered Index ‫نوع‬ ‫این‬ : Indexing ( ‫اولیه‬ ‫کلید‬ ‫مثل‬ PKs ‫داده‬ ‫پایگاه‬ ‫در‬ ‫فیزیکی‬ ‫صورت‬ ‫به‬ ‫را‬ ‫‌ها‬ ‫ف‬‫ردی‬ ‫و‬ ‫‌کند‬ ‫ی‬‫م‬ ‫عمل‬ ) .‫‌کند‬ ‫ی‬‫م‬ ‫مرتب‬ * Secondary Index ‫نوع‬ ‫این‬ : Indexing ‫به‬ ‫تا‬ ‫‌کند‬ ‫ی‬‫م‬ ‫کمک‬ ‫سرور‬ ‫به‬ ‫و‬ ‫‌شود‬ ‫ی‬‫م‬ ‫ایجاد‬ )‫نام‬ ‫(مثال‬ ‫مختلف‬ ‫‌های‬ ‫ن‬‫ستو‬ ‫برای‬ ‫نوع‬ ‫این‬ .‫کند‬ ‫پیدا‬ ‫را‬ ‫نظر‬ ‫مورد‬ ‫‌های‬ ‫ف‬‫ردی‬ ‫سرعت‬ Indexing .‫است‬ ‫مناسب‬ ‫کلیدی‬ ‫غیر‬ ‫‌های‬ ‫ن‬‫ستو‬ ‫در‬ ‫جستجو‬ ‫برای‬ - B Tree ‫و‬ Indexing : - B Tree ‫برای‬ ‫که‬ ‫است‬ ‫‌کننده‬ ‫ل‬‫متعاد‬-‫خود‬ ‫‌ای‬ ‫ه‬‫داد‬ ‫ساختار‬ ‫یک‬ Indexing .‫‌شود‬ ‫ی‬‫م‬ ‫استفاده‬ - B Tree ‫با‬ ‫تا‬ ‫‌کند‬ ‫ی‬‫م‬ ‫کمک‬ ‫سرور‬ ‫به‬ .‫کند‬ ‫پیدا‬ ‫دسترسی‬ ‫جستجو‬ ‫مورد‬ ‫‌های‬ ‫ه‬‫داد‬ ‫به‬ ‫باالتری‬ ‫سرعت‬ - B Tree ‫مرتب‬ )‫‌ای‬ ‫ه‬‫مرحل‬ ‫(چند‬ ‫مراتبی‬ ‫سلسله‬ ‫صورت‬ ‫به‬ ‫را‬ ‫اطالعات‬ .‫‌رسد‬ ‫ی‬‫م‬ ‫نظر‬ ‫مورد‬ ‫‌های‬ ‫ه‬‫داد‬ ‫به‬ ‫ممکن‬ ‫زمان‬ ‫‌ترین‬ ‫ع‬‫سری‬ ‫در‬ ،‫شده‬ ‫مرتب‬ ‫اطالعات‬ ‫با‬ ‫جستجو‬ ‫مورد‬ ‫مقدار‬ ‫مقایسه‬ ‫با‬ ‫و‬ ‫‌کند‬ ‫ی‬‫م‬ ‫ایجاد‬ ‫زمان‬ ‫در‬ ‫که‬ ‫است‬ ‫جستجو‬ ‫نوع‬ ‫با‬ ‫متناسب‬ ‫کامپوزیت‬ ‫یا‬ ‫ترکیبی‬ ‫‌های‬ ‫س‬‫ایندک‬ ‫ایجاد‬ ‫اطالعاتی‬ ‫بانک‬ ‫کارایی‬ ‫افزایش‬ ‫مهم‬ ‫مباحث‬ .‫است‬ ‫برخوردار‬ ‫مهمی‬ ‫اهمیت‬ ‫از‬ ‫جداول‬ ‫بین‬ ‫ارتباطات‬ ‫اطالعاتی‬ ‫موتور‬ ‫نوع‬ ‫چه‬ ‫از‬ ‫اینکه‬ ‫‌کیوال‬ ‫س‬‫‌ا‬ ‫ی‬‫ما‬ ‫مانند‬ ‫سرورها‬ ‫برخی‬ ‫در‬ ‫مباحث‬ ‫این‬ ‫تمام‬ ‫بین‬ ‫در‬ MyISAM ‫یا‬ InnoDB ‫استفاده‬ ‫یا‬ ‫شود‬ spider ‫تعادل‬ ‫نماینده‬ ‫دومی‬ ‫و‬ )‫بایگانی‬ ‫(معموًال‬ ‫است‬ ‫اطالعات‬ ‫ثبت‬ ‫در‬ ‫سرعت‬ ‫نماینده‬ ‫اولی‬ ‫زیرا‬ ‫است‬ ‫سواالت‬ ‫اولین‬ ‫از‬ ‫و‬ … ‫یا‬ ‫غیرتراکنشی‬ ‫عنوان‬ ‫با‬ ‫و‬ ‫‌کند‬ ‫ی‬‫م‬ ‫قفل‬ ‫را‬ ‫جدول‬ ‫کل‬ ‫داده‬ ‫ثبت‬ ‫زمان‬ ‫در‬ ‫اولی‬ ‫در‬ ‫دلیل‬ ‫این‬ ‫به‬ ‫خواندن‬ ‫هم‬ ‫و‬ ‫ثبت‬ ‫هم‬ ‫سرعت‬ ‫در‬ ‫شاهد‬ ‫را‬ ‫تری‬ ‫پیشرفته‬ ‫امکانات‬ ‫سومی‬ ‫در‬ ‫و‬ .‫‌کند‬ ‫ی‬‫م‬ ‫قفل‬ ‫را‬ ‫‌ها‬ ‫ف‬‫ردی‬ ‫و‬ ‫است‬ ‫برعکس‬ ‫دومی‬ ‫که‬ ‫حالی‬ ‫در‬ ‫‌شود‬ ‫ی‬‫م‬ ‫شناخته‬ ‫غیرترزاکشن‬ . ‫هستیم‬
  • 8. ‫بر‬ ‫شرحی‬ index : ‫ها‬ ( ‫‌ها‬ ‫س‬‫ایندک‬ ‫از‬ ‫مختلفی‬ ‫انواع‬ ، ‫ما‬ Indexes ‫هر‬ .‫‌شوند‬ ‫ی‬‫م‬ ‫استفاده‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫به‬ ‫دسترسی‬ ‫و‬ ‫جستجوها‬ ‫کارایی‬ ‫بهبود‬ ‫برای‬ ‫که‬ ‫دارند‬ ‫وجود‬ ) :‫‌پردازیم‬ ‫ی‬‫م‬ ‫اوراکل‬ ‫دیتابیس‬ ‫در‬ ‫‌ها‬ ‫س‬‫ایندک‬ ‫مختلف‬ ‫انواع‬ ‫به‬ ‫ادامه‬ ‫در‬ .‫است‬ ‫مناسب‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫و‬ ‫کاربردها‬ ‫از‬ ‫خاصی‬ ‫نوع‬ ‫برای‬ ‫ایندکس‬ ‫نوع‬ ‫ا‬ 1 . - B Tree Index : .‫است‬ ‫مناسب‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫به‬ ‫دسترسی‬ ‫و‬ ‫جستجو‬ ‫عملیات‬ ‫اکثر‬ ‫برای‬ ‫که‬ ‫ایندکس‬ ‫نوع‬ ‫‌ترین‬ ‫ج‬‫رای‬ :‫کاربرد‬ - ( ‫دقیق‬ ‫جستجوهای‬ ‫در‬ ‫خوب‬ ‫عملکرد‬ :‫مزایا‬ - Exact Match ( ‫‌ای‬ ‫ه‬‫محدود‬ ‫و‬ ) Range Queries .) .‫‌کند‬ ‫ی‬‫م‬ ‫فراهم‬ ‫را‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫به‬ ‫سریع‬ ‫دسترسی‬ ‫که‬ ‫متوازن‬ ‫درختی‬ ‫ساختار‬ :‫ساختار‬ - ‫ا‬ 2 . Bitmap Index : .)‫تأهل‬ ‫وضعیت‬ ‫یا‬ ‫جنسیت‬ ‫(مثل‬ ‫متمایز‬ ‫مقادیر‬ ‫از‬ ‫محدودی‬ ‫تعداد‬ ‫با‬ ‫‌هایی‬ ‫ن‬‫ستو‬ ‫برای‬ ‫مناسب‬ :‫کاربرد‬ - .‫پیچیده‬ ‫جستجوهای‬ ‫و‬ ‫ترکیبی‬ ‫‌های‬ ‫ی‬‫کوئر‬ ‫در‬ ‫باال‬ ‫کارایی‬ :‫مزایا‬ - .‫نیست‬ ‫مناسب‬ ‫‌روزرسانی‬ ‫ه‬‫ب‬ ‫و‬ ‫حذف‬ ،‫درج‬ ‫عملیات‬ ‫زیادی‬ ‫تعداد‬ ‫با‬ ‫جداول‬ ‫برای‬ :‫معایب‬ - ‫ا‬ 3 . - Function Based Index : .‫باشد‬ ‫عبارت‬ ‫یک‬ ‫یا‬ ‫تابع‬ ‫یک‬ ‫نتایج‬ ‫اساس‬ ‫بر‬ ‫جستجو‬ ‫به‬ ‫نیاز‬ ‫که‬ ‫زمانی‬ :‫کاربرد‬ - .‫هستند‬ ‫محاسباتی‬ ‫عبارات‬ ‫یا‬ ‫توابع‬ ‫شامل‬ ‫که‬ ‫‌هایی‬ ‫ی‬‫کوئر‬ ‫‌سازی‬ ‫ه‬‫بهین‬ :‫مزایا‬ - ‫تابع‬ ‫روی‬ ‫بر‬ ‫ایندکس‬ ‫ایجاد‬ :‫مثال‬ - ( ) UPPER column_name . ‫ا‬ 4 . Composite Index ‫(یا‬ Concatenated Index :) .‫است‬ ‫مناسب‬ ‫‌کنند‬ ‫ی‬‫م‬ ‫جستجو‬ ‫را‬ ‫ستون‬ ‫چندین‬ ‫که‬ ‫‌هایی‬ ‫ی‬‫کوئر‬ ‫‌سازی‬ ‫ه‬‫بهین‬ ‫برای‬ ‫و‬ ‫است‬ ‫ستون‬ ‫یک‬ ‫از‬ ‫بیش‬ ‫شامل‬ :‫کاربرد‬ - .‫‌شوند‬ ‫ی‬‫م‬ ‫فیلتر‬ ‫ستون‬ ‫چندین‬ ‫اساس‬ ‫بر‬ ‫که‬ ‫‌هایی‬ ‫ی‬‫کوئر‬ ‫کارایی‬ ‫بهبود‬ :‫مزایا‬ - ‫ا‬ 5 . Unique Index : .‫‌ها‬ ‫ن‬‫ستو‬ ‫از‬ ‫ترکیبی‬ ‫یا‬ ‫ستون‬ ‫یک‬ ‫در‬ ‫مقادیر‬ ‫یکتایی‬ ‫تضمین‬ :‫کاربرد‬ - .‫تکراری‬ ‫مقادیر‬ ‫درج‬ ‫از‬ ‫جلوگیری‬ :‫مزایا‬ - ‫ا‬ 6 . Reverse Key Index : ‫‌های‬ ‫ن‬‫ستو‬ ‫(مانند‬ ‫‌دار‬ ‫ی‬‫توال‬ ‫مقادیر‬ ‫دلیل‬ ‫به‬ ‫است‬ ‫ممکن‬ ‫که‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫درج‬ ‫عملیات‬ ‫در‬ ‫زیاد‬ ‫‌های‬ ‫ل‬‫قف‬ ‫از‬ ‫جلوگیری‬ :‫کاربرد‬ - Sequence .‫دهد‬ ‫رخ‬ )
  • 9. .‫متوالی‬ ‫درج‬ ‫عملیات‬ ‫باالی‬ ‫حجم‬ ‫با‬ ‫‌هایی‬ ‫م‬‫سیست‬ ‫در‬ ‫کارایی‬ ‫بهبود‬ :‫مزایا‬ - ‫ا‬ 7 . Domain Index : ( ‫‌شده‬ ‫ف‬‫تعری‬-‫کاربر‬ ‫داده‬ ‫‌های‬ ‫ع‬‫نو‬ ‫و‬ ‫پیچیده‬ ‫‌های‬ ‫ه‬‫داد‬ ‫برای‬ :‫کاربرد‬ - - User Defined Data Types .) .‫خاص‬ ‫کاربردهای‬ ‫برای‬ ‫باال‬ ‫‌پذیری‬ ‫ف‬‫انعطا‬ :‫مزایا‬ - ‫ا‬ 8 . Cluster Index : ( ‫‌ای‬ ‫ه‬‫خوش‬ ‫جداول‬ ‫برای‬ :‫کاربرد‬ - Clustered Tables .‫‌شوند‬ ‫ی‬‫م‬ ‫ذخیره‬ ‫هم‬ ‫کنار‬ ‫در‬ ‫فیزیکی‬ ‫صورت‬ ‫به‬ ‫مرتبط‬ ‫‌های‬ ‫ه‬‫داد‬ ‫که‬ ) .‫مرتبط‬ ‫‌های‬ ‫ه‬‫داد‬ ‫به‬ ‫دسترسی‬ ‫کارایی‬ ‫بهبود‬ :‫مزایا‬ - ‫ا‬ 9 . Partitioned Index : .‫‌اند‬ ‫ه‬‫شد‬ ‫تقسیم‬ )‫(پارتیشن‬ ‫کوچکتر‬ ‫‌های‬ ‫ش‬‫بخ‬ ‫به‬ ‫که‬ ‫بزرگ‬ ‫جداول‬ ‫برای‬ ‫مناسب‬ :‫کاربرد‬ - .‫بزرگ‬ ‫جداول‬ ‫در‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫به‬ ‫دسترسی‬ ‫کارایی‬ ‫بهبود‬ ‫و‬ ‫بهتر‬ ‫مدیریت‬ :‫مزایا‬ - ‫و‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫ساختار‬ ‫به‬ ‫ایندکس‬ ‫مناسب‬ ‫نوع‬ ‫انتخاب‬ ‫اما‬ ،‫کند‬ ‫کمک‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫به‬ ‫دسترسی‬ ‫کارایی‬ ‫بهبود‬ ‫به‬ ‫‌تواند‬ ‫ی‬‫م‬ ‫‌ها‬ ‫س‬‫ایندک‬ ‫این‬ ‫از‬ ‫یک‬ ‫هر‬ .‫دارد‬ ‫بستگی‬ ‫‌ها‬ ‫ی‬‫کوئر‬ ‫خاص‬ ‫‌های‬ ‫ی‬‫نیازمند‬
  • 10. ‫لینوکس‬ ‫و‬ ‫گنو‬ ‫تاریخچه‬ “ ‫مخفف‬ ‫گنو‬ .‫‌باشد‬ ‫ی‬‫م‬ ‫سازگار‬ ‫یونیکس‬ ‫با‬ ‫‌ای‬ ‫ه‬‫فزایند‬ ‫طــور‬ ‫به‬ ‫کــه‬ ‫بــوده‬ ‫آزاد‬ ‫کامال‬ ‫عامل‬ ‫سیــستم‬ ‫یک‬ ‫گنو‬ ‫عامل‬ ‫سیستم‬ ’ GNU s Not Unix ‫سپتامبر‬ ‫در‬ ‫را‬ ‫گنو‬ ‫پروژه‬ ‫اولیه‬ ‫اطالعیه‬ ‫استالمن‬ ‫ریچارد‬ .‫است‬ ” ۱۹۸۳ ‫سپتامبر‬ ‫در‬ ‫گنو‬ ‫اعالمیه‬ ‫نام‬ ‫به‬ ‫آن‬ ‫‌تر‬ ‫ل‬‫کام‬ ‫نسخه‬ .‫کرد‬ ‫منتشر‬ ۱۹۸۵ .‫است‬ ‫شده‬ ‫ترجمه‬ ‫زبان‬ ‫چندین‬ ‫به‬ ‫که‬ ‫شد‬ ‫منتشر‬ “ ‫برای‬ ‫بازگشتی‬ ‫مخفف‬ ‫یک‬ ،‫نخست‬ ‫‌کند؛‬ ‫ی‬‫م‬ ‫بــرطــرف‬ ‫را‬ ‫نیــازها‬ ‫از‬ ‫تعدادی‬ ‫که‬ ‫است‬ ‫شده‬ ‫انتخاب‬ ‫علت‬ ‫این‬ ‫به‬ »‫«گنو‬ ‫نام‬ ’ GNU s Not Unix .‫است‬ ‫جالب‬ ‫آن‬ )‫خواندن‬ ‫(یا‬ ‫گفتن‬ ‫آهنگ‬ ،‫سوم‬ ،‫است‬ ‫واقعی‬ ‫کلمه‬ ‫یک‬ ،‫دوم‬ ،‫است‬ ” ‫یا‬ ‫بپردازید‬ ‫مبلغی‬ ‫است‬ ‫ممکن‬ ‫آزاد‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫آوردن‬ ‫دست‬ ‫به‬ ‫برای‬ ‫شما‬ .‫قیمت‬ ‫نه‬ ،‫‌کند‬ ‫ی‬‫م‬ ‫اشاره‬ ‫آزادی‬ ‫به‬ »‫آزاد‬ ‫‌افزار‬ ‫م‬‫«نر‬ ‫در‬ »‫«آزاد‬ ‫کلمه‬ ‫آزادی‬ ،‫نخست‬ .‫داشت‬ ‫خواهید‬ ‫آن‬ ‫از‬ ‫استفاده‬ ‫برای‬ ‫ویــژه‬ ‫آزادی‬ ‫ســه‬ ،‫باشید‬ ‫داشتــه‬ ‫اختیار‬ ‫در‬ ‫را‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫وقتـی‬ ،‫صورت‬ ‫هر‬ ‫در‬ .‫نپردازید‬ ‫داشتن‬ ‫با‬ ،‫دلخواه‬ ‫طور‬ ‫به‬ ‫برنامه‬ ‫در‬ ‫تغییرات‬ ‫اعمال‬ ‫بــرای‬ ‫آزادی‬ ،‫دوم‬ ‫همــکاران؛‬ ‫و‬ ‫دوستان‬ ‫به‬ ‫آن‬ ‫دادن‬ ‫هدیه‬ ‫و‬ ‫برنامه‬ ‫از‬ ‫برداری‬ ‫نسخه‬ ‫برای‬ ‫را‬ ‫گنو‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫مجددا‬ ‫(اگر‬ .‫جامعه‬ ‫ساخت‬ ‫به‬ ‫کمک‬ ‫نهایت‬ ‫در‬ ‫و‬ ‫یافته‬ ‫بهبود‬ ‫نسخه‬ ‫توزیع‬ ‫برای‬ ‫آزادی‬ ،‫سوم‬ ‫منبع؛‬ ‫کدهای‬ ‫به‬ ‫کامل‬ ‫دسترسی‬ .)‫کنید‬ ‫هدیه‬ ‫رایگان‬ ‫طور‬ ‫به‬ ‫را‬ ‫آنها‬ ‫یا‬ ‫و‬ ‫کنید‬ ‫دریافت‬ ‫را‬ ‫مبلغی‬ ‫نسخه‬ ‫یک‬ ‫انتقال‬ ‫فیزیکی‬ ‫کار‬ ‫بــرای‬ ‫‌تــوانـید‬ ‫ی‬‫م‬ ،‫نمایید‬ ‫توزیع‬ ‫ســال‬ ‫در‬ .‫‌شود‬ ‫ی‬‫م‬ ‫نامیده‬ «‫گنو‬ ‫»پروژه‬ ،‫گنو‬ ‫سیستم‬ ‫توسعه‬ ‫پروژه‬ ۱۹۸۳ ‫در‬ ‫که‬ ‫همکاری‬ ‫روح‬ ‫بازگرداندن‬ ‫برای‬ ‫راهی‬ ‫عنوان‬ ‫به‬ ‫گنــو‬ ‫پــروژه‬ ‫انحصاری‬ ‫‌افزارهای‬ ‫م‬‫نر‬ ‫صاحبان‬ ‫توسط‬ ‫که‬ ‫موانع‬ ‫بردن‬ ‫بین‬ ‫از‬ ‫با‬ ‫تا‬ ‫شد‬ ‫ایجاد‬ ‫داشـت‬ ‫وجــود‬ ‫کامپیــوتر‬ ‫کاربران‬ ‫جامعه‬ ‫بین‬ ‫در‬ ‫نخست‬ ‫روزهای‬ .‫سازد‬ ‫ممکن‬ ‫را‬ ‫همکاری‬ ‫دیگر‬ ‫بار‬ ‫یک‬ ،‫بودند‬ ‫شده‬ ‫تحمیل‬ ‫سال‬ ‫در‬ ۱۹۷۱ ‫دانشگاه‬ ‫در‬ ‫را‬ ‫خود‬ ‫کار‬ ‫استالمن‬ ‫ریچارد‬ ‫که‬ ‫هنگامی‬ MIT ‫استفاده‬ ‫آزاد‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫از‬ ‫منحصرا‬ ‫کــه‬ ‫گــروهی‬ ‫در‬ ،‫کرد‬ ‫آغاز‬ ‫آزاد‬ ‫یکدیگر‬ ‫با‬ ‫همکاری‬ ‫در‬ ‫‌نویسان‬ ‫ه‬‫بــرنام‬ .‫‌کــردند‬ ‫ی‬‫م‬ ‫توزیع‬ ‫آزاد‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫اغلب‬ ‫نیز‬ ‫کامپیوتری‬ ‫‌های‬ ‫ت‬‫شرک‬ ‫حتی‬ .‫پرداخت‬ ‫کار‬ ‫به‬ ‫‌کردند‬ ‫ی‬‫م‬ .‫‌دادند‬ ‫ی‬‫م‬ ‫انجام‬ ‫را‬ ‫کار‬ ‫همین‬ ‫نیز‬ ‫اغلب‬ ‫و‬ ‫بودند‬ ‫دهه‬ ‫در‬ ۱۹۸۰ ‫منع‬ ‫را‬ ‫کاربزان‬ ‫توسط‬ ‫همکاری‬ ‫آنها‬ ‫مالکان‬ ‫و‬ ‫داشتند‬ ‫مالک‬ ‫که‬ ‫معنی‬ ‫این‬ ‫بــه‬ ،‫بودند‬ ‫انحصاری‬ ‫‌افزارها‬ ‫م‬‫نر‬ ‫تمام‬ ‫تقریبا‬ .‫‌کرد‬ ‫ی‬‫م‬ ‫ایجاب‬ ‫را‬ ‫گنو‬ ‫پروژه‬ ‫ضرورت‬ ‫کار‬ ‫این‬ ‫که‬ ‫‌کردند‬ ‫ی‬‫م‬ ‫‌توانید‬ ‫ی‬‫نم‬ ‫حتی‬ ‫شـما‬ ،‫بــاشـد‬ ‫نـداشـته‬ ‫وجــود‬ ‫آزادی‬ ‫عامل‬ ‫سـیـستم‬ ‫اگــر‬ ‫دارند؛‬ ‫نیــاز‬ ‫عامل‬ ‫سیستم‬ ‫یــک‬ ‫به‬ ‫کامپیوتر‬ ‫کاربران‬ ‫تمام‬ ‫عامل‬ ‫سیستم‬ ‫یک‬ ‫وجود‬ ،‫آزاد‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫در‬ ‫ضرورت‬ ‫اولیــن‬ ‫بنــابــراین‬ .‫کنید‬ ‫شروع‬ ‫را‬ ‫کامپیوتر‬ ‫با‬ ‫کار‬ ‫انحصاری‬ ‫‌افزارهای‬ ‫م‬‫نر‬ ‫از‬ ‫استفاده‬ ‫بدون‬ .‫است‬ ‫آزاد‬ ‫انتقال‬ ‫قابل‬ ‫و‬ ‫خورده‬ ‫محک‬ ‫قبال‬ ‫آن‬ ‫کلی‬ ‫طــراحی‬ ‫زیرا‬ ‫بساند‬ ‫یونیکس‬ ‫با‬ ‫منطبق‬ ‫عاملی‬ ‫سیستم‬ ‫تا‬ ‫گرفتند‬ ‫تصمیم‬ ‫آزاد‬ ‫افزاری‬ ‫نرم‬ ‫جنبش‬ .‫‌کرد‬ ‫ی‬‫م‬ ‫آسان‬ ‫را‬ ‫گنو‬ ‫به‬ ‫یونیکس‬ ‫کاربران‬ ‫حرکت‬ ‫سازگاری‬ ‫این‬ ‫همچنین‬ ‫و‬ ،‫بود‬ ،‫متن‬ ‫‌بندی‬ ‫ب‬‫قال‬ ‫‌های‬ ‫ه‬‫برنام‬ ،‫ویــرایشــگـرها‬ ،‫کامپــایـلرها‬ ‫شــامــل‬ ‫و‬ ‫اســت؛‬ ‫هسته‬ ‫یک‬ ‫از‬ ‫بیشتر‬ ‫خیلی‬ ‫یونیکس‬ ‫شبه‬ ‫عامل‬ ‫سیستم‬ ‫یک‬ ‫ژانویه‬ ‫در‬ .‫است‬ ‫بزرگی‬ ‫بسیار‬ ‫کار‬ ‫کامل‬ ‫عامل‬ ‫سیستم‬ ‫یک‬ ‫نوشتن‬ ‫بنابرایـن‬ .‫‌باشد‬ ‫ی‬‫م‬ ‫دیگر‬ ‫چیزهای‬ ‫خیلی‬ ‫و‬ ‫پستی‬ ‫‌افزارهای‬ ‫م‬‫نر‬ ۱۹۸۴ ‫شروع‬ ‫اکتبر‬ ‫در‬ ‫آزاد‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫بنیاد‬ .‫انجامید‬ ‫طول‬ ‫به‬ ‫سالها‬ ‫کردند‬ ‫کار‬ ‫به‬ ۱۹۸۵ .‫شد‬ ‫تاسیس‬ ‫گنو‬ ‫توسعه‬ ‫به‬ ‫کمک‬ ‫جهت‬ ‫سرمایه‬ ‫جذب‬ ‫برای‬ ‫بیشتر‬
  • 11. ‫سال‬ ‫تا‬ ۱۹۹۰ ‫سال‬ ‫در‬ ،‫یونیکس‬ ‫شبه‬ ‫هسته‬ ‫یک‬ ،‫لینوکس‬ ‫سپس‬ . ‫یافتند‬ ‫دست‬ ‫هسته‬ ‫جــز‬ ‫بــه‬ ،‫عامل‬ ‫سیستم‬ ‫اصلی‬ ‫اجزای‬ ‫تمامی‬ ‫به‬ ۱۹۹۱ ‫ســال‬ ‫در‬ ‫و‬ ‫کرد‬ ‫پیدا‬ ‫توسعه‬ ‫تروالدز‬ ‫لینوس‬ ‫توسط‬ ۱۹۹۲ ‫گنو‬ ‫کامل‬ ‫تقریبا‬ ‫سیستم‬ ‫با‬ ‫لینوکس‬ ‫ترکیب‬ .‫شد‬ ‫آزاد‬ ‫‌افـزار‬ ‫م‬‫نــر‬ ‫یــک‬ ‫‌های‬ ‫م‬‫سیست‬ ‫از‬ ‫نفر‬ ‫میلیون‬ ‫‌ها‬ ‫ه‬‫د‬ ‫‌اکنون‬ ‫م‬‫ه‬ ‫که‬ ‫‌شود‬ ‫ی‬‫م‬ ‫زده‬ ‫تخمــین‬ .‫لینوکس‬/‫گنـو‬ ‫سیستم‬ :‫شد‬ ‫کــامل‬ ‫عامــل‬ ‫سیستم‬ ‫یک‬ ‫به‬ ‫منجر‬ .‫‌کنند‬ ‫ی‬‫م‬ ‫استفاده‬ ‫غـیـره‬ ‫و‬ ‫ردهــت‬ ،‫دبیــان‬ ،‫اسلکور‬ ‫شــامــل‬ ،‫لینوکس‬/‫گنو‬ ‫را‬ ‫‌افزارها‬ ‫م‬‫نر‬ ‫از‬ ‫کامل‬ ‫مجموعه‬ ‫یک‬ ‫تا‬ ‫دارد‬ ‫نظر‬ ‫در‬ ‫آزاد‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫بنیاد‬ .‫است‬ ‫نشده‬ ‫محدود‬ ‫عامل‬ ‫سیستم‬ ‫یک‬ ‫به‬ ‫فقط‬ ‫گنو‬ ‫پروژه‬ ،‫حال‬ ‫این‬ ‫با‬ .‫‌شود‬ ‫ی‬‫م‬ ‫نیز‬ ‫کاربردی‬ ‫‌افزارهای‬ ‫م‬‫نـر‬ ‫شــامــل‬ ‫مــوضــوع‬ ‫ایــن‬ .‫باشند‬ ‫داشته‬ ‫‌خواهند‬ ‫ی‬‫م‬ ‫کاربــران‬ ‫از‬ ‫بسیاری‬ ‫که‬ ‫آنچه‬ ‫هر‬ ، ‫کند‬ ‫ایجاد‬ ‫بنیاد‬ ‫جهت‬ ‫همین‬ ‫به‬ ‫کنند‬ ‫تهیه‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫نیز‬ ‫ندارند‬ ‫مهارت‬ ‫کامپیـوتر‬ ‫زمینه‬ ‫در‬ ‫که‬ ‫کاربرانی‬ ‫برای‬ ‫دارد‬ ‫قصد‬ ‫همچنین‬ ‫آزاد‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫بنیاد‬ .‫کرد‬ ‫ایجاد‬ ،‫گنو‬ ‫سیستم‬ ‫از‬ ‫استفاده‬ ‫در‬ ‫‌کار‬ ‫ه‬‫تاز‬ ‫کاربران‬ ‫به‬ ‫کمک‬ ‫منظور‬ ‫به‬ ‫گرافیکی‬ ‫کار‬ ‫میز‬ ‫یک‬ ‫آزاد‬ ‫‌افزار‬ ‫م‬‫نر‬ .‫است‬ ‫دسترس‬ ‫در‬ ‫‌اکنون‬ ‫م‬‫ه‬ ‫آزاد‬ ‫بازی‬ ‫تعدادی‬ .‫کند‬ ‫ایجاد‬ ‫نیز‬ ‫دیگــری‬ ‫تفریح‬ ‫ابزارهای‬ ‫و‬ ‫‌ها‬ ‫ی‬‫باز‬ ‫‌خــواهد‬ ‫ی‬‫م‬ ‫همچنین‬ ‫آزاد‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫بنیاد‬ ‫به‬ ‫را‬ ‫گنو‬ ‫‌افزار‬ ‫م‬‫نر‬ ،‫انحصاری‬ ‫سیستم‬ ‫مانند‬ ‫قوانینی‬ ‫که‬ ‫زمانی‬ ‫جز‬ ‫بـه‬ ،‫نـدارد‬ ‫وجــود‬ ‫محدودیتی‬ ‫هیچ‬ ‫برود؟‬ ‫پیش‬ ‫‌تواند‬ ‫ی‬‫م‬ ‫کجا‬ ‫تا‬ ‫آزاد‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫دهند‬ ‫انجام‬ ‫‌خواهند‬ ‫ی‬‫م‬ ‫کامپیوتر‬ ‫کاربران‬ ‫که‬ ‫کارهایی‬ ‫تمام‬ ‫انجام‬ ‫برای‬ ‫آزاد‬ ‫‌افزارهای‬ ‫م‬‫نر‬ ‫کردن‬ ‫فراهم‬ ‫نــهـایی‬ ‫هــدف‬ .‫کننــد‬ ‫منع‬ ‫کامل‬ ‫طور‬ .‫‌باشد‬ ‫ی‬‫م‬ ‫انحصاری‬ ‫‌افزارهای‬ ‫م‬‫نر‬ ‫کردن‬ ‫مطرود‬ ‫نتیجه‬ ‫در‬ ‫و‬
  • 12. ‫باز‬ ‫متن‬ ‫افزار‬ ‫نرم‬ Open Source Software ‫مقدمه‬ ‫قواعد‬ ‫گذاشته‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫اکوسیستم‬ ‫در‬ ‫‌گذاران‬ ‫ه‬‫سرمای‬ ‫اقتصادی‬ ‫رفتار‬ ‫بر‬ ‫که‬ ‫‌ای‬ ‫ه‬‫مالحظ‬ ‫قابل‬ ‫تأثیر‬ ‫با‬ ‫‌باز‬ ‫ن‬‫مت‬ ‫افزار‬ ‫نرم‬ ‫تولید‬ ‫فشار‬ ‫شرکتها‬ ،‫باشند‬ ‫کد‬ ‫کننده‬ ‫اعمال‬ ‫‌کنند‬ ‫ی‬‫م‬ ‫سعی‬ ‫‌دهنگان‬ ‫ه‬‫توسع‬ ‫تازه‬ ‫محیط‬ ‫این‬ ‫در‬ .‫است‬ ‫داده‬ ‫تغییر‬ ‫را‬ ‫بازی‬ .‫‌کشند‬ ‫ی‬‫م‬ ‫را‬ ‫سرشاری‬ ‫سود‬ ‫انتظار‬ ‫سیستم‬ ‫فروشندگان‬ ‫و‬ ‫‌کنند‬ ‫ی‬‫م‬ ‫حس‬ ‫را‬ ‫‌باز‬ ‫ن‬‫مت‬ ‫محصوالت‬
  • 13. ۱ ‫معرفی‬ . ‫فعل‬ ‫در‬ ‫عمده‬ ‫تغییراتی‬ ‫اتفاق‬ ‫این‬ .‫است‬ ‫آورده‬ ‫بار‬ ‫به‬ ‫کاربران‬ ‫برای‬ ‫ارزانتر‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫از‬ ‫بیش‬ ‫چیزی‬ ‫‌باز‬ ‫ن‬‫مت‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫ظهور‬ .‫است‬ ‫کرده‬ ‫ایجاد‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫حوزه‬ ‫بازیگران‬ ‫بین‬ ‫اقتصادی‬ ‫انفعال‬ ‫و‬ ‫معنای‬ ‫به‬ ‫اما‬ ‫است‬ - ‫زندگی‬ ‫از‬ ‫سبکی‬ ‫حتی‬ ‫یا‬ - ‫‌افزار‬ ‫م‬‫نر‬ ‫توسعه‬ ‫به‬ ‫ویژه‬ ‫نگاهی‬ ‫تجسم‬ ‫‌باز‬ ‫ن‬‫مت‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫‌ها‬ ‫ی‬‫خیل‬ ‫برای‬ ‫جامعه‬ ‫رشد‬ ‫برای‬ ‫باید‬ ‫شرکتها‬ ‫که‬ ‫است‬ ‫این‬ ‫گابریل‬ ‫ریچارد‬ ‫و‬ ‫گلدمن‬ ‫ران‬ ‫پیشنهاد‬ .‫هست‬ ‫هم‬ ‫تجاری‬ ‫تدبیر‬ ‫نوعی‬ .‫نمایند‬ ‫ایجاد‬ ‫خدماتشان‬ ‫و‬ ‫محصوالت‬ ‫اطراف‬ ‫زنده‬ ‫محیطی‬ ‫و‬ ‫کنند‬ ‫استفاده‬ ‫‌باز‬ ‫ن‬‫مت‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫از‬ ‫کاربرانشان‬ ‫به‬ ‫است‬ ‫نیاز‬ ‫مورد‬ ‫کاربر‬ ‫احتیاجات‬ ‫با‬ ‫آن‬ ‫دادن‬ ‫تطبیق‬ ‫برای‬ ‫که‬ ‫را‬ ‫کد‬ ‫متن‬ ‫و‬ ‫است‬ ‫رایگان‬ ‫‌باز‬ ‫ن‬‫مت‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫معمول‬ ‫بطور‬ ‫مبلغی‬ ‫دریافت‬ ‫ازای‬ ‫در‬ ‫را‬ ‫ممکن‬ ‫تغییرات‬ ‫بعالوه‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫بازپخش‬ ‫اجازه‬ ‫کاربر‬ ‫به‬ ‫‌باز‬ ‫ن‬‫مت‬ ‫‌های‬ ‫ه‬‫پروان‬ ‫اغلب‬ .‫دارد‬ ‫همراه‬ ( ‫باشد‬ ‫دسترس‬ ‫در‬ ‫عمومی‬ ‫بصورت‬ ‫کد‬ ‫متن‬ ‫تغییرات‬ ‫که‬ ‫زمانی‬ ‫تا‬ ‫‌دهند‬ ‫ی‬‫م‬ ‫بازپخش‬ ‫برای‬ . . www opensource org .) ‫یک‬ ‫اینکه‬ ‫بجای‬ .‫‌دهد‬ ‫ی‬‫م‬ ‫توسعه‬ ‫جامعه‬ ‫که‬ ‫است‬ ‫‌افزاری‬ ‫م‬‫نر‬ ‫جمعی‬ ‫‌باز‬ ‫ن‬‫مت‬ .‫دارد‬ ‫وجود‬ ‫‌باز‬ ‫ن‬‫مت‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫نوع‬ ‫دو‬ ‫از‬ ‫یک‬ ‫کدام‬ ‫که‬ ‫‌گیرند‬ ‫ی‬‫م‬ ‫تصمیم‬ ‫داوطلبان‬ ‫از‬ ‫برگزیده‬ ‫گروهی‬ ‫گاهی‬ ‫باشد‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫مالک‬ ‫حقوقی‬ ‫شخصیت‬ ‫‌دهندگان‬ ‫ه‬‫توسع‬ .‫برود‬ ‫سو‬ ‫کدام‬ ‫به‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫و‬ ‫شوند‬ ‫پذیرفته‬ ‫اصلی‬ ‫کد‬ ‫متن‬ ‫به‬ ‫ورود‬ ‫برای‬ ‫شده‬ ‫اعمال‬ ‫همکاریهای‬ ‫آپاچی‬ ‫وب‬ ‫سرور‬ ‫مورد‬ ‫مانند‬ ‫‌گیرند‬ ‫ی‬‫م‬ ‫تصمیم‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫درباره‬ ‫بخصوص‬ ‫شرکت‬ ‫یک‬ ‫نه‬ ‫و‬ ‫کد‬ ‫کنندگان‬ ‫اعمال‬ ،‫شخصی‬ ( . . httpd apache org .) ‫در‬ ‫را‬ ‫تالیف‬ ‫حق‬ ‫شرکت‬ .‫است‬ ‫آن‬ ‫‌دهنده‬ ‫ه‬‫توسع‬ ‫و‬ ‫مالک‬ ،‫سود‬ ‫پی‬ ‫در‬ ‫شخصیتی‬ ‫که‬ ‫است‬ ‫‌افزاری‬ ‫م‬‫نر‬ ‫تجاری‬ ‫‌باز‬ ‫ن‬‫مت‬ ‫مانند‬ ‫دهد‬ ‫انجام‬ ‫کاری‬ ‫چه‬ ‫آینده‬ ‫در‬ ‫و‬ ‫بپذیرد‬ ‫اصلی‬ ‫کد‬ ‫متن‬ ‫به‬ ‫ورود‬ ‫برای‬ ‫را‬ ‫کد‬ ‫کدام‬ ‫که‬ ‫‌کند‬ ‫ی‬‫م‬ ‫تعیین‬ ‫و‬ ‫دارد‬ ‫اختیار‬ ‫مورد‬ MySQL ‫داده‬ ‫پایگاه‬ ‫و‬ ( . . ) MySQL www mysql com . ‫متمرکز‬ ‫کار‬ ‫نیروی‬ ‫اقتصاد‬ ‫بر‬ ‫اغلب‬ ‫جامعه‬ ‫بوسیله‬ ‫شده‬ ‫داده‬ ‫توسعه‬ ‫‌باز‬ ‫ن‬‫مت‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫اقتصاد‬ ‫درباره‬ ‫پیشین‬ ‫مطالعات‬ ‫اشاره‬ ‫ریموند‬ ‫اریک‬ .‫‌یابد‬ ‫ی‬‫م‬ ‫تخصیص‬ ‫‌باز‬ ‫ن‬‫مت‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫به‬ ‫‌آوری‬ ‫ب‬‫تعج‬ ‫فراوان‬ ‫داوطلبانه‬ ‫کار‬ ‫میزان‬ ‫آن‬ ‫در‬ ‫که‬ ‫است‬ ‫کمک‬ ‫‌باز‬ ‫ن‬‫مت‬ ‫‌های‬ ‫ه‬‫پروژ‬ ‫به‬ ‫همتایانشان‬ ‫بین‬ ‫اعتبار‬ ‫افزایش‬ ‫از‬ ‫ناشی‬ ‫شخصی‬ ‫لذت‬ ‫بخاطر‬ ‫‌دهندگان‬ ‫ه‬‫توسع‬ ‫که‬ ‫‌کند‬ ‫ی‬‫م‬ . ‫رسیدند‬ ‫مشابهی‬ ‫نتیجه‬ ‫به‬ ‫نیز‬ ‫خود‬ ‫تجربی‬ ‫مطالعه‬ ‫در‬ ‫همکارانش‬ ‫و‬ ‫هارووی‬ ‫ارنان‬ ‫‌کنند‬ ‫ی‬‫م‬ ‫‌انداز‬ ‫م‬‫چش‬ ‫بهبود‬ ‫و‬ ‫فنی‬ ‫تواناییهای‬ ‫کردن‬ ‫مستند‬ ‫برای‬ ‫‌دهندگان‬ ‫ه‬‫توسع‬ ‫که‬ ‫‌کنند‬ ‫ی‬‫م‬ ‫استدالل‬ ‫تیروله‬ ‫جین‬ ،‫لرنرو‬ ‫جاشوا‬ ‫لذت‬ ‫که‬ ‫‌کنند‬ ‫ی‬‫م‬ ‫گزارش‬ ‫گلف‬ ‫رابرت‬ ‫الخانیو‬ ‫کریم‬ ‫و‬ ‫‌کنند‬ ‫ی‬‫م‬ ‫کمک‬ ‫‌باز‬ ‫ن‬‫مت‬ ‫‌های‬ ‫ه‬‫پروژ‬ ‫به‬ ‫آتی‬ ‫کارفرمایان‬ ‫برای‬ ‫شغلی‬ ‫نشان‬ ‫مطالعه‬ ‫این‬ ‫گرچه‬ ‫است‬ ‫‌باز‬ ‫ن‬‫مت‬ ‫‌های‬ ‫ه‬‫پروژ‬ ‫به‬ ‫‌دهندگان‬ ‫ه‬‫توسع‬ ‫کمک‬ ‫برای‬ ‫مهمی‬ ‫ذاتی‬ ‫محرک‬ ‫کار‬ ‫از‬ ‫بردن‬ .‫‌اند‬ ‫م‬‫مه‬ ‫هم‬ ‫مالی‬ ‫‌های‬ ‫ه‬‫انگیز‬ ‫که‬ ‫‌دهد‬ ‫ی‬‫م‬
  • 14. ‫را‬ ‫اشخاصی‬ ‫شرکتها‬ ‫چرا‬ ‫که‬ ‫‌دهد‬ ‫ی‬‫نم‬ ‫شرح‬ ‫را‬ ‫این‬ ‫اما‬ ‫است‬ ‫داوطلبانه‬ ‫کار‬ ‫برای‬ ‫توضیحات‬ ‫از‬ ‫‌ای‬ ‫ه‬‫پار‬ ‫اینها‬ ‫که‬ ‫حالی‬ ‫در‬ ‫همکارانش‬ ‫و‬ ‫هان‬ ‫هورن‬ ‫ایل‬ .‫‌کنند‬ ‫ی‬‫م‬ ‫کمک‬ ‫‌باز‬ ‫ن‬‫مت‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫‌های‬ ‫ه‬‫پروژ‬ ‫به‬ ‫شرکت‬ ‫کاری‬ ‫زمان‬ ‫در‬ ‫که‬ ‫‌کنند‬ ‫ی‬‫م‬ ‫استخدام‬ ‫در‬ ‫آنها‬ ‫رتبه‬ ‫با‬ ‫مستقیمی‬ ‫رابطه‬ ‫‌کنند‬ ‫ی‬‫م‬ ‫کمک‬ ‫آپاچی‬ ‫افزار‬ ‫نرم‬ ‫بنیاد‬ ‫پروژه‬ ‫به‬ ‫که‬ ‫کسانی‬ ‫حقوق‬ ‫که‬ ‫دریافتند‬ ‫معیاری‬ ‫عنوان‬ ‫به‬ ‫را‬ ‫بنیاد‬ ‫در‬ ‫‌دهندگان‬ ‫ه‬‫توسع‬ ‫رتبه‬ ‫کارفرمایان‬ ‫که‬ ‫گرفتند‬ ‫نتیجه‬ ‫محققین‬ ‫پس‬ .‫دارد‬ ‫آپاچی‬ ‫تشکیالت‬ .‫‌گیرند‬ ‫ی‬‫م‬ ‫بکار‬ ‫مولد‬ ‫‌های‬ ‫ی‬‫توانای‬ ‫سنجش‬ ‫برای‬
  • 15. ‫‌ها‬ ‫ه‬‫داد‬ ‫پایگاه‬ ،)»‫«پایگاه‬ ،‫خالصه‬ ‫‌طور‬ ‫ه‬‫(ب‬ ‫اطالعاتی‬ ‫بانک‬ ، ‫داِدگان‬ ‫یا‬ ‫ِدیتاِبیس‬ :‫انگلیسی‬ ‫(به‬ Database ‫با‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫از‬ ‫‌ای‬ ‫ه‬‫مجموع‬ ‫به‬ ) .‫‌شود‬ ‫ی‬‫م‬ ‫گفته‬ ‫‌مند‬ ‫ن‬‫ساما‬ ‫و‬ ‫منظم‬ ‫ساختار‬ ‫اجمالی‬ ‫بررسی‬ ‫و‬ ‫اصطالحات‬ ‫از‬ ‫معموًال‬ ‫اطالعات‬ ‫این‬ ‫به‬ ‫دسترسی‬ ‫که‬ ‫است‬ ‫سازمان‬ ‫یا‬ ‫ساختار‬ ‫و‬ ‫مرتبط‬ ‫‌های‬ ‫ه‬‫داد‬ ‫از‬ ‫‌ای‬ ‫ه‬‫مجموع‬ ‫به‬ ‫اشاره‬ »‫داده‬ ‫«پایگاه‬ ،‫دیگر‬ ‫بعبارت‬ ( »‫داده‬ ‫پایگاه‬ ‫مدیریت‬ ‫«سیستم‬ ‫طریق‬ DBMS ‫تا‬ ‫‌دهد‬ ‫ی‬‫م‬ ‫اجازه‬ ‫که‬ ‫است‬ ‫کامپیوتری‬ ‫‌افزارهای‬ ‫م‬‫نر‬ ‫از‬ ‫یکپارچه‬ ‫مجموعه‬ ‫یک‬ ‫از‬ ‫متشکل‬ ) . .‫‌کند‬ ‫ی‬‫م‬ ‫فراهم‬ ‫را‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫موجود‬ ‫اطالعات‬ ‫تمام‬ ‫به‬ ‫دسترسی‬ ‫و‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫پایگاه‬ ‫چند‬ ‫یا‬ ‫یک‬ ‫با‬ ‫کردن‬ ‫برقرار‬ ‫ارتباط‬ ‫برای‬ ‫کاربران‬ ‫به‬ ‫را‬ ‫آن‬ ‫‌توان‬ ‫ی‬‫م‬ ‫که‬ ‫دهد‬ ‫انجام‬ ‫را‬ ‫خود‬ ‫‌های‬ ‫ه‬‫داد‬ ‫و‬ ‫داده‬ ‫پایگاه‬ ‫یک‬ ‫مدیریت‬ ‫که‬ ‫‌دهد‬ ‫ی‬‫م‬ ‫اجازه‬ ‫مختلف‬ ‫توابع‬ ‫به‬ ‫موجود‬ ‫اس‬ .‫اس‬.‫ام‬.‫بی‬.‫دی‬ :‫کرد‬ ‫‌بندی‬ ‫ه‬‫طبق‬ ‫اصلی‬ ‫گروه‬ ‫چهار‬ 1 . ‫‌ها‬ ‫ه‬‫داد‬ ‫تعریف‬ .‫‌کنیم‬ ‫ی‬‫م‬ ‫تعریف‬ ‫آن‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫را‬ ‫داده‬ ‫سازمان‬ ‫که‬ ‫تعاریف‬ ‫از‬ ‫حذف‬ ‫و‬ ‫اصالح‬ ،‫ایجاد‬ - 2 . ‫روزرسانی‬ ‫به‬ .‫واقعی‬ ‫‌های‬ ‫ه‬‫داد‬ ‫حذف‬ ‫و‬ ‫اصالح‬ ،‫درج‬ - 3 . ‫اطالعات‬ ‫ارائه‬ .‫دیگر‬ ‫کاربردی‬ ‫‌های‬ ‫ه‬‫برنام‬ ‫توسط‬ ‫بیشتر‬ ‫پردازش‬ ‫برای‬ ‫یا‬ ‫استفاده‬ ‫قابل‬ ‫مستقیم‬ ‫‌طور‬ ‫ه‬‫ب‬ ‫فرم‬ ‫یک‬ ‫در‬ 4 . ‫اداره‬ ‫کنترل‬ ‫با‬ ‫فروش‬ ‫و‬ ‫خرید‬ ،‫‌ها‬ ‫ه‬‫داد‬ ‫تمامیت‬ ‫حفظ‬ ،‫عملکرد‬ ‫بر‬ ‫نظارت‬ ،‫‌ها‬ ‫ه‬‫داد‬ ‫امنیت‬ ‫اجرای‬ ،‫کاربران‬ ‫بر‬ ‫نظارت‬ ‫و‬ ‫نام‬ ‫ثبت‬ - ‫همزمانی‬
  • 16. ‫داده‬ ‫پایگاه‬ ‫تاریخچه‬ ‫داده‬ ‫پایگاه‬ ‫مفهوم‬ ‫ده‬ ‫از‬ ‫داده‬ ‫پایگاه‬ ‫مفهوم‬ ‫ٔه‬ ۱۹۶۰ .‫‌است‬ ‫ه‬‫شد‬ ‫ایجاد‬ ‫اطالعاتی‬ ‫‌های‬ ‫م‬‫سیست‬ ‫نگهداشت‬ ‫و‬ ،‫ساخت‬ ،‫طراحی‬ ‫در‬ ‫فزاینده‬ ‫مشکالت‬ ‫کاهش‬ ‫برای‬ .‫‌است‬ ‫ه‬‫کرد‬ ‫رشد‬ ‫‌کند‬ ‫ی‬‫م‬ ‫ممکن‬ ‫را‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫پایگاه‬ ‫به‬ ‫کارا‬ ‫و‬ ‫مؤثر‬ ‫دستکاری‬ ‫که‬ ‫داده‬ ‫پایگاه‬ ‫مدیریت‬ ‫‌های‬ ‫م‬‫سیست‬ ‫مفهوم‬ ‫همراه‬ ‫به‬ ‫مفهوم‬ ‫این‬ ‫ژوئن‬ ‫به‬ ‫داده‬ ‫پایگاه‬ ‫اصطالح‬ ‫کاربردهای‬ ‫اولین‬ ۱۹۶۳ ‫شرکت‬ ‫که‬ ‫زمانی‬ ‫یعنی‬ ،‫‌گردد‬ ‫ی‬‫بازم‬ System Development Corporation .‫گرفت‬ ‫عهده‬ ‫بر‬ ‫را‬ »‫مرکزی‬ ‫‌ای‬ ‫ه‬‫داد‬ ‫پایگاه‬ ‫یک‬ ‫محاسباتی‬ ‫مدیریت‬ ‫و‬ ‫«توسعه‬ ‫نام‬ ‫به‬ ‫طرح‬ ‫یک‬ ‫اجرایی‬ ‫مسئولیت‬ ‫دهه‬ ‫اوایل‬ ‫در‬ ‫واحد‬ ‫واژه‬ ‫یک‬ ‫عنوان‬ ‫به‬ ‫داده‬ ‫پایگاه‬ ۷۰ ‫دهه‬ ‫اواخر‬ ‫در‬ ‫و‬ ‫اروپا‬ ‫در‬ ۷۰ ‫(بانک‬ .‫رفت‬ ‫کار‬ ‫به‬ ‫آمریکایی‬ ‫معتبر‬ ‫‌های‬ ‫ه‬‫نام‬ ‫خبر‬ ‫در‬ ‫سال‬ ‫اوایل‬ ‫در‬ ‫یا‬ ‫‌ای‬ ‫ه‬‫داد‬ ۱۹۶۶ )‫رفت‬ ‫کار‬ ‫به‬ ‫پست‬ ‫واشینگتن‬ ‫روزنامه‬ ‫در‬ ‫دهه‬ ‫در‬ ‫داده‬ ‫پایگاه‬ ‫مدیریت‬ ‫سیستم‬ ‫اولین‬ ۶۰ ‫شاخه‬ ‫این‬ ‫پیشگامان‬ ‫از‬ .‫یافت‬ ‫گسترش‬ ‫بکمن‬ ‫چارلز‬ ‫نشان‬ ‫را‬ ‫این‬ ‫بکمن‬ ‫مقاالت‬ .‫‌باشد‬ ‫ی‬‫م‬ ‫پایه‬ ‫بر‬ ‫داده‬ ‫پردازش‬ ‫‌ها‬ ‫ن‬‫زما‬ ‫آن‬ ‫در‬ .‫‌کند‬ ‫ی‬‫م‬ ‫مهیا‬ ‫را‬ ‫‌سازی‬ ‫ه‬‫ذخیر‬ ‫وسایل‬ ‫به‬ ‫دسترسی‬ ‫برای‬ ‫مؤثرتری‬ ‫بسیار‬ ‫کاربرد‬ ‫او‬ ‫فرضیات‬ ‫که‬ ‫داد‬ .‫شد‬ ‫ایجاد‬ ‫‌ها‬ ‫ن‬‫زما‬ ‫آن‬ ‫در‬ ‫‌ای‬ ‫ه‬‫داد‬ ‫مدل‬ ‫نوع‬ ‫دو‬ .‫‌کند‬ ‫ی‬‫م‬ ‫مهیا‬ ‫را‬ ‫اطالعات‬ ‫سری‬ ‫پردازش‬ ‫که‬ ‫بود‬ ‫مغناطیسی‬ ‫نوارهای‬ ‫و‬ ‫منگنه‬ ‫‌های‬ ‫ت‬‫کار‬
  • 17. CODASYL ‫توسط‬ ‫که‬ ‫مراتبی‬ ‫سلسله‬ ‫مدل‬ ‫و‬ ‫داشت‬ ‫بکمن‬ ‫نظریات‬ ‫در‬ ‫ریشه‬ ‫شدکه‬ ‫‌ای‬ ‫ه‬‫شبک‬ ‫مدل‬ ‫توسعه‬ ‫موجب‬ North American Rockwell ‫شرکت‬ ‫آن‬ ‫از‬ ‫اقتباس‬ ‫با‬ ‫بعدًا‬ ‫و‬ ‫شد‬ ‫ایجاد‬ IBM ‫محصول‬ IMS .‫نمود‬ ‫تولید‬ ‫را‬ ‫توسط‬ ‫‌ای‬ ‫ه‬‫رابط‬ ‫مدل‬ . . E F Codd ‫سال‬ ‫در‬ ۱۹۷۰ ‫طوالنی‬ ‫نسبتًا‬ ‫مدتی‬ ‫برای‬ .‫‌داد‬ ‫ی‬‫م‬ ‫قرار‬ ‫انتقاد‬ ‫مورد‬ ‫را‬ ‫موجود‬ ‫‌های‬ ‫ل‬‫مد‬ ‫او‬ .‫شد‬ ‫ارائه‬ ‫کامپیوترها‬ ‫میکرو‬ ‫برای‬ ‫موفق‬ ‫محصول‬ ‫اولین‬ .‫بود‬ ‫تأیید‬ ‫مورد‬ ‫علمی‬ ‫مجامع‬ ‫در‬ ‫مدل‬ ‫این‬ dBASE ‫‌های‬ ‫ل‬‫‌عام‬ ‫م‬‫سیست‬ ‫برای‬ ‫بودکه‬ / CP M ‫و‬ - / - PC DOS MS DOS ‫سال‬ ‫جریان‬ ‫در‬ .‫شد‬ ‫ساخته‬ ۱۹۸۰ ( ‫پایگاهی‬ ‫‌های‬ ‫ن‬‫ماشی‬ ‫و‬ ‫شده‬ ‫توزیع‬ ‫مدل‬ ‫‌های‬ ‫ه‬‫پایگا‬ ‫روی‬ ‫بر‬ ‫پژوهش‬ database machines ‫سال‬ ‫در‬ .‫گذاشت‬ ‫بازار‬ ‫بر‬ ‫کمی‬ ‫تأثیر‬ ‫اما‬ ،‫شد‬ ‫متمرکز‬ ) ۱۹۹۰ .‫شد‬ ‫جلب‬ ‫گرا‬ ‫شیء‬ ‫مدل‬ ‫طرف‬ ‫به‬ ‫توجهات‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫مهندسی‬ ‫(شامل‬ ‫داده‬ ‫مهندسی‬ ،‫خاص‬ ‫‌های‬ ‫ه‬‫داد‬ ‫پایگاه‬ ‫روی‬ ‫بر‬ ‫‌سادگی‬ ‫ه‬‫ب‬ ‫و‬ ‫بود‬ ‫الزم‬ ‫مرکب‬ ‫‌های‬ ‫ه‬‫داد‬ ‫کنترل‬ ‫جهت‬ ‫مدل‬ ‫این‬ .‫‌کرد‬ ‫ی‬‫م‬ ‫کار‬ ‫‌ای‬ ‫ه‬‫رسان‬ ‫چند‬ ‫‌های‬ ‫ه‬‫داد‬ ‫و‬ )‫منابع‬ ‫سال‬ ‫در‬ ۲۰۰۰ ( ‫‌ال‬ ‫م‬‫‌ا‬ ‫س‬‫اک‬ ‫پایگاه‬ ‫و‬ ‫داد‬ ‫رخ‬ ‫‌ای‬ ‫ه‬‫تاز‬ ‫نوآوری‬ XML ‫و‬ ‫مستندات‬ ‫بین‬ ‫تفاوت‬ ‫بردن‬ ‫بین‬ ‫از‬ ‫مدل‬ ‫این‬ ‫هدف‬ .‫آمد‬ ‫وجود‬ ‫به‬ ) .‫گیرند‬ ‫قرار‬ ‫هم‬ ‫کنار‬ ‫در‬ ‫نه‬ ‫یا‬ ‫باشند‬ ‫یافته‬ ‫ساخت‬ ‫چه‬ ‫اطالعاتی‬ ‫منابع‬ ‫که‬ ‫‌کند‬ ‫ی‬‫م‬ ‫کمک‬ ‫و‬ ‫است‬ ‫‌ها‬ ‫ه‬‫داد‬
  • 18. ‫اس‬ .‫ام‬.‫بی‬.‫دی‬ ‫توضیح‬ DBMS ‫برخی‬ .‫دارد‬ ‫نیاز‬ ‫وتوسعه‬ ‫تالش‬ ‫سال‬ ‫و‬ ‫نفر‬ ‫هزاران‬ ‫به‬ ‫معمول‬ ‫‌طور‬ ‫ه‬‫ب‬ ‫آن‬ ‫توسعه‬ ‫و‬ ‫‌است‬ ‫ه‬‫یافت‬ ‫تکامل‬ ‫پیچیده‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫سیستم‬ ‫یک‬ ‫مانند‬ ‫اس‬ .‫ام‬.‫بی‬.‫دی‬ ‫از‬ Adabas ‫و‬ ‫اوراکل‬ ، 2 DB . ‫صرفه‬ ‫به‬ ‫مقرون‬ ‫‌تواند‬ ‫ی‬‫م‬ ‫توسعه‬ ‫هزینه‬ ‫که‬ ‫است‬ ‫واقعیت‬ ‫این‬ ،‫حال‬ ‫این‬ ‫با‬ .‫ست‬ ‫کاربردی‬ ‫‌های‬ ‫ه‬‫برنام‬ ‫نیازهای‬ ‫رفع‬ ‫اس‬ .‫ام‬.‫بی‬.‫دی‬ ‫هدف‬ ،‫حال‬ ‫این‬ ‫با‬ .‫باشد‬ ‫تر‬ DBMS ‫موارد‬ ‫برخی‬ ‫در‬ :‫دارد‬ ‫‌ای‬ ‫ه‬‫بهین‬ ‫حل‬ ‫راه‬ ‫همیشه‬ DBMS .‫کند‬ ‫معرفی‬ ‫را‬ ‫غیرضروری‬ ‫سربار‬ ‫است‬ ‫ممکن‬ ‫‌های‬ ‫م‬‫سیست‬ :‫است‬ ‫ایمیل‬ ‫سیستم‬ ‫رایج‬ ‫مثال‬ ‫یک‬ .‫دارد‬ ‫وجود‬ ‫خاص‬ ‫‌های‬ ‫ه‬‫داد‬ ‫پایگاه‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫که‬ ‫‌های‬ ‫م‬‫سیست‬ ‫از‬ ‫بسیاری‬ ‫‌های‬ ‫ه‬‫نمون‬ ‫قابلیت‬ ‫از‬ ‫توجهی‬ ‫قابل‬ ‫بخش‬ ‫نیازی‬ ‫و‬ ،‫ایمیل‬ ‫‌های‬ ‫م‬‫پیا‬ ‫مدیریت‬ ‫‌سازی‬ ‫ه‬‫بهین‬ ‫برای‬ ‫‌است‬ ‫ه‬‫شد‬ ‫طراحی‬ ‫ایمیل‬ DBMS ‫از‬ ‫بسیاری‬ .‫است‬ ‫رابط‬ ‫دادن‬ ‫قرار‬ ‫بدون‬ ،‫نهایی‬ ‫کاربران‬ ‫طرف‬ ‫از‬ ‫داده‬ ‫پایگاه‬ ‫به‬ ‫دسترسی‬ ‫برای‬ ‫است‬ ‫‌ای‬ ‫ه‬‫برنام‬ ‫اطالعاتی‬ ‫‌های‬ ‫ک‬‫بان‬ DBMS ‫‌طور‬ ‫ه‬‫ب‬ ‫برنامه‬ ‫‌نویسی‬ ‫ه‬‫برنام‬ ‫رابط‬ ‫یک‬ ‫طریق‬ ‫از‬ ‫زیاد‬ ‫احتمال‬ ‫به‬ ‫یا‬ ،‫مستقیم‬ ‫‌طور‬ ‫ه‬‫ب‬ ‫سیم‬ ‫پروتکل‬ ‫یک‬ ‫است‬ ‫ممکن‬ ‫‌افزار‬ ‫م‬‫نر‬ ‫نویسان‬ ‫برنامه‬ .‫مستقیم‬ ‫با‬ ‫داده‬ ‫پایگاه‬ ‫مدیران‬ ‫و‬ ‫داده‬ ‫پایگاه‬ ‫طراحان‬ .‫کنند‬ ‫استفاده‬ DBMS ‫حفظ‬ ‫و‬ ‫ساخت‬ ‫برای‬ ‫شده‬ ‫داده‬ ‫اختصاص‬ ‫‌های‬ ‫ط‬‫راب‬ ‫طریق‬ ‫از‬ ‫رابط‬ ‫و‬ ‫اس‬ .‫ام‬.‫بی‬.‫دی‬ ‫عملکرد‬ ‫چگونگی‬ ‫مورد‬ ‫در‬ ‫درک‬ ‫و‬ ‫بیشتر‬ ‫دانش‬ ‫از‬ ‫برخی‬ ‫به‬ ‫نیاز‬ ‫نتیجه‬ ‫در‬ ‫و‬ ،‫داده‬ ‫‌های‬ ‫ه‬‫پایگا‬ ‫کاربردی‬ ‫‌های‬ ‫ه‬‫برنام‬ ' .‫‌کنند‬ ‫ی‬‫م‬ ‫تعامل‬ ‫اس‬ .‫ام‬.‫بی‬.‫دی‬ ‫تنظیم‬ ‫پارامترهای‬ ‫و‬ ‫خارجی‬
  • 19. ‫داده‬ ‫پایگاه‬ ‫‌های‬ ‫ل‬‫مد‬ ‫هر‬ ‫برای‬ .‫دارد‬ ‫وجود‬ ‫‌ای‬ ‫ه‬‫داد‬ ‫‌های‬ ‫ل‬‫مد‬ ‫برای‬ ‫مختلفی‬ ‫شگردهای‬ .‫‌کند‬ ‫ی‬‫م‬ ‫مشخص‬ ‫منطقی‬ ‫سطح‬ ‫در‬ ‫را‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫پایگاه‬ ‫کاربران‬ ‫کاری‬ ‫الگوی‬ ‫مهیا‬ ‫کاربران‬ ‫برای‬ ‫فیزیکی‬ ‫انطباق‬ ‫در‬ ‫مختلفی‬ ‫کنترل‬ ‫سطوح‬ ‫و‬ ‫است‬ ‫‌سازی‬ ‫ه‬‫پیاد‬ ‫قابل‬ ‫مختلفی‬ ‫فیزیکی‬ ‫اجراهای‬ ‫منطقی‬ ‫‌های‬ ‫ل‬‫مد‬ ‫از‬ ‫یک‬ ‫مدیریت‬ ‫سامانه‬ ‫کار‬ ‫اساس‬ ‫‌ای‬ ‫ه‬‫رابط‬ ‫مدل‬ .‫‌ای‬ ‫ه‬‫رابط‬ ‫مدل‬ ‫و‬ ‫‌ای‬ ‫ه‬‫شبک‬ ‫مدل‬ ،‫مراتبی‬ ‫سلسله‬ ‫مدل‬ ،‫تخت‬ ‫مدل‬ ‫از‬ ‫عبارتند‬ ‫‌ها‬ ‫ل‬‫مد‬ ‫این‬ .‫‌کند‬ ‫ی‬‫م‬ .‫است‬ ‫امروزی‬ ‫‌های‬ ‫ه‬‫داد‬ ‫پایگاه‬
  • 20. ‫‌سازی‬ ‫ل‬‫مد‬ ‫و‬ ‫طراحی‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫اطالعات‬ ‫ساختار‬ ‫‌کننده‬ ‫س‬‫منعک‬ ‫که‬ ‫مفهومی‬ ‫داده‬ ‫مدل‬ ‫یک‬ ‫تولید‬ ‫برای‬ ‫که‬ ‫است‬ ‫این‬ ‫داده‬ ‫پایگاه‬ ‫طراح‬ ‫یک‬ ‫وظیفه‬ ‫اولین‬ ‫روش‬ ‫از‬ ‫دیگر‬ ‫یکی‬ .‫طراحی‬ ‫ابزار‬ ‫کمک‬ ‫با‬ ‫اغلب‬ ،‫ارتباط‬-‫موجودیت‬ ‫مدل‬ ‫یک‬ ‫توسعه‬ ‫منظور‬ ‫به‬ .‫کند‬ ‫پیشنهاد‬ ‫طرحی‬ ‫‌شود‬ ‫ی‬‫م‬ ‫برگزار‬ ‫به‬ :‫شود‬ ‫خارج‬ ‫جهان‬ ‫از‬ ‫ممکن‬ ‫مدل‬ ‫دارد‬ ‫بستگی‬ ‫‌کننده‬ ‫س‬‫منعک‬ ‫حالت‬ ‫دقت‬ ‫به‬ ‫موفق‬ ‫داده‬ ‫مدل‬ .‫است‬ ‫یکپارچه‬ ‫‌سازی‬ ‫ل‬‫مد‬ ‫زبان‬ ‫محبوب‬ .‫شود‬ ‫ذخیره‬ ‫اطالعات‬ ‫یک‬ ‫از‬ ‫بیش‬ ‫که‬ ‫‌دهد‬ ‫ی‬‫نم‬ ‫اجازه‬ ‫حقیقت‬ ‫در‬ ،‫باشد‬ ‫داشته‬ ‫تلفن‬ ‫شماره‬ ‫یک‬ ‫از‬ ‫بیش‬ ‫‌توانند‬ ‫ی‬‫م‬ ‫مردم‬ ‫اگر‬ ،‫مثال‬ ‫عنوان‬ .‫دارد‬ ‫کاربران‬ ‫کاربرد‬ ‫دامنه‬ ‫از‬ ‫خوبی‬ ‫درک‬ ‫به‬ ‫نیاز‬ ‫خوب‬ ‫مفهومی‬ ‫داده‬ ‫مدل‬ ‫طراحی‬ ،‫‌باشد‬ ‫ی‬‫م‬ ‫دارد‬ ‫عالقه‬ ‫آن‬ ‫به‬ ‫سازمان‬ ‫یک‬ ‫که‬ ‫چیزهایی‬ ‫مورد‬ ‫در‬ ‫عمیق‬ ‫‌های‬ ‫ل‬‫سوا‬ ‫پرسیدن‬ ‫شامل‬ ‫معموًال‬ ،‫‌رسد‬ ‫ی‬‫م‬ ‫فروش‬ ‫به‬ ‫‌بندی‬ ‫ه‬‫بست‬ ‫از‬ ‫مختلف‬ ‫فرم‬ ‫دو‬ ‫با‬ ‫محصول‬ ‫یک‬ ‫اگر‬ ‫یا‬ ، ‫باشد؟‬ ‫کاال‬ ‫‌کننده‬ ‫ه‬‫عرض‬ ‫یک‬ ‫‌تواند‬ ‫ی‬‫م‬ ‫مشتری‬ ‫یک‬ ‫مانند‬ " " " ‫و‬ )‫پرواز‬ ‫بخش‬ ،‫پرواز‬ ،‫محصوالت‬ ،‫(مشتریان‬ ‫اشخاص‬ ‫برای‬ ‫اصطالحات‬ ‫تعاریف‬ ‫پرسش‬ ‫؟‬ ‫است‬ ‫آن‬ ‫مختلف‬ ‫محصوالت‬ ‫یا‬ ‫محصول‬ ‫همان‬ " ‫کسب‬ ‫فرایندهای‬ ‫از‬ ‫ورودی‬ ‫شامل‬ ‫اوقات‬ ‫گاهی‬ ‫مفهومی‬ ‫داده‬ ‫مدل‬ ‫تولید‬ .‫‌گیرد‬ ‫ی‬‫م‬ ‫قرار‬ ‫استفاده‬ ‫مورد‬ ‫شده‬ ‫ایجاد‬ ‫‌های‬ ‫ی‬‫ویژگ‬ ‫و‬ ‫‌ها‬ ‫ن‬‫آ‬ ‫روابط‬ ‫عنوان‬ ‫به‬ .‫کند‬ ‫کمک‬ ‫نیاز‬ ‫مورد‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫اطالعاتی‬ ‫ایجاد‬ ‫به‬ ‫‌تواند‬ ‫ی‬‫م‬ ‫این‬ .‫است‬ ‫سازمان‬ ‫در‬ ‫کار‬ ‫گردش‬ ‫تحلیل‬ ‫و‬ ‫تجزیه‬ ‫یا‬ ،‫کار‬ ‫و‬ ‫تولید‬ ‫از‬ ‫پس‬ .‫کند‬ ‫کمک‬ ‫فعلی‬ ‫‌های‬ ‫ه‬‫داد‬ ‫همچنین‬ ‫و‬ ‫تاریخی‬ ‫‌های‬ ‫ه‬‫داد‬ ‫نگهداری‬ ‫برای‬ ‫نیاز‬ ‫مورد‬ ‫داده‬ ‫پایگاه‬ ‫‌گیری‬ ‫م‬‫تصمی‬ ‫به‬ ‫‌تواند‬ ‫ی‬‫م‬ ،‫مثال‬ .‫هستند‬ ‫خوشحال‬ ‫کاربران‬ ، ‫مفهومی‬ ‫داده‬ ‫مدل‬ ‫یک‬
  • 25. MariaDB MaxScale ‫و‬ Spider Engine ‫در‬ ‫قدرتمند‬ ‫ویژگی‬ ‫دو‬ ‫این‬ ‫پردازیم‬ ‫می‬ MariaDB ‫به‬ ‫‌توانند‬ ‫ی‬‫م‬ ‫که‬ ‫هستند‬ ‫از‬ ‫یک‬ ‫هر‬ ‫توضیح‬ ‫به‬ ‫ادامه‬ ‫در‬ .‫ببخشند‬ ‫بهبود‬ ‫را‬ ‫خود‬ ‫‌های‬ ‫ه‬‫داد‬ ‫پایگاه‬ ‫‌پذیری‬ ‫س‬‫دستر‬ ‫و‬ ‫‌پذیری‬ ‫س‬‫مقیا‬ ،‫عملکرد‬ ‫تا‬ ‫کنند‬ ‫کمک‬ ‫‌ها‬ ‫ن‬‫سازما‬ .‫‌پردازم‬ ‫ی‬‫م‬ ‫‌ها‬ ‫ن‬‫سازما‬ ‫برای‬ ‫‌ها‬ ‫ن‬‫آ‬ ‫منافع‬ ‫و‬ ‫ویژگی‬ ‫دو‬ ‫این‬ ‫ا‬ MaxScale ‫داده‬ ‫‌های‬ ‫ه‬‫پایگا‬ ‫برای‬ ‫پیشرفته‬ ‫و‬ ‫‌پذیر‬ ‫س‬‫مقیا‬ ‫پراکسی‬ ‫یک‬ MariaDB ‫و‬ MySQL ‫بهبود‬ ‫منظور‬ ‫به‬ ‫که‬ ‫است‬ ‫مهم‬ ‫‌های‬ ‫ی‬‫ویژگ‬ ‫و‬ ‫امکانات‬ ‫از‬ ‫برخی‬ .‫است‬ ‫شده‬ ‫طراحی‬ ‫عملکرد‬ ‫و‬ ‫امنیت‬ ،‫‌پذیری‬ ‫س‬‫دستر‬ ‫افزایش‬ ‫و‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫پایگاه‬ ‫مدیریت‬ MaxScale :‫از‬ ‫عبارتند‬ - Load Balancing :)‫بار‬ ‫(توزیع‬ ‫ا‬ MaxScale ‫کاری‬ ‫بار‬ ‫متوازن‬ ‫توزیع‬ ‫و‬ ‫عملکرد‬ ‫افزایش‬ ‫باعث‬ ‫که‬ ،‫کند‬ ‫تقسیم‬ ‫داده‬ ‫پایگاه‬ ‫سرور‬ ‫چندین‬ ‫بین‬ ‫را‬ ‫‌ها‬ ‫ت‬‫درخواس‬ ‫‌تواند‬ ‫ی‬‫م‬ .‫‌شود‬ ‫ی‬‫م‬ - Failover : ،‫شود‬ ‫خراب‬ ‫سرورها‬ ‫از‬ ‫یکی‬ ‫که‬ ‫صورتی‬ ‫در‬ MaxScale ‫تا‬ ‫‌کند‬ ‫ی‬‫م‬ ‫منتقل‬ ‫دیگر‬ ‫سرورهای‬ ‫به‬ ‫را‬ ‫ترافیک‬ ‫خودکار‬ ‫صورت‬ ‫به‬ .‫شود‬ ‫تضمین‬ ‫داده‬ ‫پایگاه‬ ‫‌پذیری‬ ‫س‬‫دستر‬ - Query Routing :)‫‌ها‬ ‫ت‬‫درخواس‬ ‫(مسیریابی‬
  • 26. .‫کند‬ ‫مسیریابی‬ ‫مناسب‬ ‫سرورهای‬ ‫به‬ ‫را‬ ‫مختلف‬ ‫‌های‬ ‫ت‬‫درخواس‬ ،‫خاص‬ ‫نیازهای‬ ‫اساس‬ ‫بر‬ ‫‌تواند‬ ‫ی‬‫م‬ - Security :)‫(امنیت‬ ‫ا‬ MaxScale .‫دهد‬ ‫بهبود‬ ‫رمزنگاری‬ ‫و‬ ‫دسترسی‬ ‫کنترل‬ ،‫هویت‬ ‫احراز‬ ‫مانند‬ ‫‌هایی‬ ‫ی‬‫ویژگ‬ ‫طریق‬ ‫از‬ ‫را‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫امنیت‬ ‫‌تواند‬ ‫ی‬‫م‬ : ‫ببریم‬ ‫بهره‬ ‫مفهوم‬ ‫این‬ ‫از‬ ‫باید‬ ‫چرا‬ ‫اما‬ ‫و‬ • :‫اطمینان‬ ‫قابلیت‬ ‫و‬ ‫‌پذیری‬ ‫س‬‫دستر‬ ‫افزایش‬ ‫قابلیت‬ ‫از‬ ‫استفاده‬ ‫با‬ failover ‫و‬ load balancing ‫حاصل‬ ‫اطمینان‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫پایگاه‬ ‫مداوم‬ ‫‌پذیری‬ ‫س‬‫دستر‬ ‫از‬ ‫‌توانند‬ ‫ی‬‫م‬ ‫‌ها‬ ‫ن‬‫سازما‬ ، .‫کنند‬ • :‫عملکرد‬ ‫بهبود‬ .‫شود‬ ‫سیستم‬ ‫کلی‬ ‫عملکرد‬ ‫بهبود‬ ‫باعث‬ ‫‌تواند‬ ‫ی‬‫م‬ ‫‌ها‬ ‫ت‬‫درخواس‬ ‫هوشمند‬ ‫مسیریابی‬ ‫و‬ ‫سرور‬ ‫چندین‬ ‫بین‬ ‫کاری‬ ‫بار‬ ‫توزیع‬ • :‫‌تر‬ ‫ن‬‫آسا‬ ‫مدیریت‬
  • 27. ‫ا‬ max scale ‫بزرگ‬ ‫‌های‬ ‫ن‬‫سازما‬ ‫در‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫پایگاه‬ ‫مدیریت‬ ‫پیچیدگی‬ ‫کاهش‬ ‫باعث‬ ‫که‬ ‫‌کند‬ ‫ی‬‫م‬ ‫فراهم‬ ‫را‬ ‫‌ای‬ ‫ه‬‫پیشرفت‬ ‫مدیریتی‬ ‫امکانات‬ .‫‌شود‬ ‫ی‬‫م‬ ‫ا‬ Spider Engine ‫؟‬ ‫کنیم‬ ‫استفاده‬ ‫ویژگی‬ ‫این‬ ‫از‬ ‫باید‬ ‫چرا‬ ‫و‬ ‫چیست‬ ‫ا‬ Spider Engine ( ‫‌سازی‬ ‫ه‬‫ذخیر‬ ‫موتور‬ ‫یک‬ Storage Engine ‫در‬ ‫توزیعی‬ ) MariaDB ‫بین‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫تقسیم‬ ‫امکان‬ ‫که‬ ‫است‬ ‫را‬ ‫زیر‬ ‫امکانات‬ ‫و‬ ‫است‬ ‫شده‬ ‫طراحی‬ ‫‌شده‬ ‫ع‬‫توزی‬ ‫داده‬ ‫‌های‬ ‫ه‬‫پایگا‬ ‫از‬ ‫پشتیبانی‬ ‫برای‬ ‫موتور‬ ‫این‬ .‫‌کند‬ ‫ی‬‫م‬ ‫فراهم‬ ‫را‬ ‫پارتیشن‬ ‫یا‬ ‫سرور‬ ‫چندین‬ :‫‌دهد‬ ‫ی‬‫م‬ ‫ارائه‬ - Sharding :)‫‌ها‬ ‫ه‬‫داد‬ ‫‌بندی‬ ‫ن‬‫(پارتیش‬ .‫‌شود‬ ‫ی‬‫م‬ ‫‌پذیری‬ ‫س‬‫مقیا‬ ‫افزایش‬ ‫و‬ ‫بار‬ ‫توزیع‬ ‫باعث‬ ‫که‬ ،‫‌کند‬ ‫ی‬‫م‬ ‫فراهم‬ ‫سرور‬ ‫چندین‬ ‫بین‬ ‫را‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫تقسیم‬ ‫امکان‬ - Distributed Transactions :)‫‌شده‬ ‫ع‬‫توزی‬ ‫‌های‬ ‫ش‬‫(تراکن‬ ‫از‬ ‫‌هایی‬ ‫ه‬‫داد‬ ‫شامل‬ ‫‌توانند‬ ‫ی‬‫م‬ ‫سیستم‬ ‫یک‬ ‫در‬ ‫شده‬ ‫انجام‬ ‫‌های‬ ‫ش‬‫تراکن‬ ‫که‬ ‫معنا‬ ‫این‬ ‫به‬ ،‫‌کند‬ ‫ی‬‫م‬ ‫پشتیبانی‬ ‫‌شده‬ ‫ع‬‫توزی‬ ‫‌های‬ ‫ش‬‫تراکن‬ ‫از‬ .‫باشند‬ ‫سرور‬ ‫چندین‬
  • 28. - Parallel Query Execution :)‫‌ها‬ ‫ی‬‫کوئر‬ ‫موازی‬ ‫(اجرای‬ .‫‌شود‬ ‫ی‬‫م‬ ‫پیچیده‬ ‫‌های‬ ‫ی‬‫کوئر‬ ‫به‬ ‫‌دهی‬ ‫خ‬‫پاس‬ ‫سرعت‬ ‫افزایش‬ ‫باعث‬ ‫که‬ ‫‌کند‬ ‫ی‬‫م‬ ‫فراهم‬ ‫را‬ ‫‌ها‬ ‫ت‬‫درخواس‬ ‫موازی‬ ‫اجرای‬ ‫قابلیت‬
  • 29. ‫چرا‬ ‫اما‬ ‫و‬ spider engine ‫؟‬ ‫نماییم‬ ‫استفاده‬ ‫آن‬ ‫از‬ ‫باید‬ ‫چرا‬ ‫و‬ :‫‌پذیری‬ ‫س‬‫مقیا‬ ‫افزایش‬ - ‫از‬ ‫استفاده‬ ‫با‬ Spider Engine ‫را‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫و‬ ‫کنند‬ ‫‌پذیر‬ ‫س‬‫مقیا‬ ‫افقی‬ ‫صورت‬ ‫به‬ ‫را‬ ‫خود‬ ‫‌های‬ ‫ه‬‫داد‬ ‫پایگاه‬ ‫سادگی‬ ‫به‬ ‫‌توانند‬ ‫ی‬‫م‬ ‫‌ها‬ ‫ن‬‫سازما‬ ، .‫کنند‬ ‫توزیع‬ ‫سرور‬ ‫چندین‬ ‫بین‬ ‫سیستم‬ ‫کلی‬ ‫عملکرد‬ ‫و‬ ‫داده‬ ‫کاهش‬ ‫را‬ ‫‌دهی‬ ‫خ‬‫پاس‬ ‫زمان‬ ‫‌تواند‬ ‫ی‬‫م‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫و‬ ‫‌ها‬ ‫ی‬‫کوئر‬ ‫موازی‬ ‫اجرای‬ :‫‌ها‬ ‫ی‬‫کوئر‬ ‫عملکرد‬ ‫بهبود‬ - .‫بخشد‬ ‫بهبود‬ ‫را‬ :‫بزرگ‬ ‫‌های‬ ‫ه‬‫داد‬ ‫مدیریت‬ - ‫امکانات‬ ‫از‬ ‫‌توانند‬ ‫ی‬‫م‬ ،‫‌کنند‬ ‫ی‬‫م‬ ‫کار‬ ‫داده‬ ‫باالی‬ ‫‌های‬ ‫م‬‫حج‬ ‫با‬ ‫که‬ ‫‌هایی‬ ‫ن‬‫سازما‬ Spider Engine ‫‌های‬ ‫ه‬‫داد‬ ‫کارآمدتر‬ ‫و‬ ‫بهتر‬ ‫مدیریت‬ ‫برای‬ .‫کنند‬ ‫استفاده‬ ‫خود‬ ‫از‬ ‫استفاده‬ ‫واقع‬ ‫در‬ MariaDB MaxScale ‫و‬ Spider Engine ‫را‬ ‫خود‬ ‫‌های‬ ‫ه‬‫داد‬ ‫پایگاه‬ ‫که‬ ‫‌دهد‬ ‫ی‬‫م‬ ‫را‬ ‫امکان‬ ‫این‬ ‫‌ها‬ ‫ن‬‫سازما‬ ‫به‬ ‫به‬ ‫نیاز‬ ‫که‬ ‫پرکاربرد‬ ‫و‬ ‫بزرگ‬ ‫‌های‬ ‫ن‬‫سازما‬ ‫برای‬ ‫ویژه‬ ‫به‬ ‫‌ها‬ ‫ی‬‫ویژگ‬ ‫این‬ .‫کنند‬ ‫مدیریت‬ ‫بهتر‬ ‫عملکرد‬ ‫با‬ ‫و‬ ‫‌تر‬ ‫ن‬‫ایم‬ ،‫‌پذیرتر‬ ‫س‬‫مقیا‬ ‫صورت‬ ‫به‬ .‫بود‬ ‫خواهند‬ ‫مفید‬ ‫بسیار‬ ،‫دارند‬ ‫داده‬ ‫از‬ ‫زیادی‬ ‫‌های‬ ‫م‬‫حج‬ ‫مدیریت‬
  • 30. ‫مباحث‬ ‫از‬ ‫جزوی‬ ‫کردیم‬ ‫اشاره‬ ‫که‬ ‫امکاناتی‬ ‫از‬ ‫بخشی‬ partitioning : ‫میپردازیم‬ ‫ساختار‬ ‫و‬ ‫تکنولوژی‬ ‫این‬ ‫بررسی‬ ‫به‬ ‫ادامه‬ ‫در‬ . ‫هست‬
  • 31. ( ‫داده‬ ‫پایگاه‬ ‫مدیریت‬ ‫سیستم‬ ‫با‬ ‫کسی‬ ‫هر‬ ‫امروزه‬ dbms . ‫است‬ ‫درگیر‬ ‫داده‬ ‫پایگاه‬ ‫مفاهیم‬ ‫و‬ ) ‫تا‬ ‫گرفته‬ ‫اداری‬ ‫اتوماسیون‬ ‫سیستم‬ ‫از‬ ... ‫و‬ ‫بیمارستان‬ ‫در‬ ‫حیاتی‬ ‫و‬ ‫مهم‬ ‫سیستم‬ ‫و‬ ‫وبالگ‬ ‫پس‬ ( . ‫است‬ ‫اهمیت‬ ‫حائز‬ ‫بسیار‬ ‫داده‬ ‫پایگاه‬ ‫سرعت‬ ‫و‬ ‫عملکرد‬ performance tuning ) ‫راهکارهایی‬ ‫چه‬ ‫است‬ ‫این‬ ‫سوال‬ ‫حال‬. ‫افزایش‬ ‫برای‬ pt . ‫پرداخت‬ ‫خواهیم‬ ‫پارتیشنینگ‬ ‫محضر‬ ‫از‬ ‫ساختار‬ ‫این‬ ‫بررسی‬ ‫به‬ ‫کلی‬ ‫بصورت‬ ‫اینجا‬ ‫در‬ . ‫باشیم‬ ‫می‬ ‫دارا‬ ‫را‬ . ‫نباشید‬ ‫آشنا‬ ‫کامل‬ ‫بصورت‬ ‫داده‬ ‫پایگاه‬ ‫مفاهیم‬ ‫با‬ ‫اگر‬ ‫حتی‬ . ‫میباشد‬ ‫مناسب‬ ‫افراد‬ ‫عموم‬ ‫برای‬ ‫جلسه‬ ‫و‬ ‫وبینار‬ ‫این‬ : ‫نکته‬ ‫؟‬ ‫معناست‬ ‫چه‬ ‫به‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫بندی‬ ‫پارتیشن‬ ‫حال‬ ‫ورژن‬ ‫از‬ ‫که‬ ‫است‬ ‫کاربردی‬ ‫ویژگی‬ ‫یک‬ ‫ویژگی‬ ‫این‬ 5.5 ‫بعد‬ ‫به‬ Mysql . ‫شد‬ ‫گنجانده‬ ،‫دارید‬ ‫می‬ ‫نگه‬ ‫را‬ ‫اشخاص‬ ‫فهرست‬ ‫جدولی‬ ‫در‬ ‫اگر‬ ‫مثال‬ ‫عنوان‬ ‫به‬ .‫است‬ ‫‌تر‬ ‫ل‬‫مستق‬ ‫‌های‬ ‫ت‬‫قسم‬ ‫به‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫تقسیم‬ ،‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫از‬ ‫منظور‬ ‫در‬ ‫و‬ ‫کارایی‬ ‫افزایش‬ ‫سبب‬ ‫کار‬ ‫این‬ .‫نمایید‬ ‫‌بندی‬ ‫ه‬‫دست‬ ‫جدول‬ ‫همان‬ ‫در‬ ...‫و‬ ‫تولد‬ ‫سال‬ ،‫جنسیت‬ ‫همچون‬ ‫معیارهایی‬ ‫با‬ ‫را‬ ‫‌ها‬ ‫ن‬‫آ‬ ‫توانید‬ ‫می‬ .‫شود‬ ‫می‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫بیشتر‬ ‫پذیری‬ ‫دسترس‬ ‫نتیجه‬ ‫داریم؟‬ ‫نیاز‬ ‫داده‬ ‫پایگاه‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫به‬ ‫چرا‬ ‫و‬ ‫زمانی‬ ‫چه‬ :‫‌انجامد‬ ‫ی‬‫م‬ ‫بازدهی‬ ‫محسوس‬ ‫افزایش‬ ‫به‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫از‬ ‫استفاده‬ ‫زیر‬ ‫موارد‬ ‫در‬ ‫زیاد‬ ‫خیلی‬ ‫‌های‬ ‫ه‬‫داد‬ ‫حافظه‬ ‫کمبود‬ RAM ‫های‬ ‫داده‬ HISTORICAL ‫ها‬ ‫داده‬ ‫حجم‬ ‫افزایش‬ ‫مشخص‬ ‫‌های‬ ‫ی‬‫‌بند‬ ‫ه‬‫دست‬ ‫با‬ ‫‌هایی‬ ‫ه‬‫داد‬
  • 32. ‫؟‬ ‫معناست‬ ‫چه‬ ‫به‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫بندی‬ ‫پارتیشن‬ ‫ورژن‬ ‫از‬ ‫که‬ ‫است‬ ‫کاربردی‬ ‫ویژگی‬ ‫یک‬ ‫ویژگی‬ ‫این‬ 5.5 ‫بعد‬ ‫به‬ Mysql . ‫شد‬ ‫گنجانده‬ ،‫دارید‬ ‫می‬ ‫نگه‬ ‫را‬ ‫اشخاص‬ ‫فهرست‬ ‫جدولی‬ ‫در‬ ‫اگر‬ ‫مثال‬ ‫عنوان‬ ‫به‬ .‫است‬ ‫‌تر‬ ‫ل‬‫مستق‬ ‫‌های‬ ‫ت‬‫قسم‬ ‫به‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫تقسیم‬ ،‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫از‬ ‫منظور‬ ‫در‬ ‫و‬ ‫کارایی‬ ‫افزایش‬ ‫سبب‬ ‫کار‬ ‫این‬ .‫نمایید‬ ‫‌بندی‬ ‫ه‬‫دست‬ ‫جدول‬ ‫همان‬ ‫در‬ ...‫و‬ ‫تولد‬ ‫سال‬ ،‫جنسیت‬ ‫همچون‬ ‫معیارهایی‬ ‫با‬ ‫را‬ ‫‌ها‬ ‫ن‬‫آ‬ ‫توانید‬ ‫می‬ .‫شود‬ ‫می‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫بیشتر‬ ‫پذیری‬ ‫دسترس‬ ‫نتیجه‬ : ‫آن‬ ‫های‬ ‫معیار‬ ‫و‬ ‫بندی‬ ‫پارتیشن‬ ‫انواع‬ ‫کلید‬ ‫یک‬ ‫ابتدا‬ ،‫منظور‬ ‫این‬ ‫برای‬ .‫دارد‬ ‫وجود‬ ‫داده‬ ‫پایگاه‬ ‫تقسیم‬ ‫جهت‬ ‫گوناگونی‬ ‫ضوابط‬ ‫و‬ ‫معیارها‬ ‫‌ای‬ ‫ه‬‫رابط‬ ‫داده‬ ‫‌های‬ ‫ه‬‫پایگا‬ ‫نوع‬ ‫در‬ ( ‫‌بندی‬ ‫ن‬‫پارتیش‬ Partitioning Key ‫مختلف‬ ‫‌های‬ ‫ن‬‫پارتیش‬ ‫را‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫مشخص‬ ‫معیارهای‬ ‫و‬ ‫آن‬ ‫اساس‬ ‫بر‬ ‫سپس‬ ‫و‬ ‫کرده‬ ‫تعریف‬ ‫را‬ ) :‫از‬ ‫عبارتند‬ ‫معیارها‬ ‫‌ترین‬ ‫ی‬‫عموم‬ .‫‌کنند‬ ‫ی‬‫م‬ ‫تقسیم‬ ( ‫‌ای‬ ‫ه‬‫محدود‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ Range partitioning ) ‫در‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫رقمی‬ ‫ده‬ ‫کدپستی‬ ‫اطالعات‬ ‫که‬ ‫کنید‬ ‫فرض‬ .‫‌پذیرد‬ ‫ی‬‫م‬ ‫صورت‬ ‫شده‬ ‫داده‬ ‫کلید‬ ‫و‬ ‫آن‬ ‫محدوده‬ ‫براساس‬ ‫پارتیشن‬ ‫انتخاب‬ ۹ ‫دسته‬ ۱۰۰۰۰۰۰۰۰۰ ‫این‬ ‫از‬ ‫یکی‬ ‫در‬ ‫شده‬ ‫داده‬ ‫کلید‬ ‫که‬ ‫صورتی‬ ‫در‬ .‫اند‬ ‫شده‬ ‫تقسیم‬ ۹ ‫آن‬ ‫در‬ ‫موجود‬ ‫اطالعات‬ ‫فقط‬ ،‫باشد‬ ‫محدوده‬ )‫(کدپستی‬ ‫کلید‬ ‫مثال‬ ‫عنوان‬ ‫به‬ .‫گرفت‬ ‫خواهند‬ ‫قرار‬ ‫بررسی‬ ‫مورد‬ ‫محدوده‬ ۶۸۹۵۶۳۲۶۵۳ ‫محدوده‬ ‫فقط‬ ‫که‬ ‫کند‬ ‫می‬ ‫مشخص‬ ۶۰۰۰۰۰۰۰۰۰ ‫تا‬ ۶۹۹۹۹۹۹۹۹۹ ‫تقریبا‬ ‫یعنی‬ .‫شود‬ ‫بررسی‬ ۱/۹ .‫نظر‬ ‫مورد‬ ‫جدول‬ ‫اطالعات‬ ‫کل‬ ( ‫‌وار‬ ‫ت‬‫فهرس‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ List partitioning ) ‫‌های‬ ‫ن‬‫استا‬ ‫مثال‬ . ...‫و‬ ‫مرکزی‬ ،‫شرقی‬ ،‫غربی‬ ‫‌های‬ ‫ن‬‫استا‬ ‫فهرست‬ ‫مثال‬ ‫عنوان‬ ‫به‬ .‫‌شوند‬ ‫ی‬‫م‬ ‫مشخص‬ ‫فهرست‬ ‫یک‬ ‫اساس‬ ‫بر‬ ‫‌ها‬ ‫ن‬‫پارتیش‬ ‫صورتیکه‬ ‫در‬ .‫دهند‬ ‫تشکیل‬ ‫‌غریی‬ ‫ل‬‫شما‬ ‫‌های‬ ‫ن‬‫استا‬ ‫عنوان‬ ‫با‬ ‫پارتیشنی‬ ‫‌توانند‬ ‫ی‬‫م‬ ‫زنجان‬ ‫و‬ ‫اردبیل‬ ،‫شرقی‬ ‫آذربایجان‬ ،‫غربی‬ ‫آذربایجان‬ .‫‌شوند‬ ‫ی‬‫م‬ ‫بررسی‬ ‫‌غربی‬ ‫ل‬‫شما‬ ‫‌های‬ ‫ن‬‫استا‬ ‫‌های‬ ‫ه‬‫داد‬ ‫فقط‬ ،‫باشد‬ ‫اردبیل‬ ‫آدرس‬ ‫یک‬ ‫استان‬ ( ‫درهم‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ Hash partitioning ) ( ‫‌سازی‬ ‫م‬‫دره‬ ‫تابع‬ ‫و‬ ‫کلید‬ ‫یک‬ ‫اساس‬ ‫بر‬ ‫‌ها‬ ‫ه‬‫داد‬ ،‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫نوع‬ ‫این‬ ‫در‬ hash function .‫‌شوند‬ ‫ی‬‫م‬ ‫تقسیم‬ ‫مختلف‬ ‫‌های‬ ‫ن‬‫پارتیش‬ ‫به‬ ) ( ‫کلیدی‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ Key partitioning ) ‫داده‬ ‫پایگاه‬ ‫توسط‬ ‫خودکار‬ ‫صورت‬ ‫به‬ ‫اطالعات‬ ‫قرارگیری‬ ‫نحوه‬ ‫که‬ ‫تفاوت‬ ‫این‬ ‫با‬ ‫است‬ ‫درهم‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫مانند‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫نوع‬ ‫این‬ .‫‌گیرد‬ ‫ی‬‫م‬ ‫صورت‬ ( ‫ترکیبی‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ Composite partitioning ) .‫است‬ ‫‌ها‬ ‫ی‬‫‌بند‬ ‫ن‬‫پارتیش‬ ‫انواع‬ ‫از‬ ‫‌ای‬ ‫ه‬‫مجموع‬ ،‫ترکیبی‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ،‫است‬ ‫مشخص‬ ‫وی‬ ‫نام‬ ‫از‬ ‫که‬ ‫همانگونه‬ • ‫شده‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫اطالعات‬ ‫ذخیره‬ ‫‌های‬ ‫ش‬‫رو‬ • .‫‌کند‬ ‫ی‬‫م‬ ‫ذخیره‬ ‫‌تر‬ ‫ک‬‫کوچ‬ ‫قطعات‬ ‫در‬ ‫و‬ ‫کرده‬ ‫تقسیم‬ ‫را‬ ...‫و‬ ‫‌ها‬ ‫ف‬‫ردی‬ ،‫جداول‬ ‫یا‬ ‫و‬ ‫داده‬ ‫پایگاه‬ ‫کل‬ ‫مانند‬ ‫اطالعاتی‬ ،‫‌بندی‬ ‫ن‬‫پارتیش‬ ( ‫افقی‬ ‫صورت‬ ‫به‬ ‫‌توان‬ ‫ي‬‫م‬ ‫جدول‬ ‫یک‬ ‫در‬ ‫موجود‬ ‫‌های‬ ‫ف‬‫ردی‬ ‫کردن‬ ‫تقسیم‬ ‫برای‬ Horizontal ( ‫عمودی‬ ‫و‬ ) Vertical ‫عمل‬ ) .‫کرد‬ • ‫حالت‬ ‫در‬ ( ‫افقی‬ Horizontal ) ‫جدول‬ ‫در‬ ‫مثال‬ ‫عنوان‬ ‫به‬ .‫‌شوند‬ ‫ی‬‫م‬ ‫ذخیره‬ ‫جداگانه‬ ‫‌های‬ ‫ل‬‫جدو‬ ‫در‬ ‫مختلف‬ ‫‌های‬ ‫ف‬‫ردی‬ ‫از‬ ‫کمتر‬ ‫آنان‬ ‫کدپستی‬ ‫که‬ ‫افرادی‬ ،‫مشتریان‬ 50000 ( ‫شرقی‬ ‫مشتریان‬ ‫جدول‬ ‫در‬ ‫باشد‬ CustomerEast ‫افرادی‬ ‫باقی‬ ‫و‬ )
  • 33. ‫باالی‬ ‫کدپستی‬ ‫دارای‬ ‫که‬ 50000 ( ‫غربی‬ ‫مشتریان‬ ‫جدول‬ ‫در‬ ‫‌باشند‬ ‫ی‬‫م‬ CustomerWest ‫برای‬ ‫همچنین‬ .‫‌شوند‬ ‫ی‬‫م‬ ‫ذخیره‬ ) ‫از‬ ‫استفاده‬ ‫با‬ ‫توان‬ ‫می‬ ‫مشتریان‬ ‫تمامی‬ ‫به‬ ‫دستیابی‬ UNION ‫یک‬ VIEW .‫باشد‬ ‫‌ها‬ ‫ف‬‫ردی‬ ‫تمامی‬ ‫شامل‬ ‫که‬ ‫کرد‬ ‫ایجاد‬ • ‫در‬ ( ‫عمودی‬ ‫حالت‬ Vertical ) ‫در‬ ‫متناظر‬ ‫صورت‬ ‫به‬ ‫‌ها‬ ‫ن‬‫ستو‬ ‫بقیه‬ ‫و‬ ‫‌گیرند‬ ‫ی‬‫م‬ ‫قرار‬ ‫اصلی‬ ‫جدول‬ ‫در‬ ‫کمتری‬ ‫‌های‬ ‫ن‬‫ستو‬ ‫با‬ ‫‌هایی‬ ‫ن‬‫ستو‬ ‫و‬ ‫ثابت‬ ‫نسبتا‬ ‫اطالعات‬ ‫با‬ ‫‌هایی‬ ‫ن‬‫ستو‬ ‫جداکردن‬ ‫روش‬ ‫این‬ ‫کاربرد‬ ‫‌ترین‬ ‫ی‬‫عموم‬ .‫‌گیرند‬ ‫ی‬‫م‬ ‫قرار‬ ‫دیگر‬ ‫‌های‬ ‫ل‬‫جدو‬ ‫فعلی‬ ‫نسخه‬ .‫است‬ ‫متغیر‬ ‫اطالعات‬ 5.6 MySQL .‫‌شود‬ ‫ی‬‫نم‬ ‫پشتیبانی‬ ‫عمودی‬ ‫حالت‬ ‫از‬ • • ‫داریم؟‬ ‫نیاز‬ ‫داده‬ ‫پایگاه‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫به‬ ‫چرا‬ ‫و‬ ‫زمانی‬ ‫چه‬ • :‫‌انجامد‬ ‫ی‬‫م‬ ‫بازدهی‬ ‫محسوس‬ ‫افزایش‬ ‫به‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫از‬ ‫استفاده‬ ‫زیر‬ ‫موارد‬ ‫در‬ • ‫زیاد‬ ‫خیلی‬ ‫‌های‬ ‫ه‬‫داد‬ • ‫حافظه‬ ‫کمبود‬ RAM • ‫های‬ ‫داده‬ HISTORICAL • ‫ها‬ ‫داده‬ ‫حجم‬ ‫افزایش‬ • ‫مشخص‬ ‫‌های‬ ‫ی‬‫‌بند‬ ‫ه‬‫دست‬ ‫با‬ ‫‌هایی‬ ‫ه‬‫داد‬
  • 37. ( ‫کوئری‬ ‫اجرای‬ ‫هنگام‬ Query :‫مانند‬ .‫‌شود‬ ‫ی‬‫م‬ ‫اجرا‬ ‫جدول‬ ‫کل‬ ‫روی‬ ‫بر‬ ‫دستور‬ ،‫باشد‬ ‫نشده‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫نظر‬ ‫مورد‬ ‫جدول‬ ‫صورتیکه‬ ‫در‬ )
  • 39. ‫اجرای‬ ‫هنگام‬ ،‫نمایید‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫را‬ ‫نظر‬ ‫مورد‬ ‫جدول‬ ‫اگر‬ ‫حال‬ Query ‫شامل‬ ‫را‬ ‫مرتبط‬ )‫پارتیشن(های‬ ‫فقط‬ ‫بررسی‬ ‫‌ی‬ ‫ه‬‫محدود‬ ، :‫‌نماید‬ ‫ی‬‫م‬ ‫بررسی‬ ‫را‬ ‫زیر‬ ‫شده‬ ‫مشخص‬ ‫‌های‬ ‫ه‬‫محدود‬ ،‫جدول‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫فرض‬ ‫با‬ ‫قبلی‬ ‫دستورات‬ .‫‌شود‬ ‫ی‬‫م‬
  • 41. : ‫کنید‬ ‫استفاده‬ ‫بندی‬ ‫پارتیشن‬ ‫از‬ ‫باید‬ ‫که‬ ‫دلیل‬ ‫چند‬ • ‫به‬ ‫بخشیدن‬ ‫سرعت‬ select ‫و‬ insert • ‫های‬ ‫محدوده‬ ‫سریعتر‬ ‫نتایج‬ ‫آوردن‬ ‫بدست‬ select • ‫مختلف‬ ‫های‬ ‫مسیر‬ ‫دستیابی‬ ‫برای‬ ‫ها‬ ‫داده‬ ‫جداسازی‬ ‫به‬ ‫کمک‬ • ‫ها‬ ‫داده‬ ‫به‬ ‫ای‬ ‫تاریخچه‬ ‫دسترسی‬ ‫ذخیره‬ • ‫ای‬ ‫محدوده‬ ‫های‬ ‫داده‬ ‫سریعتر‬ ‫حذف‬ • ‫و‬ … : ‫بندی‬ ‫پارتیشن‬ ‫محدودیت‬ ( ‫عدد‬ ‫نوع‬ ‫از‬ ‫ستونی‬ ‫توسط‬ ‫بایستی‬ ‫پارتیشن‬ INTEGER ‫با‬ ‫ستون‬ ‫این‬ ‫جای‬ ‫به‬ ‫‌توانید‬ ‫ی‬‫م‬ ‫شما‬ ‫حال‬ ‫این‬ ‫با‬ .‫باشد‬ ‫شده‬ ‫مشخص‬ ) :‫دهید‬ ‫بسط‬ ‫را‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫زیر‬ ‫موارد‬ ‫رعایت‬ • ‫صورت‬ ‫به‬ ‫از‬ ‫ستونی‬ ‫اگر‬ Unique Key ‫یا‬ Primary Key .‫گیرد‬ ‫بر‬ ‫در‬ ‫ستون‬ ‫این‬ ‫باید‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ،‫باشد‬ ‫شده‬ ‫تعریف‬ • ‫توابع‬ ‫(شامل‬ ‫عبارت‬ ‫از‬ ،‫ستون‬ ‫یک‬ ‫جای‬ ‫به‬ ‫توانید‬ ‫می‬ ‫پارتیشن‬ ‫ساخت‬ ‫در‬ MySQL ‫عبارت‬ ‫که‬ ‫شرط‬ ‫این‬ ‫با‬ .‫نمایید‬ ‫استفاده‬ ) .‫بازگرداند‬ ‫را‬ ‫عددی‬ ‫مقدار‬ ‫نظر‬ ‫مورد‬ • ‫عبارت‬ ‫از‬ ‫توانید‬ ‫می‬ ‫عددی‬ ‫محدود‬ ‫ندانستن‬ ‫صورت‬ ‫در‬ MAXVALUE .‫نمایید‬ ‫استفاده‬ ‫باال‬ ‫بازه‬ ‫برای‬ • ‫‌ها‬ ‫ن‬‫پارتیش‬ ‫تعداد‬ ‫حداکثر‬ 210 = 1024 .‫باشد‬ ‫می‬ ‫در‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫‌سازی‬ ‫ه‬‫پیاد‬ MySQL|MariaDb
  • 42. ‫بوده‬ ‫گسترده‬ ‫بسیار‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫اطالعات‬ ‫‌بندی‬ ‫ش‬‫پارتی‬ ‫مبحث‬ .‫است‬ ‫منبع‬ ‫خود‬ ‫راهنمای‬ ‫مطالعه‬ ،‫مهارتی‬ ‫هر‬ ‫فراگیری‬ ‫برای‬ ‫راه‬ ‫بهترین‬ ‫خالصه‬ ‫صورت‬ ‫به‬ ‫حال‬ ‫این‬ ‫با‬ .‫است‬ ‫خارج‬ ‫مقاله‬ ‫این‬ ‫حوصله‬ ‫از‬ ‫‌ها‬ ‫ن‬‫آ‬ ‫‌ی‬ ‫ه‬‫هم‬ ‫به‬ ‫پرداختن‬ ‫که‬ ‫‌باشد‬ ‫ی‬‫م‬ ‫زیادی‬ ‫درشت‬ ‫و‬ ‫ریز‬ ‫نکات‬ ‫دارای‬ ‫و‬ .‫‌اند‬ ‫ه‬‫شد‬ ‫ارائه‬ ‫زیر‬ ‫در‬ ‫‌ها‬ ‫ن‬‫پارتیش‬ ‫ایجاد‬ ‫نحوه‬ ( ‫‌ای‬ ‫ه‬‫محدود‬ ‫پارتیشن‬ ‫ساخت‬ ‫نحوه‬ Range partitioning ) 1 2 3 4 5 6 7 8 9 CREATE TABLE t1 ( id int ) ENGINE=InnoDB # or MyISAM, ARCHIVE PARTITION BY RANGE (id) ( PARTITION P1 VALUES LESS THAN (10), PARTITION P2 VALUES LESS THAN (20) ) ( ‫‌وار‬ ‫ت‬‫فهرس‬ ‫پارتیشن‬ ‫ساخت‬ ‫نحوه‬ List partitioning ) 1 2 3 4 5 6 7 8 CREATE TABLE t1 (id int) ENGINE=InnoDB PARTITION BY LIST (id) ( PARTITION P1 VALUES IN (1,2,4), PARTITION P2 VALUES IN (3,5,9) ) ( ‫درهم‬ ‫پارتیشن‬ ‫ساخت‬ ‫نحوه‬ Hash partitioning ) 1 2 3 4 5 CREATE TABLE t1 (id int not null primary key ) ENGINE=InnoDB PARTITION BY HASH (id) PARTITIONS 10; ( ‫کلیدی‬ ‫پارتیشن‬ ‫ساخت‬ ‫نحوه‬ Key partitioning ) 1 2 3 4 5 CREATE TABLE t1 ( id int not null primary key ) ENGINE=InnoDB PARTITION BY KEY () PARTITIONS 10; ‫های‬ ‫جدول‬ ‫در‬ ‫پارتیشن‬ ‫ساخت‬ ‫نحوه‬ ‫با‬ ‫باال‬ ‫موارد‬ ‫بیشتر‬ ‫درک‬ ‫برای‬ 1 t ‫و‬ 2 t :‫فرمایید‬ ‫توجه‬ ‫زیر‬ ‫در‬
  • 43. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 CREATE TABLE t1 (d date) ENGINE=InnoDB PARTITION BY RANGE (YEAR(d)) (PARTITION P1 VALUES LESS THAN (1999), PARTITION P2 VALUES LESS THAN (2005), PARTITION P3 VALUES LESS THAN (2010), PARTITION P4 VALUES LESS THAN (MAXVALUE) ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 CREATE TABLE t2 (d date) ENGINE=InnoDB PARTITION BY RANGE (TO_DAYS(d)) (PARTITION P1 VALUES LESS THAN (TO_DAYS('1999-01-01')), PARTITION P2 VALUES LESS THAN (TO_DAYS('2005-01-01')), PARTITION P3 VALUES LESS THAN (TO_DAYS('2010-01-01')), PARTITION P4 VALUES LESS THAN (MAXVALUE) ) CREATE TABLE t1 ( id INT NOT NULL, fname VARCHAR(30), lname VARCHAR(30), hired DATE NOT NULL DEFAULT '1970-01-01', separated DATE NOT NULL DEFAULT '9999-12-31', job_code INT NOT NULL, store_id INT NOT NULL ) PARTITION BY RANGE (store_id) ( PARTITION p0 VALUES LESS THAN (6), PARTITION p1 VALUES LESS THAN (11), PARTITION p2 VALUES LESS THAN (16), PARTITION p3 VALUES LESS THAN (21) );
  • 44. ‫دارد؟‬ ‫تاثیر‬ ‫دستورات‬ ‫اجرای‬ ‫سرعت‬ ‫در‬ ‫چقدر‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫پروژه‬ ‫از‬ ‫منظور‬ ‫این‬ ‫برای‬ .‫داریم‬ ‫اطالعات‬ ‫توجهی‬ ‫قابل‬ ‫مقدار‬ ‫با‬ ‫داده‬ ‫پایگاه‬ ‫یک‬ ‫به‬ ‫نیاز‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫تاثیر‬ ‫بررسی‬ ‫برای‬ MySQL Employees Test Database ‫حدودا‬ ‫شامل‬ ‫که‬ ۴ ‫در‬ ‫رکورد‬ ‫میلیون‬ ۶ ‫پایگاه‬ ‫این‬ ‫ساختار‬ ‫زیر‬ ‫در‬ .‫‌ایم‬ ‫ه‬‫کرد‬ ‫استفاده‬ ‫است‬ ‫جدول‬ :‫‌کنید‬ ‫ی‬‫م‬ ‫مشاهده‬ ‫را‬ ‫داده‬ ( ‫جستار‬ ‫به‬ Query :‫فرمایید‬ ‫توجه‬ ‫آن‬ ‫اجرای‬ ‫زمان‬ ‫و‬ ‫زیر‬ ) 1 2 3 4 5 6 7 SELECT COUNT(*) FROM salaries WHERE from_date BETWEEN '1999-01-01' AND '1999-12- 31'; +----------+ | COUNT(*) | +----------+ | 260957 | +----------+ 1 row in set (1.07 sec) :‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫از‬ ‫بعد‬ ‫دستور‬ ‫همان‬ ‫و‬
  • 45. 1 2 3 4 5 6 7 SELECT COUNT(*) FROM salaries WHERE from_date BETWEEN '1999-01-01' AND '1999-12- 31'; +----------+ | COUNT(*) | +----------+ | 260957 | +----------+ 1 row in set (0.32 sec) ( ‫جستار‬ ‫به‬ ‫اطالعات‬ ‫حذف‬ ‫سرعت‬ ‫افزایش‬ ‫برای‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫عملکرد‬ ‫مشاهده‬ ‫برای‬ Query :‫فرمایید‬ ‫توجه‬ ‫آن‬ ‫اجرای‬ ‫زمان‬ ‫و‬ ‫زیر‬ ) 1 2 DELETE FROM salaries WHERE from_date BETWEEN '1999-01-01' AND '1999-12-31'; Query OK, 247489 rows affected (10.57 sec) :‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫از‬ ‫بعد‬ ‫حذف‬ ‫دستور‬ ‫همان‬ ‫و‬ 1 2 ALTER TABLE salaries DROP PARTITION p15; Query OK, 0 rows affected (1.35 sec)
  • 46. ‫جدول‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫نحوه‬ salaries ‫داده‬ ‫پایگاه‬ ‫در‬ employees ( ‫‌ها‬ ‫ق‬‫حقو‬ ‫جدول‬ ‫‌بندی‬ ‫ن‬‫پارتیش‬ ‫دستور‬ ‫زیر‬ ‫در‬ salaries ( ‫‌ای‬ ‫ه‬‫محدود‬ ‫صورت‬ ‫به‬ ) RANGE ‫سال‬ ‫تاریخ‬ ‫اساس‬ ‫بر‬ ) from_date :‫‌فرمایید‬ ‫ی‬‫م‬ ‫مشاهده‬ ALTER TABLE salaries PARTITION BY RANGE (YEAR(from_date)) ( PARTITION p1 VALUES LESS THAN (1985), PARTITION p2 VALUES LESS THAN (1986), PARTITION p3 VALUES LESS THAN (1987), PARTITION p4 VALUES LESS THAN (1988), PARTITION p5 VALUES LESS THAN (1989), PARTITION p6 VALUES LESS THAN (1990), PARTITION p7 VALUES LESS THAN (1991), PARTITION p8 VALUES LESS THAN (1992), PARTITION p9 VALUES LESS THAN (1993), PARTITION p10 VALUES LESS THAN (1994), PARTITION p11 VALUES LESS THAN (1995), PARTITION p12 VALUES LESS THAN (1996), PARTITION p13 VALUES LESS THAN (1997), PARTITION p14 VALUES LESS THAN (1998), PARTITION p15 VALUES LESS THAN (1999), PARTITION p16 VALUES LESS THAN (2000), PARTITION p17 VALUES LESS THAN (2001), PARTITION p18 VALUES LESS THAN (2002), PARTITION p19 VALUES LESS THAN (2003), PARTITION p20 VALUES LESS THAN (MAXVALUE) ) ;
  • 47. ‫خطای‬ ‫با‬ ‫اگر‬ : ‫نکته‬ : Cannot delete or update a parent row a foreign key constraint fails ‫مواجه‬ ‫خارجی‬ ‫کلید‬ ‫زیر‬ ‫دستور‬ ‫با‬ ،‫شدید‬ 1 salaries_ibfk_ :‫نمایید‬ ‫حذف‬ ‫را‬ ALTER TABLE salaries DROP FOREIGN KEY 1 salaries_ibfk_ ; : ‫لیست‬ ‫بواسطه‬ ‫بندی‬ ‫پارتیشن‬
  • 48. : ‫هش‬ ‫بواسطه‬ ‫بندی‬ ‫پارتیشن‬ ‫بواسطه‬ ‫بندی‬ ‫پارتیشن‬ key :
  • 49. . ‫شود‬ ‫استفاده‬ ‫آن‬ ‫در‬ ‫زیر‬ ‫مقادیر‬ ‫از‬ ‫باید‬ ‫رنج‬ ، ‫لیست‬ ، ‫هش‬ ‫بندی‬ ‫پارتیشن‬ : ‫نکته‬
  • 50. ‫قابلیت‬ ‫از‬ ‫استفاده‬ ‫برای‬ : ‫نکته‬ partition . ‫باشد‬ ‫فعال‬ ‫آن‬ ‫پالگین‬ ‫باید‬ . ‫ایم‬ ‫کرده‬ ‫استفاده‬ ‫پارتیشن‬ ‫از‬ ‫هایی‬ ‫ساختار‬ ‫چه‬ ‫داده‬ ‫پایگاه‬ ‫در‬ ‫اینکه‬ ‫فهمیدن‬ ‫چگونگی‬
  • 53. : ‫ها‬ ‫کوئری‬ ‫در‬ ‫کش‬ ‫قابلیت‬ ‫کردن‬ ‫فعال‬ . ‫دارد‬ ‫تکراری‬ ‫های‬ ‫کوئری‬ ‫سرعت‬ ‫افزایش‬ ‫در‬ ‫شایانی‬ ‫کمک‬ ‫کار‬ ‫این‬ ‫باید‬ ‫قابلیت‬ ‫این‬ ‫بودن‬ ‫فعال‬ ‫بررسی‬ ‫برای‬ have_query_cache ‫برابر‬ yes . ‫باشد‬ ‫در‬ : ‫نکته‬ mariadb ‫بهره‬ ‫زیر‬ ‫ساختار‬ ‫از‬ ‫توان‬ ‫می‬ ‫ان‬ ‫تعغیر‬ ‫برای‬ ‫نبود‬ ‫فعال‬ ‫اگر‬. ‫باشد‬ ‫می‬ ‫فعال‬ ‫فرض‬ ‫پیش‬ ‫بصورت‬ ‫قابلیت‬ ‫این‬ . ‫برد‬ = = SET optimizer_switch 'subquery_cache on'; ‫ساختارهای‬ ‫از‬ optimizer_switch : ‫کرد‬ ‫اشاره‬ ‫زیر‬ ‫موارد‬ ‫به‬ ‫توان‬ ‫می‬ . ‫داد‬ ‫تعغییر‬ ‫را‬ ‫کش‬ ‫میزان‬ ‫حجم‬ ‫توان‬ ‫می‬ ‫همچنین‬ : ‫تکمیلی‬ ‫اطالعات‬
  • 54. query_cache_size • : Description Size in bytes available to the query cache. 40 About KB is needed for , . query cache structures so setting a size lower than this will result in a warning 0, the default before 10.1.7 MariaDB , . effectively disables the query cache Starting from 10.1.7 MariaDB , query_cache_type is automatically set to ON if the server is - ( - ) . started with the query_cache_size set to a non zero and non default value • : Commandline -- - - = query cache size # • : Scope Global • : Dynamic Yes • : Data Type numeric • : Default Value 1M ( = > 10.1.7 MariaDB ), 0 ( = < 10.1.6 MariaDB ) (although frequently ) given a default value in some setups • : Valid Values 0 1024. upwards in units of query_cache_type • : Description If set to 0, the query cache ( is disabled although a buffer of query_cache_size ). bytes is still allocated If set to 1 all SELECT queries will be . cached unless SQL_NO_CACHE is specified If set to 2 (or DEMAND), only queries . with the SQL CACHE clause will be cached Note that if the server is started with , . the query cache disabled it cannot be enabled at runtime Starting from MariaDB 10.1.7, query_cache_type is automatically set to ON if the server is started with the query_cache_size - ( - ) . set to a non zero and non default value • : Commandline -- - - = query cache type # • : Scope , Global Session • : Dynamic Yes • : Data Type enumeration • : Default Value OFF ( = > 10.1.7 MariaDB ), ON ( = < 10.1.6 MariaDB ) • : Valid Values 0 or OFF, 1 or ON, 2 or DEMAND ‫در‬ ‫قابلیت‬ ‫این‬ ‫کردن‬ ‫فعال‬ ‫برای‬ : ‫نکته‬ mysql ‫فایل‬ ‫به‬ ‫توان‬ ‫می‬ ‫را‬ ‫ساختار‬ ‫این‬ . my cnf . ‫نمود‬ ‫اضافه‬ query_cache_size = 268435456 query_cache_type=1 query_cache_limit=1048576