جستجو در محصولات

گالری پروژه های افتر افکت
گالری پروژه های PSD
جستجو در محصولات


تبلیغ بانک ها در صفحات
ربات ساز تلگرام در صفحات
ایمن نیوز در صفحات
.. سیستم ارسال پیامک ..
پايگاه داده ها (4)
-(4 Body) 
پايگاه داده ها (4)
Visitor 1329
Category: دنياي فن آوري
مزايا و معايب
* چون داده به صورت يک درختواره سازماندهي مي شود براي داده هايي که ماهيت سلسله مراتبي دارند مناسب است.
* ساختار سلسله مراتبي براي مدل کردن ارتباطات يک به چند مناسب است.
• ساختار درختي انعطاف پذير نبوده و برقراري پيوندهاي جديد بين رکوردها بعد از ايجاد درخت امکان ندارد. علاوه براين پيوندهاي عمودي هستند و نمي توان پيوند افقي و مورب در درخت تعريف کرد.
• ارتباط تنها مي تواند به صورت "تعلق دارد" يا "شامل مي شود" کد شوند.
• در عمليات ذخيره سازي يعني درج، حذف و بهنگام سازي داراي آنومالي است (درمثال امکان ذخيره تهيه کننده S4 تا زمانيکه ندانيم چه قطعه اي توليد مي کند وجود ندارد).
• رويه هاي پاسخ به پرس و جوهاي قرينه متقارن نيستند( براي مثال رويه جستجو براي "شماره تهيه کنندگاني که P2 را تهيه مي کنند" متفاوت از رويه جستجوي "شماره قطعاتي که توسط S1 تهيه شده است").
• در نمايش افزونگي داده ناتوان است (در مثال اگر بخواهيم شهر S1 را تغيير دهيم در همه نمونه رکوردهايي که S1 ظاهر شده بايد انجام شود دغير اينصورت ناسازگاري رخ مي دهد).
مدل شبکه اي
درمقايسه با مدل سلسله مراتبي که ساختمان هاي داده اي به صورت درختي از رکوردها سازماندهي مي شود و هر رکورد آن يک والد و چند فرزند دارد، مدل شبکه اجازه رکوردهائي با چند والد و چند فرزند را مي دهد که در نتيجه يک ساختار مشبک را مي سازد. به مدل شبکه ساختار Plex هم گفته مي شد.
درمقايسه با مدل سلسله مراتبي که درختي از رکوردها سازماندهي مي شود و هر رکورد آن يک والد و چند فرزند دارد، مدل شبکه اجازه رکوردهائي با چند والد و چند فرزند را مي دهد که در نتيجه يک ساختار مشبک را مي سازد.
عمليات در مدل شبکه به صورت پيمايشي است از يک رکورد به ديگري با دنبال کردن ارتباطاتي که رکورد درآنها سهيم است دنبال مي شود.
مثال. ارتباط دو سويه قطعه و تهيه کننده را دنظر بگيريد. هر قطعه توسط چند تهيه کننده تهيه مي شود و هر تهيه کننده چند قطعه را عرضه مي کند.
خواص مدل
* در اين ساختار موجوديت ها به کمک انواع رکوردها، و ارتباطات به کمک پيوندهاي بين رکوردها نمايش داده مي شوند.
* هر گره فرزند مي تواند بيش از يک گره والد داشته باشد.
* براي نمايش ارتباطات يک به چند دو سويه مناسب است.
* عمليات ذخيره و بازيابي پيچيده تر از مدل سلسله مراتبي است.
* براي پرس و جوهاي قرينه رويه پاسخگوئي قرينه دارد ولي پيچيده است.
* متدهائي را براي ساخت و تعريف دوباره پيوندها دارد.
* ساختارهاي فيزيکي مناسب براي ارتباطات شبکه اي ساختار چندحلقه است.
مزايا و معايب
* اجازه مدل کردن طبيعي تر ارتباطات مابين موجوديت ها را مي دهد.
* مدل شبکه انعطاف پذيري بيشتري نسبت به سلسله مراتبي دارد.
* در عمليات ذخيره سازي آنومالي ندارد.
* مدل شبکه مي تواند افزونگي داده را بهتر از سلسله مراتبي نشان بدهد.
* از ديد کاربر وضوح کامل ندارد
* عمليات پيچيده تري دارد
* پيوند بين رکوردهاي يک نوع ممکن نيست.
• اصل وحدت عملگر در يک عمل رعايت نمي شود.
پايگاه داده XML
يک پايگاه داده XML سيستم نرم افزاري است که اجازه مي دهد داده در فرمت XML وارد، پردازش و ارسال شود.
دو دسته اصلي پايگاه داده XML وجود دارد:
1. XML-enabled . پايگاه داده اي که مستند XML را به عنوان ورودي گرفته به يک پايگاه داده ديگر نظير رابطه اي تبديل مي کند و پس از انجام عمليات آنرا مجددا به XML بر مي گردند.
2. Native XML (NXD). مدل داخلي چنين پايگاه داده اي بر پايه XML است و مستندات XML را به عنوان منبع ذخيره سازي مستقيما استفاده مي کند.
دليل استفاده XML در پايگاه داده شفافيت داده است. داده از پايگاه داده استخراج مي شود و در مستندات XML قرار مي گيرد و برعکس. به اين صورت هزينه ذخيره داده در فرمت XML هم کمتر مي شود.
مدل رابطه اي (relational model) در سال 1970 توسط رياضيداني به نام Edgar.F.Codd طراحي شد. مدل داده پيشنهادي يک مدل منطقي بر مبناي رياضيات است که از منطق گزاره ها و تئوري مجموعه ها به عنوان زيربنا استفاده شده است.
يک پايگاه داده رابطه اي (relational database) پايگاه داده اي است که با مدل رابطه اي مطابقت داشته باشد و به صورت مجموعه اي از جدول هائي که از ديد کاربر قابل درک هستند ديده مي شود.
يک سيستم مديريت پايگاه داده رابطه اي (RDBMS) سيستمي است که داده را طبق مدل رابطه اي مديريت مي کند.
RDBMS ها معمول ترين نوع سيستم هاي مديريتي پايگاه داده امروزي هستند (نظير Microsoft SQL Server، Microsoft Access، Oracle، MySQL، Sybase، DB2 و Informix).
اکثر RDBMS ها SQL را به عنوان زبان پرس و جوي خود بکار مي برند.
اصطلاحات
جدول (رابطه)
پايگاه داده رابطه اي مجموعه اي از آرايه هاي دو بعدي است که جداول (table) يا رابطه (relation) ناميده مي شوند. جدول مهمترين ساختار داده اي در سيستم پايگاه داده رابطه اي است.
هر جدول (يا رابطه) داده ها را به صورت سطر ها و ستون ها شکل مي دهد. هر سطر شامل يک نمونه منحصر بفرد داده و مربوط به يک نمونه موجوديت است. ستون ها صفات خاصه آن موجوديت را بيان مي کنند.
ترتيب سطرها و ستون ها در جداول اهميت ندارد.
تعداد ستون هاي هر جدول را درجه (Degree) و تعداد سطرهاي آن را کارديناليتي(Cardinality) مي نامند.
تاپل (رکورد)
يک سطر از يک رابطه را يک تاپل (tuple) مي نامند. هر تاپل در جدول نمايانگر يک نمونه از يک موجوديت است که رکورد هم گفته مي شود. تاپل ها ممکن است روي يکي از صفات خاصه به طور مرتب ذخيره شوند. ولي به طور کلي لازم نيست مرتب باشند.
مثال. رابطه Customer را درنظر بگيريد.
فيلد (صفت خاصه)
هر ستون در جدول نشان دهنده يک صفت خاصه از يک نوع موجوديت است که فيلد (field) ناميده مي شود. در هر فيلد نوع خاصي از داده ها ذخيره مي شود. مقادير هر سطر بايد با فيلدهاي جدول نظير به نظير باشد به عبارت ديگر ترتيب مقادير فيلدها در همه رکوردها بايد يکسان است. ولي ترتيب ستون ها اهميت ندارد.
دامنه
مجموعه اي از مقادير مجاز يک ستون دامنه (domain) نام دارد. معمولا دامنه يک ستون از يک نوع داده است.
محصولات RDBMS مستقيما دامنه را حمايت نمي کنند بلکه مجموعه اي از انواع داده عددي، متن، تاريخ و غيره را دارند که نحوه ذخيره سازي داده ها را مشخص مي کنند. تاثير دامنه را بيشتر مي توان روي قيدها و مکانيسم هاي ورود داده مشاهده کرد.
مقادير صفات خاصه معمولا بايد اتميک باشند يعني غيرقابل تفکيک باشند.
مقدار خاص null عضوي از هر دامنه است.
NULL
null يا <null> يک علامت خاص است که تهي بودن فيلدي را نشان مي دهد، براي زماني که مقداري براي فيلد وجود ندارد يا آنرا نمي دانيم استفاده مي شود(براي مثال مشتري تلفن ندارد يا شماره آنرا نداريم).
اکثر اوقات بايد مشخص کنيم که آيا يک فيلد مي تواند تهي باشد يا خير. سعي در درج null در فيلدي که مجاز نيست ايجاد مشکل مي کند.
دانستن چگونگي برخورد RDBMS با null اهميت دارد زيرا مقادير تهي نمي توانند در عمليات داده اي شرکت کنند.
بعضي از RDBMS ها null را اصلا ندارند. راه حل آنها تعريف يک ستون اضافي براي ستوني است که مي تواند تهي باشد. اين ستون معين مي کند آيا ستون مرتبط به آن داراي مقدار معتبر است يا خير.
يک راه ديگر پر کردن فيلد با يک مقدار پيش فرض است. اگر مقدار پيش فرض قابل مشاهده اي وجود ندارد يا مشکل را حل نمي کند از null مي توان استفاده کرد ولي بايد مطمئن شد که در عمليات مسئله ساز نمي شود.
پايگاه داده
يک پايگاه داده شامل چند جدول است. هر جدول بخشي از داده هاي سازمان را نمايش مي دهد. ذخيره کليه اطلاعات در يک جدول باعث تکرار داده يا نياز به مقدار null مي شود.
مثال. رابطه هاي محصول، مشتري و فروش را در يک سيستم فروش به صورت زير تعريف مي شوند:
به جاي رسم جدول به صورت فوق مي توان رابطه ها را به شکل زير تعريف کرد:

PRODUCT(ProductNo, Description, ReorderLevel, Price, QtyInStock)
CUSTOMER(CustomerNo, First, Last, Address, CreditLimit)
SALE(SaleNo, SaleDate, CustomerNo, ProductNo, Qty, Amount, Salesrep)

کليد
در مدل رابطه اي هيچ دو سطري در جدول نبايد مشابه باشند. اين در واقع يک ويژگي اساسي جدول است. اگر دو سطر دو نمونه موجوديت متفاوت را دردنياي واقعي نشان دهند به نحوي بايد از هم متمايز شوند تا به هر کدام در جدول بتوان جداگانه رجوع کرد. بنابراين حداقل يک مقدار منحصر به فرد بايد وجود داشته باشد که باعث متمايز شدن سطرها از يکديگر شود. ستوني که حاوي اين مقدار است کليد ناميده مي شود.
کليد داري دو خاصيت را بايد دارا باشد؛ منحصر به فرد بودن و غير تهي بودن(قانون اول جامعيت).
در يک رابطه انواع مختلفي از کليد ممکن است وجود داشته باشد:
* کليد کانديد
* کليد ترکيبي
* کليد اصلي
• کليد خارجي
کليد کانديد
از مجموعه صفات خاصه يک رابطه آنهايي که داراي دو ويژگي زير هستند به عنوان کليد کانديد (candid key) در رابطه مذکور مطرح مي شوند:
* منحصر به فرد و غير تهي بودن
غير قابل کاهش بودن، يعني هيچ زير مجموعه مناسبي از صفات خاصه تشکيل دهنده کليد، داراي خاصيت منحصر به فرد بودن نباشد.
مثال. شماره دانشجوئي و کد ملي کليدهاي کانديد در جدول مشخصات دانشجو در دانشگاه مي توانند باشند.
کليد ترکيبي
کليد ترکيبي (compound key) کليدي است که از ترکيب چند صفت خاصه ساخته مي شود.
مثال. در رابطه دانشجو مجموعه نام و شماره شناسنامه مي توانند به عنوان کليد ترکيبي در نظر گرفته شوند.
کليد اصلي
کليد اصلي (primary key)، کليد کانديدي است که توسط طراح پايگاه داده انتخاب و معرفي مي شود. به عبارتي طراح بانک، يکي از کليدهاي کانديد را به عنوان کليد اصلي بر ميگزيند.
در تعيين کليد اصلي از بين کليدهاي کانديد بايد دو ضابطه زير را در نظر گرفت:
* اهميت کليد اصلي نسبت به ساير کليدهاي کانديد در پرس و جوها
کوتاهتر بودن طول کليد کانديد از نظر تعداد بايت
نکته. هر جدول تنها يک کليد اوليه دارد اما به اين معني نيست که تنها يک شناسه منحصر به فرد دارد.
نکته. کليد مي تواند صفات طبيعي موجوديت انتخاب شود، ولي اگر هيچ کدام از صفات خاصه مناسب نبودند يک کليد جانشين نسبت داده شود (مانند شماره کارمندي براي جدول کارمند).
نکته. در جدول، زير کليد اوليه يک خط کشيده مي شود.
نکته. اگرچه در مدل رابطه اي کليه جداول بايد داراي کليد اوليه باشند، ولي تعدادي از RDBMS ها اجباري در تعيين کليد براي هر رابطه نمي کنند، در اينصورت ترکيب کليه صفات خاصه به عنوان کليد درنظر گرفته مي شود.
مثال. شماره دانشجوئي در جدول مشخصات دانشجو را مي توان به عنوان کليد اصلي انتخاب کرد.
کليد خارجي
کليد خارجي (foreign key) صفت خاصه اي در يک جدول است که در جدول ديگر نقش کليد اصلي يا کانديد را بازي کند. کليد خارجي ارتباط بين دو جدول را برقرار مي کند.
کليد خارجي بر خلاف کليد اصلي مي تواند تکراري يا null باشد و ممکن است در يک جدول بيشتر از يک کليد خارجي وجود داشته باشد.
جدول شامل کليد خارجي را گاهي جدول فرزند و جدولي که به آن ارجاع دارد را جدول والد مي نامند.
مثال. شماره مشتري در جدول SALE کليد خارجي است زيرا در جدول CUSTOMER کليد اصلي است. شماره مشتري که در جدول فروش بدست مي آيد در جدول مشتري جستجو مي شود تا تعيين شود محصول به کدام مشتري فروخته شده است.
خواص مدل
مدل رابطه اي داراي ويژگي هاي زير است:
* متداول ترين مدل است
* بر اساس تئوري رياضي است
• داده ها و ارتباطات بين آنها در پايگاه داده به صورت مجموعه اي از جداول ديده مي شود
* هيچ جدولي داراي سطرهاي تکراري نيست
* ترتيب سطرها و ستون ها در هر جدول مهم نيست
* ستون ها اتميک هستند يعني مقادير ستون ها غير قابل تجزيه اند
• هر مقدار که در دو رکورد مختلف واقع مي شود رابطه اي را بين دو آن رکورد مي فهماند
* ارتباط رابطه ها با يکديگر از طريق صفات خاصه مشترک انجام مي گيرد
• ايجاد، دسترسي و توسعه آن آسان است. بعد از ايجاد پايگاه داده اوليه، جداول جديد مي توانند اضافه شوند بدون اينکه نياز به تغيير کاربردهاي موجود باشد
• مدل ديد کاربر است نه روشي که داده بطور داخلي سازماندهي مي شود
نرمال سازي
نرمال سازي (normalization) با نحوه تقسيم جداول در پايگاه داده رابطه اي سروکار دارد. نرمالسازي فرآيند تغيير ساختار پايگاه داده به منظور اجراي بهتر و راحتي کارکردن با داده است. فرم هاي مختلف نرمالسازي که روي پايگاه داده اعمال مي شوند را فرم هاي نرمال مي نامند.
تبديل نمودار ER به مدل رابطه اي
هر موجوديت در مدل ER به يک جدول در مدل رابطه اي تبديل مي شود. صفات خاصه موجوديت ستون هاي جدول و هر نمونه موجوديت سطرهاي آنرا را مي سازند.
قبل از اينکه فرآيند تبديل انجام شود بايد مطمئن شويم که مدل ER تا حد ممکن ساده شده است.
مثال. موجوديت دانشجو را درنظر بگيريد.

student(student_no, name, address, date_of_birth)

براي تبديل ارتباط يک به يک به رابطه، با توجه به اختياري بودن يا اجباري بودن ارتباط، موجوديت ها يا ترکيب مي شوند يا کليد اصلي يک موجوديت به عنوان کليد خارجي در ديگري قرار مي گيرد.
مثال. ارتباط يک به يک بين موجوديت هاي کارمند و قرارداد را درنظر بگيريد. هر کارمند يک قرارداد دارد و هر قرارداد مربوط به يک کارمند است.
به رابطه زير تبديل مي شود:

Employee(emp_no, name, cont_no, start, end, position, salary)

يا مي تواند به صورت دو رابطه زير تبديل شود:

Employee (emp_no, name, contract_no)
Contract(cont_no, start, end, position, salary)

يا

Employee (emp_no, name)
Contract(cont_no, start, end, position, salary, emp_no)

در تبديل ارتباط ها يک به چند کليد اصلي موجوديت سمت "يک" به عنوان کليد خارجي در سمت ديگر قرار مي گيرد.
مثال. ارتباط يک به چند دانشجو و رشته تحصيلي را درنظر بگيريد:
که به رابطه هاي زير تبديل مي شود:

Student(student_no, s_name, address, DateOfBirth, module_no)
Module(module_no, m_name)

در ارتباط چند به چند يک رابطه جديد با کليد هاي اوليه هر دو موجوديت ساخته مي شود.
مثال. ارتباط دانشجو و درس را درنظر بگيريد.
که به رابطه هاي زير تبديل مي شود:

Student(student_no, s_name, Address, DateOfBirth)
Course(Course_no, C_name)
Study(student_no, Course_no)

ارسال مقاله توسط عضو محترم سايت با نام کاربري : davidfattahi
Add Comments
Name:
Email:
User Comments:
SecurityCode: Captcha ImageChange Image