الوحدة الخامسة - قاعدة البيانات وادارتها
TRANSCRIPT
![Page 1: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/1.jpg)
قاعدة البيانات وادارتها
![Page 2: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/2.jpg)
مستويات قواعد البيانات:
المستوى الخارجي(External Level:)
االقرب الى المستخدم.
يتكون من اكثر من مستوى.
المستوى التمهيدي(Conceptual Level ) او المنطقي(Logical:)
تمثيل البيانات داخل قاعدة البيانات.
المستوى الداخلي(Internal Level ) او المستوى المادي(Physical:)
تخزين محتويات المستوى المنطقي على شكل ملفات في اقراص.
بنية النظام القواعديArchitecture Of Relational DBS
AbdulRahman M.Baraka
![Page 3: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/3.jpg)
نموذج البيانات العالئقي:
مكوناته: جدول من الصفوف واالعمدة : عالقات(Attributes.)
خصائص.
المفتاح الرئيسي هو قيم عمود او اكثر يحدد بصورة وحيدة حالة الكيان: مفاتيح.
(.مجموعة من عناصر البيانات المرتبة مثل عالقة مزدوجة او ثالثية )(: صفوف(كل صف عبارة عن حالة لكيان.
)( اسم العالقة
الرموز داخل القوسين هي خصائص العالقة.
مميزاته:سهولة التصميم واالستخدام.
استقاللية البيانات.
قوة البناء.
نموذج البيانات العالئقيRelational Data Model
AbdulRahman M.Baraka
![Page 4: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/4.jpg)
التطبيع:
ترتيب عناصر البيانات على شكل عالقات.
يساعد في تقليل االخطاء الناجمة من الصيانة: مميزاته.
يقلل من سرعة استرجاع المعلومات: عيوبه.
التطبيع
Normalization
AbdulRahman M.Baraka
![Page 5: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/5.jpg)
لغات البرمجة(Programming Languages:)
لغات التساؤل(Query Languages:)
لغات اوامر(Command-Oriented Query Languages:)
PRINT NAME,ADDRESS OF STUDENT WITH BIRTHDATE BETWEEN “10-OCT-82” AND“6-JAN-90” ORDER BY NAME DESCENDING.
UPDATE STUDENT SET AVERAGE = AVERAGE *1.05
لغات العرض الجاهزة(Screen-Oriented Query Languages:)
لغات التساؤل باالمثلة((QBE)Qeury-By-Example.)
معالجة البياناتData Manipulation
AbdulRahman M.Baraka
![Page 6: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/6.jpg)
Select Statement:
SELECT DISTINCT Attributes
FROM Table
WHERE Conditions
ORDER BY DESC
--------------------------------------
Select * FROM Student
SELECT Sname FROM Student
SELECT SID,Sname FROM Student.
SELECT Sname FROM Student WHERE Age<20
Structure Query Language SQL
SID Sname Rate Age
0102 Ali 8 18
0106 Khalid 7 19
0107 Mona 9 20
Student
Sname
Ali
Khalid
Mona
Result
SID Sname
0102 Ali
0106 Khalid
0107 Mona
Sname
Ali
Khalid
AbdulRahman M.Baraka
![Page 7: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/7.jpg)
تنفيذ عمليات جبرية خاصة على الجداول والعالقات.
تكون النتائج عبارة عن جداول او عالقات جديدة.
االتحاد(Union()∪:)
تجميع عناصر عالقة
.مع عالقة أخرى
يجب توافق العالقتان.
الجبر العالئقي
Relational Algebra
SID Sname Rate Age
0102 Ali 8 18
0103 Khalid 7 19
0104 Mona 9 20
SID Sname Rate Age
0105 Ali2 4 21
0106 Khalid2 3 22
0107 Mona2 2 23
R2
R1
R1 ∪ R2
SID Sname Rate Age
0105 Ali2 4 21
0106 Khalid2 3 22
0107 Mona2 2 23
0102 Ali 8 18
0103 Khalid 7 19
0104 Mona 9 20AbdulRahman M.Baraka
![Page 8: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/8.jpg)
التقاطع(Intersection()∩:)
تحديد عناصر مشتركة بين عالقتين.
يجب توافق العالقتان.
الجبر العالئقي
Relational Algebra
Sname
Ali
Khalid
Mona
Eyad
Sname
Ali
Khalid2
Mona
R2 R1
R1 ∩ R2
Sname
Ali
Mona
AbdulRahman M.Baraka
![Page 9: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/9.jpg)
الفرق(Difference()-:)
تحديد عناصر منتمية الى عالقة دون أخرى.
العالقتانتوافق.
الجبر العالئقي
Relational Algebra
SID Sname Rate Age
0102 Ali 8 18
0103 Khalid 7 19
0104 Mona 9 20
SID Sname Rate Age
0102 Ali 8 18
0106 Khalid2 3 22
0107 Mona2 2 23
R2
R1 R1 - R2
SID Sname Rate Age
0103 Khalid 7 19
0104 Mona 9 20
AbdulRahman M.Baraka
![Page 10: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/10.jpg)
الضرب الكارتيزي(Cartesian Product()X:)
عالقة كل صف في العالقة االولى يرتبط مع كل صف في ال
.الثانية
اذا تشابهة اسماء الحقول يعاد التسمية.
عدد خصائص العالقة الناتجة يكون مساو لمجموع
.خصائص العالقتين
عدد صفوف العالقة الناتجة يساوي حاصل ضرب عدد
.صفوف العالقتين
الجبر العالئقي
Relational Algebra
SID Sname Rate Age
0102 Ali 8 18
0103 Khalid 7 19
0104 Mona 9 20
SID Sname Rate Age
0102 Ali 8 18
0106 Khalid2 3 22
0107 Mona2 2 23
R2
R1
AbdulRahman M.Baraka
![Page 11: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/11.jpg)
الضرب الكارتيزي(Cartesian Product()X:)
عالقة كل صف في العالقة االولى يرتبط مع كل صف في ال
.الثانية
اذا تشابهة اسماء الحقول يعاد التسمية.
عدد خصائص العالقة الناتجة يكون مساو لمجموع
.خصائص العالقتين
عدد صفوف العالقة الناتجة يساوي حاصل ضرب عدد
.صفوف العالقتين
الجبر العالئقي
Relational Algebra
SID Sname Rate Age
0102 Ali 8 18
0103 Khalid 7 19
0104 Mona 9 20
SID Sname Rate Age
0102 Ali 8 18
0106 Khalid2 3 22
0107 Mona2 2 23
R2
R1
R1 X R2
SID Sname Rate Age R2. SID
R2. Sname
R2. Rate
R2.Age
0102 Ali 8 18 0102 Ali 8 18
0102 Ali 8 18 0106 Khalid2 3 22
0102 Ali 8 18 0107 Mona2 2 23
0103 Khalid 7 19 0102 Ali 8 18
0103 Khalid 7 19 0106 Khalid2 3 22
0103 Khalid 7 19 0107 Mona2 2 23
0104 Mona 9 20 0102 Ali 8 18
0104 Mona 9 20 0106 Khalid2 3 22
0104 Mona 9 20 0107 Mona2 2 23AbdulRahman M.Baraka
![Page 12: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/12.jpg)
Examples
R3 := R1 * R2
R1( A, B )1 23 4
R2( B, C )5 67 89 10
R3( A, R1.B, R2.B, C )1 2 5 61 2 7 81 2 9 103 4 5 63 4 7 83 4 9 10
AbdulRahman M.Baraka
![Page 13: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/13.jpg)
االختيار(Selection():)
تحديد مجموعة من الصفوف بناءا على شرط معين.
Rate>4
الجبر العالئقي
Relational Algebra
SID Sname Rate Age
0103 Khalid 7 19
0104 Mona 9 20
SID Sname Rate Age
0102 Ali 8 18
0106 Khalid2 3 22
0107 Mona2 2 23
R2
AbdulRahman M.Baraka
![Page 14: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/14.jpg)
العرض(Projection()∏:)
مع العالقة( خصائص)اختيار اعمدة محددة.
مع مالحظة انه يتم حذف التكرار بعد تطبيق العملية.
الجبر العالئقي
Relational Algebra
SID Sname Rate Age
0102 Ali 8 18
0106 Khalid2 3 22
0107 Mona2 2 23
0108 Kholod 3 23
0109 Ramy 8 22 Sname Age
Ali 18
Khalid2 22
Mona2 23
Kholod 23
Ramy 22
∏(Sname, Age)
Rate
8
3
2
∏(Rate)
AbdulRahman M.Baraka
![Page 15: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/15.jpg)
القسمة(Division()/:)
R1 / R2:
قيم(R1 ) التي تحتوي جميع قيم(R2.)
ي تحتوي العالقة الجديدة على الخصائص الموجودة ف(R1 ) وغير موجودة في(R2.)
الجبر العالئقي
Relational Algebra
Car Mobile
Nissan Nokia
Toyota Samsung
Fname Car Mobile
Ali Toyota Nokia
Khalid Nissan Nokia
Mona Toyota Samsung
Ali Nissan Samsung
Mona Toyota Siemens
Ali Toyota Siemens
R1
R2 R1 /R2
Fname
Ali
AbdulRahman M.Baraka
![Page 16: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/16.jpg)
Examples
sno pnos1 p1s1 p2s1 p3s1 p4s2 p1s2 p2s3 p2
s4 p2
s4 p4
pnop2
pnop2p4
pnop1p2p4
snos1s2s3s4
snos1s4
snos1
A
B1B2
B3
A/B1 A/B2 A/B3AbdulRahman M.Baraka
![Page 17: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/17.jpg)
الربط(Join()⋈:)
R1 ⋈ R2:
R1 X R2حساب 1.
.اختيار الصفوف التي تكون فيها قيم االعمدة المشتركة متشابهة2.
.حذف الخصائص المتكررة3.
الجبر العالئقي
Relational Algebra
AbdulRahman M.Baraka
![Page 18: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/18.jpg)
الجبر العالئقي
Relational Algebra
SID Branch Jawwal
0102 Gaza 12345
0103 Rafah 23456
0107 Khan 78965
SID Sname Rate Age
0102 Ali 8 18
0103 Khalid 7 19
0104 Mona 9 20
R1
R2
R1 X R2
SID Sname Rate Age R2. SID
Branch
Jawwal
0102 Ali 8 18 0102 Gaza 12345
0102 Ali 8 18 0103 Rafah 23456
0102 Ali 8 18 0107 Khan 78965
0103 Khalid 7 19 0102 Gaza 12345
0103 Khalid 7 19 0103 Rafah 23456
0103 Khalid 7 19 0107 Khan 78965
0104 Mona 9 20 0102 Gaza 12345
0104 Mona 9 20 0103 Rafah 23456
0104 Mona 9 20 0107 Khan 78965AbdulRahman M.Baraka
![Page 19: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/19.jpg)
الجبر العالئقي
Relational Algebra
SID Branch Jawwal
0102 Gaza 12345
0103 Rafah 23456
0107 Khan 78965
SID Sname Rate Age
0102 Ali 8 18
0103 Khalid 7 19
0104 Mona 9 20
R1
R2
R1 ⋈ R2
SID Sname Rate Age Branch Jawwal
0102 Ali 8 18 Gaza 12345
0103 Khalid 7 19 Rafah 23456
AbdulRahman M.Baraka
![Page 20: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/20.jpg)
Examples
Sells( Name, Item, price ) Malls( Name,addr )CCenter Bud 2.50 CCenter Maple St.CCenter Miller 2.75 CStart River Rd.CStart Bud 2.50CStart Coors 3.00
Get MallInfo := Sells JOIN Malls
MallInfo( Name Item price addr )CCenter Bud 2.50 Maple St.CCenter Milller2.75 Maple St.CStart Bud 2.50 River Rd.CStart Coors 3.00 River Rd.
AbdulRahman M.Baraka
![Page 21: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/21.jpg)
1. ∏ Book_no, Book_name
2. ∏ Book_name(P_name=“علي” (detail_Books)).
3. ∏ Book_name(copies_no >4 (detail_Books)).
4. ∏ Book_name(L_date between ‘1-2-2007’ and ‘25-2-2007’ (detail_Books)).
Examples
AbdulRahman M.Baraka
![Page 22: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/22.jpg)
Examples
• Given relational schema:– Sailors (sid, sname, rating, age)
– Reservation (sid, bid, date)
– Boats (bid, bname, color)
Find names of sailors who’ve reserved boat #103.
∏ sname(bid=103(Res ⋈ Sai)).
Find names of sailors who’ve reserved a red boat
∏ sname((color=“red”(Boa)) ⋈ Res ⋈ Sai).
AbdulRahman M.Baraka
![Page 23: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/23.jpg)
فاصيل لغة وصفية للتعامل مع العالقات والتعبير عن االستفسارات دون معرفة الت.الدقيقة للوصول الى النتائج
العمليات:
أداة النفي(Not)(~.))
الربط الثنائي(And)(∧.)
االختيار(Or)(∨.)
االستنتاج(Implication)(IF…THEN .)
(Equivilance()IFF )().
لكل((.
يوجد قيمة واحدة على االقل(.)
الجبر العالئقي
Relational Algebra
AbdulRahman M.Baraka
![Page 24: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/24.jpg)
NOT
AND
الجبر العالئقي
Relational Algebra
P ~P
T F
F T
P q p∧q
T T T
T F F
F T F
F F FAbdulRahman M.Baraka
![Page 25: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/25.jpg)
OR
Implication
الجبر العالئقي
Relational Algebra
P q p∨q
T T T
T F T
F T T
F F F
P q p→q (~p∨q)
T T T
T F F
F T T
F F TAbdulRahman M.Baraka
![Page 26: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/26.jpg)
Equivalence
يمكن تطبيق العمليات السابقة:
الصفوف(Tuples.)
المجال(Domain.)
الجبر العالئقي
Relational Algebra
P q pq( (pq) ∧ (pq) )
T T T
T F F
F T F
F F T
AbdulRahman M.Baraka
![Page 27: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/27.jpg)
الجبر العالئقي
Relational Algebra
AbdulRahman M.Baraka
![Page 28: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/28.jpg)
الصيغة العامة:
{t|P(t)} مجموعة الصفوف(t) تحقق القاعدة التيP.
t[A]
: الصف قيمة(t ) العمود عند(A).
t r الصف(t ) ينتمي الى الجدول(r)
لصفوفلالحسابات العالئقية The Tuple Relational Calculus
AbdulRahman M.Baraka
![Page 29: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/29.jpg)
لصفوفلالحسابات العالئقية The Tuple Relational Calculus
AbdulRahman M.Baraka
![Page 30: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/30.jpg)
لصفوفلالحسابات العالئقية The Tuple Relational Calculus
AbdulRahman M.Baraka
![Page 31: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/31.jpg)
Examples
Loan ( loan-number, branch-name, amount)
Depositor (customer-name, account-number)
Borrower (customer-name, loan-number)
****************************************
Find the loan-number, branch-name, and amount for loans of over $1200.
{ t | t loan ^ t[amount] > 1200 } Find the names of all customers having a loan, an account, or both at the
bank.
{t | s borrower( t[customer-name] = s[customer-name]) u depositor( t[customer-name] = u[customer-name])
Find the names of all customers having a loan at the Perryridge branch
{t | s borrower(t[customer-name] = s[customer-name] u loan(u[branch-name] = “Perryridg u[loan-number] = s[loan-
number]))}AbdulRahman M.Baraka
![Page 32: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/32.jpg)
الصيغة العامة:
{<x1,x2, …, xn>|P(x1,x2, …, xn)}(<x1,x2, …, xn> )متغيرات اعمدة.
P:قاعدة من العناصر االساسية:
r(x1,x2, …, xn ) حيث(r ) عالقة تتكون من(n )عمود.
xy :x,yأعمدة
xc :cثابت
( :<,<=, = #, >, >=)
للمجالالحسابات العالئقية The Domain Relational Calculus
AbdulRahman M.Baraka
![Page 33: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/33.jpg)
للمجالالحسابات العالئقية The Domain Relational Calculus
AbdulRahman M.Baraka
![Page 34: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/34.jpg)
للمجالالحسابات العالئقية The Domain Relational Calculus
AbdulRahman M.Baraka
![Page 35: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/35.jpg)
Examples
Loan ( loan-number, branch-name, amount)
Depositor (customer-name, account-number)
Borrower (customer-name, loan-number)
****************************************
Find the loan-number, branch-name, and amount for loans of over $1200.
{ < l, b, a > | < l, b, a > loan ^ a > 1200 } Find all loan numbers for loans with an amount greater than $1200.
{< l > | b, a ( < l, b, a > loan ^ a > 1200 )
Find the names of all customers who have a loan from the Perryridge branch and find the loan amount:
{ < c, a > | l ( <c, l> borrower ^ b ( < l, b, a > loan ^ b = “ Perryridge” ) ) }
AbdulRahman M.Baraka
![Page 36: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/36.jpg)
X -> Y -> Z
يمكن حذف العالقة بربط(x ) مع(z ) عن طريق(y .) وذلك بشرط عدم تغيير
.المعنى
معايير التصميم
X
AbdulRahman M.Baraka
![Page 37: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/37.jpg)
(يتم حذف العالقات المكررة: )مع اكثر من عالقةج
معايير التصميم
B A C
DB
C
D
B A C
DAbdulRahman M.Baraka
![Page 38: الوحدة الخامسة - قاعدة البيانات وادارتها](https://reader034.vdocuments.mx/reader034/viewer/2022042604/58aae5e61a28abc73a8b46dd/html5/thumbnails/38.jpg)
معايير التصميم
خطوات تصميم نموذج قواعد بيانات عالئقية:
.حذف العالقات المتكررة1.
.تحديد المفتاح الرئيسي2.
(.العالقات.)تحديد الخصائص وارتباطها مع المفتاح الرئيسي3.
ر يمكن دمج عنصران بينهما عالقة في نوع ومنفصالن في نوع اخ4..وجعلهما المفتاح
AbdulRahman M.Baraka