الوحدة الخامسة - قاعدة البيانات وادارتها

Post on 20-Feb-2017

124 Views

Category:

Education

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

قاعدة البيانات وادارتها

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

المستوى الخارجي(External Level:)

االقرب الى المستخدم.

يتكون من اكثر من مستوى.

المستوى التمهيدي(Conceptual Level ) او المنطقي(Logical:)

تمثيل البيانات داخل قاعدة البيانات.

المستوى الداخلي(Internal Level ) او المستوى المادي(Physical:)

تخزين محتويات المستوى المنطقي على شكل ملفات في اقراص.

بنية النظام القواعديArchitecture Of Relational DBS

AbdulRahman M.Baraka

نموذج البيانات العالئقي:

مكوناته: جدول من الصفوف واالعمدة : عالقات(Attributes.)

خصائص.

المفتاح الرئيسي هو قيم عمود او اكثر يحدد بصورة وحيدة حالة الكيان: مفاتيح.

(.مجموعة من عناصر البيانات المرتبة مثل عالقة مزدوجة او ثالثية )(: صفوف(كل صف عبارة عن حالة لكيان.

)( اسم العالقة

الرموز داخل القوسين هي خصائص العالقة.

مميزاته:سهولة التصميم واالستخدام.

استقاللية البيانات.

قوة البناء.

نموذج البيانات العالئقيRelational Data Model

AbdulRahman M.Baraka

التطبيع:

ترتيب عناصر البيانات على شكل عالقات.

يساعد في تقليل االخطاء الناجمة من الصيانة: مميزاته.

يقلل من سرعة استرجاع المعلومات: عيوبه.

التطبيع

Normalization

AbdulRahman M.Baraka

لغات البرمجة(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

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

تنفيذ عمليات جبرية خاصة على الجداول والعالقات.

تكون النتائج عبارة عن جداول او عالقات جديدة.

االتحاد(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

التقاطع(Intersection()∩:)

تحديد عناصر مشتركة بين عالقتين.

يجب توافق العالقتان.

الجبر العالئقي

Relational Algebra

Sname

Ali

Khalid

Mona

Eyad

Sname

Ali

Khalid2

Mona

R2 R1

R1 ∩ R2

Sname

Ali

Mona

AbdulRahman M.Baraka

الفرق(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

الضرب الكارتيزي(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

الضرب الكارتيزي(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

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

االختيار(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

العرض(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

القسمة(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

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

الربط(Join()⋈:)

R1 ⋈ R2:

R1 X R2حساب 1.

.اختيار الصفوف التي تكون فيها قيم االعمدة المشتركة متشابهة2.

.حذف الخصائص المتكررة3.

الجبر العالئقي

Relational Algebra

AbdulRahman M.Baraka

الجبر العالئقي

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

الجبر العالئقي

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

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

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

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

فاصيل لغة وصفية للتعامل مع العالقات والتعبير عن االستفسارات دون معرفة الت.الدقيقة للوصول الى النتائج

العمليات:

أداة النفي(Not)(~.))

الربط الثنائي(And)(∧.)

االختيار(Or)(∨.)

االستنتاج(Implication)(IF…THEN .)

(Equivilance()IFF )().

لكل((.

يوجد قيمة واحدة على االقل(.)

الجبر العالئقي

Relational Algebra

AbdulRahman M.Baraka

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

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

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

الجبر العالئقي

Relational Algebra

AbdulRahman M.Baraka

الصيغة العامة:

{t|P(t)} مجموعة الصفوف(t) تحقق القاعدة التيP.

t[A]

: الصف قيمة(t ) العمود عند(A).

t r الصف(t ) ينتمي الى الجدول(r)

لصفوفلالحسابات العالئقية The Tuple Relational Calculus

AbdulRahman M.Baraka

لصفوفلالحسابات العالئقية The Tuple Relational Calculus

AbdulRahman M.Baraka

لصفوفلالحسابات العالئقية The Tuple Relational Calculus

AbdulRahman M.Baraka

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

الصيغة العامة:

{<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

للمجالالحسابات العالئقية The Domain Relational Calculus

AbdulRahman M.Baraka

للمجالالحسابات العالئقية The Domain Relational Calculus

AbdulRahman M.Baraka

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

X -> Y -> Z

يمكن حذف العالقة بربط(x ) مع(z ) عن طريق(y .) وذلك بشرط عدم تغيير

.المعنى

معايير التصميم

X

AbdulRahman M.Baraka

(يتم حذف العالقات المكررة: )مع اكثر من عالقةج

معايير التصميم

B A C

DB

C

D

B A C

DAbdulRahman M.Baraka

معايير التصميم

خطوات تصميم نموذج قواعد بيانات عالئقية:

.حذف العالقات المتكررة1.

.تحديد المفتاح الرئيسي2.

(.العالقات.)تحديد الخصائص وارتباطها مع المفتاح الرئيسي3.

ر يمكن دمج عنصران بينهما عالقة في نوع ومنفصالن في نوع اخ4..وجعلهما المفتاح

AbdulRahman M.Baraka

top related