Konkur Computer
  1. home
  2. db
  3. questions
  4. 1404
  5. 111
  6. graph
graph of thought
steps
1problem

در طراحی بانک اطلاعاتی رابطه ای، کدام معیار از همه مهم تر است؟

  1. رعایت شرط LossLess join

  2. داشتن کلید اصلی در رابطه ها Primary Key

  3. حفظ وابستگی تابعی Functional Dependency

  4. کاهش در رابطه ها (Relation) و خصیصه ها (Attribute)

1problem

بررسی گزینه 1: رعایت شرط LossLess join. مگه واقعا چقد مهمه؟

db/concepts/lossless/def
1recall

تجزیه یک رابطهR به دو رابطه R_1 و R_2 را بدون گم گشتگی یا lossless می گوییم هرگاه:

R_1 \bowtie R_2 = R

نکته: به علامت مساوی توجه کنید

نکته: عدم برقراری lossless join وضعیت سازگاری پایگاه داده را مختل میکند


  • چطور تجزیه بدون گمشتگی داشته باشیم
db/concepts/basic/consistency
2recall

سازگاری یا Consistency به طور خلاصه یعنی داده (در ستون های همان جدول یا جداول دیگر) باهم هماهنگ باشند

بحث consistency در پایکاه داده رابطه ای، ناموسی ترین بحث است یعنی اگر این مورد برقرار نباشد، اصلا پایگاه داده مفت نمی ارزد

1reason

اگر داده های ما سازگار نباشد، هیچ اطمینانی به درستی داده ها نداریم، پس در نهایت داده ها به درد لای جرز دیوار هم نمیخورند

1problem

بررسی گزینه 2: داشتن کلید اصلی در رابطه ها (Primary Key)

db/concepts/keys/primary-key
1recall

کلید اصلی یا primary key کلید کاندیدی که توسط طراح پایگاه داده برای آن رابطه انتخاب شده است

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

تعریف کلید اصلی
db/concepts/keys/super-key
1recall

کلیدی که بتواند هر تاپل از رابطه را به صورت یکتا ،شناسایی کند ابرکلید یا super key است

توجه: بنابر ویژگی یکتا بودن، ابر کلید باید حتما شامل کلید کاندید باشد

تعریف ابرکلید
3reason

در بدترین حالت در یک رابطه، تنها یک ابر کلید وجود دارد، که یعنی همه صفتها شامل آن هستند. همچنین تنها یک کلید کاندید وجود دارد که باعث میشود یک انتخاب برای کلید اصلی وجود داشته باشد. پس همیشه یک کلید اصلی در رابطه وجود دارد و دغدغه ای برای آن نداریم.

1problem

بررسی گزینه 3: حفظ وابستگی تابعی Functional Dependency

db/concepts/fd/not
1recall

برخی اوقات ممکن است که بخاطر مسائلی مانندسرعت و کاراییقید برخی ازوابستگی تابعیهایی که وجود دارد را بزنیم

1problem

بررسی گزینه 4: کاهش در رابطه ها (Relation) و خصیصه ها (Attribute)

thoughts

نرمال سازی از مهم ترین کاربرد های جبر رابطه ای است. این یعنی اینکه برای پیدا کردن جواب احتمالا باید نرمال فرم را هم در نظر بگیریم

db/concepts/norm/def
2recall

نرمال سازی یا Normalization در طراحی پایگاه داده، شامل روش هایی برای جلوگیری از بد رفتاری داده یا data anomaly است

سطوح نرمال سازی در پایگاه داده رابطه ای:

  • 1NF
  • 2NF
  • 3NF
  • BCNF

  • چه موقع نباید نرمال سازی کنیم
db/concepts/norm/1nf
1recall

نرمال سازی سطح اول یا 1NF (first normal form) اولین مرحله برای تبدیل داده منطقی به فرم رابطه است که بیان میکند:

صفتهای یک رابطه باید به صورت ساده (atomic) باشند. به عبارتی، تو در تو (nested) نباشند

db/concepts/norm/2nf
1recall
db/concepts/norm/3nf
1recall

این مورد تضمین میشود که 3NF وابستگی تابعی را حفظ میکند

1reason

اعمال 1NF روی پایگاه داده، باعث افزایش یا ثابت ماندن تعداد ستون ها میشود پس حتما مورد گزینه 4 مقصود ما نیست

1goal

هیچ چیز مهمتر از سازگاری نیست