Upload
charity-sharp
View
214
Download
0
Embed Size (px)
Citation preview
File Systems
MotivationSQL (Structured Query Language)
MapReduce
1
1תרגול
2Data files Index files System catalog
Disk
SQL interface
Query evaluation engine:
Transaction manager
Lock manager
Recovery manager
Disk space manager
Buffer manager
File and access methods
Plan executorOperator Evaluator
Parser Optimizer
אי תלות במודל הנתוניםיתרון חשוב של השימוש במערכת לניהול מסדי נתונים: אי תלות במודל הנתונים.
מושג ע"י שלוש רמות של הפשטה:
3
רמה פיסית
רמה לוגית
מבטי משתמש (views )
4
הרמות העליונות─מסדי נתונים
: רמת משתמש הקצה•
לכל משתמש מבט )חלקי( על המסד. משתמשים שונים
יכולים לראות מבטים שונים, ואלו לא בהכרח משקפים
את ארגון הנתונים הפיזי במסד.
5
SQLמושגים :
טבלה, רלציה
צבעגילחיהסכמה
שורה, רשומה,
nיה-
ורוד23חתול
עמודה, תכונה, שדה, אטריביוט
שחור
סגלגלורוד
DBMS - 236363, שפות שאילתה: SQL
6
Borrowed•Cust_Id•Book_Id•From_Date•To_Date
Ordered
•Cust_Id
•Book_Id
•Order_Date
Books•Book_Id•Book_Name•Year•Max_Time•Faculty•Pages
Customers•Cust_Id•Cust_Name•Faculty
מסד נתונים של ספרייה
דוגמא של מסד נתונים
7
פירוט הטבלאות )המשך...(
• Books(Book_Id, Book_Name, Year, Max_Time, Faculty, Pages)
– Book_Id: )מס' מזהה )ייחודי לכל עותק– Book_Name: שם הכותר – Year: שנת הוצאה– Max_Time: )משך השאלה מקס' אפשרי )בימים– Faculty: שם פקולטה– Pages: מס' עמודים
8
Booksהטבלה
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
9
פירוט הטבלאות )המשך...(
• Ordered(Cust_Id, Book_Id, Order_Date)– Cust_Id: מס' זהות של לקוח– Book_Id : )מס' מזהה )ייחודי לכל עותק– Order_Date: תאריך הזמנת הכותר
10
Ordered טבלת
Cust_IdBook_IdOrder_Date
12345111114-Oct-2002
45678111224-Oct-2002
12345111330-Oct-2002
45678222212-Oct-2002
11
SQL: SELECTשאילתות ב-
SELECT column1, col2, f(col3, col4), …
FROM table;
12
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
דוגמא
Books:
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
דוגמא: שליפת כל שמות הספרים ומספר העמודים בכלספר:
SELECT Book_Name, Pages FROM Books;
13
SELECT Book_Name, Pages FROM Books:
Book_NamePages
Database Systems 348
Database Systems 348
Database Systems424
Database And Knowledge390
Database And Knowledge390
Electronic Circuits180
Genes 7580
Anatomy450
דוגמא - תוצאה
14
שליפת כל השדות
לשליפת כל השדות, משתמשים בתו "*" •)כוכבית(.
דוגמא: שליפת כל השדות של כל הספרים:•
SELECT ** FROM Books;
15
Whereבחירת חלק מהרשומות -
מאפשרת לבחור WHERE conditionהאופציה •רק חלק מהרשומות.
דוגמא: שליפת שמות כל הספרים שהוצאו •:1990אחרי השנה
SELECT Book_Name
FROM Books
WHEREWHERE Year > 1990;
16
Book_IdBook_NameYearMax_Time
Pages
Faculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge
19981390CS
2223Database And Knowledge
19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
Books:
דוגמא - המשך
Book_IdBook_NameYearMax_Time
Pages
Faculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge
19981390CS
2223Database And Knowledge
19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
Book_IdBook_NameYearMax_Time
Pages
Faculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge
19981390CS
2223Database And Knowledge
19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
SELECT Book_Name FROM Books WHERE Year > 1990
17
Book_Name
Database Systems
Database Systems
Database Systems
Database And Knowledge
Database And Knowledge
Electronic Circuits
דוגמא - תוצאה
SELECT Book_Name FROM Books WHERE Year > 1990 :
18
WHERE)...המשך(
:תנאים יותר מורכבים•שימוש בסימני היחס: <, =, >, ><, => ...–.AND, OR, NOTשימוש בקשרים לוגיים: –
דוגמא: שליפת שמות כל הספרים שהוצאו בין •:2000 ו- 1990השנים
SELECT Book_Name
FROM Books
WHERE Year >=>= 1990 ANDAND Year <=<= 2000;
19
השמטת כפילויות -DISTINCT
משמיטה את הרשומות DISTINCTהאופציה •הכפולות מתוצאת השאילתא.
דוגמא: שליפת כל שמות הספרים ושנות •ההוצאה, ללא חזרות.
SELECT DISTINCTDISTINCT Book_Name, Year
FROM Books;
20
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
דוגמא - המשך
Books:
SELECT DISTINCTDISTINCT Book_Name, Year FROM Books;
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
21
Book_NameYear
Database Systems 1998
Database Systems 1998
Database Systems2001
Database And Knowledge1998
Database And Knowledge1998
Electronic Circuits1998
Genes 71985
Anatomy1988
דוגמא - תוצאה
Book_NameYear
Database Systems 1998
Database Systems2001
Database And Knowledge1998
Electronic Circuits1998
Genes 71985
Anatomy1988
DISTINCTללא DISTINCTאחרי
Book_NameYear
Database Systems 1998
Database Systems 1998
Database Systems2001
Database And Knowledge1998
Database And Knowledge1998
Electronic Circuits1998
Genes 71985
Anatomy1988
22
ORDER BY מיון -
•ORDER BY מיון של הרשומות הנשלפות על : פי הערכים של שדות או ביטויים נתונים.
דוגמא: שליפת כל פרטי הספרים ממוינים לפי •שנת ההוצאה:
SELECT * FROM Books
ORDER BYORDER BY Year;
23
SELECT * FROM Books;SELECT * FROM Books ORDER BY Year;
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
דוגמא - תוצאה
Book_IdBook_NameYearMax_TimePagesFaculty
4444Genes 719857580MED
5555Anatomy19887450MED
1111Database Systems 19987348CS
1112Database Systems199814348CS
2222Database And Knowledge19981390CS
3333Electronic Circuits199821180EE
2223Database And Knowledge19987390EE
1113Database Systems20017424CS
24
פונקציות סטטיסטיות
ישנן הפונקציות הסטטיסטיות הבאות:SQLב- •• MINמינימום – • MAXמקסימום – • AVGממוצע – • SUMסכום – • COUNTמספר הרשומות – כל אחת מפונקציות אלה פועלת על קבוצת •
ערכים ומחזירה ערך אחד.
25
דוגמא
: חשב את מספר העמודים הממוצע דוגמא•והמקסימלי בין כל הספרים:
:פתרון•
SELECT AVG(Pages), MAX(Pages)
FROM Books;
26
דוגמא – המשךSELECT AVG(Pages), MAX(Pages)FROM books;
Book_IdBook_NameYearMax_TimePagesFaculty
1111Database Systems 19987348CS
1112Database Systems 199814348CS
1113Database Systems20017424CS
2222Database And Knowledge19981390CS
2223Database And Knowledge19987390EE
3333Electronic Circuits199821180EE
4444Genes 719857580MED
5555Anatomy19887450MED
27
דוגמא – המשךSELECT AVG(Pages), MAX(Pages)FROM books;
Pages
348
348
424
390
390
180
580
450
AVG)Pages(MAX)Pages(
389580
MapReduceאותן מטרה• פעולות למספר מורכבת פעולה לחלק :
ניתן לבצע במקביל.מפתח-ערך• ציונים, מאגר רשימת )תמונה, ערך לכל :
מחרוזת כלשהי( יש מפתח חד-ערכי.פשוטות• שאינו פעולות מפתח לפי ערך הוספת :
ערך עדכון מהמאגר, מפתח לפי ערך הוצאת במאגר, לפי מפתח מהמאגר, חיפוש ערך לפי מפתח.
valuekey
pic.jpg“picture”
hw1.doc“fs_hw”
98“grade”
MapReduce דוגמא לפעולה מורכבת )במסד נתונים של ספרייה(:•
הגדול המזהה המספר מהוא לציין יש לקוח, לכל ביותר של ספר שהוא הזמין או השאיל.
: מוגדרת בשני שלביםMapReduceשאילתא במודל •
1 .map (k1, v1) → list (k2, v2)
2 .reduce (k2, list(v2)) → list(v3)
•map.חלוקת הבעיה למספר תתי-בעיות קטנות יותר :•reduce.פתרון כל תת-בעיה :כיצד נחלק את הבעיה הנתונה לנו לתתי-בעיות?•
MapReduceלכל לקוח, יש לציין מהוא המספר המזהה הגדול ביותר •
של ספר שהוא הזמין או השאיל.
1 .map (k1, v1) → list (k2, v2)
2 .reduce (k2, list(v2)) → list(v3)
כל מספר מזהה של לקוח יגדיר תת-בעיה. :פתרון•
1 .map (name, value) → (cust_id, book_id)
2. reduce (cust_id, list(book_id)) → list (cust_id, book_id)
1 .map (name, value) → (cust_id, book_id)
2. reduce (cust_id, list(book_id)) → list (cust_id, book_id)
cust_idbook_idfrom_date
to_date
1237510/0220/02
2222015/0218/02
1117020/0105/02
cust_idbook_idorder_date
1235026/02
11110026/02
1116028/02
cust_idbook_id
111100
11160
11170
cust_idbook_id
12350
12375
cust_idbook_id
22220
1 .map (name, value) → (cust_id, book_id)
2. reduce (cust_id, list(book_id)) → list (cust_id, book_id)
cust_idbook_id
111100
11160
11170
cust_idbook_id
12350
12375
cust_idbook_id
22220
cust_idbook_id
111100
12375
22250