Category

book

ما هي قواعد البيانات

قاعدة البيانات هي المعلومات التي تم إعدادها من أجل سهولة الوصول والإدارة والتحديث. عادةً ما تخزن قواعد بيانات الكمبيوتر مجموعات من سجلات البيانات أو الملفات التي تحتوي على معلومات ، مثل معاملات المبيعات وبيانات العملاء والبيانات المالية ومعلومات المنتج.

تُستخدم قواعد البيانات لتخزين وصيانة والوصول إلى أي نوع من البيانات. إنهم يجمعون معلومات عن الأشخاص أو الأماكن أو الأشياء. يتم جمع هذه المعلومات في مكان واحد بحيث يمكن ملاحظتها وتحليلها. يمكن اعتبار قواعد البيانات على أنها مجموعة منظمة من المعلومات.

ما هي قاعدة البيانات ببساطة ؟

هي مجموعة منظمة من المعلومات المهيكلة، أو البيانات المخزنة إلكترونياً في نظام المستخدم سواءً كمبيوتر أو جوال، عادةً ما يتم التحكم في قاعدة البيانات بواسطة نظام إدارة قواعد البيانات (DBMS).

ما هي إستخدامات قواعد البيانات ؟

تستخدم الشركات البيانات المخزنة في قواعد البيانات لاتخاذ قرارات تجارية مستنيرة. تتضمن بعض الطرق التي تستخدم بها المؤسسات قواعد البيانات ما يلي:

  • تحسين العمليات التجارية. تجمع الشركات بيانات حول العمليات التجارية ، مثل المبيعات ومعالجة الطلبات وخدمة العملاء. يقومون بتحليل تلك البيانات لتحسين هذه العمليات وتوسيع أعمالهم وزيادة الإيرادات.

  • تتبع العملاء. غالبًا ما تخزن قواعد البيانات معلومات حول الأشخاص ، مثل العملاء أو المستخدمين. على سبيل المثال ، تستخدم منصات الوسائط الاجتماعية قواعد البيانات لتخزين معلومات المستخدم ، مثل الأسماء وعناوين البريد الإلكتروني وسلوك المستخدم. تُستخدم البيانات للتوصية بالمحتوى للمستخدمين وتحسين تجربة المستخدم .

  • تأمين المعلومات الصحية الشخصية. يستخدم مقدمو الرعاية الصحية قواعد البيانات لتخزين البيانات الصحية الشخصية بشكل آمن لإعلام وتحسين رعاية المرضى.

  • تخزين البيانات الشخصية. يمكن أيضًا استخدام قواعد البيانات لتخزين المعلومات الشخصية. على سبيل المثال ، التخزين السحابي الشخصي متاح للمستخدمين الفرديين لتخزين الوسائط ، مثل الصور ، في سحابة مُدارة.

ما هو نظام إدارة قواعد البيانات (DBMS)

هو عبارة عن مجموعة برامج حسوبية تتحكم في تنظيم وتخزين وإدارة وسحب البيانات من قاعدة البيانات يدير النظام العديد من قواعد البيانات كما يمكّن العديد من المستخدمين من الوصول إلى هذه القواعد في الوقت نفسه.

يمكّن نظام DBMS المستخدمين من إنشاء قاعدة بيانات وإدارتها. كما أنه يساعد المستخدمين على إنشاء البيانات في قاعدة البيانات وقراءتها وتحديثها وحذفها ، كما يساعد في وظائف التسجيل والتدقيق.

يوفر نظام DBMS الاستقلال المادي والمنطقي عن البيانات. لا يحتاج المستخدمون والتطبيقات إلى معرفة المواقع المادية أو المنطقية للبيانات. يمكن لـ DBMS أيضًا تقييد الوصول إلى قاعدة البيانات والتحكم فيه وتوفير طرق عرض مختلفة لمخطط قاعدة البيانات نفسه لعدة مستخدمين.

ماهي أنواع نظم إدارة قواعد البيانات :

1- نظام إدارة القواعد الهرمية :
تعتمد هذه القاعدة على مبدأ التسلسل الهرمي، حيث أن هذا النظام يبدأ في التفرع على شكل أقسام ويقوم مبدأ عمله على الوصول إلى البيانات بطريقة متسلسلة ومتفرعة.

‏2- قواعد البيانات العلائقية :
هذا النوع من قواعد البيانات من أكثر الأنواع استخداماً من أجل تنسيق المعلومات، فهو يعتمد على ربط الجداول والمعلومات بطريقة أسهل من أجل سرعة الوصول إلى المعلومات المطلوبة.

‏3- قواعد البيانات غير العلائقية :
تتميز قواعد البيانات غير العلائقية بأنها فعالة في المشاكل التي تتعلق بأداء البيانات الكبيرة، وتصبح أكثر فاعلية عندما يتم تحليل البيانات بمجموعات كبيرة غير مهيكلة أو مخزنة من خلال الخوادم الافتراضية.

‏4- قواعد البيانات السحابية :
قواعد بيانات تم تحسينها ليتم استخدامها في بيئة افتراضية، وتتميز بأنها توفر القدرة على الدفع مقابل سعة التخزين وعرض النطاق الترددي، بالإضافة إلى أنها توفر قابلية للتوسع عند الطلب.

ما هي مراحل تطور قواعد البيانات ؟

تم إنشاء قواعد البيانات لأول مرة في الستينيات. كانت قواعد البيانات المبكرة هذه عبارة عن نماذج للشبكات حيث يرتبط كل سجل بالعديد من السجلات الأولية والثانوية. كانت قواعد البيانات الهرمية أيضًا من بين النماذج المبكرة. لديهم مخططات شجرية مع دليل جذر للسجلات المرتبطة بالعديد من الأدلة الفرعية.

تم تطوير قواعد البيانات العلائقية في السبعينيات. جاءت قواعد البيانات الكينونية بعد ذلك في الثمانينيات. اليوم ، نستخدم لغة الاستعلام الهيكلية ( SQL ) و NoSQL وقواعد البيانات السحابية .

أنشأت EF Codd قاعدة البيانات العلائقية أثناء وجودها في شركة IBM. أصبح المعيار لأنظمة قواعد البيانات بسبب مخططها المنطقي ، أو طريقة تنظيمها. يفصل استخدام مخطط منطقي قاعدة البيانات العلائقية عن التخزين المادي.

أدت قاعدة البيانات العلائقية ، جنبًا إلى جنب مع نمو الإنترنت الذي بدأ في منتصف التسعينيات ، إلى انتشار قواعد البيانات. تعتمد العديد من تطبيقات الأعمال والمستهلكين على قواعد البيانات.

ما هي مكونات قاعدة البيانات؟

في حين أن الأنواع المختلفة من قواعد البيانات تختلف في المخطط ، وهيكل البيانات وأنواع البيانات الأكثر ملاءمة لها ، إلا أنها تتكون جميعها من نفس المكونات الأساسية الخمسة وهي :

  1. المعدات. هذا هو الجهاز الفعلي الذي يعمل عليه برنامج قاعدة البيانات. تشمل أجهزة قاعدة البيانات أجهزة الكمبيوتر والخوادم ومحركات الأقراص الثابتة.

  2. برمجة. يمنح برنامج أو تطبيق قاعدة البيانات المستخدمين التحكم في قاعدة البيانات. يستخدم برنامج نظام إدارة قواعد البيانات (DBMS) لإدارة قواعد البيانات والتحكم فيها.

  3. بيانات. هذه هي المعلومات الأولية التي تخزنها قاعدة البيانات. يقوم مسؤولو قواعد البيانات بتنظيم البيانات لجعلها أكثر وضوحًا.

  4. لغة الوصول إلى البيانات. هذه هي لغة البرمجة التي تتحكم في قاعدة البيانات. يجب أن تعمل لغة البرمجة ونظام إدارة قواعد البيانات (DBMS) معًا. تعد SQL واحدة من أكثر لغات قواعد البيانات شيوعًا.

  5. إجراءات. تحدد هذه القواعد كيفية عمل قاعدة البيانات وكيفية معالجتها للبيانات.

ما هي تحديات قاعدة البيانات؟

ينطوي إنشاء قاعدة بيانات وتشغيلها وصيانتها على بعض التحديات الشائعة ، مثل ما يلي:

  • أمان البيانات مطلوب لأن البيانات من الأصول التجارية القيمة. تتطلب حماية مخازن البيانات موظفين مهرة في مجال الأمن السيبراني ، وهو ما قد يكون مكلفًا.

  • يضمن تكامل البيانات أن البيانات جديرة بالثقة. ليس من السهل دائمًا تحقيق تكامل البيانات لأنه يعني قصر الوصول إلى قواعد البيانات على المؤهلين فقط للتعامل معها.

  • يتطلب أداء قاعدة البيانات تحديثات وصيانة منتظمة لقاعدة البيانات. بدون الدعم المناسب ، يمكن أن تتراجع وظيفة قاعدة البيانات مع تغير التكنولوجيا التي تدعم قاعدة البيانات أو مع تغير البيانات التي تحتوي عليها.

  • يمكن أن يكون تكامل قاعدة البيانات أيضًا صعبًا. يمكن أن يتضمن دمج مصادر البيانات من أنواع مختلفة من قواعد البيانات والهياكل في قاعدة بيانات واحدة أو في بحيرات البيانات ومستودعات البيانات .

 

Kali Linux النسخة الجديدة من

ما هي النسخة الجديدة من Kali Linux ؟

قامت Offensive security بإصدار نسختها الجديدة لنظام Kali Linux لهذه السنة 2022.1، مع تحسينات بصرية ودعم أكبر لمختلف الأجهزة وإضافة مجموعة من الأدوات الجديدة.


يذكر أن Kali Linux هي توزيعة تحتوي على أدوات وبرامج كثيرة تسمح لمختبري الاختراق الأخلاقي والهكرز بإجراء اختبارات الاختراق والتدقيق الأمني على الشبكات والمواقع وغيرها الكثير.

تأتي هذه النسخة الجديدة بمجموعة من التحسينات والإضافات نذكر منها:

  1. تحديث بصري للتوزيعة، تحديث الخلفية، ودعم أكبر للثمات.

  2.  تحديث مرئي للطرفية.

  3.  تغيرات بصرية وجمالية كبيرة لخلفيات سطح المكتب، وتسجيل الدخول، والإقلاع، وغيرها الكثير.

  4.  تحديث متصفحي كروميوم وفايرفوكس.

  5.  دعم بروتوكول SSH القديم، الذي يتعامل مع الأجهزة القديمة، وبالتالي إمكانية إجراءات اختبار الاختراق وتلقي الاتصال من تلك الأجهزة.

  6.  دعم أكبر وأسرع لبرنامج vmware إذا كان سيتم تثبيت النظام بشكل افتراضي.

  7. بعض التحديثات الأمنية.

  8.  دعم أفضل لمعمارية ARM.

  9. إضافة 6 أدوات اختبار اختراق جديدة، وهي:

  1. dnsx: أداة جديدة تحتوي على عدة اختيارات للتعامل مع استعلامات الـ dns.

  2. email2phonenumber: أداة تسمح للحصول على رقم الهاتف للضحية من البريد الإلكتروني (لا تعمل دائماً) وتعتمد بشكل أساسي على بعض التسريبات التي حدثت في السنوات الماضية.

  3. naabu: أداة تقوم بفحص البورتات تتميز بالسرعة والجمالية.

  4. Proxify: أداة من فريق سكين الجيش السويسري تسمح بالتقاط حركة الانترنت (الترافيك) للبروتوكولين http و https، والتلاعب بهذه الحركة كما تسمح بإعادة التوجيه لها.

  5. Nuclei: أداة تسمح لفحص بروتوكولات الاتصال واكتشاف الثغرات بناء بخيرات كثيرة.

 

تنزيل Kali Linux

يمكنك تنزيل نسخة Kali Linux بالضغط هنا واختيار التوزيعة المناسبة لك

React js ما هو

ما هي الـ React js ؟

React أو React.js  هي مكتبة تم بناؤها على لغة JavaScript، وتعتمد على مفهوم المُكونات و تُستخدم في بناء واجهات تفاعلية تعتمد على “virtual dom” في تحديث مكونات الصفحة، يمكن استخدامها لإنشاء تطبيقات من صفحة واحدة (spa)، تم بناء هذه المكتبة من طرف Facebook، هناك من يعتبر React إطار عمل لكنها في الحقيقة مكتبة.

▫ ما هي مميزات وخصائص الـ React js ؟

بُنيت React على أساس مفهوم الـ Component، إذ يمكن تقسيم صفحة الويب إلى مكونات (Component)، مثلاً بمكن اعتبار الـ “Navbar” مكون مستقل والـ “Footer” مكون مستقل وهكذا ..
يمكن إعادة استخدام هذه المكونات بسهولة فائقة دون الحاجة لبنائها مرة أخرى في كل مرة.

تَستخدام React ما يعرف بـ JSX

مثال :

<h1>Hello world!</h1>

إن الصياغة أعلاها التي تحتوي على وسم h1 هي ليست سلسلة نصيّة ولا حتى HTML. بل هي عبارة عن JavaScript تُستخدم لعرض ما يحتاجه المطور على شاشة المستخدم، تتشابه الـ JSX بالشكل مع HTML مما يسهل على المبرمجين التعامل مع الرياكت. ولكن ما يحدث في الحقيقة وفي الخفاء، هو أنه يتم تحويل الكود أعلاه إلى “جافاسكريبت فنكشن _ JavaScript Function”
مثال :

React.createElement(“h1”, null, “Hello world”)

يتم استخدام الـ Virtual DOM في الـ React مما يجعلها أكثر كفاءة وسرعة، كما توجد العديد من الميزات الأخرى والكثيره للرياكت

مصارد تساعدك على تعلم React.js :

https://www.udemy.com/course/react-redux/
https://www.w3schools.com/REACT/DEFAULT.ASP

Avante AD 1.6 GDi تحميل كاتلوج افانتي

رابط تحميل كتالوج Avante AD 1.6 GDi

موديلات من 2016 لغاية 2018 !!

بعض الملاحظات:

  1.  لم تحدد شركة هونداي رقم الاوكتان و اكتفت بشرط ( خالي من الرصاص )ان شالله لاحقا راح ارفع مقطع فيديو اختبر فيه حساسات knock sensor على بنزين 95 و 90 و بنزين 90 مضاف اليه محسن اوكتان .

  2.  محركات الافانتي تم تصنيعها في عام 2015 بالتالي الكتالوج يحتوي على مواصفات زيوت قديمة آخر اصدار للزيوت الآن هو SP GF-6 .. ايضا سائل الفرامل الآن هو DOT5 و DOT5.5

  3.  بالنسبة لكتالوجات Avante MD GDi 1.6 الصراحة وجدت لكل موديل كتالوج 2011/2012 و 2013 و 2014 و 2015/2016 و بدي وقت عشان افرز و اترجم و اعرف شو الاختلافات بينهم .

  4. بالنسبة للغة العربية الصراحة ترجمتها من كوري للعربي مش دقيقة و فيها اختلافات تقريبا 50%

** رابط التحميل بصيغة PDF **https://drive.google.com/file/d/1CN9WitATfX2b286sL147kAnW15pxbcwB/view?usp=sharing

PDF أفضل 10 مواقع لتحميل الكتب والأبحاث بصيغة

ما هي أفضل المواقع لتحميل الكتب الألكترونية ؟

حسناً هناك الأف من المواقع المتخصص ببيع الكتب وعرضها ولكن في هذ المقال سأعرض لك أفضل المواقع المخصصة للكتب الألكترونية وتنزيلها وبصيغة pdf المعروفة ناهيك عن سهولة إستخدامها وتصنيفاتها وطريقة عرضها :

🔹 موقع Library Genesis :


يتيح الموقع البحث والتحميل من بين أكثر من 2 مليون بحث وكتاب في مختلف التخصصات.

🌐 رابط الموقع

http://gen.lib.rus.ec

🔹 ساي هاب SciHub :


وهو موقع لتحميل الأبحاث التي تتطلب حسابات أو اشتراكات بطريقة مجانية ويشترط معرفة رابط البحث أو الرقم المعرف له.

🌐 رابط الموقع
https://sci-hub.se

🔹 موقع PDF Drive


يتيح البحث والتحميل لأكثر من 70 مليون كتاب إلكتروني.

🌐 رابط الموقع
https://pdfdrive.com

🔹 موقع Project Gutenberg


يتيح تحميل كتب AMAZON بنمط كيندل بطريقة مجانية.

🌐 رابط الموقع
https://gutenberg.org

🔹 تطبيق Researcher Research Paper App


يتيح لأجهزة الـ Android تحميل الأبحاث من أكثر من 15 ألف مجلة محكمة في مختلفة التخصصات حول العالم.

🌐 رابط التطبيق
https://play.google.com/store/apps/details?id=io.fusetech.stackademia&hl=ar&gl=US

🔹 تطبيق la2etak


وسيلة أخرى لأجهزة الـ Android للبحث عن الأبحاث وتحميلها بصيغة PDF، وخاصةً الأبحاث العربية من المستودعات الرقمية للجامعات العربية.

🌐 رابط التطبيق
https://play.google.com/store/apps/details?id=com.la2etak.app&hl=ar&gl=US

🔹 موقع “ساي هاب بالعربي” :


موقع يتيح تحميل الأبحاث العربية بصيغة PDF مجانًا؛ لا تبحث عن العنوان، فقط ابحث باستخدام كلماتك الدالة أو متغيرات بحثك.

🌐 رابط الموقع
https://sci-hub.ar.nf

🔹 أداة Unpaywall Plug in


تمنحك فرصة التحميل من بين أكثر من 23 مليون بحث وورقة بحثية في مختلف التخصصات مجاناً.
كما يمكنك تحميل الإضافة لمتصفحات Chrome و FireFox لاستخدامها مباشرةً.

🌐 الرابط
https://unpaywall.org

🔹 قاعدة بيانات جامعة ولاية كاليفورنيا CSULB California State University


تتيح لك تحميل الكتب والأبحاث ورسائل الماجستير والدكتوراة مجاناً.

🌐 الرابط
https://csulb.libguides.com

Microsoft SQL Server كل ما تريد معرفته عن

ما هو Microsoft SQL Server؟

هو عبارة عن قاعدة بيانات مركزية تقوم بإدارة قواعد البيانات وتوزيعها عبر شبكة الكومبيوتر.

لقد بدء ظهور قواعد البيانات المركزية بشكل مكثف في نهاية الثمانينات، طبعاً هي موجودة بطريقة أو بأخرى منذ فترة أطول ولكن استخدامها اقتصر إلى بعض المؤسسات الضخمة فقط، كان الجميع قبل ذلك يستخدم البرامج التي صُنعت بلغات البرمجة العادية والتي كانت تخزن بياناتها في ملفات خاصة بها، والمشكلة الأساسية في تلك البرامج كانت محدودية استخدام البيانات، أعني أنك لا تستطيع الاستعلام عن البيانات بطريقة أخرى غير الطريقة التي صُمم بها البرنامج.

كمثال : “لنفترض بأنك تستخدم برنامج صُمم بواسطة لغة برمجة ما، ليخزن بياناته في ملفات خاصة به وليس في قواعد البيانات، وكان أحد فروع برنامجك هو الاستعلام عن البضائع، مهما تعبت في تصميم هذا الاستعلام، فقد تجد دوماً من يأتي لك بفكرة جديدة لاستعلام ما فقد يطلب الشخص كل البضائع التي تم استلامها في تاريخ معين، من مورد معين وتم بيعها في تاريخ معين إلى زبون معين، قد يكون برنامج قادر على القيام بذلك، ولكنه قد يعقد الاستعلام ويضاف إلى الاستعلام السابق ترتيب البضائع حسب تاريخ الاستلام، مثلاً فقد لا تكون وضعت تلك المميزة في برنامجك عند تصميمه ولذلك فلن يتمكن المستخدم النهائي الحصول على طلبه بالضبط”.

ومن هنا بدئت فكرة قواعد البيانات عامةً، وكانت الفكرة إيجاد طريقة موحدة لحفظ البيانات، وإيجاد برنامج قادر على جميع أنواع الاستعلامات من قاعدة البيانات، فإذا فشل البرنامج السابق، فبإمكان المستخدم فتح ملف البيانات عن طريق برنامج الاستعلام الرئيسي الذي يأتي مع قاعدة البيانات وإجراء كل الاستعلامات التي يحلم بها، ومن هنا ظهرت قواعد البيانات وظهرت أيضاً لغة SQL المخصصة للاستعلام في قواعد البيانات، وبدئت تتطور وانتقلت العديد من الشركات لاستخدامها، نظراً لسهولة التعامل معها وسرعة برمجتها، ولكن مع زيادة حجم المؤسسات وبداية ظهور شبكات الكومبيوتر، أصبحت قواعد البيانات بحاجة إلى أن تعمل على أكثر من جهاز في نفس الوقت، فتطورت برامج إدارة قواعد البيانات وأصبحت قادرة على فتح نفس الملفات المخزنة في الجهاز المركزي من عدة أجهزة كومبيوتر في نفس الوقت ومن أمثلتها :

  • 🔸 DBase

    🔸 Paradox

وغيرهما، ولقد حل السابق بعض المشاكل ولكن ليس كلها، لأن مع زيادة حجم البيانات وزيادة عدد الأجهزة المتصلين بالشبكة أصبح صعب إدارة ملفات قاعدة البيانات المخزنة على الجهاز المركزي، كما أن أمنها كان معرض للخطر دائماً، فبإمكان الجميع الوصول إلى الملف المركزي الذي يحتوي على البيانات ويعبث به، أو حتى أن يصل إلى بيانات لا صلاحية له باستخدامها، كما أن الاستعلامات المتزايدة على قواعد البيانات زادت من الضغط على الشبكة فكما تعلم يتطلب الاستعلام عن شخص ما، البحث في كل قاعدة البيانات حتى إيجاده بها، ولذلك بدئت الحاجة إلى تطوير قواعد البيانات العادية، ومن هنا ظهرت قواعد البيانات المركزية، فهي عبارة عن برنامج يعمل بداخل الجهاز المركزي ويخزن البيانات فيه أيضاً، ولكن الاختلاف بينها وبين السابق هو أن طلب البيانات لا يتم إلا من خلال البرنامج الذي يعمل في الجهاز المركزي والذي يسمى “محرك قواعد البيانات المركزية”، وبذلك يكون قد تم فصل المستخدم النهائي عن الملف الرئيسي لقواعد البيانات، فإذا كنت بحاجة إلى استعلام معين، فسيقوم برنامجك بطلب ذلك الاستعلام من محرك قواعد البيانات المركزية الموجود في الجهاز المركزي، حيث بدوره سيقوم هو بالاستعلام ومن ثم يعطي النتيجة فقط للجهاز العادي الذي طلب الاستعلام وبذلك يكون قد أنهى كابوس إغراق الشبكة بالبيانات.

كما أن محرك قواعد البيانات الرئيسية مسئول عن حماية البيانات، من قبل كان الجميع يستطيع الوصول إلى كل البيانات المخزنة، ولكن باستخدام النظام الجديد، أصبح فقط من لديهم صلاحية الوصول قادرين على ذلك، كما أصبح بإمكان مدير الشبكة إعطاء صلاحيات مختلفة للمستخدمين، فقد يمنع مستخدم من إضافة بضاعة جديدة على جدول البضاعة ويسمح له بالنظر عليها فقط، وقد يمنعه نهائياً من الوصول إلى جدول الموردين مثلاً، أو فقط على جزء من جدول الموردين مثل عناوينهم أو أرقام هواتفهم مثلاً، كما أن محرك قواعد البيانات المركزية أصبح يقوم بعمليات النسخ الاحتياطي والحفاظ على البيانات من التلف اتوماتيكياً، وذلك بفحصها باستمرار ونسخها على أجهزة النسخ الاحتياطي وإعلام مدير النظام بأي مشاكل صغيرة بداخلها، وهكذا استمر تطور قواعد البيانات المركزية إلى يومنا هذا وظهر العديد منها في السوق مثل :

  • Oracle 8

  • SQL Server 7

  • IBM DB2

  • SYbase

  • I formic

  • Borland InterBase

DB/Backend Dev نصائح لمطورين قواعد البيانات

شوية معلومات عن ماهيّة التعامل مع قواعد البيانات، الشغلة الي حقها ضايع، لازم تاخذ بعين الإعتبار انه طريقتك لكتابة الكويري بتأثر بالآداء بشكل كبير، يعني عادي جدًا انا اكتب كويري وغيري يكتب كويري بنفس الريزلت بس اسرع بـ20 مرة من الكويري الي كتبتها

 

لهيك خلينا نوّضح سوا شوية أمور مهمّة جدًا ورح تفرق باداء السوفتوير الي بتبني فيه:
• حاول قدر الإمكان ما تستخدم select * كونها بتعمل لود عالي بالـI/O وعالتيبل والباندويث تبع الشبكة.

• سيبك من الـSELECT الي بتحكي فيها جيب الكولم هاي مع عشيرتها،
اعمل سيلكت للي محتاجه فقط، ما تجيب كل اشي عشان تستخدم شغلة ولا شغلتين.

• دائمًا خلي مساحة فاضية بالداتابيس من 20 – 35%، لان احتمال كبير يأثر باسترجاعك للبيانات.

• حاول استخدام الcolumns الي عامللها indexes بجمل الـ Where و الـ Join واستخدمهم بنفس ترتيب ظهورهم بالindexes.

• منعرف انه الـ SQL Server ومعظم لغات الداتابيس هي case insensitive يعني الـSELECT هي الselect، سو حاول ما تضيع وقتك وانت بتتفنن بحجم الأحرف، اكتب كما هو العرف بين الديفلوبرز بعمل الـ Keywords كابيتال حتى يكون شكلها لطيف ومفهوم بشكل سريع.

• استخدام الـ Operators بتأثر جدًا ع الـ Performance، سو الـ=(يساوي) اسرع من < (اكبر من) اسرع من =< (اكبر من او يساوي)

• اذا مستخدم الـindex ولقيت بطئ بكويري ما لانها ما بتستخدم هذا الـindex، ممكن تستخدمها بعد اسم ال Table بهالشكل:

SELECT col1,col2
FROM Table WITH(INDEX(Index_Name))

• الـ EXISTS و الـ NOT EXISTS ادائها افضل جدًا من اداء الـIN والـ NOT IN.
•الـ BETWEEN كاداء افضل من الـIN .. يعني حاول ما تستخدم الـ IN.

•ما تستخدم اي عمليات في الـ Where ما الها لازمة .. يعني لو عندك مثلا condition
2 + 3 > 7
الاحسن انك تكتب الـ condition بهالشكل
5 > 7

• اداء الـ LIKE افضل لما يكون الـ WILD CARDS على يمين الـ VARCHAR .. يعني مثلا:

WHERE COUNTRY LIKE (‘JORDAN%’)

• اذا عندك compound conditions واستخدمت بينهم AND مثلا، وفي حال ان اي condition منهم كان بـ false فبالتالي المحصلة false.. فاذا متأكد انه في condition معين بكون اغلب الوقت بـ false .. فالمفترض انك تحطه كأول condition علشان تقصر رحلة البحث و تقليل حجم الـ conditions اللي الـ query حيفحصها.

• اذا عندك condition من مجموعة conditions بينهم OR .. في حالة انه في condition متوقع انه يكون true.. استخدمه كأول condition.

•لما تعمل index لـ table .. اختار الـ columns اللي رح تستخدمها كثير في جمل الـ WHERE و الـ JOIN.

• اذا بدك تحذف كل الداتا بجدول ما، استخدم TRUNCATE بدل الـ DELETE.

•ما تقلق انك تعمل non-clusterized indexes على tables كثير .. بس استخدمها بحيث ما توقع بمشكلة الـ overindexing .. لان الـ insertion هون رح تبطئ جدًا.

ما الفرق بين جافا و جافا سكريبت

 

لطالما خلط المبرمجون الجدد والأشخاص غير التقنيين على حد سواء جافا وجافا سكريبت ، لكن القاسم المشترك الوحيد بينهما هو كلمة “جافا”. كل لغة برمجة مفيدة في ما يخصها ولكل منها نقاط قوة على الأخرى. ليس بالضرورة أن يكون أحدهما أفضل من الآخر. يستخدم المبرمجون كلاً من Java و JavaScript لمجموعة متنوعة من المهام المختلفة.

جافا سكريبت

Java vs JavaScript - What is the difference between? | SCAND Blog

ما الفرق بين جافا وجافا سكريبت؟ هل هناك ترابط بين جافا وجافا سكريبت أم تشابه أسماء فقط؟ سنتحدث هنا عن الفرق ببساطة

الجافا ♨️

لغة برمجة نستطيع أن نستخدمها في عمل تطبيقات سطح المكتب وتطبيقات الانترنت وبرامج الهاتف باختصار هي تنتج برامج بشكل أكبر واكثر عن جافا سكريبت

Java هي لغة برمجة اخترعها James Gosling وطورتها Sun Microsystems. استغرق الأمر وقتًا أطول قليلاً من 10 أيام لتطويره – استغرق الأمر ما يقرب من أربع سنوات. في عام 1991 ، عملت مجموعة من مهندسي Sun Microsystem تسمى “الفريق الأخضر” ليلًا ونهارًا لإنشاء Java. تم إصداره لأول مرة في عام 1995 ، وتم إطلاق العديد من الإصدارات الجديدة منذ ذلك الحين. الإنترنت اليوم مشبع تمامًا بالبرمجة التي تديرها Java ، ولدينا Java نشكرها على العديد من التطبيقات التي تجعل الحياة اليومية أسهل. Java مملوكة حاليًا لشركة Oracle

 

أما الجافا سكريبت ✴️

لغة برمجة نستخدمها في متصفحات الويب وتتفاعل مع Html وCss لانشاء صفحات تفاعلية وتجعل الموقع فيه حيوية وديناميكية(حركة).
تعرض رسومات متحركة ثنائية او ثلاثية ابعاد
نستخدمها في تخزين قيم داخل متغيرات مثلا “عندما يطلب الموقع من المستخدم ادخال اسم جديد بعدها سيتم تخزين الاسم في متغير اسمه name
الارسال بين المتصفح والسيرفر او الخادم سرعة التصفح تكون بطيئة، هنا تلعب جافا سكريبت دورها في انه يتم تحميل ملفات جافا سكريبت وبها ملفات لتتأكد من هيكلة البيانات قبل ارسالها للسيرفر او الخادم بالتالي ترفع سرعة التصفح علي الموقع وهذا يفيد المستخدم الذي يتصفح.
ابرز المكتبات التي نستخدمها مع جافا سكريبت هي jquery

في الأيام الأولى للإنترنت ، حوالي عام 1990 ، كان Internet Explorer و Netscape Navigator أكثر متصفحي الويب شيوعًا في الاستخدام من قبل عامة الناس. في غضون 10 أيام فقط ، تمكن مطور اسمه Brendan Eich في Netscape، Inc. من إنشاء لغة برمجة يمكنها إرشاد الكمبيوتر حول كيفية التفاعل مع المستخدم عند تلقي مدخلات المستخدم. أطلقوا على هذه اللغة “Livescript” ودمجها مباشرة في Navigator.

هذا يعني أن المتصفح كان يفسر حرفياً أوامر المستخدم ؛ لم يكن من الضروري تجميع الشفرة ، ولم يكن المكون الإضافي مطلوبًا. اكتسبت لغة برمجة أخرى ، Java ، شعبية في نفس الوقت تقريبًا ، على الرغم من أن Java تطلبت مكونًا إضافيًا منفصلًا لتعمل. رأى Netscape الفرصة وأعاد تسمية لغته “JavaScript”. كان JavaScript لا غنى عنه في الأيام الأولى للإنترنت.

 

الخلاصة ✅

جافا خاصة بانتاج برامج وتطبيقات سواء لسطح المكتب او الويب او الهواتف وتعمل في اي بيئة عمل وانتاج البرامج أعلي وأكبر من جافا سكريبت أما جافا سكريبت تستخدم للمتصفحات تنفذ بعض الاجراءات داخل المتصفح، تطبيقات الويب والمواقع

تتم كتابة كل من Java و JavaScript وتجميعهما وتنفيذهما بشكل مختلف ، ولكل منهما اختلافات كبيرة عندما يتعلق الأمر بما يمكنه القيام به.

تُستخدم Java في مجموعة كبيرة من الأماكن ، بما في ذلك تطبيقات Android وبرمجة بطاقات الائتمان وفي إنشاء تطبيقات سطح المكتب وتطبيقات مؤسسة الويب. بالمقارنة ، تُستخدم JavaScript بشكل أساسي لجعل صفحات الويب أكثر تفاعلية. يمكن استخدامه كبديل لبرنامج Flash ، على الرغم من أن معظم المبرمجين سيخبرونك أن JavaScript أكثر شيوعًا ولديها وظائف أكثر من Flash. يمكن استخدام JavaScript للقيام بأشياء رائعة مثل إنشاء الرسوم المتحركة بتنسيق HTML.

باختصار ، عندما يتعلق الأمر بكيفية استخدام كل لغة ، يتم استخدام Java عادةً لجميع عمليات التطوير من جانب الخادم ، بينما يتم حجز JavaScript لتطوير البرامج النصية من جانب العميل لوظائف مثل التحقق من الصحة والتفاعل. هناك بعض الاختلافات الرئيسية الأخرى:

يجب تجميع كود Java ، وشفرة JavaScript هي نصوص بالكامل.
تتطلب كل لغة مكونات إضافية مختلفة.
يتم تشغيل كود JavaScript على متصفح فقط ، بينما تقوم Java بإنشاء تطبيقات تعمل في جهاز أو مستعرض افتراضي.
Java هي لغة OOP (برمجة موجهة للكائنات) ، وجافا سكريبت هي على وجه التحديد لغة برمجة نصية OOP.
سيتعلم طالب البرمجة الجديد أن كل من Java و JavaScript لغتان جديران بالاهتمام لإضافتهما إلى مخزون الترميز الخاص بهما. في الواقع ، يقول العديد من المبرمجين والمطورين أن تعلم هاتين اللغتين في وقت مبكر ، بالتعاقب ، هو خطوة حكيمة للغاية بالنسبة للمبرمج الجديد. لا شك أن وجود جافا وجافا سكريبت تحت الحزام سيجعل المبرمج أكثر قابلية للتوظيف وسيؤدي إلى المزيد من فرص العمل المربحة في المستقبل.

 

أهم استخدامات لغة بايثون

 

اكتشف بعضًا من أفضل استخدامات بايثون، حيث نستكشف سبب كونها لغة برمجة شائعة ومتنوعة , على الرغم من بدايتها كمشروع هواية سمي على اسم Monty Python ، أصبحت الآن واحدة من أكثر لغات البرمجة شيوعًا والأكثر استخدامًا في العالم. إلى جانب تطوير الويب والبرامج ، يتم استخدام Python لتحليلات البيانات والتعلم الآلي وحتى التصميم.

نلقي نظرة فاحصة على بعض استخدامات بايثون ، فضلاً عن سبب كونها لغة برمجة شائعة ومتعددة الاستخدامات. لقد اخترنا أيضًا بعضًا من أفضل الدورات التدريبية لدينا لتعلم بايثون ، وبعض الأفكار لمشاريع بايثون للمبتدئين.

ما هي لغة بايثون (Python)🤔 ؟

هي لغة برمجة كائنية التوجه، عالية المستوى، مفتوحة المصدر، وهي لغة تفسيرية، سهلة الكتابة، بسيطة الفهم، متعددة الأغراض. قام الهولندي جيدو ڤان روسم Guido van Rossum بتطوير اللغة في عام 1991م، وهي حاليًا تعتبر من أشهر 5 لغات برمجة على مستوى العالم، وهي ثاني أكثر اللغات المستخدمة في عام 2020م حسب تصنيف TIOBE.

1- تطوير الويب Web Development

تطوير الويب يعتبر من أهم مجالات استخدام لغة بايثون، فإذا كنت تبحث عن متعلق بتطوير الويب، فحتمًا ستجد أن لغة بايثون من اللغات المتواجدة بقوة خصوصًا مع إطار فلاسك Flask لمن يدرس مسار Back-End أو إطار جانجو Django لمن يدرس مسار Full-Stack.

Django Tutorial: Python Web Development - DataCamp

بالرغم من أن بايثون لا تعمل على المتصفح، ولكن تعمل بدلًا منها لغة جافا سكريبت JavaScript، ولكن تم ابتكار حلول لذلك منها الاعتماد على إطار Pyjs الذي يتولى تحويل الكود بلغة بايثون إلى كود جافا سكريبت حتى يستطيع المتصفح تشغيله. وعلى أي حال فدعم اللغة للعمل مع قواعد البيانات، وأٌطر العمل التي يوفرها تجعل منها لغة قوية ومنافسة في المجال.

2- أمن المعلومات Information security

– من أشهر استخدامات بايثون هو استخدامها في مجال أمن المعلومات، حيث تعتبر من أكثر اللغات المستخدمة في مجال الاختراق الأخلاقي Ethical Hacking،

Python for Automating Information Security: Introduction to the Metasploit Framework | packtpub.com - YouTube

ويتم الاعتماد على اللغة في برمجة أدوات الاختراق أو اختبار الاختراق Penetration Testing، وكذلك في التعامل مع الشبكات وغيرها من الأمور الهامّة في هذا المجال.

 

3- الذكاء الاصطناعي Artificial Intelligence

– من أهم الاستخدامات لهذه اللغة هو الاعتماد عليها في برمجة تقنيات الذكاء الاصطناعي AI وتعلم الآلة، حيث تستطيع برمجة الشبكات العصبونية Neural Networks واستخدامها في بناء تطبيقات قادرة على التعلم والتطوير الذاتي.

Artificial Intelligence With Python | Build AI Models Using Python | Edureka

توفر اللغة مجموعة مميزة من المكتبات المستخدمة في المجال أشهرها مكتبة Tensor Flow / Theano / NumPy وغيرها، وهو ما جعلها واحدة من أفضل لغات برمجة الذكاء الاصطناعي على الإطلاق.

4- تطبيقات سطح المكتب Desktop Application

Do python gui desktop application development by Humxahafeex | Fiverr

تعتبر بايثون من اللغات المميزة التي يمكن الاعتماد عليها لتطوير برامج الكمبيوتر، خصوصًا مع توفير اللغة أدوات خاصّة لذلك من أشهرها PyQT Toolkit وكذلك مكتبة كايفي Kivy والتي باستخدامها يمكن تطوير برامج تعمل على جميع أنظمة الكمبيوتر وكذلك الهاتف المحمول.

5- برمجة الألعاب Game Programming

11 tools to get you started making video games - The Verge

تعتبر برمجة الألعاب من مجالات استخدام لغة بايثون Python، حيث تتوفر اللغة على مجموعة مكتبات وأطر عمل رائعة يتم الاعتماد عليها في ذلك وأشهرها مكتبة PyGame / Pyglet / Cocos2d، لذلك تعتبر من أشهر لغات برمجة الألعاب حاليًا.

6- تطبيقات بلوك تشين Blockchain

Installing the Blockchain.info Python library - Hands-On Bitcoin Programming with Python [Book]

تعتبر لغة بايثون من اللغات القليلة التي يمكن الاعتماد عليه في تطبيقات البلوك تشين وهي أحد أقوى التقنيات في الحاضر والتي تعتبر من أكثر المهن المطلوبة في سوق البرمجة.

7- علوم البيانات Data Science

Spyder - The Scientific Python IDE for Data Science

البيانات الضخمة وعلومه يعتبر واحد من أبرز المجالات التي تم الاعتماد فيها على بايثون جنبًا إلى جنب مع لغة R. حيث توفر اللغة حزم ومكتبات مميزة تستخدم في التعامل مع البيانات الخضمة وتحليلها مثلPandas / NumPy / SciPy / StatsModels / Matplotlib وغيرها.

8- قواعد البيانات Database Programming

Python MySQL - Create Database - GeeksforGeeks

– تتميز Python بتوافقها مع معظم لغات قواعد البيانات مثل Oracle / SQL / MySQL حيث يمكن إدارة قواعد البيانات باستخدام هذه اللغة المميزة.

 

SQL شرح كامل للتعامل مع قواعد البيانات

 

SQL (لغة الاستعلام الهيكلية) هي لغة برمجة قياسية تُستخدم لإدارة قواعد البيانات العلائقية وتنفيذ عمليات مختلفة على البيانات الموجودة فيها. تم إنشاؤه في البداية في السبعينيات ، ويستخدم SQL بانتظام ليس فقط من قبل مسؤولي قواعد البيانات ، ولكن أيضًا من قبل المطورين الذين يكتبون نصوص تكامل البيانات ومحللي البيانات الذين يتطلعون إلى إعداد وتشغيل الاستعلامات التحليلية.

تشمل استخدامات SQL تعديل هياكل جدول قاعدة البيانات والفهرس ؛ إضافة وتحديث وحذف صفوف البيانات ؛ واسترجاع مجموعات فرعية من المعلومات من داخل قاعدة بيانات لمعالجة المعاملات وتطبيقات التحليلات. تأخذ الاستعلامات وعمليات SQL الأخرى شكل أوامر مكتوبة كبيانات – تتضمن عبارات SQL شائعة الاستخدام التحديد والإضافة والإدراج والتحديث والحذف والإنشاء والتعديل والاقتطاع.

أصبحت SQL لغة البرمجة المعيارية الواقعية لقواعد البيانات العلائقية بعد ظهورها في أواخر السبعينيات وأوائل الثمانينيات. تُعرف أيضًا باسم قواعد بيانات SQL ، وتتألف الأنظمة العلائقية من مجموعة من الجداول التي تحتوي على بيانات في صفوف وأعمدة. يتوافق كل عمود في الجدول مع فئة البيانات – على سبيل المثال ، اسم العميل أو العنوان – بينما يحتوي كل صف على قيمة بيانات للعمود المتقاطع.

لا بد أنك قد لاحظت الآن أن هنالك الكثير من العمليات التي تستطيع قاعدة البيانات أدائها، فيمكنها أن تنشأ سجلا أو تحذف سجلات أو تعدل سجلا أو تغير جدولا أو تحذف جدولا وغيرها الكثير، هذه العمليات تجرى بواسطة لغة SQL وهي اختصار لعبارة Structured Query Language أي لغة الاستعلامات البنيوية، تسمى كل عملية تنفذ عن طريق لغة SQL بالاستعلام Query، وعلى حسب لغة البرمجة التي تستخدمها وبرنامج قواعد البيانات الذي تستخدمه فإن الاستعلامات ترسل وتنفذ بطرق مختلفة وكيفية الحصول على نتائج الاستعلام تختلف أيضا، في هذه الدورة لن يهمنا كيف تقوم بإرسال الإستعلام إلى قاعدة البيانات وتنفذه وتحصل على نتائجه، ولكن ما سنتحدث عنه هو كيفية كتابة الاستعلام نفسه، لغة SQL شبه متفق عليها بين جميع نظم قواعد البيانات، على سبيل المثال في موقعنا نستخدم لغة البرمجة PHP للوصول إلى مزود قاعدة البيانات MySQL، وهي من التوليفات الشهيرة، ومنها أيضا استخدام برنامج Visual Basic للوصول إلى مزود قاعدة بيانات Microsoft SQL Server لعمل البرامج التي تتطلب وصولا إلى بيانات مركزية كما في المحلات والأسواق والمخازن والمستشفيات وغيرها، ويمكن استخدام لغة SQL أيضا عن طريق البرامج المكتوبة بلغة C و C++ و Perl و Delphi للوصول إلى بيانات مخزنة في قواعد بيانات Oracle و Sybase و Informix و IBM/DB2 و Access وغيرها.

 

الشروط

Why You Should Learn SQL – Even If You're Not a Developer

يمكنك أثناء جلب السجلات أن تضع شروطا معينة للسجلات التي تريد الحصول عليها بواسطة العبارة SELECT وذلك باستخدام المقطع WHERE وبعده تضع الشروط التي تريدها، أنظر مثلا :

SELECT telephone FROM directory WHERE name='Tim';

فإن ناتج تنفيذ الاستعلام السابق سيكون كالتالي :

name=’Tim’

telephone

1682340

حيث أن هنالك حقلا واحد فقط يطابق الشرط، والشرط هو أن يكون الاسم name يساوي Tim ولأن كلمة Tim جزء من البيانات المخزنة في قاعدة البيانات فإننا نحيطها بعلامات الاقتباس المفردة، لاحظ أيضا أن البرنامج لن يعيد الاسم أيضا ضمن النتائج وذلك لأننا لم نطلب الاسم في عبارتنا، ويمكننا الحصول على الاسم أيضا باستخدام هذه العبارة :SELECT telephone, name FROM directory WHERE name='Tim';

كما تلاحظ فإن عبارة SELECT من بدايتها وحتى ما قبل كلمة WHERE تعمل كما شرحنا في السابق بالضبط.

الجزء الذي يهمنا الآن في العبارة هو الجزء الذي يأتي بعد الكلمة WHERE أو ما يسمى بالشرط condition، تتكون عبارة الشرط الواحدة من ثلاثة أجزاء، الجزء الأول هو الطرف الأيسر من العبارة والجزء الثاني هو الطرف الأيمن من العبارة والجزء الثالث هو المعامل الذي يقع بين الطرفين، والمعامل في مثالنا السابق هو علامة المساواة ( = ) حيث أن شرطنا هو أن يكون الطرف الأيمن يساوي الطرف الأيسر حتى يتحقق الشرط :

leftside

operator

rightside

name

=

‘Tim’

والعوامل المستخدمة في الشروط مختلفة، أهما ما يلي :

معاملات الاختبار في SQL

المعامل

اسمه

=

يساوي

>

أكبر من

<

أصغر من

<=

أكبر من أو يساوي

>=

أصغر من أو يساوي

<>

لا يساوي

LIKE

يشبه

العامل الأول هو عامل المساواة وهو يتحقق عندما يكون الطرف الأيمن والأيسر متساويان، كما رأينا في المثال السابق، العوامل التالية تبدو واضحة وهي > ويتحقق عندما يكون الطرف الأيسر أكبر من الطرف الأيمن، < ويتحقق عندما يكون الطرف الأيمن أصغر من الطرف الأيسر، وبعدها أكبر من أو يساوي ثم أصغر من أو يساوي.

أما المعامل السادس <> فيعني لا يساوي ويتحقق الشرط فيه عندما يكون الطرف الأيمن لا يساوي الطرف الأيسر.

قد تبدو مقارنة النصوص باستخدام العوامل < و > غريبة نوعا ما، فكيف نقول مثلا بأن ‘Tim’ < ‘Jim’ ؟ الأمر في غاية البساطة، كل ما عليك فعله هو أن تتخيل بأنك تريد أن ترتب هذا الجدول تنازليا فهذا يعني بأن القيم العليا تكون فوق والقيم الدنيا تكون في أسفل الترتيب، ولهذا فإن ‘z’ > ‘a’ تعتبر عبارة صحيحة.

العامل الأخير من عوامل المقارنه هو العامل LIKE ( يشبه ) وهو يستخدم لمقارنة النصوص عادة، ويتحقق الشرط فيه عندما يكون الطرف الأيمن يشبه الطرف الأيسر، ويكتب طرفها الأيمن في صورة نص يحتوي على علامات النسبة المؤوية ( % ) وهي تعني ( أي شيء ) بمعني أنك إذا قلت

SELECT name,telephone FROM directory WHERE name LIKE '%m';

فهذا يعني بأن الاسم يجب أن يكون ( أي شيء ) ثم الحرف ‘m’، أو بمعنى آخر سيكون الشرط متحققا في السجلات التي ينتهي الاسم فيها بالحرف ‘m’، وإذا كتبنا :

SELECT name,telephone FROM directory WHERE name LIKE 'm%';

 

فهذا يعني m ثم ( أي شيء ) أي أنها تطابق حقول name التي تبدأ بالحرف m، حسنا ماذا لو قلنا :

SELECT name,telephone FROM directory WHERE name LIKE '%m%';

أما هذه فتعني ( أي شيء ) ثم الحرف m ثم ( أي شيء ) أي أنها ستطابق جميع السجلات التي يحتوي الحقل name فيها على الحرف m.

يمكنك أن تقيس على ذلك الكثير من الأمور، فيمكنك أن تبحث في قاعدة البيانات عن حقل يبدأ بكلمة ‘this’ وبعدها بعدة أحرف أو كلمات أو ( أي شيء ) تأتي كلمة ‘one’ فتكتب هكذا :

text LIKE 'this%one%'

دعنا نجرب تطبيق هذا الاستعلام على قاعدة البيانات التي نعمل عليها :

SELECT name,telephone FROM directory WHERE name LIKE '%m';

فإن النتائج ستكون كالتالي :

name LIKE ‘%m’

Name

Telephone

Tim

1682340

Jim

2462466

استخدام أكثر من شرط

يمكنك استخدام أكثر من شرط واحد عن جلب سجلات بياناتك، فيمكنك مثلا أن تبحث عن جميع الحقول التي يبدأ اسم صاحبها بالحرف J والحرف D، أو ربما تريد البحث عن جميع الأشخاص الذين تاريخ ميلادهم أكبر من 1 يناير 2000 وأصغر من 5 فبراير 2000 وهكذا أمور، يمكنك أن تربط بين الشروط باستخدام أداتين مختلفتين للربط هما AND و OR، وهاتان الأداتان تساويان && و || على التوالي في بعض لغات البرمجة.

الأداة الأولى ومن اسمها AND ( و ) تجعل السجل محققا للشرط عندما يتحقق الشرط الذي على يمينها والشرط الذي على يسارها معا، فمثلا عندما نقول :

SELECT name,telephone FROM directory WHERE name LIKE ‘%m’ AND telephone > 20000000;

ويعني ذلك بأن السجلات الوحيدة التي سيتم عرضها هي التي يتحقق فيها كل من الشرطان معا، فتكون name تنتهي بالحرف m ورقم الهاتف أكبر من 20000000، فهي تعيد السجل الوحيد الذي يحقق الشرطان كالتالي :

name LIKE ‘%m’ AND telephone > 20000000

Name

Telephone

Jim

2462466

أما OR ( أو ) فيكفي لتحققها أن يتحقق أحد الشرطان فقط، فإذا قلنا :

SELECT name,telephone FROM directory WHERE name LIKE ‘%m’ OR telephone > 20000000;

فإن جميع الحقول التي ينتهي فيها الحقل name بالحرف m بالإضافة إلى جميع الحقول التي يكون فيها الحقل telephone أكبر من 20000000، أي أنها تعيد جميع الحقول التي تحقق الشرط الأول، وجميع الحقول التي تحقق الشرط الثاني وجميع الحقول التي تحقق الشرطان معا، ولذلك فإن ناتج تنفيذ العبارة هو ثلاثة سجلات كالتالي :

name LIKE ‘%m’ OR telephone > 20000000

Name

Telephone

Jim

2462466

Tim

1682340

Dill

3636778

كما تلاحظ، السجل الأول Tim كان من ضمن السجلات التي حققت الشرطان معا فكان من ضمن جدول النتائج، أما السجل الثاني Jim فلم يحقق الشرط الثاني وكان الحقل telephone فيه أقل من 20000000 إلا أنه كان من ضمن جدول النتائج لأنه حقق الشرط الأول وهذا كاف، والسجل الثالث Dill حقق الشرط الثاني ولم يحقق الأول حيث أنه لا ينتهي بالحرف m.

استخدام OR و AND معا

يمكنك ربط أكثر من شرط باستخدام أكثر من أداة ربط ولأكثر من مرة، فيمكنك أن تقول مثلا :

SELECT name,telephone FROM directory WHERE
telephone > 20000000 OR telephone = 30000000 AND name LIKE '%m';

العبارة السابقة تنطوي على حيلة ما، قد يبدو لك في الوهلة الأولى أن العبارة تقوم بمطابقة جميع السجلات التي يكون الحقل name فيها ينتهي بالحرف m وفي نفس الوقت يكون رقم الهاتف فيها أكبر من 20000000 أو يكون يساوي 30000000، ولكن الواقع يختلف عن ذلك، عندما يكون هنالك أكثر من أداة ربط، ويكون هنالك أكثر من شرطين، فإن برنامج قاعدة البيانات سيقوم بتنفيذ أداة الربط AND أولا حسب ترتيبها بالجملة، وبعد ذلك يقوم بربط الجمل التي تستخدم الأداة OR.

يعني ذلك بأنه في العبارة السابقة الأداة AND تربط شرطان هما telephone = 30000000 و name LIKE ‘%m’ أما الأداة OR فتربط شرطان هما telephone > 20000000 و telephone = 30000000 AND name LIKE ‘%m’، ونقول هنا بأن AND لها أولوية التنفيذ حيث قامت بربط الشروط التي على جانبيها، وأصبح شرطا واحدا وبعد ذلك يبدأ عمل الأداة OR في ربط الشروط التي على جانبيها واللذان كانا الشرط الكبير الناتج من ربط الأداة AND للشرطان الصغيران، بالإضافة إلى الشرط الآخر الذي على شمالها.

ماذا لو أردنا الآن أن نجبر برنامج قاعدة البيانات على تنفيذ الشرط OR أولا ؟ لعمل ذلك نقوم بإحاطة الشرطان اللذان على جانبا الأداة OR بالأقواس، فتصبح العبارة هكذا :

SELECT name,telephone FROM directory WHERE (telephone > 20000000 OR telephone = 30000000) AND name LIKE ‘%m’;

 

لأن الأقواس لها أولوية أعلى في التنفيذ من العبارة OR ( الأقواس لها أعلى أولوية على الإطلاق )، فإن البرنامج يقوم بتنفيذ ما بداخل الأقواس أولا، وفي داخل الأقواس سيجد شرطان مربوطان بالأداة OR فيقوم بربطهما وينتج شرط واحد كبير، وبعد ذلك يأتي دور العبارة AND فترتبط الشرط الكبير الذي بداخل الأقواس مع الشرط الذي يأتي على يمينها وهو name LIKE ‘%m’.

لاحظ أن الجزء الذي أتى بعد العبارة OR داخل الأقواس غير ضروري أبدا لأن الشرط سيتحقق دائما إذا كان الرقم يساوي 30000000 حتى لو لم نطلب منه ذلك تحديدا، حيث أن الشرط الذي على يسار العبارة يكفي لذلك ( تذكر بأن 30000000 أكبر دائما من 20000000 )، ولكننا أوردناها هنا كمثال فقط.

النفي بالعبارة NOT

تقوم العبارة NOT بنفي الشرط الذي يأتي بعدها، فتصبح العبارة صحيحة إذا كانت خاطئة وتصبح خاطئة إذا كانت صحيحة، مثلا العبارة التالية

 

:

SELECT name,telephone FROM directory WHERE NOT name = 'Tim';

ستعيد جميع السجلات التي لا يكون فيها الحقل name يساوي Tim وهكذا، ويمكن استخدامها في تراكيب أكثر تعقيدا مع الأداتان AND و OR والأقواس.

في المرة القادمة ..

إلى هنا نكون قد عرفنا أساسيات العبارة SELECT وكيفية اختيار السجلات من جداول قواعد البيانات، وكيفية وضع الشروط وربط أكثر من شرط ونفي الشروط، في الجزء القادم من الدورة سنتعلم المزيد عن كيفية إنشاء الجداول وملئها بالحقول وكيفية تعديل الحقول، إذا كانت لديك أية اقتراحات أو مشاركات في هذه السلسلة من الدورات أو أي موضوع آخر يتعلق بالكمبيوتر فيمكنك الإتصال بنا للتنسيق لنشره بالموقع ليستفيد منه الجميع.

 

 

قواعد اللغة

عند كتابتك لاستعلامات SQL يجب أن تتذكر الأمور التالية دائما :

  • لغة SQL لا تفرق بين الحروف الكبيرة والصغيرة فلا فرق بين كتابة الكلمة SELECT والكلمة select والكلمة SeLeCt وكلها تعامل بنفس الطريقة، قد تكون هنالك بعض الاستثناءات في أسماء الجداول أو الحقول، يجب أن تراجع دليل الاستخدام المرفق مع برنامج قاعدة البيانات الذي تستخدمه للتأكد من ذلك.

  • المسافات البيضاء ليس لها اعتبار في لغة SQL، فيمكنك وضع أي قدر تريد من المسافات البيضاء لتنسيق استعلاماتك، فيمكنك مثلا أن تكتب الاستعلام في الصورة التالية، ولا توجد أية مشكلة في ذلك :

    SELECT        *
    FROM directory;
    
  • تنتهي جميع الاستعلامات بالفاصلة المنقوطة ( ; ).

  • العبارات النصية التي لا تعتبر جزءا من عبارات الاستعلامات توضع بين قوسي اقتباس مفردين ويتيح بعض برامج قواعد البيانات استخدام أقواس الاقتباس المزودجة أيضا ( ” .. ” ).

  • إذا كنت تريد استخدام علامات الاقتباس كجزء من النص الذي تريد إدخاله إلى قاعدة البيانات فإنك تضع قبلها علامة الشرطة الخلفية لتصبح هكذا ( \’ ) أو في بعض برامج قواعد البيانات فيتم ذلك بمضاعفة علامة الاقتباس ( ” )، فمثلا إذا أردت وضع العبارة التالية في قاعدة البيانات :I'm me

    فإنك تكتبها في أحد الصور التالية حسب برنامج قاعدة البيانات الذي تستخدمه :

    ‘I\’m me’ ‘I”m me’

 

العبارة SELECT

يمكنك الحصول على البيانات في صورة سجلات باستخدام لغة SQL وذلك عن طريق العبارة SELECT والتي تأخذ الشكل العام التالي :

SELECT fields FROM tables;

حيث أن fields هي أسماء الحقول وtables هي أسماء الجداول التي نريد أن نحصل على الحقول منها، فإذا كان لدينا الجدول التالي في قاعدة البيانات على سبيل المثال :

Directory Table

Name

Telephone

John

1291233

Tim

1682340

Jim

2462466

Dill

3636778

إذا أردنا أن نحصل على الحقلين Name و Telephone في الجدول السابق فإن العبارة التي سنستخدمها هي :

SELECT name,telephone FROM directory;

والعبارة السابقة تعيد الجدول كما هو في الأعلى بالضبط، ولكن ماذا لو كتبنا كلمة telephone قبل كلمة name في عبارة SQL السابقة فتصبح كالتالي :

SELECT telephone,name FROM directory;

عند تنفيذ العبارة السابقة سنحصل على الجدول التالي :

telephone,name

Telephone

Name

1291233

John

1682340

Tim

2462466

Jim

3636778

Dill

أما إذا كتبنا العبارة كالتالي :

SELECT name,telephone,name FROM directory;

فسنحصل على النتيجة التالية :

name,telephone,name

Name

Telephone

Name

John

1291233

John

Tim

1682340

Tim

Jim

2462466

Jim

Dill

3636778

Dill

وماذا لو قمنا بتنفيذ العبارة التالية :

SELECT name FROM directory;

فالناتج سيكون كالتالي :

name

Name

John

Tim

Jim

Dill

كما تلاحظ ليست هنالك أية قواعد ثابته، فلا يمكنك أن تقول بأن الحقل name هو الحقل الأول في الجدول، أنت من يحدد الآن ما هو الحقل الأول وما هو الحقل الثاني وهكذا.

قد تحتاج في بعض الأحيان أن تعرض جميع الحقول في الجدول، فيمكنك استخدام علامة النجمة ( * ) في مكان الحقول للحصول على جميع الحقول التي في الجدول، فاستخدام العبارة التالية سيعيد الجدول بأكمله كما كتبناه أول مرة :

SELECT * FROM directory;

 

 

مزودات قواعد البيانات

من الطرق الشهيرة لتخزين قواعد البيانات هي وضعها في صورة ملفات نصية بسيطة Plain Text، بحيث يوضع كل سجل في سطر من أسطر الملف ويفصل بين الحقول المختلفة في كل سجل بفاصلة comma ( , )، وتكون أحيانا في صورة ملفات أكثر تعقيدا بحيث يحتوي الملف على الكثير من الجدوال والفهارس التي تسرع عمليات البحث في قواعد البيانات والاستعلامات الجاهزة والنماذج كما في قواعد بيانات Microsoft Access.

هذه الطريقة قد تعتبر جيدة في البرامج البسيطة ولكن في بيئات الشبكات المعقدة والبرامج التي تحتاج وصولا مشتركا إلى البيانات تصبح هذه الفكرة صعبة التطبيق حيث أن ملف البيانات يكون في جهاز المزود، ويتم الوصول إليه عبر الشبكة من قبل الزبون، وفي حالة الملفات الثابته يجب أن يتم نقل ملف البيانات بأكمله عبر الشبكة حتى يصل إلى الزبون الذي يأخذ المعلومات منه وإذا قام الزبون بتغيير أي من المعلومات فإن المزود يجب أن ينتظر حتى يقوم الزبون بإعادة الملف بعد عمل التغييرات عليه، وهذا أمر يستغرق الكثير من الوقت خاصة إذا كان حجم الملف كبيرا وكانت الشبكة بطيئة، وكذلك إذا أراد أكثر من شخص الوصول إلى البيانات في نفس الوقت وتغييرها في نفس الوقت سيؤدي ذلك إلى عطب البيانات وحدوث خلل فيها، لهذا فإن المزود يقوم بإعطاء الملف لمن يطلبه أولا ويقوم بقفل الملف بحيث يجب على كل من يطلب الملف بعد ذلك أن ينتظهر حتى ينتهي هذا الشخص من الملف، وبعدها الذي يليه وهكذا، وهو أمر غير معقول أبدا!

الحل لهذه المشكلة كان بعمل ما يسمى بمزود SQL، يقوم مزود SQL باستقبال جميع الأوامر والطلبات في صورة استعلامات SQL ثم يقوم بتنفيذ هذه العمليات على المزود ويرسل نتيجة التنفيذ فقط إلى الزبون دون الحاجة إلى إرسال قاعدة البيانات بأكملها، فإذا أردت أن تحصل على حقل واحد فقط من أحد السجلات في أحد الجداول في قاعدة البيانات فإن الجزء الذي سيتم إرساله عبر الشبكة هو الطلب في صورة SQL والجزء الذي سيتم إعادته عبر الشبكة هو هذا الحقل فقط والذي قد لا يصل في حجمه إلى 10 بايتات مثلا إذا كان مكونه من 10 أحرف، مقارنة مع عملية إرسال قاعدة البيانات بأكملها والتي قد يصل حجمها إلى العديد من الميجابايتات وربما الجيجابايتات في بعض الأحيان، إضافة إلى ذلك فإن مزود SQL يقوم يقوم بتوزيع الأعباء على الطلبات بشكل رائع عندما يكون هنالك أكثر من طلب في نفس الوقت.

 

error: Content is protected !!