الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الاخطاء القاتلة في تصميم قواعد البيانات

بدأه مخالف_42 في 29 أبريل 2008 · 27 رد · 7,977 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

يعتبر تصميم برامج قواعد البيانات عملية مخططة ومدروسة وليست عملية عشوائية خلط جداول واستعلامات

وتشكيل برنامج متهالك ينهار مع أول هزة تصيبه

اذا كيف نبني برنامج قواعد ببنات متماسك ومتين يوفر كل الشروط النموذجية للبرنامج ويليق بك كمبرمج

هناك أخطاء يرتكبها المبرمجون ا و يتغاضون عنها بحكم ان الأمور تسلك على البركة

والمهم المادة

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

لذلك يجب ان تكون مصممه بشكل سليم من الصفر حتى النهاية

وتأكد ان أي خطاء سوف ينعكس على باقي البرنامج وكذلك البيانات وهذا المهم

وغالب ماتكون الاخطاء في تصميم الجدول وهي زبدة البرنامج والمحرك والتى قد يصعب اصلاحها بعد اكمال البرنامج

اذا العمل يكون من الاساس عليها

فقد يعطي البرنامج نتائج مغلوطة وقد يكرر بيانات غير مطلوب تكرارها و يمسح البيانات او قد ينهار البرنامج

ولايمكن الاصلاح مما يترتب علية

ان يكون برنامج سئ السمعة

ان يكون برنامجك عديم الفائدة و من اول البرمج التى تزال من جهاز المستخدم

ان يطلق المسخدم عليك النار بين عينك خاصة اذا فقد بيانات مهمة

ان يشتمك المستخدم عند مرور اسم برنامج على مسامعه

اذا كيف أتجنب هذا و أقوم بتصميم برنامج متماسك أكثر من سور الصين العظيم

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

الخطاء الأول

تصميم الحقول بشكل مركب

أو ما نسميه تفكيك البيانات إلى بينات اصغر وهذا الهدف من قواعد البيانات العلائقية حاول تفكيك القيم الى اقصي حد ممكن

نضرب مثل

حقل الاسم مثل يمكن تفكيكه الى أربع حقول

الاسم

اسم الاب

الجد

العائلة

<A name=OLE_LINK1>وجمع ذلك في استعلام

يعطي هذا سهولة في عملية الفرز

خذ مثل العنوان من الخطاء الشائع حصر جميع بيانات العنوان في حقل واحد

المنطقة المدينة صندوق البريد الحي

تخيل اخي أي اسهل في الفرز السابق

ام تفكيك كل نوع في حقل المنطقة في حقل والمدينة في حقل والحي في حقل اكيد الفرز والتحكم اسهل في الثاني بسب التعامل مع الاول كحقل واحد يصعب فرزة

الخلاصة

قم بتفكيك الحقول التي تحوي اكثر من قيمة الى حقول منفصلة

يمكن جمعها في استعلام

الخطاء الثاني ...يتبع

post-157334-1209427124_thumb.png

post-157334-1209427131_thumb.png

85ab3d18ceqp9.jpg
#2

السلام عليكم

أخي و أستاذي سلطان البشر

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

لي ملحوظة صغيرة

بالنسبة لموضوع العنوان - طبعا حضرتك عندك حق بنسبة 100 %

أما بالنسبة للإسم: ؟؟؟؟

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

و اكم جزيل الشكر على الموضوع الجيد

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

#3

بارك الله فيك وجزاك الله خير ونفع الله بعلمك

واللى الامام

وفقك الله

اتق الله حيث ماكنت

#4

ملحوظة ضغيرة يا أبو السلاطين

من ضمن الاخطاء الشائعة بل القاتلة في تصميم قواعد البيانات كتابة اسماء الحقول داخل الجداول باللغة العربية !!! خلي بالك لانك كتبت مسميات الحقول بالجدول باللغة العربية واحنا عاوزين نعلم الناس شوية حاجات صح

واوعي تزعل

كله فايدة للاعضاء الجدد

تم تعديل هذه المشاركة بواسطة محمد فؤاد تركي في 29 أبريل 2008 في 10:35

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#5

شكر اخي ابو رحمة

نعم اخي ان معك في ذلك

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

كما يمكن استخدام عامل LIKE ولكن ليس فعال بكل الأحوال اما اذا كان قصدك صعوبة الادخال يمكن استخدام

حقل واحد ثم يقوم بإدخال الاسم داخل الحقو ل المفككة عن طريق الكود

1000 شكر اخي at_aziz هذا قليل مما عندكم

نعم اخي محمد نعم هذا ماكنت سوف اتكلم عنة في الخطاء الثاني ولكن سبقتني

ان اعرف ان ذلك خطاء كبير

ولكن انا استخدم ذلك كمثال بسب ان بعض الاعضاء ضعيف في اللغة

الانجليزية

وعلشان تتضح له الصورة بشكل اوضح كان مجرد توضيح

فقط

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

اللغة العربية في الحقول والجداول

تم تعديل هذه المشاركة بواسطة سلطان البشر في 29 أبريل 2008 في 12:24

85ab3d18ceqp9.jpg
#6

مشكور اخي على التوضيح

محمد فؤاد تركي كتب:
ملحوظة ضغيرة يا أبو السلاطين

من ضمن الاخطاء الشائعة بل القاتلة في تصميم قواعد البيانات كتابة اسماء الحقول داخل الجداول باللغة العربية !!! خلي بالك لانك كتبت مسميات الحقول بالجدول باللغة العربية واحنا عاوزين نعلم الناس شوية حاجات صح

واوعي تزعل

كله فايدة للاعضاء الجدد

اخي محمد تسلم ماقصرت على التوضيح الله لا يحرمنا من خبرتكم

#7

الخطاء الثاني

مشكلة كتابة الجداول ة أسماء الحقول باللغة العربية

من الأخطاء التي قد لا ينتبه له البعض تسمية الحقول و الجداول والاستعلامات با ستخدام اللغة العربية

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

اذا ما هو الخطاء والأكسس يعطي مرونة في ذلك

لو كان خطاء

السبب

1. كثرت الاخطاء في الكود البرمجي أحيانا بكعس استخدام اللغة الانجليزية

2. مشكلة تعارض الاصدارت والتحويل

3. ظهور مشكلات انت في غني عنها عند تحويل قاعدة البيانات الى Microsoft SQL Server 2000 واستخدام برامج لاعداد التطبيق على الويب

مثل ظهور البيانات على شكل ؟؟؟؟؟؟

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

إذن استخدام اللغة الانجليزية بشكل عام

الخطاء الثالث ....يتبع

post-157334-1209475130_thumb.png

post-157334-1209475136_thumb.png

post-157334-1209475142_thumb.png

post-157334-1209475147_thumb.png

تم تعديل هذه المشاركة بواسطة سلطان البشر في 29 أبريل 2008 في 16:21

85ab3d18ceqp9.jpg
#8

ملاحظة ممتازة .......وشكرا لك

#9

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

" لو طهرت قلوبنا لما شبعت من كلام الله "

عثمان بن عفان رضي الله عنه

مدونتي الشخصية - فوائد واخبار تقنية

#10

نعم اخي وهذا سوف نتطرق له في اخطاء التعامل مع القيم

المتغيرة والثابتة

او ما يمكن ان نسميه

دورة الحياة

لقاعدة البيانات

فهل من المعقول

بعد اربع سنوات من استخدام البرنامج

يكون عمر الشخص كما كان

قس على ذلك ما ينتج عن هذا الخطاء

من مشاكل

تم تعديل هذه المشاركة بواسطة سلطان البشر في 29 أبريل 2008 في 20:05

85ab3d18ceqp9.jpg
#11

بداية قوية ماشاء الله تبارك الله يا أخ سلطان

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

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

وشكرا لك مرة أخرى

أخوك / أبو حسن

ريح من الزفرات تعصف في الحشى &&& و ورائها مطر من العبرات

ابو حسن

#12

شكر أخي المبرمج2003

إن شاء الله سوف نحاول إكمال معظم الاخطاء لكن........لم ألاحظ تفاعل من المشرفين لا اقصد

المديح والثناء فنحن لم نكون هنا لكي نستعرض العضلات بل لنتعلم

أرجو من الأخوة المشرفين

الإسهاب في المناقشة

انا لست نبي مرسل اعرف شي واجهل أشياء كثيرة ومازلت تلميذ وسوف أعيش تلميذ

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

اما موضوع العلاقات نعم ما فائدة قاعدة البيانات بدون علاقات ولماذا سموها قواعد البيانات العلائقية

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

لكن موضوع العلاقات متقدم وطويل شوي

وسوف نشرح بتفصيل انشاءلله لكن سوف نتدرج حبة حبة

حتى نصل إلى أخطاء تتعلق بمواضيع متقدمه جداجدا

لكن مثل ما قلت التفاعل و خصوص من الأخوة المشرفين

85ab3d18ceqp9.jpg
#13

مبروك 100.000 عضو

تم تعديل هذه المشاركة بواسطة سلطان البشر في 1 مايو 2008 في 01:55

85ab3d18ceqp9.jpg
#14

الخطاء الثالث

استعمال أنواع البيانات بشكل غير صحيح

من الخطاء استعمال أنواع البيانات بشكل غير صحيح

نوع البيانات

الاستخدام

الحجم

نص( (text

بيانات أبجدية ورقمية يمكن ان يخزن

حروف وارقام

يصل الى 255 حرف

رقم( (Number

بيانات رقمية فقط

1 – 16 بايت

ترقيم تلقائي( (AutoNumber

قيمة يولدها الاكسس لكل سجل جديد

4 بايت 16

عملة (currerncy)

بيانات مالية 4 منازل عشرية

8 بايت

نعم/لا(yes/no)

بيانات بوليا نية صفر للخطاء و (-1) للصح

1بت

تاريخ/وقت(date/time)

بينات تاريخ ووقت

8 بت

كائنOLE ( OLE Object)

صور ورسوم بيانية وبرامج تعتمد على ويندوز مثل برامج الفيديو

2 جيجا بايت

مذكرة(Memo)

بيانات رقمية وحرفية جمل وفقرات

يصل الي 1 جيجابايت

ارتباط تشعبي (Hyperlink)

عنوان ارتباط الى مستند في الانترنت او شبكة محلية

يصل الى 1 جيجابايت

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

فالبيانات الحرفية يجب اختيار نص حيث ممكن ان تشمل البيانات حروف وأرقام

حيث ان هذا الحقل مناسب لحقل صندوق بريد مثلا او بريد الالكتروني

ولكن سئ جدا لرقم هاتف حيث رقم الهاتف يحوي ارقام فقط حيث سوف تكون عرضه للإدخالات الخاطئة كن يدخل المستخدم حرف في حقل الهاتف

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

خذ مثلا تحديد حقل مثل يستخدم في تخزين العمر

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

اذا يجب انتقاء انواع البيانات بشكل دقيق جدا جدا كذلك نجد اهمية في تحديد التحكم في طول الحقل حجم الحقل

مثلا في تحديد حقل يقوم بتخزين العمر من نوع رقم

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

هل نختارعدد صحيح ام عددصحيح طويل

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

اذا ممكن ان نعتبر قاعدة البيانات عبارة عن حاوية او صندوق يتم وضع صناديق صغير ة فية حيث عدم رص هذا الصنديق وتوزيعها بطريقة صحيحة سوف يؤدي الى عدم الاستفادة من المساحة المتاحة

اذا اعتبرنا ان الاكسس ذو سعة تخزينة محدودة عكس قواعد البينات الاخري التي تعطي سعة فلكية كما نجد من الصعب حصر الادخالات في كل نوع من انواع البيانات ولكن يمكنك القايس على السابق

فكن دقيق في اختيار نوع البيانات لكل حقل وحجم الحقل

اذا

اسل نفسك مالهدف من هذا الحقل وما نوع البيانات المناسب وماذا سوف يدخل ويخزن فية

هل حجم الحقل مناسب هل سوف يصل إلى هذا الحد او هل القيمة محددة بشرط او لا

الخلاصة ان انتقاء نوع البيانات عملية شديدة الدقة يعتمد علية بشكل أساسي

post-157334-1209592585.png

post-157334-1209597548.png

post-157334-1209605946_thumb.png

تم تعديل هذه المشاركة بواسطة سلطان البشر في 1 مايو 2008 في 04:39

85ab3d18ceqp9.jpg
#15

الى الأخ / سلطان .. المحترم

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

لدي ملاحظة واحدة فقط وهي بحجم النملة

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

وجهد مبارك وبانتظار المزيد

أخوك مشكاة

#16

السلام عليكم

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

و كمساهمة بسيطة من أخوكم المتواضع

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

1-هو عدم الدراسة الجيدة و التخطيط الجيد للبرنامج قبل بداية العمل .

2- عدم توثيق خطوات الحل او documentation للبرنامج

3-عدم وجود خطة عمل لإنشاء البرنامج

هذه مساهمة بسيطة مني و في إنتظار مسهماتكم القيمة

أخوكم أبو رحمة

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

#17

السلام عليكم

موضوع جميل جداً بارك الله فيك

اود ان اضيف نقطة ، الا وهي ان اسماء الجداول الافضل ان تكتب بصيغة الجمع ، مثلاً departments وليس صيغة الافراد department

ايضا لغة SQL ليست حساسة لحالة الاحرف non case-sensitive فيفضل كتابة جميع اسماء الجداول والحقول باحرف صغيره small letters

اود ان نتقدم الى الاخطاء الشائعة في اختيار العلاقات بين الجداول ، وشكرا جزيلاً :)

#18

الأخ سلطان

الله يعطيك العافية شرحك رائع استمر بارك الله فيك

الأخوة الكرام

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

#19

أخي جزاك الله خير

ولكن عندي ملحوظة

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

حيث ان هذا الحقل مناسب لحقل صندوق بريد مثلا او بريد الالكتروني

ولكن سئ جدا لرقم هاتف حيث رقم الهاتف يحوي ارقام فقط حيث سوف تكون عرضه للإدخالات الخاطئة كن يدخل المستخدم حرف في حقل الهاتف

نوع حقل رقم الهاتف يجب أن يكون حقل نصي وليس رقمي

لماذا؟

ﻷنه أن كان رقمي وأدخلت رقم مثل هذا 0123456789 مثلاً ثم عملت أستعلام عن رقم الهاتف سيخرج لك هكذا123456789 وضاع الصفر ﻷنه علي اليسار وليس له قيمة

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

***كلنا معرضون للخطأ أرجو أن يصحح لي أن كنت اخطأ

وآسف للأطالة

دمتم في رعاية الله

مدونتي

برمجة وما يتبعها

#20

أخطأت في قولي

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

تعلمت اليوم شيء جديد في قواعد البيانات

نفرض أن عندنا حقل phoneونريد ادخال به بيانات نصية ولا تخرج عن [0,9]بدون أستخدام أي لغة برمجة غير sql

سنكتب هكذا

phone vercher(15) check between(0 and9)

ومازلت أتعلم

ولكن أريد تعقيب

1

مدونتي

برمجة وما يتبعها

#21
اقتباس
اما موضوع العلاقات نعم ما فائدة قاعدة البيانات

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

لكن موضوع العلاقات متقدم وطويل شوي

متى يا أخى ستتكلم عن العلاقات بين الجداول؟

فشرحك جميل وملئ بالأمثلة الموضحة لكل كلمة تقولها

فى انتظارك على نار

وشكرآ

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

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

الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين

شكراً لك اخي الكريم

#22

مشاء الله تبارك الرحمن اخي ... موضوع شيق ارجو تكملتة

طــــريـــقـــة جــمــيــلــة بالـــشــــرح

ارجو من الاخوة الاعضاء ومشرفين التعقيب على الموضوع لان والله محتاجين ابداعات وتفاعل بالمشاركات هكذا

وطباعاً المنتدى ملئ بالمبدعين وهم كثر اثرو بجهودهم المنتدى الله يعطيهم العافية وإن شاء الله اكون منهم

#23

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

اشكرك اخى الكريم على هذا الموضوع الهام جدا

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

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

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

تم تعديل هذه المشاركة بواسطة alashree في 14 أغسطس 2008 في 23:17

#24

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

انا قليل المشاركه ولكن هذا الموضوع عجبنى جدا وحبيت ان اشارك مع الاخوه في هذا الموضوع

الكلام اللى نشر صحيح جدا لاني قمت بعمل برامج وللاسف اكثر الحقول باللغه العربيه وعندما قمت بتحول قاعدة البيانات الى sql بدت المعانات ومن بعدها قمت اعمل الحقول باللغه الانجليزيه

كذلك عند عمل الكود اتعب فيه جدا

عندى استفسار وهو عمل حقل خاص بالرقم المدني ( خاص بالكويتيين ) وهو يتكون من 12 رقم عند وضع هذا الحقل رقمي لا يستقبل هذا الرقم

ويرفضه البرنامج لذى قمت بعمله حقل نصى وفي النموذج حولت تنسيق الحقل الى ارقام

هل يوجد حل لذلك

توجد اخطاء في تسمية الحقول باسماء الاكواد

مثال

تسمية الحقل no او اسم الحقل date

الحل بحسب خبرتي القليه

الحقل no تضيف اى حرف لدلاله على معنى الحقل مثل ( رقم الملف ) f_no

حقل التاريخ مثل ( تاريخ التعيين ) j_date

ارجو ان اكون قد وفقت

اخوكم / ابو عبداللطيف

رحم الله امراٍ عرف قدر نفسه

#25
اقتباس
عندى استفسار وهو عمل حقل خاص بالرقم المدني ( خاص بالكويتيين ) وهو يتكون من 12 رقم عند وضع هذا الحقل رقمي لا يستقبل هذا الرقم

ويرفضه البرنامج لذى قمت بعمله حقل نصى وفي النموذج حولت تنسيق الحقل الى ارقام

هل يوجد حل لذلك

عندما تختار نوع البيانات رقم...

تختار حجم الحقل مزدوج....

موفق

post-116543-1218803181_thumb.jpg

اقتباس
[وسط]اللهم ارحمنا إذا اشتدت السكرات، وفاضت العبرات، وتعطلت القوى و القدرات.

اللهم ارحمنا إذا يئس منا الطبيب ،وبكى علينا الحبيب ، واشتد البكاء و النحيب.

اللهم ارحمنا إذا حملنا على الأعناق ، و التفت الساق بالساق، إلى ربك يومئذ المساق.

اللهم ارحمنا إذا وارينا التراب، وغلقت الأبواب، وانفض الأهل و الأحباب

[/وسط]

545050692.gif

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…