اذهب الي المحتوي
أوفيسنا

5- الجداول في مشاريع أكسس


الردود الموصى بها

أنواع البيانات في مشاريع آكسس

Binary ---> (بيانا تثنائية) ثابت الطول .. الحد الأعظمي 8000 بايت .. يستخدم لتخزين الصور الصغيرة

Varbinary ---> (بيانا تثنائية) متغير الطول .. الحد الأعظمي 8000 بايت

Bit ---> يمتلك إحدى القيمتين (0) أو (1) وهو مكافيء لـ(نعم/لا)(صواب/خطأ) .. (1=نعم) (0=لا)

Char ---> (أحرف)(نص) يمكن أن يزيد عن 8000 حرف .. ثابت الطول .. إذا حددت الطول بـ20 مثلاً وكان الحقل يحتوي على 5 أحرف سيتم ملء الفراغ المتبقي من الـ15خانة المتبقية هكذا : [المسجد ]

Varchar ---> (أحرف)(نص) يمكن أن يزيد عن 8000 حرف .. بطول متحول حسب المدخل فيه .. فمثلاً إذا حددت طوله بـ20حرفاً وأدخلت 5 أحرف سحتوي على الخمس أحرف فقط من غير ملء 15 خانة المتبقية هكذا [المسجد]

Datetime ---> قيمة محتملة تبدأ من يناير/1/1753 إلى 9999/31/ديسمبر

Smalldatetime ---> (تاريخ/وقت) صغير

Money ---> (عملة)

Smallmoney ---> (عملة) أموال صغير .. يتم تحويل القيمة فيه إلى خانتين عشريتين فقط

Nchar ---> يحتوي 4000 رمز يونيكود .. ثابت الطول يشغل حجماً يساوي 2 بايت لكل رمز

Text ---> مكافيء لـ مذكرة

Ntext ---> (ارتباط تشعبي ) بطول متحول (الارتباط غير مفعل) ويمكنك تفعيله باختيار (نعم)للخاصية(ارتباط تشعبي) في حقل في نموذج

Decimal ---> (أرقام) عدد صحيح .. دقة ثابتة

Numeric ---> (أرقام) مطابق لـdecimal

Float ---> (أرقام) بفاصلة عائمة .. يحتوي على قيم تقريبية للقيمة الحقيقية .. مكافيء للنوع Double

Int ---> (أرقام) قيم صحيحة .. مكافيء للنوع Long Integer

Nvarchar ---> (أحرف)(نص)يونيكود

Real ---> (أرقام)عدد حقيقي يحتوي أرقاماً ذات فاصلة عائمة سالبة أو موجبة .. يأخذ 7 خانات من أجل الدقة .. يحتوي على قيم تقريبية للقيمة الحقيقية . مكافيء للنوع Single

Smallint ---> (أرقام) قيم صحيحة .. مكافيء للنوع Integer

tinyint (أرقام) رقم صحيح يبدأ من صفر إلى 255 . يكافيء نوع بيانات Byte بايت

timestamp ---> طابع الوقت .. عداد يتم تحديثه من قبل msde في كل مرة يتم فيها إدراج سجل أو تحديث سجل .. مكون من التاريخ والوقت الحالي .. ويستخدم حقل واحد فقط من هذا النوع في الجدول .. هذا الحقل للمقارنة ولا يمكن القراءة منه .. فيمكن مقارنة قيمتين منه لمعرفة آخر تحديث تم للصف منذ آخر قراءة له .

Uniqueidentifie (GUID) ---> رقم فريد في ملقم msde

Image صورة مكافيء للنوع (كائن OLE)

  • Thanks 1
رابط هذا التعليق
شارك

  • 1 month later...

خصائص الحقول :

Column Name = اسم الحقل

DataType = نوع بيانات الحقل

Length = الحد الأقصى لحجم الحقل لا يمكنك تغيير القيمة إلا لأنواع البيانات التالية : [ binary ، char ، nchar ، nvarchar ، varbinary ، varchar ]

recision = عدد الخانات في العمود . لا يمكنك تغيير القيمة إلا لأنواع البيانات التالية : [ decimal ، numeric بقيمة بين 1-28 لكل منهما ] إذا قمت بتغيير القيمة في هذا الحقل سيقوم adp بتغيير القيمة المناسبة في حقل Length فإذا اخترت القيمة من 1-9 سيضع في حقل Length القيمة 5 ، من 10-19 سيضع في حقل Length القيمة 9 ، من 20-28 سيضع في حقل Length القيمة 13 .

Scale = عدد الخانات على يمين الفاصلة . لا يمكنك تغيير القيمة إلا لأنواع البيانات التالية : [ decimal ، numeric بقيمة بين 0-28 لكل منهما ]

Allow Nulls = السماح بقيم فارغة أم لا ، إذا وضعت عليه علامة فمعنى ذلك أن هذا الحقل سيسمح بقيم خالية في هذا ، ولهذا إذا أردت وضع مفتاح أساسي فعليك أولاً إزالة العلامة من الحقل قبل محاولة تعيينه كمفتاح أساسي ، وأنواع البيانات الصالحة لحقل المفتاح الأساسي هي [ int ، decimal ، tinyint ، smallint ] .

Default Value = القيمة الافتراضية عند إضافة سجل جديد . ويجب وضع علامة الاقتباس المفردة للبيانات النصية مثلاً ')فارغ') أما الأرقام فلا فتكتب كما هي (2) .

Identity = ترقيم تلقائي .. ولكن قبل انتقائه يجب إزالة انتقاء الحقل Allow Nulls وإلا ستظهر رسالة خطأ .. هذا لأن الترقيم التلقائي لا يقبل قيمة فارغة Null في حقله . مع الانتباه أنه لا يمكن إلا وضع حقل ترقيم واحد فقط لكل جدول .

Identity Seed = القيمة الأولى التي سيبدأ بها الترقيم التلقائي فمثلاً إذا وضعت رقم 10 سيحمل الحقل الأول في الجدول رقم 10 والذي يليه 11 .. وهكذا , والوضع الافتراضي للبدء هو 1

Identity Increment = القيمة التي سيزيدها adp للحقل التالي .. فلو وضعت القيمة 2 وبدأت برقم 3 في الخاصية Identity Seed سيحمل الحقل الثاني القيمة 5 والثالث 7 وهكذا ، , والوضع الافتراضي للزيادة هو 1

Is RowGuid = يستخدم فقط مع نوع بيانات uniqueidentifier ، ومهمته هي وضع قيمة فريدة للسجل لا يمكن أن تتكرر في قاعدة البيانات بل في العالم كله ولا يسمح إلا بحقل واحد فقط في الجدول ، إذا انتقيت نوع البيانات هذا ثم وضعت علامة في خانة الحقل Is RowGuid سيدرج adp تلقائياً الدالة (newid()) والتي بدورها تقوم بتوليد قيمة فريدة في الحقل Is RowGuid كلما أدرجت صفاً جديداً

رابط هذا التعليق
شارك

الفهارس

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

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

وللفهارس في msde أنواع ثلاثة :

1- فهرس فريد ( Unique Index )

2- فهرس مفتاح أساسي ( Primary Key )

3- فهرس متفاوت المسافات ويطلق عليه أيضاً الفهارس العنقودية ( Clustered )========

وسنأخذها واحداً واحداً ..

فهرس فريد ( Unique Index )

هذا النوع من الفهارس يسمح بقيمة خالية (Null) واحدة فقط في الحقل .. ويستخدم غالباً في حقل لا تريد تكرار بياناته ولا يكون هذا الحقل مفتاحاً أساسياً . ويسمح بواحد منه في الجداول فقط .

الطريقة :

1- افتح الجدول في عرض التصميم ثم من قائمة (عرض) اختر (خصائص) ومن نافذة الخصائص (Properties) اختر تبويب(Index/Keys) فهارس/مفاتيح .

2- انقر زر (New) جديد ثم اختر من القائمة التي أسفل منه (Column name) العمود أو الحقل الذي تريد أن تجعله فهرساً .

3- في المستطيل الذي أسفل منه (Index name) اسم الفهرس اختر اسماً للفهرس أو أبقه كما هو إذا أحببت .

4- فعل الخيار ( Creat Unique) فهرس فريد ..

5- فعل الخيار (Index) فهرس .. وفعل الخيار المقابل (Ignore duplicate key) تجاهل المفتاح المكرر .. في حالة ما إذا أردت تجاهل البيانات الموجودة والمكررة .. هذا ما تقوله التعليمات في البرنامج وفي الكتب ولكن من خلال التجربة على خلاف ذلك فإنه لا يمكنك إنشاء فهرس فريد على حقل به بيانات متكررة .

وبهذا نكون أنشأنا فهرساً فريداً

-------------------------

فهرس مفتاح أساسي ( Primary Key )

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

الطريقة :

1- افتح الجدول في عرض التصميم

2- انقر لإزالة العلامة من الخاصية (Allow Nulls) ليكون مطلوباً وعدم السماح بقيمة خالية .

3- انقر لوضع علامة في الخاصية (Identity) إذا أردته أن يكون ترقيماً تلقائياً .

3- اختر إحدى الطريقتين التاليتين لتعيينه مفتاحاً أساسياً :-

- في شريط أدوات التصميم للجدول انقر على (شكل المفتاح) .

- انقر بزر الماوس الأيمن على الحقل المطلوب ثم اختر مفتاح أساسي (شكل المفتاح) .

-------------

فهرس متفاوت المسافات ويطلق عليه أيضاً الفهارس العنقودية ( Clustered )

والفرق بين هذا الفهرس وبين الفهرسين الآخرين أن كلاً من الفهرس الفريد وفهرس المفتاح الأساسي لا يهتمان بترتيب السجلات في حالتي الإدراج أو عند فتح الجدول فتجد سجلاً يحمل الرقم 10 ويليه سجلاً يحمل الرقم 5 فهو يرتبها حسب زمن الإدراج .. بينما فهرس متفاوت المسافات ينظر إلى الترتيب بعين الاعتبار فعند إدراج سجل فإنه يقوم بوضعه في مكانه المنطقي الصحيح فيضع السجل الذي يحمل الرقم 5 قبل السجل الذي يحمل الرقم 10 وإن كان السجل رقم 5 تم إضافته بعد السجل رقم 10 .. وهكذا فهو يقوم بترتيب الأرقام من 0 إلى 9 .. وفي الحروف من أ إلى ي .. ومن A إلى Z .

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

الطريقة :

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

- بعد قيامك بخطوات كل منهما

- انتق الخيار ( Creat as CLUSTERED ) إنشاء كفهرس متفاوت المسافات ..

كذلك بإمكانك إنشاء فهرس متفاوت المسافات بمفرده بالتالي :

- أزل العلامة من خانة اختيار ( Creat Unique ) .

- انتق الخيار ( Creat as CLUSTERED ) إنشاء كفهرس متفاوت المسافات ..

خيارات :

- الخيار ( Constraint ) .. فعل هذا الخيار إذا أردت لا يسمح الحقل بقيم مكررة وأن لا يكون فهرساً .

- الخيار ( Fill Factor ) معامل الملء .. يقوم بتحديد السعة التخزينية لصفحة الفهرس .. ويستخدم في الجداول التي تتوقع أن تكون مسرحاً لعمليات الإضافة والحذف والتحديث ويتعامل بالنسبة المئوية ويستحسن خفض القيمة إلى أقل تقدير مع أن الفهرس لن يبقيه على ما هو عليه بل سيغيره للاقتراب من كثافة معينة .. وافتراضياً يعين على صفر .. كما أنه لا يشترط تعبئته .. .

- الخيار ( Don't automaticlay recomputed statistics ) .. لا تقم بإعادة حساب الإحصائيات أوتوماتيكياً ( لم أجربه من قبل ولا أعلم فائدته وعمله ) .

اختبارات :

قمت باختبار الفهارس الثلاث بالإضافة إلى عدم استخدام الفهارس على أكثر من (100.900 ) سجل فكانت النتائج بالثواني كالتالي :

------------------------------ فهرس متفاوت ---- فهرس فريد ---- فهرس مفتاح أساسي ---- بلا فهرس (Constraint)

إضافة 1000 سجل 10 9 9 9

تحديث 100900 سجل 2 2 3 12

حذف سجل واحد 0 0 0 0

بحث عن سجل واحد 0 0 0 0

-------------------------------------------------------------------------------------

اختبارات الفهارس مع ( Fill Factor ) في حالة إضافة عدد 1000 سجل . في جدول به أكثر من 130.000

----------- فهرس متفاوت ---- فهرس فريد ---- فهرس مفتاح أساسي ---- بلا فهرس (Constraint)

عند القيمة 5 مع تفعيل Pad (لم يقبل القيمة) 13 لم يقبل القيمة لم يقبل القيمة

بلا تفعيل Pad (7ث) 24

عند القيمة 10 ............... 9 8 لم يتمكن من قبول القيمة 10

............... 8 9

عند القيمة 20 ............... 9 11 15 9

............... 9 11 لا يوجد لا يوجد

عند القيمة 50 ............... 9 8 9 8

............... 9 10 لا يوجد لا يوجد

نستنتج من خلال هذه الاختبارات :

1- أن الفهرس المتفاوت يستحسن معه عدم تفعيل الخيار Pad Index .

2- أن الفهرس الفريد يستحسن معه تفعيل الخيار Pad Index .

3- أن الفهرس المقتاح الأٍساسي يعمل بشكل أفضل كلما زدت في القيمة وكذلك الفهرس الفريد مع Constraint

[ معذرة .. حاولت أن أرتبها فعجزت .. لذا أرفق ملف وورد منظم ]

Indexes.doc

تم تعديل بواسطه أحمد الحربي
رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information