5 stycznia 2013

Good bye mySQL!



Od wielu lat wykorzystuję sporadycznie system bazodanowy mySQL. W sumie przez lata ograniczało się to do wykorzystania jego najprostszych możliwości - głównie na potrzeby napisania skryptów w PHP. Jednak kiedy zacząłem bardziej poznawać SQL-owskie systemy bazodanowe doszedłem do wniosku, że... wykorzystywałem chyba duży procent jego możliwości, gdyż... okazuje się on teraz bardzo ubogi.

Zauważone braki mySQL:

1. Tworząc bazę danych można użyć przy polu CHECK do sprawdzenia wartości, ale... to nie zadziała tak jak w innych systemach.
2. Nie da się w mySQL stworzyć funkcji zwracającej tablicę.
3. Nie da się stworzyć TRIGGER-a dla widoku i tabeli tymczasowej.
4. Nie da się ustawić dla pola typu DATE aktualnej daty jako domyślnej wartości.

Pierwszy problem można obejść tworząc odpowiedni TRIGGER. Drugi nie ma sensownego rozwiązania, podobnie jak trzeci. O dysfunkcji związanej z trzecim problemem można znaleźć informację w dokumentacji: http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html. Z kolei czwarty problem można dość prosto rozwiązać - trzeba korzystać z pola TIMESTAMP ustawiając jako domyślną wartość CURRENT_TIMESTAMP

To wystarczyło, abym rozważył przeniesienie się na inny system bazodanowy. Jako zwolennik OpenSource i użytkownik Linuksa nie rozważałem migracji na MS SQL. Padło na PostgreSQL. Dla niego powyższe problemy nie istnieją. Do programowania tworzenia skryptów w PHP może i mySQL wystarcza, lecz dla wielu poważniejszych zastosowań okazuje się on nie lepszy niż SQLite.

Co do PHP ostatnio ten język stracił u mnie (w moich notowaniach) na rzecz Pythona. Dla ewentualnych potrzeb związanych ze stronami internetowymi rozważam migrację na Django. Tym bardziej, że odpowiada mi wzorzec MTV. Wybranie systemu bazodanowego w Django to kwestia modyfikacji kilku linii w pliku konfiguracyjnym. O kod SQL odpowiadający za wykonanie operacji na danej bazie danych nie trzeba się w ogóle martwić.

Pliki cookies

Uwaga! Strona wykorzystuje do działania pliki cookies, które są zbierane między innymi w celach reklamowych oraz statystycznych, a także dla poprawy wygody korzystania z serwisu. Jeżeli nie zgadzasz się z tym wyłącz opcję w przeglądarce. Więcej informacji