Tworzenie bazy danych w szkole + podpięcie programów

Witam.

Potrzebuję stworzyć w szkole bazę danych, z którą mógłby się łączyć każdy komputer. Pytanie tylko jakiej bazy użyć ? Musi być przeznaczona do użytku komercyjnego, no i darmowa.

Jakieś sugestie, pomysły, propozycje ? :slight_smile:

Np. MySQL lub PostgreSQL.

Do tego Oracle XE, MSSQL Server Express.

Kieruj się tym, w jakiej technologii i języku wykonasz program? Często jest tak, że niektóre zapewniają lepsze wsparcie dla konkretnych SZBD.

Projekt jest w C#.

To najłatwiej będzie użyć MS SQL i obsłużyć ją przez LINQ to SQL lub Entity Framework.

w mojej opinii kieruj się przede wszystkim tym:

  • do czego to ma służyć czyli jakiej wydajności i skalowalności potrzebujesz

  • LICENCJAMI bo np z wymienionych taki Oracle XE ma swoje ograniczenia powyżej, których łamiemy licencję:

Oracle Database Express Edition

Oracle Database Express Edition (Oracle Database XE) is an entry-level edition of Oracle Database that is quick to download, simple to install and manage, and is free to develop, deploy, and distribute. Oracle Database XE makes it easy to upgrade to the other editions of Oracle without costly and complex migrations. Oracle Database XE can be installed on any size machine with any number of CPUs, stores up to 4GB of user data, using up to 1GB of memory, and using only one CPU on the host machine . Support is provided by an online forum.

Podejrzewam że w MSSQL SE tez pewnie jakieś ograniczenia są.

  • na końcu z tej trójki zwróciłbym uwagę na to jak bardzo język pasuje do bazy dlaczego ? :wink: Bo praktycznie w każdym języku wykonasz na każdej bazie to co najważniejsze czyli: SELECT, DELETE, INSERT, UPDATE

ale to tylko moja subiektywna opinia ;p

Tzn. jak konkretnie można złamać tę licencję?

Ograniczenia są podobne, tzn. wersja Express nie obsługuje więcej niż 1 procesora fizycznego, więcej niż 1GB RAM i więcej niż 4GB bazy. O ile to nie ma być ogólnopolski portal tylko system działający w jednej szkole to wystarczy.

O ile komuś się chce bawić w ręczne składanie zapytań, a nie użyć jakiejś ciekawszego mechanizmu dostępnego w technologii czy też jakiegoś ORMa.

zapytałeś i odpowiedziałeś :wink:

PS. ja nie zakładam że dla projektu wykorzystywanego w szkole 1 GB ramu i 4GB pojemności bazy to wystarczające limity. Ja po prostu tego nie wiem więc zwróciłem na to uwagę że to istotne.

“Ciekawość” nie zawsze wychodzi na zdrowie :wink: Ja bym się nie kierował chęcią upakowania w projekcie jak największej ilości “ciekawych” technologii tylko dlatego że są i podobno dobrze je wykorzystywać bo tak robi prawdziwa “elita” :slight_smile:

Coś za coś: Czyste SQL łatwiej zoptymalizować pod konkretną bazę więc wydajność powinna zyskać ale przy większych projektach ORM ładnie przykrywa złożoność tej warstwy aplikacji (pomijając fakt że trzeba się nauczyć samego frameworka).

PS. somekind Ja nie napisałem że to co zaproponowałeś jest bee i do d… tylko zasugerowałem 2 inne punkty, od których ja bym zaczął analizę tematu. To moja opinia i nie twierdzę że jedyna i właściwa ;p

Na nic chyba nie odpowiedziałem. Albo czegoś nie rozumiem.

SQL Server po prostu nie obsłuży możliwości lepszej maszyny, nawet jeśli się go na takiej zainstaluje, tak jak nie pozwoli na zapis ponadlimitowych danych w bazie. To jest ograniczenie oprogramowania, nie licencji.

Czyżby w Oracle było inaczej, a sama instalacja na lepszym sprzęcie była złamaniem licencji? IMHO, to by było co najmniej dziwne… :expressionless:

Podejrzewam, że dla większości baz dla małych średnich firm byłby to wystarczający limit, nawet na dłuższy okres czasu. Ale warto oszacować i się przekonać samemu. Jeśli stanowiłby on problem, to zostaje PostgreSQL.

Kiedyś wdrażałem w zespole szkół kompleksowe rozwiązanie (obsługa biblioteki, sekretariatu, inwentarza, bazy uczniów, dzienników lekcyjnych, itd.), całość oparta była właśnie na MS SQL Express.

Tak, “ciekawość” była głupim słowem w tym kontekście. :slight_smile:

Nie chodzi o “elitarność”, tylko o to, co łatwiej i szybciej zrobić. Pisanie ręcznych zapytań SQL będzie praco i czasochłonne, jest to w zasadzie okradanie (siebie albo klienta). Optymalizacja jest ważna tam, gdzie rzeczywiście jest potrzebna. Można przecież napisać swoje superoptymalne zapytanie SQL i wywołać je z ORMa, z tym nie ma problemu. Ale zrobić to w przypadku wąskich gardeł, nie pisać tysięcy nadmiarowych linijek banalnego kodu, który potem przysporzy tylko problemów w utrzymaniu, a przede wszystkim przy wprowadzaniu zmian. (Wiem co mówię, kiedyś pracowałem w firmie, która miała tak zrealizowany dostęp do danych - prosta modyfikacja zajmowała dużo czasu i potrafiła rozsypać system w różnych miejscach, na które pozornie nie powinna mieć wpływu.)

Ja z opinią o konieczności przemyślenia skalowalności, wydajności i sprawdzenia licencji jak najbardziej się zgadzam.