ایجاد دیتابیس MySQL
شناسه پست: 2311
بازدید: 1774

اگر فکر میکنید که مدیریت کردن دیتابیس MySql با استفاده از Workbench کار دشواری است، باید به شما بگم که اصلا اینطور نیست بلکه کاملا برعکس است. زمانیکه شما با ابزار MySql Workbench آشنا باشید، ایجاد schema ها، جداول، رابطه ها و پر کردن جداول با داده ها کار خیلی راحتی است.

با پیروی کردن از دستورات این مقاله، شما مهارت ایجاد دیتابیس، ایجاد و پر کردن جداول، ایجاد رابطه بین جدولها و گرفتن backup از داده ها را کسب خواهید کرد. بعدا، ما از این دیتابیس برای اتصال به پروژه NET Core. به آن استفاده خواهیم کرد.

این مقاله، قسمتی از مجموعه آموزشی زیر میباشد:

اگر می خواهید تمام آموزشهای لازم و پایه مربوط به این دوره آموزشی را ببینید ، لطفاً روی این لینک کلیک کنید: صفحه مقدمه برای این آموزش.

این مقاله به چند قسمت زیر تقسیم میشود:

ایجاد نمودار اسکیمای مدل MySQL

بعد از اینکه سرور MySQL نصب شد (ما در این سری از آموزشها، از نسخه 8.0.23 استفاده میکنیم)، MySQL Workbench را اجرا میکنیم که این، ابزار ما برای ایجاد جداول میباشد. وقتی شما Workbench را باز کردید، بر روی existing connection کلیک کنید، یک password اضافه کنید و سپس به database view ریدایرکت خواهید شد. به صفحه home برگردید و بر روی آیکن Models کلیک کنید.

آیکن مدل mysql

با کلیک بر روی دکمه + نزدیک نوشته Models، وارد قسمت model view میشوید که به ما اجازه میدهد تا schema جدیدمان را ایجاد کنیم.

model view در mysql

دوبار بر روی دکمه Add Diagram کلیک کنید. سپس صفحه ایجاد یک اسکیما را میبینید. در این صفحه، ما جدولها و رابطه بین آنها را ایجاد میکنیم.

mysql schema view

ایجاد جداول در نمودار اسکیمای مدل

ما میخواهیم دو جدول ایجاد کنیم. روی آیکن table کلیک کنید و سپس مجددا بر روی محیط Schema کلیک کنید. این کار را یکبار دیگر برای ایجاد جدول دوم تکرار کنید. بعد از این، دوبار بر روی اولین جدول کلیک کنید، سپس میتوانیم ستونها را در آن ایجاد کرده و یک نام هم به آن بدهیم.

ایجاد جدول در mySql

نام این اولین جدول را Owner بگذارید و ستونهای زیر را در آن اضافه کنید:

ایجاد جدول اول در mySql

حال بر روی جدول دوم دابل کلیک کنید و نام آن را Account گذاشته و ستونهای زیر را به آن اضافه کنید:

ایجاد جدول Account در mySql

حالا چرا برای کلیدهای اصلی در جداول ما، مقدار Char (36) انتخاب شده است. به این دلیل که ما از GUID برای کلیدهای خود استفاده خواهیم کرد و نماینده یک GUID در Char(36) ،MySQL است.

اضافه کردن رابطه بین جداول

شما میتوانید با کلیدهای ترکیبی CTRL+S، مدلتان را ذخیره کنید و بعد از آن، ما رابطه را به جداولمان اضافه میکنیم. ما فرض میکنیم که یک owner میتواند چند account (Domestic, Foreign currency, Savings…) داشته باشد. بنابراین با این حساب، میبینیم که یک رابطه یک به چند بین owner و account وجود دارد. در نظر داشته باشید که ما میخواهیم این دو جدول را با ایجاد کلید خارجی OwnerId در جدول Account، اتصال دهیم، پس این کلید میتواند رابطه بین این دو جدول را برقرار کند.

روی رابطه 1:N که در تصویر بالا مشخص شده است کلیک کنید، سپس اول روی جدول Account و سپس روی جدول Owner کلیک کنید. سپس بلافاصله بعد از این اقدام، شما ستون جدید را در جدول Account میبینید. این کلید خارجی ما است.برای تغییر نام این ستون جدید، بر روی آن دابل کلیک کنید و نام آن را OwnerId بگذارید.

حالا اگر به قسمت پایین نگاه کنید، چند tab میبنید. ما هم اکنون در تب Columns قرار داریم. اگر بر روی تب foreign keys کلیک کنید، سپس اطلاعاتی را در مورد foreign key ما در جدول Account مشاهده میکنید.

تنظیمات کلید خارجی در mySql

اجازه دهید تنظیمات پیشفرض برای OnUpdate و OnDelete را تغییر دهیم. برای OnUpdate، ما گزینه Cascade را انتخاب میکنیم. این بدان معناست که اگر یک سطر با یک کلید اصلی در جدول Owner به طور خودکار، update شود، سپس سطر با کلید خارجی مربوطه در جدول Account نیز باید update شود. همچنین برای OnDelete، ما گزینه Restrict را انتخاب میکنیم. این به این دلیل است که ما نمیخواهیم یک سطر با کلید اصلی از جدول Owner، بدون حذف شدن سطر با کلید خارجی مربوطه در جدول Account، حذف شود. به این ترتیب ما می توانیم یکپارچگی را در پایگاه داده خود حفظ کنیم.

اگر شما به Catalog Tree که قسمتی از schema view است نگاه کنید، نام mydb را به عنوان نام دیتابیس میبینید. ما نمیخواهیم دیتابیسمان را با این نام صدا بزنیم، پس آن را تغییر میدهیم. روی mydb راست کلیک کنید و سپس  edit schema را انتخاب کنید. به آن نام AccountOwner بدهید و سپس مدل خود را ذخیره کنید.

Export اسکیما به فایل اسکریپت

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

بر روی منوی File کلیک کنید، سپس بر روی Export قرار بگیرید و گزینه Forward Engineering SQL Create Script را انتخاب کنید. حالا شما یک پنجره جدید میبینید که در آن باید نام فایل اسکریپت مورد نظر و دیگر آپشنها برای تولید اسکریپتها را تعیین نمایید. در فیلد Output SQL Script File، نام اسکریپت را بنویسید. اگر این قسمت را خالی بگذارید، فقط اسکریپت تولید شده را میتوانید مشاهده کرده و آن را کپی کنید اما در جایی ذخیره نخواهد شد. همچنین بر روی گزینه Generate DROP Statements Before Each CREATE Statement کلیک کنید. این گزینه، قبل از ایجاد یک جدول جدید که اگر همنام با یکی از جداول موجود باشد، آن جدول موجود را حذف میکند. به این ترتیب، اگر هنگام اجرای فایل اسکریپت ، هریک از جدولها از قبل در پایگاه داده وجود داشته باشد، با این کار شما از بروز خطاها جلوگیری میکنید.

اسکریپت تولید دیتابیس mySql

بر روی دکمه Next کلیک کنید. سپس شما SQL Object Explorer Filter را میبینید. در این پنجره، فقط بر روی اولین گزینه کلیک کنید: Export MySQL Table Objects. دومرتبه بر روی Next کلیک کنید. در اینجا شما، نمایی از اسکریپت خود را خواهید دید. سپس بر روی finish کلیک کنید. سپس اسکریپت در مقصدی که تعیین کرده بودید export میشود.

ایجاد دیتابیس از فایل اسکریپت

اگر viewی دیتابیس شما هنوز باز است به آن view بروید.در غیر اینصورت، بر روی تب home کلیک کنید، سپس از بالا بر روی اولین آیکن کلیک کنید (آیکن دلفین) و سپس بر روی قسمت Local Instance کلیک کنید و وارد database view شوید.

database view در mySql

در این database view، بر روی Schemas tab در قسمت Navigator صفحه کلیک کنید. آنجا، شما تعدادی دیتابیس پیشفرض را میبینید که در همین قسمت، دیتابیس جدید شما ظاهر خواهد شد.

به منوی File بروید و گزینه Run SQL Script را اجرا کنید. فایل اسکریپتی که قبلا ذخیره کرده بودید را انتخاب کنید، سپس بر روی دکمه run کلیک کنید. این باعث میشود که دیتابیس ایجاد شود. اگر شما schemas view تان را Refresh کنید، دیتابیستان را خواهید دید.

ویوی کامل دیتابیس در mySql

نکته: اگر بعد از انتخاب گزینه Run SQL Script، اسکریپت مورد نظرتان را اجرا نمودید و با خطای زیر روبه رو شدید با گزینه Open SQL Script از همان منوی File، اسکریپت مورد نظرتان را باز نمایید و اجرا کنید:

خطای اجرای اسکریپت در MySql

به این دلیل که جدول account وابسته به جدول owner است، باید اول جدول owner را با داده های مورد نظرمان پر کنیم، سپس جدول  account را. روی جدول owner راست کلیک کنید و اولین گزینه را انتخاب کنید: …Select Rows – Limit. سپس پنجره query را خواهید دید:

کوئری جدول در mySql

پر کردن جداول با داده ها

حالا ما میخواهیم جداولمان را با داده ها پر کنیم. برای این منظور، یک تب SQL جدید برای اجرای کوئریها باز میکنیم:

پنجره کوئری در mySql

و کد زیر را اجرا میکنیم:

با اجرای این کد، جدولهای ما با داده های مورد نیازمان، پر خواهند شد. اگر میخواهید از داده هایتان، back up بگیرید باید به این طریق عمل کنید: روی منوی Server کلیک کنید، Data Export را انتخاب کنید، سپس دیتابیستان را انتخاب کنید و در قسمت پایین، گزینه Export to Self-Contained File را علامت بزنید. مقصد را برای فایل backup تان انتخاب کنید و بر روی Start Export کلیک کنید.

نتیجه گیری

این پست، قسمت 1 از این سری از آموزش میباشد. ما یاد گرفتیم که چطور اسکیمای MySQL را بسازیم، چطور جدولها و ارتباط بین آنها را ایجاد کنیم. علاوه بر این، در حال حاضر میدانیم که چطور اسکریپت دیتابیس را ایجاد کنیم و داده ها را به داخل جدولها درج کنیم.

با اینکه ما اصول MySQL را مورد بررسی قرار دادیم، شما در حال حاضر، دانش کافی برای شروع ایجاد طرح های پایگاه داده رابطه ای خود را دارید.

از شما برای مطالعه این قسمت از آموزش تشکر میکنیم، حال قسمت بعدی که ما وارد دنیای  NET CORE. میشویم را بررسی کنید.

نویسنده

امید عباسی
من امید عباسی هستم. سالهاست که در زمینه برنامه نویسی با تکنولوژی دات نت فعالیت میکنم و عاشق این هستم که تجربیات و دانش خودم را در این زمینه با دیگران به اشتراک بزارم. خیلی دوست دارم که نظر و انتقاد خودتون رو در مورد این نوشته برای من بنویسید تا بتونم در آینده، مطالب بهتر و ارزشمندتری را برای شما فراهم کنم. در صورت داشتن هرگونه سوال هم در قسمت دیدگاه ها میتونید با بنده در ارتباط باشید