نرمال سازی جداول در اکسس چیست؟چرا اینقدرمهم است؟
سلام به سافت پلاس خوش آمدید . امروز می خواهیم در زمینه آموزش نرم افزار اکسس با هم به بررسی موضوع مهمی به نام نرمال سازی جداول در اکسس بپردازیم .
اگر دوست دارید بدانید که نرمالسازی چیست ؟
اهمیت نرمالسازی در ایجاد بانکهای اطلاعاتی در چیست ؟
نرمال سازی جداول در اکسس شامل چه مراحلی است ؟
و اینکه یاد بگیرید چطور می شود جداول را در اکسس نرمالسازی کرد .
پس از شما دعوت می کنم که من را تا انتهای این مطلب همراهی کنید .
فهرست محتوا
منظور از نرمال سازی جداول در اکسس چیست ؟
در قدم اول می خواهیم ببینیم که وقتی صحبت از نرمالسازی داده ها می کنیم منظورمان دقیقا چیست و چه کاری می خواهیم انجام دهیم . پس باید یک تعریفی از نرمال سازی داشته باشیم .
ما در بانک اطلاعاتی اکسس با داده ها سرو کار داریم . این داده ها را در کجا ذخیره می کنیم ؟
درست است در داخل جدول ها یا همان Tables . ایجاد جدول ها در اکسس خودش یک سری از اصول و قواعد خاص خودش را دارد که حتما باید آنها را رعایت کنیم .
رعایت این موارد باعث می شود که ما در نهایت یک جدول کاری استاندارد داشته باشیم .
اما اینکه منظور از جدول استاندارد در اکسس چیست خودش موضوعی است که در مطلب دیگری راجع به آن صحبت می کنیم .
اما یکی از مهمترین ویژگی های مربوط به یک جدول استاندارد این است که در داخل آن کمترین میزان داده های تکراری را داشته باشیم .
ما در اکسس یک اصطلاحی داریم به اسم ” افزونگی اطلاعات “.
هر جا که این اصطلاح به گوشتان خورد باید بدانید که منظور از افزونگی همان اطلاعات تکراری است . حالا چطور ما از افزونگی اطلاعات در جداول جلوگیری می کنیم ؟
پاسخ این سوال یک کلمه است . به کمک فرآیندی به اسم ” نرمالسازی ” یا در اصطلاح همان Normalization .
پس کار نرمالسازی این شد که به کمک آن و یا با استفاده از آن کاری می کنیم که جدول ما در اکسس دچار افزونگی اطلاعات نشود . یا به عبارت دیگر در جدول ما اطلاعات تکراری وجود نداشته باشد .
حالا برویم به سراغ تعریف نرمال سازی .
نرمال سازی را می شود اینطور تعریف کرد که :
نرمال سازی عبارت است از یک فرآیند مرحله به مرحله و گام به گام برای ایجاد یک ساختار
اطلاعاتی استاندارد که مانع از تکرار داده ها و نیز ناهماهنگی بین آنها می شود .
اهمیت نرمال سازی داده ها در چیست ؟
با نرمال سازی و تعریف آن آشنا شدیم . حالا می خواهیم ببینیم این نرمال سازی چقدر و تا کجا اهمیت دارد؟
حالا اگر نرمال سازی را در اکسس انجام بدهیم چه چیزی نصیبمان می شود و اگر آن را انجام ندادیم چه چیز یا چیزهایی را از دست می دهیم .؟
اهمیت نرمال سازی داده ها در تعریفی که از این فرآیند کردیم مشخص است . مهمترین اهمیت و کاری که نرمال سازی برای ما می کند این است که مانع از ایجاد تکرار در داده های موجود در بانک اطلاعاتی ما می شود .
حتما می دانید که یکی از خطوط قرمز و خیلی مهم در ایجاد یک بانک اطلاعاتی این است که ما در ساختار بانک اطلاعاتی مان تا جایی که می توانیم اطلاعات تکراری نداشته باشیم .
چون وجود اطلاعات تکراری در یک بانک اطلاعاتی عواقب زیادی را برای ما به دنبال خواهد داشت .
مثلا اگر تعداد این اطلاعات تکراری زیاد از حد باشد می تواند باعث این شود که حجم بانک اطلاعاتی ما بی خود و بی دلیل بالا برود و فضای بیشتری را از سیستم ما اشغال کند .
یک تاثیر دیگر می تواند بر روی سرعت باشد .شاید بپرسید از چه لحاظ .
خُب فرض کنید که در یک بانک اطلاعاتی 1000 تا رکورد دارید که 400 تا از آنها یک جورهایی تکراری هستند .
یعنی شما در اصل 600 تا داده دارید .
حالا شما می خواهید بین این هزار تا رکورد یک جستجو انجام بدهید . حالا خودتان قضاوت کنید اگر این داده های تکراری وجود نداشتند کافی بود که بین 600 تا داده جستجو کنید .
اما حالا این 600 تا به هزار تا داده رسیده . خودتان قضاوت کنید در کدام حالت سرعت جستجو شما بیشتر خواهد بود . جستجو بین 1000 تا داده یا بین 600 تا داده ؟
پس هر طور که شده باید جلوی این داده های تکراری را بگیریم .
اما چطور باید این کار را بکنیم ؟
یکی از مهمترین راههایش همین چیزی است که از آن تحت عنوان نرمال سازی در اکسس اسم می بریم .
اینکه توی بانک اطلاعاتی خودمان داده های تکراری نداشته بشیم مزیت کمی نیست . اما نرمال سازی فقط به همین مزیت محدود نمی شود چون با نرمال سازی درست داده ها از مزایای زیر هم بهره مند خواهیم شد .
1- با نرمال سازی درست جدول های بزرگ را تبدیل به جداول کوچکتر می کنیم این جوری مدیریت کردن و کار کردن با جدول ها و اطلاعات داخل آنها خیلی راحت تر می شود .
2- با نرمال سازی درست داده ها خیالمان از این بابت راحت می شود که اگر اطلاعاتی را از یک جدول حذف کنیم اطلاعات موجود در جدول های دیگر را از دست نمی دهیم .
نرمال سازی داده ها شامل چه مراحلی است ؟
کم کم داریم به قسمت های اصلی آموزشمان می رسیم .
همانطور که قبلا هم گفتم نرمال سازی یک فرآیند است اما نه یک فرآیند یک مرحله ای . بلکه یک نرمال سازی شامل 6 تا سطح یا 6 تا مرحله است .
تصویر زیر یک نمایی از این مراحل را نشان می دهد .
این تصویر گویای همه چیز است . اگر به این تصویر دقت کنیم نکته های متعددی را می شود از آن متوجه شد .
با هم این نکات را بررسی می کنیم .
نکته اول این است که نرمال سازی داده ها همانطور که در تصویر هم دیده می شود شامل 5 تا سطح مختلف است .
نکته دوم این است که هر سطح از نرمال سازی زیر مجموعه نرمال سازی سطوح بالاتر است .
این یعنی اینکه تا شما نرمال سازی در سطح 1 را انجام ندهید نمی توانید به سراغ نرمال سازی سطح دو بروید و به همین ترتیب تا نرمال سازی سطح 2 را انجام ندهید نمی توانید نرمال سازی سطح 3 یا بالاتر را انجام بدهید .
یک نکته دیگر هم اینکه اگر به تصویر نگاه کنید سطوح 1 تا 3 در این تصویر به رنگ آبی است و به نحوی از بقیه سطوح متمایز شده است .
این تمایز این نکته را می خواهد بیان کند که اگر شما نرمال سازی جداول را تا سطح 3 انجام بدهید در اکثر مواقع دیگر نیازی به انجام نرمال سازی در سطوح بالاتر ندارید .
برای همین هم اکثر منابع تا همین سه تا سطح را آموزش می دهند و انجام آنها را کافی می دانند .
حالا هر کدام از این سطوح نرمال سازی برای خودشان یک سری قاعده و قانون دارند . در قدم اول باید این قوانین را یاد بگیریم و در مرحله با پیاده سازی آنها در جداول خودمان شروع به نرمال سازی داده بکنیم .
پس بیایید با این قوانین در ادامه آشنا شویم .
قوانین سطح 1 نرمال سازی در اکسس
در این سطح چند تا قانون وجود دارد که با هم آنها را بررسی می کنیم .
قانون شماره -1
قانون شماره یک می گوید که ” تمام فیلدهای یک جدول باید داده اتُمیک داشته باشند” . شاید بپرسید که منظور از داده اتمیک چیست ؟
منظور از داده اتمیک این است که داخل یک فیلد نباید اطلاعاتی وجود داشته باشد که بشود آنها را به دو یا چند تا بخش تقسیم کرد . یا به عبارت دیگر اطلاعات نباید تجزیه پذیر باشند .
به مثال و تصویر زیر نگاه کنید .
به فیلد مربوط به نام و نام و نام خانوادگی یک نگاهی بیندازید . قانون لول در سطح 1 نرمال سازی می گوید که یک فیلد نباید دارای اطلاعات تجزیه پذیر باشد .
به نظرتان نمی شود نام و نام خانوادگی افراد را از هم جدا کرد . این همان چیزی است که قانون اول نرمال سازی در سطح 1 از ما می خواهد . اینکه یک جدول هیچ فیلد تجزیه پذیری نداشته باشد .
پس باید چه کار کنیم . اینجا باید مثل تصویر زیر عمل کنیم .
این اولین قانون از نرمال سازی یک جدول در اکسس بود که خیلی راحت توانستیم آن را انجام بدهیم . حالا باید همین کار را برای فیلدهای دیگر هم انجام بدهید و اگر فیلدی قابل تجزیه بود آن را به دو یا چند تا فیلد دیگر تجزیه کنیم .
قانون شماره -2
قانون شماره 2 در نرمال سازی سطح 1 می گوید که شما در جدول نباید فیلدهای مرتبط تکراری داشته باشید . این یعنی چه ؟ .
به تصویر زیر نگاه کنید .
در این جدول اسامی نویسنده های مختلف را داریم . هر نویسنده برای خودش یک یا چند تا عنوان کتاب دارد . ما برای درج مشخصات کتابهای هر نویسنده فیلدهایی را در جدول قرار داده ایم .
اما خوب اینجا یک ایراد وجود دارد آن هم این است که فیلدهای مربوط به اسامی کتابها کاملا به هم مرتبط هستند . از طرفی هم فرض کنید یک نویسنده مثلا بیست عنوان کتاب داشته باشد .
اگر بخواهیم طبق جدول بالا پیش برویم باید 20 تا فیلد داشته باشیم که هر کدام از آنها یکی از اسامی کتابهای نویسنده را در خودش ذخیره کند .
این خودش یک فاجعه تمام عیار است . تازه قانون دوم نرمال سازی هم به ما اجازه چنین کاری را نمی دهد . چون این قانون می گوید که ما در جدول نباید گروهها یا فیلدهای مرتبط به هم و تکرار شونده را داشته باشیم .
پس باید چکار کنیم ؟ باید به نحوی این گروههای تکرار شونده را از بین ببریم .اما چه طوری می شود این کار را انجام داد؟
بهترین راهکار این است این جدول را تبدیل به دو تا جدول مجزا از هم بکنیم .
یعنی یک جدول داشته باشیم که در آن اطلاعات مربوط به نویسنده ها را ذخیره می کنیم .
در کنار آن هم یک جدول داشته باشیم که اطلاعات مربوط به کتابها را در داخل آن ذخیره می کنیم .
در جدول مربوط به نویسنده به هر نویسنده یک کد می دهیم . در جدول کتابها هم به هر کتاب یک کد می دهیم .
حالا می توانیم این دو تا جدول را از طریق همین کدها به همدیگر مرتبط کنیم . یعنی همان بحث Relationship که قبلا به آن اشاره کردم و در مطلب مربوط به برقراری ارتباط بین جدولها در اکسس مفصل راجع به آن صحبت کرده ام .
خُب این هم از دومین قانون مربوط به نرمال سازی داده ها در سطح اول .
آیا هنوز هم در این سطح قانون دیگری وجود دارد ؟ پاسخ این سوال مثبت است پس در ادامه باز هم با من همراه باشید تا ادامه این قوانین را با هم بررسی کنیم .
قانون شماره -3
نرمال سازی داده ها در سطح 1 یک قانون کاربردی دیگر هم دارد و آن هم این است که :
” تمامی اطلاعات ذخیره شده در داخل یک فیلد باید از لحاظ شکلی یکسان باشند ” منظور این جمله چیست ؟برای توضیح بیشتر به تصویر زیر نگاه کنید .
در تصویر بالا یک جدول داریم که در ستون مربوط به سن آن یک سری از اعداد درج شده است . اما در رکورد شماره 3 سن یکی از این افراد نه به عدد که به حروف نوشته شده است .
این همان چیزی است که نرمال سازی در سطح 1 را نقض می کند . در واقع همه این داده ها یا باید به عدد نوشته شوند یا به حروف .
قوانین سطح 2 نرمال سازی در اکسس
بعد از اینکه قوانین نرمال سازی در سطح یک را رعایت کردید جدول خود را به سطح دوم نرمال سازی رسانده اید . در این سطح هم یک سری از قواعد وجود دارد که باید آنها را هم رعایت کنید .
با هم با قواعد این سطح از نرمال سازی آشنا می شویم .
قانون شماره -1
اولین قانون نرمال سازی در سطح دوم اینطور می گوید که تمامی فیلدهای غیر کلیدی موجود در یک جدول باید به فیلد مربوط به کلید اولیه وابستگی تابعی داشته باشند .
اینجا دو تا مفهوم را داریم . یکی فیلدهای غیر کلیدی و یک هم وابستگی تابعی .
اول برویم سراغ مفهوم وابستگی تابعی .
وابستگی تابعی یک مفهوم ریاضی است که در اینجا نمی خواهیم وارد این مفهوم حداقل از دیدگاه ریاضیات بشویم .
اما منظور از این قانون چیست ؟
مطالب زیر را حتما مطالعه کنید
ساخت برچسب در اکسس💥چطور آنها را ایجاد و مدیریت کنیم ؟
ریبون ها در اکسس💥از مخفی کردن تا مدیریت کردن آنها
چطوری متن ها و تصاویر را بصورت متحرک در اکسس نمایش بدهیم ؟
فرمت دهی نوشته ها در اکسس | کاربرد + مثالها
۵ ویژگی در فرم های اکسس که کمتر از آنها خبر داشتید .
باز کردن گزارش اکسس برای یک رکورد مشخص + نمونه فایل
4 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام استاد
چند روزی است که بسته اموزشی اکسس شما را خریداری کرده ام وانقدر مشتاق به تدریس شما شده ام ،که تقریبا اکثر اموزش ها را ، در این مدت کم مشاهده کرده ام .
در اول خواستم تقدیر وتشکری داشته باشم بابت این سبک تدریس با حوصله وشمرده شمرده و واضح
ویک سوال داشتم که اگر برای تان مقدور هست راهنماییم کنید
بنده با یک نرم افزاری کار می کنم البته نمی دانم که با اکسس نوشته شده یا برنامه دیگری ولی بکاپ هاش در جداول اکسس است و یه تعداد کوئری هم در بکاپ هاش است
در این نرم افزار همه کدها را در یک جدول قرار داده
یک لست کشویی ، وقتی می خواهی کدی را اضافه کنیم یک چیزی شبیه کمبو باکس باز می شود بعد نوع کدی را که می خواهی اضافه کنی را انتخاب می کنی و روش کلیک می کنی به صورت خود کار یک شماره به اخرین شماره که وارد کرده اید اضافه می کند ودر فرم قرار می دهد و شما کافی است که عنوان راوارد کنید
مثلا کدهای صندوق که از ۱۰۰۰ شروع میشد
کدهای بانک ها از ۱۱۰۰
کدهای خریداران از ۲۰۰۰۰۰
کدهای فروشندگان از ۴۰۰۰۰۰
در صورت غیر حرفه ای باید برای هر کدام یک جدول جدا گانه درست کرد و ایشون همه کد ها را در یک جدول جا دادند
اگر زحمتی نیست وبرای تان مقدور است راهنماییم کنید
این کار را می شود با استفاده از تابع Dlast و ترکیب یکی دو تا تابع دیگر انجام داد . اگر خواستید آموزشش را توی پیج اینستاگرام خواهم گذاشت
سلام استاد
ممنون وتشکر از اینکه متعهد به پشتیبانی از محصولاتتون هستید ومانند یک سری نیستید که فقط کاسب هستند و هیچ گونه پشتیبانی و جوابی به مخاطب شون نمی دهند
ممنون دارتون هستم .
استاد بنده از ایتا استفاده می کنم
اگر می شود یک شماره به بنده بدهید تا مشکلاتم را ازتون سوال کنم واگر هزینه ای هم داشته باشد در خدمتتون هستم
سلام ممنون از همراهی تون .
متاسفانه من از ایتا استفاده نمی کنم .
اما اگر به اینستاگرام دسترسی داشته باشید می تونید سوالتون رو مطرح کنید