Baza Oracle, jak to jest?

0

Witam serdecznie.

Razem ze znajomym postanowiliśmy napisać portal społecznościowy w C#. Generalnie założenie jest takie, że z portalu będzie korzystała duża ilość użytkowników. Zastanawialiśmy się nad bazą i chcielibyśmy korzystać z Oracle, jednak zanim dokonamy zakupu chcemy się upewnić co do pewnych kwestii, które nie są do końca dla nas jasne.

Znalazłem 2 strony, na których można zakupić produkt Oracle:
https://shop.oracle.com/pls/ostore/f?p=DSTORE:6:::::
oraz
http://www.dbe.pl/apex/f?p=DBE:ORACLE:0:::::

Z czego ta pierwsza wydaje się być oficjalną. Widnieje na niej informacja : zl366,00 / Named User Plus.
Na tej drugiej natomiast : Oracle Database Standard Edition Two: 10 licencji Named User Plus za cenę 252 zł.

Named user plus tzn. że licencja jest na aplikacje?

Potrzebuję takiej licencji, na której będziemy mogli programować we 2.
Moglibyście mi to objaśnić i pomóc?

Pozdrawiam

6

Razem ze znajomym postanowiliśmy napisać portal społecznościowy w C#

:D

z portalu będzie korzystała duża ilość użytkowników

:D :D

Potrzebuję takiej licencji, na której będziemy mogli programować we 2.

I co to wg ciebie znaczy ze będziecie pracować we 2 na tej bazie niby? o_O

Zaintalujcie Oracle Express albo Postgresa a nie kombinujcie. Wątpię żebyście kiedykolwiek potrzebowali czegoś więcej.

0

http://blog.gridwise.pl/2012/[...]-nup-czy-per-processor-1.html i http://w3.softwareone.com/pl-[...]Licensing/Strony/default.aspx no ale jak takich rzeczy nie potraficie znaleźć to ja wam sukcesów nie wróżę

3

Co złego jest w ambitnych pomysłach ? :) Chłopaki się przynajmniej czegoś nauczą może. Jak ja zaczynałem to chciałem napisać taką zaje**istą grę. Kółko i krzyżyk wyszło w rezultacie z pseudo sztuczno-losową inteligencją, ale ta duma :D

Może spróbujcie z MS SQL Server, dlaczego wiele projektów w .NET korzysta po prostu z rozwiązań Microsoftu (jest wersja Express).

1
mariano901229 napisał(a):

Co złego jest w ambitnych pomysłach ? :)

W ambitnych nie ma nic złego, w nierozważnych jest dużo. Kupowanie komercyjnej wersji bazy, w sytuacji gdy nie ma się jeszcze napisanego kodu i żadnych użytkowników jest właśnie nierozważne.

Nie wspominając o tym, że używanie Oracle to strzelanie sobie w stopę, zwłaszcza w połączeniu z .NET.

0
somekind napisał(a):

Nie wspominając o tym, że używanie Oracle to strzelanie sobie w stopę, zwłaszcza w połączeniu z .NET.

Dlaczego to strzelanie w stopę? Pracuję aktualnie w firmie, która jest podwykonawcą dużej firmy w Polsce zajmującej się oprogramowaniem dla energetyki i tu właśnie jest takie połączenie.

0
nieznasz napisał(a):
somekind napisał(a):

Nie wspominając o tym, że używanie Oracle to strzelanie sobie w stopę, zwłaszcza w połączeniu z .NET.

Dlaczego to strzelanie w stopę? Pracuję aktualnie w firmie, która jest podwykonawcą dużej firmy w Polsce zajmującej się oprogramowaniem dla energetyki i tu właśnie jest takie połączenie.

Może z bazy korzystają inne systemy w Javie etc. ? Może posiadano już wcześniej bazę Oracle i chciano napisać oprogramowanie w .NET bo akurat to ktoś tam umiał. Może też "bo ktoś tak chciał".

0

Hmm właśnie stąd moje parcie na Oracle, aby poprawić umiejętności, które będę mógł później wykorzystać na miejscu pracy + wydawało mi się to dobrym rozwiązaniem. Postawimy jednak na Postgresa.

Doszukałem się takiego rozwiązania, aby odpalić migrator baz w projekcie i projektować bazę za pomocą 'CodeFirst', aby w razie zmiany silnika bazy nie było problemu. Zastanawiam się czy nie byłaby to dodatkowa dobra opcja.

Moja wiedza na temat baz danych jest słaba...

5

Popatrz na to z perspektywy i sam sobie odpowiedz.

  1. Jeśli wybierzesz Oracle XE, a projekt Ci się rozwinie na tyle, że przestanie Ci wystarczać XE to musisz liczyć się z ogromnymi kosztami licencji komercyjnej Oracle
  2. Jak już blisko 10 lat pracuję zawodowo przy bazach danych to jedyny raz gdy zmieniany był silnik bazy danych było przejście z BDE na Oracle w przypadku projektów już rozwiniętych nie ma to sensu (chyba, że przechodzisz z bazy płatnej jak np Oracle na PostgreSQL - tu wracamy do punktu nr 1)
  3. Zastanów się przez chwilę jak działa CodeFirst. Każda baza danych oparta jest o uniwersalny SQL + SZDB czyli np w Oracle jest to PL/SQL w MSSQL chyba TSQL w PostgreSQL PL/pgSQL. Oznacza to, że prócz zwykłych tabel, relacji itd. każda baza ma specjalny język umożliwiający zrobienie szereg dodatkowych rzeczy na poziomie bazy danych. Jeśli użyjesz CodeFirst to nie będziesz mógł skorzystać z pełnego spectrum możliwości danej bazy danych gdyż na innej dystrybucji po prostu tego może nie być. Więc jeśli chcesz zrobić bazę gdzie będzie tylko tabelka, a do niej insert, update, delete to spoko pewnie się uda ale jak chcesz mieć profesjonalny system gdzie kontrola niektórych elementów odbywać się będzie po stronie bazy to zapomnij o tego typu rzeczach. Lepiej zrobić bazę (wyspecjalizowaną) i dodatkową warstwę np w postaci WS, która żądania usera będzie konwertować na odpowiednie wywołania w bazie danych. Zmieniając bazę danych zmienisz tylko WS bez konieczności zmiany klienta
1
nieznasz napisał(a):

Dlaczego to strzelanie w stopę? Pracuję aktualnie w firmie, która jest podwykonawcą dużej firmy w Polsce zajmującej się oprogramowaniem dla energetyki i tu właśnie jest takie połączenie.

Sygnity?

Wszystko się da połączyć, nie wszystko ma sens. Oracle jest po pierwsze ciężki, po drugie trzeba umieć go skonfigurować, żeby działał dobrze. Jeśli nie masz jakichś specyficznych wymagań, które potrafi spełnić jedynie Oracle, to nie ma sensu tego produkty wybierać.

woolfik napisał(a):

Jeśli użyjesz CodeFirst to nie będziesz mógł skorzystać z pełnego spectrum możliwości danej bazy danych gdyż na innej dystrybucji po prostu tego może nie być. Więc jeśli chcesz zrobić bazę gdzie będzie tylko tabelka, a do niej insert, update, delete to spoko pewnie się uda ale jak chcesz mieć profesjonalny system gdzie kontrola niektórych elementów odbywać się będzie po stronie bazy to zapomnij o tego typu rzeczach.

Oczywiście, że będzie mógł użyć funkcji specyficznych dla danego RDBMS, wszystko jest kwestią konfiguracji.
Poza tym code first dotyczy generowania schematu bazy, a nie zapytań, więc coś tu pomieszałeś.

Lepiej zrobić bazę (wyspecjalizowaną) i dodatkową warstwę np w postaci WS, która żądania usera będzie konwertować na odpowiednie wywołania w bazie danych. Zmieniając bazę danych zmienisz tylko WS bez konieczności zmiany klienta

A w WS niech pracuje ORM, który pozwoli zaoszczędzić 99% pracy z ręcznym pisaniem zapytań i ich debugowaniem, a ten 1% haków wydajnościowych można już sobie ręcznie dopisać.
Wtedy nie trzeba będzie zmieniać WS, wystarczy zmiana connection stringa i tych rzeczy, przy których ORM nie daje rady.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0