تصمیم دارم وارد بحث بانک اطلاعاتی my sql شوم ، شخصا به بانکهای اطلاعاتی بسیار علاقه مندم ف حالا که بحث آموزش زبان php آغاز شده به نظرم خوب است آموزش بانک اطلاعاتی my sql را داشته باشیم و اما
بنده از و اما
بنده از my sql حرفه ای نیستم لذا در کنار مطالعه و تحقیق سعی می کنم تجربیاتم را در اختیار دوستان قرار دهم به تعبیری دیگر این آموزش ، یک آموزش تفاعلی ، خواهد بود بخشهایی را آموزش می دهم و برخی را به صورت سوال مطرح خواهم کرد .
1-سیستم مدیریت پایگاه داده my sql
پایگاه داده مجموعه ای از داده های ساخت یافته است . برای اضافه کردن ، دسترسی پردازش داده های ذخیره شده است . در رایانه هایی که حجم زیادی از داده ها وجود دارد ، سیستم مدیریت پایگاه داده نقش حیاتی دارد .
2-my sql یک سیستم مدیریت پایگاه داده رابطه ای است .
پایگاه داده رابطه ای به جای ذخیره داده ها در یک جا ، در جداول جداگانه ذخیره می کند که باعث افزایش سرعت و انعطاف پذیری می شود .
3-my sql نرم افزاری متن باز است .
منظور از متن باز این است که هر کس می تواند آن را توسعه دهد و تغییر دهد . هر کس می تواند آن را از اینترنت دریافت کند حتی بدون پرداخت هر گونه وجهی .و هر فرد می تواند متن آن را مطابق با نیاز خود تغییر دهد .
برای اینکار شما ابتدا wamserver را از لینک مشخص شده در تایپیک
http://irmeta.com/meta/index.php/topic,10150.msg15354.html#msg15354دانلود کنید . و نصب کنید حالا phpmyadmin را اجرا کنید
قبل از رود به اصل مطلب چند نکته ای را متذکر می شوم
در صفحه ابتدایی phpmyadmin که در زیر می بینید

شما به گزینه language دقت کنید . اینجا می توانید زبان فارسی را انتخاب کنید خواهید دید که برخی پارامترهای شما در صفحه به زبان فارسی نمایش داه خواهد شد .
من فکر می کنم برای راحتی کار ، همان زبان فارسی را انتخاب کنیم و مبنای کار را بر زبان فارسی قرار دهیم .
در بالای صفح گزینه ای وجود دارد به نام charsets این گزینه را انتخاب کنید تا به شکل زیر مشاهده کنید .

در اینجا شما Character Sets and Collations را مشاهده می کنید ، اینجا تمام لیستهای ممکن برای کاراکترها در بانک اطلاعاتی و یونی کدهای ممکن را لیست کرده است .
شما به آخر لیست بروید دوتا عنوان جلب توجه می کند یکی utf8_general_ci و دیگری utf8_persian_ci و دیگری utf8_unicode_ci است .
یونیکد utf8_persian_ci اینجور که از نامش پیداش مختص زبان فارسی است .
اما utf8_general_ci و utf8_unicode_ci
طبق جستجویی که من کردم به این نتیجه رسیدم که تفاوت این collation ها بسیار جزئی و قابل چشم پوشی هست. تفاوت جزئی utf8_general_ci با utf8_unicode_ci در مرتب سازی هست. در utf8_general_ci آکسان (استرس) در مرتب کردن تأثیری نداره. یعنی هنگام مرتب کردن بر اساس حروف بین À و Á تفوتی قائل نمیشه ! در عوض utf8_unicode_ci مقدار بسیار ناچیزی به همین خاطر کندتر عمل می کنه که اصلا در مقیاس کار ما قابل توجه نیست.
معمولا یونیکدهای بالا را برای سازگاری با زبان فارسی و جلوگیری از تبدیل حروف فارسی به علامت سوال استفاده می شوند .
برای اطلاع بیشتر می توانید از لینک زیر کمک بگیرید
http://dev.mysql.com/doc/refman/5.5/en/charset.htmlخوب اکنون که کمی با مبحث collation آشنا شدیم وارد بحث ساخت بانک اطلاعاتی می شویم .
اکنون از قسمت بالای صفحه تک (( پایگاههای داده را انتخاب کنید

نام پایگاه داده را وارد کنید در اینجا نام بانک اطلاعاتی را book وارد کنید و از قسمت collation بخش
utf8_unicode_ci را انتخاب کنید سپس دکمه ساختن را کلیک کنید اکنون پايگاه داده شما ساخته شد
کد کویری آن نیز نمایش داده می شود که بصورت زیر است

در بالای صفحه کد کوئری ساخت پایگاه داده را می توانید مشاهد کنید ، اکنون در این صفحه شما باید نام جدول را وارد کنید و تعداد فیلدهای جدول
در پایگاه های داده رابطه ای ، جدول ، واحد اساسی ذخیره داده محسوب می شود .به عنوان یک قاعده کلی ، هر نوع موجودیت از طریق یک جدول و هر مجموعه از موجودی بصورت یک سطری از جدول نمایش داده می شود .
فیلدها : در هر جدول پایگاه داده ، ستونهایی وجود دارند که دارای خصوصیات خاص هستند مثلا ستونی از داده های عددی یا کاراکتری یا تاریخ و غیره ..
در نتیجه در حرکت از طراحی منطقی یک جدول به پیاده سازی فیزیکی ، موجودیتها را با جداول و صفات خاص آنها (ستونها ) را با فیلدها پیاده سازی می کنیم .
مبحث فیلدها بسیار مفصل است که در درسهای آینده توضیح خواهیم داد.
اکنون با این مقدمه جدول marc_book را با 4 فیلد ایجاد می کنیم .
پس نام جدول را marc_book و در مقابل آن عدد 4 را وارد کنید سپس دکمه تایید را بزنید .
ما می خواهیم 4 فیلد به نامهای
International Standard Book Number (ISBN)
• Title
• Number of pages
• Author identification
در جدولمان تعریف کنیم . حال به صفحه زیر دقت کنید :

-ستون یاfield : در این قسمت شما باید عنوان و نام فیلدتان را وارد کنید مثلا فیلد اول جدول ما isbn بود .
2-نوع یا Type : در اینجا ما نوع فیلد جدولمان را وارد می کنیم ، در حقیقت ما مشخص می کنیم که در هر فیلد چه نوع داده ای ذخیره می شود .
برای اطلاع بیشتر در مورد انواع داده ها به لینک زیر مراجعه کنید
http://dev.mysql.com/doc/refman/5.1/en/data-types.htmlبطور کلی و عمومی داده ها از نوع عددی یا کاراکتری و یا تاریخ و در نهایت داده های ویژه است ، بحث در این مورد مفصل است .
ما داده اول یعنی فیلد ISBN را از نوع varchar انتخاب می کنیم این نوع داده یک داده کاراکتری با طول متغیر است .
3-طول / مقادیر یا length : اینجا مشخص کنند حداکثر طول فیلد است .
4-پیش فرض یا default : هر گاه ما در پایگاه داده مقداری را برای این ستون وارد نکنیم ، اتوماتیم همان مقدار پیش فرض جایگزین می شود .
5-collation در بالا در مورد آن کمی توضیح دادیم .
6-Attribute یا ویژگیها : خصوصیتی که به یک فیلد داده می شود .محدوده اعداد و نوعهای خاص را نشان می دهد مثلا آیا اعداد فقط مثبت باشه یا منفی را هم شامل شود و ... لینک زیر توضیحات جالبی دارد
http://kimbriggs.com/computers/computer-notes/mysql-notes/mysql-data-types-50.file7-خالی یا null : مشخص می کند که یک فیلد می تواند مقادیر خالی بپذیرد یا نه ؟
8-فهرست یا Index : مشخص می کند که یک فیلد می تواند منحصر به فرد باشد یا
Primary : یعنی فیلد کلید اصلی جدول است .
Unique : فیلد منحصر به فرد باشد یعنی مقادیر تکراری نمی پذیرد
التبه این مبحث مفصل است که در بخشهای بعد به تدریج در مورد اندیکسها توضیح خواهیم داد .
9-AUTO_INCREMENT: این خاصیت این امکان را می دهد که شماره سطر یکی یکی و بدون این که کاربر بخواهد عددی رو وارد کند خودش به ترتیب از شماره یک شروع می کنه و به هر سطر یک شماره اختصاص می دهد.
پس از وارد کردن تمام اطلاعات مربوط به یک فیلد کلید ذخیره را کلیک کنید در صورتی که ساختار را درست وارد کرده باشید ، جدول شما بدون خطا تشکیل می شود .
اکنون چند سوال مطرح می کنم ؟
1-فرق collation در سطح بانک اطلاعاتی با collation در سطح جدول و فیلد چیست ؟
2-ساختار فایل بانک اطلاعاتی ما چگونه است ،؟ فایل آن کجاست ؟
دوبار متذکر می شوم که بنده همگام با یادگیری مباحث my sql آن را برای دوستان به اشتراک می گذارم به تعبیری سوالات مطرح شده ، سوالات بنده هم هست ، پس اگر دوستان لطف می کنن یک حرکت دسته جمعی برای آموزش گام به گام ایجاد کنیم ، منتظر نظرات دوستان و انتقادات هستم
پایان بخش اول
Linkback: https://irmeta.com/meta/b1419/t5980/