تعلم قواعد بيانات SQL Database
1.76K subscribers
75 photos
3 videos
24 files
32 links
تعلم وعلم غيرك في قواعد بيانات SQL Database
تحليل وتصميم قواعد بيانات
وبرمجه مواقع اخبارية
Download Telegram
SQL طريقة تصميم قاعدة بيانات من الصفر
 معرفة المعلومات الأساسية التي يجب تخزينها في المشروع
 مرحلة تحديد كيفية تخزين المعلومات في قاعدة البيانات
 مرحلة تصميم و إنشاء قاعدة البيانات
 مرحلة إدخال البيانات في قاعدة البيانات
 أمثلة شاملة حول استرجاع البيانات
👍3
ماهي افضل طريق لشرح المراحل هل ننزل على مرحله مرحله او ننزل الكل في ملف واحد
👍31
Channel name was changed to «تعلم البرمجه SQL Database»
Channel name was changed to «تعلم قواعد بيانات SQL Database»
اولا:معرفة المعلومات الأساسية التي يجب تخزينها في المشروع
عندما يطلب منك العميل تصميم قاعدة بيانات لأي مشروع و لنفرض أنه يريد قاعدة بيانات لمدونة, عليك معرفة ما الذي يريد من هذه المدونة بالضبط حتى تعرف كيف تبني قاعدة البيانات الخاصة بها و في حال وجدت أنه لا يعرف كل المعلومات التي يجب تخزينها - و هذا شيء طبيعي جداً - يمكنك أن تقترح عليه أفكار مرت معك سابقاً لتساعده في تحديد ما يريده بالضبط.

فمثلاً قد تجد العميل يقول لك: "أريد فقط مدونة لأنشر بها مقالات كل فترة".
هذه المعلومة لا تكفي حتى تبني قاعدة البيانات بالشكل الذي يتخيله العميل, لذلك هنا من الطبيعي أن تبدأ بسؤاله بشكل أدق عن الذي يريد أن تحتويه المدونة من مميزات حتى تعرف كيف ستبني قاعدة بيانات المدونة و إليك بعض الأسئلة التي قد تطرحها عليه لتعرف كيف ستبنيها:
•هل ستكون الشخص الوحيد الذي يمكنه كتابة المقالات؟
•هل تريد أن تكون مسؤول عن تعيين المدونيين و الموافقة على المقالات التي سينشروها؟
•هل تريد جعل زوار الموقع قادرين على وضع تعليقات على المقالات؟
•هل تريد إجبار الزوار على تسجيل الدخول حتى يتمكنوا من وضع التعليقات؟
•هل تريد تريد جعل الشخص المسجل في الموقع يصله رسالة على بريده الإلكتروني عندما تنشر مقالات جديدة؟
•هل سيكون المستخدم قادر على وضع صورة شخصية؟
•هل سيكون المستخدم قادر على وضع نبذة تعريفية عن نفسه؟
•ما هي الطرق التي تريد إعمتادها لجعل المستخدم يسترجع حسابه في حال نسي كلمة مروره؟
•هل سيكون المستخدم قادر على تسجيل الدخول بواسطة حسابه في فيسبوك أو تويتر؟
يمكنك أن تطرح عليه عدد غير محدد من الأسئلة و من بعدها يمكنك البدء بوضع خطة لبناء قاعدة البيانات الخاصة بهذه المدونة.
👍2
طبعاً مرحله معرفة المعلومات الأساسية وجمع المعلومات تعتبر اهم مرحله لانها تعتبر المرحله الت سوف تبني المرحلات الاخرى عليهم فلابد ان نحاول بقدر المستطاع بجمع كل المعلومات لكي يسهل علينا بنا قاعده بيانات ممتازه وسهله
👍1
للتوضيح اكثر حول تعريف تصميم قاعدة البيانات؟
تصميم قاعدة البيانات عبارة عن مجموعة من الخطوات التي تساعد في إنشاء أنظمة إدارة بيانات الأعمال وتنفيذها وصيانتها. الغرض الأساسي من تصميم قاعدة بيانات هو إنتاج نماذج مادية ومنطقية للتصاميم لنظام قاعدة البيانات المقترح.
👍1
ما هو التصميم الجيد لقاعدة البيانات؟
قواعد محددة تحكم عملية تصميم قاعدة بيانات جيدة. القاعدة الأولى في إنشاء تصميم قاعدة بيانات هي تجنب تكرار البيانات. إنه يهدر المساحة ويزيد من احتمال حدوث أخطاء وتناقضات داخل قاعدة البيانات. القاعدة الثانية هي أن دقة المعلومات وشمولها أمر حتمي. ستؤدي قاعدة البيانات التي تحتوي على معلومات خاطئة إلى تحليل وتقارير غير دقيقين. وبالتالي ، يمكن أن يضلل صناع القرار ويؤثر سلبًا على أداء الشركة. لذلك ، من الضروري مراعاة قواعد الأشياء عند تصميم قاعدة البيانات لمؤسستك.
لذا ، كيف يمكنك التأكد من أن تصميم قاعدة البيانات الخاصة بك جيد؟ قاعدة البيانات جيدة التصميم هي تلك التي:
• يوزع بياناتك في جداول بناءً على نطاقات موضوعات محددة لتقليل تكرار البيانات
• يسلم قاعدة البيانات المعلومات اللازمة لربط البيانات في الجداول
• يوفر الدعم ويضمن دقة وموثوقية البيانات
• يلبي متطلبات معالجة المعلومات وإعداد التقارير الخاصة بك
• وظائف تفاعلية مع مشغلي قاعدة البيانات
👍2
هذه التوضيحات والتعاريف مستنبطه من تجارب لمبرمجين ذو خبره عاليه في مجال تصميم وتحليل قواعد البيانات لكي تبدا في البرمجه في قواعد البيانات حاول ان تلم بهذه الاشياء
👍4
ان شاء الله سوف نشتغل على تحليل وتصميم وبرمجه اكثر من قاعده بيانات
اذا ممكن تشاركوا الرابط لجميع الطلاب الذين تعرفوهم لكي يستفيدو ونحصل تفاعلات ومشاركات تحفزنا على عمل اكثر من قاعده بيانات
https://t.me/sql_asp_project هذا رابط القروب
وهذا رابط قروب الاستفسارات والمقترحات والمشاركات
https://t.me/+S1J3vlOLx3czNTFk
👍21
مرحلة تحديد كيفية تخزين المعلومات في قاعدة البيانات
بعدما أبلغك العميل بكل تفاصيل مشروعه, يصبح عملك الآن هو معرفة كيف ستبني قاعدة البيانات الخاصة بهذا المشروع حتى تخزن المعلومات التي سيدخلها أي شخص يستخدم المدونة بشكل صحيح و مرتب.

لنفترض أن العميل أراد حفظ المعلومات التالية في المدونة:

معلومات كل مستخدم (إسمه, إسم المستخدم الخاص به, كلمة المرور, بريده الإلكتروني, تاريخ ميلاده, رقم هاتفه, جنسه, صورته, إسم بلده, دوره في المدونة, تعليقاته).
معلومات كل مقال (عنوانه, محتواه, تصنيفه, إسم الكاتب, تاريخ نشره, هل يسمح بوضع تعليقات عليه أم لا).

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

العمود الأول إسمه first_name و نوعه VARCHAR.
العمود الأول إسمه last_name و نوعه VARCHAR.
ملاحظة: لو أراد العميل تخزين إسم الأب أيضاً, يمكن إضافة عمود ثالث إسمه father_name و نوعه VARCHAR أيضاً.


2- إسم المستخدم username الخاص بكل شخص يجب أن يكون نوعه VARCHAR و UNIQUE لأنه لا يجب وجود أكثر من شخص عندهم نفس إسم المستخدم.


3- كلمة السر password الخاصة بكل شخص يمكن حفظها بعدة أشكال مع الإشارة إلى أننا دائماً نحفظها بشكل مشفر حتى لا يتمكن أي أحد من معرفتها.
على حسب نوع التشفير الذي تختاره في مشروعك تقوم بتحديد خصائص العمود الذي ستحفظ فيه كلمات المرور المشفرة.
إذا افترضنا أننا سنعتمد على تشفير إسمه MD5 فهنا سيكون عدد أحرف كل كلمة مرور مشفرة هو 32 حرف بالضبط مهما كان حجم كلمة المرور الأصلية.
لذلك سنقوم بجعل نوع العمود CHAR و تحديد أنه يتألف من 32 حرف بالضبط لأن حقوله دائماً ستحتوي على هذا العدد من الأحرف.


4- birthdate يجب أن يكون نوعه DATE.


5- رقم هاتف الشخص phone يمكن جعل نوعه INT و لكن هل نحن بحاجة لأن يكون كذلك؟
الجواب هو كلا, لأننا لن نجري عليه أي عملية خاصة بالأرقام و نريد أن يتم حفظه كما تم إدخاله بالضبط و هذا الأمر مستحيل إن كان نوع العمود INT.
فمثلاً, إن كان رقم هاتف المستخدم قد يتضمن رموز مثل +961711731343 و هذا الأمر ممنوع في حال كان نوع العمود INT.
أيضاً قد يتضمن اصفاراً من الناحية اليسرى مثل 00961711731343 و هذا الأمر ممنوع كذلك في حال كان نوع العمود INT.

لهذا السبب العمود phone يجب أن يكون نوعه VARCHAR لأنه سيضمن حفظ الرقم كما تم إدخاله.


6- جنس الشخص يمكنك أن تفعله بطريقتين على حسب حاجتك:

يمكنك تسمية العمود الخاص بجنس الشخص is_male و تجعل نوعه BOOLEAN و عندها إذا كان المستخدم ذكر تخزن القيمة True و إذا كان المستخدم أنثى تخزن القيمة False.

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

في الجدول photos يجب أن تضع عمود خاص لتضع id الشخص الذي هو صاحب هذه الصورة حتى تربطها به.


8- بلد الشخص قد يتكرر بشكل كبير, لذا لتجنب تكرار إسم البلد سنقوم بإنشاء جدول إسمه countries و فيه نضع أسماء البلدان, و عندها لتحديد بلد أي مستخدم نضع رقم id البلد.


9- دور الشخص في المدونة سيتكرر حتماً و بشكل كبير, لذا جميع الأدوار التي ممكن إعطاءها للمستخدمين سنضع أسماءها في جدول خاص إسمه roles و عندها لتحديد دور أي مستخدم نضع رقم id الدور الذي سنعطيه له.


10- تعليقات الشخص تتطلب معاملة خاصة لإدارتها لأنه يمكن للمستخدم أن يضع أكثر من تعليق على نفس المقال و يمكن له أن يضع تعليق يكون بمثابة رد على تعليق مستخدم آخر. لذا الحل الأفضل و الأمثل لحفظ التعليقات هو إنشاء جدول خاص إسمه comments و هذا الجدول نجعله قادر على ربط التعليقات نفسها ببعضها بأسلوب Self Join حتى نتمكن من جعل التعليقات تابعة لبعضها و إظهارها كردود.
12- عنوان المقال title يجب أن يكون نوعه VARCHAR.
13- محتوى المقال content يجب أن يكون نوعه VARCHAR كبير جداً أو أي نوع نصي يمكن أن يتقبل أكبر عدد ممكن من الأحرف.

13- تصنيف المقال قد يتكرر بشكل كبير, لذا لتجنب تكرار إسم التصنيف سنقوم بإنشاء جدول إسمه categories و فيه نضع أسماء التصنيفات, و عندها لتحديد تصنيف أي مقال نضع رقم id الصنف الذي يعتبر المقال تابع له.


14- تاريخ نشر المقال
تاريخ النشر publishing_date يجب أن يكون نوعه DATE.


15- إمكانية التعليق أم لا
يمكنك تسمية العمود الخاص بالسماح بوضع تعليقات أم لا are_comments_enabled و تجعل نوعه BOOLEAN و عندها إذا كان يسمح بوضع تعليقات تخزن القيمة True و إذا كان لا يسمح تخزن القيمة False.
1👍1
هذ الصور لجميع الجداول حسب التحليل بالامكان كل واحد يعمل تعديلات على بعض العلاقات حسب رايه الاهم انه تبدا في العملي
👍4
SQL blog انشاء قاعده بيانات في.sql
4.4 KB
هذه قاعده البيانات في SQL والذي يضهر لديه اخطا يحاول يحلها او يرسل الخطا وان شاء الله نساعده اذا طبقت سوف تستفيد بالامكان تنشاء على جدول جدول
1👍1
ماهي أهمية تصميم قواعد البيانات ولماذا تعتبر من المراحل المهمه في بنا اي نظام
اسئله كثير سوف نلخصها في هذه الفقرات

1-يحدد تصميم قاعدة البيانات بنية قاعدة البيانات المستخدمة لتخطيط المعلومات وتخزينها وإدارتها. لضمان دقة البيانات ، يجب عليك تصميم قاعدة بيانات تخزن فقط المعلومات ذات الصلة والقيمة.

2-تعد قاعدة البيانات المصممة جيدًا ضرورية لضمان اتساق المعلومات ، والقضاء على البيانات الزائدة عن الحاجة ، وتنفيذ الاستعلامات بكفاءة ، وتحسين أداء قاعدة البيانات. سيوفر لك النهج المنهجي نحو تصميم قاعدة بيانات الوقت في مرحلة تطوير قاعدة البيانات.
3-تعتمد موثوقية البيانات على بنية الجدول ، بينما يضمن إنشاء مفاتيح أولية وفريدة التوحيد في المعلومات المخزنة. يمكنك تجنب تكرار البيانات عن طريق تكوين جدول للقيم المحتملة واستخدام مفتاح للإشارة إلى القيمة. لذلك ، يحدث التغيير مرة واحدة فقط في الجدول الرئيسي كلما تغيرت القيمة.
4-نظرًا لأن الأداء العام يعتمد على التصميم ، فإن التصميم الجيد لقاعدة البيانات يستخدم استعلامات بسيطة وتنفيذًا أسرع. أيضًا ، من السهل صيانتها وتحديثها. من ناحية أخرى ، عندما تكون قاعدة البيانات سيئة التصميم ، قد تؤدي المقاطعات البسيطة حتى إلى الإضرار بالأحداث المخزنة ، والمشاهدات ، والمرافق.
👍3
ماذا تعرف عن دورة حياة تطوير قواعد البيانات؟
https://t.me/sql_asp_project الرجاء مشاركه الرابط لكي ينظم عدد كبير من الطلاب والمبرمجين الذي لديهم رغبه في الخوض في بنا قواعد بيانات محترفه
👍1
الاشياء هذه اغلبها نظري ولاكنها اساس العملي في تحليل وفهم قواعد البيانات لكي تستطيع عمل قاعده بيانات او تحلل او تفهم قاعده بيانات موجوده
👍1
دورة حياة تطوير قواعد البيانات
هناك مراحل مختلفة في تطوير قاعدة البيانات. ومع ذلك ، ليس من الضروري اتباع كل خطوة بالتسلسل. يمكن تقسيم دورة الحياة إلى ثلاث مراحل
1- تحليل المتطلبات
2- تصميم قواعد البيانات
3- التنفيذ
👍1