الوحدة الخامسة - قاعدة البيانات وادارتها
-
Upload
amin-abu-hammad -
Category
Education
-
view
132 -
download
3
Transcript of الوحدة الخامسة - قاعدة البيانات وادارتها
قاعدة البيانات وادارتها
مستويات قواعد البيانات:
المستوى الخارجي(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