| Termin | Definicja |
|---|---|
| Kolacja tabeli | Kolacja tabeli to ustawienie sortowania obowiązujące dla kolumn tekstowych danej struktury, o ile nie zdefiniowano inaczej. Jak działa kolacja tabeli w bazie danychKolacja tabeli to reguła porównywania i porządkowania wartości tekstowych zapisanych w tabeli. Określa, w jaki sposób silnik bazy danych interpretuje kolejność znaków oraz kiedy dwa napisy uznaje za równe. Ustawienie to dotyczy przede wszystkim kolumn tekstowych, takich jak kolumny przechowujące nazwy, adresy, identyfikatory opisowe lub komentarze. Jeżeli dla konkretnej kolumny nie wskazano innej reguły, dziedziczy ona kolację ustawioną na poziomie tabeli albo wyższego obiektu bazy danych. Kolacja nie jest tym samym co kodowanie znaków. Kodowanie określa sposób zapisania znaków w pamięci lub na dysku, natomiast kolacja opisuje ich porównywanie. Dwa teksty mogą być zapisane poprawnie w kodowaniu Unicode, a mimo to sortować się inaczej zależnie od wybranej kolacji. Ma to znaczenie zwłaszcza dla alfabetów zawierających znaki diakrytyczne, różnych wariantów wielkości liter oraz znaków, których kolejność zależy od reguł językowych. Wielkość liter, akcenty i równość tekstuJednym z podstawowych parametrów kolacji jest czułość na wielkość liter. W kolacji niewrażliwej na wielkość liter wartości „Laptop” i „laptop” mogą być traktowane jako równoważne podczas wyszukiwania lub porównania. W kolacji wrażliwej na wielkość liter te same wartości pozostają różne. Analogiczna zasada może dotyczyć znaków diakrytycznych. W zależności od reguły teksty różniące się wyłącznie akcentem, na przykład formy z „a” i „ą”, mogą być uznawane za różne albo porównywane jako warianty tego samego znaku. Wybór kolacji wpływa więc nie tylko na wynik sortowania, lecz także na działanie operatorów porównania, warunków wyszukiwania oraz ograniczeń unikalności. Jeśli kolacja nie rozróżnia wielkości liter, próba zapisania dwóch wartości różniących się wyłącznie wielką i małą literą może zostać potraktowana jako naruszenie indeksu unikalnego. Z kolei kolacja rozróżniająca takie znaki pozwoli przechowywać te wartości jako osobne rekordy, o ile pozostałe ograniczenia tabeli na to zezwalają. Reguły porównywania mogą również uwzględniać język i lokalne zasady sortowania. Kolejność liter nie zawsze wynika bezpośrednio z ich wartości kodowych. Dlatego sortowanie wykonane przez bazę danych może różnić się od prostego porządku uzyskanego przez porównanie liczb reprezentujących znaki. W aplikacjach wielojęzycznych kolację należy dobierać zgodnie z rzeczywistym językiem danych i oczekiwanym sposobem wyszukiwania. Wpływ kolacji na zapytania i indeksyKolacja jest używana podczas wykonywania zapytań zawierających sortowanie, porównywanie tekstu oraz filtrowanie wyników. Dotyczy to między innymi klauzul porządkujących, warunków równości, zakresów tekstowych i wyszukiwania wzorców. Jeżeli zapytanie porównuje kolumny o odmiennych kolacjach, silnik może zastosować regułę wynikającą z hierarchii ustawień albo wymagać jawnego wskazania sposobu porównania. W takiej sytuacji wynik może zależeć od składni i możliwości konkretnego silnika bazy danych. Ustawienie kolacji ma także znaczenie dla indeksów. Indeks tekstowy jest budowany zgodnie z regułami określającymi kolejność i równość wartości. Zmiana kolacji może zatem zmienić sposób grupowania kluczy w indeksie oraz wynik wyszukiwania korzystającego z tego indeksu. Nie każda zmiana ustawienia jest wyłącznie zmianą prezentacji danych. Przy dużej tabeli może być konieczna przebudowa indeksów, sprawdzenie ograniczeń unikalności oraz ponowna weryfikacja zapytań używanych przez aplikację. Problemy pojawiają się również wtedy, gdy kolacja tabeli różni się od kolacji kolumn, widoków, procedur lub połączeń z aplikacją. Tekst wprowadzony przez formularz może być porównywany według innej reguły niż tekst zapisany wcześniej. Objawem bywają pozornie brakujące wyniki, odmienne sortowanie nazw, niemożność dodania wartości uznanej za duplikat albo różnice między środowiskiem testowym i produkcyjnym. Diagnostyka wymaga wtedy sprawdzenia definicji tabeli, właściwości kolumn, indeksów i ustawień połączenia. Dobór i weryfikacja ustawieniaKolację tabeli należy dobierać na podstawie rodzaju danych oraz oczekiwanego zachowania aplikacji. Dla pól przeznaczonych do wyszukiwania nazw użytkownik może oczekiwać niewrażliwości na wielkość liter, natomiast dla technicznych identyfikatorów lub kodów rozróżnianie znaków może być konieczne. Warto oddzielić kolumny opisowe od kolumn, w których każdy znak ma znaczenie. Jedna reguła dla całej tabeli jest wygodna, lecz nie zawsze odpowiada wszystkim polom. Przed zmianą kolacji trzeba sprawdzić istniejące dane pod kątem wartości, które po zmianie stałyby się równoważne. Należy także przeanalizować indeksy unikalne, klucze obce wykorzystujące tekst, zapytania sortujące oraz integracje zapisujące dane w różnych kodowaniach. Sama zmiana ustawienia nie naprawia tekstu już błędnie zdekodowanego. Jeżeli w danych występują uszkodzone znaki, najpierw trzeba ustalić źródło problemu i sposób ich bezpiecznej korekty. Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów i komputerów PC, w tym diagnostykę problemów z oprogramowaniem, konfiguracją baz danych używanych na komputerze oraz odczytem danych. Przy zgłoszeniu dotyczącym nieprawidłowego sortowania lub wyszukiwania istotne jest przygotowanie przykładowych wartości, opisu oczekiwanego wyniku i informacji o programie, w którym problem występuje. Pozwala to odróżnić błąd kolacji od problemu z kodowaniem znaków, zapytaniem albo konfiguracją aplikacji. |