Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Bazy danych Grafika komputerowa i multimedia

Słowa kluczowe: BLOB w SQL

Baza danych zawiera dane multimedialne, co wiąże się z przechowywaniem dużych ilości danych binarnych. Do takich danych należy zastosować typ

A. DOUBLE
B. BLOB
C. ENUM
D. LONGTEXT

Pytanie z egzaminu CKE, czerwiec 2020 (arkusz EE.09-SG-20.06).

Typ BLOB jest właściwym wyborem, bo służy do przechowywania danych binarnych, czyli takich, które nie są zwykłym tekstem ani liczbą. Nazwa pochodzi od Binary Large Object i w praktyce oznacza miejsce na pliki albo ich fragmenty: obrazy, nagrania audio, filmy, dokumenty PDF, miniatury, archiwa czy inne dane multimedialne. Baza danych nie musi rozumieć zawartości takiego pliku, przechowuje go jako ciąg bajtów. To ważne rozróżnienie, bo zdjęcie JPEG albo plik MP3 nie powinien być zapisany jako tekst, ponieważ mogłoby dojść do uszkodzenia danych przez kodowanie znaków. W systemach takich jak MySQL spotyka się odmiany TINYBLOB, BLOB, MEDIUMBLOB i LONGBLOB, różniące się maksymalnym rozmiarem. Z mojego doświadczenia warto też pamiętać o dobrej praktyce: bardzo duże pliki często przechowuje się w systemie plików lub storage obiektowym, a w bazie tylko ścieżkę, identyfikator, typ MIME i metadane. Jednak jeśli pytanie dotyczy typu kolumny dla dużych danych binarnych, odpowiedź BLOB jest dokładnie trafiona.
Przy danych multimedialnych najważniejsze jest to, że mówimy o danych binarnych, a nie o tekście, wartościach liczbowych czy zamkniętym zbiorze etykiet. ENUM bywa mylący, bo kojarzy się z wyborem typu pliku, na przykład jpg, png albo mp4, ale sam plik nie zostanie w nim zapisany. ENUM przechowuje jedną wartość z wcześniej zdefiniowanej listy, więc nadaje się raczej do pól typu status, rola użytkownika, kategoria lub stan zamówienia. Można w nim trzymać informację, że plik ma format image/png, ale nie zawartość obrazu. DOUBLE również nie pasuje, ponieważ jest typem zmiennoprzecinkowym przeznaczonym do liczb rzeczywistych, np. ceny, współrzędnych, pomiarów albo wyników obliczeń. Wrzucanie tam danych multimedialnych nie ma sensu technicznego ani logicznego. LONGTEXT brzmi już trochę bliżej, bo obsługuje bardzo długi tekst, ale nadal jest to typ tekstowy. Nadaje się do artykułów, opisów, treści HTML czy dużych dokumentów znakowych, nie do surowych bajtów pliku. Typowy błąd polega na myśleniu, że skoro coś jest duże, to wystarczy wybrać największy typ tekstowy. W bazach danych rozróżnienie między tekstem a binariami jest naprawdę istotne, bo chodzi o kodowanie znaków, integralność danych i poprawne odczytywanie pliku przez aplikację. Do binariów używa się BLOB, a dodatkowe informacje o pliku zapisuje się zwykle w osobnych kolumnach, na przykład nazwa pliku, rozszerzenie, rozmiar i typ MIME.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.