190 likes | 416 Views
استخراج نمودارهای ER از پایگاه های داده سنتی مبتنی بر جدول. سید حامد حسینی نژاد 810187587 زمستان 88. مقدمه. تعریف مهندسی معکوس: فرآیند تحلیل سیستم به منظور مشخص کردن اجزای سیستم و روابط داخلی بین آنها برای توصیف سیستم در سطح بالاتر [3] تعریف مهندسی معکوس پایگاه داده:
E N D
استخراج نمودارهای ER از پایگاههای داده سنتی مبتنی بر جدول سید حامد حسینی نژاد 810187587 زمستان 88
مقدمه • تعریف مهندسی معکوس: • فرآیند تحلیل سیستم به منظور مشخص کردن اجزای سیستم و روابط داخلی بین آنها برای توصیف سیستم در سطح بالاتر[3] • تعریف مهندسی معکوس پایگاه داده: • فرآیند استخراج داده های منطقی و مفهومی از یک مجموعه داده ذخیره شده در قالب مشی پایگاهی یا مشی فایلی، از اطلاعاتی چون کدهای DDL، داده های دیکشنری، سطرهای ذخیره شده و متن برنامه مرتبط با اطلاعات ذخیره شده [2]
صورت مسئله • همواره تصور میشود که اطلاعات معنایی مرتبط با صفات، کلیدهای اصلی و خارجی به طور کامل در دسترسند. در حالیکه لزوما اینگونه نیست. • در این مقاله روشی برای استخراج نمودار ER از پایگاه داده مبتنی بر جدول مطرح میشود. • از ستون ها اطلاعات کمی در دست است و از کلیدها اطلاعاتی در دست نیست. • ورودی های اصلی مسئله: شما و سطرهای جداول
مراحل کلی کار • تحلیل کدها و داده های مرتبط • مقایسه فیلدها • تجزیه فیلدها • استخراج صفات معنایی از جداول و شماها • تشخیص کلیدهای اصلی، کلیدهای خارجی و محدودیت ها • استخراج نمودار ER از طریق ترکیب جداول و یافتن روابط بین آنها
فرم • یک مجموعه ساختار یافته از متغیرها • دارای فرمت مناسب برای ارتباط با پایگاه داده • کاربرد در بازیابی و نمایش داده ها • ایجاد از طریق کار با خروجی برنامه های کاربردی مرتبط با سیستم
لیست مراحل کار • 1- آماده سازی پروژه • 2- استخراج ساختار داده ها • 3- مفهوم سازی ساختار داده ها
آماده سازی پروژه • مرحله جمع آوری و طبقه بندی توضیحات و مشخصات مرتبط با داده های موجود در پایگاه داده • با استفاده از DDL ها، ساختار برنامه ی مرتبط با پایگاه داده و ... • این کار در قالب ساختن مجموعه ای از فرم ها صورت میگیرد. • هر فرم مجموعه ای از مشخصات مرتبط با هم دارد. • در نهایت، مجموعه ی فیلدهای فرم ها و فیلدهای پایگاه داده و داده های موجود در پایگاه داده، طی یک فرآیند وارد یک پایگاه داده SQL Server میشوند.
آماده سازی پروژه (ادامه) • در پایگاه داده SQL Server، چهار جدول جدید ساخته میشود تا عمل انتقال داده ها به این جداول صورت بگیرد. • جداول • Entity: اطلاعات مرتبط با فرم ها • Attribute: اطلاعات مرتبط با فیلدهای فرم ها • TableSchema: اطلاعات مرتبط با جداول موجود در پایگاه داده • FieldSchema: اطلاعات مرتبط با فیلدهای جداول موجود
آماده سازی پروژه (ادامه) • Create table Entity ( EntityNo int identity (1,1), EntityName varchar (20), primary key (EntityNo), )
آماده سازی پروژه (ادامه) • Create table Attribute ( EntityNo int, AttributeNo int, AttributeName varchar(20), primary key (EntityNo, AttributeNo), )
آماده سازی پروژه (ادامه) • Create table TableSchema ( TableName varchar (20), Meaning varchar (30), primary key (TableName) )
آماده سازی پروژه (ادامه) • Create table FieldSchema ( TableNamevarchar(20), FieldNamevarchar(20), meaning varchar(30), Data varchar(100), primary key (TableName, FieldName) )
استخراج ساختار داده • شامل سه مرحله است: • استخراج صفات • استخراج کلید • استخراج محدودیت
استخراج صفات • مقایسه صفات موجود در فرم ها با صفات موجود در جداول به منظور به دست آوردن معنای اصلی صفت (ممکن است با نام صفت متفاوت باشد. • قانون اصلی: • Let an unique value, v, is inputted in a display form under the caption, c, and there exists a table, t, which contains v under a field, f, that is, vЄΠf(t), then the meaning of the field f is the same as the meaning of the caption c. • مشکل فیلدهایی که شامل چند صفت اند؟
استخراج کلید • در پایگاه های داده قدیمی، مفهوم کلیدهای کاندیدا، اصلی و خارجی به طور ضمنی (و نه صریح) آمده اند. • راه حل: استفاده از فایل های ایندکس • فایل ایندکس: به کار رفته برای تسریع جستجو
استخراج کلید (ادامه) • ایده: اگر تعداد سطرهای فایل ایندکس با تعداد سطرهای جدول مرتبط با فایل ایندکس برابر باشد، فیلدهایی که روی آن ایندکس زده شده، به عنوان کلید کاندیدا در نظر گرفته میشود. • اگر چند کلید کاندیدا موجود باشد، ایندکسی که کمترین تعداد فیلد را دارد، به عنوان کلید اصلی در نظر گرفته میشود. • کلیدهای اصلی هر جدول در بقیه جداول چک میشوند تا کلیدهای خارجی پیدا شوند.
استخراج محدودیت • هدف اصلی: استخراج چندی رابطه های بین جداول • Query ارائه شده: • Select count(*) from ( select s.A from TA s join TB n on s.A = n.B )
استخراج مفهوم • هدف تشخیص موجودیت ها و ارتباط بین آنها • شبیه تبدیل رابطه شیئ گرا به پایگاه داده رابطه ای • چند نمونه ی اصلی: • تقسیم عمودی: تبدیل فیلد چند متغیره به یک جدول جدید • تقسیم افقی: تشکیل رابطه های Generalization و ... • تبدیل رابطه ی چند به چند به یک جدول جدید • ...
منابع • [1] D. Yeh, Y. Li, and W. Chu, "Extracting entity-relationship diagram from a table-based legacy database," Journal of Systems and Software, vol. 81, 2008, pp. 764-775. • [2] [Online] http://wiki.ercim.eu/wg/Software -Evolution/index.php/Terminology#D • [3] [Online] http://wiki.ercim.eu/wg/Software -Evolution/index.php/Terminology#R • [4] S. Strobl, M. Bernhart, T. Grechenig, W. Kleinert, and I.T. Services, "Digging Deep: Software Reengineering Supported by Database Reverse Engineering of a System with 30+ Years of Legacy," Reverse Engineering, 2009, pp. 407-410.