# منتديات طلاب الجامعات الأردنية > منتدى علم الحاسوب CS >  دورة قواعد البيانات اوراكل

## Sc®ipt

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

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

* اولا :تعريف قواعد البيانات* 
* ثانيا :اهمية قواعد البيانات* 
* ثالثا : انواع قواعد البيانات* 
* رابعا :الطريق لتعلم قواعد البيانات* 
* خامسا :الاشخاص الذين يتعاملون مع قواعد البيانات* 
* سادسا :اساسيات قواعد البيانات* 
* سابعا: اداره قواعد البيانات : SQL-WSH1-WSH2-tunning*
* ثامنا :مقدمة تطوير قواعد البيانات PL/sql*

----------


## Sc®ipt

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

مقدمة:

واحب ان ابدأ ان شاء الله هذه النبذه عن قواعد البيانات ببعض 

الاسئله الشائة واجاباتها ؟

س1: لماذا اسم قواعد البيانات غير مألوف بين الناس؟ 
ج1: لان المألوف هو نظريه الفوضى التى تعتبر بيئة مناسبة جدا لنمو الفساد وبالتالى الخطوة الاولى نحو مجتمع افضل هى تنظيم المجتمع والخطوة الاولى فى تنظيم المجتمع هو تنظيم البيانات حتى نتعرف على الواقع لكى نستطيع تحديد مستقبل افضل .

س2: لماذا قواعد البيانات ؟

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

س3: من هم العاملون فى هذا المجال ؟

1- محلل قواعد البيانات :يقوم بتحليل البيانات اللازمة المطلوبة للجهه التى سوف تستخدم قاعدة البيانات واعطاء المواصفات المطلوبه للمصمم .

2- مصمم قواعد البيانات :يقوم بتصميم قاعدة البيانات على ضوء المواصفات التى وضعها المحلل. 
3- مطور قواعد بيانات : يقوم بتطوير وتحديث قاعدة البيانات الموجودة بالفعل .
4- مدير قواعد البيانات : يدير قواعد البيانات من حيث التشغيل والامن وعمل النسخ الاحتياطيه وزيادة الكفاءة ووضع استراتيجيات التشغيل وتنظيم مساحات التخزين وتنظيم الذاكرة وغيرها ...

س4: فرص العمل ؟

ج4 : متوفرة الى حد كبير للمتميزين لان الموضوع يحتاج الى الاحتراف "يرزق الله من يشاء".

س5: المرتبات ؟

ج5: تكاد تكون خياليه بالنسبة للاخرين وتكون زهيده بالنسبة للمليونيرات " مستوره والحمد لله "

س6: الدورات ؟

ج6: كثيره ومرتفعة الثمن جدا تصل كلها الى 6000 $دولار اذا كانت معتمدة والامتحانات هى الاهم وسوف اقدم لكم بعض الدورات المعتمدة لقواعد البيانات اوراكل: 
دورة ادارة قواعد البيانات 3 مستويات كل منها 500 دولار
دورة تطوير قواعد البيانات 3 مستويات كل منها 500 دولار 
دورة تصميم قواعد البيانات "متقدمة جدا "
دورات قواعد البيانات والجافا " متقدمة جدا "

واخيرا 
سوف نتناول دورة ادارة قواعد البيانات وامتحاناتها حتى تصبح مدير معتمد لقواعد البيانات بعون الله ان شاء الله.*

----------


## Sc®ipt

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

نبدأ الان اولى الخطوات فى رحلة الالف ميل " وهذه ضريبة التميز "
الخلفية المطلوبة :
1-اجادة التعامل مع الويندوز 
2- اسس التعامل مع الشبكات 
3- يفضل معرفة الاكسس 
اذا لم تكن ملم بتلك الموضوعات فسوف اتناولها فى الشرح " حاول تسأل عن اى لفظ او معلومة لا تعرفها لتحقيق اقصى استفادة"
ملحوظة
1- " مرحبا بمشاركاتكم واستفساراتكم وارائكم وتعليقاتكم "

2-ان شاء الله سوف نلتزم جميعا بحل التمارين الموجودة فى الدرس وسوف تتعرف على الاجابه الصحيحه فى الدرس التالى له 

3- معظم الشرح باللغة الانجليزية مدعم بالعربية والاجزاء الصعبة باللغة العربية حيث ان العمل فى هذا المجال باللغة الانجليزية .
" وكلها مصطلحات هتعرفها على طول وهتستمر معانا للنهاية "

ارجوا ارائكم واستفساراتكم 



* هناك الكثير من انواع قواعد البيانات ولكن الاشهر قاعدة البيانات العلائقية والمستخدمة حاليا . 

* Relational data****s : (RDB)قواعد البيانات العلائقية 
تتكون من مجموعة من الجداول التى يوجد بينها علاقات " ومن هنا جاءت التسمية "



*TABLE: هو الجدول الذى يتم تخزين فيه البيانات 
*ROW & RECORD :هو السطر الافقى فى الجدول 
*Column : هو العمود الرأسى فى الجدول 
* Field or cell : هو الخانة الواحدة فى الجدول وهى عبارة عن تقاطع صف مع عمود .



**
*DBMS : DATA**** MANAGEMENT SYSTEM 
وهو سوفت وير وظيفته الاساسيه تخزين قواعد البيانات والتعامل معها وتنظيمها 
*ENTITY : الكيان هو وحدة يتم تخزينها فى الجدول على هيئة سطر 
* ENTITY SET : مجموعة الكيانات وتمثل بالجدول الكامل 
مثال : لو ان هناك قاعدة بيانات شركة يعمل بها مجموعة من الموظفين 
ENTITY :موظف واحد 
ENTITY SET : جدول الموظفين 

* ATTRIBUTES: هى الاعمده الموجودة فى الجدول



***RELATION SHIP : علاقة بين مجموعتين من الكيانات 
مثال : "علاقة الخدمة" بين مجموعة كيانات الموظفين ومجموعة كيانات العملاء 


**


*RELATION : لفظ يعبر فى الاساس عن جدول من صفوف واعمدة 
*SCHEMA : لكل جدول اسكيمه تعبر وتوصف اعمدته وصفوفه 
مثال : عندما نريد انشاء جدول للموظفين يجب علينا وصف الاعمدة المطلوبه كالاسم والسن والعنوان وغيرها 
*internal schema : 
1- physical schema : تصف تمثيل الفايلات المخزنة على وحدة التخزين الخاصه بالداتا بيس 
2- logical schema : تصف مكونات الجداول 
* external schema : views : وهى وسيله لتصف مايعرض من البيانات المهمة للمستخدم فقط دون الدخول للتفاصيل وذلك لاغراض الحمايه

وهذا شكل مبسط لنظام قواعد البيانات 


التمارين : س1 ما الفرق بين : 
TABLE & RELATION
RELATION & RELATIONSHIP
RELATION & SCHEMA
PHYSICAL & LOGICAL SCHEMA
DB &BDMS
EXTERNAL & INTERNAL SCHEMA
ENTITY & ENTITY SET
ENTITY & ATTRIBUTE
*
*
*

----------


## Sc®ipt

*بسم الله الرحمن الرحيم*  
*ربنا تقبل منا انك انت التواب الرحيم*  
*وقفنا عند تعريفين مهمين : الاول :* *ER MODEL**وهو نظام تصميم قواعد البيانات العلائقية " جداول وبينها علاقات "* 
*هنا نستطيع تعريف :* *ER DIAGRAM** وهو رسم يوضح شكل قاعدة البيانات العلائقية " الجداول - الحقول داخل الجداول – العلاقات بين الجداول - ......."*
*التعريف الثانى :* *RDBMS** وهو مدير قواعد البيانات العلائقية " يكون على شكل نافذة**SOFTWARE** للتحكم فى قاعدة البيانات* 
*“GUI :GRAPHICAL USER INTERFACE* “ *اى* *نافذة للمستخدم* 
*وهذا الجزء سنتناوله بالتفصيل فى الجزء الخاص بالتصميم لاحقا*  
*والان ننتقل الى الخطوه الثانية : انشئ اول قاعدة بيانات بنفسك الان* 
*سوف نبدأ ب* *ACCESS*
*اذهب الى* *ACCESS* *اختار* *NEW BLANK DATA******اى قاعدة بيانات جديدة خاليه سيظهر لك مربع حوار اكتب الاسم وليكن "**BANK**" وحدد المسار الذى تريده لكى تحفظ قاعدة بياناتك الجديدة ثم اختار* *CREATE TABLE IN DESIGN* *VIEW** وذلك لكى تنشى بها جدول جديد ثم اختار* *DESIGN*
*ستجد خانة* *FIELD NAME* *واخرى* *DATA TYPE* 
*اى اسماء الحقول ونوع البيانات التى ستدخلها فى هذا الحقل اكتب التالى* 
*الحقل الاول : الرقم السرى للموظف & نوعه :* *NUMBER*
*الحقل الثانى : اسم الموظف & ونوعه :* *TEXT*
*الحقل الثالث : العنوان & ونوعه :* *TEXT*
*تخيل باقى البيانات اللازمه كالتليفون والسن والوظيفه وغيرها واكمل الجدول ولاحظ الخصائص الاخرى التى تتيحها صفحة التصميم كعدد الحروف التى يأخذها الحقل من النوع* *TEXT** ثم اغلق نافذة التصميم ستظهر لك رسائل تعامل معها كالتالى "اختار نعم – اختار اسم الجدول – اختار لا "* 
*ستجد ظهور جدولك فى الصفحة التى اخترت منها* *CREATE TABLE IN DESIGN VIEW** اختاره ثم اختار* *OPEN*  
*مبروووووووووك ابدأ فى تسجيل بيانات الموظفين فى البنك ؟* 
*شفتم الموضوع سهل ازاى ؟* 
*اعملوا بقى قاعدة البيانات التاليه علشان نشتغل بقى :* 
*اسم قاعدة البيانات :* *MS*
*1-* *جدول :* *EMPLOYEES* 
*الحقول :*
*EMP_ID,EMP_NAME,EMP_AGE, HIRE_DATE,TEL_NUM,MOBILE_NUM, EMAIL,MANAGER_ID,DEDT_NUM, EMP_PIC* 
*2-* *جدول :* *DEPARTEMENTS*
*الحقول**:* 
*DEPT_ID,DEPT_NAME,MANAGER_ID,LOC**_ID, NOTES*
*3-* *جدول :LOC"اى الموقع "*
*الحقول:*
*LOC_ID , LOC_NAME,NOTES**4-* *جدول :* *CLIENTS*
*الحقول :*
*C_ID,C_NAME,C_AGE,C_TEL,C_MOBILE, C_PIC,NOTES* 
*والمهم ان تختار نوع البيانات الصحيح وحجم الحقول المناسب*

----------


## Sc®ipt

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

Primary key : المفتاح الاساسى فى الجدول اى عمود لا تتكرر بياناته مثل الحساب البنكى لايمكن ان يتكرر مرتين لعميلين فى نفس البنك ومن الممكن ان يكون اكثر من عمود لا يتكرروا معا ولا يمكن ان يكون خاليا من البيانات.
Forigen key :هو عمود بياناته يجب ان تكون موجوده ضمن البيانات الموجودة فى الحقل الاساسى الذى يتبعه "كل القيم الموجودةفى"forigen key " يجب ان تكون احد قيم ال"primary key" ويمكن ان يكون خاليا من البيانات



**هناك انواع اخرى من الkeys سنتناولها فى مرحلة التصميم ان شاء الله 
هناك خصائص يجب تعريفها:
*NULL:خاصية نعطيها للعمود حتى يمكن ان نتركه خاليا بدون بيانات وهى الحالة العادية 
*NOTNULL:خاصية نعطيها للعمود حتى لا يمكن ان يتقبل ان نتركه خاليا  فمثلا حقل الاسم لا يمكن ان نتركه خاليا فى بيانات عميل البنك
*UNIQUE:هى خاصية للعمود نضمن بها ان لا يوجد فى بياناته قيمتين متشابهتين مثلا عمود رقم جلوس طالب لايمكن ان يتكرر به قيمتين 
اللغة الشهيرة للتعامل مع قواعد البيانات هى لغة ال SQLوهى لغة تتميز بالسهولة والوضوح لانها تتكلم باللغة الانجليزية التى تكاد تكون مفهومة 
 
*بعض استخدامات لغة الSQL:
1-استخلاص وحصر وترتيب البيانات المطلوبة من قاعدة البيانات 
2- اضافة بيانات جديدة الى قاعدة البيانات 
3- تعديل بيانات موجودة بالفعل فى قاعدة البيانات 
4- حذف بيانات غير مرغوب فيها من قاعدة البيانات 
5- التعديل فى تصميم قاعدة البيانات "اضافة جدول او تعديله او حذفه وغيرها "
6- التحكم فى خصائص قاعدة البيانات 
وغيرها الكثير والكثير
 وبذلك نلاحظ ان معظم الاستخدامات يمكن تقسيمها الى :

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





·      يمكن ان تطبق لغة SQLفى ACCESSاو ORACLEاو اى قاعدة بيانات اخرى 
*

----------


## Sc®ipt

[align=center]بسم الله الرحمن الرحيم 
لا اله الا انت سبحانك انى كنت من الظالمين 
اذا كنت بالفعل تملك نسخه من برنامج اوراكل10g فى المنزل او العمل وهى احدث اصدارات البرنامج 
فالخطوة الاولى المهمة هى تجهيز جهازك لاستقبال تنصيب اوراكل بطريقة صحيحة 
اولا :المواصفات المطلوبه فى جهاز الكمبيوتر :*Hardware&software:*
*•* *512 MB*
*of physical random access memory (RAM* 
*•* *1 GB* 
*of swap space (or twice the size of RAM* 
**يمكن التعامل مع رامات 256ولكن حاول ان توفر 2 جيجا بايت من ال* *swap space*
****swap space**:**virtual memory**ويمكنك تعديلها كالتالى "استخدم نظام* *xp prof**او* *2003server**او**unix**" :فى xp كليك يمين على* *my computer**اختار* *properties**ثم* *advanced**ثم* *performance settings**ثم**advanced**ثم* *change* 
*ويكون كالتالى وفرمساحة= ضعف مساحة الرامات الموجودة فى جهازك على* *drive** نظام التشغيل والباقى وفرهم على باقى اجزاء الهارد* 
**وفر على الاقل 4 جيجا بايت خالية فى**drive** مسار التنصيب حتى تضمن اداء جيد فى المستقبل ويتم استغلالهم من قبل اوراكل كالتالى :**400*
*MB of disk space in the temporary directory* 
*•* *1.5 GB* 
*of disk space for the Oracle software*

*•* *1.5 GB* 
*of disk space for the preconfigured data*****
**يفضل وجود نسختين من نظام التشغيل على جهازك:*
*اجعل واحدة منهم للاوراكل وحده والاخرى لباقى البرامج التى تستخدمها وللعمل العادى حتى تتمتع باداء افضل*
** اذا كنت تملك* *server* *فبالطبع لا توجد عندك اى مشكله على الاطلاق حتى تتحمل هذا العناء ؟* 
*الان تستطيع وضع اسطوانة تنصيب اوراكل بدون مشاكل لتتم عملية التنصيب بسهولة ويسر ان شاء الله*[/align]

----------


## Sc®ipt

*  خطوات تنصيب اوراكل فى windows























**
ملا حظة مهمة : سيظهر لك فى الشاشه الاخيرة عناوين يجب عليك ان تدونها لاننا سوف نحتاجها بعد ذلك وهى تظهر تحت الاسماء التاليه  :
1-isql * plus url
2- enterprise manager log data**** control url 

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

لو وصلت الى هنا فالف مبروك  لان جهازك اصبح oracle server
*

----------


## Sc®ipt

[align=right]*بسم الله الرحمن الرحيم 
ربنا تقبل منا انك انت التواب الرحيم 
·       اذا كنت من مستخدمى اكسس   ستجد بيئة ال sql كالتالى :
افتح الاكسس ثم قاعدة بياناتك ثم استعلامات queriesثم استعلام فى وضع التصميم create queries in design view سيظهر لك نافذه تسمى استعلام1 اوquery1 واغلق النافذة التى تسمى اظهار جدول او show table اذا ظهرت لك ثم كليك يمين على المكان الخالى فى نافذة استعللام 1 واختار show sql ستظهر شاشه بيضاء تستطيع ان تكتب فيها جمل ال sql 
·       اذا كنت من مستخدمى اوراكل:ادخل على http:// localhost:5500/em
user name:   sys ادخل  
password :  sys ادخل  
connect as  :   sysdbaادخل  
حمل الصفحة ستظهر صفحة تعليمات 
اختار موافق ليظهر لك الصفحة الرئيسية لبرنامج اوراكل 
تعامل معها كأنك تتعامل مع صفحة انترنت  بكل سهوله 
administrationاضغط على اللينك :
under title security choose users
check hr and click  edit
enter new passward  is hr and confirm it 
click applay
click signout from page top


http:// localhost:5560/isqlplusثم ادخل على 
 ستدخل على isql *plus عن طريق فتح متصفح الانترنت اكسبلورر ثم تكتب ال URL الخاص ب isql*plus والذى اشرت فى نهاية الدرس السابق على ان تكتبه وتحتفظ به عند نهاية تنصيب برنامج الاوراكل ثم تكتب البيانات المطلوبه كما موضح بالصوره التاليه :
 
هنا سوف تفتح بيئة ال isql*plusكالتالى :
 

The iSQL*Plus EnvironmentWithin the Windows browser, the iSQL*Plus window has several key areas:
1. 
Edit window: The area where you type the SQL statements and iSQL*Plus commands.
2. 
Execute button: Click to execute the statements and commands in the edit ********
3.
 Output Option: Defaults to Work Screen, which displays the results of the SQL statement beneath
the edit ******** The other options are File or ******** File saves the contents to a specified file.
Window places the output on the screen, but in a separate ********
4.
 Clear Screen button: Click to clear text from the edit ********
5.
 Save ****** button: Saves the contents of the edit window to a file.
6. 
****** Locator: Identifies the name and ******** of a ****** file that you want to execute.
7. 
Browse button: Used to search for a ****** file using the Windows File Open dialog box.
8. 
Exit icon: Click to end the iSQL*Plus session and return to the iSQL*Plus LogOn ********
9. 
Help icon: Provides access to iSQL*Plus Help ********ation.
10. 
Password button: Is used to change your password.
اهلا بك فى عالم ال SQL
SQL and iSQL*PlusSQL is a command ******** for communication with the Oracle server from any tool or application.

iSQL*Plus is an Oracle tool that recognizes and submits SQL statements to the Oracle server forexecution and contains its own command ********
 تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  504 * 347.
Features of SQL
• Can be used by a range of users, including those with little or no programming experience
• Is a nonprocedural ********
• Reduces the amount of time required for creating and maintaining systems
• Is an English-like ********

Features of iSQL*Plus
• Accessed from a browser
• Provides online editing for modifying SQL statements
• Controls environmental settings
• Formats query results into a basic report
• Accesses local and remote data****s

اولا : جملة SELECT: لاستخراج بيانات معينه من قاعدة البيانات*Projection: You can use the projection capability in SQL to choose the columns in a table that you want returned by your query.

*Selection: You can use the selection capability in SQL to choose the rows in a table that you want returned by a query.

*Joining: You can use the join capability in SQL to bring together data that is stored in different tables by creating a link between them.

 

فى الجزء النظرى السابق نحاول نفتح القاموس شويه ونحفظ المصطلحات الجديدة وان شاء الله ستجدها كلها كلمات بسيطه جدا 
اوجد بيانات  كل الاعمدة * SELECTمن الجدول ; FROM TABLE NAME
SELECT: identifies what columns
  *   : selects all columns
FROM  : identifies which table

Ex:
  اوجد بيانات كل الاعمدة                    * SELECT       
 الموجودة فى جدول الادارات;FROM departments 
يكون الناتج كالتالى 

 

SELECT  columns’ names اوجد بيانات الاعمدة المذكوره 
             ; FROM  table name  من الجدول المسمى
  ; Columns’names  :        selects the named columns 
 Ex:
SELECT department_id, ********_id
                  ;   FROM  departments 
فيكون الناتج كالتالى :
 

قارن هذا الناتج بناتج المثال السابق؟؟؟؟
* Using Arithmetic Expressions “+ - * / “
Ex:
SELECT last_name, salary, salary + 300
                                 ;FROM  employees 
اوجد حقول الاسم والمرتب من الموظفين واحسب المرتب +300 وضع الناتج فى حقل جديد "غير موجود فى قاعدة البيانات الاصليه " فيكون الناتج كالتالى :

 
Ex: حساب المرتب السنوى للموظفين وزيادة 100 على الناتج 
SELECT  last_name , salary , 12*salary+100
                                        ;FROM  employees 
لاحظ ان اثناء العمليات الحسابية هناك اولويات هى:
 مابين الاقواس يحسب اولا ثم الضرب والقسمة وفى النهايه الضرب والقسمة 
ففى المثال السابق يتم ضرب المرتب الشهرى *12 للحصول على المرتب السنوى اولا ثم اضافة 100 على الناتجEx: ؟؟؟؟؟؟  لا حظ الفرق بين المثال السابق وهذا المثال
SELECT  last_name, salary, 12*(salary+100)                                        ;FROM  employees
* Defining a Null Value
• A null is a value that is unavailable, unassigne
unknown, or inapplicable 
• A null is not the same as zero or a blank space

If any column value in an arithmetic expression is null, the result is null. For example, if you attempt
to perform division with zero, you get an error  However, if you divide a number by null, the  result is a null or unknowN 


* Defining a Column Alias اعادة تسمية الحقول فى النتائج التى تظهر للمستخدم فقط وليس فى قاعدة البيانات نفسها وذلك للسهولة او اعطاء تسميه اكثر وضوحا فى المعنى 
When displaying the result of a query, iSQL*Plus normally uses the name of the selected column as
the column heading. This heading may not be de******ive and hence may be difficult to understand.
You can change a column heading by using a column alias.
Specify the alias after the column in the SELECT list using a space as a separator. By default, alias
headings appear in uppercase. If the alias contains spaces or special characters (such as # or $), or is
case sensitive, enclose the alias in double quotation marks (" "). الامثلة التاليه ستوضح الفكره 

ex:
SELECT last_name    name   
              ;FROM employees 
=
SELECT last_name AS  name   
                 ;FROM employees 

 

SELECT last_name   “Name” ,salary*12 
"AnnualSalary"
                                   ;FROM employees 
=
SELECT last_name AS “Name” ,salary*12 AS "AnnualSalary"
                                             ;FROM employees 
 

نلاحظ وضع علامات التنصيص المزدوجه لوجود حروف كبيره وصغيرة  ووجود مسافة فى الاسم الجديد
·       Using the Concatenation Operatorوذلك لضم محتويات اكثر من حقل لكى يظهروا  كحقل واحد فى النتيجه المطلوبة  
EX:
"SELECT last_name || job_id AS "Employees 
                                       ;FROM employees 
هنا ناحظ ظهور النتائج وهى حقل الاسم وحقل الكود الوظيفى كحقل واحد له اسم جديد 
 
*Using Literal Character Strings
هى جمل حرفية  نستطيع اضافتها الى ناتج كل سطربواسطه 
Concatenation Operator
لتوضيح المعنى 

EX:
 SELECT last_name || ’ is a ’ || job_id AS "Employee "DetailS
                                                   ;FROM employees 
 
*[/align]

----------


## Sc®ipt

سم الله الرحمن الرحيم 
 ربنا تقبل منا وتب علينا انك انت الوهاب 
*Eliminating Duplicate Rows*
اذا كان هناك نتائج متكررة فى الحقل او الحقول ولا اريد ان تظهر هذه التكرارات فاننا نستخم *DISTINCT* كالتالى :
 *Using the* *WHERE* *Clause*
اذا اردنا مثلا  ان نحصل على معلومات معينه عن كل الموظفين العاملين فى الاداره رقم 90
 
هنا نجد ان WHERE ياتى بعدها الشروط الواجب توافرها فى البيانات المطلوبه لا حظ الامثله التاليه :

اذا اردنا الاسم الاخير والمرتب لكل الموظفين الذى يقل مرتبهم عن 3000 او يساوى 3000:
 
هنا نستطيع استخدام < او> او= او=< او => او لا يساوى ولها رمزان الاول < > والثانى =! 
 مع مراعاه اذا كانت القيمة التى تبحث عنها قيمه حرفيه او تاريخ فيجب وضعها بين " "

*Using the* *BETWEEN* *Condition*
نستخدم BETWEEN عندما نكون نبحث عن بيانات فى نطاق محدد:

 
*Using the* *IN* *Condition*
نستخدم IN عند البحث عن اى قيمه من عدة قيم ليست محصوره فى نطاق محدد:



*Using the* *LIKE* *Condition*
نستخدم LIKE عندما نشترط توافر شروط فى جزء من البيانات  
فمثلا اذا اردنا الحصول على اسماء كل الموظفين التى تبدأ بحرف S
هنا نلاحظ ان الشرط على الحرف الاول من البيانات فقط 
 
نلاحظ استخدام % فى اوراكل واحيانا * فى انواع اخرى من محركات قواعد البيانات لتدل على اكثر من حرف او صفر من الحروف
واستخدام _ لتدل على حرف واحد 

اذا اردنا اسم وتاريخ تعيين كل الموظفين الذين تم تعيينهم فى عام 95 وهذا يعنى ان التاريخ ينتهى ب 95 ولذلك يعتمد البحث على ان يكون البيانات فى حقل التاريخ تنتهى ب95
 

اذا اردنا كل الاسماء الاخيرة للموظفين والتى يكون ثانى حرف فيهاO
نلاحظ هنا استخدام _O%
 *ESCAPE* *identifier*

اذا اردنا ان نبحث عن اكواد الوظائف التى تبدأ ب SA_
هنا نجد ان المشكله هى وجود _ فى البيانات الاصليه وبالتالى فاننا نستخدم قبلها حرف هروب منها لكى يعلم محرك البحث انها جزء من البيانات الاصليه وليس معناها اى حرف كما ذكرنا سابقا ثم نتبع الشرط بجملة ESCAPE’\’
وكذلك ينطبق على % 
 تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  520 * 163.
*Using the* *NULL* *Conditions*
اذا اردنا الحصول على اسم الموظف الذى لا يوجد له مدير
اى لا يوجد بيانات فى الحقل MANAGER_ID الذى يخصه 
 *Logical Conditions*

نستخدم ANDللحصول على البيانات التى تحقق الشرطين معا 

 
نستخدم OR للحصول على البيانات التىتحقق اى من الشرطين او كلاهما معا 
 
نستخدم NOTللحصول على البيانات التى لا تحقق الشرط
 

*Rules of Precedence*

 اذا وجد مجموعة من هذه المعاملات معا فان محرك البحث يحسب بعضها قبل الاخر فمثلا اذا وجد اقواس تحسب ما فيها اولا اذا وجدالضرب * يحسب قبل الجمع + وهكذا واليك جدول يوضح هذا الترتيب 
 
لاحظ المثال التالى :
تجد ان ال AND تحسب اولا ثم ال OR بعد ذلك
 
اما اذا وجدت اقواس فانها تحسب اولا :
لاحظ المثال التالى :
تجد ان ما بين الاقواس وهى  الOR تحسب قبل الAND 
 
ولهذا يجب علينا وضع الشروط التى نريدها فى الترتيب المنطقى السليم حتى تعطى النتائج المطلوبه

----------


## Sc®ipt

*  بسم الله الرحمن الرحيم 
ربنا تقبل منا وتب علينا  انك انت التواب الرحيم
 ORDER BYClause  عندما نريد ان تعرض البيانات بترتيب حقل معين نستخدم 
Asc للترتيب التصاعدى وهو ال default وDesc  للترتيب التنازلى مع استخدام جملة ORDER BY
لاحظ فى المثال التالى ترتيب البيانات عن طريق ترتيب بيانات حقل تاريخ التعيين تصاعديا 
لاحظ لايشترط استخدام كلمة Asc     
 

لا حظ فى المثال التالى ترتيب البيانات عن طريق ترتيب بيانات حقل تاريخ التعيين تنازليا
لاحظ يشترط استخدام كلمة Desc
  
you can also sort by a column number in the 
SELECT list ممكن ان نذكر رقم الحقل فى جملة select  والذى نريد تريب البيانات على اساسه:لاحظ المثال التالى  
example sorts the output in the descending order by 
salary  


Sorting by Column Aliasممكن استخدام الاسم الرمزى والمعطى للحقل فى جملة select والذى نريد ترتيب البيانات عن طريق ترتيبه تصاعديا او تنازليا 
لا حظ المثال التالى :
 
Sorting by Multiple Columnsالترتيب باستخدام عدة حقول  

لا حظ فى المثال التالى اننا اخترنا ان نرتب البيانات بحيث يكون ترتيب رقم الادارة تصاعدى وترتيب المرتب تنازلى وهنا يتم ترتيب رقم الادارة اولا ثم يتم ترتيب المرتبات فى كل ادارة على حده تنازليا :

 
 Aggregating DataUsing GroupFunctions
* تجميع البيانات فى مجموعات واجراء عمليات على هذه المجموعات After completing this lesson, you should be able todo the following 
 Identify the available group functions*
 Describe the use of group functions*
Group data using the GROUP BY clause*
Include or exclude grouped rows by using theHAVING clause

?What Are Group Functions

Group functions operate on sets of rows to give one result per groupفمثلا اذا اردنا ان نأتى اكبر مرتبات كل الموظفين فسيخرج الناتج على هيئة قيمه واحدة فقط 
 

واذا اردنا ان نأتى بمجموع مرتبات موظفين كل ادارة فسنقسم اولا الموظفين الى مجموعات تمثل كل مجموعة الموظفين العاملين فى ادارة معينه ثم نجمع المرتبات الاجماليه لكل مجموعة وهو يدل على مجموع المرتبات لكل اداره  
Types of Group Functions• AVG تحسب المتوسط  لمجموعة من البيانات   
• COUNT تحسب عدد البيانات اى الحقول  فى  مجموعة من البيانات   
• MAX تحسب اكبر قيمة فى مجموعة من البيانات   
• MIN تحسب اصغر قيمة فى مجموعة من البيانات   
• STDDEVتحسب الانحراف المعيارى  لمجموعة من البيانات   
• SUMتحسب مجموع القيم الموجودة فى مجموعة من البيانات    
• VARIANCEتحسب التباين لمجموعة من البيانات    
Group Functions Syntax 

مثال :لايجاد متوسط المرتبات  واكبرمرتب واصغر مرتب ومجموع المرتبات لكل من يحتوى الكود الوظيفى لهم على الحروف REP    
 

مثال : لايجاد تاريخ تعيين اول موظف واخر موظف :



مثال : لايجاد اسم اول موظف واخر موظف من حيث الترتيب الابجدى :





مثال: لايجاد عدد  الموظفين فى الادارة رقم 50 من جدول الموظفين :

 


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

مثال : لايجاد متوسط الcells التى بها قيم فى حقل ال commission_pctمع ملاحظة عدم الاخذ فى الاعتبار الحقول الخاليه اى التى بها null مع جميع ال group functions: ففى هذا المثال نجد انه جمع قيمة الحقول التى تحتوى على قيم ويقسم على عدد هذه الحقول وليس العدد الكلى لحساب المتوسط للحقول التى بها قيم فقط :
 

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

هنا داله NVLتضع مكان كل NULLقميه صفر0 ثم نحسب المتوسط عن طريق جمع كل القيم ونقسم على العدد الكلى للROWS.
Using the GROUP BY Clauseنستخدم GROUP BY  لتقسيم النتائج الى مجموعات باستخدام حقل معين او اكثر .
مثال : فى جدول بيانات الموظفين نجد ان كل موظف امامه رقم الادارة التى يعمل بها وهذا الرقم يوضع امام كل الموظفين العاملين فى نفس الادارة فاذا اردنا ان نقسم الموظفين الى مجموعات بناءا على رقم الادارة وحساب متوسط مرتبات كل مجموعة امام رقم الاداره الخاص بها 
*اذن المسأله هى اوجد متوسط المرتبات فى كل اداره :

 
 *هنا نلاحظ ان كل الحقول فى SELECTيجب ان تكون موجوده فى GROUP BY الا اذا كانت GROUP FUNCTION
*واذا اردنا عرض المتوسط لكل مجموعه فقط يكون كالتالى :
 

 *سؤال : هل من الممكن تقسيم البيانات عن طريق اكثر من حقل كالتالى 
 

واذا كان صحيحا هل يمكنك تخيل شكل تقسيم البيانات ؟
*سؤال اخر : هل الجمل التاليه صحيحة ام خطأ؟ ولماذا ؟ 
 
 
هنا نكون قد وصلنا الى   الشكل التالى من جملة SELECT:
*

----------


## Sc®ipt

*سم الله الرحمن الرحيم 
ربنا تقبل منا وتب علينا انك انت التواب الرحيم 
Using the GROUP BY Clauseon
Multiple Columnsclause:فقرة
Multiple:متعدد
بالتأكيد يمكن التقسيم عن طريق اكثر من عمود بالتتابع حيث نقسم البيانات الى مجموعات عن طريق تقسيم العمود الاول ثم نقسم كل مجموعة من المجموعات الناتجه الى مجموعات هى الاخرى عن طريق تقسيم العمود الثانى وهكذا


*The GROUP BY clause specifies how you must group the rows:
– First, the rows are grouped by department number.
– Second, within the department number groups, the rows are grouped by job ID.
– So the SUM function is being applied to the salary column for all job IDs within each  department number group.illegal Queries Using Group Functions
illegal:غير صحيح او غير مسموح به
 



اما فى المثال التالى الخطأ فى اننا لا نستطيع استخدام where كالعادة فى وضع شروط على المجموعات والبديل هو استخدام having

Use the HAVING clause to restrict groups:
Restrict:يحد من او يقيد 
نلاحظ ان المطلوب فى المثال السابق هو وضع شرط على المجموعات ان يكون متوسط المرتب فى المجموعة اكبر من 8000
وكلمة where لم تفى هنا بالغرض كما هو واضح فى النتائج 
هنا يجب ان نستخدم كلمة   having  كالتالى :

تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  540 * 203.
 
مثال اخر على استخدام كلمة having:
 




Nesting Group Functions
Nesting:متداخل 








Displaying Datafrom Multiple Tables
Sometimes you need to use data from more than one table. In the  example, the report displays data from two separate tables 
Separate:منفصل 





• Employee IDs exist in the EMPLOYEES table.
• Department IDs exist in both the EMPLOYEES and DEPARTMENTS tables.
• ******** IDs exist in the DEPARTMENTS table.
To produce the report, you need to link the EMPLOYEES and DEPARTMENTS tables and access data from both of them.Cartesian Products
يجب علينا عندما نريد بيانات من اكثر من جدول ان نربطهم معا برابط صحيح وسوف نتناول انواع الروابط فيما بعد وذلك حتى نضمن الناتج الصحيح 
اذا لم نربط الجداول او نربطهم بطريقه خطأ تقوم قاعدة البيانات بضرب صفوف  الجداول معا  بالتبادل فيحدث خطأ فى النتائج 
الخلاصة : مشكلة حاصل الضرب للصفوف فى الجدولين او اكثر تحدث عندما نربط الجدولين او اكثر برابط خطأ او لا نربطهم اصلا او ان هناك علاقه صحيحة اصلا بين كل الصفوف فى الجدولين وهنا لا تصبح مشكله 
 
 
تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  510 * 285.

تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  520 * 165.

انواع الروابط : 
لا يوجد فرق بين oracle joins   و SQL1999 joins
فانت تستطيع ان ان تستخدم اى منهم اسهل بالنسبه لك  





What is an Equijoin?



*To determine an employee’s department name, you compare the value in the DEPARTMENT_ID
column in the EMPLOYEES table with the DEPARTMENT_ID values in the DEPARTMENTS table.
Determine:يحدد 
 * Values in the DEPARTMENT_ID column on both tables must be equal. Frequently, this type of join involves primary and foreign key  .
Frequently:بطريقه متكررة 
Involves:يستخدم



• The SELECT clause specifies the column names to retrieve:
– employee last name, employee number, and department number, which are columns in the EMPLOYEES table
–     department number, department name, and ******** ID, which are columns in the DEPARTMENTS table
• The FROM clause specifies the two tables that the data**** must access:
–    EMPLOYEES table
–    DEPARTMENTS table
• The WHERE clause specifies how the tables are to be joined:
EMPLOYEES.DEPARTMENT_ID = DEPARTMENTS.DEPARTMENT_ID
Because the DEPARTMENT_ID column is common to both tables, it must be prefixed by
the table name to avoid ambiguity.

Ambiguous:غموض والتباس
Common:مشترك



Additional Search Conditions Using the AND Operator
For example, to display employee Matos’department number and department name, you need an additional condition in the WHERE clause 




تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  510 * 143.

Using Table Aliases
• Simplify queries by using table aliases.
• Improve performance by using table prefixes.
Performance:أداء
Prefixes:بادئه الاسم 


 
Joining More than Two Tables


 تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  520 * 308.


To join n tables together, you need a minimum of n-1 join conditions. For example, to join three tables, a minimum of two joins is required.


For example, to display the last name, the department name, and the city for each employee, you have to join the EMPLOYEES, DEPARTMENTS, and ********S tables. 


تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  510 * 255.
 
 
*

----------


## Sc®ipt

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


الجزء الاول :
قاموس البيانات Data Dictionary

هو مجموعة من المعلومات عن جداول وفهارس البيانات تحقظ داخل هذا القاموس ، يستخدمها نظام إدارة قواعد البيانات 

الاستعلام Query
هو نظام استفساري للاستعلام عن بيانات معينة وغاليا لا يغير الاستعلام في قاعدة البيانات حيث إن غالبية نظم الاستعلام عبارة عن قراءة فقط للبيانات 

دوال Function 
عبارة عن مجموعة من تعليما ت أو أوامر تستخدم ضمن مسمى وظيفي لاداء عملية محددة وغالبا تعيد الدالة قيمة معينه بعد تنفيذها  
الاجراء Procedure
مجموعة من التعليمات مثل تعليمات الدالة بهدف تنفيذ مهمة محددة لكن الاجراء لا يعيد قيمة مثل الدالة

مخطط Schema 
عبارة عن مجموعة من الكائنات Objects مرتبطة بقواعد البيانات ويتألف مخطط الكائن من كائنات مثل الجداول Tables والاجراءات Procedure والعروض Views والفهارس Directories ...الخ

مدير قواعد البيانات Data**** Administrator (DBA) 
هو الشخص المسؤؤل عن عمليات إدارة قواعد البيانات ونظم أداء هذه القواعد وكيف يتم تكوينها وهو مسوؤل أيضا عن مراقبة أداء هذه القواعد ، وكذلك إجراء عمليات النسخ الاحتياطي وتثبيت البرامج ، والمحافظة على أمن المعلومات , وإذافة مستخدمين جدد أو إلفاء صلاحيات مستخدمين 

ويمكن ان يقوم مدير قواعد البيانات بالتخطيط لتطير وتنمية النظام المطبق ، وتحديد الحاجو لهذه التطورات المستقبلية .
ويسعى فريق العمل الذي يتكون من مديري قواعد البيانات DBA للحفاظ على سير العمل داخل الشركة بشكل متجانس . وتتم تجزئة المهام بين هؤلاء المديرين .
مهام مدير قواعد البيانات (DBA)
تتباين مهام مدير قاعدة البيانات تبعا لحجم الشركة أو المؤسسة وتبعا لفريق العمل المساعد وتشمل هذه المهام النقاط التالية : 
1- تثبيت البرمجيا الجديدة
2- إدارة الحماية لنظام قواعد البيانات 
3- النسخ الاحتياطي والدوري للبيانات ونظام قواعد البيانات 
4- استكشاف الأخطاء ومعالجتها
5- تسوية وإصلاح إخفاقات المساخدمين للوصول إلى بياناتهم 


6- متابعة ضبط أداء العمل 
7- تقسسم الأجهزة والنطم الجديدة
8- العمل على تطوير النظام بالشركة 

نظام إدارة قاعد البيانات Data **** Management System (DBMS) 

هو عبارة عن مجموعة الأدوات البرمجيه ( البرامج ) التي تدير وتنظم قاعدة البيانات وتوجد علاقة ارتباط بين هذه البيانات تسمى علاقة (Relation) لذا احبانا يطلق عليها RDBMS أي نظام إدارة قواعد البيانات العلائقية ( الارتباطية ) 
مميزات نظام إدارة قاعدة البيانات أوراكل  

يتميز نظام قاعدة البيانات أوراكل عن غيره من نظم إدارة قواعد البيانات الأخرى بالآتي:

1- القدرة الفائقة على استيعاب كميات كبيرة من البيانات قد يصل عدد السجلات إلى الملايين مع الحفاظ على المستوى العالي في الأداء والسرعة عند استرجاع والتخزين والحذف 
2- السرية التامة والأمن لا حتوائه على نظام الصلاحيات والحقوق الذي يضمن تطبيق الشروط القياسية والأمنية للحفاظ على قاعدة البيانات 
3- فعالية التحكم المركزي بالبيانات الذي يضمن :
· تقليل التكررات غير اللازمة في البيانات الداخلة (No Repetition) 
· تجنب التناقض بين البيانات (NoContradiction) 
· إمكانية التشارك في البيانات (Data Sharing)
· الحفاظ على تكامل البيانات فيما بينها (IntegrityData)
4- السيطرة التامة على عملية النسخ الاحتياطي لقاعدة البيانات وحمايتها من الفقدان أو التلف مع امكانية استرجاعها في أي لحظة  
عمليات نظام إدارة قاعدة البيانات


يشتمل نظام إدارة قاعدة البيانات اوراكل على العمليات التالية  
1- أوامر لغة تعريف البيانات Data Definition ******** (DDL) 
تستخدم هذه اللغة في تعريف وإنشاء الكائن Object ، ويمكن أن يكون الكائن ملفات وجداول بيانات ، فيمكننا إنشاء وتعديل وحذف الكائن ويمكننا إنشاء امتياز لمستخدم معين ، أو انشاء كائن خيارات لفحص وإضافة تعليقات إلى قاموس البيانات ومن هذه الأوامر : CREAT , DROP and ALTER 
2- أوامر لغة معاملة البيانات Data Manipulation ******** (DML) 
تتيح هذه الأوامر التعامل مع البيانات وتعديلها ضمن الكائن الموجود Object ومن هذه الأوامر : SELECT, DELETE,UPDATE and INSERT 
3- أوامر لغة التحكم في البيانات Data Control ******** (DCL) 
تتيح هذه الأوامر التحكم في قاعدة البيانات وأدائها كالصلاحيات والمستخدمين والحقوق وغالبا ماتكون هذه الأوامر مخصصة للاستخدام من قبل مدير قاعدة البيانات (DBA) ومن هذه الاوامر : GRANT and REVOKE 


نمذجة العلافة Relational Model Algebra 

تعرف بانها العمليات التي يتم اجراؤها على جدول أو مجموعة من الجداول تبعا لعلاقة محددة ويوجد معاملان Operators هما Unary والثاني Binary والجدول التالي يعدد سبعة انواع لهذه العمليات 

وصف العملية



نوع العملية Type


العملية Operation

تجميع الصفوف السجلات من جدولين مع عدم السماح بنكرار سجلات
Binary

Union
تحديد السجلات (الصفوف) المشتركة بين جدولين 
Binary
Intersection
اظهار السجلات الموجودة في الجدول الاول ولا توجد في الجدول الثاني
Binary
Difference
إظهار السجلات مع بعض الأعمدة (مصدر البيانات)
Unary
Projection
إظهار السجلات من جدول مصدر البيانات تبعا لمعيار البحث Criteria 
Unary
Selection
وصل كل سجل من جدول البيانات الول مع كل سجل في الجدول الثاني
Unary
Product
وصل وتمديد السجلات من الجدول الأل مع مايقابله من سجلات في الجدول الثاني
Unary
Join


مكونات قاعدة البيانات العلائقية RDBMS Components

تتكون قاعدة البيانات العلائقية من :

1- نظام تشغيل ثاعدة البيانات ويطلق عليه Kernel
2- قاموس البيانات Data Dictionary 
ويتكون نظام تشغيل وتنظيم قاعدة البيانات (Kernel) من مجموعة من الوحدات البرمجية Software والذي صمم بيحكم وينظم وينعامل مع البيانات مابين حفظ واسترجاع وطباعة وكذلك تحديد المسؤليات وعمل نظم الأمان وحماية البيانات 
وعادة يحتفظ نظام قاعدة البيانات بقائمة من المستخدمين الذين لهم صلاحية للتعمل مع تطبيق قاعدة البيانات  

ويحوي قاموس البيانات Data Dictionary وصفا لشكل البيانات ويطلق على هذا الوصف **** De******ion أو **** Data وهذا الوصف يرتبط بكافة الكائنا ت Objects ضمن قاعدة البيانات 
وقاموس بيانات أوراكل يحتوي على مجوعة جداول صاعدة البيانات المخزنة عن طريق الـ Kernel وأيضا على كائنات الفهارس Indexes كائنات العرض Views كائنات الاستعلام والاستقسار SQL and Query كائنات الإجراء Procedure والدوال Function ...  
العلاقة بين الخادم والمستفيد(العميل) Client/Server 
الخادم Server 
يحوي الخادم قاعدة البيانات المركزية ووظائفها ، وكذلك كافة العمليات الخلفية لحفظ هذه الفاعدة وبحوي ايضا أدوات تشغيل وإيقاف فاعدة البيانات  

المستفيد Client

أما المستفيد Client فيحتوي على برامج الخدمات والبرامج المساعده والتي بمكننا تشغيلها عن بعد باستخدام الشبكة كما يتضمن نظام المستفيد الوسيط الرسومي Graphical Interface الذي يسهل علينا استخدامه وتوجد أداة الاتصال بين الخادم والمستقيد وهيNet 8 لتقوم بعمليات الربط والاتصال عبر الشبكة  




و تشمل حزمة البرامج لنظام المستفيد على 
1- مدير المشروع Enterprise Manager
ويحوي داخله المكونات التالية
· متحكم مدير المشروع Enterprise Manager
· مدير مخطط قاعدة البيانات Schema Manager 
· مدير السرية Security Manager
· مدير الطبعة Instance Manager 
· مدير التخزين Storage Manager
· مدير البيانات Data Manager
· مدير النسخ الاحتياطي للبيانات Backup and Recovery Manager
· ورقة عمل الاستعلام SQL Worksheet
· شريط أدوات المسؤول Administrator Toolbar 
2- المساعدون Assistants
3- نظام الاستعلام SQL*PLUS
والشكل التالي يوضج مكونات حزمة البرامج للمستفيد Client 


نظام الاستعلام SQL*PLUS



المساعدون Assistants


مدير المشروع Enterprise Manager


ورقة عمل الاستعلام SQL Worksheet


مدير مخطط قاعدة البيانات Schema Manager


متحكم مدير المشروع Enterprise Manager


مدير الطبعة Instance Manager


مدير النسخ الاحتياطي للبيانات Backup and Recovery Manager


مدير السرية Security Manager


شريط أدوات المسؤول Administrator Toolbar


مدير التخزين Storage Manager


مدير البيانات Data Manager



 

 



اما الجزء الثانى من الموضوع فهو نبذه تاريخيه عن اوراكل واصداراتها :



بداية أوراكل كانت في عام 1977فقد قامت شركة أسمها ) أر إس أي( وهي اختصارا إلى ببناء نظام لإدارة قواعد بيانات بالاسم أوراكل حيث تم بيع الإصدار الأول عام 1979وبعد أن لاقى رواجا سريعا توالت الشركة بطرح الإصدارات الجديدة والمتطورة على التوالي وهي كالتالي
الإصدار الثاني فقد تم بنائه من أجل العمل مع حوا سيب الــ( بي دي بي الرقمية( والتي تعمل على نظام التشغيل (أر إس إكس) والتي عملت فيما بعد على نظام(دي اي سي فاكس)
الإصدار الثالث من النظام تم طرحه عام 1983 حيث أجريت عليه الكثير من التحسينات خاصة تلك المتعلقة بصيغة (لغة الأستفسارات القياسية) وتم كتابته بلغة (سي) وتم تغيير اسم الشركة من ) أر إس أي( إلى مجموعة أوراكل
الإصدار الرابع من أوراكل تم إنجازه عام 1984 ولقد دعم هذه الإصدار نظامي التشغيل (فاكس) و(أي بي أم في أم) كما كان أول إصدار يدعم خاصية تناسق القراءة
الإصدار الخامس من أوراكل فقد تم إنجازه عام 1985 وقدم هذا الإصدار دعما لتقنية الزبون / الخادم باستخدام (لغة الأستفسارات القياسية) كما انه أول منتج يعمل ضمن نظام التشغيل والذي استطاع تجاوز حاجز 640 كيلو بايت من نظام التشغيل DOS
الإصدار السادس من أوراكل تم إنجازه عام 1988 ولقد أضاف تقنية القفل على مستوى منخفض إضافة إلى العديد من التحسينات والوظائف والمنصات كما أضيف إليه خيار التوازي والذي يعمل على نظام (دي اي سي فاكس) وذلك عام 1991 ومن ثم اصبح هذا الخيار متاحا ضمن العديد من المنصات
الإصدار السابع فقد تم طرحه عام 1992 وتم عليه إجراء العديد من التغييرات والإضافات مثل منطقة الذاكرة والمعالجة المركزية واستخدام الدخل والخرج واحتوى أيضا على الكثير من الأدوات الخاصة بمديري قواعد البيانات
ثم الاصدار الثامن والذي يتضمن مفهوم الأغراض بالإضافة إلى العديد من الميزات والتقنيات وأدوات إدارة قواعد البيانات والسماح لوجود حقول تتسع إلى حد 4جيجابايت للحقل الواحد كحد أقصى
ثم اتى الاصدار التاسع وبه الكثير والكثير من المميزات 
ثم أخيرا فقد تم طرح الإصدار الأخير من أوراكل وهو الإصدار 10g والذى يعتبر طفره فى عالم قواعد البيانات وهو موضوعنا بالدراسة 
هذا الرسم البياني يبين أرباح الشركة خلال بعض السنوات الماضية بالمليون دولار أمريكي



*

----------


## Sc®ipt

نكمل لغة ال  sql وما بدأناه فى موضوع ال joins
*Non-Equijoins*هذا النوع من الربط لا نستخدم فيه علاقه التساوى بين جهتين العلاقه ولكن هذه المرة نستخدم احد العلاقات التالية :=< و=> و
 between “low value” and “high value” 
وغيرها 
 
 
*Outer Joins*من الجداول التاليه نريد اسماء العاملين وارقام اداراتهم  وهذا ببساطة عن طريق Equijoinوالتى تناولناها فى الموضوع السابق
تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  510 * 188.



ونلاحظ  : لن يظهر فى النتيجة ارقام الادارات التى لا يعمل بها احد وهى الاداره 190




فماذا اذا  اردنا اسماء كل العاملين وارقام اداراتهم بالاضافة الى اسماء اى ادارة لا يعمل بها احد ؟
الاجابه :عن طريق اضافة (+) لجهة جدول العاملين فى  العلاقه لتصبح 

 

ولك ان تتخيل اننا وضعنا (+)فى الجهة الاخرى من علاقة التساوى فماذا سيكون الناتج ؟
الناتج سيكون اسماء العاملين وارقام اداراتهم بالاضافة الى اسماء العاملين الذين لا ينتمون الى اى ادارة !
*Self Joins*تعالوا بنا نقرأ السطور التالية والتى تصف هذه الرابطة : 
*Joining a Table to Itself*
Sometimes you need to join a table to itself. To find the name of each employee’s manager, you need to join the EMPLOYEES table to itself, or perform a self join. 
تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  580 * 398.

For example, to find the name ofWhalen’s manager, you need to:
• Find Whalen in the EMPLOYEES table by looking at the LAST_NAME column.
• Find the manager number for Whalen by looking at the MANAGER_ID column. Whalen’s manager number is 101.
• Find the name of the manager with EMPLOYEE_ID 101 by looking at the LAST_NAME column. Kochhar’s employee number is 101, so Kochhar is Whalen’s manager.
*In this process, you look in the table twice. The first time you look in the table to find Whalen in theLAST_NAME column and MANAGER_ID value of 101. The second time you look in the EMPLOYEE_ID column to find 101 and the LAST_NAME column to find Kochhar.



تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  540 * 293. 





اما الان ننتقل الى  طرق اخرى للربط تؤدى الى نفس النتائج ولكن باستخدام 
*Joining Tables Using SQL: 1999 Syntax*
وهنا نلاحظ انها عبارة عن ادوات مختلفة تؤدى نفس الوظائف السابقة ولهذا سنتناولها باللغة الانجليزية  :
 تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  640 * 180.

 

تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  650 * 278.

*Creating Cross Joins*

• *The* *CROSS JOIN* *clause produces the crossproduct*
*of two tables.*
• *This is the same as a Cartesian product between*
*the two tables.*

 

The last example   gives the same results as the following:

 

*Creating Natural Joins*
• *The* *NATURAL JOIN* *clause is ****d on all columns*
*in the two tables that have the same name.*
• *It selects rows from the two tables that have equal*
*values in all matched columns.*
• *If the columns having the same names have*
*different data types, an error is returned.*

 

The natural join can also be written as an equijoin as follows:

 




*Natural Joins with a* *WHERE* *Clause*
Additional restrictions on a natural join are implemented by using a WHERE clause. The examplebelow limits the rows of output to those with a department ID equal to 20 or 50.





*Creating Joins with the* *USING* *Clause*
• *If several columns have the same names but the data types do not match, the* *NATURAL JOIN** clause can be modified with the* *USING* *clause to specify the columns that should be used for an*
*equijoin.*
• *Use the* *USING* *clause to match only one column when more than one column matches.*
• *Do not use a table name or alias in the referenced columns.*
• *The* *NATURAL JOIN* *and* *USING* *clauses are mutually exclusive.*

 تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  520 * 248.


This can also be written as an equijoin:

تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  550 * 90. 

Natural joins use all columns with matching names and data types to join the tables. The USING clause can be used to specify only those columns that should be used for an equijoin. The columns referenced in the USING clause should not have a qualifier (table name or alias) anywhere in the SQL statement.
 تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  580 * 173.



*Creating Joins with the* *ON* *Clause*
• *The join condition for the natural join is basically*
*an equijoin of all columns with the same name.*
• *To specify arbitrary conditions or specify columns*
*to join, the* *ON* *clause is used.*
• *The join condition is separated from other search*
*conditions.*
• *The* *ON* *clause makes code easy to understand.*

 


The ON clause can also be used as follows to join columns that have different names:

 تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  580 * 240.



*Creating Three-Way Joins with the* *ON* *Clause*
A three-way join is a join of three tables. In SQL: 1999 compliant syntax, joins are performed from left to right so the first join to be performed is EMPLOYEES JOIN DEPARTMENTS. The first join
condition can reference columns in EMPLOYEES and DEPARTMENTS but cannot reference columns in ********S. The second join condition can reference columns from all three tables.

 

This can also be written as a three-way equijoin:

 تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  540 * 80.


The example shown can also be accomplished with the USING clause:


 

*LEFT OUTER JOIN*
This query retrieves all rows in the EMPLOYEES table, which is the left table even if there is no match in the DEPARTMENTS 
table.

 


This query was completed in earlier releases as follows:

 


*RIGHT OUTER JOIN*
This query retrieves all rows in the DEPARTMENTS table, which is the right table even if there is no match in the EMPLOYEES table.

 


This query was completed in earlier releases as follows:

 

*FULL OUTER JOIN*
This query retrieves all rows in the EMPLOYEES table, even if there is no match in the DEPARTMENTS table. It also retrieves all rows in the DEPARTMENTS table, even if there is no match in the EMPLOYEES table.
 

It was not possible to complete this in earlier releases using outer joins. However, you could accomplish the same results using the UNION operator.
 تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  520 * 150.

*Joins - Comparing SQL: 1999 to Oracle Syntax*
 تم تصغير هذه الصورة. إضغط هنا لرؤية الصورة كاملة. الحجم الأصلي للصورة هو  640 * 180.
وهكذا نكون بحمد الله قد تناولنا   انواع الروابط المستخدمة وان شاء الله ننتقل الى جزء اخر اكثر عمقا وتحديا  من لغة ال sql

----------


## Sc®ipt

*مسأله التصميم مسأله نسبيه فيمكن ان يوجد اثر من تصميم لقاعدة البيانات الواحدة وكلها صحيحة ...
ولكن الحكم النهائى اعزائى بكفاءة التصميم ... 
ويسبق التصميم احبائى مرحلة التحليل ويقوم فيها المحلل بسماع متطلبات العميل "الشركة –البنك -.."من قاعدة البيانات التى يريدونها 
ثم يحلل هذه المتطلبات وتحديد كيفيتها بدقه ثم يتم وضع مخطط علائقى لقاعدة البيانات المطلوبه ثم يقوم المصمم بعمل التصميم من جداول وعلاقات وغيرها وهنا يأتى دور الديفولوبر الذى يقوم بعمل الفورم المطلوبه وفى النهايه يأتى دور مدير قواعد البيانات لوضع قاعدة البيانات على السيرفرات وعمل نظم الامن واستيراتيجيات الادارة وهكذا يكون التخصص والتكامل معا ..
ونبدأ بالتحليل : واطلق علي المحلل انه مصباح علاء الدين السحرى    ؟؟؟؟
لماذا ؟ لان علي المحلل ان يفهم ما يدور فى ذهن العملاء  من متطلبات مهما كانت وينفذها ؟ بس ازاى ؟؟؟؟
لازم يفكر وفى نفس الوقت يكون على درايه تامة بقدراته العملية والتنفيذيه حتى يتمكن من ان يقول هذا الطلب يمكن عمله او هذا مستحيل عمله ... وفى هذا الوقت من التقدم يكاد كل شىء ممكن ؟
فما على العميل الا ان يحلم وانت ايها المحلل تنفذ هذه الاحلام ؟
بل اذا كانت احلام العميل تحتاج الى ما يكملها فعلى المحلل ان يتخيل هذه الاجزاء المفقودة من الاحلام ؟ 
وهكذا يكون للمحلل من الراتب ما يليق بهذا العمل الفذ اللهم لاحسد
فما هو التحليل :
تخيل انك محلل وطلب منك والدك تصميم قاعدة بيانات تضم معلومات عن الكتب التى فى المكتبه بالمنزل ؟
وجلست معه  وكان الحوار كالتالى :
الاب :اريد قاعدة بيانات لكل هذه الكتب التى توجد فى المكتبة هنا وهناك ؟
انت : تمام ،فما ذا تريد ان توفر لك هذه القاعدة ؟
الاب : كل شىء؟اسماء الكتب والمؤلفين والموضوعات وجهة النشر   "هذه تعتبر متطلبات "
انت : طب تحب نرتب الكتب بترتيب معين وتوفر لك قاعدة البيانات معلومات عن اماكن الكتب فى اى رف ورقم المسلسل ؟"تكمله لمتطلبات الاب ربما لم يذكرها ولكنه يحتاجها "
الاب : اكيد دا دا اهم حاجه ..دا انا بدوخ على ما الاقى الكتاب اللى انا عايزه وياريت اعرف المكان بتاع الكتاب من المؤلف لو حبيت
"هنا الاب اثنى على الفكرة واخذ يكمل احلامه"
اخوك الاصغر : الذى لم يأتى الا من عشرة دقائق فاذا به يقول لك :
 وياريت لما اقول اسم الكتاب يطلع من المكتبه لوحدة ؟؟؟؟
انت : ستنفجرانت ووالدك  فى الضحك تسخر من هذا الطلب الذى يكاد يكون حلما بالفعل ؟؟؟
وهنا اقول لك لماذا تضحك ؟ فهذه التقنيه موجودة بالفعل فى كثير من التطبيقات فى العالم ؟ يالا بقى ورينا شطرتك ؟ وقولنا هنعمل الكلام دا ازاى وايه هى الجداول والعلاقات والفهارس ؟ وياترى ممكن تكلفك كام الطلبات دى 

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



النهاية

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

منقول
*

----------


## شذى البنفسج

:SnipeR (62):

----------


## عُبادة

مشكور كثير زيد

ليش ما تشاطرت ودرست لما كنا منزلنها :SnipeR (30):

----------


## Sc®ipt

> مشكور كثير زيد
> 
> ليش ما تشاطرت ودرست لما كنا منزلنها


ليش كان وضعي فيها ماشي حاله
بس هسه الحمدلله وضعي ممتاز فيها بعد ما تعلمت الphp << عقبالك


 :SnipeR (62):

----------


## mehmeh

تسلم على الكتب المفيدة

----------


## mohammed.aau

تســــــــــــــــــــــــــــــــــــــــــــــــ  ــــــــــــــــــــــــــــــــــــــــــــــــــ  ــــــــــــــــــــــــــــــــــــــــــــــــــ  ـلم

----------


## ashrafabdellatif

ارجو اظهار الروابط كى اتمكن من مشاهدة البرنامج ا موفق بإذن الله ... لك مني أجمل تحية .  


 :SnipeR (23):  :Bl (7):

----------

