مقایسه دیتابیس MS-SQL با دیگر دیتابیس ها از لحاظ Database migration
برای ایجاد یک بانک اطلاعاتی در سطح کلان کدام برنامه مدیریت پایگاه داده را استفاده نماییم ؟ از میان برنامه های مدیریتی مانند MS-SQL و Oracle و MYSQL و … کدام یک مناسب تر است ؟ پایگاه های داده هر کدام دارای مزیتها و معایبی هستند که در ادامه توضیح داده خواهد شد.
یکی از مباحثی که پایگاه داده ها در آن تفاوت بسزایی دارند Database Migration می باشد. برخی اوقات لازم است پایگاه داده از یک سیستم و یا یک سرور برروی سرور دیگر جابجا شود و یا ممکن است با بالابردن نسخه نرم افزار احتیاج به جابجایی پیدا کنید. این عملیات به عاملهای متعددی بستگی دارد. بعنوان مثال این عوامل عبارتند از حجم Dtabase ، زبانهای استفاده شده در آن و تکنولوژی ذخیره سازی اطلاعات در جداول و …
برای انجام این انتقال می توان از برنامه های جانبی استفاده نمود یکی از این برنامه ها DB Convert نام دارد. البته به این نکته نیز باید اشاره نمود که استفاده از برنامه های جانبی مشکلاتی را هم بهمراه دارد. بعنوان مثال این برنامه ها جداول سیستمی را تبدیل نمی نمایند. کلیدهای خارجی به جدول مورد نظر که قبلا تعریف شده است اشاره نمی نماید و Views را نیز تبدیل نمی کند.
انجام انتقال از طریق انتقال الگو انجام می پذیرد. این الگو شامل تعاریف جداول ، views ، شاخص ها ، کاربران ، محدودیت ها و بقیه اشیاء دیتابیس می باشد. اکثر پایگاه داده ها در این عوامل مشترک هستند. این پایگاه داده ها از لحاظ تشابه اشیاء ، نام اشیاء و طراحی جداول مورد بررسی قرار خواهند گرفت.
تشابهات زیادی بین طرح اشیاء در پایگاه داده اوراکل و MSSQL وجود دارد. در جدول ذیل برخی تفاوتها را مشاهده خواهید نمود :
Oracle | Microsoft SQL Server |
Database | Database |
Schema | Database and database owner (DBO) |
Tablespace | Database |
User | User |
Role | Group/Role |
Table | Table |
Temporary tables | Temporary tables |
Cluster | N/A |
Column-level check constraint | Column-level check constraint |
Column default | Column default |
Unique key | Unique key or identity property for a column |
Primary key | Primary key |
Foreign key | Foreign key |
Index | Non-unique index |
PL/SQL Procedure | Transact-SQL (T-SQL) stored procedure |
PL/SQL Function | T-SQL stored procedure |
Packages | N/A |
AFTER triggers | Triggers |
BEFORE triggers | Complex rules |
Triggers for each row | N/A |
Synonyms | N/A |
Sequences | Identity property for a column |
Snapshot | N/A |
View | View |
لغات رزرو شده در اوراکل و MS-SQL با یکدیگر متفاوت است. اکثر لغات رزرو شده توسط اوراکل اشیا معتبر و در MSSQL ستون نام ها می باشد. برای مثال DATE یک لغت رزرو شده در اوراکل می باشد. اما این کلمه در MSSQL هیچ تعریفی ندارد. بعبارت دیگر هیچ ستونی را نمی توانید به نام DATE در اوراکل ایجاد نمایید. اما این ستون با همین نام را می توانید در MSSQL ایجاد نمایید. این قوانین مشکلاتی را نیز در انتقال پایگاه داده ها به یکدیگر ایجاد می نماید. [irp posts=”۹۱۰۴″ name=”ایمن سازی Connection String در هنگام استفاده از کنترل های Data Source در MS-Sql Server 2008″]
برای حل این موارد ، باید نام های یکسان برای برخی جداول انتخاب نمایید تا در انتقال پایگاه داده ها مشکلی بوجود نیاید.
عمده مشکلات بوجود آمده در انتقال پایگاه داده بین برنامه های مدیریت پایگاه داده عبارتند از :
- Entity Integrity Constraints
- Referential Integrity Constraints
- Unique Key Constraints
- Check Constraints
برای جلوگیری از حذف اطلاعات هنگام انتقال به پایگاههای دیگر باید به عواملی غیر مشترک در برنامه های مختلف دقت نمایید. تمام این محدودیت ها باعث می شود اطلاعات از بین رفته و یا در جدال متفاوتی قرار گیرند.
استفاده از هر برنامه مدیریت پایگاه داده مانند اوراکل ، MSSQL ، Mysql و سایبیس و … هر کدام دارای معایب و مزایایی هنگام انتقال داده دارند. با توجه به فراگیر بودن MSSQL در دنیای IT ، می توان به جرات گفت در صورت بروز مشکل برای نقل و انتقال پایگاه داده راهکارها و برنامه های جانبی بسیاری در اختیار کاربر قرار خواهد داشت تا در مقایسه با دیگر دیتابیس ها. [irp posts=”۸۶۴۲″ name=”تبدیل پایگاه داده های MySQL ، SQL Server ، Oracle ، Microsoft Access به یکدیگر”]