تقبل الله منا ومنكم الصيام والقيام، وصالح العمل
وكل عام وانتم بخير
مذكرات حول تصمبم قواعد البيانات وتطبيقاتها الجزاء الأول
مذكرات حول تصمبم قواعد البيانات وتطبيقاتها الجزاء الثاني
استغفر الله الذي لا إله إلا هو الحي القيوم و أتوب إليه
تقبل الله منا ومنكم الصيام والقيام، وصالح العمل
وكل عام وانتم بخير
مذكرات حول تصمبم قواعد البيانات وتطبيقاتها الجزاء الأول
مذكرات حول تصمبم قواعد البيانات وتطبيقاتها الجزاء الثاني
استغفر الله الذي لا إله إلا هو الحي القيوم و أتوب إليه
كل عاام وانتم بخير
تقبل الله منا ومنكم صالح الأعمال إن شاء الله....
متأخرة شويتين... :rose:
تم تعديل هذه المشاركة بواسطة same7_mo3az في 21 سبتمبر 2009 في 19:35
السلام عليكم ورحمة الله وبركاته
تقبل الله صيامكم وبارك لكم بالعيد واعاده عليكم باليمن والبركات
الاستاذ أحمد مبارك الحيقي
كل عام وانت بالف خير وعافية
اشكرك على هذه المذكرات والتي فعلا كتبت باسلوب اكثر من رائع
مذكراتك هي مايشغلني خلال ايام العيد خصوصاً واني لم اطلع عليها الا مؤخراً
اشكرك مرة اخرى
مالك المقطري
malekyem@yahoo.com
تم تعديل هذه المشاركة بواسطة malekyem في 22 سبتمبر 2009 في 12:38
أخى مالك المقطرى
مرحباً بك مطالعاً ومشاركاً فعالاً معنا فى هذه السلسلة وأعاد الله عليك العيد بكل الخير.
تحياتى
محمد ندا
... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...
تقبل الله منا ومنكم وثبتنا وإياكم على طاعته بعد رمضان وزادنا قربا منه وعملا له
( الحقوا اقروا التهانى قبل مايشيلوها )
:)
أخوكم
slave
{العلم قبل العمل} ... مذكرات حول قواعد تصميم البيانات .
خير الناس أنفعهم للناس
مشكور ويعطيك العافية على الموضوع
رقم الحلقة (34)
السلام عليكم إخوتي الكرام، ومرحباً بكم مرة أخرى... أرجو ألا تكونوا قد مللتم طول السلسلة.
قبل أن أواصل الحديث عن مبادئ SQL ربما يجدر بي الإشارة إلى أن الأستاذ العزيز يوسف أحمد قد أشار علي قبل فترة بتجميع المذكرات في كتاب، وقد طلبت منه أن يمهلني فترة لتجميع الحلقات، خاصة أن معظمها عندي مكتوبة في ملفات وورد، ما عدا ملفاً يحوي بضع حلقات نسيته في جهاز آخر لا أستطيع الوصول إليه الآن. وجود الملفات الأصلية يسهل من ناحية الصور. لقد انشغلت بعدها على كل حال، لكن لعل الله ييسر في الأيام القادمة.
والآن، مرة أخرى إلى عالم SQL...
تذكير سريع
===========
عرفنا كيف أن SQL هي لغة قواعد البيانات العلائقية، وقواعد البيانات العلائقية هي مجموعات من الجداول، والجدول هو مجموعة من الأعمدة ومجموعة من الصفوف. أشهر أمر في SQL، وهو SELECT يستخدم في اختيار مجموعة من (أو كل) أعمدة جدول. تستطيع تصفية صفوف هذه الأعمدة المستعادة باستخدام المقطع WHERE. فكرة التصفية هي تحديد شرط أو أكثر، حيث يقارن كل شرط قيم حقل بطريقة أو بأخرى مع قيم محددة. تختلف طريقة المقارنة حسب نوع بيانات الحقل، وحسب فكرة الشرط (هل تساوي قيمة حقل قيمة ما أو تقع بين قيمتين مثلاً). كما مررنا ببعض طرق تحديد عدد الصفوف المستعادة باستبعاد القيم المكررة في حقل، وبتحديد عدد مطلق (أو نسبة مئوية) للصفوف المستعادة، وفي أثناء ذلك، عرفنا كيف يمكن أيضاً ترتيب الصفوف المستعادة حسب قيم حقل أو أكثر. لاحظ من فضلك أن كل السابق كان في سياق الحديث عن أول نوع من عمليات معالجة البيانات، وهو الاستعلام (تبعاً للتصنيف الشائع بتقسيم لغة SQL إلى جزء خاص بمعالجة البيانات، يسمى لغة معالجة البيانات DML، وجزء خاص بتعريف هياكل البيانات، يسمى DDL). إذا كنت تشعر أن بعض السطور السابقة غير واضح، فمن الأفضل مراجعة الحلقات القليلة السابقة، أو القراءة في أي مرجع للغة SQL (وما أكثرها).
في كثير من الأحيان، لا نريد سرد صفوف الجدول سرداً، حتى بعد تصفيتها، وترتيبها. في كثير من الأحيان، يكون ما نحتاج إليه هو خلاصات لهذه البيانات. مثلاً، أنت لا تريد أسماء موظفي كل قسم، ولكن تريد عددهم. ولا تحتاج إلى مطالعة تفاصيل كل فاتورة، ولكن تريد إجمالي كل فاتورة. نستخدم الدوال لاستخراج هذه الخلاصات، لكننا غالباً ما نلجأ إلى فرز وتجميع الصفوف في مجموعات، ولا نستخدم الدوال على كامل الجدول.
قبل عرض فكرة التجميع، ودوال التجميع، أرى أنه من المفيد هنا من أجل متابعة سليمة أن أتطرق إلى مفهوم الدوال بصورة عامة، ما دمنا نتحدث عن المبادئ، وما دامت الدورة موجهة أساساً للمبتدئين.
مفهوم الدالة
============
في الرياضيات، الدالة هي علاقة بين مجموعتين من القيم. أنت تعطي قيمة من المجموعة الأولى، والعلاقة تحدد قيمة من المجموعة الثانية، لذلك تسمى المجموعة الأولى منطلق الدالة، والثانية مستقرها. هذه العلاقة تتنوع تنوعاً هائلاً. قد تكون العلاقة هي التربيع، فنحصل على دالة التربيع: تعطي الدالة قيمة، فترد لك مربع القيمة. مثلاً، لنسم هذه الدالة sqr. هذا الاسم لا يكفي؛ يجب تحديد قيمة من منطلق الدالة من أجل استعادة قيمة من مستقرها. يتم ذلك اصطلاحاً بتحديد هذه القيمة بين قوسين بعد اسم الدالة، كالتالي ()sqr. نتيجة تطبيق هذه الدالة على هذا الرقم هي 9، فنكتب sqr(3) = 9.
في عالم البرمجة، مفهوم الدوال مشابه. العلاقة التي تمثل الدالة هنا هي برنامج كامل (لكنه صغير غالباً) يقوم بعملية الربط بين القيمة المعطاة، والقيمة المستعادة. مثال صغير ربما يجعل النقاش أكثر وضوحاً:
توفر لغة VBA دالة تسمى Len، وهي تأخذ قيمة نصية، وتعيد عدد حروف النص. تستخدم هذه الدالة كالتالي:
Dim lngLength As Long
lngLength = Len("SQL")يحوي المتغير lngLength بعد تنفيذ السطر السابق القيمة 3، وهي عدد حروف النص "SQL". لاحظ هنا التالي:
1. الدالة لها اسم، وتأخذ قيمة بين قوسين.
2. الدالة تعيد قيمة، ولأننا مبرمجين نستخدم الحاسوب، ولسنا رياضيين نستخدم الأوراق، نحتاج إلى متغير لحفظ هذه القيمة المعادة، ولذلك عرفنا متغيراً اسمه lngLength لاستقبال نتيجة تطبيق الدالة Len على القيمة النصية SQL"".
3. العلاقة بين القيمة النصية والقيمة المعادة هي أن القيمة المعادة هي عدد حروف القيمة النصية، لكن من حدد هذه العلاقة؟ وكيف يتم تطبيقها؟ كما قلت قبل قليل، هذه العلاقة هي في الحقيقة برنامج صغير قد سبقت ترجمته، وهو محفوظ مع عدد كبير من البرامج (الدوال) في ملف واحد. هذا الملف يسمى مكتبة. مزيد من التفاصيل في هذا الصدد فيما بعد إن شاء الله، إن قدر لنا الحديث مبادئ البرمجة. في برامجك، من الممكن أن تكتب دوالك الخاصة من أجل استخدامها فيما بعد، ولكنك تستعين كثيراً بالدوال الجاهزة التي توفرها لغة البرمجة التي تستخدمها.
في لغات البرمجة، قد تستقبل الدالة أكثر من قيمة، لكنها تعيد دائماً قيمة واحدة. بالمناسبة، تسمى القيم التي تستقبلها الدالة معاملات (parameters).
لغة SQL أيضاً توفر لك العديد من الدوال، بعضها تستخدم في شروط المقطع WHERE من أجل المقارنة، وبعضها تستخدم في مقطع الأمر SELECT من أجل تطبيق عملية ما على الحقول المستعادة، وبعضها من أجل توفير تلخيص للبيانات. أشرنا سابقاً إلى أن التعامل في SQL يتم على أساس أعمدة (حقول) وصفوف (سجلات). ولهذا لك أن تتوقع أن الدوال في هذه اللغة تطبق على مستوى الأعمدة، وهذا يعني أن معاملها اسم عمود (مع معاملات أخرى ربما حسب نوع الدالة).
مثال:
الدالة count()، تستقبل اسم حقل (أو أكثر)، وتعيد عدد الصفوف التي تحوي قيماً غير خالية في هذا الحقل. إذا أردت عدد الصفوف بشكل عام، حتى تلك التي تحوي قيماً خالية، استخدم النجمة مكان اسم الحقل. مثلاً، العبارة التالية:
SELECT COUNT(empPhone) FROM tblEmployee
يعيد حقلاً واحداً وصفاً واحداً يحوي القيمة 4 (لماذا؟)، في حين أن العبارة:
SELECT Count(empName) FROM tblEmployee
تعيد العدد 14، ومثلها العبارة
SELECT Count(*) FROM tblEmployee
هذه الدالة مثال على ما يسمى دوال تجميع SQL Aggregation Functions (ابحث عن هذا الاسم في ملفات مساعدة أكسس)، ومعها دوال مثل Avg()، First()، Last()، Min()، Max()، وبالطبع الدالة الشهيرة Sum(). هناك أنواع أخرى من الدوال تستخدم في معالجة النصوص والتواريخ على سبيل المثال. دعونا أولاً نركز على دوال التجميع من أجل تقديم مفهوم التجميع في الحلقة القادمة بإذن الله. الفكرة كلها في أنك كثيراً من الأحيان لن تحتاج إلى تطبيق دالة مثل مجموع قيم حقل (sum()) على جدول كامل بشكل عام. مثال على هذا، تستطيع الحصول على مجموع إجمالي كل الفواتير من جدول تفاصيل الفواتير باستخدام مثل هذه العبارة:
SELECT SUM(InvDetQty * InvDetPrice) FROM tblInvoiceDetails
لكن من الصعب أن يطلب أحد مثل هذا الاستعلام، لأنه يعيد قيمة واحدة هي مجموع إجماليات كل الفواتير في تاريخ المنشأة! حتى مع تقييد الاستعلام بتاريخين مثلاً، نحن نريد عادة مجموع إجمالي تفاصيل كل فاتورة على حدة، وليس مجموع إجماليات تفاصيل جميع الفواتير. من هنا جاء مفهوم التجميع، الذي أعرض له إن شاء الله في حلقة قادمة.
السؤال المعتاد: هل من سؤال؟
الجواب المعتاد: -_-
أمزح طبعاً!
(يتبع إن شاء الله)...
تم تعديل هذه المشاركة بواسطة أحمد مبارك الحيقي في 30 سبتمبر 2009 في 21:02
السلام عليكم ورحمة الله وبركاته
عوداً حميداً أخى الحبيب أحمد مبارك .. لقد فكرت أن أرسل لك بريداً بالأمس للإطمئنان عليك ولكنى أرجأت ذلك وقلت لعلنا نرى له طله فى المنتدى باكر .. وقد حدث.
أهلاً بك مرة أخرى
تحياتى
محمد ندا
... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...
السلام عليكــم ورحمـة الله وبركاتــه ،،
عوداا مباركا أستاذنا الحبيب أحمد ..
أعود لقرآآآءة الحلقة
عوداً حميداً أخى الحبيب أحمد مبارك
وجزاك الله الف خير على مواصلة طرح الحلقااات
مذكرات حول تصمبم قواعد البيانات وتطبيقاتها الجزاء الأول
مذكرات حول تصمبم قواعد البيانات وتطبيقاتها الجزاء الثاني
استغفر الله الذي لا إله إلا هو الحي القيوم و أتوب إليه
الاستاذ الخبير أحمد مبارك الحيقي.
مرحبا بعودتك.
بعد ان انتهيت من قراءة الحلقات حقيقة لا اجد ما اقولة لك سوى جزاك الله كل خير.
اجابه على سؤالك المتكرر والذي كلما وضعته زاد فينا الخجل اجيبك واقول لا لست ....
ولكن معكم بإذن الله سنكون .
عدم التفاعل بالمشاركة لايعني ان الموضع لم ياخذ اهميته بل يدل على ان السلاسة في الصياغة لا تدع مجال لطرح الأسئله.
كلنا اذان صاغية.
الاستاذ محمد ندا .
اشكرك على ترحيبك.
فعلا انت مدير رائع لهذا الموضوع واعتقد ان عضو مجتهد ليست كل ما يمكن ان يقال .
تحياتي
مالك المقطري
تم تعديل هذه المشاركة بواسطة malekyem في 1 أكتوبر 2009 في 20:51
أخى الكريم مالك المقطرى
نعم صدقت.اقتباسعدم التفاعل بالمشاركة لايعني ان الموضع لم ياخذ اهميته بل يدل على ان السلاسة في الصياغة لا تدع مجال لطرح الأسئله
أما موضوع عضو مجتهد .. ففى ظل وجود كبار الأساتذة .. فهو بالنسبة لى هو أكثر مما أستحق.
تحياتى لك
محمد ندا
... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...
الإخوة الأعزاء جميعاً، المدير محمد ندا، سامح، sandm: بارك الله فيكم، مسرور للقاكم مرة أخرى، فإن قصرت أو أخطأت فالسماح، وإن وجدتم فائدة فالدعاء، ومن قال جزاك الله خيراً فقد كافأ...
الأخ مالك: يا مرحباً بك، سعيد لوجودك معنا، ودع عنك حكاية الخبير هذه، فكلنا يأخذ ويعطي، والخبير الحقيقي هو من يحسن يأخذ قبل أن يحسن يعطي.
والآن، إلى التجميع...
رقم الحلقة (35)
فكرة التجميع
فكرة التجميع تتعلق بالصفوف: لا تطبق دوال التجميع على كافة الصفوف مرة واحدة، ولكن افرز الصفوف إلى مجموعات، ثم قم بتطبيق الدوال على كل مجموعة على حدة. كيف نفرز الصفوف إلى مجموعات؟ حسب حقل أو أكثر. مثلاً، بفرض أن لدينا جدول فيه بيانات عمال، مع حقل للبلد، في الشكل التالي كل بلد له لون:
بعد تجميع الصفوف حسب حقل البلد، يكون الناتج كالتالي:
لاحظ أن الصفوف المشتركة في حقل البلد تم تجميعها معاً، والترتيب حسب اسم البلد. الآن يمكن تطبيق دالة من دوال التجميع على هذه المجموعات. وعلى فرض أن الدالة كانت دالة العدد COUNT، فإن الناتج يكون كالتالي (صيغة العبارة في مثال لاحق إن شاء الله):
بضع نقاط:
عوداً إلى جدول الموظفين، أعيد وضعه من أجل سهولة المرجع:
ذكرنا في الحلقة السابقة أن التجميع له علاقة بالخلاصات، ومن أجل التمثيل، دعنا نفترض أن المطلوب يتعلق بعدد الموظفين. إذا كنت تريد الحصول على عدد الموظفين إجمالاً، فالعبارة التالية تفي بالغرض:
SELECT COUNT(EmpNo) FROM tblEmployee
لاحظ أنه كان من الممكن استخدام النجمة مكان اسم الحقل EmpNo (وهو أسرع في التنفيذ بالمناسبة)، لكنني اخترت اسم الحقل للتوضيح، ولأن حقل رقم الموظف مفتاح أساسي على كل حال، ونستطيع أن نطمئن إلى أنه يحوي قيمة دائماً (القيم الخالية لا تحسب في الدالة COUNT()). في كثير من الأحيان، لا أحد يطلب خلاصة من هذا النوع، وإنما تكون هذه الخلاصة هي خلاصة الخلاصة. أعني أنه من المحتمل أكثر أن يكون المطلوب هو عدد الموظفين في كل قسم، ثم مجموع عدد الموظفين الكلي. في هذه الحالة، يتم تجميع بيانات الموظفين حسب حقل القسم، ثم يتم عد الموظفين في كل مجموعة (كل قسم هنا). طبعاً الذي يقوم بذلك هو الأكسس، لكن العبارة التي ستخبره بالمطلوب هي كالتالي:
SELECT COUNT(EmpNo) AS [Emp Count], EmpDept FROM tblEmployee GROUP BY EmpDept
الناتج هو:
لاحظ من فضلك التالي:
1. تمت تسمية العدد بـ(Emp Count). تستطيع تسميته بما تريد.
2. الجديد في العبارة السابقة هو المقطع GROUP BY، ويستخدم لطلب تجميع الصفوف، ولتحديد الحقول التي سيتم حسبها التجميع.
3. أي حقل بجانب دالة التجميع، يجب ذكره في المقطع GROUP BY. في حالتنا هذه، الحقل EmpDept تم اختياره بجانب الدالة COUNT في مقطع الأمر SELECT، وتم ذكره في المقطع GROUP BY أيضاً.
النقطة الأخيرة تستحق المزيد من التفصيل. في المثال السابق، تم اختيار العدد واختيار حقل القسم، ولذلك كان لا بد من تكرار حقل القسم في المقطع GROUP BY. هذه هي القاعدة. في هذا المثال، تبدو القاعدة بديهية، وسخيفة، لأنه بالطبع يجب ذكر حقل القسم في المقطع GROUP BY حتى يعرف الأكسس على أي أساس سيتم تجميع الصفوف، لكن في حالات أخرى لا يكون الأمر واضحاً بهذا الشكل، ولذلك كان كسر هذه القاعدة من أكثر أخطاء المبتدئين شيوعاً في استخدام التجميع. أحياناً، يكون بجانب دالة (أو دوال) التجميع في مقطع SELECT أكثر من حقل، وأنت تريد التجميع حسب حقل واحد منها مثلاً، لكن يلزمك ذكر جميع الحقول في مقطع GROUP BY حتى ولو لم يكن القصد التجميع حسبها.
بالمناسبة، يتم اختيار حقول إلى جانب دوال التجميع (في هذه الحالة حقل القسم) لأنه بدون أي حقول أخرى سيبدو الاستعلام بدون معنى؛ مجرد أعداد لا تدري أيها عدد موظفي القسم 10، وأيها تبع للقسم 20...
مثال آخر، رواتب الموظفين مجمعة حسب الأقسام:
SELECT EmpDept, Sum(EmpSal) AS SalaryByDept FROM tblEmployee GROUP BY EmpDept
مثال آخر، عدد الموظفين حسب سنة التعيين:
SELECT Year(EmpHireDate) AS HireYear, Count(tblEmployee.EmpNO) AS CountByYear FROM tblEmployee GROUP BY Year(EmpHireDate)
تم استخدام دالة من دوال VBA، وهي الدالة Year، وتستقبل تاريخاً، ثم تعيد قسم السنة من هذا التاريخ. استخدمنا قسم السنة من تاريخ التعيين لتجميع الموظفين. لاحظ أننا طبقنا الدالة على التاريخ في المقطعين SELECT و GROUP BY.
نستطيع إضافة مستوى تجميع آخر إلى المثال السابق، فنجمع الموظفين حسب سنة التعيين (ثم) حسب القسم، كالتالي:
SELECT Year(EmpHireDate) AS HireYear, EmpDept, Count(tblEmployee.EmpNO) AS CountByYear FROM tblEmployee GROUP BY Year(EmpHireDate), EmpDept
نتيجة هذا الاستعلام هي:
لاحظ أن عدد صفوف الخلاصة قد زاد، لأننا فصلنا موظفي كل سنة حسب أقسامهم، ومن النتيجة أعلاه نجد أن سنة 1981 قد شملت تعيين موظفين في كل الأقسام، ونعلم حصة كل قسم من التعيين كل سنة.
تمرين: نفذ الاستعلام التالي
SELECT EmpDept, EmpName, Sum(EmpSal) FROM tblEmployee GROUP BY EmpDept, EmpName
لاحظ أن الاستعلام سليم تماماً من ناحية القواعد. ما نتيجة الاستعلام؟ هل توقعت ذلك؟ ما هو السبب؟
تمرين آخر: استخرج أدنى مرتب في كل قسم باستخدام التجميع والدالة MIN().
أرجو أن يكون مفهوم التجميع واضحاً، لأنه من الطرق المهمة في استخراج التقارير والاستعلامات، وفي حالة أي إشكال، فمن فضلك لا تتردد في الاستفسار أو التعقيب.
(يتبع إن شاء الله)...
تم تعديل هذه المشاركة بواسطة أحمد مبارك الحيقي في 4 أكتوبر 2009 في 13:21
الاستاذ أحمد الحيقي
بل أنا من يسعد اكثر, لمشاركتي في موضوع رائع كهذا ومع استاذ اروع.
إجابة التمرين الأول :
تم ارجاع جميع السجلات وذلك لوجود حقلي الأسم والقسم وتم التجميع على أساسهما مع العلم أن التجميع بحسب الاسم لم يكن له جدوى لعدم تكرار الاسم أكثر من مرة
إجابة التمرين الثاني:
سيكون الاستعلام كالتالي:
SELECT EmpDept, min(EmpSal) FROM tblEmployee GROUP BY EmpDept
اتمنى أن تكون إجابتي صحيحة فهي أول مشاركة فعلية لي .
تحياتي .
مالك المقطري,,,
السلام عليكم
اعزائي اعضاء الفريق الربي للبرمجة
ابارك جهدكم الرائع هذا
اخوانى الكرام من يقوم بوضع معلومات عن قواعد البيانات وبرامج قواعد البيانات تحياتي لكم وفقكم الله وجزاكم الله عن كل هذا خير
اخوانى بعد ما قرات كل ما مكتوب فى هذه المشاركات من جميع الاخوة تستت عقلى تماماً فلا استطيع الان ان اقف على برنامج معين لعمل برنامج يدير قاعدة بيانات .
اخوانى انا احب برامج قواعد البيانات وبرامج تصميم قواعد البيانات ولكن معظم عملى لقواعد بيانات هى على جهاز واحد اى لطرف واحد او تدار بواسطة شخص واحد فعند قرائتى لمشاكتكم وجدت ان هناك برامج كثير .
اخوانى هل الاكسس وحده يكفى لعمل برنامج يدير قاعدة بيانات متماسكة ومترابطة أم لا اذا الذى يدييره شخص واحد انا هنا لا اتكلم عن السرفييرات ولا قواعد بيانات تدار بالشبكات قاعدة بيانات على جهاز واحد يديريها شخص واحد اذا كان الاكسس لا ينفع فما هو البرامج الاخرى ارجو الردود من الاخوة بسرعة حتى استقر على برنامج معين واكرس تدريبي فيه .
ولكم من تحياتى
الأخ العزيز مالك المقطري: إجابة نموذجية، وليست صحيحة فحسب، وقد أصبت في أن التجميع حسب الاسم كان لمجرد التنبيه إلى فكرة أن التجميع تعتمد على وجود قيم متطابقة (في حقل التجميع) بين بعض الصفوف حتى يتم تجميعها في مجموعة واحدة، وإلا كان كل صف مجموعة بحد ذاته، وفقد التجميع معناه... بارك الله فيك، زادك من فضله.
الأخت سارة: سبق أن أشرنا إلى أن برامج إدارة قواعد البيانات على أنواع؛ بعضها يسمى Desktop DBMS، ويختص بقواعد البيانات التي تصفينها بالضبط: يعمل بشكل أساسي على جهاز واحد. من هذه الأنظمة، برنامج الأكسس. لا داعي للتشتت مادام الهدف واضحاً. كل شيء جميل في مكانه، ولو لم يكن الأكسس نافعاً لأي شيء لما كنا هنا في منتدى للأكسس من الأصل. فإذا كنت بادئة، واحتياجاتك مثل ما تقولين، فالأكسس مناسب بإذن الله لك. من الخطأ أن نضع منتجات صممت أصلاً لأغراض مختلفة في سلة واحدة، فلا نقارن الأكسس مع الأوراكل مثلاً. ثم إن الأكسس لن يشغلك في البداية بأي تفاصيل تتعلق بعمله هو، مما يتيح لك التركيز على دراسة وتطبيق مبادئ تصميم قواعد البيانات والبرمجة، بعكس نظام مثل الأوراكل، إذ أنه من أجل التعامل السليم معه، تحتاجين لدراسة بنيته والإلمام ببعض تفاصيل عمله. ثم تذكري دائماً أن تبدئي بدراسة المبادئ والمفاهيم العامة لتصميم قواعد البيانات وللبرمجة أكثر من التركيز على منتج بعينه، وبعدها تستطيعين الانتقال بين أي نظامين أو أكثر إن شاء الله بثقة.
هذا باختصار، والله أعلم.
تم تعديل هذه المشاركة بواسطة أحمد مبارك الحيقي في 6 أكتوبر 2009 في 04:48
الاستاذ / أحمد الحيقي.
لقد سررت بكون اجابتي نموذجية على حد قولك , فذلك يدفعني بشكل اكبر للتعلم.
مع العلم أن هذه أول مرة اتعامل مع SQL بشكل مباشر فيما سبق كنت اتعامل مع الاستعلامات عن طريق معالج التصميم وكنت اجد صعوبة في التعامل مع لغة الاستعلامات, ولكن مع سلسة الحلقات التي تطرحها, احسست انها لم تكن بتلك الصعوية.
اشكرك مرة اخرى.
واسأل الله أن يكون ذلك في ميزان حسناتك.
تحياتي.
مالك المقطري,,,
لعن الله النسيان (فى موضوعات العلم فالنسيان نعمة فى أمور كثيرة).
أقول لعن الله النسيان فى العلم .. لقد عدت أقرأ ما خطته يد خبيرنا أحمد مبارك من بداية موضوع الـــ SQL .. ولكننى وجدتنى أقرأ وكأننى أطالع الموضوع لأول مرة .. فلا أذكر أننى قرأته من قبل ، رغم أننى قرأت الحلقات كلها من قبل وطبقت بعض الأمثلة التى وردت أثناء الشرح.
عفواً لإزعاجكم إخوانى بهذه المشكلة الفردية .. ولكننى وجدت نفسى أعود وأقرأ الموضوع من أول حلقة فى سليسلة الــ SQL حتى أقوم بربط الحلقات ببعضها.
تحياتى واعتذارى
محمد ندا
... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...
اخى الكريم جزاك الله خيراً على ردك الكريم
طيب ياريت تكمل جميلك وربنا يكرمك يارب
ممكن تدلنى على منتدى او موقع او دروس تعليم قواعد البيانات المتماسكة واهم حاجة بعد ذلك عاوز اتعلم الاكسس بحذافيره حتى الاحتراف لان معلوماتى فيه ضعيفة يدوب بناء جدول نموذج تقرير بمعرفش اعمل استعلام او ماكرو او وحدات نمطية وكذلك الاكواد اتمنى من الله تكمل جميلك وتساعدونى فى هذا الموضوع
سارا
إن سمح لى أستاذنا أحمد مبارك الحيقى بالرد لأختنا سارا
الأخت الكريمة سارا
مرحباً بك بين إخوانك .. فى هذا المنتدى تتعلمين الأكسس بك ما تتمنين
فقط تحتاجين المتابعة ووضع الأسئلة التى تحتاجين وسوف تجدين الحلول.اقتباساستعلام او ماكرو او وحدات نمطية وكذلك الاكواد
بالنسبة لبناء قاعدة بيانات متماسكة ومتينة وكل اللى عايزاه تجدينه فى هذه السلسلة .. متابعة من أول السلسلة + متابعة بالمنتدى للمواضيع التى تطرح.
وحفاظاً على مساؤ هذه السلسلة دون التشعب فى مواضيع خارج موضوعيها الأساسيين .. وإذا سمحتى لى .. سوف أرسل لك بالبريد روابط بمنتدانا هذا تساعدك فى هذا الموضوع.
ويمكنك طرح الموضوعات كمشاركات بالمنتدى وسوف نتابع معك إن شاء الله .. وستجدين كل اهتمام.
تحياتى واحترامى
محمد ندا
... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...
اعتذر عن التأخير في المشاركة
وربما سبقنا احد بالإجابة على الأسئلة ولكن
بطرح ما عندي ربما يكون فيه شي من الصحة .
وإن كانت كذلك هذا بفضل الله أولا ثم فضلك يا استاذ احمد
الإجابة الأولى :
بالنسبة لنتيجة الإستعلام لا يستطيع تجميع الرواتب وهذا ناتج عن وجود حقل اسماء الموظفين ولأن لكل موظف رقم وظيفي فهو غير قابل للتكرار
ولكن لو كان الإستعلام عن قسم الموظفين لكن الإستعلام سليم وتمت دمج مجموع الرواتب لكل قسم
اما إجابة السؤال الثاني :
وهو اقل راتب في كل قسم
SELECT EmpDept, MIN(EmpSal) as MINSalDept FROM tblEmployee GROUP BY EmpDept
واتمنى تكون الإجابة صحيحة او فيها شي من الصحة .
تم تعديل هذه المشاركة بواسطة sandm في 8 أكتوبر 2009 في 14:06
مذكرات حول تصمبم قواعد البيانات وتطبيقاتها الجزاء الأول
مذكرات حول تصمبم قواعد البيانات وتطبيقاتها الجزاء الثاني
استغفر الله الذي لا إله إلا هو الحي القيوم و أتوب إليه
بســم الله الـرحمــن الرحيــم
مقدمة
السلام عليكــم ورحمـة الله وبركاتــه ... بارك الله فيك أخي أحمد مبارك وجعل كل ماتقدمه
في ميزان عملك الطيب .. اللهم أنت قلت وقولك الحق ( هَلْ جَزَاءُ الْإِحْسَانِ إِلَّا الْإِحْسَانُ (60))
اللهم فأجزل له المثوبه كما أحسن ونفع اللهم أمين
خواطر مبعثره حول موضوع سلسلة SQL
الخاطرة الاولى
مراحل تطور SQL
- النشأة عام 1970
1970 --- نموذج كود المعتمد على الجبر العلائقي
1974 --- استخدام sql مع أجهزة mainFrame
1979 --- دعم sql من قبل النسخة الأولى التجارية من برنامج إدارة قواعد البيانات Oracle
1987 --- أطلقت منظمات ANSI و ISO للمعايير أول معيار لـ SQL هو SQL89
1991 --- تم نشر المعيار SQL92
1999 --- تم نشر المعيار SQL99 أو ما يطلق عليه SQL3
الخاطرة الثانية
الخاطرة الثالثة
قواعد البيانات العلائقية - متى نقول قاعدة بيانات علائقية
تمتلك قواعد البيانات العلائقية ، حسب ما ورد في نموذج كودد خصائص منها مايلي :
• مجموعة من بنى المعطيات المُسَتخدَمة في قاعدة البيانات أهمها :
- العلاقة ويتم تمثيلها بالجدول
- البيانات ويتم تمثيلها بالمعلومات المحتواة ضمن حقول الجدول
- الخواص ويتم تمثيلها بالأعمدة أو حقول الجدول
- الصفوف ويتم تمثيلها بالسجلات في الجداول.
- النطاق ويتم تمثيلها بالمجال الذي يمكن لقيم الخواص أن تتحرك ضمنه.
• توابع تساعد على الوصول إلى البيانات وتساعد على تعديلها واسترجاعها
• مجموعة من القواعد التي تنظم العمليات التي يمكن إجرائها على قاعدة البيانات
ملاحظه هامة
1 - ماسبق كلام نظري لايفيد في تعلم SQL هو خلفيه تاريخية وتوضيح لبعض الاخطاء الشائعه
2 - شكرا لجميع الاخوة في مداخلاتهم المثمرة شكرا للأخ محمد ندا على حسن متابعته وإدارته
هذا ماجادت به القريحة والوقت .. والسلام
تم تعديل هذه المشاركة بواسطة اكسيرالحياة في 11 أكتوبر 2009 في 00:11
مرحباً بك أستاذنا الكبير إكسير الحياة مرة أخرى بين إخوانك وتلاميذك بهذه السلسلة .. التى تزداد مع الأيام قيمة على قيمتها بمشاركة كبار الأساتذة.
نشكر لك المعلومات القيمة ونتمنى ألا تكون ماراً بين السطور على عجل .. ولكن نتمنى أن تكون معنا دائماً فى هذه السلسلة التى تنمو وتزداد قيمتها يوماً بعد يوم.
تحياتى لشخصكم الكريم
محمد ندا
تم تعديل هذه المشاركة بواسطة Mohamed Nada في 11 أكتوبر 2009 في 00:25
... بقمة السعادة .. أعود بإذن الله لصحبتكم الرائعة قريباً ...
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…