زمانی که برای اولین بار XML ارائه شد، از آن به عنوان یک مدل دادهای برای مبادله اطلاعات یاد کردند. دلیل اینکه برای مبادله اطلاعات از این مدل درختی استفاده میشد، این بود که XML به عنوان یک زبان بیطرف مطرح بود و بیشتر مدلهای دادهای (درختی، رابطهای و شئگرا و … ) میتوانستند دادههای خود را به این مدل تبدیل کنند و بالعکس، از این مدل دادههای خود را استخراج کنند.
پس از مدتی تعداد این اسناد بسیار زیاد شد و ایدهای که مطرح شد این بود که خود سندهای XML را به عنوان داده (و حتی در مواردی خود پایگاه داده) در نظر بگیریم. این نگرش باعث شد که دو نوع از این بانکهای اطلاعات پدیدار شود
• بانک اطلاعات ذاتاً XML
• بانک اطلاعات پشتیبان XML
۲-۲-۱- بانک اطلاعات پشتیبان XML
بعد از اینکه XML فراگیر شد و نیاز به ذخیرهسازی این سندها بیش از پیش حس شد، بسیاری از نرمافزارهای شرکتهای معتبر در زمینه بانکهای اطلاعات مانند Oracel ،MS SQL Server ، DB2 و … سعی کردند که تغییراتی در سندهای XML بدهند و آنها را در همان جداول ذخیره کنند. در نتیجه به پایگاه داده خود یک لایه جدید اضافه کردند که آن لایه مسئولیت تبدیل دادههای XML به دادههای رابطهای را برعهده داشت. کامپایلر این لایه یک فاز اضافه نیز داشت که پرسوجوهایی که به زبان XPath و یا XQuery داده میشد را تبدیل به SQL میکرد.
در این بانکهای اطلاعات، ذخیرهسازی به صورت رابطه میباشد. در این نوع بانکهای اطلاعات باید دادههای XML را به فرم رابطه تبدیل نمائیم. مهمترین مزیت این روش این است که از آن پس با یک سیستم بانک اطلاعات رابطهای سروکار خواهیم داشت و از امکانات وسیع آن بهره خواهیم جست. عیب بزرگ این روش سربار انجام تبدیلات لازم برای دادهها و پرسوجوهاست. میتوان از مدلهای دیگر مثل شئگرا و شئ- رابطهای نیز بجای مدل رابطهای استفاده نمود.
۲-۲-۲- بانک اطلاعات ذاتاً XML
پایگاهدادههای قبلی برای ذخیرهسازی دادههای XML و همچنین برای پاسخ به پرسوجوهای XML دارای مشکلاتی بودند. برای مثال زمانی که جواب یک پرسوجو تکههایی از یک سند که ساختارهای متفاوتی داشتند باشد، لایه مبدل نمیتواند جوابها را ادغام کند و به صورت جداگانه به کاربر برگرداند. از اینرو تعدادی از بانکهای اطلاعات با شمای درختی ساخته شدند. هدف این بانکهای اطلاعات تولید یک DBMS برای سندهای XML بود که همه قابلیتهای بانک اطلاعات رابطهای را داشته باشد.
در این بانکهای اطلاعات ذخیرهسازی اطلاعات به صورت غیر رابطهای بوده و اساساً مدل دادهای، XML میباشد [۲۵، ۲۶]. در حال حاضر سیستمی تجاری با این مشخصه رایج و مرسوم نمیباشد. البته نمونههایی از قبیل TIMBER ، XTC و Qizx/db [11] ساخته شده و در بسیاری از پروژههای کاربردی استفاده شدهاند، اما هرکدام دارای نواقص و مشکلاتی خاص میباشند.
مزایای بانک اطلاعات ذاتاً XML بازیابی ساده اطلاعات، حفظ ساختار اصلی، عدم نیاز به ترجمه و نگاشت، ماهیت نیمهساختیافته اطلاعات و سرعت بالای دستیابی میباشد. مهمترین معایب این گونه بانکهای اطلاعات عبارتند از [۱۱]:
۱٫ پیچیدگی مدیریت و نگهداری دادههای غیر XML .
۲٫ عمل کنترل همزمانی در یک سند به راحتی امکانپذیر نمیباشد.
۳٫ مشکل به روزرسانی همچنان بیپاسخ مانده است، به طوری که برخی از این بانکهای اطلاعات طبق شرایط خاص اجازه به روزرسانی را میدهند.
۴٫ پرسوجوها ناکارآمد و وقتگیر هستند.
۵٫ فقدان سیستمهای تجاری رایج.
۶٫ ساختار پیچیده با تودرتویی زیاد.
۷٫ کمرنگ بودن امنیت