مهندسی نرم افزار SSADM ویدیو کلوپ بخش سوم
بررسی ارتباطات بین جداول و متغيرهاي سیستم
شکل زیر نمائی شماتیک از ارتباطات بین متغیرها و موجودیتهای سیستم نرم افزاری ویدئو کلوپ را نمایش می دهد و در ادامه هر یک از این ارتباطها را مورد بررسی قرار خواهیم داد.
خطهای رسم شده بین جداول، رابطه (Relationship) بین جداول را نشان می دهد. پایگاه داده یا همان Database، مجموعه ای سازمان داده شده از اطلاعات است که به شکل جداول ذخیره می شوند. برای سازمان دهی این اطلاعات روشهای متفاوتی وجود دارد که هدف تمامی آنها فراهم کردن روشهایی مناسب برای سهولت در برقراری ارتباط با پایگاههای داده و استفاده از اطلاعات موجود در آنها است. سیستم مدیریت پایگاه داده (DBMS) ، مکانیزمی را جهت ذخیره سازی و بازیابی اطلاعات در پایگاه داده فراهم می نماید. در حقیقت DBMS باعث می شود تا برنامه نویس بدون نگرانی درباره چگونگی ذخیره سازی داداه ها در پایگاه داده و ساختار آنها، به اطلاعات دسترسی پیدا کند و بتواند داده های جدید را در آن ذخیره نماید.
امروزه اکثر پایگاه داده های محبوب از نوع رابطه ای (Relational) هستند. همانند پایگاه داده های عادی، در پایگاه داده های رابطه ای نیز دسترسی به اطلاعات ذخیره شده در جداول از طریق زبان پرس و جوی ساخت یافته یا همان SQL میسر میگردد که زبانی استاندارد است و توسط اکثر نرم افزارهای مرتبط با پایگاه داده مورد استفاده قرار می گیرد. از جمله سیستمهای پایگاه داده رابطه ای می توان به MS SQL Server، Oracle™، Sybase™، DB2™، Informix™ و MySQL™ اشاره کرد.
مدل پایگاه داده رابطه ای (Relational Database Model)
مدل پایگاه داده رابطه ای، نمایش منطقی ای از داده هاست که رابطه موجود بین داده ها را، بدون درگیر شدن با ساختار فیزیکی آنها، نشان میدهد. پایگاه داده رابطه ای از جداول تشکیل میشود. هر جدول خود از سطرها یا رکوردها (record/row) و ستونها یا فیلدها (columns/fields) تشکیل میشود. با توجه به اینکه حجم اطلاعات قابل ذخیره در یک جدول نامحدود است، از اینرو باید بتوان با استفاده از روشی تنها به آن قسمت از اطلاعات دسترسی پیدا کرد که مورد نظر کاربر است.
انواع پایگاه داده ها
پایگاه داده ها از نظر ساختار مفهومی و شیوهای رفتار با دادهها بر دو نوع هستند :
1. پایگاه داده رابطهای
2. پایگاه داده شیگرا
مدلهای پایگاه داده
شگردهای مختلفی برای مدلهای دادهای وجود دارد. بیشتر سیستمهای پایگاه دادهای هر چند بطور معمول بیشتر از یک مدل را مورد حمایت قرار میدهند، حول یک مدل مشخص ایجاد شده اند. برای هر یک از الگوهایهای منطقی (logical model) اجراهای فیزیکی مختلفی قابل پیاده شدن است و سطوح کنترل مختلفی در انطباق فیزیکی برای کاربران مهیامیکند. یک انتخاب مناسب تأثیر موثری بر اجرا دارد. مثالی از موارد الگوی رابطهای (relational model) است: همه رویدادهای مهم در مدل رابطهای امکان ایجاد نمایههایی که دسترسی سریع به سطرها در جدول را میدهد،فراهم میشود.
یک مدل دادهای تنها شیوه ساختمان بندی دادهها نیست بلکه معمولاً به صورت مجموعهای از عملیاتها که میتواند روی دادهها اجرا شود تعریف میشوند. برای مثال در مدل رابطهای عملیاتی همچون گزینش (selection)، طرح ریزی (projection) و اتصال (join) تعریف میگردد.
مدل تخت
مدل تخت یا جدولی (flat (or table) model) تشکیل شده است از یک آرایه دو بعدی با عناصر دادهای که همه اجزای یک ستون به صورت دادههای مشابه فرض میشود و همه عناصر یک سطر با هم در ارتباط هستند. برای نمونه در ستونهایی که برای نام کاربری و رمز عبور در جزئی از سیستمهای پایگاه دادهای امنیتی مورد استفاده قرار میگیرد هر سطر شامل رمز عبوری است که مخصوص یک کاربر خاص است. ستونهای جدول که با آن در ارتباط هستند به صورت داده کاراکتری، اطلاعات زمانی، عدد صحیح یا اعداد ممیز شناور تعریف میشوند. این مدل پایه برنامههای محاسباتی(spreadsheet) است.
پایگاه دادهها با فایلهای تخت به سادگی توسط فایلهای متنی تعریف میشوند. هر رکورد یک خط است و فیلدها به کمک جدا کنندههایی از هم مجزا میشوند. فرضا به مثال زیر دقت کنید:
id name team
1 Amy Blues
2 Bob Reds
3 Chuck Blues
4 Dick Blues
5 Ethel Reds
6 Fred Blues
7 Gilly Blues
8 Hank Reds
دادههای هر ستون مشابه هم است ما به این ستونها فیلدها (fields) گوییم. و هر خط را غیر از خط اول یک رکورد(record) مینامیم. خط اول را که برخی پایگاههای دادهای آن را ندارند رکورد برچسب(field labels) گوییم. هر مقدار دادهای اندازه خاص خود را دارد که اگر به آن اندازه نرسد میتوان از کاراکنر فاصله برای این منظور استفاده کرد اما این مسئله مخصوصا زمانی که بخواهیم اطلاعات را بر روی کارتهای منگنه قرار دهیم مشکل ساز خواهد شد. امروزه معمولاً از نویسه TAB برای جداسازی فیلدها و کاراکتر خط بعد برای رکورد بعدی استفاده میکنیم. البته شیوههای دیگری هم وجود دارد مثلاً به مثال زیر دقت کنید:
"1","Amy","Blues"
"2","Bob","Reds"
"3","Chuck","Blues"
"4","Dick","Blues"
"5","Ethel","Reds"
"6","Fred","Blues"
"7","Gilly","Blues"
"8","Hank","Reds"
این مثال از جدا کننده کاما استفاده میکند. در این نوع مدل تنها قابلیت حذف،اضافه،دیدن و ویرایش وجود دارد که ممکن است کافی نباشد.Microsoft Excel این مدل را پیاده سازی میکند.
مدل شبکه ای(Network)
در سال 1969 و در کنفرانس زبانهای سیستمهای دادهای (CODASYL) توسطCharles Bachman ارائه شد. در سال 1971 مجدداً مطرح شد و اساس کار پایگاه دادهای قرار گرفت و در اوایل دهه 80 با ثبت آن درسازمان بين المللي استانداردهاي جهاني یا ISO به اوج رسید.
مدل شبکهای (database model) بر پایه دو سازه مهم یعنی مجموعهها و رکوردها ساخته میشود و برخلاف روش سلسله مراتبی که از درخت استفاده میکند، گراف را به کار میگیرد. مزیت این روش بر سلسله مراتبی این است که مدلهای ارتباطی طبیعی بیشتری را بین موجودیتها فراهم میکند. علی رغم این مزیتها به دو دلیل اساسی این مدل با شکست مواجه شد: اول اینکه شرکت IBM با تولید محصولات IMS و DL/I که بر پایه مدل سلسله مراتبی است این مدل را نادیده گرفت. دوم اینکه سرانجام مدل رابطهای (relational model) جای آن را گرفت چون سطح بالاتر و واضح تر بود. تا اوایل دهه 80 به علت کارایی رابطهای سطح پایین مدل سلسله مراتبی و شبکهای پیشنهاد میشد که بسیاری از نیازهای آن زمان را برطرف میکرد. اما با سریعتر شدن سخت افزار به علت قابلیت انعطاف و سودمندی بیشتر سیستمهای رابطهای به پیروزی رسیدند.
رکوردها در این مدل شامل فیلدهایی است(ممکن است همچون زبان کوبول (COBOL) به صورت سلسله مراتب اولویتی باشد). مجموعهها با ارتباط یک به چند بین رکوردها تعریف میشود: یک مالک و چند عضو. عملیاتهای مدل شبکهای از نوع هدایت کننده است: یک برنامه در موقعیت جاری خود باقی میماند و از یک رکورد به رکورد دیگر میرود هر گاه که ارتباطی بین آنها وجود داشته باشد. معمولاً از اشارهگرها(pointers) برای آدرس دهی مستقیم به یک رکورد در دیسک استفاده میشود. با این تکنیک کارایی بازیابی اضافه میشود هر چند در نمایش ظاهری این مدل ضروری نیست .
با این مقدمه در مورد پایگاه داده ، جداول مربوط به پایگاه داده سیستم ویدئو کلوپ را مورد بررسی قرار می دهیم.