آموزش اکسس - ارتباط دادهها
در این بخش، ما قصد داریم مفاهیم ابتدایی مرتبط با ارتباط دادهها را به شما آموزش دهیم. قبل از بحث در مورد ایجاد ارتباط بین دادههای مختلف، ابتدا به مفهوم نرمال سازی میپردازیم.
نرمالسازی
نرمالسازی پایگاه داده، یک فرآیندی است که در آن ستونها یا ویژگیها و جداول یک پایگاه داده رابطهای به منظور کاهش تکرار دادهها، سازماندهی میشوند. این فرآیند شامل تقسیم دادهها بین جداول مختلف است تا کارایی کلی، پایگاه داده را بهبودبخشد.
نرمالسازی، فرآیندسازماندهی دادهها در یک پایگاه داده است.این فرآیند شامل ایجاد جداول و برقراری ارتباطها بین این جداول است که براساس قوانینی عمل میکند که هدف آن محافظت از دادهها و افزایش انعطافپذیری پایگاه داده است. این هدف با حذف تکرارها و وابستگیهای نامناسب میسر میشود.
حالا به جدول زیر نگاهی میاندازیم که شامل داده هایی میباشد، اما مشکل اینجاست که این دادهها تا حدی تکراری هستند که فرصت برای اشتباه و عبارتبندی ناهماهنگ در هنگام وارد کردن دادهها را افزایش میدهد.
شناسهمشتری | نام | آدرس | کوکی | تعداد | قیمت | مجموع |
---|---|---|---|---|---|---|
1 | مسعود | خیابان اصلی ۱۲ | شکلات چیپ | ۵ | ۲.۰۰ ریال | ۱۰.۰۰ ریال |
2 | فرهاد | خیابان بلوار بلوط ۱۲۳۴ | کوکی شکلاتی | ۳ | ۲.۰۰ ریال | ۶.۰۰ ریال |
3 | یاشار | خیابان اصلی ۱۲ | شکلات چیپ | ۵ | ۲.۰۰ ریال | ۱۰.۰۰ ریال |
برای حل این مشکل، نیاز به بازسازی دادهها و تقسیم آنها به جداول مختلف داریم تا بخشی از این تکراریها را از بین ببریم، همانطور که در سه جدول زیر نشان داده شده است.
در اینجا، یک جدول برای مشتریها، جدول دوم برای سفارشها و جدول سوم برای کوکیها داریم.
مشکل اینجاست که تنها با تقسیم دادهها به جداول مختلف، نمیتوانیم تعیین کنیم که چگونه دادههای یک جدول به دادههای جدول دیگر مرتبط هستند. برای اتصال دادهها در جداول مختلف، باید کلیدهای خارجی را به جدول سفارشها اضافه کنیم.
تعریف روابط(Relationships)
یک نوع ارتباط در پایگاه داده می باشد که دادهها را در ستونهای کلیدی که معمولاً نام یکسانی دارند، با هم تطبیق میدهد. در اغلب موارد، این نوع ارتباط به کمک یک کلید اصلی از یک جدول که شناسهای منحصر به فرد را برای هر ردیف قرارمیگیرد که با یک کلید خارجی در جدول دیگر ترکیب میشود. سه نوع ارتباط مختلف بین جداول وجود دارد و نوع ارتباط ایجاد شده به نحوه تعریف ستونهای مرتبط در دو جدول وابستگی دارد.
رابطه یک به چند
رابطه یک به چند، یکی از پرکاربردترین نوع ارتباطات در پایگاه داده است. در این نوع ارتباط، یک سطر در جدول A میتواند به چند سطر متناظر در جدول B مرتبط شود، اما هر سطر در جدول B تنها به یک سطر متناظر در جدول A وابستگی دارد.
برای مثال، جدول مشتریها و جدول سفارشها دارای رابطه یک به چند هستند: هر مشتری میتواند چندین سفارش داشته باشد، اما هر سفارش فقط از یک مشتری میآید.
رابطه چند به چند
در رابطه چند به چند، یک ردیف در جدول A میتواند به چندین ردیف متناظر در جدول B مرتبط شود و برعکس، یعنی یک ردیف در جدول B نیز میتواند به چندین ردیف متناظر در جدول A وابسته باشد.
شما با تعریف یک جدول سوم، به نام یک جدول ارتباطی، که شناسه اصلی آن از کلیدهای خارجی هر دو جدول A و B تشکیل شده است، چنین رابطهای را ایجاد میکنید.
برای مثال، جدول مشتریها و جدول کوکیها دارای رابطه چند به چند هستند که توسط یک رابطه یک به چند از هر دو این جداول به جدول سفارشها تعریف شده است.
رابطه یک به یک
در رابطه یک به یک، هر ردیف در جدول A فقط میتواند به حداکثر یک ردیف متناظر در جدول B وابسته باشد و برعکس، به این معنی که ارتباط یک به یک محدود به تنها یک رابطه میان دو ردیف میشود. ایجاد رابطه یک به یک مستلزم داشتن کلیدهای اصلی یکسان در دو جدول یا اعمال محدودیتهای یکتایی است.
این نوع ارتباط به دلیل اینکه بیشتر اطلاعات مرتبط در یک جدول تجمیع میشوند، بسیار شایع نیست. از ارتباط یک به یک میتوان به منظور انجام عملیات زیر استفاده کرد:
- بهبود کارایی و سرعت جستجو و استخراج اطلاعات: زمانی که اطلاعات مرتبط اغلب در یک جدول قرار دارند، استفاده از رابطه یک به یک میتواند عملیات جستجو و استخراج داده را تسریع کند.
- محدودیت یکتایی دادهها: در صورتی که تضمین کنید هر دو جدول دارای اطلاعات یکتا باشند، میتوانید محدودیتهای دادهها را تضمین کنید و تداخل دادهها را جلوگیری کنید.
- بهینهسازی طراحی: در برخی موارد، استفاده از رابطه یک به یک بهینهترین طراحی پایگاه داده را ایجاد میکند و مشکلات اشتباهات دادهها را کاهش میدهد.