جمعه ۱۰ فروردین ۱۴۰۳ |  عضویت / ورود

OAV ؛ روش مهم و جالبی برای نمایش اطلاعات (Object-Attribute-Value)


برای نمایش دانش در دنیا روش‌های مختلفی وجود دارد که احتمالاً دانشجویان رشته کامپیوتر در درس «سیستم‌های خبره» و دیگر درس‌ها با آن‌ها تا حدودی آشنا شده‌اند.

به طور مثال ممکن است شما دانش [1] یا اطلاعات را به شکل درخت پارس نمایش دهید:

https://img.aftab.cc/news/94/parse_tree.jpg

یا به شکل FSM (Finite State Machine)‎ (ماشین حالت متناهی) نمایش دهید:

https://img.aftab.cc/news/94/MC-diagram.png

یا مثلاً به شکل ماتریس (همان FSM بالا را می‌توان اینطور نشان داد):

https://img.aftab.cc/news/94/MC-matrix.png

چیزی که اکثراً دیده‌اید نمایش Tabular یا جدولی اطلاعات است. مثلاً به این جدول که نام تعدادی user را در خود دارد، دقت کنید:

https://img.aftab.cc/news/94/tabular.png

نمایش جدولی در پایگاه داده، بسیار کاربرد دارد اما این نوع نمایش برای اشیائی است که صفات آن‌ها در ابتدای طراحی پایگاه داده ثابت است. مثلاً می‌دانیم که userهای ما فقط سه صفت uid و firstname و lastname دارند، اما اگر این صفات را ندانیم یا تعدادی را بدانیم و در طول زمان تعداد آن‌ها بیشتر شود چطور؟

نمایش OAV : مخفف Object-Attribute-Value:

اگر صفاتِ یک شیئ (Attributeهای آن) متغیر باشد، نمایش جدولی دیگر مناسب نیست. در این حالت، یکی از بهترین نمایش‌ها که در سیستم‌های مشهوری مانند WordPress از آن استفاده می‌شود، OAV (سه‌گانه‌ی شیئ-صفت-مقدار) است.

در این نوع نمایش، شما یک جدول دارید که سه ستون ثابت بیشتر ندارد؛ به نام‌های object و attribute و value

- در ستون object، کلمه کلیدیِ نماینده‌ی موجودیتِ شیئ ثبت می‌شود. (مثلاً در جدول بالا همه‌ی اشیای ما از نوع user هستند)

- در ستون attribute، کلمه کلیدی نماینده‌ی صفتِ آن شیئ ثبت می‌شود. (مثلاً uid، یا firstname ...)

- در ستون value، مقدار آن صفت برای آن شیئ ثبت می‌شود. (مثلاً 100 مقدار uid است و ali مقدار firstname و...)

نمایش OAV برای جدول بالا به صورت زیر خواهد بود:

https://img.aftab.cc/news/94/oav.png

این را برای دوستانی که در پروژه‌ها با ما همکاری می‌کنند نوشتم. خیلی‌‌ها به تحلیل این نوع مسائل که می‌رسند نمی‌دانند چطور باید ستون‌های جدولش را در نظر بگیرند؟ فکر می‌کنند باید با دستورات DDL (مخفف Data Definition Language ؛ یعنی دستوراتی مثل alter که با آن ساختار جداول پایگاه داده را تغییر می‌دهند) جدول را با شرایط جدید متناسب کنند! خیر، به ندرت پیش می‌آید که لازم باشد شما ساختار جدول را به هم بریزید! باید با نمایش OAV این قضایا را حل و فصل کنید.

 

مثلاً افرادی که به صورت حرفه‌ای با WordPress کار می‌کنند ممکن است بپرسند در وردپرس ما ممکن است ده‌ها افزونه نصب کنیم، با توجه به اینکه هر افزونه صفات (یعنی سرستون‌های) مختلفی دارد، یعنی برای هر افزونه یک جدول ایجاد می‌شود؟ خیر! اگر دقت کنید، وردپرس یک جدول دارد به نام Options که از همین روش برای ذخیره کردن اطلاعات مربوط به افزونه‌ها استفاده می‌کند:

https://img.aftab.cc/news/94/wordpress_oav.png

نمایش OAV در وردپرس - متوجه می‌شوید که به جای نام شیئ از آی.دی (option_id) استفاده کرده، ضمن اینکه گاهی مانند جدول users وقتی می‌دانیم همه‌ی اشیای ما، user هستند، می‌توان این ستون را حذف کرد. اینجا هم می‌دانیم که همه‌ی اشیای ما option هستند...

موفق باشید؛
حمید رضا نیرومند

ـــــــــــــــــــــــــــــــــــــــ

آدرس کوتاه این مطلب: http://yourl.ir/oav

[1] ما به داشته‌های خام می‌گویید «داده» (Data). وقتی داده‌ها پردازش می‌شوند، «اطلاعات» (Information) به دست می‌آید. از روی اطلاعات، «دانش» (Knowledge) به دست می‌آید (دانش معمولاً به صورت Rule یا قانون بیان می‌شود). (مثلاً: داده: دمای هوا مفنی ده است. اطلاعات: پس، هوا سرد است. دانش: پس باید لباس گرم بپوشم... سؤال: از روی دمای هوا نمی‌شد به این نتیجه رسید که باید لباس گرم پوشید؟ چرا! گاهی شما از روی داده به دانش می‌رسید. به تصویر زیر دقت کنید...)

https://img.aftab.cc/news/94/date-information-knowledge-decision.jpg


[ارسال شده در مورخه : سه شنبه، 6 بهمن، 1394 توسط Hamid]
[ #دانستني‌هاي IT]



بازدیدها از این مطلب: 4930 بار   امتیاز متوسط :   تعداد آراء: 4   امتیاز دهید:

نظرات طرح شده

نام: [ کاربر جدید ]
ایمیل:

نظر:


اجازه استفاده از تگهای HTML را ندارید


جمع عدد 11 با 5 را در كادر زیر وارد نمایید:
(این كار برای جلوگیری از فعالیت موتورهای اسپمر است)


* توجه: نظر شما بعد از بررسی، نمایش داده خواهد شد.

rosva                توسط rosva در مورخه : سه شنبه، 6 بهمن، 1394(لینک نظر)
سلام

تشکر بابت مطلب خوب و کاربردی اتون

من یه پیشنهاد داشتم

بنظرتون چطوره که یه سیستم امتیازدهی به هر مطلب اختصاص بدین؟

باتشکر


[ ارسال جوابیه ]

    Hamid (امتیاز : 1)
    توسط Hamid در مورخه : چهارشنبه، 7 بهمن، 1394
    سلام.

    زیر هر مطلب امکان رأی دادن به مطلب هست...


    [ ارسال جوابیه ]