Jarosław Kędzierski Admin od okienek
Temat: CLR Ucieczka od SQL SERVER
Stanisław Kozłowski:
Sam język zapytań wypisz wymaluj cały FOX.
Więc pytanie brzmi: w czy jest SQL lepszy od FOXA lub nawet Clippera obu sprzed 20 lat.
Aaa...w zasadzie nie powinienem się wypowiadać. Bo przecież nie znam Clippera. Ale...
1. że SQL "działa" "mniej więcej" tak samo na wszystkich bazach już od lat - chwała za to standaryzacji ! Choć do dziś niestety różnice się zdarzają.
2. Dyskusja przypomina mi tą, którą toczyłem gdzieś ostatnią, gdzie udowadniać mi przyszło wyższość komercyjnego MS-SQL na darmowym MySQL. I co się okazało ? W typowych przypadkach, w zasadzie bazy działają podobnie - ale diabeł tkwi w szczegółach:
- we współczesnych komercyjnych bazach nie stanowi problemu wykonanie jej backupu przy zachowaniu ciągłości pracy. Banalne ? A jednak już np. w MySQL jest to "jakiś" problem. A jak było w Cliperze ?
- współczesne komercyjne bazy danych dają możliwość odtworzenia historycznego stanu bazy danych, np sprzed 10 minut, a z wykorzystaniem zewnętrznych narzędzi np. MSSQL potrafi wycofać pojedyńcze transakcje wykonane na bazie czyli np. przypadkowego DELETE'a
- oczywiście banalne pytanie, czy Clipper potrafi obsłużyć bazę większą niż 2 GB ? Jeśli nie może przerobić by go nie było trudno, ale właśnie...trzeba by go przerobić, dostosować, żeby mógł wykorzystać możliwości współczesnego sprzętu
- no i ostatnie ważne pytanie - integracja w środowisku wieloplatformowym - współczesne komercyjne bazy mają narzędzia replikacji, mirroringu automatycznego powielania informacji - nie tylko pomiędzy własnymi środowiskami/instancjami, ale np. MSSQL potrafił by odczytać, zapisać dane do np Oracle (np. umożliwia replikację) czy pewnie nawet Clippera (przez linked server).
Pozatym nawiązując do wątku: w dzisiejszych czasach baza danych nie jest workiem na dane. Potrafi wiele / bardzo wiele - "z pudełka" programiści dostają potężne narzędzia - jak np. Reporting Services. No i oczywiście są jeszcze CLRy i stored procedures.
Doświadczenie w rozwiązaniach klasy Enterprice mam. I jeśli chodzi o bazy danych - zasada Keep It Simple and Sloppy sprawdza się znakomicie ! Nie upierałbym się w zamykaniu całej logiki biznesowej w bazie danych. To co da się zrobić łatwo i szybko w T-SQLu powinno być zamknięte w "storkach". To co nie da się łatwo obsłużyć, niech się przetwarza w kodzie, ale na zewnątrz bazy danych. CLR to już jest kompromis...aby dało się wykonać bardzo złożone rzeczy, których przy implementacji silnika bazodanowego uwzględnić się nie dało. Co do zasady CLR nie powinno się stosować - inaczej konieczność zastosowania CLR w bazie - projektanci powinni w projekcie aplikacji mocno uzasadnić (tym że zrobić inaczej się tego nie da).
Oczywiście to tylko moja skromna opinia.