5/13/2013

[كتاب] الموسوعة العربية لادارة قاعدة البيات اوركل

السلام عليكم

كتاب اكثر من رائع يتحدث عن قواعد البيانات فى اصدار 10G لـ مديرى قواعد البيانات  بـ اسم (الموسوعة العربية لادارة قاعدة البيات اوركل )

لـ استاذ / ابى صلاح الميرغنى 

مقطتفات من الكتاب:

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

من البديهي أن نبدأ حديثنا ونقاشنا عن إدارة قاعدة البيانات بهذا الموضوع الهام، إذ أن مدير قاعدة
البيانات بحاجة ماسة لمعرفة مكونات قاعدة البيانات وطريقة عملها، وإذا تعذر عليه استيعاب هذا الجزء
فالأرجح أنه سوف يواجه مشاكل أكبر في استيعاب التفاصيل التي ُتبني أساسًا علي هذا الأصل ، لذا
وجب علي مدير قاعدة البيانات الاهتمام بهذا الجزء أيما اهتمام.

4/09/2013

Correlated Subqueries

السلام عليكم 
Correlated Subqueries

يستخدم الـ Correlated Subqueries لمعالجه الصفوف (صف صف) ويتم تنفيذ كل استعلام فرعى مره واحده لكل صف من الأستعلام الخارجى (outer query) وتتم معالجته بواسطه (parent statement) ويمكن ان يكون parent statement جمله select ,update and delete

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

نرجع لموضعنا الأساسى فى البدايه انت محتاج انك تعرف الفرق بين Nested subquery والـ Correlated Subqueries  ومن خلال الفروقات ده هتقدر تعرف ايه هو اصلا Correlated Subqueries وامتى تستخدمه وهتستفيد ايه لما تستخدمه لان من بره شكل Nested subquery و Correlated Subqueries شبه بعض .

ما الفرق بين  Nested subquery و Correlated Subqueries ؟
Nested Subqueries Versus Correlated Subqueries

4/02/2013

Scalar Subquery Expressions

السلام عليكم
Scalar Subquery Expressions

هو عباره عن subquery  يقوم  بأسترجاع قيمه واحده من عمود فى صف واحد وقيمه scalar subquery expression تأتى من جمله الـ SELECT...
 فى حاله ان scalar subquery يسترجع 0 اذن فـ قيمته تساوى null فى حاله scalar subquery قام بأسترجاع اكثر من صف -returns more than one row- تظهر اوركل خطأ.

يمكنك استخدام Scalar Subquery Expressions  فى الحالات التاليه:


The condition and expression part of DECODE and CASE
All clauses of SELECT except GROUP BY
The SET clause and WHERE clause of an UPDATE statement

4/01/2013

Column Comparisons

السلام عليكم 

يوجد نوعان من Column Comparisons :
Pairwise comparison 
Nonpairwise comparison

Pairwise comparison

Code

SELECT EMPLOYEE_ID
     , MANAGER_ID
     , DEPARTMENT_ID
FROM   EMPLOYEES
WHERE (MANAGER_ID, DEPARTMENT_ID) IN (SELECT MANAGER_ID
                                           , DEPARTMENT_ID
                                      FROM   EMPLOYEES
                                      WHERE  EMPLOYEE_ID IN (199,174))
AND    EMPLOYEE_ID NOT IN (199,174);


3/16/2013

Managing Data in Different Time Zones

السلام عليكم
Managing Data in Different Time Zones

ان شاء الله بعد انتهاءك من الدرس ستكون قادر على فهم واستخدام الـ Functions التاليه :

• TZ_OFFSET
• FROM_TZ
• TO_TIMESTAMP
• TO_TIMESTAMP_TZ
• TO_YMINTERVAL
• CURRENT_DATE
• CURRENT_TIMESTAMP
• LOCALTIMESTAMP
• DBTIMEZONE
• SESSIONTIMEZONE
• EXTRACT

2/21/2013

Tracking Changes in Data

السلام عليكم
Tracking Changes in Data

قد تكتشف فى بعض الأحيان وجود تحديثات غير لائقه فى البيانات داخل الجداول وتريد ان تعرف متى تم اضافه هذه البيانات داخل الجداول ففى هذه الحاله يمكنك استخدام multiple flashback queries لأستعراض البيانات عند نقطه معينه فمن خلال هذه الأداه سوف تتمكن من استعراض كافه التغييرات على البيانات خلال فترات زمنيه مختلفه.
ملحوظه : يمكنك عمل ذلك فى حاله كان اصدار قاعده البيانات لديك اقل من او يساوى oracle database 10g.1
ولكن ما بعد ذلك فهى تعمل خلال فتره زمنيه لا تتجازو الـ 900 ثانيه 
وتمكنك هذه الاداه من الحاق VERSIONS clause الى جمله SELECT لكى تتمكن من تحديد فتره زمنيه معينه بأستخدام SCN or timestamp   لكى تتمكن من رؤيه التعديلات التى تمت  على البيانات 
ما هو (SCN) ؟
هو System Change Number
تقوم اوركال بأدخال ارقام معينه الى الصفوف فى قاعده البيانات بعد كل عمليه حفظ لكى تتمكن بعد ذلك من الرجوع الى نقطه معينه 

فى المثال التالى سوف اقوم بعمل update على جدول employees سوف اقوم بتعدل راتبه من كذا الى كذا ثم سوف استعرض راتبه قبل التحديث وبعد التحديث ثم سوف استخدام VERSIONS clause لـ استعراض راتبه قبل التحديث وبعده.


2/18/2013

The MERGE Statement

السلام عليكم
The MERGE Statement

تمكنك جمله MERGE من عمل INSERT , UPDATE and DELETE  فى جدول معين بناء على شرط معين ولكى تتمكن من عمل اضافه او تعديل او حذف على جدول معين يجب ان تمتلك هذه الصلاحيات على هذا الجدول ويجب ان تمتلك صلاحيه SELECT من الجدول المراد الاستعلام عنه لـ اضافه ما تم الاستعلام عنه فى جدول المراد التعديل او الاضافه او الحذف عليه بناء عليه فـ انت لديك جدولين جدول -source- وهذا الجدول سيتم منه الاستعلام وجدول اخر -target- وهذا ما سيتم التعديل عليه.
الكود العام لـ MERGE
General Code
MERGE INTO table_name table_alias
USING (table|view|sub_query) alias
ON (join condition)
WHEN MATCHED THEN
UPDATE SET
col1 = col_val1,
col2 = col2_val
WHEN NOT MATCHED THEN
INSERT (column_list)
VALUES (column_values);

2/11/2013

Multitable INSERT Statements

السلام عليكم
Multitable INSERT Statements

ما هو Multitable INSERT Statements ؟
هو يمكنك من  ادخال عده قيم فى اكتر من جدول فى وقت واحد
هو مناسب جدا لـ انظمه المستودعات -warehousind- حيث يمكنك من نقل البيانات الناتجه عن اكثر من عمليه لوضعها فى جدول معين.
وهو اداه سريعه جدا مقارنه بـ استخدام جمل Single DML اوجمل IF فى عمليات INSERT
توجد عده انواع لـ Multitable INSERT Statements
Unconditional INSERT
Conditional ALL INSERT
Conditional FIRST INSERT
Pivoting INSERT
General Code
INSERT [ALL] [conditional_insert_clause]
[insert_into_clause value_clause] (subquery)
# conditional_insert_clause
[ALL] [FIRST]
[WHEN conditional THEN] [insert_into_clause values_clause]
[ELSE] [insert_into_clause values_clause]

2/10/2013

BLOG.ARAFA.ME

السلام عليكم

تم تغيير اسم المدونه من arafaa.blogspot.com الى blog.arafa.me عند استخدامك لـ الدومين القديم سوف يتم تحويلك الى الدومين الجديد مع ظهور هذه الصفحه فلا تقلق استكمل العمليه



2/09/2013

Explicit Default Feature

السلام عليكم
Explicit Default Feature

يمكنك استخدام default مع جمله insert or update لوضع قيمه افتراضيه داخل عمود معين . فى حاله عدم وجود قيمه افتراضيه سوف تقوم اوركال بوضع قيمه null 
فى المثال التالى سوف استخدام default مع جمله insert 
Code
INSERT INTO DEPT 
(DEPARTMENT_ID , DEPARTMENT_NAME,MANAGER_ID)
VALUES
(300,'DEVELOPER',DEFAULT);

2/07/2013

Updating Two Columns with a Subquery,Deleting Rows Based on Another Table

السلام عليكم
Updating Two Columns with a Subquery

كيف يمكنك عمل تحديث لعمودين او اكثر بأستخدام الـ subquery
فى المثال التالى يوجد جملتين subquery   فى الاولى اريد ان اجعل قيمه الـ job_id تساوى نفس قيمه الـ job_id للموظف رقم 205. فى الثانيه اريد ان اجعل قيمه الراتب نفس قيمه راتب الموظف رقم 205 واريد اجمالاعمل تحديث للقيم فى جدول emp13 للموظف رقم 104

Code
UPDATE EMP13
SET         JOB_ID = (SELECT JOB_ID
                              FROM    EMPLOYEES
                              WHERE  EMPLOYEE_ID = 205)
                                    ,
               SALARY= (SELECT SALARY
                              FROM   EMPLOYEES
                              WHERE EMPLOYEE_ID = 205)
WHERE EMPLOYEE_ID = 104;

2/04/2013

Inserting Using a Subquery as a Target , (Retrieving Data with a Subquery as Source (in line view

السلام عليكم
Inserting Using a Subquery as a Target

درس اليوم عكس المره السابقه :) لقد تحدث فى درس سابق عن كيف يمكنك اضافه صف او اكتر من صف داخل جدول باستخدام الـ Subquery وقد استخدمنا ال subquery للاستعلام عن قيمه معينه وادخالها فى الجدول كـ قيمه .

ولكن اليوم سوف نستعلم عن جدول ونضع له القيمه بأستخدام جمله 
value clause
Code
INSERT INTO 
(SELECT EMPLOYEE_ID
               ,LAST_NAME
               ,EMAIL
               ,HIRE_DATE
               ,JOB_ID
               ,SALARY
               ,DEPARTMENT_ID
FROM    EMP13
WHERE  DEPARTMENT_ID = 50);
VALUE
(99999,'ARAFA','A.ARAFA',TO_DATE('5-NOV-1986','DD-MON-RR'),'ORA_DEV'
,':D',50);

2/02/2013

Using Subqueries to Manipulate Data , Copying Rows from Another Table

السلام عليكم
Using Subqueries to Manipulate Data

يمكنك استخدام subquery مع جمل DML 
ويمكنك الاستفاده من subquery فى التالى :

يمكنك نقل البيانات من جدول الى اخر
يمكنك استعاده او استقبال البيانات من inline view
يمكنك تعديل البيانات فى جدول بناء على قيمه مُرسله من جدول آخر
يمكنك مسح صف من جدول بناء على صف من جدول آخر
يمكنك استخدام subqueries  لـ استعاده البيانات من جدول ويمكنك استعمالها فى ادخال البيانات لـ جدول آخر ومن خلال هذا الاسلوب او المنهج يمكنك نقل كميه كبيره من البيانات بسهوله من جدول الى جدول آخر بأستخدام جمله الـ SELECT 
ويمكنك ايضا استخدام subqueries للتعديل او الحذف مع WHERE CLAUSE فى جمله الـ UPDATE OR DELETE ويمكنك ايضا استخدام subqueries مع FORM CLAUSE وهذا ما يسمى بـ INLINE VIEW

2/01/2013

Backup Oracle Database (Oracle Enterprise Manager)

السلام عليكم

كيف يمكنك اخذ نسخه احتياطيه من قاعده بيانات اوركال بأستخدام Oracle Enterprise Manager
قم بلدخول على OEM بأستخدام الرابط التالى
http://LOCALHOST:1158/em
استبدل   LOCALHOST   فى حاله لو لم تكن على سيرفر قاعده البيانات واستبدلها بـ IP سيرفر قاعده البيانات
ثم قم بكتابه اسم المستخدم وكلمه مرور مدير قواعد البيانات ثم اختر من connect as --> SYSDBA

صوره (1)

1/31/2013

Cascading Constraints , ON DELETE CASCADE

السلام عليكم
Cascading Constraints

هى تقوم بـ الغاء العلاقات بين الجداول فى حاله Primary key,Unique , Foreign key
 يمكنك استخدامها مع جمله DROP COLUMN 
يمكنك ايضا من خلالها مسح اكتر من قيد فى نفس الوقت 
على سبيل المثال عندى جدول بأسم test_constraint يوجد علاقه ما بين عمود fk وعمود pk وهى علاقه اب لـ ابن
Code

CREATE TABLE  TEST1 (
PK     NUMBER PRIMARY KEY,
FK     NUMBER,
COL1 NUMBER,
col2   NUMBER,
CONSTRAINT fk_constraint FOREIGN KEY (fk) REFERENCES test1,
CONSTRAINT CK1 CHECK (PK > 0 AND COL1 > 0),
CONSTRAINT ck2 CHECK (col2 > 0));

1/29/2013

The FLASHBACK TABLE Statement

السلام عليكم
The FLASHBACK TABLE Statement

هى ميزه جديده توفرها قاعده بيانات اوركال فى اصدار 10 جى وهى تصنف ضمن SQL DDL. تمكنك هذه الاداه من الرجوع الى نقطه معينه على سبيل المثال لو قمت بمسح جدول عن طريق الخطأ واردت ان تستعيد هذا الجدول مره اخرى ولكن فى حاله استخدامك للامر PURGE لن تتمكن من استعاده اى شىء قمت بحذفه.
 وايضا اذا قمت بمسح او تعديل عمود معين او صف يمكنك من خلال الـ FLASHBACK تستطيع ان تعود الى نقطه معينه وهى اداه سهله وسريعه وبسيطه فى الاستعمال وتمكنك ايضا من استرجاع اكتر من جدول فى نفس الوقت على اكثر من SCHEMA كل ما عليك فعله هو عمل جمله استعلام معينه على RECYCLEBIN  ويظهرلك من خلالها اسم الجدول وحالته والوقت الذى تم فيه عمليه المسح.
هذا هو الكود العام للأمر

1/27/2013

Oracle Enterprise Manager (Host Credentials)

السلام عليكم
Oracle Enterprise Manager (Host Credentials)

 قد تحتاج الى بعض المميزات التى يتيحها لك Oracle Enterprise Manager على سبيل المثال  Schedule Backup لـ استكمال عمليه الـ Backup سوف يطلب منك ادخال كل من اسم المستخدم وكلمه المرور الخاصه بـ Host Credentials وهنا هو يريد ادخال اسم المستخدم وكلمه المرور التى تدخل من خلالهم الى نظام التشغيل لديك .عند ادخالك لهم سوف يظهر لك الخطأ التالى
صوره رقم (1)

How to reset System password when you forgotten

السلام عليكم

كيف يمكنك استعاده كلمه المرور فى حاله فقدانها او نسيانها او ما اشابهه ذلك درس اليوم ارى فيه ميزه كبيره وعيب كبير ايضا والميزه تكمن فى ان فى حاله لا يقدر الله فقدت كلمه مرور مدير النظام .. اذن فـ انت فى مشكله كبيره فمن خلال هذا الدرس ستتمكن ان شاء الله من استرجاعها .. اما العيب فـ يكمن فى ..من وجهه نظرى ان من خلال استخدام مجموعه الاوامر التاليه يستطيع اى شخص من عمل تغيير او استعاده لكلمه مدير النظام وارى فى ذلك خطأ كبير فى نظام حمايه قواعد بيانات اوركال.

قم بفتح برنامج sql plus ثم اكتب فى خانه user name

1/25/2013

How to UPGRADE Fedora 17 to Fedora 18

السلام عليكم 

درس اليوم عن كيفيه عمل تحديث من فيدورا 17 الى فيدورا 18 الموضوع سهل وبسيط كل ما عليك فعله هو كتابه مجموعه الاوامر التاليه وان يكون جهازك متصل بلانترنت

فى البدايه يجب ان يكون لديك صلاحيات الـ root باستخدام الامر التالى 
su -
ثانيا نحتاج لعمل تحديث لحزم rpm باستخدام الامر التالى
yum -y update
yum clean all
قم بعمل اعاده تشغيل للجهاز