PDA

View Full Version : سوال: فرق Table و Entity چیه؟



cardano7
چهارشنبه 15 اردیبهشت 1389, 07:27 صبح
سلام
فرق Table و Entity چیه؟
جفتشون که مثل هم به نظر می رسند؟
(منظورم فرق بنیادین اوناست نه اینجا هر کدوم رو کجا به کار می برند!)

Yasersadegh
چهارشنبه 15 اردیبهشت 1389, 08:31 صبح
سلام دوست عزیز
نظر من در مورد سوال شما اینه که
entity یک موجودیت است در مبحث مهندسی نرم افزار، یعنی در هنگام تولید یه نرم افزار باید تمام موجودیت ها رو پیدا کنیم و آنها را مشخص کنیم. به عبارت دیگر entity فقط در مستندات برایه درک بهتر محیط به کار می رود.
هر موجودیت در محیط برنامه اوتوماسیون، تبدیل به یک table میشود، تا اطلاعات هر موجودیت در آن ذخیره شود. یعنی موجودیت ها در بخش پیاده سازی تبدیل به table ها میشوند.:متفکر:
اما توجه کنید که همه table ها مربوط به موجودیتها نیستند، زیرا برخی از table ها مربوط به ارتباط های بین موجودیت ها میباشند.

امیدوارم که متوجه شده باشید.:اشتباه:
موفق باشید:چشمک:

sia_2007
چهارشنبه 15 اردیبهشت 1389, 08:40 صبح
دوست عزیز فرقهایشان هم در طراحی است و هم در استفاده
برای مثال زمانی که ما دو جدول با رابطه ی چند به چند داریم؛ عملا 3 جدول داریم که وسطی جدول میانی نام دارد.
اما در همین مثال ما دو تا Entity بیشتر نداریم.
یا برای مثال زمانی که Entity ها از روی فایل های XML ساخته میشوند ما حتی یک جدول هم نداریم.
بحث Entity به منطق برنامه بر میگردد و کاملا انتزاعی است در حالی که جدول و فایل XML و ... نحوه پیاده سازی هستند.
زمانی که طراح Business برنامه کار طراحی را به پایان میرساند؛ یک تعداد Entity دارد و بسته به این که DAL چگونه پیکره بندی شده باشد ممکن است چندین جدول و فایل و ... داشته باشیم.
برای این که وضعیت DAL تاثیری روی برنامه نگذارد؛ ما با Entity Framework ؛ از DAL ؛ Entity میگیریم و با LINQ روی آنها کار میکنیم و به صورت 100% لایه ی Business را از تغییرات DAL مصون نگه میداریم.

cardano7
چهارشنبه 15 اردیبهشت 1389, 09:14 صبح
دوست عزیز فرقهایشان هم در طراحی است و هم در استفاده
برای مثال زمانی که ما دو جدول با رابطه ی چند به چند داریم؛ عملا 3 جدول داریم که وسطی جدول میانی نام دارد.
اما در همین مثال ما دو تا Entity بیشتر نداریم.
یا برای مثال زمانی که Entity ها از روی فایل های XML ساخته میشوند ما حتی یک جدول هم نداریم.
بحث Entity به منطق برنامه بر میگردد و کاملا انتزاعی است در حالی که جدول و فایل XML و ... نحوه پیاده سازی هستند.
زمانی که طراح Business برنامه کار طراحی را به پایان میرساند؛ یک تعداد Entity دارد و بسته به این که DAL چگونه پیکره بندی شده باشد ممکن است چندین جدول و فایل و ... داشته باشیم.
برای این که وضعیت DAL تاثیری روی برنامه نگذارد؛ ما با Entity Framework ؛ از DAL ؛ Entity میگیریم و با LINQ روی آنها کار میکنیم و به صورت 100% لایه ی Business را از تغییرات DAL مصون نگه میداریم.

ممنون از پاسخ شما. من خودم موقع کار کردن چه با Linq2Sql و چه با EF کلی مشکل دارم. چون حذف و اضافه ی دوباره ی رکوردها با مشکل مواجه میشه. و از طرفی نه می دونم attach چی هست و نه درک درستی از دیتابیس دارم. هر چند تا حالا کلی برنامه نوشتم که از دیتابیس استفاده کرده و مدت هاست که از Linq2Sql و یکی دو ماهی هم هست که از EF استفاده کردم اما باید اعتراف کنم بدون دونستن مفاهیم دیتابس کار کردن با اونا مشکل میشه. توی سایت ها هم یکم از مفاهیم خیلی اولیه مثل PrimaryKey گفته میشه و دیگه تموم. شما لینک خوب سراغ دارید؟

sia_2007
چهارشنبه 15 اردیبهشت 1389, 21:12 عصر
والا دنیای من Silverlight + SQL + Entity Framework شده است.
اتفاقا از EF سر رشته ی بسیار بسیار کمی دارم.
اما میبینم اینها همگی با SOA
Service Oriented Architecture
به خوبی مچ شده اند.
دیگر هم نمیخواهم در فیلدهایی که قبلا کار میکردم وارد شوم.
اما خب ببین EF هر جایی خوب نیست.
من هر کسی رو که EF رو برده تو ASP.Net دپرس شده.
اما مثلا برای Silverlight خوبه.
اون LINQ To SQL رو هم وقتی میشه به خوبی استفاده کرد که مفاهیم SQL و LINQ رو به خوبی فهمیده باشه.
نه این که ببینه کد LINQ اش تبدیل شده به یه مشت Sub Query !!!
توصیه من اینه که مبانی پایه #C را که بحث زیادی نیست یاد بگیرید.
سپس یک کلاس SQL هم بروید.
سپس کتاب

Wrox.Professional.ADO.NET.3.5.with.LINQ.and.the.En tity.Framework.Feb.2009.pdf

رو بخونید.
البته حالا که ADO.Net Entity Framework 4 اومده.
تمومه؛ فقط میمونه تست و تمرین و ممارست !!!

Open-Source
چهارشنبه 15 اردیبهشت 1389, 21:50 عصر
من به شما پیشنهاد میکنم که کتاب:پایگاه داده آقای روحانی رانکوهی رو بگیری و مطالعه کنی.
خیلی کتاب تمیزی هستش (به نظر من).
اگر مفهوم پایگاه داده رو درست متوجه بشی میتونی:
برنامه های استاندارد
گسترده
و تمیزی بنویسی

cardano7
پنج شنبه 16 اردیبهشت 1389, 03:00 صبح
با اجازه ی شما چند سوال دیگه هم دارم:

1-گفته میشه که LINQ To SQL جدید اومده و مایکروسافت هم از دستش ناامید شده و می خواد بگذاردش کنار. آیا این حرف درسته؟

2- من تا مدت ها با SQL به شکل عادی(تعریف کانشکشن و آداپتور و دیتا ست) کار کردم. به این روش سنتی چی گفته میشه؟

3- بعد از مدت ها مشکل با Linq2Sql دیدم یک عده EF رو معرفی می کردنند. در حالی که تا اون زمان از وجود EF خبر نداشتم. به جز این روش ها چه روش های دیگری هم استفاده میشه؟ (می خوام دوباره غافلگیر نشم :D)

Omid.rajabalian
یک شنبه 26 دی 1389, 21:54 عصر
به طور خلاصه و مفید در Table ساختار دیتا بیسی مد نظر است ولی entity کاملا با مفاهیم شی گرا رو به رو هستید و یعنی آن چیز هایی که در مدل به عنوان table نگاه می کنید در اصل یک object می باشد که شامل فیلد هایی است که بتوانید اعمال مورد نظر را روی آن انجام دهید .
به طور کل ماکروسافت مسیری را در حال طی کردن می باشد که به تمامی قضا یا به شکل Object oriented نگاه کنید و در اصل دیتا بیس داره به دست فراموشی سپرده میشه ، و تا دیر نشده باید دید Object Oriented خود را وسیع تر کنید

teardrop
سه شنبه 08 شهریور 1390, 19:46 عصر
به طور خلاصه و مفید در Table ساختار دیتا بیسی مد نظر است ولی entity کاملا با مفاهیم شی گرا رو به رو هستید و یعنی آن چیز هایی که در مدل به عنوان table نگاه می کنید در اصل یک object می باشد که شامل فیلد هایی است که بتوانید اعمال مورد نظر را روی آن انجام دهید .
به طور کل ماکروسافت مسیری را در حال طی کردن می باشد که به تمامی قضا یا به شکل Object oriented نگاه کنید و در اصل دیتا بیس داره به دست فراموشی سپرده میشه ، و تا دیر نشده باید دید Object Oriented خود را وسیع تر کنید
شی گرایی یک مدل است نه یک بانک اطلاعاتی(دیتا بیس) شی گرا.
البته این درست است که مایکروسافت به سمت شی گرایی در حال حرکت است، ولی دیتابیس به فراموشی نمیرود.زیرا ابزار هایی مانند linq رهیافتی برای استفاده آسان تر و شی گرایی تر برای بانک های اطلاعاتی رابطه ای می باشد.
و در جایی خواندم که بانک های اطلاعاتی رابطه ای کم کم تا 100 اندی سال در خدمت هستند، آن هم به دلیل پشتوانه قوی ریاضیات در مبحث رابطه است. در کامل کردن نقل قول دوستمون به بانک اطلاعاتی شی گرایی،توصیه شده به مدل EER که توسعه یافته ی مدل ER برای شی گرایی است رجوع شود.