رکورد یا ساختار (علم کامپیوتر)

در علم کامپیوتر، یک رکورد (همچنین به آن ساختار یا داده مرکب گفته می‌شود) مجموعه ای از داده‌های ساختار یافته‌است. رکوردهای موجود در یک پایگاه داده یا صفحه گسترده معمولاً «ردیف» نامیده می‌شوند.

یک رکورد مجموعه‌ای از اطلاعات (Field) است که این اطلاعات می‌توانند از انواع مختلف داده‌ها باشند و معمولاً با تعداد و ترتیب ثابت هستند. فیلدهای یک رکورد ممکن است به‌ویژه در برنامه‌نویسی شیءگرا، عضو (Member) یا المان (Element) نامیده شوند که در اینصورت ممکن است با عناصر یک مجموعه اشتباه گرفته شوند.

به‌عنوان مثال، یک تاریخ که شامل فیلد سال، ماه و روز است می‌تواند به عنوان یک رکورد ذخیره شود. یک رکورد پرسنل ممکن است شامل نام، حقوق و دستمزد و رتبه باشد. رکورد اطلاعات یک دایره می‌تواند دارای یک مرکز و شعاع باشد - در این مثال، خود این مرکز ممکن است به عنوان یک رکورد نقطه ای که حاوی مختصات x و y است، نشان داده شود.

تفاوت رکورد و آرایه در این است که تعداد اعضای یک رکورد معمولاً ثابت بوده و هر عضو دارای نام است و می‌تواند نوع مختلفی داشته باشد.

رکورد یک نوع داده است که مقادیر و متغیرهایی را توصیف می‌کند. بیشتر زبان‌های رایانه‌ای مدرن به برنامه‌نویس اجازه می‌دهد انواع جدیدی از رکوردها را تعریف کند. این تعریف شامل مشخص کردن نوع داده‌های هر فیلد است که به آن می‌توان دسترسی پیدا کرد. در تئوری نوع، نوع محصول (بدون نام فیلد) به دلیل سادگی، عموماً ترجیح داده می‌شوند، اما انواع رکورد مناسب در زبان‌هایی مانند System F-sub مورد مطالعه قرار می‌گیرد. از آنجا که سوابق نظری نوع ممکن است علاوه بر داده‌ها شامل زمینه‌های درجه اول عملکرد نیز باشد، می‌توانند بسیاری از ویژگی‌های برنامه‌نویسی شی گرا را بیان کنند.

رکوردها می‌توانند در هر فضای ذخیره‌سازی، از جمله حافظه اصلی و دستگاه‌های ذخیره انبوه مانند نوارهای مغناطیسی یا دیسک‌های سخت وجود داشته باشند. رکوردها یک مؤلفه اساسی اکثر داده ساختارها به ویژه داده ساختارهای پیوندی هستند. بسیاری از پرونده‌های رایانه ای به عنوان آرایه ای از سوابق منطقی، که اغلب به سوابق فیزیکی بزرگتر یا بلوک‌هایی برای کارایی دسته‌بندی می‌شوند، سازماندهی می‌شوند.

پارامترهای یک عملکرد یا رویه اغلب می‌توانند به عنوان قسمتهایی از یک رکورد مشاهده شوند؛ و آرگومان‌های ارسال شده به آن عملکرد می‌توانند به عنوان یک مقدار رکورد که در زمان تماس به آن متغیر اختصاص می‌یابد، مشاهده شوند. همچنین، در پشته فراخوانی که اغلب برای اجرای تماسهای رویه ای استفاده می‌شود، هر ورودی یک سابقه فعال سازی یا قاب تماس است که شامل پارامترهای رویه و متغیرهای محلی، آدرس برگشت و سایر قسمتهای داخلی است.

یک شیء در زبان برنامه‌نویسی شیءگرا، درواقع یک رکورد است که رویه‌هایی جهت کنترل رکورد به آن اختصاص یافته است؛ و انواع شیء حالات پیچیده‌تری از انواع رکورد هستند. در واقع در اکثر زبان‌های شیءگرا، رکوردها صرفاً حالت‌های خاصی از اشیاء هستند که بعنوان ساختار داده قدیمی ساده (PODS) شناخته می‌شوند تا از اشیائی که از ویژگی‌های شیءگرایی استفاده می‌کنند متمایز گردند.

یک رکورد را می‌توان به عنوان آنالوگ رایانه‌ای یک دستیار ریاضی مشاهده کرد، البته ممکن است بسته به قراردادها و زبان برنامه‌نویسی خاص تاپل یک رکورد در نظر گرفته شود یا برعکس. در همین راستا، یک نوع رکورد را می‌توان به عنوان آنالوگ زبان رایانه ای محصول Cartesian دو یا چند مجموعه ریاضی یا اجرای یک نوع محصول انتزاعی به یک زبان خاص مشاهده کرد.

منابع 

انواع داده
انواع داده ترکیبی