مقاله مدل شی گرایی و رابطه ای در پایگاه داده

دانلود مقاله مدل شی گرایی و رابطه ای در پایگاه داده

دانلود مقاله مدل شی گرایی و رابطه ای در پایگاه داده – مقاله و مقاله رشته کامپیوتر

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

اما شی گرایی به چه معناست؟
متد شی گرایی یک را ه متفاوت مشاهده برنامه هاست. با متد شی گرایی، شما یک برنامه را به قطعات بسیار کوچک تقسیم می کنید، که تا اندازه ای مستقل از یکدیگر می باشند. به آن مانند ساختمانی از بلوک ها نگاه کنید.

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

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

برنامه‌ نویسی شی‌گرا
برنامه نویسی شی‌گرا (به انگلیسی Object Oriented Programming مخفف OOP) شیوه‌ای ازتحلیل و طراحی نرم افزار است که بر تجزیه‌ی مسئله به اشیاء تاکید دارد. اشیاء صور انتزاعی از ماهیت‌های مطرح در مسئله هستند که دو جنبه دارند. اشیاء دارای حالت یا داده بوده و همچنین دارای عملیات بر روی داده‌ها می‌باشند. این نوع نگرش دارای مزایای بسیاری از جمله مدیریت پیچیدگی وهزینه نگهداری کمتری است.
در برنامه نویسی شی‌گرا (Object Oriented) همه چیز یک شی (Object)است. هر شی ویژگی‌ها(Properties) و توابع مربوط به خودش را دارد.
زبانهای برنامه نویسی شی گرا، زبانهایی هستند که در آن برنامه نویس می‌تواند اشیا مختلفی را تعریف نماید و از اشیاء تولید شده استفاده نماید. هر شی یک سری خصوصیت و قابلیت دارد، که اصطلاحاً Properties و Methods خوانده می‌شوند. در این روش از برنامه نویسی دید برنامه نویس به سیستم دید شخصی است که سعی می ماید به پیدا کردن اشیاء مختلف در سیستم و برقراری ارتباط بین آنها سیستم را تولید نماید.

مثال: در اطراف ما اشیا زیادی وجود دارد و در طبیعت همه چیز از اشیاء ساخته شده است. مثلا یک شی را در نظر میگیریم:یک ماشین باربری.این ماشین یک سری خصوصیات دارد، مثلاً چهار چرخ، یک پدال ترمز، یک پدال گاز، یک فرمان و یک محل بزرگ برای قرار دادن اشیاء در آن و… این ماشین در صورتی که ما به پدال گاز آن فشار بدهیم حرکت می‌کند، در صورتی که فرمان آن را بچرخانیم تغییر مسیر می‌دهد. پس این شی علاوه بر یکسری خصوصیات، یک سری رفتار مشخص هم به ما نشان می‌دهد. ولی آیا فقط این ماشین است که این کار را انجام می‌دهد؟ مسلماً نه. تمامی ماشین ها این کار را انجام میدهند. پس مامی‌توانیم این ماشین را ‘تعریف’ کنیم و بگوییم:

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

مفاهیم فوق دقیقا در زبانهای برنامه نویسی شی گرا استفاده شده و مورد استفاده قرار میگیرند. در زبانهای برنامه نویسی شی گرا هم اشیاء زیادی وجود دارند که برنامه نویسان می‌توانند از آنها استفاده کنند. اگر در حال حاضر به صفحه کامپبوتر خود نگاه کنیم، اشیاء برنامه نویسی مختلفی را مشاهده می‌کنیم. مثلاً همین برنامه مرورگر ما، دارای یک شی دگمه است که عنوان آن در بالای صفحه، با نامهای back، forward، stop و .. چیده شده است. این دگمه‌ها همه از نوع دگمه (buttin)هستند و با هم تفاوتها و شباهتهایی دارند. مثلاً هر کدام داری تصویر متفاوت هستند و با کلیک روی آنها عمل متفاوتی انجام داده می‌شود. ولی در برخی از چیزها هم مشترکند، مثلاً روی همه آنها می‌شود کلیک کرد یا وقتی ماوس را روی هر کدام میبریم، یک پیام به ما نمایش میدهند. (بااین حال مثلاً تفاوت رنگ آن ها ملاک نیست.)برنامه نویسان شی گرا از اشیا موجود استفاده می‌کنند و یا اشیاء جدیدی را درست می‌کنند و با قرار دادن این اشیاء سیستم را تشکیل می دهند.

ارتباط اشیاء
مجدداً به مثال ماشین باربری بر میگردیم وحالا یک ماشین سواری را تعریف کنیم. ماشین سواری شی است که چهار چرخ، یک ترمز، یک پدال گاز و یک صندوق عقب دارد. این تعریف به تعریف ماشین باربری بسیار شبیه است. به عبارت دیگر ما به یک تعریف جدید رسیده ایم، به اسم خودرو.’خودرو’ وسیله‌ای است که چهار چرخ، یک ترمز، یک پدال گاز دارد. پس از این به بعد تعریف ماشین باربری و ماشین سواری خیلی ساده تر می‌شود.
ماشین باربری’خودرویی’ است که محلی برای قرار دادن بار داشته باشدو ماشین سواری’خودرویی’ است که صندوق عقب داشته باشد. حالا:

* اگر کسی به درب کارخانه مراجعه کند و بگوید که’خودرو’ میخواهد، چیزی دریافت نمیکند. خودرو یک تعریف انتزاعی است، برای تعریف خودرو شی وجود ندارد پس مشتری تنها میتواتند ماشین باربری یا ماشین سواری بخواهد.
* کارواش را در نظر می گیریم. این کارواش “خودرو” را تمیز می‌کند و دیگر به طور جزئی عنوان نمیکند که کدام نوع خودرو را تمیز می‌کند. به عبارت دیگر نوع “خودرو” برای کارواش مهم نیست.
* وقتی شخصی قصد اجاره خودرویی دارد، و میخواهد جنسی را حمل کند در هنگام نماس با متصدی کرایه ماشین میگوید: (اگر خودرو شمااز نوع باربری است، برای من ارسال کنید) ولی اگر قصد جابجا شدن را دارد میگوید :(برای من یک ماشین سواری بفرستید.)

در زبان برنامه نویسی شی گرا نیز اشیا مختلفی وجود دارند که تعریف آنها تکمیل کننده یکدیگر است، به عبارت دیگر اشیا از یکدیگر ارث بری می‌کنند. برخی از تعاریف کاملاً عام است و نمی‌توان از آنها شی ساخت و تنها تعریف هستند. به این تعاریف Interface گفته می‌شود.

تفاوت متد شی گرایی با روش سنتی توسعه
در روش سنتی، روش توسعه به همراه اطلاعاتی که سیستم نگهداری خواهد کرد به خودمان وابسته است.
در این روش، ما از کاربران می پرسیم که چه اطلاعاتی را نیاز دارند، پایگاه داده ای را طراحی می کنیم که اطلاعات را نگه دارد، صفحاتی را تهیه می کنیم تا اطلاعات را بگیرد، و گزارشاتی را چاپ می کنیم تا اطلاعات را برای کاربر نمایش دهد. بعبارت دیگر، ما برروی اطلاعات متمرکز می شویم و کمتر توجه می کنیم که چه کاری با این اطلاعات انجام شده است یا رفتار سیستم چگونه است. این روش data-centric (مبتنی بر داده) نامیده شده است. و برای ایجاد هزاران سیستم در سال، ایجاد شده است.
مدلسازی Data-centric مخصوص طراحی پایگاه داده و گرفتن اطلاعات خیلی مهم می باشد، اما انتخاب این روش در زمان طراحی برنامه های تجاری با مشکلاتی همراه است. یک چالش بزرگ این است که درخواستهای سیستم چندین بار تغییر خواهند کرد. سیستمی که از روش data-centric استفاده می نماید، می تواند به آسانی تغییر در پایگاه داده را مدیریت نماید. اما اجرای تغییرات در قوانین تجاری یا رفتار (behavior) سیستم آن قدر آسان نمی باشد.
متد شی گرایی در پاسخ به این مشکل ، ایجاد شده است. با متد شی گرایی هم بر اطلاعات و هم بر رفتار متمرکز می شویم. در نتیجه اکنون می توانیم سیستم هایی را ایجاد نماییم که انعطاف پذیر شده اند تا اطلاعات و یا رفتار را تغییر دهند.
مزیت این انعطاف پذیری با طراحی یک سیستم شی گرایی بخوبی شناخته شده است. برای درک بهتر این مطلب نیاز به شناخت مفاهیم زیر هم هست که به تدریج آنها را شرح می دهیم:

فهرست مطالب
چکیده ۱
مقدمه ۲
ارتباط اشیاء ۴
تفاوت متد شی گرائی با روش سنتی توسعه ۵
نهان سازی((Encapsulation 7
ایده نهان سازی در سیستم بانکی ۸
وراثت((Inheritance 9
چند ریختی((Polymorphism 11
OMT, And UML 13
نمودارهای UML 15
بانک های اطلاعاتی شیء گرا
مقدمه ۱۶
موفقیتهای بانک اطلاعاتی شیء گرا ۱۶
OODB به فرد اجازه تعریف تجرید را می دهد ۱۷
OODB توسعه بعضی از ارتباطات را آسان می کند ۱۸
OODB نیاز به کلیدهای تعریف شده توسط کاربر را از بین می برد ۱۸
توسعه مجموعه جدیدی از تساوی مستندات ۱۹
OODB نیاز به پیوند را کاهش می دهد ۱۹
کارآیی OODB نسبت به مدل رابطه ای ۲۰
پشتیبانی OODBبرای Versioning و تراکنش بلند مدت ۲۲
OODB جبر شیء گرا توسعه یافته ۲۲
ضعف های بانک اطلاعات مدل شیء گرا ۲۳
فقدان همکاریRDB ها و OODB 23
کمبود بهینه سازی پرسش ها ۲۴
۱- انواع داده اضافی ۲۴
۲- تعویض گوناگونی نوع ها ۲۴
۳- اشیاء مختلط ۲۴
۴- زبان های پرسش ۲۵
۵- هویت شیء ۲۵
فقدان جبر پرسش استاندارد ۲۶
فقدان سهولت پرسش ۲۶
عدم پشتیبانی از نما ۲۶
نگرانی امنیت در OODB 27
عدم پشتیبانی از تغییرات تعریف کلاس پویا ۲۷
پشتیبانی محدود از قیود ثابت ۲۸
امکانات محدود انجام میزان سازی ۲۸
پشتیبانی اندک از اشیاء مختلط ۲۸
بازدهی محدود ۲۸
یکپارچگی محدود با سیستم های برنامه نویسی شیء گرای موجود ۲۹

نگاشت تراکنشهای پایگاه داده شیء گرا به تراکنشهای رابطه ای
(Mapping object-oriented database transactions into relational transactions)

دادِگان(پایگاه داده ها یا بانک اطلاعاتی) ۳۰
۱- تاریخچه پایگاه داده ۳۳
۲- انواع دادِگان ها ۳۴
۱-۲ دادگان رابطه ای ۳۴
۲-۲ دادگان شیء گرا ۳۴ ۳- مدل های پایگاه داده ۳۴
۱-۳ مدل تخت ۳۶
۲-۳ مدل شبکه ای(Network) 38
۳-۳ مدل رابطه ای ۳۹
۴-۳ پایگاه داده های چند بعدی ۴۰
۵-۳ پایگاه داده شیء ۴۱
۴- ویژگی های سیستم مدیریت پایگاه داده ۴۱
۵- فهرست سیستم های متداول مدیریت دادگان ۴۲
نقش DBA 43
ایده اصلی ۴۴
اطلاعات سایه ۴۷ انطباق Meta Data 48
نگاشت ساختارهای وراثتی ۴۹
نگاشت کلاس وراثت به یک جدول تنها ۵۰
نگاشت هر کلاس واقعی به جدول مخصوص خود ۵۱
نگاشت هر کلاس به جدول مخصوص آن کلاس ۵۲
نگاشت کلاس به یک ساختار نوعی جدولی ۵۲
نگاشت وراثت چندگانه ۵۴
نگاشت رابطه ای اشیا ۵۵
میزان سازی نگاشت ۵۷

UML & OO
تاریخچه ۵۸
دیدگاه شی گرا(Object Oriented) 59
شی(Object) 59
کلاس(Class) 60
مسئولیت(Responsibility) 61
صفات(Attribute) 61
صفات عمومی(Public) 61
صفات خصوصی(Private) 62
عملکرد(Operation) 62
ارتباط(Connection) 62
انواع ارتباطات در مدل شی گرا ۶۲
الف-تعمیم(Generalization) 62
ب- تناظر(Association) 63
رابطه Normal 63
رابطه Aggregation 64
رابطه Composition 64
ج- وابستگی(Dependency) 65
متدولوژی ۶۵
۱- سنتی ۶۵
۲- فرآیندگرا(Process Oriented Methodology) 66
۳- ساختمان داده(Data Structure Methodology) 66
۴- مدلسازی اطلاعات(Information Modeling) 66
۵- شی گرا(Object Oriented) 66
هفت گام اساسی مدل شیء گرا ۶۷
زبان مدل سازی یکپارچه(Unified Modeling Language) 68
اهداف UML 68
نمودارهای UML 69
۱- نمودار کلاس(Class Diagram) 69
۲-نمودار مورد کاربرد(Use Case Diagram) 69
۳- نمودار رفتار سیستم(Behaviour Diagram) 69
الف- نمودار حالت(State Chart) 69
ب- نمودار فعالیت(Activity Diagram) 69
۴-Behavior Diagram 70
الف- نمودار توالی(Sequence Diagram) 70
ب- نمودار همکاری(Collaboration diagram) 70
۵- نمودار استقرار(Implementation Diagram) 70
الف- Component Diagram 70
ب- Deployment Diagram 70
فرآیند توسعه(Unified Process) 70
Use Case 72
Actor(کنشگر) ۷۲
Activity Diagram 73
EUP چیست ۷۳
تاریخچه متدولوژی:AUP-RUP-EUP 74
عناصرRUP 75
مروری کلی بر متدولوژی RUP 76
۱- فاز آغازین(Inception Phase) 78
۲- فاز تفصیل(Elaboration Phase) 79
۳- فاز ساخت(Constructin Phase) 80
۴- فاز انتقال(Transition Phase) 81
طرح تکرار Iteration Plan 82
موارد جدید EUP نسبت به RUP 82
نتیجه گیری ۸۴
منابع و مآخذ ۸۷


منابع و مراجع :
کتاب Artificial intelligence structures & strategies for complex problem solving
نوشته George F.Luger & william A. Stubble field
چاپ Wesley long man Inc, 2000
۱٫ Luca Cabibbo, Antonio Carosi, ” Managing Inheritance Hierarchies in Object/Relational Mapping Tools ” Journal of Systems and Software, Volume 77, Issue 2, August 2005, Pages 193-207
۲٫ Wolfgang Keller, ” Mapping Objects to Tables A Pattern Language ” Proceedings EuroPLoP 1997
۳٫ Ronald Bourret, Christof Bornh, Alejandro P. Buchmann, ” A Generic Load/Extract Utility for Data Transfer Between XML Documents and Relational Databases” Information and Software Technology, Volume 42, Issue 3, 25 February 2000, Pages 197-210
۴٫ Martin Snyder, Ted O’Connor. ” Object-Relational Mapping in Java with Simple ORM ” Dr. Dobb’s Journal. San Mateo: Dec 2005. Vol. 30, Iss. 12; p. 34 (3 pages)
۱٫ Achievement and weaknesses of object oriented databases , Sikha Bagui, Department of Computer Science, University of West Florida, U.S.A.
۲٫ On type systems for object oriented database programming language, Yuri Leontiev , M. Tammer Ozsa , Duane Szafron,


فرمت فایل: WORD

تعداد صفحات: 96

پس از ثبت دکمه خرید و تکمیل فرم خرید به درگاه بانکی متصل خواهید شد که پس از پرداخت موفق بانکی و بازگشت به همین صفحه می توانید فایل مورد نظر خورد را دانلود کنید. در ضمن لینک فایل خریداری شده به ایمیل شما نیز ارسال خواهد شد. لینک دانلود فایل به مدت 48 ساعت فعال خواهد بود.


مطالب مرتبط