• توجه: در صورتی که از کاربران قدیمی ایران انجمن هستید و امکان ورود به سایت را ندارید، میتوانید با آیدی altin_admin@ در تلگرام تماس حاصل نمایید.

انواع پایگاه داده ها

eliza

متخصص بخش
انواع پایگاه داده ها

پایگاه داده ها از نظر ساختار مفهومی و شیوه‌ای رفتار با داده‌ها بر دو نوع هستند :

1. پایگاه داده رابطه‌ای
2. پایگاه داده شی‌گرا


مدل‌های پایگاه داده

شگردهای مختلفی برای مدل‌های داده‌ای وجود دارد. بیشتر سیستم‌های پایگاه داده‌ای هر چند بطور معمول بیشتر از یک مدل را مورد حمایت قرار می‌‌دهند، حول یک مدل مشخص ایجاد شده اند. برای هر یک از الگوهای‌های منطقی (logical model) اجراهای فیزیکی مختلفی قابل پیاده شدن است و سطوح کنترل مختلفی در انطباق فیزیکی برای کاربران مهیامی‌‌کند. یک انتخاب مناسب تأثیر موثری بر اجرا دارد. مثالی از موارد الگوی رابطه‌ای (relational model) است: همه رویدادهای مهم در مدل رابطه‌ای امکان ایجاد نمایه‌هایی که دسترسی سریع به سطرها در جدول را می‌‌دهد،فراهم می‌‌شود.


یک مدل داده‌ای تنها شیوه ساختمان بندی داده‌ها نیست بلکه معمولاً به صورت مجموعه‌ای از عملیات‌ها که می‌‌تواند روی داده‌ها اجرا شود تعریف می‌‌شوند. برای مثال در مدل رابطه‌ای عملیاتی همچون گزینش (selection)، طرح ریزی (projection) و اتصال (join) تعریف می‌‌گردد.

مدل تخت

مدل تخت یا جدولی (flat (or table) model) تشکیل شده است از یک آرایه دو بعدی با عناصر داده‌ای که همه اجزای یک ستون به صورت داده‌های مشابه فرض می‌‌شود و همه عناصر یک سطر با هم در ارتباط هستند. برای نمونه در ستون‌هایی که برای نام کاربری و رمز عبور در جزئی از سیستم‌های پایگاه داده‌ای امنیتی مورد استفاده قرار می‌‌گیرد هر سطر شامل رمز عبوری است که مخصوص یک کاربر خاص است. ستون‌های جدول که با آن در ارتباط هستند به صورت داده کاراکتری، اطلاعات زمانی، عدد صحیح یا اعداد ممیز شناور تعریف می‌‌شوند. این مدل پایه برنامه‌های محاسباتی(spreadsheet) است.


پایگاه داده‌ها با فایل‌های تخت به سادگی توسط فایل‌های متنی تعریف می‌‌شوند. هر رکورد یک خط است و فیلدها به کمک جدا کننده‌هایی از هم مجزا می‌‌شوند. فرضا به مثال زیر دقت کنید:
کد:
[SIZE=3]
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
[/SIZE]
داده‌های هر ستون مشابه هم است ما به این ستونها فیلدها (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) برای آدرس دهی مستقیم به یک رکورد در دیسک استفاده می‌‌شود. با این تکنیک کارایی بازیابی اضافه می‌‌شود هر چند در نمایش ظاهری این مدل ضروری نیست
 

Masterhame

New member
پايگاه داده شئ گرا

يه نوع تقريباً جديد از انواع بانكهاي اطلاعاتي كه بسيار پركاربرد و مفيد هستند بانكهاي اطلاعاتي شئ گرا هستند كه به دليل قديمي بودن مباحث ارائه شده دور از دسترس موندن و بحثي اينجا در ارتباط با اونها نيومده!!!!


هر چند امروز هنوز دوره استفاده از بانكهاي رابطه اي تموم نشده اما بسياري از شركتهاي بزرگ دارن از بانكهاي شئ گرا استفاده مي كنند.
از جمله اين شركتها مي تونم شركت بوش آلمان، هواپيمايي انگلستان، شركت بوئيگ و ... رو نام ببرم. حالا اين اسامي رو از كجا آوردم؟؟؟؟ وقتي رفتيد توي سايت بانكهاي اطلاعاتي كه معرفي كردم مي بينيد كه اين شركتها رو به عنوان مشتري خودشون اعلام كردن:نیش:

اساس بانكهاي اطلاعاتي شئ گرا كه به اونها Object Oriented DataBase ميگن ذخيره اطلاعات بر اساس اشياء هست.
به اين ترتيب كه ديگه از روابط رياضي (يا همون جب رابطه اي) كه توي بانكهاي رابطه اي استفاده شده استفاده نمي كن و فقط اشياء و رابطه بين اشياء رو مورد ملاحظه قرار ميدن
به اين ترتيب كه ليست (List) يا Collectionهايي از اشياء رو توي حافظه بصورت آرايه ها ي ايندكس گذاري شده يا ليست پيوندي ايندكس دار ذخيره مي كنند.
بنا بر اين شما مي تونيد با استفاده از درخواست مستقيم يك شئ به راحتي و سريعتر از بانكهاي رابطه اي به اون شئ دسترسي داشته باشيد
يه مسال ساده براي اين موضوع:

مدل رابطه اي
کد:
Select * from tbUser Where Age='29'

مدل شئ گرا

کد:
List<User> Users = tbUser.Where(a=>a.Age==29);

روش اول كه يك Query ساده SQL هست كه اكثرا باش آشنايي داريد و منظورش اينه كه از توي جدول tbUser همه سطرهايي كه ستون Age اونها برابر با 29 هست رو استخراج كن

روش دوم كه همون روش شئ گرا باشه به ما ليستي از كاربرايي كه فيلد Age اونها برابر با 29 باشه رو ميسازه

از لحاظ معماري كامپيوتر و علوم ذخيره و بازيابي اطلاعات هر دو عمل خيلي شبيه به هم اجرا ميشن ولي مزيت روش دوم ساختار شئ گرايي هست كه بوجود اومده.

(( از اونجايي كه اينجا بحث مقايسه روشهاي شئ گرا و ساخته يافته نيست اين موضوع رو اينجا باز نمي كنم، اما اگه واقعاً دنبال علوم مهندسي نرم افزار رفته باشيد و بي تعصب همه چيز رو بررسي كرده باشيد مي تونيد اولويتهاي روشهاي شئ گرا رو به روشهاي قديمي ساخت يافته تضخيص بديد ))



وقتي شما با بانكهاي اطلاعاتي شئ گرا كار مي كنيد، كل بانك اطلاعاتي شما بصورت يك شئ اصلي در اختيار شما قرار مي گيره كه حاوي مجموعه هايي از اطلاعات هست. اين مجموعه ها مشابه جداول شما توي بانكهاي اطلاعاتي رابطه اي هستند.

توي هر كودم از اون مجموعه ها شما با اشياء مشابه كه خصوصيات متفاوت دارن روبرو مي شيد كه اينها معادل همون سطرهاي شما در بانك رابطه اي هستند.

بحث در ارتباط با بانكهاي شئ گرا بسيار طولاني هست! قبل از اينكه شما بخوايد از اين بانكها استفاده كنيد بهتره كه اول خود شئ گرايي و كاربردهاي اون رو ياد بگيريد.

بعنوان پيش نياز استفاده از بانكهاي شئ گرا اين موضوعات رو معرفي مي كنم:
آشنايي با بانكهاي رابطه اي
OOP
UML
RUP
يك زبان برنامه نويسي شئ گرا (ترجيحاً JAVA يا C#.Net)



اين هم منابعي براي بانكهاي شئ گرا

db4o :: Java & .NET Object Database – Open Source Object Database, Open Source Persistence, Oodb

OBJECT-ORIENTED DATABASE (OODB)

Object database - Wikipedia, the free encyclopedia

List of object database management systems - Wikipedia, the free encyclopedia
 
بالا