<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>מסדי נתונים ו-MySQL on kodkod | מבואות קודקוד</title><link>https://intro-kodkod-6.nm-ambition.com/docs/databases/</link><description>Recent content in מסדי נתונים ו-MySQL on kodkod | מבואות קודקוד</description><generator>Hugo</generator><language>he</language><copyright>מבואות קודקוד</copyright><atom:link href="https://intro-kodkod-6.nm-ambition.com/docs/databases/index.xml" rel="self" type="application/rss+xml"/><item><title>מסד נתונים והקמת MySQL: טבלאות, מפתחות, Docker ו-Driver</title><link>https://intro-kodkod-6.nm-ambition.com/docs/databases/01-what-is-a-database/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/databases/01-what-is-a-database/</guid><description>&lt;h2 id="מה-בשיעור"&gt;מה בשיעור&lt;/h2&gt;
&lt;p&gt;השיעור הזה בנוי משני פרקים, באותו סדר כמו במצגת:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;פרק ראשון&lt;/strong&gt; — מהו Database: טבלה, שורה, עמודה, Primary Key וטיפוסי נתונים&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;פרק שני&lt;/strong&gt; — הקמת MySQL: Docker, Database Client ו-Driver&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="פרק-ראשון-מהו-database--טבלה-שורה-עמודה-primary-key-וטיפוסי-נתונים"&gt;פרק ראשון: מהו Database — טבלה, שורה, עמודה, Primary Key וטיפוסי נתונים&lt;/h2&gt;
&lt;h3 id="מה-נלמד"&gt;מה נלמד?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;למה&lt;/strong&gt; צריך Database (מסד נתונים).&lt;/li&gt;
&lt;li&gt;מה זה &lt;strong&gt;Relational Database&lt;/strong&gt; (מסד נתונים רלציוני).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Table&lt;/strong&gt; (טבלה), &lt;strong&gt;Row&lt;/strong&gt; (שורה), &lt;strong&gt;Column&lt;/strong&gt; (עמודה).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Primary Key&lt;/strong&gt; (מפתח ראשי).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data Types&lt;/strong&gt; (טיפוסי נתונים) בסיסיים.&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="teach-box teach-box-tip"&gt;
 &lt;div class="teach-box-title"&gt;מה לא נלמד השבוע (בכוונה)&lt;/div&gt;
 &lt;div class="teach-box-body"&gt;
&lt;p&gt;השבוע לומדים &lt;strong&gt;רק את הבסיס הדרוש ל-CRUD&lt;/strong&gt;: חיבור, טבלה אחת, ויצירה, קריאה, עדכון ומחיקה. &lt;strong&gt;לא&lt;/strong&gt; נלמד JOIN, GROUP BY, HAVING, Sub-Queries, נרמול מתקדם, אינדקסים או Stored Procedures. את אלה תלמדו לעומק בהמשך המסלול.&lt;/p&gt;</description></item><item><title>חיבור, טבלה והכנסת נתונים: Connection, CREATE TABLE ו-INSERT</title><link>https://intro-kodkod-6.nm-ambition.com/docs/databases/03-open-test-close-connection/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/databases/03-open-test-close-connection/</guid><description>&lt;h2 id="מה-בשיעור"&gt;מה בשיעור&lt;/h2&gt;
&lt;p&gt;השיעור הזה בנוי משני פרקים, באותו סדר כמו במצגת:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;פרק ראשון&lt;/strong&gt; — פתיחת Connection, בדיקה שהחיבור עובד וסגירה נכונה&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;פרק שני&lt;/strong&gt; — SQL בסיסי: CREATE TABLE ו-INSERT&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="פרק-ראשון-פתיחת-connection-בדיקה-שהחיבור-עובד-וסגירה-נכונה"&gt;פרק ראשון: פתיחת Connection, בדיקה שהחיבור עובד וסגירה נכונה&lt;/h2&gt;
&lt;h3 id="מה-נלמד"&gt;מה נלמד?&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;מחזור החיים&lt;/strong&gt; של כל עבודה מול מסד נתונים:&lt;/p&gt;</description></item><item><title>מערך שיעור: מהו Database וחיבור ראשוני</title><link>https://intro-kodkod-6.nm-ambition.com/docs/databases/instructor-db-setup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/databases/instructor-db-setup/</guid><description>&lt;p&gt;&lt;strong&gt;משך:&lt;/strong&gt; יום לימוד מלא — 6 שעות אקדמיות (270 דקות).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;מטרת השיעור:&lt;/strong&gt; הסטודנטים יבינו למה מערכות שומרות נתונים במסד ולא בקבצים, יכירו את מבנה הנתונים הרלציוני ברמה הנדרשת, ויתחברו למסד מקוד Python בצורה נכונה ובטוחה.&lt;/p&gt;</description></item><item><title>SQL בסיסי: SELECT, WHERE לפי id וסינון פשוט</title><link>https://intro-kodkod-6.nm-ambition.com/docs/databases/02-select-where/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/databases/02-select-where/</guid><description>&lt;h2 id="מה-נלמד"&gt;מה נלמד?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;SELECT&lt;/code&gt;&lt;/strong&gt; = ה-&lt;strong&gt;R&lt;/strong&gt;ead של CRUD: קריאת נתונים מטבלה.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;כל השורות&lt;/strong&gt;: &lt;code&gt;SELECT * FROM students&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;עמודות נבחרות&lt;/strong&gt;: &lt;code&gt;SELECT name, email FROM students&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;שורה אחת לפי id&lt;/strong&gt;: &lt;code&gt;SELECT ... WHERE id = 2&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;סינון פשוט&lt;/strong&gt; עם &lt;code&gt;WHERE&lt;/code&gt; ותנאים.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;מיון&lt;/strong&gt; עם &lt;code&gt;ORDER BY&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="למה-צריך-את-זה"&gt;למה צריך את זה?&lt;/h2&gt;
&lt;p&gt;שתי השאילתות החשובות ביותר בכל API:&lt;/p&gt;</description></item><item><title>הרצת Query מתוך Python: execute, פרמטרים, commit ו-fetch</title><link>https://intro-kodkod-6.nm-ambition.com/docs/databases/03-queries-from-python/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/databases/03-queries-from-python/</guid><description>&lt;h2 id="מה-נלמד"&gt;מה נלמד?&lt;/h2&gt;
&lt;p&gt;עד עכשיו כתבנו SQL &amp;ldquo;ידני&amp;rdquo; ב-Database Client. עכשיו מחברים אותו לקוד, לפי המסלול שהסילבוס מדגיש:&lt;/p&gt;



&lt;div class="expressive-code"&gt;
 &lt;figure class="frame not-content"&gt;
 &lt;figcaption class="header"&gt;
 &lt;span class="title"&gt;&lt;/span&gt;
 &lt;/figcaption&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Python → Connection → Query → Database → Result → Python
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;(values) (open) (SQL + (runs it) (rows) (tuples,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; params) ints, strs)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/figure&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;execute&lt;/code&gt;&lt;/strong&gt; עם &lt;strong&gt;פרמטרים&lt;/strong&gt; (&lt;code&gt;%s&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQL Injection&lt;/strong&gt;: הסכנה, ולמה פרמטרים פותרים אותה.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;commit&lt;/code&gt;&lt;/strong&gt;: שמירת שינויים.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;lastrowid&lt;/code&gt;&lt;/strong&gt;: ה-id שהמסד נתן לשורה החדשה.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;fetchone&lt;/code&gt; / &lt;code&gt;fetchall&lt;/code&gt;&lt;/strong&gt; על נתונים אמיתיים.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="למה-צריך-את-זה"&gt;למה צריך את זה?&lt;/h2&gt;
&lt;p&gt;ב-API, הערכים מגיעים &lt;strong&gt;מהמשתמש&lt;/strong&gt;: שם, גיל ואימייל מתוך Body של POST. הקוד צריך להכניס אותם לשאילתה &lt;strong&gt;בבטחה&lt;/strong&gt;, לשמור, ולהחזיר את מה שנשמר, כולל ה-id החדש (&lt;code&gt;201 Created&lt;/code&gt; + הסטודנט). כל זה קורה בשיעור הזה, בקוד אמיתי.&lt;/p&gt;</description></item><item><title>מערך שיעור: SQL בסיסי — Create ו-Read</title><link>https://intro-kodkod-6.nm-ambition.com/docs/databases/instructor-sql-queries/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/databases/instructor-sql-queries/</guid><description>&lt;p&gt;&lt;strong&gt;משך:&lt;/strong&gt; יום לימוד מלא — 6 שעות אקדמיות (270 דקות).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;מטרת השיעור:&lt;/strong&gt; הסטודנטים יכתבו SQL בסיסי ליצירה, הוספה וקריאה, ויריצו אותו מ-Python בצורה בטוחה, עד שכבת גישה למסד (&lt;code&gt;db.py&lt;/code&gt;) שמחזירה dicts מוכנים לשרת.&lt;/p&gt;</description></item><item><title>עדכון ומחיקה: UPDATE ו-DELETE לפי id — מ-SQL ומ-Python</title><link>https://intro-kodkod-6.nm-ambition.com/docs/databases/01-update/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/databases/01-update/</guid><description>&lt;h2 id="מה-בשיעור"&gt;מה בשיעור&lt;/h2&gt;
&lt;p&gt;השיעור הזה בנוי משני פרקים, באותו סדר כמו במצגת:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;פרק ראשון&lt;/strong&gt; — UPDATE לפי id: עדכון רשומה מ-SQL ומ-Python&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;פרק שני&lt;/strong&gt; — DELETE לפי id: מחיקת רשומה מ-SQL ומ-Python&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="פרק-ראשון-update-לפי-id--עדכון-רשומה-מ-sql-ומ-python"&gt;פרק ראשון: UPDATE לפי id — עדכון רשומה מ-SQL ומ-Python&lt;/h2&gt;
&lt;h3 id="מה-נלמד"&gt;מה נלמד?&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;UPDATE&lt;/code&gt;&lt;/strong&gt; = ה-&lt;strong&gt;U&lt;/strong&gt; של CRUD: שינוי של רשומה &lt;strong&gt;קיימת&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>CRUD מלא מתוך Python: מודול db.py שלם ובדיקת כל ארבע הפעולות</title><link>https://intro-kodkod-6.nm-ambition.com/docs/databases/04-full-crud-module/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/databases/04-full-crud-module/</guid><description>&lt;h2 id="מה-נלמד"&gt;מה נלמד?&lt;/h2&gt;
&lt;p&gt;בסוף היום הזה, כמו שהסילבוס מגדיר, יש לנו &lt;strong&gt;CRUD מלא מתוך Python&lt;/strong&gt;. השיעור מרכיב את כל החלקים מימים 2–4 ל&lt;strong&gt;מודול אחד&lt;/strong&gt;, &lt;code&gt;db.py&lt;/code&gt;, ובודק אותו מקצה לקצה.&lt;/p&gt;</description></item><item><title>מערך שיעור: SQL בסיסי — Update ו-Delete</title><link>https://intro-kodkod-6.nm-ambition.com/docs/databases/instructor-crud/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/docs/databases/instructor-crud/</guid><description>&lt;p&gt;&lt;strong&gt;משך:&lt;/strong&gt; יום לימוד מלא — 6 שעות אקדמיות (270 דקות).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;מטרת השיעור:&lt;/strong&gt; להשלים את ה-CRUD: הסטודנטים יעדכנו וימחקו בבטחה, יזהו &amp;ldquo;לא נמצא&amp;rdquo; ו&amp;quot;התנגשות&amp;quot;, ויבינו Transaction. בסוף היום יש CRUD מלא מתוך Python, כפי שמגדיר הסילבוס.&lt;/p&gt;</description></item></channel></rss>