עיצוב מסד נתונים הוא תהליך רציף של התאמת ידע וכלים זמינים לייצוג ועיבוד מידע.
ההיקף האמיתי, המשימה הספציפית, תיאור זרימת המידע הנכנס ורעיונות כלליים לגבי תהליך עיבוד המידע מתווספים בהדרגה לרעיון רעיוני מסוים של מהו מסד נתונים במקרה מסוים וכיצד לעבוד איתו.
מסד נתונים מודרני
קשרים יחסיים הם לב ליבו של כל מודל מידע. פתרונות מאורקל מקבילים ל-MySQL במהותם, אך הם שונים מהותית בהיבטים רבים. עיצוב מסד נתונים הוא גם עניין של אבטחה, נפח מידע ואחריות על שלמות הנתונים, אבל אלה הם משניים לנושא של עיצוב מסד נתונים יעיל, אמין וידידותי למשתמש.
טבלאות אקסל אינן שונות מ-Oracle ומ-MySQL בהקשר של מבנים מלבניים (יחסי): עמודות ושורות=תא אחד בצומת שם העמודה (שדה) ואינדקס הבחירה (שורה). אם לא לוקחים בחשבון את המידה והכמות של עבודת כפיים, אז הודות לאמצעים המפותחים של שילוב תאים אנכית ואופקית, אקסל מקדימה אפילו את אורקל!
Excel, לפי הרעיון הבסיסי שלו, לעולם לא "מאירה" את הדינמיקה, הפונקציונליות של אורקל, והיא לא יכולה להעביר משהו מגיליון אחד לאחר "לפי השאריות". כאן אורקל מבטיחה יותר, אבל השיקולים שלה בנושאי הגירה של כמויות מידע גדולות ושילוב עמדות רשמיות ממקורות שונים משאירים הרבה מקום לרצון. כאן MySQL מבטיח יותר: הוא לא מציב לעצמו משימות גלובליות, אבל הוא עושה את העבודה שלו בצורה מושלמת.
קשרים יחסיים הם כלים נוחים, מעשיים ומבוססים, מפתרונות פרטיים ברמת אקסל ועד לנפחים גלובליים של Oracle, נמצאים בשימוש בכל מקום, בביקוש ויש להם עתיד מובטח של עבודה.
מסד נתונים מודרני הוא טבלאות, שורות, עמודות ואינדקסים מוקפים בפונקציונליות מלאה, פותח כלים נוספים שלוקחים בחשבון ריבוי פעולות, עומסים כבדים ונפחים עצומים.
ידע וניסיון במערכות מודרניות לניהול מסדי נתונים (DBMS) לוקחים בחשבון לא רק את הבעיות של מהימנות, מהימנות נתונים, רגולציית גישה ונושאי אבטחה, אלא גם מאפשרים לעקוב אחר השפעות חיצוניות שליליות, לנתח התקפות אפשריותומנסה לפגוע בכוונה.
מסד נתונים מודרני הוא בסיס אמין לכל משאב אינטרנט ויישום מקומי, היכולת להעביר מידע, לשנות ולהעביר נתונים, להצטלב ולשלב תצוגות שונות.
התנאי החיוני היחיד: מפתח מוסמך במיוחד. כדי לבצע עיצוב יעיל של מסדי נתונים יחסיים זמין למומחה, ולעתים קרובות יותר לצוות של מומחים ומומחים בתחום היישום של הבעיה הנפתרת.
היקף, פתרון אפשרי ומכשולים
המידע מסתובב בכל מקום. פרויקטים רבים מחוברים ישירות לאינטרנט, אך הגורם של ייצוג נתונים רשמי כאן אינו טוב יותר מגורם אי הוודאות בעת יצירת משאב אינטרנט למפעל פלדה.
הפיתוח וההתעניינות המאסיבית בחנויות מקוונות אינם מספקים בסיס והזדמנויות להעביר את החוויה של יצירת חנות אחת ליצירת אחרת. גורם הסוד המסחרי יוצר מכשולים רבים להעברת ידע, אם כי, למעשה, כדאי להפריד את החנות בפועל מכלי התוכנה שנוצרו עבור חנות זו.
כמובן שהלקוח שילם וקוד האתר הוא רכושו. מאפיין אופייני של המודרניות: העברת ידע ופיתוחים בין משימות מאותו סוג ותחומי יישום קשורים היא בלתי אפשרית וזו בעיה.
Parsing הוא מגוון רחב של יישומים למערכות ניהול מסדי נתונים. קודם כל, זה סריקת מידע מהאינטרנט. חשוב לא פחות להשוות את המידע שנצבר בומסד נתונים ובקשות מבקרים באינטרנט.
ניתוח מילות מפתח כרוך גם בצורך ליצור פתרון אופטימלי, אבל עיצוב מסד הנתונים ב-Access עשוי להיות מבטיח יותר מאשר ב-MS SQL Server או Oracle.
רשימת מקורות המידע יכולה להיות דינמית. דינמיקה יכולה להיות טבועה בטבלאות מסד נתונים מקור, שמות שדות טבלה וכללי קריאה (שאילתה). עיצוב מסדי נתונים יחסיים ממקורות מרובים מאלץ אותך בבירור לעצב מנתוני המקור, ולא מהארגון האופטימלי של המידע שנאסף.
יש שני דברים שטבועים בכל מסד נתונים:
- התמצאות בתוכן, אלגוריתם יצירת מסד נתונים דינמי בעדיפות;
- אוריינטציה לשימוש, מבנה מסד הנתונים חשוב יותר והאלגוריתם לשימוש במידע מבוסס עליו.
בכל תחום יישום קיים מודל פורמלי של זרימת המידע הנכנס, מודל אחסון מידע - העיצוב בפועל של בסיס הנתונים ומודל (אלגוריתם) לשימוש בנתונים.
נהלים ושלבי עיצוב שונים
היסודות של עיצוב מסד נתונים מתחלקים בדרך כלל לשלושה שלבים. מומחים שונים מתייחסים לשלבי העבודה בדרכים שונות, אך למעשה, ישנן שלוש עמדות:
- תכנון קונספטואלי;
- עיצוב לוגי;
- ביצוע טכני.
תרגול תורם למסורות מבוססות. לא משנה כמה מורכב ההיקף והבעיה הנפתרת. תמיד צריך לבחור נכוןכלים. לדוגמה, עליך לאסוף מידע ממבקרים במשאב אינטרנט, אך עליך להשוות אותו לנתונים מ-MS SQL Server. משאב האינטרנט מתארח ב-FreeBSD (אינטרנט, שרת Apache), ו-MS SQL Server בעיר אחרת זמין דרך הרשת המבוזרת של החברה.
בפתרון זה, תחילה עליך לפתור בעיה מסוימת: ליצור חילופי נתונים עם השרת הפנימי.
לביצוע הטכני של משימה נפוצה תהיה בהכרח השפעה על השלב הראשוני: נדיר שניתן לעשות עיצוב מסד נתונים מאפס. אפילו עם טכנולוגיה מוכחת לפתרון בעיות, ההיקף מתפתח, הוא תמיד נדרש לעשות משהו שונה ממה שהוא נועד במקור.
לאחרונה, תיאורטיקנים ומתרגלים רבים פועלים עם ישויות כנתונים מיוחדים. אלו הפשטות המאפשרות לתאר את מודל המידע בקלט, במהלך העיבוד ובתוצאה הסופית - בסיס הנתונים.
תצוגות נתונים וישויות
DB עיצוב באמצעות הפשטות וישויות: היכולת ליצור תמונת מידע, להגדיר סוגי נתונים ויחסים ביניהם.
בדרך כלל עיצוב כזה של מודל מסד נתונים מסתיים במודל גרפי, באמצעות MS Visio או כלים חזותיים של ה-DBMS הנבחר. ל-Access יש דרך משלה ליצור תמונת מידע, ל-MySQL יש דרך משלה, וכמה מערכות ניהול תוכן מסתירות את מסד הנתונים לחלוטין, וכופה על המפתח מודל נתונים דרך הישויות שלהן -אובייקטים של המשימה הנפתרת.
תכונה אופיינית של מערכות ניהול תוכן רבות (CMS) היא שהן עושות "יישום" לרמה של הפשטה גדולה יותר כאשר מתארים את אזור המידע של הבעיה הנפתרת. מסד הנתונים האמיתי נסתר, CMS מציע למפתח רעיון משלו לגבי תמונת המידע של העולם.
כתוצאה מכך, שלבי עיצוב מסד הנתונים מצטמצמים לעמידה בדרישות היסודיות וביצוע הצעדים המוצעים על ידי יוצרי CMS מסוים. אין שום דבר מביש בשימוש ברעיונות של מסדי נתונים ובעיצוב שלהם מ-Symfony או Bitrix, Zend או Yii, אבל עבור המפתח זה "נטל".
באופן אידיאלי, יש לבחור וליישם כלים לעיצוב מסד נתונים באופן אינדיבידואלי, ללא דעה חיצונית, אך עם יישום של ניסיון וידע.
אידיאלי למפתח שיקבל הסמכה על ידי Oracle, אך מקובל לחלוטין על כישוריו של מפתח לכלול תובנות לגבי רעיונות המידע של אורקל וידע פעיל ביישומי MySQL.
בפרויקטים מורכבים ועיבוד מידע מבוזר חשוב לא רק בסיס הנתונים, אלא גם מקורות המידע, רעיונות לגבי צרכי הצרכנים.
שלבים או צוות: מאזן עדיפויות
דרישת העקביות היא בעלת החשיבות המיידית ביותר. היסודות של עיצוב מסד הנתונים כוללים גם שלב של עבודה, ניטור תוצאות ביניים, חשיבה מחודשת על כל שלב שהושלם בהתבסס על ביצוע סוג העבודה הבא:
- systematic;
- phasing;
- משוב מכל נקודת זמן, עד לנקודת ההתחלה.
הוראות אלה מופשטות, אך קיימות בכל טכנולוגיה תיאורטית ומעשית ליצירת מסד נתונים יעיל.
שום טכנולוגיה לא מתפתחת מעצמה, היא מונעת על ידי אנשים. הכישורים של צוות הפיתוח חיוניים. מודל המידע של מסד הנתונים הוא לא רק מסגרת, אלא גם זרימת מידע.
מה יותר חשוב: גרפיקה יפה בייצוג מבנה מסד הנתונים או תיאור מדויק של זרימות מידע בדינמיקה - עניין לא רק של המשימה וההיקף, אלא גם דעת צוות הפיתוח בדינמיקה.
כוח אדם הוא הכל, אבל בהקשר: העיצוב הרעיוני של מסד נתונים הוא הכל הסמכה. כל האנשים הם ייחודיים, ובתחום מערכות המידע קיימים ומתפתחים ייצוגים של אנשים ספציפיים.
חשוב לבנות צוות מפתחים, לא כמה שלבי עיצוב מיתולוגיים של מסד נתונים שהוצעו על ידי מומחה סמכותי. הסמכות של מומחה זה נוצרה על בסיס עבודות ספציפיות, בזמן מסוים. העבודה צריכה להיעשות היום, משימה חדשה, ציוד מודרני, טכנולוגיה רעננה, …
אפשרי הפוך. יש אקסל ואקסס ונתונים "בשפע" בפורמטים הללו מימי קדם, כאשר Windows for Workgoups עדיין חי וקיים. נותרו חלקית נתוני dBase ו- Quattro. היום המילים האלה כבר נשכחו, אבל המידענשאר, הוא מבוקש וצריך לחלץ אותו וליצור רעיונות חדשים.
ישן וחדש: מאזן ידע
טכנולוגיית הענן אינה דומה לבסיסי הנתונים שעשו אשטון-טייט. מה שאורקל קנתה פעם אינו בר השוואה למה שהיא עושה היום. אבל משתנים, אלגוריתמים, פונקציות, לולאות ותנאים נשארו בתכנות מאז שנות ה-80 המוקדמות. אלא אם כן הרעיון של הנוהל שקע בשכחה, והכל נשאר כפי שהיה בימי קדם.
אפילו רעיונות מודרניים של תכנות מונחה עצמים לובשים את ה"מגבלות" התחביריות והסמנטיות הקלאסיות של המאה הקודמת.
מה לעשות - תכנות הוא אינרציאלי, ופורמליזציה של מידע ועיצוב מאגרי מידע הם יותר תהליך מאשר תוצאה. עבודה מבוימת היא תנאי מוקדם להשגת תוצאות. אבל מי ספר את מספר האיטרציות משלבי הביניים כמעט ועד תחילת העבודה?
המידע הוא תמיד דינמי, שום דבר לא עומד במקום: במיוחד תחום הנושא של המשימה ודרישות המשתמש. כל שלב שהושלם של העבודה מאפשר לך להעריך ברמה חדשה מה כבר נעשה ומה נותר לעשות.
לשקול עיצוב מבנה מסד נתונים כמשימה ולקבל את התוצאה הסופית זה חסר תועלת. ברגע שמסד הנתונים יופעל, בוודאי יופיע רעיון חדש, גם אם הכלי ליצירת בסיס הנתונים היה אקסל "פשוט", ולא מוצר חזק ורב-תכליתי להפליא מבית אורקל,מניפולציה של מיליוני עסקאות, מאות אלפי משתמשים במקביל וטרה-בייט של מידע.
העדיפות היא לא מבנה מסד הנתונים, אלא גיבוש צוות מומחים מוסמך, בתוספת דרישת החובה לדינמיות רבה יותר של התוצאה, כך שעם סיום העבודה לא יהיה צורך ליצור קשר המפתחים, לפחות כמה חודשים.
פיתוח רציף ו/או קפיצות לגובה
Windows אינו מסד נתונים, אבל יש לו שריד - הרישום. קובץ המארחים הוא פשוט זיהוי של כתובות ה-IP והשמות הסמליים של המחשב המקומי. אבל דרך הקובץ הזה נוצר מידע זורם מתחומים שונים או למערכות DBMS שונות.
אפשר להבין את ה-Windows הרב-צדדי כמחשב או שרת עובדים, אבל זה לא יעבוד בשום אופן כדי להצדיק את ההיגיון של גרסאות המוצר הזה. גם PHP הוא לא מסד נתונים, אבל הטיעונים של המפתחים מדוע גרסה 5 באה מיד אחרי גרסה 7 אינם עקביים. PHP הוא כלי גישה ל-MySQL, התחביר שלו מגדיר כיצד ליצור שאילתות ולקבל תגובות ממסד הנתונים באמצעות ניב SQL.
דוגמאות לחוסר התאמה בין כלי תכנות מודרניים ותמיכה במסד נתונים הפכו לנורמה בשנים האחרונות, אבל זה לא הכי מקורי. מה יהיה מאחורי הגרסה של Windows 10? מהם הסיכויים עבור Oracle Database 12c?
מידע של המפתח-המחבר: "Oracle Database 11g Express Edition (Oracle Database XE) הוא DBMS ברמת כניסה המבוססת על קוד ה-DBMS של Oracle Database 11g Release 2. DBMS זה חינמי לפיתוח,פריסה ומכירה, הורדה מהירה וקלה לניהול."
פרספקטיבה של מפתח משתמש: "בשנת 2013, אורקל הוציאה את Oracle Database 12c (גרסה 12.1.0.1) עם יתרונות מרכזיים של עלויות אחסון נמוכות יותר, זמינות נתונים גבוהה, איחוד מסד נתונים קל והגנה על גישה לנתונים "".
תרגול אמיתי: עיצוב מסד נתונים לוגי אובייקטיבי, יעיל ואפקטיבי זמין רק לצוות של מפתחים מוסמכים. השגת תוצאה עובדת אינה קשה, קשה למסד את זרימות המידע הנכנסות ולקבוע את הבסיס האופטימלי.
לעולם של צורות חלקות ממלבנים מדויקים
עם כניסתו של תכנות מונחה עצמים, הסדרת נתונים קיבלה חיים חדשים. ואכן, הכל מסביב הוא רק קווים, רצוי באורך בלתי מוגדר. מספרים ותאריכים הם גם מחרוזות תווים.
אין להכחיש את הכוח והאובייקטיביות של יחסים יחסיים, אבל האם הדינמיקה של עמודות ושורות פוגעת במוניטין שלהם? טבלה היא פשוט נתונים שעשויים להכיל כותרת (רשימת עמודות) או ללא שורות. תן לטבלה להיות רק אוסף של נתונים, ללא שם בהכרח.
קבוצת הנתונים יכולה להיות הטרוגנית וניתן למצוא בה נתונים בעלי מבנה שונה. ביסודו, ההומוגניות של הנתונים מעידה על התפתחות ההיקף. חלוקת הנתונים לפי סוגים ומינים היא סימן לגישה שיטתית ואובייקטיבית, אך עדיין רצוי להודות באפשרות של דינמיקה של מבנה.
אם פלטעיצוב ויצירת מסד נתונים מעבר למבנים קשיחים ובהנחה שטבלה היא אוסף של שורות שאינן בהכרח מאותו סוג ודומות בסמנטיקה זו לזו, אז עיצוב מסד הנתונים ישתנה באופן דרמטי.
נושא העבודה לא יהיה תיאור של מבנה מסד הנתונים, אלא הדינמיקה של תנועת המידע. שלבי העבודה יחולקו לשלושה מרכזי כובד:
- זרימת מידע קלט;
- שינוי ותנועה של מידע בתוך מסד הנתונים;
- בחר נתונים לשימוש.
אין מושג של מבנה הטבלה. אין שורות או עמודות. יש הפשטה - נתון, של מבנה מסוים, שמספק נקודה מסוימת באלגוריתם. ליתר דיוק, פונקציית עיבוד המידע דורשת מידע מסוים בסכום מסוים.
הדרישה המחייבת של רקורסיביות של כל פונקציות עיבוד המידע והתמקדות בפונקציות, לא בנתונים, מאפשרת לעצב מסד נתונים בדינמיקה של המידע המצטבר וזרימת הנתונים הנכנסת, המשמשים ביוזמת המשתמש, תהליך או פונקציה אחרת.
למעשה: הגיע אות שימוש, התקבלה בקשת אחזור, הופעל טריגר באפליקציה, והמידע הנכנס, דרך מה שכבר היה שם, סיפק את הפתרון הרצוי.
ידע בסיסי וקונסטרוקציות נוקשות
ידע הוא זכותו של האדם, תוכניות הן הנטל של המחשבים. המפתח חופשי ליישם ידע כראות עיניו במצב מסוים. אדם רגיל משתמש בהרבה מאגרי מידע, מבלי לייחס לכך חשיבות. אֵיךמאגרי מידע מאורגנים בראש של אדם רגיל, אף אחד לא יודע, אבל כל אחד יודע איך הוא מנהל את העסק שלו, איפה הוא רושם מה הוא מוצא ומתי הוא צריך להשתמש בו.
תוצאת עבודתו של המתכנת - ברמה של תוכנית ב-"Basic", השואבת נתונים מאתר חנות מקוונת דרך ODBC, שווה ערך למפתח שכותרתו Oracle שמגיש בקשה להביא נתונים מסלון תעופה וחלל MAKS. שתי התוצאות "קופאות" במצב סטטי מרגע השלמת העבודה. זה לא ידע אקטיבי שאדם משתמש בו, זה הסוד של יצירת מערכת עיצוב מסד נתונים.
לא ניתן לתקן את האלגוריתם. הכל חייב להיות מוגדר בצורה דינמית. אין להכחיש את היתרונות של מפתחים מוסמכים, אך הם אינם טמונים כלל בצורות האלגנטיות של פתרונות מבית Oracle, MySQL או Access, המוגבלת ביכולותיה. גיליון אלקטרוני אחר של אקסל יכול לספק תוכן דינמי ולא לדרוש השתתפות של מתכנת למשך זמן הגון פחות או יותר לאחר סיום העבודה.
השאלה היא עד כמה הדינמיקה של אזור היישומים מפורמלת, לא המבנה של מסד הנתונים.
פתרונות חיים
אי אפשר לתכנן עבודה בצורה כזו שתקשור צוות של מפתחים מקצועיים למשימה. לא שהקבוצה נעלבה, אבל זו לא הגישה הנכונה.
המשימה של עיצוב מסד נתונים צריכה להיות מנוסחת בצורה כזו שהפונקציונליות שפותחה תשפר את עצמה, תצבור ידע ובביצוע "חובותיה", תתחיל לא מהקוד,נוצר על ידי מומחים, אבל מהידע שנרכש באמצעות הקוד הזה.