File Systems Motivation SQL (Structured Query Language) MapReduce 1 תרגול 1

Preview:

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

Recommended