ثامنا:
قواعد بيانات SQL باستخدام SQL Server Management Studio
الجزء الثانىIdentity Columns
القيم التعريفية للأعمدة
يمكننا الان أن نبداء بإنشاء قاعدة بيانات
قم بإنشاء قاعدة بيانات ثم أضف جدول وليكن Customers ويحتوى على الأعمدة التالية
1-CustomerID نوع البيانات int
2- FirstName نوع البيانات (50)varchar
3- SecondName نوع البيانات (50)varchar
4- LastName نوع البيانات (50)varchar
5- FullName نوع البيانات (50)varchar
6- BirthDate نوع البيانات Datetime
7- Address نوع البيانات (50)varchar
8- City نوع البيانات (50)varchar
إذا كان لدينا أحد الأعمدة يجب أن تحتوى على قيمة يتم إدراجها تلقائيا (ترقيم تلقائى) كيف
نستطيع أن نتحكم فى عملية الترقيم التلقائى ؟
لكى تتم هذة العملية فإن لدينا عنصران يجب التعامل معهما لتحديد مسار الترقيم التلقائى
باعتبار أن نوع البيانات فى الحقل=int
أولا: identity seed
وهو الرقم الأولى الذى سنبداء العد منة (1 أو100 أو1000 أو أى رقم)
ثانيا: identity increment
وهو معدل الزيادة المنتظمة أو حجم الخطوة فى كل مرة
مثال:إذا كان لدينا
identity seed =1
identity increment =5
فإن Identity clumns =
( 1 ,6 ,11 ,16 ,21 ....الخ)
نلاحظ أننا فى كل مرة قمنا بإضافة 5 إلى الرقم السابق
مثال اخر: إذا كان لدينا
identity seed =100
identity increment =10
فإن Identity Columns=
( 100 ,110 ,120 ,130 ,140 ....الخ)
كيفية تطبيق ذلك
1- قم بفتح SQL Server Management Studio ثم قم بفتح قاعدة البيانات سواء التى أنشأتها أو
أحد قواعد البيانات الموجودة لديك
2- كليك يمين على الجدول المطلوب ثم اختر Modify من القائمة المنسدلة

3- قم بالتأشير على العمود الذى تريد تخصيصة والذى هو فى قاعدة البيانات التى أنشأناها
CustomerID والذى هو يحتوى بيانات من النوع int ثم انتقل إلى أسفل فى نافذة Column Properties
4- إذهب إلى Identity Specification وقم بالضغط على + ثم اذهب إلى (Is Identity) الذى ظهرت لك الان وقم بتغييرها من No إلى Yes

5- الان تحولت القيمة فى Identity Specification إلى Yes بدلا No كما يمكننا ملاحظة أنة تم وضع
قيمة افتراضية فى كلا من identity seed و identity increment =1 ومعنى ذلك أن نظام الترقيم
التلقائى لدينا سيكون فى الصورة التالية (1 و2 و3 و4........الخ) ويمكنكم تغيير كلا من
القيمتين حسب الرغبة
كيفية إجراء الحسابات داخل الأعمدة
الأعمدة الحسابية Computed Columns Specification
هى أعمدة يتم إنشاءها بغرض إجراء عمليات بداخلها إعتمادا على قيم موجودة فى أعمدة أخرى
مثال: إذا كان لدينا مبيعات لبعض السلع أو البضائع ونريد إظهار المبيعات إعتمادا على عدد
القطع المباعة و سعر القطعة والخصم الإضافى
مثال اخر:لدينا ثلاثة أعمدة محتوياتها كالتالى
الأول (الاسم الأول) والثانى (اسم الأب) والثالث اسم( العائلة)
نريد إظهار الإسم الكامل فى أحد الحقول ليصبح مثل (Taher Mohamed Eldemerdash)
1-قم بتحديد العمود الذى سنقوم بإجراء العملية بة وهو FullName ولدينا هنا الجدول الذى أمامكم
FirestName و SecondName ولدينا LastName ونريد أن نقوم بإظهار الإسم الكامل فى FullName
2- إذهب إلى Computed Column Specification وقم بالضغط على + ثم اذهب إلى (Formula) قم بكتابة العبارة التالية
كود:
FirstName + ' ' + SecondName + ' ' + LastName

يمكن اختبار نتيجة العمل عن طريق عمل كليك يمين بالماوس على الجدول ثم Open Table وقم بوضع بيانات فى الحقول الثلاثة وبمجرد أن تقوم بالانتقال للحقل التالى ستظهر لك نتيجة العمل فى FullName

لاختبار إجراء عملية حسابية سنقوم بإنشاء جدول جديد على نفس قاعدة البيانات وليكن
فاتورةInvoices ولتكن مكوناتة كالتالى
1- InvoiceID نوع البيانات int
2- Item نوع البيانات (50)varchar
3- Quantityنوع البيانات int
4- Priceنوع البيانات (3 ,6)decimal
5- Total نوع البيانات (50)varchar أو أى شىء
نريد إيجاد قيمة الصنف المباع نقدا إعتمادا على سعر القطعة الواحدة وعدد القطع المباعة
1-قم بتحديد العمود الذى سنقوم بإظهار نتيجة الحسابات بة الذى هو Totalولدينا هنا الجدول
Quantity وPrice ونريد أن نقوم بإظهار المجموع فى Total
2- إذهب إلى Computed Column Specification وقم بالضغط على + ثم اذهب إلى (Formula) قم بكتابة العبارة التالية

قم بحفظ التعييرات ثم قم بتجربة العملية بوضع قيمتين داخل الخلية ولاحظ النتيجة
Indexing
كيفية إضافة فهرس Index
المقصود بالفهرس Index فى موضوعنا هو ترتيب البيانات فى نسق معين (معرف) بغرض تحسين أداء قاعدة البيانات عند استدعاء مجموعة من البيانات وكذلك التسريع من عملية البحث
لإضافة فهرس
1- قم بالذهاب إلى الجدول المراد فهرستة ثم قم بعمل تتمدد للمكونات عن طريق الضغط على +

2- كليك يمين بالماوس على Index ثم اختر New Index ثم قم باختيار اسم للفهرس

3- اضغط Add تظهر لك قائمة بالأعمدة الموجودة داخل الجدول قم باختيار الأعمدة المطلوبة فهرستها ثم OK

4- تظهر لك الان نافذة تحتوى على الأعمدة التى قمت باختيارها قم الان بتحديد طبيعة عرض هذة الفهرسة وهى إما Ascending يعنى تصاعدى بمعنى (1 ثم 2 ثم 3 .....الخ) أو Descending تنازلى من الأعلى إلى الأدنى

كيفية إنشاء العلاقات فى قواعد بيانات SQLServer
سنقوم بإضافة جدول جديد إلى قاعدة البيانات وليكن InvoiceDetails وأعمدة الجدول هى
-InvoiceID نوع البيانات int
- CustomerID نوع البيانات int
- InvoiceDate نوع البيانات datetime
- Total نوع البيانات varchar
Database Diagram
هو تخطيط قاعدة البيانات الذى يمكنك من معاينة الشكل العام لقاعدة البيانات من حيث أوضاع الجداول والروابط بصورة مرئية كما يمكنك التعديل على قاعدة البيانات من خلالة ولعمل هذا التكوين
1- إذهب إلى Object Explorer فى أقصى اليسار ثم قم بعمل كليك على Database Diagram ثم وافق على إنشاء تخطيط

كيفية إنشاء العلاقات فى قواعد بيانات SQLServer
سنقوم بإضافة جدول جديد إلى قاعدة البيانات وليكن InvoiceDetails وأعمدة الجدول هى
-InvoiceID نوع البيانات int
- CustomerID نوع البيانات int
- InvoiceDate نوع البيانات datetime
- Total نوع البيانات varchar
Database Diagram
هو تخطيط قاعدة البيانات الذى يمكنك من معاينة الشكل العام لقاعدة البيانات من حيث أوضاع الجداول والروابط بصورة مرئية كما يمكنك التعديل على قاعدة البيانات من خلالة ولعمل هذا التكوين
1- إذهب إلى Object Explorer فى أقصى اليسار ثم قم بعمل كليك على Database Diagram ثم وافق على إنشاء تخطيط

2- كليك يمين على Database Diagram ثم New Database Diagram

3- قم باختيار كل الجداول أو بعضها ثم Add

الان أمامك تخطيط لقاعدة البيانات

4- قم بإغلاق التخطيط وحفظة بأى اسم تختارة
طريقة تعيين أحد الأعمدة كمفتاح أولى
1- كليك يمين على الجدول المطلوب ثم Modify
2- كليك يمين على العمود المراد تعيينة كمفتاح أولى PrimeryKey ثم Set Primery Key

لدينا الان 3 جداول ويجب تععين مفتاح أولى PrimeryKey فى كل جدول
- فى الجدول Customers سنختار CustomerID
- فى الجدول Invoice سنختار InvoiceID
- فى الجدول InvoiceDetails سنختار CustomerID

أصبحنا الان جاهزين لإنشاء العلاقات بين الجداول
لدينا الان طريقتين لإنشاء العلاقات
الطريقة الأولى1- إ
ذهب إلى Object Explorer فى أقصى اليسار ثم قم بعمل كليك على Database Diagram ثم اضغط على التخطيط الذى قمت بإنشاؤة
2- قم بالضغط مستخدما الماوس على CustomerID وبالتحديد على علامة المفتاح ثم قم بسحبة إلى العمود الذى تريد عمل الإرتباط معة ستظهر لك نافذة Tables and Columns قم بالموافقة أو بتغيير اسم الارتباط ويمكنكم ربط InvoiceID فى كلا من الجدولين
الطريقة الثانية
1- كليك يمين على الجدول Customers ثم Modify
2- كليك يمين على العمود CustomerID ثم Relationships

تظهر لنا نافذة Foreign Key RelationShips
3- قم بعمل تمدد أو فرد لعناصر Tables and clumns specification وذلك بالضغط على + ثم قم بالضغط على زر ellipse الذى فى أقصى اليمين تفتح نافذة جديدة

4- النافذة الجديدة يمكننا تقسيمها إلى ثلاثة أقسام
- القسم العلوى والمحاط باللون الأخضر يحتوى على الإسم الذى سنختارة للرابط
- القسم الذى على اليمين والمحاط باللون الأزرق Foreign Key table يحتوى على إحداثيات الوضع الحالى فنحن الان فى الجدول Customers وقمنا باختيار العمود CustomerID ويمكننا تغييرة إذا أردنا عن طريق الضغط علية لتظهر قائمة بكافة الأعمدة الموجودة بالجدول
- القسم الأيسر والمحاط باللون الأحمر وهو primery Key table ويمكننا من خلالة اختيار جدول اخر و عمود اخر

4- النافذة الجديدة يمكننا تقسيمها إلى ثلاثة أقسام
- القسم العلوى والمحاط باللون الأخضر يحتوى على الإسم الذى سنختارة للرابط
- القسم الذى على اليمين والمحاط باللون الأزرق Foreign Key table يحتوى على إحداثيات الوضع الحالى فنحن الان فى الجدول Customers وقمنا باختيار العمود CustomerID ويمكننا تغييرة إذا أردنا عن طريق الضغط علية لتظهر قائمة بكافة الأعمدة الموجودة بالجدول
- القسم الأيسر والمحاط باللون الأحمر وهو primery Key table ويمكننا من خلالة اختيار جدول اخر و عمود اخر

5- يمكن اختيار الأعمدة والجداول كما سبق أو حسب مقتضيات المشروع
وبهذا ينته درس اليوم و يتبع.........