אביב תשס"הDBMS - 236363, PostgreSQL1 PostgreSQL עבודה עם שרת PostgreSQL : PSQL – מפענח שורת פקודה LIBPQ – ספריית C WebDB – ממשק מבוסס Web (לסטודנטים של.

Slides:



Advertisements
Similar presentations
Processes and threads. תהליכים ותתי תהליכים תהליכים –כל תוכנית שרצה היא תהליך (process) –ניתן להתפצל מתהליך אחד למספר תהליכים, בעזרת הפקודה fork(). הרבה.
Advertisements

תוכנה 1 סמסטר א ' תשע " ב תרגול מס ' 7 * מנשקים, דיאגרמות וביטים * לא בהכרח בסדר הזה.
מבוא למדעי המחשב לתעשייה וניהול
ActiveX Data Objects (ADO) מרצה : דורון אמיר MCSD Doron Amir
©Silberschatz, Korth and Sudarshan4.1Database System Concepts סכימה לדוגמא.
טבלאות סמלים נכתב ע"י אלכס קוגן סמסטר חורף, תשס"ח.
1 מבוא למדעי המחשב הקצאה דינאמית. 2 הקצאת זיכרון דינאמית  כאשר אנו משתמשים במערכים, אנו מקצים אוטומטית את הזיכרון המקסימלי שנצטרך.  בפועל, אנו משתמשים.
הדרכה בשימוש בקטלוג הספרייה מפגש מס ' 2 תשס " ח. מטרת ההדרכה  איתור חומר מתוך הסילבוס  איתור חומר בנושא מבוקש.
אקסס מבוא למערכות מידע.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
תירגול 1 אדמיניסטרציה עבודה עם t2 מערכת הקבצים ב - Unix תכנית ראשונה ב -Unix, gcc.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
אתר הקורס: צוות הקורס: מרצה: אלדר פישר, טאוב
תכנות תרגול 4 שבוע : לולאות while לולאות while while (condition) { loop body } במקרה של קיום התנאי מתבצע גוף הלולאה ברגע שהתנאי לא מתקיים נצא.
לוגיקה צירופית יחידות סטנדרטיות מבוסס על הרצאות של יורם זינגר, האוניברסיטה העברית י " ם יהודה אפק, נתן אינטרטור אוניברסיטת תל אביב.
תרגול חזרה. מבנה האובייקט תאר את מבנה האובייקט כולל מבנה טבלאות הפונקציות הוירטואליות עבור התכנית הבאה struct A { int x; virtual void a() {}; }; struct.
חלון הפקודות מיועד לבצע פעולה אחת בכל פעם. כיצד אפשר לבצע רשימת פקודות או אפליקציות מורכבות ?
1 חלק XQuery :IV XML Query. 2 ביבליוגרפיה - DTD 3 ביבליוגרפיה – books.xml TCP/IP Illustrated Stevens W. Addison-Wesley Advanced Programming in.
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
חורף תשס " ג DBMS , שפות שאילתה : SQL ( א ') 1 סכמה SQL: מושגים טבלה, רלציה שורה, רשומה, n- יה עמודה, תכונה, שדה, אטריביוט.
Multicycle MIPS תרגול כיתה מס' 13.
תכנות תרגול 6 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
אתר הקורס: צוות הקורס: מרצה: אמיר שפילקה, טאוב
Backpatching 1. תזכורת מתרגול קודם קוד ביניים - שפת הרביעיות שיטות לייצור קוד ביניים –שימוש בתכונת code –כתיבה ישירה ל-buffer של פקודות שיטות לתרגום מבני.
DBMS , שפות שאילתה: SQL (ב')
תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
SSDL פרויקט שנתי בהנדסת תוכנה שחר דג אודות שירותים מחשבים (מי הכי מהיר) הדפסה תוכנה עזרה שאלות נפוצות באתר המעבדה
אתר הקורס: צוות הקורס: מרצה: עודד סודרסקי, טאוב מתרגל אחראי: אלכס גליקסון, טאוב.
אתר הקורס: צוות הקורס: מרצה: אלדר פישר, טאוב
חורף תשס"טDBMS , PostgreSQL1 PostgreSQL עבודה עם שרת PostgreSQL : PSQL – מפענח שורת פקודה LIBPQ – ספריית C WebDB – ממשק מבוסס Web (לסטודנטים של.
חורף - תשס " ג DBMS, שפות שאילתא : SQL ( ג ') 1 שינוי מסד הנתונים - פעולות DDL, DML פעולות ב -SQL: שאילתות שינוי תוכן מסד נתונים ( עדכון, הוספה.
Ray 7 דוגמא אלגוריתם 1.קבל דוגמאות 2. פלט f a עבור הדוגמה a המינימלית החיובית ?
©Silberschatz, Korth and Sudarshan4.1Database System Concepts SQL n מבנה שאילתה n פונקציות צבירה.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
Last time on Clang משתנה: "פתק" המשמש את המחשב לשמירת מידע. לכל משתנה יש שם וטיפוס כללים לשמות משתנים –חייבים להכיל רק אותיות, מספרים ו '_' –חייבים להתחיל.
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
אביב תשס"הDBMS , PostgreSQL1 PostgreSQL עבודה עם שרת PostgreSQL : PSQL – מפענח שורת פקודה LIBPQ – ספריית C WebDB – ממשק מבוסס Web (לסטודנטים של.
A. Frank File Organization Introduction to Pile File.
אתר הקורס: צוות הקורס: פרופ' עודד שמואלי-
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
1 ׃1998 Morgan Kaufmann Publishers פקודת ה- jump 4 bits 26 bits 2 bits 00 : כתובת קפיצה במילים : כתובת קפיצה בבתים … …
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
1 SQL: שינוי מסד הנתונים- פעולותDDL, DML פעולות ב-SQL: שאילתות  שינוי תוכן מסד נתונים (עדכון, הוספה של רשומות, וכו'), DML – Data Manipulation Language.
מחסנית ותור Stacks and Queues. מחסנית Stack מחסנית - Stack ADT סוג של מערך מוגבל מהיר מאוד ותופס מעט זיכרון שימוש ב LIFO – LIFO (Last In, First Out)
Controlling Web Site Access Using Logins CS 320. Basic Approach HTML form a php page that collects the username and password  Sends them to second PHP.
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
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’
1 חלק XQuery :IV XML Query. 2 ביבליוגרפיה - DTD 3 ביבליוגרפיה – books.xml TCP/IP Illustrated Stevens W. Addison-Wesley Advanced Programming in.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 6. מפעל השעווה – לולאות  עד עכשיו  טיפלנו בייצור נרות מסוג אחד, במחיר אחיד  למדנו להתמודד עם טיפול במקרים שונים.
מבנה נתונים ואלגוריתמים ) לשעבר - עיבוד מידע( ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון.
1 תרגול 11: Design Patterns ומחלקות פנימיות אסף זריצקי ומתי שמרת 1 תוכנה 1.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
מבוא למדעי המחשב לתעשייה וניהול
Structured Query Language
SQL בסיסי – הגדרה אינדוקטיבית
Structured Query Language
תירגול 14: מבני נתונים דינאמיים
תרגול מס' 3: Data Hazards מבוסס על תרגול של מורן גביש
עבודה עם נתונים באמצעות ADO.NET
פרוקטוז, C6H12O6 , חד-סוכר מיוחד
ניתוח מערכות מידע תכנות ב C#
תזכורת על מה דיברנו שיעור שעבר? בנינו אתר אינטרנט עם כותרות
עקרונות בסיסיים בתכנות Visual Basic
מחסנית ותור Stacks and Queues.
טבלאות מדומות (Views).
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
Presentation transcript:

אביב תשס"הDBMS , PostgreSQL1 PostgreSQL עבודה עם שרת PostgreSQL : PSQL – מפענח שורת פקודה LIBPQ – ספריית C WebDB – ממשק מבוסס Web (לסטודנטים של הקורס) חשבונות: חשבון csl1 עליו יתבצע התרגיל הרטוב וגישה למפענח שורת פקודה חשבון במסד הנתונים לגישה דרך PSQL או WebDB פרטים נוספים ב-F.A.Q. באתר

אביב תשס"הDBMS , PostgreSQL2 PSQL – מפענח שורת פקודה גישה ל- client של PostgreSQL – מפענח שורת הפקודה: הגישה נעשת ע"י חיבור ssh ל-csl1 ומשם התחברות. התחברות : בהנחה ששם המשתמש שלכם הוא user יש להקיש:  /usr/local/pgsql/bin/psql -h pgsql.cs.technion.ac.il user user (השימוש הראשון ב-user הוא עבור שם המסד נתונים שלכם. השימוש השני הוא עבור שם המשתמש) תופיעה בקשה לסיסמא (סיסמא ל-PostgreSQL) Password: xxxxxxxx עכשיו אתם בתוך מפענח שורת הפקודה של PostgreSQL user => יציאה: user => \q

אביב תשס"הDBMS , PostgreSQL3 PSQL – פקודות פנימיות פקודות פנימיות של המפענח: user=> \? – קבלת רשימה של הפקודות user=> \h select – select קבלת עזרה על פקודת user=> \q – יציאה מהמפענח user=> \d – קבלת רשימת טבלאות user=> \d person – person קבלת מידע על טבלת

אביב תשס"הDBMS , PostgreSQL4 PSQL – פקודות SQL הרצת פקודות SQL: user=> SELECT Year, COUNT(Book_Id) user=> FROM Books user=> GROUP BY Year user=> HAVING AVG(Pages) > 400; COUNT(Book_Id) Year user=> (3 rows)

אביב תשס"הDBMS , PostgreSQL5 LIBPQ – ספריית פונקציות C שימוש בפונקציות של LIBPQ בתוכנית C: #include הידור וקישור התוכנית:  gcc -I/usr/local/pgsql/include -L/usr/local/pgsql/lib -lpq -o try try.c

אביב תשס"הDBMS , PostgreSQL6 שלד של תוכנית C המשתמשת ב- LIBPQ PGconn *conn; בתחילת התוכנית: i nt main(void) { /* Make a connection to the DB. If parameters omitted, default values are used */ conn = PQconnectdb(“host=pgsql.cs.technion.ac.il “ “dbname=user user=user password=pass”); /* check to see that the backend connection was successfully made */ if (!conn || PQstatus(conn) == CONNECTION_BAD) { fprintf(stderr, "Connection to server failed: %s\n", PQerrorMessage(conn)); PQfinish(conn); return 1; } …

אביב תשס"הDBMS , PostgreSQL7 LIBPQ: שלד של תוכנית C – המשך בסיום התוכנית: … /* Close the connection to the database and cleanup */ PQfinish(conn); return 0; }

אביב תשס"הDBMS , PostgreSQL8 LIBPQ: ביצוע שאילתות/פקודות SQL ביצוע שאילתות/פקודות SQL: PQexec() PGresult *res; … res = PQexec(conn, “SELECT BOOK_NAME, ORDER_DATE “ “FROM ORDERED WHERE CUST_ID=123456”); if(!res || PQresultStatus(res) != PGRES_TUPLES_OK) { fprintf(stderr, "Error executing query: %s\n", PQresultErrorMessage(res)); PQclear(res); return; } …

אביב תשס"הDBMS , PostgreSQL9 LIBPQ: PQexec() – המשך שימוש במחרוזת עזר: char cmd[200]; int cust_id; /* … */ cust_id = 20; /* could be result of some input or computation */ sprintf(cmd, “SELECT BOOK_NAME, ORDER_DATE “ “FROM ORDERED WHERE CUST_ID=%d”, cust_id); res = PQexec(conn, cmd); /* … */ שימו לב! יש לוודא שב-cmd יש מספיק מקום בשביל להכיל את הפקודות!

אביב תשס"הDBMS , PostgreSQL10 LIBPQ: בדיקת תוצאה של שאילתה ערך מוחזר מפונקציה PQresultStatus(): עבור שאילתה ("SELECT..."): PGRES_TUPLES_OK – השאילתה הצליחה אחרת – השאילתה נכשלה עבור פקודות אחרות (DML/DDL): PGRES_COMMAND_OK – הפקודה הצליחה אחרת – הפקודה נכשלה שימו לב : יצירת מבט היא פקודת DDL, ולא שאילתה !

אביב תשס"הDBMS , PostgreSQL11 LIBPQ: שליפת רשומות של תוצאה במידה והשאילתה הצליחה, נוכל לשלוף מידע מהתוצאה : int PQntuples(res) : מס ' הרשומות ( שורות ) בתוצאה ( יכול להיות 0) int PQnfields(res): מספר השדות ( עמודות ) בתוצאה char *PQfname(res, field_index): שם השדה לפי מספר ( החל מ -0) int PQfnumber(res, field_name): מספר השדה לפי שם char *PQgetvalue(res, tup_num, field_num): תוכן השדה המתאים בתוצאה int PQgetisnull(res, tup_num, field_num): NULL מחזיר 1 אם השדה הוא void PQclear(res): משחרר את המשאבים שהוקצו לתוצאה אם PQexec() לא הצליחה, נוכל לקבל תאור מילולי של השגיאה : char *PQresultErrorMessage(res)

אביב תשס"הDBMS , PostgreSQL12 LIBPQ: דוגמא דוגמא: בכל שנה יש להציג את מספר הספרים שיצאו לאור באותה שנה (ללא שימוש ב-GROUP BY) int books_by_year(PGconn *conn){ PGresult *res_year, *res_num; int i, year; char query[120]; res_year = PQExec(conn, “SELECT DISTINCT YEAR FROM BOOK”); if(!res_year || PQresultStatus(res_year) != PGRES_TUPLES_OK){ fprintf(stderr, "Error executing query: %s\n", PQresultErrorMessage(res_year)); PQclear(res_year); return -1; }

אביב תשס"הDBMS , PostgreSQL13 LIBPQ: דוגמא – המשך for(i=0;i<PQntuples(res_year);i++){ year = atoi(PQgetvalue(res_year,i,0)); sprintf(query, “SELECT COUNT(DISTINCT BOOK_NAME) “ “FROM BOOKS WHERE YEAR = %d”, year); res_num = PQexec(conn,query); if(!res_num || PQresultStatus(res_num) != PGRES_TUPLES_OK){ fprintf(stderr, "Error executing query: %s\n", PQresultErrorMessage(res_num)); PQclear(res_num); PQclear(res_year); return -1; } printf(“YEAR=%d Num.Books=%s\n”, year, PQgetvalue(res_num,0,0)); PQclear(res_num); } PQclear(res_year); return 0; }

אביב תשס"הDBMS , PostgreSQL14 WebDB: