بایگانی برچسب‌ها : query

پایگاه داده رابطه ای Relational Database

پایگاه داده رابطه ای یا Relational Database چیست؟

پایگاه داده رابطه ای (Relational Database) نوعی پایگاه داده براساس مدل رابطه ای (Relational Model) داده‌هاست. در این مدل، داده‌ها در قالب تعدادی جدول (Table) نگه‌داری می‌شوند. به این جداول، رابطه (Relation) نیز گفته می‌شود. هر جدول شامل تعدادی ستون (Column) و ردیف (Row) می‌باشد. به ستون‌ها، ویژگی (Attribute) و به ردیف‌ها رکورد (Record) یا چندتایی (تاپل یا Tuple) نیز گفته می‌شود.

نمونه جدول یک پایگاه داده رابطه ای relational database table
نمونه جدول اطلاعات دانشجویی از یک پایگاه داده رابطه‌ای

مهم‌ترین مفاهیم پایگاه‌داده‌های رابطه‌ای

معمولا هر جدول (یا رابطه)، مربوط به یک نوع موجودیت (نظیر محصول، کارمند، دانشجو و …) می‌باشد و هر ردیف از آن نمایانگر نمونه‌ای از این نوع موجودیت (نظیر محصولی با نام و مدل مشخص) و ستون‌ها هم مقادیر ویژگی‌ها (نظیر قیمت) را برای نمونه‌های مختلف موجودیت موردنظر نگه‌داری می‌کنند. مقادیر مجاز برای هر ویژگی می‌تواند توسط یک دامنه محدود شود. برای مثال ویژگی جنسیت می‌تواند به مجموعه دامنه {“مرد” و “زن”} محدود شود.

کلید اصلی (Primary Key) به ویژگی یا مجموعه‌ای از ویژگی‌ها در یک رابطه گفته می‌شود که می‌تواند یک رکورد را به صورت منحصربفرد مشخص کند. در واقع مقادیر کلیدهای اصلی هرگز در رکوردهای یک رابطه تکرار نمی‌شوند. برای مثال، کد دانشجویی برای رابطه‌ای که اطلاعات مربوط به دانشجویان را نگه‌داری می‌کند (تصویر فوق) گزینه مناسبی برای کلید اصلی به شمار می‌رود.

کلید خارجی (Foreign Key) فیلدی در یک جدول است که به طور یکتا ردیفی از یک جدول دیگر یا همان جدول را مشخص می‌کند. به عبارت بهتر کلید خارجی به عنوان یک ویژگی در جدولی ثانویه تعریف می‌شود و با کلید اصلی یا کلیدی یکتا (یک ویژگی با مقادیر غیرتکراری) از جدول اولیه منطبق می‌شود و به این ترتیب میان ردیف‌های دو جدول ارتباط ایجاد می‌کند. برای مثال تصور کنید در جدولی به نام People اطلاعات مشتریان یک شرکت با کلید اصلی PID و در جدولی دیگر به نام Order اطلاعات مربوط به کالاهای سفارش داده شده توسط تمام مشتریان با کلید اصلی OID نگه‌داری می‌شود. برای اینکه در جدول Order بتوانیم تشخیص دهیم هر کالا توسط چه فردی سفارش داده شده است کافی است PID فرد سفارش دهنده را نیز به این جدول اضافه کنیم. در این حالت ویژگی PID در جدول دوم یک کلید خارجی است.

رابطه‌هایی که در خود داده‌ها را نگه‌داری می‌کنند در قالب Table پیاده‌سازی می‌شوند و به رابطه‌های اصلی (یا Base Relations) موسوم هستند. در مقابل، رابطه‌هایی نیز وجود دارند که داده‌ای را نگه‌داری نمی‌کنند بلکه آن‌ها را با انجام اعمالی روی رابطه‌های اصلی ایجاد می‌کنند. به این نوع رابطه‌ها، رابطه‌های مشتق شده (یا Derived Relations) گفته می‌شود و در قالب دید (View) ها و پرس و جو (Query) ها پیاده‌سازی می‌شوند. ممکن است رابطه‌های مشتق شده اطلاعات خود را از یک یا چند رابطه دریافت کنند.

عملگرهای رابطه‌ای

پرس و جوهایی که روی پایگاه‌داده‌های رابطه‌ای انجام می‌شود براساس جبر رابطه‌ای (Relational Algebra) شکل گرفته‌اند. در جبر رابطه‌ای هشت عملگر پرکاربرد وجود دارد که حاصل آن‌ها در قالب یک رابطه و به صورت زیر تعریف می‌شود. توجه داشته باشید برای عملگرهای اجتماع، اشتراک و تفاضل نکته قابل توجه در مورد رابطه‌هایی که به عنوان عملوند استفاده می‌شود اینست که این رابطه‌ها باید دارای مجموعه ویژگی‌های یکسانی باشند.

  • عملگر اجتماع (Union): این عملگر دوتایی (باینری یا دو عملوندی) بوده و شامل تمام تاپل‌های موجود در عملوندهایش خواهد بود. در رابطه حاصل، ردیف‌های تکراری حذف می‌شوند.
  • عملگر اشتراک (Intersection): حاصل این عملگر دوتایی شامل مجموعه تاپل‌هایی خواهد بود که در هر دو رابطه مشترک هستند.
  • عملگر تفاضل (Difference): حاصل این عملگر دوتایی شامل تاپل‌هایی از رابطه اول خواهد بود که در رابطه دوم وجود ندارند.
  • عملگر ضرب دکارتی (Cartesian Product): هر تاپل حاصل از این عملگر دوتایی با الحاق یک تاپل از رابطه اول و یک تاپل از رابطه دوم شکل می‌گیرد.
  • عملگر انتخاب (Selection): عملگری یکانی است که تنها تاپل‌هایی از رابطه خود را برمی‌گرداند که شرط یا معیار خاصی را برآورده می‌کنند.
  • عملگر تصویر (Projection): عملگری یکانی است که تنها ویژگی‌های مشخص شده را از تاپل‌های موجود استخراج می‌کند.
  • عملگر پیوند (Join): رایج‌ترین نوع این عملگر به پیوند طبیعی (Natural Join) مشهور است. رابطه حاصل از این عملگر دوتایی شامل تمام ویژگی‌های موجود در رابطه‌های دو عملوندش می‌باشد و با الحاق تاپل‌هایی از دو رابطه که روی ویژگی‌های مشترکشان مقادیر یکسان دارند شکل می‌گیرد.
  • عملگر تقسیم (Division): حاصل این عملگر دوتایی تنها شامل ویژگی‌هایی از رابطه اول خواهد بود که در رابطه دوم وجود ندارند. تاپل‌های رابطه حاصل نیز شامل مقادیر این ویژگی‌ها در تاپل‌هایی از رابطه اول خواهد بود که ترکیب آن‌ها با تمام تاپل‌های رابطه دوم در رابطه اول وجود داشته باشد.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

پایگاه داده Database

پایگاه داده یا Database چیست؟

پایگاه داده (Database یا به اختصار DB)، به مجموعه‌ای سازمان‌یافته از داده‌ها گفته می‌شود که عناصری نظیر شِماها (Schema)، جداول (Table)، پرس و جوها (Query)، دیدها (View) و … را شامل می‌شود.

امروزه همراه با رشد انفجارگونه داده‌های تولید شده توسط سازمان‌ها، رسانه‌ها، افراد و حتی ابزارهای ساخت بشر (نظیر حسگرها) و …، ردپای حضور پایگاه داده‌ها در زندگی بشر از سیستم‌های کتابخانه‌ای گرفته تا سامانه‌های بانکی و سلامت، حمل و نقل عمومی و … قابل مشاهده است. حتی سیستم‌های مدیریت محتوا (CMS) نظیر وردپرس نیز وبسایت‌ها را در قالب مجموعه‌ای از صفحات در یک دیتابیس ذخیره می‌کنند.

معمولا داده‌هایی که در یک دیتابیس ذخیره می‌شوند از نظر منطقی داده‌های مرتبطی هستند. به عنوان مثال فرض کنید پایگاه داده‌ای شامل داده‌های مربوط به یک سازمان مشخص باشد. در چنین دیتابیسی، یک جدول برای نگه‌داری داده‌های کارکنان سازمان از قبیل کد ملی، جنسیت، میزان حقوق، آدرس محل زندگی، شماره تماس، سِمَت و … در نظر گرفته شده است. داده‌های مربوط به محصولات (نظیر قیمت و وزن) یا خدمات سازمان نیز در جداولی مجزا نگه‌داری می‌شوند.

معمولا بازیابی، تعریف، بروزرسانی و مدیریت (حجم معمولا عظیم) داده‌های موجود در یک دیتابیس از طریق سامانه‌ای موسوم به سیستم مدیریت پایگاه داده (DBMS) صورت می‌گیرد. اغلب این سیستم‌ها از مدل رابطه‌ای (Relational Model) پشتیبانی می‌کنند. در این مدل، داده‌ها در قالب چندتایی‌ها (یا رکوردهایی با تعداد مشخصی مولفه) نمایش داده می‌شوند و مجموعه‌ای از این چندتایی‌ها در کنار یکدیگر یک رابطه (یا جدول) را تشکیل می‌دهند. برخی از این سیستم‌ها اصطلاحا همه منظوره (یا General Purpose) هستند و از کاربردهای متنوعی پشتیبانی می‌کنند. در مقابل، برخی دیگر خاص منظوره (یا Special Purpose) هستند و با کاهش پیچیدگی‌ها برای یک حوزه‌ی معین (نظیر مدیریت داده‌های ایمیل) مورد استفاده قرار می‌گیرند.

انواع مختلفی از پایگاه داده‌ها وجود دارد. دسته‌بندی پایگاه داده‌ها معمولا براساس نوع محتوا، حیطه کاربرد یا وجوه فنی و ساختار پایگاه داده صورت می‌گیرد. زبان‌های پایگاه داده‌ای گونه‌ای از زبان‌های خاص دامنه (DSL) به شمار می‌روند که شامل سه بخش زبان تعریف داده، زبان دستکاری داده و زبان پرس و جو می‌شوند. گفتنی است زبان پرس و جوی ساخت یافته (SQL) از جمله مشهورترین این زبان‌ها به شمار می‌رود.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا