آموزش MySQL – بخش دوم – Schema و Table

در این بخش از آموزش MySQL به اختصار به معرفی Table ها خواهیم پرداخت. به طور کلی هر دیتابیس از ساختارهایی به اسم Schema تشکیل شده است. Schema ها دارای سایز و بخش های متفاوتی هستند که می توان برروی آن ها پروسه های مختلف یا view های متفاوت تعریف کرد.

در هر Schema می توان جداول یا Table های متفاوتی جهت ذخیره اطلاعات تعریف نمود.

 

Table چیست و چه اجزایی دارد

اجازه دهید یک مثال ساده بزنیم. فرض بگیرید میخواهید نام ، نام خانوادگی ، سن و تاریخ تولد دوستان خود را در یک جدول  بنویسید.

جدول شما میتواند چیزی شبیه جدول زیر باشد.

 

ردیف نام نام خانوادگی سن تاریخ تولد
۱ علی امیری ۳۵ ۱۳۶۱/۷/۳
۲ محمد غلامی ۳۲ ۱۳۶۴/۲/۱۰
۳ وحید رسولی ۳۱ ۱۳۶۵/۱۱/۸
۴ علی قاسمی ۳۴ ۱۳۶۲/۴/۶

در بالا یک Table ساده نمایش داده شده است. به هریک از سر ستون ها در دیتابیس اصطلاحا فیلد (Field) میگویند.

در مثال ما از سه تایپ متفاوت از فیلد استفاده شده است. در مورد نام و نام خانوادگی تایپ فیلد به صورت متنی یا Text میباشند, سن به صورت عددی یا INT و تاریخ تولد از جنس تاریخ یا DATE می باشد.

نکته ی قابل توجه این است که هر تایپ فضای مشخصی از حافظه  را اشغال میکند. همچنین شما می توانید هر فیلد را با طول دلخواه در MySQL  تعریف کنید. مثلا میتوان در مثال بالا اسامی را با طول حداکثر ۲۴ کاراکتر به صورت Text(24) تعریف کرد.

در جدول زیر چند تایپ عددی معروف، کمینه و بیشینه ی قابل ذخیره و مقدار فضای اشغالی آن در حافظه را مشاهده می کنید.

 آموزش MySQL - بخش اول - نصب و راه اندازی آموزش MySQL - بخش دوم - Schema و Table

 

جداول تو در تو  (Nested Tables)

طراحی Table ها از اهمیت بسیار بالایی برخوردار است، زیرا بهینه بودن به لحاظ سایزبندی و اشغال کردن فضا و بدست آوردن بهترین روش جهت چیدمان داده ها بسیار مهم می باشد.

برای این که دید بهتری پیدا کنید می توان به صورت گذرا به این مطلب اشاره کرد که گاهی اوقات استفاده از چند Table با کلید های خارجی (Foreign Key) که آنها را به هم مرتبط میکند بهینه تر است.

مثال:

فرض کنید می خواهید در مثال قبل مشخصات بیشتری از دوستان خود مانند جنسیت ، رشته تحصیلی و مدرک را ذخیره کنید.

جدول شما می تواند به شکل زیر باشد:

ردیف نام نام خانوادگی سن تاریخ تولد جنسیت رشته ی تحصیلی مدرک
۱ علی امیری ۳۵ ۱۳۶۱/۷/۳ مرد نرم افزار لیسانس
۲ محمد غلامی ۳۲ ۱۳۶۴/۲/۱۰ مرد نرم افزار لیسانس
۳ وحید رسولی ۳۱ ۱۳۶۵/۱۱/۸ مرد نرم افزار لیسانس
۴ علی قاسمی ۳۴ ۱۳۶۲/۴/۶ مرد نرم افزار لیسانس

همچنین می توان جدول بالا را به صورت دو جدول مجزا در ذیل با کلید کد مشخصات جهت ارتباط آن دو ذخیره کرد.

 

کد مشخصات جنسیت رشته ی تحصیلی مدرک
۱ مرد نرم افزار لیسانس

 

ردیف نام نام خانوادگی سن تاریخ تولد کد مشخصات
۱ علی امیری ۳۵ ۱۳۶۱/۷/۳ ۱
۲ محمد غلامی ۳۲ ۱۳۶۴/۲/۱۰ ۱
۳ وحید رسولی ۳۱ ۱۳۶۵/۱۱/۸ ۱
۴ علی قاسمی ۳۴ ۱۳۶۲/۴/۶ ۱

 

همانطور که میبینید با توجه به اینکه در مثال بالا همه ی افراد دارای مشخصات یکسانی هستند، ما با قرار دادن کد مشخصات جهت ارتباط دو جدول از تکرار مشخصات جلوگیری کرده و از ۴ فیلد عددی و ۳ فیلد متنی به جای ۱۲ فیلد متنی استفاده کرده ایم.

بدیهی است که در دیتابیس های بزرگ اینگونه صرفه جویی در فضای ذخیره سازی از اهمیت بسیاری برخوردار است.

 

در مبحث بعد به ساختن Table در MySQL توسط MySQL Workbench خواهیم پرداخت.

 


آموزش MySQL

آموزش MySQL – بخش اول – نصب و راه اندازی

آموزش MySQL – بخش دوم – Schema و Table

آموزش MySQL – بخش سوم – MySQL Workbench

آموزش MySQL – بخش چهارم – Flag ها در MySQL

آموزش MySQL – بخش پنجم – جداول تو در تو با Foreign Key

 

 

 

هرگونه کپی برداری از مطالب و عکس ها با ذکر منبع و قرار دادن لینک این سایت بلامانع است.