בסיסי נתונים ושפת SQL הרצאה #6

Slides:



Advertisements
Similar presentations
מבוא למדעי המחשב לתעשייה וניהול
Advertisements

1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
©Silberschatz, Korth and Sudarshan4.1Database System Concepts סכימה לדוגמא.
סמינר על סוגיות במדעי המחשב מרצה : עמי ברלר מכללת " אחווה " 2003.
1 Formal Specifications for Complex Systems (236368) Tutorial #2 Z introduction and notation (contd.); Birthday book example (Chapter 1 in the book); Z.
אקסס מבוא למערכות מידע.
מכונת מצבים תרגול מס' 4 Moshe Malka.
1 Formal Specifications for Complex Systems (236368) Tutorial #2 Z notation; Examples.
תוכנית דעת, שנה"ל תשס"ז, מרצה יהודה הופמן מערכות מידע ארגוניות מערכות מידע ארגוניות הרצאה מס' 10: מסדי נתונים.
דוד שוורץ, עידן זק, נטע צור וחיה כהן. הפונקציונאליות : המשתמש יבחר קובץ שעליו הוא רוצה לבצע את האנליזה, וילחץ עליו עם כפתור ימני בעכבר. יפתח תפריט ובו.
מסדי נתונים תשס " ג 1 תכנון סכמות (Design Theory) מסדי נתונים.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
שאילת שאלות שאלת חקר המפתח למנעול 1. שאילת שאלות – שאלת חקר מה ניתן לשנות ? :  בתנאים : טמפ ' או לחץ או הכלים, או הציוד  בחומרים : איכות או כמות או.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
שילוב SQL & Keywords ממילות-חיפוש לטפסי-חיפוש מוטי פורת.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site : T.A. :Emilia Katz.
חורף תשס " ג DBMS , שפות שאילתה : SQL ( א ') 1 סכמה SQL: מושגים טבלה, רלציה שורה, רשומה, n- יה עמודה, תכונה, שדה, אטריביוט.
קורס מסדי נתונים (Database Systems)
מסדי נתונים תשס " ג 1 More on SQL קורס מסדי נתונים.
DBMS , שפות שאילתה: SQL (ב')
רישום חומרי למידה והסטנדרט הישראלי: ISRACORE יהודית בר אילן, אוניברסיטת בר-אילן אלי שמואלי, מיט"ל.
2. תרשימי ER שקפים: אלדר פישר עריכה ותוספות: אמיר שפילקה
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
©Silberschatz, Korth and Sudarshan4.1Database System Concepts SQL n מבנה שאילתה n פונקציות צבירה.
תכנות תרגול 5 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
מבוא מורחב למדעי המחשב בשפת Scheme תרגול 10. אג'נדה שאלות מבחינות חזרה על מימוש stream אפשרי 2.
מערכות בסיסי נתונים הצגה של הסטודנטים את עצמם, הרקע שלהם, ציפיותיהם מהקורס. הצגת ציפיותיי, מדיניות הקורס, מטלות, וכו'.
מבוא לעיבוד מקבילי הרצאה מס ' 9 17/12/2001. נושא ההרצאה עיבוד תמונה מקבילי Parallel Image Processing.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
ASP Partners © 2000 – 2014 ASP Partners c/o Dr. Abraham “Abe” Gill (( נ. ה. ל התיחסות ללקוחות ניהול CRM – Customer Relationship Management הרצאה מס ' 2.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
1 SQL/ DML Structured Query Language Data Manipulation Language (DML) is used to query and update data מהדורה 02.
Costs and Filters Dr. Avi Rosenfeld Department of Industrial Engineering Jerusalem College of Technology
File Systems Motivation SQL (Structured Query Language) MapReduce 1 תרגול 1.
אביב תשס"גDBMS , שפות שאילתה: SQL1 סכמה SQL (Structured Query Language) : מושגים טבלה, רלציה שורה, רשומה, n- יה עמודה, תכונה, שדה, אטריביוט.
2003B Q5 Suppliers(sid, sname, city) Select sid from suppliers where city=‘jerusalem’ or sname like ‘%Smith’ Select sid from suppliers where city=‘jerusalem’
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Structured Query Language
XML מבוא כללי MCSD Doron Amir
מודל הנתונים – Data Modeling
תקשורת ומחשוב תרגול 1 IP, Classes and Masks.
SQL בסיסי – הגדרה אינדוקטיבית
Structured Query Language
SQL SQL הינה השפה הדומיננטית לטיפול בבסיסי נתונים יחסיים, אך לא קיים סטנדרט SQL יחיד. ׁ(SQL92, SQL3 …) ניתן לחלק את פקודות SQL לארבע משפחות: פקודות להגדרת.
מערכות ניהול בסיסי נתונים
עבודה עם נתונים באמצעות ADO.NET
בסיסי נתונים - חומר רקע -.
בסיסי נתונים ושפת SQL הרצאה #2
סיכום השיעור הקודם חומרה – קלט/פלט, יחידות אחסון, CPU
מודל היחסים (Relational Model)
פרוקטוז, C6H12O6 , חד-סוכר מיוחד
מבוא ל Maven אליהו חלסצ'י תכנות מתקדם תרגול מספר 3
מערכות מסדי נתונים 1. הקדמה.
פרק 3: מודל הנתונים.
מבוא ל - SQL מטרות הקורס: להבין מהו בסיס נתונים (או מסד נתונים)?
תרגול מספר 10: תרגיל – חברת הייטק
תיכון בסיס-נתונים יחסי
Based on the lecture notes of Prof. Sagiv
2. דיאגראמות ישויות קשרים ERD (מבוסס על השקפים של אלדר פישר)
מבוא למערכות מידע פרק 1.
עקרונות בסיסיים בתכנות Visual Basic
מודל הישויות והקשרים – יותר לעומק
טבלאות מדומות (Views).
מבוא למערכות מידע בשילוב ACCESS
Engineering Programming A
בסיסי נתונים ושפת SQL הרצאה #4
Presentation transcript:

בסיסי נתונים ושפת SQL הרצאה #6 אורן דבוסקין telhaidb@cielago.com

מפגש #6 עדכונים – תרגילים, בוחן אמצע המשך פקודת join, תתי-שאילתות סיכום פקודת SQL select תרגול

עדכונים 25/12: חופשת חנוכה. בוחן אמצע: יום א' , 1/1/2012, שעה 10:30 בוחן אמצע: יום א' , 1/1/2012, שעה 10:30 בוחן על שאילתות SQL, בדומה לתרגילים ובכיתה. 2 שאלות "הרצה" – מה עושה השאילתה? 3 שאלות "כתיבה" – כתיבת שאילתה לפי מפרט.

עדכונים - המשך הגשת תרגילים 1-3 עד לתאריך 25/12 תזכורת: מצב עדכני: לאחר מכן יתפרסמו פתרונות, ולא תתאפשר הגשה. תזכורת: בוחן אמצע: 10% מהציון, תרגילים: 20%. במידה ואין בוחן אמצע: תרגילים 30% מהציון. חובת הגשה של 50% מהתרגילים. מצב עדכני: מצב עדכני נוכחות + ציונים נמצא באתר.

תזכורת - ישות Entity אובייקט במודל שקיים במציאות, והוא בעל משמעות (טבלה) לדוגמא: סטודנט, ציונים, מרצים, כיתות לימוד ישות חזקה: ישות עם קיום עצמאי חלשה:בעלת תלות בישות אחרת. מופע Instance: פריט מידע בישות (שורה בטבלה).

תכונה Attribute מאפיין של הישות (שדה בטבלה). כל תכונה מוגדרת על ידי: טיפוס נתונים Datatype: סוג הנתון (מספר, תאריך, מחרוזת וכו') מרחב ערכים Domain: מרחב ערכים חוקיים לתכונה (טווח מספרים, האם חובה?) ערך Value: פריט המידע הקיים בתכונה ברגע נתון.

מפתח Key מזהה עבור הישות: תכונה אחת או יותר המהווה זיהוי חד-ערכי למופע ביישות. מפתח ראשי Primary Key: קבוצת התכונות המהוות זיהוי חד-ערכי למופע בישות. מפתח זר/חיצוני Foreign key: תכונה/קבוצת תכונות בישות המהווה מפתח ראשי לישות אחרת.

תאור בתרשים Entity Name Attribute (PK) Attribute …

תרשים - דוגמא users user_id user_name birthday hometown …

קשרים Relationship יחס בעל משמעות בין ישויות שונות. פונקציית / קרדינליות הקשר: דרגת היחס בין הישויות 1:1 קשר חד-חד ערכי (אחד לאחד) 1:N קשר חד-רב ערכי (אחד לרבים) לכל מופע בישות החלשה יכול להיות מופע אחד בלבד בישות החזקה. M:N קשר רב-רב ערכי (רבים לרבים) לכל מופע בישות החלשה יכול להיות יותר ממופע אחד בישות החזקה.

קשרים - דוגמאות טבלת עובדים – פרטי חשבון טבלת מנהלים – עובדים לכל עובד יש רק מנהל אחד טבלת עובדים – פרוייקטים כל עובד יכול לעבוד במספר פרוייקטים

ייצוג בתרשים ERD 1:1 1:N N:M

מפתחות ראשיים/זרים? 1:1 1:N N:M האם יש לנו ישות ללא מפתח ראשי?

בניית יחס בין טבלאות - SQL צירוף טבלאות Join: בניית טבלה ע"י צירוף של טבלה אחת או יותר, באמצעות תכונה משותפת. Join condition: התנאי לחיבור בין הטבלאות. שיוך של מפתח זר אל מפתח ראשי

דוגמא הצגת שם משתמש, וכל ההודעות שהמשתמש כתב ל wall : SELECT u.user_name, w.message FROM user AS u, wall AS w WHERE u.user_id = w.user_id

דוגמא SELECT u.user_name, w.message FROM user AS u, wall AS w WHERE u.user_id = w.user_id איזה מהמפתחות הוא זר? איזה ראשי? בחירה מרובה של טבלאות תנאי החיבור

סוגי קשרים Inner Join החזרה של הנתונים המשותפים בלבד.

דוגמא – inner join users wall JOIN result 11111 Moshe Levi 22222 user_id user_name 11111 Moshe Levi 22222 Yair Cohen 33333 Yoav Gal user_id message 11111 Hello world Good morning 22222 Happy birthday On vacation Feel well JOIN result user_name message Moshe Levi Hello world Good morning Yair Cohen Happy birthday On vacation Feel well

סוגי קשרים Outer Join (left, right, full) הנתונים המשותפים, וגם נתונים שאינן מקיימים את תנאי השיתוף.

דוגמא – right outer join users wall user_id user_name 11111 Moshe Levi 22222 Yair Cohen 33333 Yoav Gal user_id message 11111 Hello world Good morning 22222 Happy birthday On vacation Feel well 3333 This is a mistake JOIN result user_name message Moshe Levi Hello world Good morning Yair Cohen Happy birthday On vacation Feel well Null This is a mistake

דוגמא – left outer join users wall JOIN result 11111 Moshe Levi 22222 user_id user_name 11111 Moshe Levi 22222 Yair Cohen 33333 Yoav Gal user_id message 11111 Hello world Good morning 22222 Happy birthday On vacation Feel well JOIN result user_name message Moshe Levi Hello world Good morning Yair Cohen Happy birthday On vacation Feel well Yoav Gal null

דוגמא – full outer join users wall JOIN result 11111 Moshe Levi 22222 user_id user_name 11111 Moshe Levi 22222 Yair Cohen 33333 Yoav Gal user_id message 11111 Hello world Good morning 22222 Happy birthday On vacation Feel well 3333 This is a mistake JOIN result user_name message Moshe Levi Hello world Good morning Yair Cohen Happy birthday On vacation Feel well Yoav Gal null Null This is a mistake

X סוגי קשרים מכפלה קרטזית cartesian product / cross-join

מכפלה קרטזית SELECT u.user_name, w.message FROM user AS u, wall AS w WHERE u.user_id = w.user_id

התוצאה user_name message Moshe Levi Hello world Good morning Happy birthday On vacation Feel well Yair Cohen Yoav Gal

תת-שאילתות Sub Queries שפת SQL מאפשרת ביצוע פקודת select מקוננת (שאילתה בתוך שאילתה): SELECT … FROM … WHERE [ column ] [ in | not in | exists | not exists | any | all ] ( SELECT … FROM … WHERE … )

תת-שאילתה: דוגמא הצגת המשתמשים שכתבו הודעות SELECT user_name FROM users AS u WHERE exists ( select 1 from messages AS m where u.user_id = m.user_id )

תת-שאילתה: דוגמא הצגת המשתמשים שכתבו הודעות באורך מעל 50 תווים SELECT user_name FROM users WHERE user_id in ( select user_id from messages where len(message) > 50 )

סיכום - שאילתת SQL פקודת ה - SELECT : SELECT [ עמודות ] FROM [ טבלאות ] { WHERE [ תנאי ] } { GROUP BY [ עמודות לבניית קבוצה ] } { HAVING [ תנאי] } { ORDER BY [ עמודות ] } { } = אופציונלי

בחירת המידע SELECT [ * | }distinct{ ]columns[ }AS [alias] { ] FROM [ טבלאות ] { WHERE [ תנאי ] } { GROUP BY [ עמודות לבניית קבוצה ] } { HAVING [ תנאי] } { ORDER BY [ עמודות ] } Select: איזה מידע אנו רוצים – בחירה של העמודות

בחירת מקור המידע SELECT [ עמודות ] FROM [ טבלאות {AS [alias] } ] { WHERE [ תנאי ] } { GROUP BY [ עמודות לבניית קבוצה ] } { HAVING [ תנאי] } { ORDER BY [ עמודות ] } From: מהיכן המידע יגיע – בחירה של הטבלאות

בחירת שורות SELECT [ עמודות ] FROM [ טבלאות ] WHERE [ תנאי ] { GROUP BY [ עמודות לבניית קבוצה ] } { HAVING [ תנאי] } { ORDER BY [ עמודות ] } Where: בחירת השורות

חלוקת המידע לתתי קבוצות יצירת קבוצות מידע SELECT [ עמודות ] FROM [ טבלאות ] WHERE [ תנאי ] GROUP BY [ עמודות לבניית קבוצה ] HAVING [ תנאי] { ORDER BY [ עמודות ] } Group by/Having: חלוקת המידע לתתי קבוצות

מיון המידע בסדר עולה/יורד SELECT [ עמודות ] FROM [ טבלאות ] WHERE [ תנאי ] GROUP BY [ עמודות לבניית קבוצה ] HAVING [ תנאי] ORDER BY [ columns [asc|desc] ] Order by: מיון המידע בסדר עולה/יורד

פונקציות פונקציות שורה Scalar: פונקציות קבוצה Aggregate: פונקציות המתבצעות על נתון יחיד. לדוגמא: lower, datevalue רשימת פונקציות שורה פונקציות קבוצה Aggregate: פונקציות המתבצעות על רשימת נתונים לדוגמא: count, average רשימת פונקציות קבוצה רשימת פונקציות כללית וגם http://w3schools.com/sql/default.asp

חומר עזר נוסף www.db-class.org (הרצאות מוקלטות) http://www.w3schools.com/sql/sql_intro.asp http://webmaster.org.il/articles/sql http://www2.mta.ac.il/~gideon/courses/dbms/ ספר הקורס

תרגיל כיתה תרגול יחסים בין טבלאות

שיעור הבא בוחן אמצע תרגילים 1-3 להגשה עד ל 25/12. חופשה נעימה! הגשה ב Access. חופשה נעימה!