Rise Company
05-08-2018, 00:01
الفرق بين MySQL لينكس و SQL Server ويندوز
جميع التطبيقات الحديثة تقريباً والموجودة على شبكة الانترنت وقواعد البيانات تلعب دوراً حاسماً.
نظراً للطبيعة الديناميكية لتطوير الويب الحالي، حتى التطبيقات الأولية تتطلب بعض آليات تخزين البيانات واسترجاعها وتعديلها.
بطبيعة الحال، كلما زادت أهمية قواعد البيانات، ازدادت شعبية أنظمة إدارة قواعد البيانات العلائقية والتي تعرف اختصاراً بـ RDBMS.
اثنان من هذه الأنظمة هما MySQL و SQL Server، كلاهما يؤديان نفس الوظيفة، على الرغم من أنهما يتمتعان بحالات استخدام مميزة.
حيث أن الاثنين يقومان بإدارة نكهات مختلفة، ولكنهما يعتمدان بشكل مشترك على SQL أو لغة الاستعلام المهيكلة.
على هذا النحو يمكن للمطورين توقع بعض التشابه بين MySQL و SQL Server، مثل:
[*=right]استخدام الجداول لتخزين البيانات
[*=right]الإشارة إلى المفاتيح الأساسية والغريبة
[*=right]بالإضافة إلى قواعد بيانات متعددة داخل بيئة واحدة أو خادم واحد.
لن يكون من الخطأ أن نطلق على MySQL و SQL Server أكثر حلول RDBMS شيوعا في الوجود، على الرغم من أن Oracle و Postgres قد يكون لديهما ما يقولونه عنه.
على الرغم من أننا نشهد وبشكل تدريجي تحولاً من SQL نحو NoSQL، إلا أن الرقم السابق هو الوجود الأكثر هيمنة.
وهذا يعني الآن بأنه أفضل وقت لتعلم إما MySQL و SQL Server.
https://www.rise.company/forum/images/imported/2018/08/16.jpgتم تطوير MySQL في منتصف التسعينيات (حيث تم اكتسابه في وقت لاحق من قبل Oracle).
كان أول قاعدة بيانات مفتوحة المصدر، ولا يزال حتى يومنا هذا.
هذا يعني أن هناك عدة بدائل من MySQL، لكن الاختلافات بين هذه المتغيرات ليست واضحة جداً، فبناء الجملة والوظائف الأساسية لا تزال متطابقة.
الشيء الذي أصبح سمة من سمات MySQL هو شعبيتها داخل مجتمع بدء التشغيل.
يمكن للمطورين البدء وبسهولة باستخدام MySQL وتعديل الشيفرة في الحالات النادرة التي قد يحتاجون إليها، وذلك لأنها مفتوحة المصدر ومجانية.
عادةً ما يتم استخدام MySQL بالتزامن مع PHP و Apache Web Server على رأسها Linux، والتي أدت بمجملها إلى اختصار LAMP الشهير (Linux, Apache, MySQL, PHP).
ما هو SQL Server ؟
https://www.rise.company/forum/images/imported/2018/08/17.jpg
لقد كان SQL Server والمعروف أيضاً بـ Microsoft SQL Server أطول بكثير من MySQL.
تم تطوير SQL Server من قبل Microsoft في الثمانينيات، ووعدت بتوفير RDBMS موثوقة وقابلة للتطوير.
تبقى هذه الصفات الأساسية لـ SQL Server بعد كل هذه السنوات، كما هو منصة الانتقال إلى برمجيات الشركات على نطاق واسع.
حيث تم تصميم SQL Server بشكل أساسي للمطورين الذين يستخدمون .NET كلغة تطوير خاصة بهم، بدلاً من PHP لـ MySQL.
هذا منطقي حيث أن كليهما يقعان تحت مظلة Microsoft.
الاختلافات الرئيسية بين MySQL و SQL Server:
الآن وبعد أن حصلنا على مخطط لماهية هذه الأنظمة، دعنا نلقي نظرة على العديد من الاختلافات الرئيسية بين MySQL و SQL Server:
1. البيئة:
كما تم التلميح سابقاً بأن SQL Server يعمل بشكل أفضل مع .NET، بينما يمكن إقران MySQL مع كل اللغات الأخرى تقريباً، وعادةً ما يكون مع PHP.
كما يجب الإشارة إلى أن SQL Server يستخدم لتشغيل Windows حصرياً، ولكن هذا تغير منذ عامين عندما أعلنت Microsoft دعم Linux لـ SQL Server.
بالرغم من ذلك فإن إصدار Linux يكاد يكون ناضجاً بما فيه الكفاية، مما يعني أن توصياتنا تبقى لك لمواصلة العمل على Windows إذا كنت تستخدم SQL Server، والتحول إلى Linux إذا كنت تستخدم MySQL.
2. بناء الجملة (Syntax):
بالنسبة لمعظم الناس فإن هذا الفرق يعتبر الأكثر أهمية بين النظامين.
حيث يمكن أن يؤثر التعرف على مجموعة واحدة من قواعد النحو على أخرى بشكل كبير على قرارك فيما يتعلق بالنظام الذي يناسبك.
على الرغم من أن كل من MySQL و SQL Server يعتمدان على SQL، إلا أن الاختلافات في بناء الجملة لا تزال بارزة وجديرة بالاهتمام.
فعلى سبيل المثال، انظر إلى المثال التالي:
MySQL:
SELECT age FROM person ORDER BY age ASC LIMIT 1 OFFSET 2
1
2
3
4
SELECT age
FROM person
ORDER BY age ASC
LIMIT 1 OFFSET 2
Microsoft SQL Server:
SELECT TOP 3 WITH TIES * FROM person ORDER BY age ASC
1
2
3
SELECT TOP 3 WITH TIES *
FROM person
ORDER BY age ASC
كلا الجزأين من الكود يحققان نفس النتيجة، حيث أنهما يعيدان 3 مداخل مع العمر الأصغر من جدول اسمه person.
لكن هناك تغيير جذري في بناء الجملة، وبطبيعة الحال فإن بناء الجملة ذاتي ولذا لا يمكننا تقديم أي توصيات.
الذهاب مع أي منهما يعتبر شيء بديهي بالنسبة لك.
3. SQL Server هو أكثر من RDBMS:
الميزة الرئيسية للبرمجيات الاحتكارية مقابل البرمجيات مفتوحة المصدر هو الدعم الحصري الذي تتلقاه.
في هذه الحالة بالذات، تصبح الميزة أكثر عمقاً، حيث أن SQL Server مدعوم من قبل واحدة من أكثر شركات التكنولوجيا حول العالم.
قامت Microsoft بإنشاء أدوات إضافية لـ SQL Server والتي تأتي مجمعة مع RDBMS، بما في ذلك أدوات تحليل البيانات، كما تحتوي على خادم لإعداد التقارير (خدمات تقارير SQL Server)، بالإضافة إلى أداة ETL.
يمكنكم الحصول على ميزات مماثلة على MySQL أيضاً، ولكن يجب عليكم البحث في الويب عن حلول خارجية، وهذا ليس مثالياً لمعظم الأشخاص.
4. محركات التخزين:
هناك فرق كبير آخر يتم تجاهله في بعض الأحيان بين MySQL و SQL Server، ألا وهو طريقة تخزين البيانات.
SQL Server يستخدم محرك تخزين واحد تم تطويره بواسطة Microsoft.
على نقيض ذلك يوجد هناك محركات متعددة معروضة لـ MySQL، وهذا يمنح مطوري MySQL مزيداً من المرونة، حيث يمكنهم استخدام محركات مختلفة لجداول مختلفة، استناداً إلى السرعة أو الموثوقية أو بعض الأبعاد الأخرى.
أشهر محرك تخزين لـ MySQL هو InnoDB والذي يقع في الطرف الأبطأ من الطيف، ولكنه يحافظ على الموثوقية.
كما يوجد محرك آخر وهو MyISAM.
5. إلغاء الاستعلام:
الكثير من الناس لا يعرف هذا، ولكن الفرق المحتمل في التعامل بين MySQL و SQL Server هو أن MySQL لا يسمح لك بإلغاء الاستعلام في منتصف التنفيذ.
هذا يعني أنه بمجرد بدء تنفيذ الأمر، من الأفضل أن يكون أي ضرر قد يحدثه هو عكسه.
على الجانب الآخر فإن SQL Server يسمح لك بإلغاء تنفيذ الاستعلام في منتصف العملية.
يمكن أن يكون هذا الاختلاف ضاراً بشكل خاص لمشرفي قواعد البيانات، على العكس من مطوري الويب، الذين يقومون بتنفيذ الأوامر المكتوبة والتي نادراً ما تتطلب إلغاء الاستعلام أثناء التنفيذ.
6. الأمان:
لا يوجد الكثير من أجل النظر عند مقارنة فروق الأمن بين كل من MySQL و SQL Server.
كلاهما متوافق مع EC2، مما يعني أنك في معظم الأحيان في أيدٍ أمينة حيث يمكنك اختيار أياً منهما.
بعد قول ذلك، فإن ظل Microsoft أيضا يلوح في الأفق هنا، حيث أنه تم تزويد SQL Server بميزات أمان خاصة وحديثة.
حيث أن أداة الأمان المخصصة Microsoft Baseline Security Analyzer تضمن أماناً قوياً لـ SQL Server.
لذا في حال كان الأمن يمثل أولوية قصوى بالنسبة لك، فقد تم تحديد اختيارك.
7. الكلفة:
هذا هو المكان الذي يصبح فيه SQL Server أقل جاذبية، و MySQL تكسب النقاط الرئيسية.
حيث أن Microsoft تطلب منك شراء تراخيص لتشغيل قواعد بيانات متعددة على SQL Server، وهناك نسخة مجانية ولكن الغرض منها هو تعريفك بـ RDBMS فقط.
في المقابل فإن MySQL تستخدم رخصة GNU الشعبية العامة، مما يجعلها مجانية الاستخدام.
بالرغم من ذلك، فإذا احتجت إلى دعم أو مساعدة لـ MySQL فأنت بحاجة لدفع ثمنها.
8. دعم المجتمع:
هذا ما يقودنا إلى النقطة التالية، في حين يمكنك الدفع مقابل دعم MySQL، نادراً ما ينشأ هذا السيناريو نظراً لمساهمته المجتمعية الممتازة ودعمه لها.
إن الفائدة من وجود المجتمع الأوسع على جانبك هو أن معظم الناس لا يحتاجون إلى الوصول إلى المساعدة الرسمية، إذ يمكنهم البحث على شبكة الانترنت والعثور على طن من الحلول.
9. بيئات التطوير المتكاملة IDEs:
من المهم أن نلاحظ بأن كل من RDBMS يدعم أدوات بيئة التطوير المتكاملة (IDE) المختلفة.
توفر هذه الأدوات بيئة متماسكة للتطوير، ويجب أن تنتبه جيداً إلى أي منها يناسبك احتياجاتك.
تفتخر MySQL بمدير Oracle Enterprise، بينما SQL Server يستخدم Management Studio (SSMS).
كلاهما لهما مزايا ومساوئ وقد يقلبان التوازن إذا لم يكن لديك أي شيء آخر ليتم اتخاذ قرار بشأنه.
الخلاصة:
RDBMS هو اختيار مهم لأولئك الذين بدأوا للتو في تطوير التطبيقات الحديثة.
نادراً ما ينتقل الأشخاص الذين يختارون نظاماً واحداً في وقت لاحق، مما يعني أنه من الأهمية تقييم العروض المختلفة وتقديم الأفضل لك.
ناقشنا في هذه المقالة اثنين من RDBMS الأكثر استخداماً (MySQL و Microsoft SQL Server).
نظرنا إلى العديد من الاختلافات الرئيسية بين MySQL و SQL Server، حتى أن أحدهما قد يكون كافياً لتقلب قرارك لصالح أحدهما على الآخر.
في نهاية المطاف يبقى الخيار لك.
لكن وكقاعدة عامة إذا كنت تقوم بتطوير تطبيقات متوسطة/صغيرة الحجم وتستخدم بشكل أساسي PHP، فانتقل إلى MySQL.
في حين كنت مهتماً بإنشاء تطبيقات المؤسسات الكبيرة الآمنة والمرنة، فيجب أن يكون SQL Server هو المسار الخاص بك
جميع التطبيقات الحديثة تقريباً والموجودة على شبكة الانترنت وقواعد البيانات تلعب دوراً حاسماً.
نظراً للطبيعة الديناميكية لتطوير الويب الحالي، حتى التطبيقات الأولية تتطلب بعض آليات تخزين البيانات واسترجاعها وتعديلها.
بطبيعة الحال، كلما زادت أهمية قواعد البيانات، ازدادت شعبية أنظمة إدارة قواعد البيانات العلائقية والتي تعرف اختصاراً بـ RDBMS.
اثنان من هذه الأنظمة هما MySQL و SQL Server، كلاهما يؤديان نفس الوظيفة، على الرغم من أنهما يتمتعان بحالات استخدام مميزة.
حيث أن الاثنين يقومان بإدارة نكهات مختلفة، ولكنهما يعتمدان بشكل مشترك على SQL أو لغة الاستعلام المهيكلة.
على هذا النحو يمكن للمطورين توقع بعض التشابه بين MySQL و SQL Server، مثل:
[*=right]استخدام الجداول لتخزين البيانات
[*=right]الإشارة إلى المفاتيح الأساسية والغريبة
[*=right]بالإضافة إلى قواعد بيانات متعددة داخل بيئة واحدة أو خادم واحد.
لن يكون من الخطأ أن نطلق على MySQL و SQL Server أكثر حلول RDBMS شيوعا في الوجود، على الرغم من أن Oracle و Postgres قد يكون لديهما ما يقولونه عنه.
على الرغم من أننا نشهد وبشكل تدريجي تحولاً من SQL نحو NoSQL، إلا أن الرقم السابق هو الوجود الأكثر هيمنة.
وهذا يعني الآن بأنه أفضل وقت لتعلم إما MySQL و SQL Server.
https://www.rise.company/forum/images/imported/2018/08/16.jpgتم تطوير MySQL في منتصف التسعينيات (حيث تم اكتسابه في وقت لاحق من قبل Oracle).
كان أول قاعدة بيانات مفتوحة المصدر، ولا يزال حتى يومنا هذا.
هذا يعني أن هناك عدة بدائل من MySQL، لكن الاختلافات بين هذه المتغيرات ليست واضحة جداً، فبناء الجملة والوظائف الأساسية لا تزال متطابقة.
الشيء الذي أصبح سمة من سمات MySQL هو شعبيتها داخل مجتمع بدء التشغيل.
يمكن للمطورين البدء وبسهولة باستخدام MySQL وتعديل الشيفرة في الحالات النادرة التي قد يحتاجون إليها، وذلك لأنها مفتوحة المصدر ومجانية.
عادةً ما يتم استخدام MySQL بالتزامن مع PHP و Apache Web Server على رأسها Linux، والتي أدت بمجملها إلى اختصار LAMP الشهير (Linux, Apache, MySQL, PHP).
ما هو SQL Server ؟
https://www.rise.company/forum/images/imported/2018/08/17.jpg
لقد كان SQL Server والمعروف أيضاً بـ Microsoft SQL Server أطول بكثير من MySQL.
تم تطوير SQL Server من قبل Microsoft في الثمانينيات، ووعدت بتوفير RDBMS موثوقة وقابلة للتطوير.
تبقى هذه الصفات الأساسية لـ SQL Server بعد كل هذه السنوات، كما هو منصة الانتقال إلى برمجيات الشركات على نطاق واسع.
حيث تم تصميم SQL Server بشكل أساسي للمطورين الذين يستخدمون .NET كلغة تطوير خاصة بهم، بدلاً من PHP لـ MySQL.
هذا منطقي حيث أن كليهما يقعان تحت مظلة Microsoft.
الاختلافات الرئيسية بين MySQL و SQL Server:
الآن وبعد أن حصلنا على مخطط لماهية هذه الأنظمة، دعنا نلقي نظرة على العديد من الاختلافات الرئيسية بين MySQL و SQL Server:
1. البيئة:
كما تم التلميح سابقاً بأن SQL Server يعمل بشكل أفضل مع .NET، بينما يمكن إقران MySQL مع كل اللغات الأخرى تقريباً، وعادةً ما يكون مع PHP.
كما يجب الإشارة إلى أن SQL Server يستخدم لتشغيل Windows حصرياً، ولكن هذا تغير منذ عامين عندما أعلنت Microsoft دعم Linux لـ SQL Server.
بالرغم من ذلك فإن إصدار Linux يكاد يكون ناضجاً بما فيه الكفاية، مما يعني أن توصياتنا تبقى لك لمواصلة العمل على Windows إذا كنت تستخدم SQL Server، والتحول إلى Linux إذا كنت تستخدم MySQL.
2. بناء الجملة (Syntax):
بالنسبة لمعظم الناس فإن هذا الفرق يعتبر الأكثر أهمية بين النظامين.
حيث يمكن أن يؤثر التعرف على مجموعة واحدة من قواعد النحو على أخرى بشكل كبير على قرارك فيما يتعلق بالنظام الذي يناسبك.
على الرغم من أن كل من MySQL و SQL Server يعتمدان على SQL، إلا أن الاختلافات في بناء الجملة لا تزال بارزة وجديرة بالاهتمام.
فعلى سبيل المثال، انظر إلى المثال التالي:
MySQL:
SELECT age FROM person ORDER BY age ASC LIMIT 1 OFFSET 2
1
2
3
4
SELECT age
FROM person
ORDER BY age ASC
LIMIT 1 OFFSET 2
Microsoft SQL Server:
SELECT TOP 3 WITH TIES * FROM person ORDER BY age ASC
1
2
3
SELECT TOP 3 WITH TIES *
FROM person
ORDER BY age ASC
كلا الجزأين من الكود يحققان نفس النتيجة، حيث أنهما يعيدان 3 مداخل مع العمر الأصغر من جدول اسمه person.
لكن هناك تغيير جذري في بناء الجملة، وبطبيعة الحال فإن بناء الجملة ذاتي ولذا لا يمكننا تقديم أي توصيات.
الذهاب مع أي منهما يعتبر شيء بديهي بالنسبة لك.
3. SQL Server هو أكثر من RDBMS:
الميزة الرئيسية للبرمجيات الاحتكارية مقابل البرمجيات مفتوحة المصدر هو الدعم الحصري الذي تتلقاه.
في هذه الحالة بالذات، تصبح الميزة أكثر عمقاً، حيث أن SQL Server مدعوم من قبل واحدة من أكثر شركات التكنولوجيا حول العالم.
قامت Microsoft بإنشاء أدوات إضافية لـ SQL Server والتي تأتي مجمعة مع RDBMS، بما في ذلك أدوات تحليل البيانات، كما تحتوي على خادم لإعداد التقارير (خدمات تقارير SQL Server)، بالإضافة إلى أداة ETL.
يمكنكم الحصول على ميزات مماثلة على MySQL أيضاً، ولكن يجب عليكم البحث في الويب عن حلول خارجية، وهذا ليس مثالياً لمعظم الأشخاص.
4. محركات التخزين:
هناك فرق كبير آخر يتم تجاهله في بعض الأحيان بين MySQL و SQL Server، ألا وهو طريقة تخزين البيانات.
SQL Server يستخدم محرك تخزين واحد تم تطويره بواسطة Microsoft.
على نقيض ذلك يوجد هناك محركات متعددة معروضة لـ MySQL، وهذا يمنح مطوري MySQL مزيداً من المرونة، حيث يمكنهم استخدام محركات مختلفة لجداول مختلفة، استناداً إلى السرعة أو الموثوقية أو بعض الأبعاد الأخرى.
أشهر محرك تخزين لـ MySQL هو InnoDB والذي يقع في الطرف الأبطأ من الطيف، ولكنه يحافظ على الموثوقية.
كما يوجد محرك آخر وهو MyISAM.
5. إلغاء الاستعلام:
الكثير من الناس لا يعرف هذا، ولكن الفرق المحتمل في التعامل بين MySQL و SQL Server هو أن MySQL لا يسمح لك بإلغاء الاستعلام في منتصف التنفيذ.
هذا يعني أنه بمجرد بدء تنفيذ الأمر، من الأفضل أن يكون أي ضرر قد يحدثه هو عكسه.
على الجانب الآخر فإن SQL Server يسمح لك بإلغاء تنفيذ الاستعلام في منتصف العملية.
يمكن أن يكون هذا الاختلاف ضاراً بشكل خاص لمشرفي قواعد البيانات، على العكس من مطوري الويب، الذين يقومون بتنفيذ الأوامر المكتوبة والتي نادراً ما تتطلب إلغاء الاستعلام أثناء التنفيذ.
6. الأمان:
لا يوجد الكثير من أجل النظر عند مقارنة فروق الأمن بين كل من MySQL و SQL Server.
كلاهما متوافق مع EC2، مما يعني أنك في معظم الأحيان في أيدٍ أمينة حيث يمكنك اختيار أياً منهما.
بعد قول ذلك، فإن ظل Microsoft أيضا يلوح في الأفق هنا، حيث أنه تم تزويد SQL Server بميزات أمان خاصة وحديثة.
حيث أن أداة الأمان المخصصة Microsoft Baseline Security Analyzer تضمن أماناً قوياً لـ SQL Server.
لذا في حال كان الأمن يمثل أولوية قصوى بالنسبة لك، فقد تم تحديد اختيارك.
7. الكلفة:
هذا هو المكان الذي يصبح فيه SQL Server أقل جاذبية، و MySQL تكسب النقاط الرئيسية.
حيث أن Microsoft تطلب منك شراء تراخيص لتشغيل قواعد بيانات متعددة على SQL Server، وهناك نسخة مجانية ولكن الغرض منها هو تعريفك بـ RDBMS فقط.
في المقابل فإن MySQL تستخدم رخصة GNU الشعبية العامة، مما يجعلها مجانية الاستخدام.
بالرغم من ذلك، فإذا احتجت إلى دعم أو مساعدة لـ MySQL فأنت بحاجة لدفع ثمنها.
8. دعم المجتمع:
هذا ما يقودنا إلى النقطة التالية، في حين يمكنك الدفع مقابل دعم MySQL، نادراً ما ينشأ هذا السيناريو نظراً لمساهمته المجتمعية الممتازة ودعمه لها.
إن الفائدة من وجود المجتمع الأوسع على جانبك هو أن معظم الناس لا يحتاجون إلى الوصول إلى المساعدة الرسمية، إذ يمكنهم البحث على شبكة الانترنت والعثور على طن من الحلول.
9. بيئات التطوير المتكاملة IDEs:
من المهم أن نلاحظ بأن كل من RDBMS يدعم أدوات بيئة التطوير المتكاملة (IDE) المختلفة.
توفر هذه الأدوات بيئة متماسكة للتطوير، ويجب أن تنتبه جيداً إلى أي منها يناسبك احتياجاتك.
تفتخر MySQL بمدير Oracle Enterprise، بينما SQL Server يستخدم Management Studio (SSMS).
كلاهما لهما مزايا ومساوئ وقد يقلبان التوازن إذا لم يكن لديك أي شيء آخر ليتم اتخاذ قرار بشأنه.
الخلاصة:
RDBMS هو اختيار مهم لأولئك الذين بدأوا للتو في تطوير التطبيقات الحديثة.
نادراً ما ينتقل الأشخاص الذين يختارون نظاماً واحداً في وقت لاحق، مما يعني أنه من الأهمية تقييم العروض المختلفة وتقديم الأفضل لك.
ناقشنا في هذه المقالة اثنين من RDBMS الأكثر استخداماً (MySQL و Microsoft SQL Server).
نظرنا إلى العديد من الاختلافات الرئيسية بين MySQL و SQL Server، حتى أن أحدهما قد يكون كافياً لتقلب قرارك لصالح أحدهما على الآخر.
في نهاية المطاف يبقى الخيار لك.
لكن وكقاعدة عامة إذا كنت تقوم بتطوير تطبيقات متوسطة/صغيرة الحجم وتستخدم بشكل أساسي PHP، فانتقل إلى MySQL.
في حين كنت مهتماً بإنشاء تطبيقات المؤسسات الكبيرة الآمنة والمرنة، فيجب أن يكون SQL Server هو المسار الخاص بك