معرفی و کاربرد برترین پایگاه داده ها

امروز به نحوی می خواهیم به شما آموزش و مشاوره دهیم. آن هم در مورد دو پایگاه داده بسیار قدرتمند. اگر فریلنسر هستید و از راه دور آموزش های مرتبط به بانک های اطلاعاتی را به دوستداران این رشته آموزش می دهید این مطلب را مطالعه کنید ، چرا که می تواند اطلاعات تخصصی شما را بالا ببرد و سطح تدریس و آموزش شما را ارتقا دهد.

دو بانک اطلاعاتی اوراکل و SQL Server از با اهمیت ترین بانک های اطلاعاتی حال حاضر دنیا شناخته می شوند. اما بر سر اینکه کدام یک از آن ها نسبت به یک دیگر برتری دارند ، هنوز هم در میان برنامه نویسان مورد شک می باشد. اما نظر مایکروسافت در این خصوص این است که SQL Server بسیار روان تر و سبک تر از همتای خود است ، در مقابل اوراکل هم از خیلی جهت ها خودش را بهتر از SQL Server می داند.

ما در این مطلب قصد داریم این دو بانک اطلاعاتی را با هم مقایسه کنیم و از لحاض فنی تا آنجایی که امکان دارد به سوالات بی جوابتان پاسخی دهیم.

آنچه در این مطلب به آن اشاره می کنیم شامل موارد زیر خواهد بود:

امکانات پایگاه های اطلاعاتی یا همان Performance

ابزار یا Utility

Replication در بانکهای اطلاعاتی بسیار بزرگ یا همان VLDB یا Very Large Data Bases

OLTP یا Online Transaction Processing

و همینطور معرفی ابزارهای جدید SQL Server 2005 که در واقع می کوشد با اوراکل رقابت کند.

معماری پایگاه داده

معماری بانک اطلاعاتی

هر دیتابیس در بانک اطلاعاتی اوراکل شامل همه امکانات پروسه های پایگاه داده های اوراکل و بافر ها ، پایگاه Relational Database ، Instance ، لوگ های بازگشت به حالت گذشته یا Redo Logs ، فایل های تنظیمی همچون config.ora و init.ora ، SYSTEM Teblespace و سایر انتخاب های مورد نظر می باشد.

در SQL Server که نسخه جدید آن نیز منتشر شده است. دیتابیس به گروهی از اسکیما یا Schema های پایگاه داده گفته می شود که در فایل بصورت فیزیکی ذخیره می شوند. دیتابیس ها به دو طبقه تقسیم بندی می شوند. تعریف شده از سمت یوزر یا کاربر و تعریف شده از سمت سیستم.

در هر SQL Server امکان حمایت و پشتیبانی از گروهی از دیتابیس بوسیله Instance فراهم است و در هر سیستمی چندین Instance می تواند همزمان با هم کار کنند.

پس از راه اندازی SQL Server انواع دیتابیس ها مانند MD یا Msdb database ، Model Database (برای حمایت کردن از Agent ها) و Tempdb Database (پایگاه اطلاعات موقت مانند پایگاه موقت اوراکل OracleTemp Tablespace؛ تنها تفاوت اوراکل و SQL Server در این است که کاربران در این سیستم می توانند خودشان پایگاه داده ایجاد کنند اما این امکان در اوراکل نیست چرا که به صورت پیشفرض ساخته می شود.

هر دیتابیس در SQL Server توانایی پشتیبانی از گروهی از Filegroup را داراست. بنابراین کار پشتیبانی گرفتن از اطلاعات براحتی قابل انجام است. کاملاً واضح است که دیتابیس ها در SQL Server همان کاری را انجام می دهند که tabalespace در اوراکل انجام می دهد.

در بخش SYSTEM Tablespace در سیستم دیتابیس اوراکل یک دیکشنری داده اجرا می شود اما همین دیکشنری داده در SQL Server 2005 توسط هر دیتابیس انجام می پذیرد. این دیکشنری داده شامل اطلاعات ارزشمندی مانند اشیای پایگاه داده (Table ،View و Procedure) ، اطلاعات کاربران و دسترسی های آن ها، Constraints ها ، User-Defined data type و Snapshot definition می شود.
اگر هم به اطلاعاتی مانند نام های دیتابیس ها، اطلاعات سرور، مدیریت پیغام ها و Stored Procedures های سیستم می خواهید دسترسی داشته باشید به Master Database مراجعه کنید .

نکته قابل ذکر در SLQ Server 2005 این است که object ها در دیتابیس های مخفی سیستم یعنی در resource database ( پایگاه اطلاعات منابع ) ذخیره می شوند.

مورد با اهمیت در خصوص سیستم کاتالوگ در SQL سرور این است که آنها منبعی برای دستری به اطلاعات دیتابیس هستند که البته در اختیاز کاربران هم می باشند.

برای کسب اطمینان از کارایی سرور DMV از SQL سرور یاDynamic Management Views استفاده میشود، این مورد در اوراکل بوسیله ی viewهای $ V انجام می شود.

علتی که سبب ارتباط بین سرور اوراکل با کلاینت ها آن می شود Oracle Net Service نام دارد. این کار توسط پروتوکلی به نام Transparent Network Substare با مخفف TNS انجام می پذیرد؛ برخلاف SQL Server این عمل بوسیله ی پروتکل های شبکه موجود در کلاینت و سرور انجام می شود.

به تازگی فناوری جدیدی در SQL Server 2005 به نام SQL Server Native Client قرار داده شده است که می تواند از Tabular Data Stream و Net Lip پشتیبانی کند.

ساختار فیزیکی و منطقی ذخیره اطلاعات

ساختار فیزیکی و منطقی ذخیره اطلاعات

حال میخواهیم از لحاظ ساختار اطلاعاتی این دو پایگاه داده را بررسی کنیم. در پایگاه داده SQL Server اندازه صفحات 8 کیلوبایت است که واحد پایه ورودی یا خروجی به حساب می آید که هر صفحه به یک موضوع مانند دیتا ، ایندکس و یا GAM مربوط می شود. برای افزایش کارایی اینگونه صفحه ها ، SQL Server آن ها را در رده های 8 تایی به نام Extent قرار داده است که هر کدام از این Extent ها می توانند متعلق به چندین آبجکت باشند.

اگر همه صفحه ها در Extent آبجکت های شبیه هم داشته باشند به آنها Uniform گفته می شود و در غیر اینصورت به آنها Mixed می گویند.

روش مدیریت از فضا های جدول فیزیکی و همینطور ایندکس ها در دیتابیس های SLQ Server استفاده از Filegroup ها است که این Filegroup ها از تعدادی فایل شکل گرفته اند که اجازه ذخیره در دیگر Filegroup ها را هم دارند. جدول های بسیار بزرگ را می توان با استفاده از Filegroup در چندین فایل ذخیره کرد که نتیجه این کار افزایش عملکرد ورودی و خروج خواهد بود. همینطور امکان عملیات پشتیبان گیری و باز گردانی جدول ها را در این فایل می توان انجام داد و داده هایی مانند تصویر و فایل های متنی بزرگ را در این فایل ذخیره کرد.

در طرف دیگر پایگاه داده اوراکل از Tablespaceهایی تشکیل شده است که خود از Data File شکل گرفته اند. طبقه بندی Data File ها در واحد هایی به اسم Block صورت می گیرد که اندازه آن توسط مدیریت بانک اطلاعاتی در هنگام ساخت دیتابیس تعیین می شود. کاربر در اوراکل اجازه دارد وقتی یک شیء در Tablespace تولید می شود ، فضای آن را تعیین کند.

قیاس بین پایگاه داده SQL Server 2005 و Oracle 10g

قیاس بین پایگاه داده SQL Server 2005 و Oracle 10g

می خواهیم به محدودیت های SQL Server 2005 بپردازیم. درست است که این پایگاه داده خیلی قوی است و شرکت های زیادی از آن استفاده می کنند ، اما محدودیت هایی هم دارد. یکی از محدودیت ها در چگونگی قفل کردن یا Locking Strategy است. در MS SQL 2000 مثل پایگاه داده اوراکل دسترسی همزمان به پایگاه را می توان محدود و یا قفل کرد. ولی امکان قفل کردن در MS SQL 2000 امکان خیلی زیاد است؛ به ویژه در CTF یا Correct Transactional Flows.

انجام تغییر در پایگاه های اطلاعاتی به صورت آنلاین از ضعف های دیگر SQL Server محسوب می شود. البته درست است که به صورت کامل نمی شود ایندکس ها را در Server 2000 تغییر داد ، اما با استفاده ازDBCC INDEXDEFRAG در SQL Server 2000 می توان به این مهم دست یافت.

در نسخه های 8.1 به بعد پایگاه داده اوراکل می توان بودن داشتن exclusive lock جدول ها و ایندکس ها را جا به جا کرد و تغییر داد. گفتنی است که در ورژن های 9.2 اوراکل در این بخش مشکلاتی وجود داشت که در نسخه آخر آن حل شده است. حال دو بانک اطلاعاتی Oracle 10g و SQL Server 2005 را از لحاظ امکانات و ساختار بررسی می کنیم.

اکثر محصولات مایکروسافت ، از پنل مدیریتی ساده ای برخوردار هستند که SQL Server 2005 هم از این قاعده مستثنی نیست. به طوریکه می توان با استفاده از خط دستور در SQLCMD، ابزار مدیریتیDedicated Administrator Connection را اجرا نمود. همچنین برای کاربران و مدیران پایگاه های داده قابلیت Policy فعال است.

هر چند که پیچیدگی های پایگاه داده اوراکل زیاد است ، اما در عین حال قابلیت های مدیریتی بیشتری از MS SQL دارد. حتما اطلاع دارید که سیستم رمز دهی اوراکل بعد از ورژن 7 بسیار قدرتمند شده است. برقراری ارتباط یوزر با Schema در اوراکل به سادگی انجام می پذیرد. فرضا با کاربر Tsr1 به پایگاه داده اوراکل وصل هستید و قصد دارید روی DB2 Schema عملیاتی انجام دهید. لذا می توانید از دستور روبرو استفاده کنید: ;ALTER SESSION SET CURRENT_SCHEMA=DB2

سیستم LOCKING

سیستم LOCKING

نسخه برداری از ردیف های جداول قابلیتی است که در ورژن جدید SQL Server اضافه شده است. این قابلیت را با نام Snapshot Isolation می شناسند. اما در اوراکل این قابلیت با نام Oracle Flashback Query شناخته می شود. البته تفاوت هایی هم بین این دو وجود دارد بدین صورت که اوراکل برای عقب گرد به رکود قبلی از عبارت Undo Segment استفاده می کند ، این در حالی است که در SQL Server 2005 از TempDB استفاده می شود.

فرق دیگر دو پایگاه داده نام برده در این است که در SQL Server 2005، فعالیت DLL ها تماما بر روی جدول انجام می پذیرد اما MetaData در اوراکل مثل جداول مدیریت می شوند. لذا به طور همزمان چند Data Definition language می توانند در زمان اجرای درخواست ها شروع به فعالیت کنند.

مراحل قفل کردن در اوراکل درDB Block انجام می شود ، ولی این عمل در پایگاه داده SQL Server در هر ردیف جدول انجام می پذرید. مایکروسافت مدعی است که این عمل سبب زیاد شدن سرعت برنامه و جدول ها خواهد شد اما در عمل تفاوتی در برتری این کار در SQL Server دیده نشده است.

در ورژن جدید SQL Server مشکل عوض نشدن ایندکس حل شده است و می توان چند DDL را همزمان با بازسازی اجرا نمود. در پایگاه داده اوراکل می توان همه ساختار ایندکس ها را بدون استفاده از Exclusive lock عوض کرد. البته جهت تکمیل عملیات باید از Momentary lock استفاده شود.

قابل ذکر است که ورژن اخیر SQL Server امکان جدا سازی ایندکس و جدول ها ارائه شده است. اما در اوراکل قابلیت Partitioning به صورت های مختلفی انجام می پذیرد و DBA میتواند بر اساس range ، list و hash این کار را انجام دهد. حتی انجام این کار در دو رده هم ممکن است. به عنوان مثال توانایی تقسیم جدولی بر اساس لیست فراهم است که هر یک از بخش ها بر اساس hash مجددا قابل جدا سازی اند. این ویژگی برای جداولی که بیشمار رکورد دارند هم قابل اجراست.

گفتنی است که این قابلیت درSQL Server 2005 فراهم نشده است. البته این کار در SQL Server 2005 به صورت راحت تر و با استفاده از UDF یا User Defined function قابل انجام است.

عملکرد پشتبانی پایگاه داده SQL Server 2005 در خصوص Clustering بسیار مناسب است. البته در قبال کارایی نه چندان زیادش مدیریت این کار کمی دشوار به نظر می رسد. از آن طرف پایگاه داده اوراکل در نسخه g10 خود قابلیت RAC/GRID را منتشر کرده است که قابلیت شگفت انگیزی محسوب می شود و امتیاز خوبی در برابر SQL Server 2005 می باشد. دیگر قابلیت جدید اوراکل Automatic Storage Management نام دارد که در Clustering مورد استفاده قرار می گیرد.

ایندکس و Tuning

ایندکس و Tuning

روش مرتب سازی و یا حتی ایندکس در SQL Server 2005 همواره بصورت BTree بوده و همچنان نیز با همین روش به کار ادامه می دهد. که در برابر indexing قدرتمند در اوراکل ساختاری نسبتاً ضعیفی به حساب می آید. البته اوراکل هم از سیستم BTree استفاده می کند، اما در موضوع indexing بهتر عمل کرده است چرا که از Bitmap استفاده می کند. علاوه بر این پایگاه داده اوراکل از روش Oracle key based cluster نیز در ایندکس استفاده می کند که کارایی بانک اطلاعاتی را بالا برده است.

شباهت دو پایگاه داده اوراکل و SQL Server در این است که برای فانکشن هایی که بر ستون های جدول قرار دارند ، می توان ایندکس درست کرد و در هر دو آن ها Materialized view ایجاد نمود. برای متصل کردن چندین جدول نیز می توان ار ویو های آماده که MV ها نام دارد استفاده کرد.

لازم به ذکر است که SQL Server 2005 دارای محدودیت هایی از لحاظ aggregation و functionها است. به عنوان مثال در ویوی ایندکس نمی توان از Distinct ،NOT و … بهره برد و قابلیت Sum کردن هم فراهم نمی باشد.

کپی پشتیبان و بازیابی کردن اطلاعات

کپی پشتیبان و بازیابی کردن اطلاعات

قبلا اشاره کرده ایم که در نسخه های قدیمی SQL Server نمی توان از اطلاعات به صورت آنلاین بکاپ گیری کرد که این مشکل در ورژن جدید حل شده است.

اوراکل نیز زمانی که در حال کار است با استفاده از Tablespace ها اینکار را انجام می دهد. البته در Tablespace های اوراکل اطلاعات گذشته را نمی توان در Tablespace بازیابی کرد و از آن جایی که در هر Tablespace یک Metadata وجود دارد ، این Tablespace ها نمی توانند کامل باشند.هر چند با استفاده از Redo log ها می توان در اوراکل به بازیابی کامل اطلاعات پرداخت.

مشکلات ایجاد شده در بازیابی در پایگاه داده اوراکل بوسیله logical dump شناسایی و قابل حل است. البته SQL Server هم ابزارهایی مانند DBCC PAGE و DBCC LOG برای حل این مشکل دارد.

انتقال و ورود اطلاعات (Export and Import)

انتقال و ورود اطلاعات (Export and Import)

امکان فوق العاده ای که در Oracle 10 g قرار داده شده است جهت منتقل کردن اطلاعات به data pump استفاده می شود. ساختار data pump از نوع binary دارد. دو گزینه exp/data و imp/data برای انتقال و وارد کردن اطلاعات می باشد.

در پایگاه داده اوراکل ابزاری به نام sqlldr وجود دارد که جهت ایمپورت کردن اطلاعات متنی مورد استفاده قرار می گیرد. همچنین در پایگاه داده SQL Server2005 دو گزینه export و import مختص این عمل می باشد و کلید های bcp و Bcp .DTS می تواند اطلاعات را به صورت متنی وارد یا خارج کند.

امکانات موجود برای طراحان و برنامه نویس ها

امکانات موجود برای طراحان و برنامه نویس ها

اوراکل امکان Exception Handling را نیز در اختیار برنامه نویسان قرار داده است که بوسیله PL/SQL می توان به آن دسترسی پیدا کرد. در مقابل این امکان در SQL Server 2005 توسط Transcat-SQL بوجود آمده است.

در بحث Queuing پایگاه داده SQL Server 2005 برای برنامه نویسان قابلیت Queing را فراهم کرده است که نام این ابزار Server Broker می باشد ، ولی در اوراکل ابزار قویتری در اختیار برنامه نویسان قرار گرفته است که نامش Oracle Advanced Queuing می باشد که کارایی کامل تری دارد.

اگر برنامه نویسی جاوا انجام می دهید باید بدانید که هسته اوراکل از جاوا است و البته اعتراف می کنیم که SQL Server 2005 بیشتر به کار برنامه نویسان می آید چرا که از .NET استفاده می کند ولی هسته اوراکل از جاوا است و فقط می تواند PL/SQL را اجرا کند. لذا در SQL Server 2005 میتوانیم به صورت مستقل از دستورات NET. استفاده کنیم.

انتقال اطلاعات نیز امر مهمی است که در پایگاه داده SQL Server توسط DTS انجام می پذیرد که نسبت به اوراکل بسیار سریعتر است. هر چند اوراکل نیز بیکار ننشسته و در نسخه جدید خود از ابزارWisdomForce FastReader رونمایی کرده است که سرعت export و import را بوسیله ی آن افزایش داده است و اطلاعات را با فرمت متنی آماده می سازد که میتوان از این ابزار برای منتقل کردن اطلاعات میان اوراکل و دیگر بانک های اطلاعاتی مثل MS SQL ،2DB ،Sybase استفاده کرد.

همانطور که گفتیم هسته اواراکل توسط جاوا ایجاد شده است که حفظ آبجکت ها جاوای درون اوراکل مانند نگهداری یک سرور جاوا است ، اما در SQL Server 2005 فقط در بخشی از قسمت ها مثل اشکال یابی از NET trigger. استفاده می شود که حجم سنگینی محسوب نمی شود.

پیشنهاد مقاله مفید : نکاتی مهم برای یادگیری برنامه نویسی

امکانات ویژه SQL Server 2005

امکانات ویژه SQL Server 2005

– Auditing : پارامتر init.ora audit_trail=db_extended, برای انجام این کار در پایگاه داده اوراکل بکار گرفته است که همه جستجوها به مقادیری وردی اطلاعات خود ذخیره می شوند. اما پارامتر Trace در SQL Server2005 وظیفه این کار را برعهده گرفته است. البته توانایی نمایش اطلاعات Bind شده را ندارد و همینطور استفاده از آن کارایی سرور را کم میکند.

– Logminer : اگر نیاز به تاریخچه تمامی DML یا DLL های پایگاه های داده باشد SQL Server2005 معذور به انجام آن می شود اما در اوراکل به ابزاری به نام Logminer وجود دارد که به این نیاز پاسخ می دهد.

– Flashback Query : بازیابی اطلاعات توسط این گزینه در نسخه Oracle 10g قابل انجام است.

SQL Server 2005 : Replication ابزار Replication بسیار قوی ای دارد که توانایی Replication کردن از اوراکل به SQL Server یا بلعکس را به خوبی دارد.

– Notification : از این امکان در SQL Server 2005 می توان در Alertهایی مانند Stock Market استفاده کرد.

– Reporting Services : قابلیت گزارش داخلی پوئن مثبتی است که اوراکل از دست داده است. این سرویس در SQL Server 2005 در استخراج گزارش کاربرد دارد. البته اوراکل دارای سرویس قوی تری است به نام Oracle IAS اما مانند SQL Server 2005 در درون بانک اطلاعاتی نیست و به صورت خارجی عمل می کند.

– Identity : برعکس پایگاه داده SQL Server2005 در پایگاه داده اوراکل تعریف کلید اصلی به صورت اتوماتیک ممکن نیست. هر چند اوراکل از Sequence پشتبانی می کند اما نگهداری آن خیلی کار آسانی نیست.

امکانات ویژه Oracle 10g

امکانات ویژه Oracle 10g

– Rollback Statistics: مزیت دیگر اوراکل نسبت به همتای قدرتمند خود این است که اگر عملیات سنگینی در میانه کار انجام بگیرد ، امکان Rollback فراهم است. Rollback statistics به شما می گوید که چه مقدار زمان صرف خواهد شد که Rollback انجام شود. برای اینکار دستور از دستور زیر می توانید استفاده کنید. V$FAST_START_TRANSACTIONS

– AWR یا Automatic Workload Repository: فرض کنید بانک اطلاعاتی شما حجم و ترافیک زیادی دارد و پاسخگویی به کلاینت ها کند شده باشد. با استفاده از این گزینه در Oracle 10g می توان مشکل را بررسی و حل کرد. اوراکل این کار را با استفاده از درست کردن View های زیر انجام می دهد.

v$waitclassmetric_history for v$waitclassmetric

v$session_wait_history for v$session_wait

v$servicemetric_history for v$servicemetric

v$sysmetric_history for v$sysmetric

v$active_session_history for v$active_session

– پشتیبانی از OO یا :Object Oriente اوراکل شی گراست. این مورد به برنامه نویسان اجازه می دهد که Class و Object های برنامه شیء گرای خود را مستقیماً به جدول های بانک اطلاعاتی Map کنند. در صورتی که از برنامه نویسی شی گرا چیزی نمی دانید می توانید مقالاتی را در سطح گوگل جستجو کنید.

مطالب مرتبط

نظرات کاربران

نظرات کاربران درباره‌ی این خدمت. شما هم می توانید نظر خود را ارسال نمایید:

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *