ebnelbana2000

دورة مطولة لتعليم sql server 2005

182 ردود في هذا الموضوع

14- النوع decimal أو numeric : الإتنين بيعملوا نفس العمل والإختلاف في الأسماء فقط فلإسم الأول هو الإسم الأصلي والإسم الثاني من إختراع ميكروسوفت .

وعملهم هو إنهم بيقبلوا الأرقام العشرية .. بيقبلوا من الرقم – 0.00000000000000000000000000000000000001 حتى الرقم 10,000,000,000,000,000,000,000,000,000

يعني 38 صفر .. بس هنا إنت بتاخد إلي إنت عايزه من الرقم دة بس .. يعني لو عايز الرقم بتاعك يكون مكون من 6 خانات للأرقام الصحيحة وخانتين للأرقام العشرية .. حتكتب نوع بياناتك كالتالي ..

(decimal(8,2

و الـ 8 تدل على مجمل عدد الخانات المراد إستخدامها والـ 2 تدل إنك عايز من الـ 8 خانتين للكسور

ونفس القصة

(numeric(8,2

.. ومينفعش طبعا في المثال دة تختار 8 خانات وتقول عايز منهم 12 رقم عشري مثلا (decimal(8,12 .. حتطلعلك رسالة توبخك :D

وطبعا أقصى خانات عاندك 38 زي ما قلنا في الأول ولو إخترت أكتر من كدة حتطلعلك نفس رسالة التوبيخ :D

ويمكنك تحويل الرقم دة لرقم صحيح بإختيار . " صفر " في خانة الرقم العشري مثلا : (decimal(8,0 يعني عايز رقم مكون من 8 خانات ومفهوش كسور " مزاجي كدة ;) "

أو تخليه كله كسور .. مثلا (decimal(8,8 .. يعني ممكن تلعب براحتك :D

15- النوع float : وهو يقبل الأعداد الحقيقية .. يعني الأعداد إلي فيها كسور دقيقة أوي .. ويستخدم في علوم الفلك والحسابات الدقيقة جدا ،

وهو يأخذ من الرقم – 1.79 أس 308 إلى الرقم 1.79 أس 308 .. بقوة 15 رقم عشري ، وبياخد حجم 8 بايت . وهنا إنت مبتحددش عدد الأرقام العشرية .. النوع هو إلي بيطلعها على حسب نسبة الرقم المتبقي .. لكن لو الرقم طلع بدون باقي كسور حيطلعهولك سليم .. زي 25 على 5 حتساوي 5 ..

لكن 25 على 1.3 حتساوي 19.2307692307692

16- النوع real : زي النوع float بالضبط بس بياخد .. من الرقم –3.40 أس 38 إلى الرقم 3.40 أس 38 بقوة 7 أرقام عشرية ، وبياخد حجم 4 بايت .

تم تعديل بواسطه ebnelbana2000
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

17- النوع money : وهو النوع المخصص للتعامل مع الأموال ويقبل من –922,337,203,685,477.5808 حتى 922,337,203,685,477.5807

ويحتل مساحة 8 بايت والجميل فيه أن التطبيقات تضع علامة الدولار أو علامة العملة التى تحددها بجوار الرقم .. وهذا يرشدنا أن العلامة لا تسجل داخل قاعدة البيانات .. فلو أردت أن تقوم بتخزينها فستقوم بذلك في صف منفصل .. والنوع money يقبل حتى 4 خانات عشرية فقط .

18- النوع smallmoney : مماثل للنوع money ولكن يقبل من –214,748.3648 حتى 214,748.3647 ويحتل مساحة 4 بايت .

19- النوع datetime : وهو المسؤول عن تخزين التاريخ والوقت وهو يقبل من تاريخ الأول من يناير 1753 حتى 31 ديسمبر 9999 ويخزن الساعة والدقيقة والثانية والمليثانية هكذا 00:00:00:000 ويحتل مساحة 8 بايت

20- النوع smalldatetime : مماثل للنوع datetime ولكن يقبل من تاريخ الأول من يناير 1900 حتى 6 يونية 2079 ويخزن الساعة والدقيقة فقط ويحتل مساحة 4 بايت

21- النوع binary : هذا النوع بيخزن بيانات باينري .. زي الصور والصوت والأفلام ويقبل حتى 8000 بايت

22- النوع varbinary : نفس النوع binary لكن من النوع المطاطي الذي يحجز حجم ما يحتويه فقط .. " يوفر في المساحة ولكن سرعة العمل معه تكون أقل من الـ binary " وأيضا يقبل حتى 8000 بايت .

23 - (varbinary(max : هو نفس النوع varbinary لكن يأخذ كل الـ 8000 بايت ويأخذ منها ما يتم تخزينه به فقط .. وستستبدل به ميكروسوفت النوع image

24- النوع bit : يأخذ القيمة صفر أو 1 .. وهو يستخدم لتخزين ناتج العملية البرمجية .. 1 أي صحيحة ، صفر أي خاطئة .

25- النوع xml : هو نوع جديد في الـ sql server 2005 يقبل بيانات xml بكامل تنسيقها ويمكنك البحث فيه عن طريق لغة الإستعلام داخل الـ xml المسماه xquery

** نكتفي الآن بهذا القدر من أنواع البيانات ونعود لإنشاء الجدول مع الباشمهندس زكي

تم تعديل بواسطه ebnelbana2000
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

وشكرا جزيلا لك

السلام عليكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

هذا كلام صحيح 00 فأنا واحد من الذين في حاجة الي علمك النافع .. ندعو الله دائما لك بالتوفيق والنجاح

تم تعديل بواسطه abduljawaad saad
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الف شكر على هالمجهود

بس لهنا وخلاص ولا في تكمله ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا لك على الهمه العالية وجعله فى ميزان حسناتك واعانك الله لتكملة ماوعد به واظن انك ستفى بما وعدت

ونحن فى الانتظار

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

شكرا على المجهود الاكثر من رائع ....... لا اعرف كيف اشكرك ولكننى سادعو لك الله بالتوفيق وان شاء الله ربنا يوفقك وتكمل العمل الرائع دة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم ورحمة الله وبركاته

عدنا بفضل الله

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

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

.. أنا أستعد خلال أيام لدخول إختبار الـ MCTS " وتعني Microsoft Certified Technology Specialist " في الـ SQL SERVER 2005 وسأحاول وضع النقاط العملية التى ستأتي في الإمتحان إن شاء الله في هذه الدورة وشرحها وتطبيقها بإذن الله .. أكرر الإعتذار .. ونستأنف المسيرة بإذن الله :)

تم تعديل بواسطه ebnelbana2000
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أخذ الباشمهندس ذكي في إدخال تخطيط الجدول .. وبجوار نوع بينات الصف يوجد مربع كتب عليه Allow Nulls أحيانا كان يتركه الباشمهندس فارغ وأحيانا يقوم بإختياره .. نعم .. هذا المربع " إذا تم إختياره " يرشد الـ sql server أن خلايا هذا الصف يمكن أن تكون خاليه إذا أراد مدخل البيانات عدم إدخالها .. وهنا سيرضى الـ sql server ويجعل هذه الخلية من النوع null أي فارغ ، أما لو لم يقوم الباشمهندس ذكي بإختيار المربع أمام صف معين فلابد من إدخال بياناته ولن يقبل الـ server إلا بإدخالها.

-- ولكن ما هو النوع null ولماذا لم نضع صفر دليل على أنه لا يوجد بيانات .. هذا السؤال قد يسأله من لم يتعامل مع قواعد البيانات .. أولا لأن الصفر يعتبر بيانات .. ثانيا أنه سيأخذ مساحة .. على عكس الـ null فهي لا تأخذ مساحة وتخبر الـ server أن هذه الخلية خالية . ونستخدمها في البيانات التكميلية التى قد لا تتواجد عند مدخل البيانات مثل مثلا رقم الفاكس فليس كل الناس يملك جهاز فاكس .. ولو أجبرته على وضعه لوضع لك فاكس الجيران :)

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

02_03_06_05_28_01_1141349281_6.gif

-- الخانة Default Values or binding .. وهنا نضع القيمة الإفتراضية للخلية .. فلو أدخل المستخدم ما يريد فسيقوم الـ server بتسجيل ما أدخله .. ولكن ماذا لو ترك المستخدم الخلية فارغة هنا سيقوم الـ server بتسجيل القيمة الإفتراضية التى وضعتها أنت .. وهذا الأمر مفيد جدا كثيرا .. ومن إستخداماته أنه يمكننا تسجيل الوقت الذي أنشأ فيه الصف عن طريق صنع خلية تاريخ وجعل القيمة الإفتراضية لها الدالة ()getdate والتى ستقوم بإحضار الوقت والتاريخ في نفس لحظة الإدخال وتسجيلها في الخلية .. وفي هذه الحالة لن أنت تعرض هذه الخانة أمام المستخدم لكي يقوم الـ server بتسجيل الوقت الإفتراضي دائما .

-- الخانة Identity Specification .. هنا لو أردنا جعل الـ server يتولى إدخال أرقام مسلسلة لنا مثل الرقم المسلسل للزبائن وجعلها لا تتكرر .. فهذه الخانة هي الكفيلة بذلك عن طريق فتح علامة الزائد المقابلة لها لتظهر لنا ثلاث خانات الأولى is Identity نجعل قيمتها yes لتنشيطها

ونضع الرقم الذي سيبدأ عنده التسلسل في الخانة Identity Seed

ونضع الرقم الذي بمقداره ستكون الزيادة على الرقم الذي سيبدأ منه التسلسل في الخانة Identity Increment

-- الخانة Description يمكننا أن نضع بها شرح للصف وطبيعة عمله للذكرى بعد ذلك أو لتوضيح تركيب قاعدة البيانات لشخص آخر .

" هذا ما نحتاجه الآن من هذه الإعدادات "

-- بعد أن إنتهى الباشمهندس ذكي من تخطيط جدول الزبائن قام بكتابة إسم الجدول بجوار الخانة name في نافذة الخصائص العامة على اليمين properties window .. ويمكنك إظهارها إن لم تكن ظاخرة بنقر f4 أو من القائمة view إختر properties window

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

" سيكون لنا حديث مطول بإذن الله عن المستخدمين عند الحديث عن سرية وأمان قاعدة البيانات "

-- والآن ماذا لو أرنا معرفة ما يدور وراء الكواليس وما هو الكود الذي كتبه الـ server نيابة عنا لإنشاء الجدول

ببساطة هذا هو الجدول

use alkhilafah
CREATE TABLE CustomerDetails
(Customer_Id int IDENTITY(1,1) NOT NULL,
Customer_FirstName  nvarchar(50) NOT NULL,
Customer_LastName  nvarchar(50) NOT NULL,
DateEntered datetime NOT NULL,
Notes nvarchar(max) NULL)

هنا قمنا بتحديد قاعدة البيانات التى سنقوم بإنشاء الجدول بها من خلال use alkhilafah

ثم قمنا بكتابة الكلمة CREATE TABLE

ثم إسم الجدول CustomerDetails

وفتحنا قوس ثم كتبنا إسم الصف Customer_Id

ثم مسافة ثم نوع البيانات int

ثم أخبرنا السيرفر أنا يقوم بعمل IDENTITY أي زيادة تلقائية كما أسلفنا

.. على أن يبدأ بالرقم 1 وكل مرة يزيد 1 .. أي أرقام الزبائن ستكون .. أول زبون 1 ، وثاني زبون 2 ، وثالث زبون 3 وهكذا

.. بعد ذلك أخبرنا الـ server أن هذا الصف لابد من إدخال بيانات فيه وأن لا يقبل أن يكون فارغا وذلك عن طريق الكلمة NOT NULL

.. ثم نضع علامة كومة " , " لنخبر الـ server أننا إنتهينا من كون أول صف وسننتقل للذي يليه

.. وهكذا حتى آخر صف ثم نغلق القوس . " أليس الأمر بسيط :D "

--

تم تعديل بواسطه ebnelbana2000
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم :

أنا أستعد خلال أيام لدخول إختبار الـ MCTS " وتعني Microsoft Certified Technology Specialist " في الـ SQL SERVER 2005 وسأحاول وضع النقاط العملية التى ستأتي في الإمتحان إن شاء الله في هذه الدورة وشرحها وتطبيقها بإذن الله

الله يوفقك .. يا أخي الكريم . :)

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

إبدأ T-Sql

أكواد نادرة بدلفي

نعيب زماننا و العيب فينا *********** و ما لزماننا عيب سوانا ( الشافعي رحمه الله )

عماد .. B) B)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بسم الله الرحمن الرحيم

بارك الله فيك أخي : ebnelbana2000

والإدارة تثمن جهودك في هذا الموضوع

تم وضع إعلان في أعلى المنتدى لهذا الموضوع المميز

الأمر الآخر يحبذ لو تضع صور الشرح على سيرفر الفريق العربي من خلال أداة رفع الصور الى السيرفر

وذلك خوفا من ضياع الصور كما تكرر ذلك سابقا

===

:D

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أخبرتكم فيما مضى أن هناك ميزة جديدة في sql server 2005 تسمى الـ Template وهي عبارة عن كود جاهز لإنشاء العناصر المختلفة التى نتعامل معها خلال عملنا مع قواعد البيانات .. ومنها بالطبع الجدول .. :D .. إذن جاء الوقت لنستكشف هذه الميزة وننشأ بها جدول جديد

-- أنقر المفاتيح Ctrl+Alt+T .. أو إذهب للقائمة view ثم Template Explorer لفتح نافذة الـ Template

02_03_06_06_53_38_1141354418_7.gif

-- قم بإستكشافها والتعرف على ما بها .. حتى تصل للجزء Table .. قم بفتحه لتجد مجموعة من الأكواد التى يمكن تطبيقها على الجداول .. قم بالنقر المزدوج على create table ... أن أن تششششش .. :D .. قد تم فتح نافذة الكود ووضع كود إنشاء جدول .. ولكن ما هذا .. إنه كود كبير ..

-- =========================================
-- Create table template
-- =========================================
USE <database, sysname, AdventureWorks>
GO

IF OBJECT_ID('<schema_name, sysname, dbo>.<table_name, sysname, sample_table>', 'U') IS NOT NULL
 DROP TABLE <schema_name, sysname, dbo>.<table_name, sysname, sample_table>
GO

CREATE TABLE <schema_name, sysname, dbo>.<table_name, sysname, sample_table>
(
<columns_in_primary_key, , c1> <column1_datatype, , int> <column1_nullability,, NOT NULL>,
<column2_name, sysname, c2> <column2_datatype, , char(10)> <column2_nullability,, NULL>,
<column3_name, sysname, c3> <column3_datatype, , datetime> <column3_nullability,, NULL>,
   CONSTRAINT <contraint_name, sysname, PK_sample_table> PRIMARY KEY (<columns_in_primary_key, , c1>)
)
GO

-- إنه كبير ولكن لأنه يشمل الكثير من التوضيح ليس إلا .. ولكن الأمر مربك :wacko: .. :D .. لا عليك .. هل ترى هذا الكلام الذي بين قوسين أكبر من وأصغر من .. إنه يرشدك لأن تضع مكانه ما يناسب جدولك فهو يضع أولا إسم هذا العنصر ثم نوعه ثم قيمته .

.. وكل ما عليك الآن هو نقر المفاتيح Ctrl+Shift+M لتفتح لك نافذة ملء مكان هذه الأقواس ، التى تحول لك هذه الأقواس لجدول لطيف تعدل فيه بيانات وقيم الجدول كما تشاء ...

02_03_06_06_54_36_1141354476_8.gif

ولكن هذا الجدول يعطيني 3 صفوف فقط ، ولا يناسب إحتياجاتي ..

.. يا راجل إشتغل بقة شوية .. عدل في الكود وضاعف عدد الصفوف كما تشاء ورتب ونسق وفي النهاية أنقر Ctrl+Shift+M وعدل القيم كما تشاء .

والمفاجأة كمان إنك ممكن تعمل الـ template الخاصة بيك .. أو تعدل في أصل الـ template الموجودة علشان تناسب إحتياجاتك .. إزاي ؟

بص يا سيدي .. كل ما عليك هو عمل نقرة يمين على الـ template وإختيار new لعمل folder أو template جديد ، أو إختيار edit لتعديل الـ template الموجود وفي النهاية إحفظ ناتج تغيراتك .

-- ملفات الـ template دي موجودة في المسار

C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\sqlworkbenchnewitems\Sql

دة لو كنت من هواة الإستكشاف

-- فعلا تطوير جميل وحيوفر عليك شغل كتير

.. على فكرة في بداية كود إنشاء الجدول في الـ template بيشوف الأول هل الجدول إلي عايز تنشأه موجود ولا لا .. ولو موجود بيحذفه وبينشأ جدول جديد .. " برده لو عايز تعدل في القصة دي على راحتك " وطبعا بالمثل في كل المكتبة إلي موجودة عاندك دي ;)

تم تعديل بواسطه ebnelbana2000
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الله أكبر ولله الحمد

جزا الله إخواننا جزيل الخير على التثبيت .." كدة المسؤلية كبرت أوي " .. .. " ربنا يعينني "

وجزاكم الله خيرا أخي فيصل الحربي

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بسم الله الرحمن الرحيم

جزاك الله خيرا على ماتقوم به وجعله الله في ميزان حسناتك

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

====

سر على بركة الله

===

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

ما شاء الله تبارك الله

رغم ابتعادي عن برامج قواعد البيانات هذة السنة

الا اني وجدت في شرحك شيء طيب وممتاز

ولك مني تحية

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

بجد الله ينور __ ربنا يجعله في ميزان حسناتك

فعلا ربنا يكرمك __ اعتقد ان الكتير متبعين الدروس بشوق غير عادي واولهم انا

انا حملت SQL SERVER وبدات فعلا معاك وان شاء الله حبقي الباش مهندس ذكي :D

ربنا يكرمك _ ومش حطول عليك _ ومتابع معاك

بارك الله فيك _ وبشكر الادارة جدا والمشرفين اللي زى العسل علي تثبيت الموضوع لانه فعلا يستحق التثبيت :D

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الصفحه الأولي من الموضوع ;)

SQL_Server_2005_KickStart.pdf

تم تعديل بواسطه hazzoom
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

انا عندي نسخة نزلت مع الفيجوال 2005 تنفع ولا لازم استخدم النسخةاللي في الرابط

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

قمت بتعديل المشاركات 6، 7، 12، 13، 19، 20 بتعديل روابط الصور بحيث تشير للصور المرفوعة في سيرفر الفريق العربي للبرمجة.

------

الأخ hazzoom

أليس من الأفضل لو وضعنا نسخة PDF من الدورة بعد انتهائها؟ :)

-----

الأخ ebnelbana2000

ذكرت في المشاركة رقم 27

24- النوع bit : يأخذ القيمة صفر أو 1 .. وهو يستخدم لتخزين ناتج العملية البرمجية .. 1 أي صحيحة ، صفر أي خاطئة .

لم أفهم ما تقصده بناتج العملية البرمجية، ولكن النوع bit على الأصح يعادل النوع boolean في لغات البرمجة.

----

الأخ mbmh

انا عندي نسخة نزلت مع الفيجوال 2005 تنفع ولا لازم استخدم النسخةاللي في الرابط

الإصدارة التي نزلت لديك هي الإصدارة Express ، ويمكنك العمل بها.

انظر رد الأخ SOLO.NET على هذا الرابط:

وألقيت نظرة على SQL Server 2005

----

يمكن تنزيل SQL Server 2005 Service manager من هذا الرابط:

مقالة عن SQL 2005 Service Manager

03_03_06_11_34_15_1141457655sm_5.gif

تم تعديل بواسطه walcom
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بارك الله فيك يا ابن البنا و جعله في ميزان حسناتك و الحق يقال ان هذه الدورة بهذه الطريقة الشيقة السهلة تنفع المبتدئين و حتى المحترفين فنسال الله العلي القدير ان يقدرك على تكملة هذا الحمل الثقيل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

ياريت تشرح لنا طريقة التحميل المجانية بالتفصيل لاني ضعت وانا ادور ولا وصلت لنتيجة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

والآن بعد أن أكمل الباشمهندس زكي إدخال تخطيط كل جداول سوبر ماركت الخلافة .. تذكر أنه جعان وعايز يأكل

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

.. طبعا إنتوا فاكرين إننا إتكلمنا عن العلاقات دي في الأول في تخطيط قاعدة البيانات وتوزعها .. فهيا نطبق ذلك عملي مع الباشمهندس .

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

-- كل ما قام به الباشمهندس أنه قام بعمل ضغطة يمين من الماوس على إسم الجدول " Customer " وإختار modify لفتح الجدول في طور التصميم

04_03_06_07_15_42_1141485342_9.gif

-- ثم قام بعمل ضغطة يمين على الصف CustomerID وإختار set primary key لتجد أنه قد وضع أمامه علامة مفتاح أصفر .. ليخبرك أن العملية نجحت :D والحمد لله .. ولكن لسة خطوة :o لازم تقوم بحفظ الجدول علشان يثبت هذا التعديل .

04_03_06_07_16_45_11414854053_.gif

-- الآن يريد الباشمهندس زكي ربط جدول الفاتورة Invoice الذي يشمل الفواتير بجدول الزبائن .. حيث أن كل زبون ممكن أن يحصل على أكثر من فاتورة ولو على فترات متباعدة .. " ذلك مثلا لو كان سوبر ماركت الخلافة يسجل زبائنه ويوصل لهم الطلبات للمنازل مثلا فهو يسجل كل مرات الشراء قبل ذلك ، وكل مرة شراء غالبا تكون بفاتورة منفصلة " ... " واللذيذ بقة لو ربط قاعدة البيانات دي بالتليفون وإظهار رقم الطالب .. فلما يتصل بيه الزبون وقبل ما يرد عليه تجبله قاعدة البيانات إسمه وكل بياناته ;) "

-- والباشمهندس زكي في تخطيطه لقاعدة البيانات في البداية وضع الرقم المسلسل للزبائن في جدول الفاتورة تمهيدا للربط الذي سيقوم به الآن وهنا يسمى الرقم المسلسل للزبائن في جدول الفاتورة بالمفتاح الأجنبي forign key .. ويسمى في جدول الزبائن نفسه كما أسلفنا بالمفتاح الأساسي primary key .

-- قام الباشمهندس زكي بعمل ضغطة يمين على جدول الفاتورة Invoice " وهو الجدول الذي يحتوى مفتاح من جدول آخر " وإختار modify لفتح جدول الفاتورة في طور التصميم .. وفي أي مكان من نافذة التصميم قام بضغطة يمين وإختار relationships من القائمة المختصرة

04_03_06_07_18_10_114148549031.gif

.. هنا ظهر المربع الحواري forign key relationships .. وهو المسؤول عن إنشاء العلاقة بين الجدولين .. نقوم بضغط المفتاح add لإضافة علاقة جديدة

04_03_06_07_19_23_11414855633_.gif

.. على اليمين تجد كل الأحداث التى يمكننا تطبيقها على هذه العلاقة.

-- أولا .. نقوم بفتح علامة الزائد بجوار tables and columns specification

ثم نقوم بضغط الزر المنقط بجوارها ...

04_03_06_07_20_42_114148564233.gif

لتخرج لنا النافذة الحوارية tables and columns وهنا قام بوضع إسم للعلاقة في الخانة relationship name يحمل إسم جدولي العلاقة " الذي إخترناه والآخر المتوقع " يمكننا تغيير الإسم للذي نريد .. وهو سيقوم بتغييره لك عند تغيير إختيار الجدول .

04_03_06_07_22_29_114148574934.gif

-- وأسفل ذلك على اليمين الخانة forign key table وبها إسم الجدول الذي إخترناه والذي سيحمل في حشاياه الرقم المسلسل الأساسي لجدول آخر .. ونلاحظ أنه قد ثبته ومنع تغييره وذلك لأنه الجدول الذي إخترناه لنقيم عليه العملية من البداية وهو أساس الشغل كله

-- أما على اليسار فقد وضع الخانة primary key table والتى يمكنك من خلالها إختيار الجدول الذي ستحضر المفتاح الأساسي له " في حالتنا customer " وتربطه بالمفتاح الأجنبي في الجدول المختار " في حالتنا Invoice " وبالطبع لابد أن يحمل كلا الصفين نفس البيانات ونفس الخصائص .. حيث يمكن أن تجعل المفتاح الأساسي للجدول كما أسلفنا رقم تليفون الشخص مثلا لأنه لا يتكرر .. وهنا لابد أن يكون صف المفتاح الأجنبي في الجدول الآخر موصف بنفس نوع البيانات والحجم تماما مثل صف المفتاح الأساسي في الجدول الآخر .. ولكن لا يشترط أن يكون إسمهما هو نفس الإسم .. " في حالتنا كلاهما يحمل الإسم CustomerID .. ولكن لا يشترط تطابق الإسم "

-- أسفل كلا الجدولين سيضع لنا كل صفوف كل جدول لنختار الصف الذي سيستخدم في الربط .. نختار CustomerID من كلاهما ثم نختار ok ليعود بنا للمربع الحواري السابق

04_03_06_07_25_27_114148592735.gif

.. فهيا بنا نقوم بشرح محتوياته

تم تعديل بواسطه ebnelbana2000
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

04_03_06_07_54_20_114148766036.gif

في المجموعة General نجد أول خيار هو Check Existing Data On Creation Or Re-Enabling

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

-- أما الخيار Enforce Foreign Key Constraints فهو المسؤول عن جعل أي تغيير يحدث في أي صف من الصفين يتم مثله في الصف الآخر بالضبط كي يكون الصفين دائما متطابقين

04_03_06_08_03_08_114148818837.gif

-- ومن الخيار الذي أسفل منه Insert And Update Specification نحدد طبيعة هذا التغيير بالنسبة إلي الرقم المسلسل و كل البيانات المتعلقة به .

04_03_06_08_35_16_114149011638.gif

وهناك أربع خيارات في حالة الحذف أو التعديل .. هي بالترتيب

1- No Action ... أي لا شيء يحدث .

2- Cascade ... أي .. أي شيء يحدث هنا يحدث مثله هناك .. أي لو حذفنا مستخدم هنا ستحذف كل الفواتير المتعلقة به " وهذا خيار خطير ولكن نحتاجه أحيانا "

3- Set Null ... أي أنه عند حذف أو تعديل الرقم المسلسل مثلا في جدول الزبائن سيتم إستبداله بالقيمة Null في جدول الفواتير وذلك للحفاظ على بيانات الفواتير وللدلالة على أن الزبون الخاص بها تم حذفه أو تعديله " لازم الصف يكون بيقبل القيمة Null "

4- Set Default ... نفس عمل الخيار Null .. ولكن هنا بيحط القيمة الإفتراضية إلي إنت كنت عاملها للصف دة أثناء إنشاء الجدول . " لازم تكون حاتط قيمة إفتراضية على الصف "

-- أما عن الخيار Enforce For Replication فسنعود له عند الحديث عن الـ Replication إن شاء الله .. وهي عبارة عن صنع صورة طبق الأصل من قاعدة البيانات في مكان آخر .. وعند تغيير البيانات في أحدهم يتم نفس التغيير في قاعدة البيانات الأخرى

تم تعديل بواسطه ebnelbana2000
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

اشكرك أخى ebnelbana2000 على هذه الفرصة العظيمة لكن احناج منك الى طلب صغير ياريت وضع رابط مباشر Microsoft SQL Server 2005 لانى بصراحة حاولت انزل النخسة التجريبية من Microsoft ولن استطيع احتاج الى رابط مباشر للنسخة التجريبية وشكرا لك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

طريقة تنزيل النسخة الكاملة لمدة 6 أشهر من الـ sql server 2005

أولا إذهب إلى هذه الوصلة

Sql server 2005

لتجد هذه الصفحة

04_03_06_10_10_42_11414958421_1.gif

قم بالضغط على المفتاح Continue

ليذهب بك إلى صفحة إدخال إيميلك على الهوت ميل

بعدها سيعود بك إلى الصفحة السابقة وقد إستبدا المفتاح Continue بالوصلة Download files below

04_03_06_10_12_50_11414959701__.gif

إنزل قليلا في الصفحة لتجد وصلات التحميل

إختار النسخة X86 Executable وهي المناسبة للأجهزة الـ 32 بايت

04_03_06_10_15_05_11414961051_3.gif

بعد التنزيل " ربنا يديك طول العمر والبركة فيه " قم بفك الضغط عن الملف كي ينتج لديك مجلدين

04_03_06_10_17_31_11414962511_4.gif

قم بتسطيب ما بداخل المجلد Servers فهو ما نحتاجه

** وكل تسطيب وحضراتكم طيبين :D

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .