Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

‫‪360‬‬

‫عملي‬

‫‪00‬‬ ‫مقدمة عن الـ‪SQL‬‬


‫‪4‬‬

‫‪8‬‬ ‫عملي مشترك‬

‫‪26/04/2022‬‬ ‫قواعد معطيات ‪1‬‬


‫‪ SQL‬هي اختصار لـ ‪Structured Query Language‬‬
‫لغة االستعالمات البنيوية وهي لغة التخاطب مع قواعد المعطيات‪ ،‬والتي يتم من خاللها بناء وتعديل والتحكم‬ ‫▪‬
‫واالستعالم عن قاعدة المعطيات‪ ،‬من خالل مجموعة من التعليمات التي تقسم ألربع أقسام أساسية‪:‬‬
‫‪TCL‬‬ ‫▪‬ ‫‪DCL‬‬ ‫▪‬ ‫‪DML‬‬ ‫▪‬ ‫‪DDL‬‬ ‫▪‬
‫‪ Data Definition Language (DDL) .1‬لغة تعريف المعطيات‪:‬‬

‫‪-‬مجموعة التعليمات المسؤولة عن بناء وحذف وتعديل أجزاء قاعدة البيانات‪ ،‬تتألف من عدة تعليمات‪ ،‬منها‪:‬‬
‫‪ :Create‬إنشاء جدول ‪ ،Table‬إضافة حقل‪ ،‬إضافة ‪( Constraint‬سيرد شرحه في المحاضرات الالحقة)‪.‬‬
‫‪ :Drop‬حذف جدول‪ ،‬حذف حقل…‬
‫‪ :Alter‬تعديل جدول تعديل حقل…‬

‫‪ Data Manipulation Language (DML) .2‬لغة التعامل مع المعطيات‪:‬‬

‫‪-‬مجموعة التعليمات المسؤولة عن التعامل مع المعطيات‪ ،‬وتتيح لنا التفاعل واإلضافة والحذف والتعديل على السجالت‬
‫التي تخزن المعطيات ومن تعليماتها‪:‬‬
‫‪ :Insert‬إضافة سجل او مجموعة سجالت الى قاعدة البيانات‪.‬‬
‫‪ :Delete‬حذف سجل او مجموعة سجالت‪.‬‬
‫‪ :Update‬تعديل سجل أو مجموعة سجالت‪.‬‬
‫‪ :Select‬تعليمة االستعالم و هي من أهم التعليمات ألنها التعليمة الوحيدة القادرة على قراءة المعطيات و‬
‫استخالص التقارير من قاعدة البيانات‪.‬‬

‫‪ Data Control Language (DCL) .3‬لغة التحكم بالبيانات‪:‬‬

‫مجموعة التعليمات المسؤولة عن التحكم بقاعدة البيانات‪ ،‬تتيح تعليماتها لمدير قاعدة البيانات ‪Database‬‬
‫‪ Administrator‬إدارة صالحيات مستخدمي قاعدة البيانات‪.‬‬

‫‪1‬‬
‫قواعد معطيات ‪ | 1‬عملي مشترك‬

‫‪Sql Server‬‬

‫يوجد العديد من محركات قواعد البيانات و لكن المحركان األساسيين عالميًا هما‪:‬‬
‫‪ Oracle‬و ‪ Sql Server‬والنسخ المتاحة لالستخدام من ‪ 2008‬حتى ‪ ، 2019‬بدايةً و عند فتح برنامج ‪ Sql Server‬ستظهر‬
‫الشاشة التالية‪:‬‬

‫في حقل ال ‪ Authentication‬نالحظ وجود خيارين‪:‬‬


‫‪Windows Authentication -1‬‬
‫‪Sql server authentication -2‬‬
‫في الـ ‪ Authentication Windows‬المستخدم الداخل لقاعدة البيانات عن طريق اسم حسابه على ‪Windows‬‬
‫المنصب عليه البرنامج له صالحيات ‪ Administrator‬على قاعدة بياناته يتحكم كمستخدم ‪ public‬دون وجود‬
‫خصوصيات أثناء االستخدام‪.‬‬
‫في الـ ‪ Sql Server Authentication‬يطلب منك ادخال اسم المستخدم وكلمة المرور التي تم تعيينهم مسبقًا‬
‫عند تنصيب البرنامج‪ ،‬وعُينت ‪ System Administrator‬يستخدم هذا الخيار عندما نريد الوصول لقاعدة بيانات‬
‫على حاسوب آخر أو على الشبكة‪ ،‬وهي الطريق األكثر شيوعًا‪.‬‬
‫أول مجلد ‪ Database‬يضم قواعد المعطيات‬ ‫▪‬
‫(الموجودة تلقائياً بالبرنامج إضافة للتي تم‬
‫إنشاؤها) وبالضغط على المجلد تظهر لدينا‬
‫مجلدات قواعد المعطيات وبداية ‪by default‬‬
‫مع الـ ‪ System Database‬وهي قاعدة‬
‫المعطيات الخاصة بالـ ‪ Microsoft‬يفضل عدم‬
‫استخدامها أو التعامل معها ونقوم بتنصيب‬
‫‪ pubs‬وهي قاعدة بيانات جاهزة متكاملة‬
‫(سنتحدث عنها الحقًا في هذه المحاضرة‪،‬‬
‫ويوجد رمز ‪ QR‬في آخر المحاضرة لتحميلها)‪.‬‬

‫‪2‬‬
‫‪/ITE.RBCs‬‬
‫قواعد معطيات ‪ | 1‬عملي مشترك‬

‫نفتح ‪ file‬ونبحث عن ملف ‪ sample db‬ونختار منه ‪ instpubs‬ثم نختار ‪ open‬كما يلي‪:‬‬ ‫▪‬

‫بالضغط على ‪ execute‬يظهر لدينا ما يلي‪:‬‬ ‫▪‬

‫‪3‬‬
‫‪/ITE.RBCs‬‬
‫قواعد معطيات ‪ | 1‬عملي مشترك‬

‫تم إنشاء قاعدة معطيات كاملة بالضغط على هذه الزر‪ ،‬واآلن لرؤية محتواها نقوم بالضغط بالزر اليميني‬ ‫▪‬
‫للفأرة على كلمة ‪ Database‬فـ تظهر لدينا قائمة نقوم بالضغط على كلمة ‪ Refresh‬فيظهر لدينا مجلد‬
‫‪ pups‬وهو قاعدة المعطيات التي أنشأناها فعلياً‪.‬‬

‫من ‪ file‬نختار ‪ new‬ثم ‪:)Ctrl + N( query with current connection‬‬ ‫▪‬

‫يقوم البرنامج بفتح الـ ‪ query‬ويكون جاهز للكتابة‪ ،‬على سبيل المثل نكتب تعليمة عرض عمود جدول‬
‫وليكن رقم الهاتف للمؤلفين‪ ،‬ثم نختار التنفيذ ‪ F5‬أو من خالل القائمة باختيار ‪ Execute‬فـ تظهر لدينا النتائج‬
‫التالية‪:‬‬

‫‪4‬‬
‫‪/ITE.RBCs‬‬
‫قواعد معطيات ‪ | 1‬عملي مشترك‬

‫‪Pubs Database‬‬
‫هي داتا بيز لشركة بيع كتب تحوي عدة متاجر ‪ ،stores‬وكل متجر يبيع عدة كتب ولكل كتاب عنوان ‪ title‬ومجموعة من‬
‫المؤلفين ‪ Authors‬و ُينشر الكتاب من خالل دار نشر ‪ publisher‬ويعمل في دار النشر مجموعة من الموظفين‬
‫‪ Employee‬يقومون بوظائف عديدة ‪ jobs‬ولكل ناشر معلومات معينة ‪pub-info‬‬
‫‪-‬الكيانات الرئيسية‪:‬‬
‫‪ :Publisher‬دار النشر‬ ‫▪‬
‫‪ :Titles‬عناوين الكتب‬ ‫▪‬
‫‪ :Stores‬المتاجر‬ ‫▪‬
‫‪ :Authors‬المؤلفون‬ ‫▪‬
‫‪ :Employee‬الموظفون‬ ‫▪‬
‫‪-‬العالقات‪:‬‬
‫بين دار النشر والموظف‪ one to many :‬حيث كل دار نشر يعمل بها عدة موظفين‪ ،‬والموظف يعمل‬ ‫▪‬
‫بدار نشر واحدة‪.‬‬
‫بين دار النشر والكتاب‪ one to many :‬دار النشر تنشر عدّة كتب‪ ،‬وحقوق النشر للكتاب تتملكها دار نشر‬ ‫▪‬
‫واحدة‪.‬‬
‫بين الكتاب والمؤلف‪ many to many :‬المؤلف يمكن له كتابة عدة كتب‪ ،‬والكتاب الواحد قد يتشارك في‬ ‫▪‬
‫تأليفه عدّة كتّاب‪ ،‬تُكسر هذه العالقة بالكيان المساعد ‪.title-Author‬‬
‫▪ بين الكتاب والمتجر ‪ many to many‬الكتاب يباع بأكثر من متجر و المتجر يبيع أكثر من كتاب‪.‬‬
‫‪-‬وهذه أهم العالقات التي سنتعامل معها في هذه القاعدة‪.‬‬

‫يمكننا مشاهدة ‪ ERD‬القاعدة من خالل ‪:‬‬

‫‪5‬‬
‫‪/ITE.RBCs‬‬
‫قواعد معطيات ‪ | 1‬عملي مشترك‬

‫مالحظة إشارة ∞ في المخطط تعني عالقة ‪ many‬والمفتاح يعني ‪ primary key‬وعند وضع أكثر من‬ ‫▪‬
‫مفتاح أمام أكثر من ‪ Attributes‬في الجدول الواحد هذا يعني ان هذين الصفتين معاً تمثالن ‪primary‬‬
‫‪key‬‬
‫‪-‬مثال للتوضيح على المالحظة السابقة‪:‬‬
‫‪P.K <- phone and P.K <- name‬‬
‫‪Ahmad 111‬‬
‫‪Ahmad 222‬‬
‫‪Ali 222‬‬
‫نجعل صفة الـ ‪ name‬والـ ‪ phone‬معًا ‪ Primary key‬وكما نعلم أن ‪ P.K‬يكون وحيد ‪ unique‬وموجود‪ ،‬فكيف تكرر أسم‬
‫‪ Ahmad‬في حقل الـ ‪ Name‬وتكرر الرقم ‪ 222‬في حقل الـ ‪phone‬؟ في هذه الحالة عند تعيين حقلين معاً ‪ P.K‬فإن تكرار‬
‫الحقلين معاً هو الممنوع وليس تكرار الحقل الواحد فال بأس بتكرار ‪ Ahmad‬مع رقم مغاير وال بأس بتكرار الرقم ‪ 222‬مع‬
‫اسم مغاير ولكن الممنوع هو تكرار االسم مع نفس الرقم مثل ‪ Ahmad 111‬و ‪Ahmad 111‬‬

‫‪Select‬‬
‫‪-‬وهي تعليمة إلظهار استعالم في قاعدة البيانات ولكن النقطة هامة جدًا أن الداتا داخل القاعدة ال تتأثر بالتغيرات‪.‬‬
‫▪ األقسام األساسية لتعليمة ال ‪:select‬‬
‫>‪Select <Column> from <Domain> Where <criteria‬‬
‫‪ Column‬الحقل الخاص بالجدول و الـ ‪ Domain‬الجدول و الـ ‪ criteria‬هو الشرط على السجالت‬ ‫▪‬

‫‪6‬‬
‫‪/ITE.RBCs‬‬
‫قواعد معطيات ‪ | 1‬عملي مشترك‬

‫القسم األول >‪Select <Column‬‬ ‫▪‬


‫‪-‬ولها مبدئيًا ثالث خيارات‪:‬‬
‫* ‪ُ Select‬تظهر جميع األعمدة‪.‬‬
‫‪ Select Column_name‬تظهر عامود محدد فقط‪.‬‬
‫‪ Select Column1, Column2‬تظهر عدة أعمدة محددة‪.‬‬
‫القسم الثاني >‪From <Domain‬‬ ‫▪‬
‫‪-‬تحدد المجال الذي سنستقي منه األعمدة التي حددناها في القسم األول والمجال هو الـ ‪ Tables‬ويمكن أن يكون‬
‫المجال في جدول واحد أو عدة جداول‪.‬‬
‫القسم الثالث >‪Where <Criteria‬‬ ‫▪‬
‫وهي شرط منطقي بوليان ي يطبق على سجالت األعمدة التي حددت في القسمين السابقين في حال تحقق الشرط يرد‬
‫السجل ويظهر كنتيجة لالستعالم وفي حال لم يتحقق ال يرد السجل وال يظهر وهذا القسم اختياري وليس على غرار‬
‫القسمين السابقين فهما الزاميان فـ في حال لم يذكر قسم ال ‪ Where‬ترد جميع سجالت األعمدة المحددة ضمن التعليمة‬
‫مثال‪:‬‬
‫‪-‬تعليمة ‪ Select * From titles‬تحدد جميع الحقول في جدول الـ ‪titles‬‬

‫‪-‬أما تعليمة ‪ُ Select title_id, price from titles‬تحدد حقالن من هذا الجدول و في كال التعليمتان ستسترد جميع‬
‫السجالت لغياب قسم الـ ‪.Where‬‬

‫‪7‬‬
‫‪/ITE.RBCs‬‬
‫قواعد معطيات ‪ | 1‬عملي مشترك‬

‫مُالحظة حول طريقة تخزين الداتا والوصول لها‪:‬‬ ‫▪‬


‫الداتا تخزن على الـ ‪ Disk‬وعند تنفيذ التعليمة ‪ Select‬يقوم الـ ‪ D.B reader‬بتحميل السجالت‬
‫المطلوبة من الهارد إلى الـ ‪ ،memory‬والجدير بالذكر أن )‪ Database Engen (DBE‬يتعامل مع الـ‬
‫‪ memory‬وال يتعامل مباشرة مع الـ ‪ ،Hard disk‬وعند تنفيذ تعليمة ‪ insert‬تنفذ على الـ‬
‫‪ memory‬ثم يقوم الـ ‪ D.B writer‬بنقل الداتا الجديدة المدخلة إلى الـ ‪ hard‬للتخزين وبالتالي لدينا‬
‫عمليتين للمعالجة أساسيتين‪:‬‬
‫‪ :DB reader-‬تحميل الداتا في الـ ‪ Hard disk‬إلى الـ ‪ memory‬لنتعامل معها‪.‬‬ ‫▪‬
‫‪ :DB writer-‬تحميل المتغيرات الجديدة على السجالت من الـ ‪ memory‬و نقلها إلى الـ‪disk hard‬‬ ‫▪‬
‫لتخزن‪.‬‬
‫‪DISK‬‬
‫‪DB writer‬‬ ‫‪DB reader‬‬

‫‪MEMORY‬‬

‫‪-‬يمكن تحميل قاعدة البيانات ‪ Pubs‬من رمز ‪ QR‬التالي‪:‬‬

‫‪-‬انتهت املحاضرة‪-‬‬

‫‪8‬‬
‫‪/ITE.RBCs‬‬

You might also like