جربها بنفسك!
يمكن أن تحقق قواعد البيانات وتطبيقات الويب مزايا تجارية كبيرة. يعد تصميم قاعدة البيانات أمرا بالغ الأهمية لتحقيق أهدافك، سواء كنت تريد إدارة معلومات الموظفين أو تقديم تقارير أسبوعية مقابل البيانات أو تعقب طلبات العملاء. سيساعدك استثمار الوقت لفهم تصميم قاعدة البيانات على إنشاء قواعد بيانات تعمل بشكل صحيح في المرة الأولى والتي تلبي الاحتياجات المتغيرة.
هام: تختلف تطبيقات Access على الويب عن قواعد بيانات سطح المكتب. لا تناقش هذه المقالة تصميم تطبيق الويب.
المفاهيم والمصطلحات
لنبدأ بتعلم بعض المصطلحات والمفاهيم الأساسية. لتصميم قاعدة بيانات مفيدة، يمكنك إنشاء جداول تركز على موضوع واحد. في الجداول الخاصة بك، يمكنك التقاط جميع البيانات اللازمة لهذا الموضوع في الحقول، والتي تحتوي على أصغر وحدة ممكنة من البيانات.
قواعد البيانات الارتباطية |
قاعدة بيانات يتم فيها تقسيم البيانات إلى جداول، والتي تشبه جداول البيانات نوعا ما. يحتوي كل جدول على موضوع واحد فقط، مثل العملاء (جدول واحد) أو منتجات (جدول آخر). |
السجلات والحقول |
تخزين البيانات المنفصلة في جدول. تخزن الصفوف (أو السجلات) كل نقطة بيانات فريدة، مثل اسم العميل. تعزل الأعمدة (أو الحقول) المعلومات التي يتم التقاطها حول كل نقطة بيانات إلى أصغر وحدة ممكنة - قد يكون الاسم الأول عمودا واحدا وقد يكون اسم العائلة آخر. |
المفتاح الأساسي |
قيمة تضمن أن يكون كل سجل فريدا. على سبيل المثال، قد يكون هناك عميلان يحملان نفس الاسم، إليزابيث أندرسن. ولكن أحد سجلات إليزابيث أندرسن يحتوي على الرقم 12 كمفتاح أساسي والآخر لديه مفتاح أساسي يبلغ 58. |
العلاقات بين الأصل والتابع |
العلاقات الشائعة بين الجداول. على سبيل المثال، قد يكون لدى عميل واحد طلبات متعددة. تحتوي الجداول الأصل على مفاتيح أساسية. تحتوي الجداول التابعة على مفاتيح خارجية، وهي قيم من المفتاح الأساسي توضح كيفية ربط سجلات الجدول التابعة بالجدول الأصل. ترتبط هذه المفاتيح بعلاقة. |
ما المقصود بالتصميم الجيد لقاعدة البيانات؟
هناك مبدأان أساسيان لتصميم قاعدة البيانات الجيد:
-
تجنب المعلومات المكررة (تسمى أيضا البيانات المكررة). فهو يضيع المساحة ويزيد من احتمالية حدوث أخطاء.
-
تأكد من صحة البيانات واكتمالها. تتدفق المعلومات غير المكتملة أو الخاطئة في الاستعلامات والتقارير وقد تؤدي في النهاية إلى قرارات خاطئة.
للمساعدة في هذه المشكلات:
-
قسم معلومات قاعدة البيانات إلى جداول مستندة إلى الموضوع مع تركيز ضيق. تجنب تكرار المعلومات في جداول متعددة. (على سبيل المثال، يجب أن تنتقل أسماء العملاء في جدول واحد فقط.)
-
ضم الجداول معا باستخدام المفاتيح بدلا من تكرار البيانات.
-
قم بتضمين العمليات التي تدعم وتضمن دقة وتكامل معلومات قاعدة البيانات.
-
تصميم قاعدة البيانات الخاصة بك مع وضع احتياجات معالجة البيانات وإعداد التقارير في الاعتبار.
لتحسين فائدة قواعد البيانات على المدى الطويل، اتبع خطوات التصميم الخمس التالية:
الخطوة 1: تحديد الغرض من قاعدة البيانات
قبل البدء، يكون لديك هدف لقاعدة البيانات الخاصة بك.
للحفاظ على تركيز التصميم الخاص بك، قم بتلخيص الغرض من قاعدة البيانات والرجوع إلى الملخص في كثير من الأحيان. إذا كنت تريد قاعدة بيانات صغيرة لشركات مستندة إلى المنزل، على سبيل المثال، فقد تكتب شيئا بسيطا، مثل: "تحتفظ قاعدة بيانات العملاء بقائمة بمعلومات العملاء لغرض إنتاج المراسلات والتقارير." بالنسبة لقاعدة بيانات المؤسسة، قد تحتاج إلى فقرات متعددة لوصف متى وكيف سيستخدم الأشخاص في أدوار مختلفة قاعدة البيانات وبياناتها. الإنشاء بيان مهمة محدد ومفصل للإشارة إليه طوال عملية التصميم.
الخطوة 2: البحث عن المعلومات المطلوبة وتنظيمها
اجمع جميع أنواع المعلومات التي تريد تسجيلها، مثل أسماء المنتجات وأرقام الطلبات.
ابدأ بمعلوماتك الحالية وأساليب التعقب. على سبيل المثال، ربما تقوم حاليا بتسجيل أوامر الشراء في دفتر الأستاذ أو الاحتفاظ بمعلومات العملاء في النماذج الورقية. استخدم هذه المصادر لسرد المعلومات التي تلتقطها حاليا (على سبيل المثال، جميع المربعات الموجودة في النماذج). عندما لا تسجل حاليا معلومات مهمة، فكر في المعلومات المنفصلة التي تحتاجها. يصبح كل نوع بيانات فردي حقلا في قاعدة البيانات الخاصة بك.
لا تقلق بشأن جعل قائمتك الأولى مثالية - يمكنك ضبطها بمرور الوقت. ولكن ضع في اعتبارك جميع الأشخاص الذين يستخدمون هذه المعلومات، واطلب أفكارهم.
بعد ذلك، فكر في ما تريده من قاعدة البيانات وأنواع التقارير أو المراسلات التي تريد إنتاجها. بعد ذلك، تأكد من التقاط المعلومات المطلوبة لتحقيق هذه الأهداف. على سبيل المثال، إذا كنت تريد تقريرا يعرض المبيعات حسب المنطقة، فأنت بحاجة إلى التقاط بيانات المبيعات على المستوى الإقليمي. حاول تخطيط التقرير بالمعلومات الفعلية كما تريد رؤيتها. بعد ذلك، قم بإدراج البيانات التي تحتاجها لإنشاء التقرير. قم بنفس الشيء للمراسلات أو المخرجات الأخرى التي تريدها من قاعدة البيانات.
مثال
لنفترض أنك تمنح العملاء الفرصة للاشتراك في (أو خارج) تحديثات البريد الإلكتروني الدورية، وتريد طباعة قائمة بالأشخاص الذين اشتركوا في الاشتراك. تحتاج إلى عمود إرسال بريد إلكتروني في جدول العميل، مع القيم المسموح بها من نعم ولا.
بالنسبة لأولئك الذين يرغبون في تلقي رسائل البريد الإلكتروني، تحتاج إلى عنوان بريد إلكتروني، والذي يتطلب أيضا حقلا. إذا كنت تريد تضمين تحية مناسبة (مثل السيد أو السيدة أو السيدة)، فبادر بتضمين حقل تحية. إذا كنت تريد معالجة العملاء باسمهم الأول في رسائل البريد الإلكتروني، فأضف حقل First Name.
تلميح: تذكر تقسيم كل جزء من المعلومات إلى أصغر جزء مفيد لها، مثل الاسم الأول واسم العائلة لجدول العميل. بشكل عام، إذا كنت تريد الفرز أو البحث أو الحساب أو التقرير استنادا إلى عنصر معلومات (مثل اسم عائلة العميل)، فيجب وضع هذا العنصر في حقله الخاص.
الخطوة 3: تقسيم المعلومات إلى جداول
قسم عناصر المعلومات إلى كيانات أو مواضيع رئيسية، مثل المنتجات والعملاء والطلبات. يصبح كل موضوع جدولا.
بعد الحصول على قائمة المعلومات المطلوبة، حدد الكيانات الرئيسية (أو الموضوعات) التي تحتاجها لتنظيم بياناتك. تجنب تكرار البيانات عبر الكيانات. على سبيل المثال، قد تبدو القائمة الأولية لقاعدة بيانات مبيعات المنتج كما يلي:
الكيانات الرئيسية هي: العملاء والموردين والمنتجات والطلبات. لذا ابدأ بهذه الجداول الأربعة: واحد للحقائق حول العملاء، واحد لحقائق حول الموردين، وما إلى ذلك. قد لا يكون هذا التصميم النهائي الخاص بك، ولكنه نقطة بداية جيدة.
ملاحظة: تحتوي أفضل قواعد البيانات على جداول متعددة. تجنب إغراء وضع جميع المعلومات الخاصة بك في جدول واحد. يؤدي هذا إلى معلومات مكررة وحجم أكبر لقاعدة البيانات وزيادة الأخطاء. تصميم لتسجيل كل حقيقة مرة واحدة فقط. إذا وجدت نفسك تكرر المعلومات، مثل عنوان المورد، فعاودت هيكلة قاعدة البيانات لوضع هذه المعلومات في جدول منفصل.
لفهم سبب وجود المزيد من الجداول بشكل أفضل من أقل، ضع في اعتبارك الجدول الموضح هنا:
يحتوي كل صف على معلومات حول كل من المنتج والمورد الخاص به. نظرا لأنه قد يكون لديك العديد من المنتجات من نفس المورد، يجب تكرار اسم المورد ومعلومات العنوان عدة مرات. وهذا أمر مهدر لمساحة القرص. بدلا من ذلك، سجل معلومات المورد مرة واحدة فقط في جدول موردين منفصل ثم اربط هذا الجدول بجدول المنتجات.
تظهر مشكلة ثانية في هذا التصميم عندما تحتاج إلى تعديل معلومات حول المورد. لنفترض أنك بحاجة إلى تغيير عنوان المورد. ولإنه يظهر في عدة أماكن، قد تقوم بتغيير العنوان في مكان عن طريق الخطأ وتنسى تغييره في الجداول الأخرى. تسجيل عنوان المورد في مكان واحد فقط يحل هذه المشكلة.
وأخيرا، لنفترض أن هناك منتجا واحدا فقط يوفره Coho Winery، وتريد حذف المنتج مع الاحتفاظ باسم المورد ومعلومات العنوان. باستخدام هذا التصميم، كيف يمكنك حذف سجل المنتج دون فقدان معلومات المورد أيضا؟ لا يمكنك. نظرا لأن كل سجل يحتوي على حقائق حول منتج بالإضافة إلى حقائق حول مورد، فمن المستحيل حذف أحدها دون حذف الآخر. للحفاظ على هذه الحقائق منفصلة، قم بتقسيم هذا الجدول إلى جدولين: الأول لمعلومات المنتج والثاني لمعلومات المورد. بعد ذلك، عند حذف سجل منتج، فإنك تحذف فقط الحقائق حول المنتج - وليس الحقائق المتعلقة بالمورد.
الخطوة 4: تحويل عناصر المعلومات إلى أعمدة
حدد المعلومات التي تحتاج إلى تخزينها في كل جدول. تصبح هذه الأجزاء المنفصلة من البيانات حقولا في الجدول. على سبيل المثال، قد يتضمن جدول الموظفين حقولا مثل اسم العائلة والاسم الأول وتاريخ التوظيف.
بعد اختيار الموضوع لجدول قاعدة بيانات، يجب أن تخزن الأعمدة الموجودة في هذا الجدول الحقائق حول هذا الموضوع الفردي فقط. على سبيل المثال، يجب أن يخزن جدول المنتج الحقائق حول المنتجات فقط - وليس حول مورديها.
لتحديد المعلومات التي يجب تعقبها في الجدول، استخدم القائمة التي أنشأتها سابقا. على سبيل المثال، قد يتضمن جدول العملاء: الاسم الأول واسم العائلة والعنوان وإرسال البريد الإلكتروني والتحية وعنوان البريد الإلكتروني. يحتوي كل سجل (عميل) في الجدول على نفس مجموعة الأعمدة، لذلك تقوم بتخزين نفس المعلومات بالضبط لكل عميل.
الإنشاء قائمتك الأولى، ثم راجعها وصقلها. تذكر تقسيم المعلومات إلى أصغر الحقول الممكنة. على سبيل المثال، إذا كانت قائمتك الأولية تحتوي على العنوان كحقل، فقسم ذلك إلى عنوان الشارع والمدينة والولاية والرمز البريدي - أو، إذا كان عملاؤك عموميين، إلى المزيد من الحقول. بهذه الطريقة، على سبيل المثال، يمكنك إجراء مراسلات بالتنسيق المناسب أو الإبلاغ عن الطلبات حسب الحالة.
بعد تحسين أعمدة البيانات في كل جدول، تصبح جاهزا لاختيار المفتاح الأساسي لكل جدول.
الخطوة 5: تحديد المفاتيح الأساسية
اختر المفتاح الأساسي لكل جدول. يعرف المفتاح الأساسي، مثل معرف المنتج أو معرف الطلب، كل سجل بشكل فريد. إذا لم يكن لديك معرف واضح وفريد، فاستخدم Access لإنشاء معرف لك.
تحتاج إلى طريقة لتعريف كل صف بشكل فريد في كل جدول. هل تتذكر المثال السابق الذي يحمل فيه عميلان نفس الاسم؟ نظرا لأنهم يشاركون اسما، فأنت بحاجة إلى طريقة لتعريف كل اسم بشكل منفصل.
لذلك يجب أن يتضمن كل جدول عمودا (أو مجموعة من الأعمدة) يعرف كل صف بشكل فريد. يسمى هذا المفتاح الأساسي وغالبا ما يكون رقما فريدا، مثل رقم معرف الموظف أو رقم تسلسلي. يستخدم Access المفاتيح الأساسية لإقران البيانات بسرعة من جداول متعددة ولجمع البيانات معا من أجلك.
في بعض الأحيان يتكون المفتاح الأساسي من حقلين أو أكثر. على سبيل المثال، قد يستخدم جدول تفاصيل الطلب الذي يخزن عناصر الأسطر للطلبات عمودين في مفتاحه الأساسي: معرف الطلب ومعرف المنتج. عندما يستخدم المفتاح الأساسي أكثر من عمود واحد، يطلق عليه أيضا مفتاح مركب.
إذا كان لديك بالفعل معرف فريد للمعلومات الموجودة في جدول، مثل أرقام المنتجات التي تحدد كل منتج بشكل فريد في الكتالوج، فاستخدم ذلك، ولكن فقط إذا كانت القيم تفي بهذه القواعد للمفاتيح الأساسية:
-
سيكون المعرف دائما مختلفا لكل سجل. لا يسمح بالقيم المكررة في مفتاح أساسي.
-
هناك دائما قيمة للعنصر. يجب أن يحتوي كل سجل في الجدول على مفتاح أساسي. إذا كنت تستخدم أعمدة متعددة لإنشاء المفتاح (مثل جزء العائلة ورقم الجزء)، فيجب أن تكون كلتا القيمتين موجودة دائما.
-
المفتاح الأساسي هو قيمة لا تتغير. نظرا لأن المفاتيح يشار إليها بواسطة جداول أخرى، فإن أي تغيير في مفتاح أساسي في جدول واحد يعني تغييرا في كل مكان يشار إليه فيه. تزيد التغييرات المتكررة من مخاطر الأخطاء.
إذا لم يكن لديك معرف واضح، فاستخدم رقما عشوائيا وفريدا كمفتاح أساسي. على سبيل المثال، يمكنك تعيين رقم طلب فريد لكل طلب لغرض وحيد هو تحديد الطلب.
تلميح: لإنشاء رقم فريد كمفتاح أساسي، أضف عمودا باستخدام نوع بيانات الترقيم التلقائي. يقوم نوع بيانات الترقيم التلقائي تلقائيا بتعيين قيمة رقمية فريدة لكل سجل. لا يحتوي هذا النوع من المعرف على معلومات واقعية تصف الصف الذي يمثله. إنه مثالي للاستخدام كمفتاح أساسي لأن الأرقام لا تتغير - على عكس المفتاح الأساسي الذي يحتوي على حقائق حول صف، مثل رقم هاتف أو اسم عميل.