3.92k likes | 5.19k Views
اصول طراحی پایگاه داده ها. تهیه کننده: امیررضا مهربان. مراجع درس. An Introduction to Database Systems , 8th Edition , by C. J. Date , 2004 Addison-Wesley مقدمه اي بر پايگاه داده ها- دكتر سيدمحمدتقي روحاني رانكوهي بانك هاي اطلاعاتي – محمدرضا مقسمي
E N D
اصول طراحی پایگاه داده ها تهیه کننده: امیررضا مهربان
مراجع درس • An Introduction to Database Systems , 8th Edition , by C. J. Date , 2004 Addison-Wesley • مقدمه اي بر پايگاه داده ها- دكتر سيدمحمدتقي روحاني رانكوهي • بانك هاي اطلاعاتي – محمدرضا مقسمي • بانك هاي اطلاعاتي از C.J. Date مترجم : جعفرنژاد قمي
فهرست • تاریخچه و مفاهیم اولیه • مفاهیم سیستم مدیریت پایگاه داده ها(DBMS) • مدل سازی داده ای(EER) • ساختار داده ای • زبان SQL • نرمال سازی • کار با Microsoft SQL Server 2005
مقدمه • پایگاه داده به منظور جمع آوری اطلاعات در یک محل مشخص جهت ذخیره، بازیابی و یا انجام عملیات و پردازش روی آنها برای رسیدن به هدف انجام می شود. • در پایگاه داده معمولابا حجم زیادی از اطلاعات سر و کار داریم
تعاریف اولیه • موجودیت(Entity): شی یا فردی که در مورد آن می خواهیم اطلاع داشته باشیم • صفت خاصه(Property): ویژگی جداساز یک نوع موجودیت از نوع دیگرو دارای دو مولفه: • اسم صفت خاصه • مقدار صفت خاصه اطلاع
نکته یک واقعیت می تواند از دید کاربران یک محیط عملیاتی، موجودیت تلقی شده و از دید کاربران دیگر در همان محیط یا محیط دیگر صفت خاصه باشد.
تعاریف اولیه (ادامه) • ارتباط (Relation): ارتباط بین موجودیتها در یک محیط عملیاتی • فیلد: کوچکترین واحد داده ذخیره شده • رکورد: مجموعه ای از فیلدهای به هم مرتبط • فایل: مجموعه ای از تمام نمونه ها یا رویدادهای یک نوع رکورد
تعاریف اولیه (ادامه) داده(Data) : مقادیر صفات خاصه انواع موجودیتها اطلاعات (Information): از پردازش داده ها، اطلاع حاصل می شود داده های عملیاتی (Operational Data) : داده هایی که کاربر بطور روزانه با آنها سر و کار دارد داده های پایدار : داده هایی که در پایگاه داده ثابت باشند
سخت افزار نرم افزار سرمایه سازمان امکانات مالی داده سرمایه های یک سازمان نیرو متخصص
نسلهای ذخیره و بازیابی اطلاعات • نسل اول: نسل فایلهای ساده ترتیبی • نسل دوم: نسل فایلهای با دسترسی مستقیم • نسل سوم: سیستم مدیریت داده ها • نسل چهارم: نسل سیستمهای مدیریت پایگاه داده ها • نسل پنجم: نسل پایگاه دانش(Knowledge Base)
نسل فایلهای ساده ترتیبی • ساختار فایلها ترتیبی • ساختار فیزیکی همان ساختار منطقی فایل • تنها روش پردازش فایلها، پردازش یکجا یا دسته ای (Batch Processing) • نرم افزار تنها عملیات ورودی/خروجی را انجام می دهد (نرم افزار واسطی برای مدیریت پردازش فایلها وجود ندارد) • طراحی ساختار فیزیکی فایلها بر عهده کاربر
نسل فایلهای ساده ترتیبی (ادامه) • تغییر در ساختار داده ها یا رسانه ذخیره سازی منجر به تغییر در برنامه نویسی • داده ها برای کاربرد خاصی طراحی و سازماندهی می شوند • اشتراک داده ها مطرح نیست • تکرار در ذخیره داده ها در بالاترین حد • برای بروزرسانی الزاما نیاز به فایل دیگری برای اعمال تغییرات می باشد
معایب روش فایلی • 1- هزینه عملیاتی بالا : کندی سیستم، بهینه نبودن جستجو، کد نویسی پیچیده • 2- نا سازگاری و افزونگی داده ها: بعضی از داده ها را مجبورهستیم بیش ار یکبار ذخیره کنیم. • 3- عدم جامعیت یا یکپارچگی: اطلاعات در فایل های مختلف به صورت پراکنده بوده اند و یکپارچگی نداشتند • 4- مشکل امنیت داده ها • 5- عدم امکان به اشتراک گذاشتن داده ها برای دسترسی همزمان چندکاربر • 6- وابستگی به سیستم عامل و سخت افزار
ناسازگاری داده ها ناسازگاری داده ها هنگامی بروز می کند که به دلایلی اطلاعات در بیش از یک نقطه از پایگاه ذخیره شده باشد و لازم باشد که بهنگام شود که دلیل آن وجود افزونگی است
مزایای روش فایلی • 1- سطح تخصصی کمتر • 2- هزینه اولیه پیاده سازی کمتر • 3- نیاز به داشتن فنی کمتر از محیط عملیاتی • برای رفع مشکلات روش فایلی سیستم مدیریت پایگاه داده بوجود آمد که همه داده ها را یکجا جمع کنیم و برای نیازهای مختلف از آن استفاده کنیم.
نسل سیستم مدیریت پایگاه داده هاDBMS • مجموعه ای از داده های به هم وابسته است که فاقد افزونگی بی حاصل است به عبارتی پایگاه داده در این روش شامل همه موجودیت ها وروابط بین آنهاست که در یک قالب مشخص ذخیره شده اند. • ذخیره داده ها به گونه ای است که از برنامه هایی که آن ها را بکار می گیرند مستقل هستند ویک رویکرد مشخص و استاندارد جهت عملیات ذخیره سازی(درج، تغییر، حذف) و بازیابی داده ها وجود دارد
نسل سیستم مدیریت پایگاه داده ها • از اواخر دهه 60 آغاز و تاکنون ادامه دارد • خصیصه مهم آن استقلال داده ای فیزیکی • استقلال داده ای فیزیکی
مزایای نسل سیستم مدیریت پایگاه داده ها • استقلال داده ها :کاربران در محیط انتزاعی و مبتنی بر یک ساختار داده ای تجریدی کار می کنند (به عبارت دیگر: برنامه های کاربردی از داده های محیط فیزیکی کاملا مستقلند) • امکان کنترل متمرکز روی تمام داده های عملیاتی (منجر به کاهش افزونگی و تکرار داده ها) • DBMS واسط بین برنامه های کاربران و محیط داخلی و فیزیکی ذخیره سازی است • سرعت بالا در دستیابی به داده ها
مزایای نسل سیستم مدیریت پایگاه داده ها (ادامه) • امکان استفاده اشتراکی از داده ها • ایمنی زیاد داده ها(اطلاعات به صورت کد شده ذخیره می شود) • معماری چند سطحی ذخیره سازی • پایداری یا سازگاری اطلاعات : داده ها همیشه پایدار هستند یعنی درصورت چند عملیت پردازش یکسانروی داده ها نتیجه یکی خواهد بود • قابلیت رشد
استقلال داده ای فیزیکی به معنی مستقل شدن برنامه کاربردی از جنبه ها و خصوصیات محیط فیزیکی ذخیره سازی است
استقلال داده ها • بمعنی مستقل بودن ذخیره سازی داده ها از کاربرد آنها • نحوه ذخیره سازی داده ها روی رسانه از دید کاربران مخفی است • استقلال داده ای شامل: • استقلال فیزیکی: در صورت تغییر در ذخیره سازی داده ها (تغییر نوع دیسک) برنامه های کاربردی تغییر نمی کنند که به دلیل تبدیل ادراکی/ داخلی می باشد • استقلالمنطقی: تغییر تصویر ادراکی پایگاه (تغییرات در سطح جداول) از دید کاربران و برنامه های آنها مخفی است که به دلیل تبدیل ادراکی / خارجی می باشد
امنیت و جامعیت • امنیت:محافظت در برابر خطراتی نظیر دسترسی غیر مجاز به داده ها است • جامعیت داده ها: صحت داده ها و پردازشها و پیروی از مقررات سیستم (مثلا: شخص نباید بیشتر از موجودی از حساب برداشت کند)
قابلیت رشد به دلیل وجود: • معماری چند سطحی • استقلال برنامه های کاربردی از ساختار ذخیره سازی • استراتژی دستیابی و این به دلیل وجود DBMS است که: • هر گونه دستیابی به داده ها باید از طریق آن انجام شود
برخی دیگر از مزایای سیستم پایگاه داده ها • امکان اعمال استانداردها • ایجاد تعادل بین نیازهای حتی گاه متضاد کاربران • تسریع در دریافت پاسخ پرس و جو ها • تسهیل در دریافت گزارشهای متنوع • در دسترس بودن داده ها • کاهش هزینه های سازمان
برخی از معایب سیستم پایگاه داده ها • به مخاطره افتادن امنیت (در صورت عدم وجود کنترل مناسب) به دلیل تمرکز داده ها • به مخاطره افتادن جامعیت • امکان نیاز به سخت افزار اضافی
روش سنتي برنامه کاربردي سيستم فايل فايلهاي امور آموزش برنامه کاربردي سيستم فايل فايلهاي امور دانشجويي برنامه کاربردي سيستم فايل فايلهاي امور بهداشت نرم افزار واسط تجمع داده ها – وحدت ذخيره سازي – امنيت – حفاظت داده ها نداريم
روش پايگاه داده کاربر 1 برنامه کاربردي سطح فيزيکي پايگاه DBMS فايل دانشجو کاربر 2 برنامه کاربردي نام شماره دانشجو تاريخ تولد فاميل رشته سال ورود نام پدر مقطع کاربر 3 . . . معدل برنامه کاربردي نرم افزار مديريت پايگاه داده تجمع داده ها – وحدت ذخيره سازي – امنيت – حفاظت داده ها داريم
تعریف پایگاه داده مجموعه ای از داده های ذخیره شده و پایا بصورت مجتمع و مبتنی بر یک ساختار، تعریف شده بصورت صوری با حداقل افزونگی، تحت مدیریت یک سیستم کنترل متمرکز، مورد استفاده یک یا چند کاربر، بصورت اشتراکی و همزمان
تعریف پایگاه داده (ادامه) • مجتمع و مبتنی بر یک ساختار: کل داده های عملیاتی محیط مورد نظر کاربران مختلف، در قالب یک ساختار مشخص بصورت یکجا ذخیره شده باشند • صوری: سيستم بايد به کاربران اين امکان را بدهد تا داده هاي خود را آنگونه که مي بينند، بصورت انتزاعي و بدور از جنبه هاي پياده سازي و نشست فيزيکي آنها را روي رسانه تعريف کنند. • ساختار فيزيکي: ساختار فايلهايي که پايگاه را تشکيل مي دهند. • افزونگی: تکرار يک يا چند صفت خاصه در نمونه هاي مختلف يک نوع رکورد از يک فايل (تجمع داده ها – وحدت ذخيره سازي)
روش سنتي برنامه کاربردي سيستم فايل فايلهاي امور آموزش برنامه کاربردي سيستم فايل فايلهاي امور دانشجويي برنامه کاربردي سيستم فايل فايلهاي امور بهداشت نرم افزار واسط تجمع داده ها – وحدت ذخيره سازي – امنيت – حفاظت داده ها نداريم
روش پايگاه داده کاربر 1 برنامه کاربردي سطح فيزيکي پايگاه DBMS فايل دانشجو کاربر 2 برنامه کاربردي نام شماره دانشجو تاريخ تولد فاميل رشته سال ورود نام پدر مقطع کاربر 3 . . . معدل برنامه کاربردي نرم افزار مديريت پايگاه داده تجمع داده ها – وحدت ذخيره سازي – امنيت – حفاظت داده ها داريم
ويژگيهاي پایگاه داده • همزماني عمليات • سيستم پايگاه داده به سيستم کامپيوتري بستگي دارد • داده ها در پايگاه داده بصورت مجتمع و اشتراکي هستند • بين پايگاه داده و کاربران سيستم، لايه اي از نرم افزار وجود دارد که مديريت پايگاه داده يا سرويس دهنده پايگاه داده يا سيستم مديريت پايگاه داده نام دارد • سيستم مديريت پايگاه داده، مهمترين جز نرم افزاري در کل سيستم است.
وظایف پایگاه دادهDBMS • امکان تعریف داده ها • امکان عملیات و دستکاری روی داده ها • حفظ امنیت و یکپارچگی DB با توجه به سیاستهای مدیر پایگاه داده (DBA) • Data Dictionary • حفظ کارایی
سخت افزار عناصر پايگاه داده نرم افزار داده عناصر اصلي محيط پايگاه داده کاربر
عناصر اصلي محيط پايگاه داده (ادامه) • نرم افزار: نرم افزارهاي کاربردي و نرم افزارهاي سيستمي • سخت افزار: سخت افزار ذخيره سازي داده ها مثل هارد دیسک ، سخت افزار پردازنده مرکزي و سخت افزار ارتباطي مثل کاربر شبکه و سوییچ، دستگاه ذخیره سازی نسخه های پشتیبان مثل Tape • کاربر: مدير پايگاه داده (DBA)، برنامه نويس (DBP) و کاربر نهايي(End User) • داده ها: داده هايي در مورد موجوديتهاي مختلف محيط عملياتي و نيز ارتباط بين موجوديتها
معماری سیستم پايگاه داده A1 کاربر A2 کاربر B1 کاربر B2کاربر B2کاربر HL + DSL HL + DSL HL + DSL HL + DSL HL + DSL Aدید خارجی B دید خارجی DBMS تبدیل خارجی / ادراکی دید ادراکی DBA تبدیل ادراکی / داخلی . . . داده های ذخیره شده بر اساس دید داخلی
اجزا معماری سیستم پايگاه داده • دید ادراکی • دید خارجی • دید داخلی یا فیزیکی • تبدیلات بین سطوح • زبان میزبان (HL) • زبان فرعی داده ای (DSL) • سه عنصر: کاربر، DBA و DBMS
دید داخلی (Internal view) • ذخیره فایلهای محیط فیزیکی در این سطح • عدم ارتباط کاربران به مسایل این سطح • تعریف انواع رکوردها، فایلها، صفات خاصه، شاخص و.. در این سطح • نزدیکترین سطح به محیط ذخیره سازی داده ها
دید ادراکی یا مفهومی (Conceptual view) • دید طراح پایگاه داده از داده های ذخیره شده در پایگاه • دید جامعی از دیدهای همه کاربران • متفاوت با دید دیگر کاربران • در این دید کل داده های عملیاتی و ارتباط بین آنها تعریف می شود
دید خارجی (External view) • دید کاربران از داده های ذخیره شده در پایگاه • هر کاربر دید خاص خود را دارد • چند کاربر می توانند دید یکسانی داشته باشند • دید خارجی برای معرفی شدن نیاز به یک ساختار یا مدل داده ای دارد
نکته • DBMS برای انجام درخواستهای یک کاربر به شمای خارجی مراجعه می کند • لایه خارجی تنها لایه است که کاربران با آن سر و کار دارند • در این لایه هر به کاربر به اندازه نیازش از اطلاعات استفاده می کند • سطح خارجی نزدیکترین سطح به کاربر است
تبدیلات بین سطوح • دو نوع تبدیل در ANSI: • تبدیل ادراکی / خارجی • تبدیل داخلی/ ادراکی بنابرین سه دسته برای تبدیلات سطوح: • تبدیل داده ها • تبدیل احکام • تبدیل ساختار
تبدیل داده ها تبدیل داده های تعریف شده در سطح خارجی به داده های تعریف شده سطح ادراکی و نیز داده های تعریف شده در سطح ادراکی به سطح داخلی و برعکس
تبدیل احکام تبدیل حکم عمل کننده در سطح خارجی به حکم عمل کننده در سطح ادراکی و نیز حکم عمل کننده در سطح ادراکی به سطح داخلی
تبدیل ساختار تبدیل ساختار سطح خارجی به سطح ادراکی مثلا تبدیل ساختار سلسله مراتبی به جدولی
زبان میزبان و زبان فرعی داده ای • زبانمیزبان (HL): یکی از زبانهای سطح بالای برنامه نویسی • زبان فرعی داده ای (DSL): زبانی سطح بالا که معمولا بصورت مهمان در کنار HL قرار می گیرد و شامل: • DDL: داده ها را تعریف کرد • DML: با داده ها کار کرد • DCL: داده را کنترل کرد
کاربران پایگاه داده • کاربر نهایی (End User) • برنامه نویسان کاربردی (DBP) • مدیر پایگاه داده (DBA)
راهبری DBMS • مدیر پایگاه داده (Database Administrator): مسئولیت تصمیم گیری و طراحی پایگاه داده • برنامه نویس پایگاه (Database Programmer): وظیفه پیاده سازی تصمیمات مدیر پایگاه داده