פונקציות קידוד ודמיון
SQL Server 2025 מציג פונקציות חדשות לקידוד מחרוזות ולמדידת דמיון. תכונות אלו תומכות בהמרת נתונים מאובטחת, התאמה מטושטשת והשוואות שפה טבעית ישירות בתוך T-SQL.
הם מקלים על זיהוי כפילויות, סטנדרטיזציה של רשומות או מציאת התאמות קרובות מבלי להסתמך על כלים חיצוניים או פונקציות המוגדרות על-ידי המשתמש.
סקירה כללית של פונקציות קידוד ודמיון
BASE64_ENCODE
המרת מחרוזת או ערך בינארי לתבנית Base64. משמש בדרך כלל לקידוד אישורים, נתונים בינאריים או טקסט שצריך לאחסן או לשדר בבטחה באמצעות JSON או ממשקי API באינטרנט.
BASE64_DECODE
הופך את הקידוד וממיר טקסט בקידוד Base64 בחזרה לצורתו המקורית.
יחד, שתי פונקציות אלה עוזרות לנהל חילופי נתונים מאובטחים וניידים בין SQL Server למערכות אחרות.
STRING_SIMILARITY
הפונקציה מחזירה ניקוד דמיון (בין 0.0 ל- 1.0) המשווה בין שתי מחרוזות בהתבסס על רצפי תווים.
ציון גבוה יותר פירושו ששני המיתרים דומים יותר.
EDIT_DISTANCE
מחשב את מספר פעולות העריכה של תו בודד (הוספה, מחיקה או החלפה) הדרושות לשינוי מחרוזת אחת לאחרת.
EDIT_DISTANCE_SIMILARITY
ממיר את מרחק העריכה לציון דמיון, כאשר 1.0 מייצג התאמה מדויקת ו- 0.0 פירושו שאין דמיון.
JARO_WINKLER_DISTANCE
מדידת המרחק בין שתי מחרוזות בהתבסס על טרנספוזיציות והתאמת קידומות. משמש בדרך כלל להשוואת שמות או מזהים קצרים.
JARO_WINKLER_SIMILARITY
החזרת ניקוד דמיון מ- 0.0 עד 1.0 באמצעות אלגוריתם Jaro-Winkler, תוך הדגשת דמיון בתחילת המחרוזות.
הוא שימושי להתאמת שמות, רשומות חברה או קלט משתמש שעשויים להכיל שגיאות הקלדה.
דוגמה 1: קידוד ופענוח נתונים רגישים
מנהל מערכת רוצה לאחסן מפתחות API בצורה מקודדת כדי למנוע חשיפה מקרית במהלך ביקורות או ייצוא. ניתן לקודד את המפתחות ב-Base64 לפני כתיבתם בטבלת תצורה.
דוגמה לשאילתה: קידוד ופענוח
DECLARE @ApiKey NVARCHAR(100) = 'AppKey-2025-SECURE';
DECLARE @Encoded NVARCHAR(MAX);
DECLARE @Decoded NVARCHAR(MAX);
-- Encode the API key
SET @Encoded = BASE64_ENCODE(@ApiKey);
-- Decode it back
SET @Decoded = BASE64_DECODE(@Encoded);
SELECT @ApiKey AS OriginalValue, @Encoded AS EncodedValue, @Decoded AS DecodedValue;
תוצאות
| ערך מקורי | ערך מקודד | DecodedValue |
|---|---|---|
| AppKey-2025-מאובטח | QXBwS2V5LTIwMjUtU0VDVVJF | AppKey-2025-מאובטח |
דוגמה זו מראה כיצד ניתן לקודד נתונים בבטחה לאחסון או העברה ולפענח אותם בעת הצורך, הכל בתוך T-SQL.
דוגמה 2: השוואת מחרוזות לדמיון
מהנדס איכות נתונים צריך לזהות ערכים כמעט כפולים בטבלת לקוחות שנגרמו כתוצאה מהזנת נתונים לא עקבית.
באמצעות פונקציות הדמיון של SQL Server 2025, ניתן לזהות רשומות השונות רק במעט, כגון שגיאות הקלדה או רווחים מיותרים.
נתונים לדוגמה
| מזהה לקוח | שם לקוח |
|---|---|
| 1 | ג'ונתן סמית' |
| 2 | ג'ונתן סמית' |
| 3 | J. סמית |
| 4 | ג'ון סמית' |
שאילתה: השוואת שמות עם פונקציות דמיון
SELECT
A.CustomerName AS NameA,
B.CustomerName AS NameB,
STRING_SIMILARITY(A.CustomerName, B.CustomerName) AS SimilarityScore,
EDIT_DISTANCE(A.CustomerName, B.CustomerName) AS EditSteps,
JARO_WINKLER_SIMILARITY(A.CustomerName, B.CustomerName) AS JaroScore
FROM dbo.Customers A
JOIN dbo.Customers B
ON A.CustomerID < B.CustomerID
ORDER BY SimilarityScore DESC;
תוצאות
| שם א | שם ב | ציון דמיון | ערוךשלבים | ג'רוסקור |
|---|---|---|---|---|
| ג'ונתן סמית' | ג'ונתן סמית' | 0.93 | 1 | 0.94 |
| ג'ונתן סמית' | ג'ון סמית' | 0.77 | 4 | 0.79 |
| ג'ונתן סמית' | J. סמית | 0.68 | 6 | 0.70 |
| J. סמית | ג'ון סמית' | 0.62 | 5 | 0.66 |
פלט זה מראה ש"ג'ונתן סמית" ו"ג'ונתן סמית" כמעט זהים, בעוד ש-"J. "סמית" ו"ג'ון סמית" חולקים דמיון חלקי.
ציונים אלה יכולים לסייע בזיהוי כפילויות אפשריות לפני מיזוג או ניקוי נתונים.
דוגמה 3: שילוב קידוד ודמיון
במערכות מסוימות, יש להשוות מזהים מקודדים בעקיפין. על ידי פענוח ולאחר מכן החלת דמיון, אתה עדיין יכול לזהות דפוסים או כפילויות על פני נתונים מקודדים.
DECLARE @Encoded1 NVARCHAR(MAX) = BASE64_ENCODE('User-713');
DECLARE @Encoded2 NVARCHAR(MAX) = BASE64_ENCODE('User-713X');
SELECT
@Encoded1 AS EncodedA,
@Encoded2 AS EncodedB,
STRING_SIMILARITY(
BASE64_DECODE(@Encoded1),
BASE64_DECODE(@Encoded2)
) AS SimilarityScore;
תוצאה
| מקודד א | מקודד B | ציון דמיון |
|---|---|---|
| VXNlci03MTM= | VXNlci03MTNY | 0.93 |
דוגמה זו מראה שגם לאחר פענוח ערכי Base64, SQL Server יכול לחשב ציוני דמיון ללא שכבות עיבוד נוספות.
סיכום
SQL Server 2025 מרחיב את T-SQL עם פונקציות מוכללות לקידוד Base64 וניתוח דמיון מחרוזות.
מפתחים יכולים כעת לקודד, לפענח ולהשוות מחרוזות ישירות בשאילתות SQL כדי לשפר את איכות הנתונים, לזהות כפילויות קרובות ולטפל בהמרות טקסט מאובטחות.
כלים אלה מפשטים משימות שדרשו בעבר קבצי Script חיצוניים או שילוב CLR, ומשפרים הן את הביצועים והן את יכולת התחזוקה עבור עומסי עבודה עתירי טקסט.