Baza danych w jednym pliku Embedded

Baza danych w jednym pliku Embedded
TO
  • Rejestracja:około 5 lat
  • Ostatnio:3 miesiące
  • Postów:14
0

Witam,
Jak utworzyć bazę danych InterBase w pliku (Embedded) bez instalacji serwera. Próbowałem z serwerem w IBExpert oraz InterBase IBConsole, ale nie działa mi. Jest jakiś inny program do utworzenia takiej bazy ? A może jakaś inna baza danych. Teraz korzystam z bazy Access i ODBC, ale chciałem coś prostszego. Używam RAD Studio Delphi 10.3, Windows 10 64bit.

Dzięki
Pozdrawiam
tomamiko

edytowany 1x, ostatnio: flowCRANE
MY
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 5 godzin
  • Postów:1083
2

Zamiast InterBase spróbuj skorzystać z Firebird'a. Można powiedzieć, że jest to fork (założony dawno temu) IB. Po prostu ludzie wzięli źródła IB i zaczęli rozwijać niezależnie. Niestety oba serwery nie są kompatybilne ze sobą. Firebird posiada właśnie wersję Embedded, która obsługuje dokładnie takie same bazy jak wersja zainstalowana na komputerze. Dodatkowo jakbyś chciał w przyszłości podłączyć się do pełnoprawnego serwera nie będzie z tym problemu i zrobisz to nie zmieniając ani jednej linijki kodu w programie. Jak jesteś zaprzyjaźniony z IBExpert'em to będziesz czuł się jak w domu, ponieważ obsługuje on również Firebird'a.

somedev
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 5 lat
  • Postów:666
0

Również polecam firebirda. Nie dość, że można bez zmiany programu podłączyć się do serwera a nie od embended, a również prosta jest migracja pliku bazy z embended do serwera, a sam firebird oferuje 4 tryby pracy (w tym embended). @Mr.YaHooo ma racje - Firebird to fork InterBase 6, ale potem rozwój poszedł swoją drogą.

WL
  • Rejestracja:ponad 21 lat
  • Ostatnio:20 dni
  • Postów:1083
1
tomamiko napisał(a):

Witam,
Jak utworzyć bazę danych InterBase w pliku (Embedded) bez instalacji serwera.

Musisz mieć DLLki z osadzonym serwerem, tu masz info:
https://firebirdsql.org/manual/ufb-cs-embedded.html#ufb-cs-embedded-windows

Próbowałem z serwerem w IBExpert oraz InterBase IBConsole, ale nie działa mi. Jest jakiś inny program do utworzenia takiej bazy ? A może jakaś inna baza danych.

Nie.
Przyczyna jet w braku wiedzy, musisz doczytać.

Teraz korzystam z bazy Access i ODBC, ale chciałem coś prostszego. Używam RAD Studio Delphi 10.3, Windows 10 64bit.

Coś prostszego od Accessa?
To na pewno nie będzie Firebird, ale to dobrze - bo Access to nie serwer i taka sobie baza danych.
Z innych, np. MSSQL - ma swój odpowiednik Embedded nazywa się SQLocalDB.
Jeszcze inne to SQLite, ale... to tak raczej dla tych co dokładnie wiedzą czego potrzebują, bo można się średnio zdziwić z SQLite;-)

Z innych OpenSource to na pewno PostgreSQL.
Ale to już poważna baza danych, a nie wiadomo co tam potrzeba...

TO
  • Rejestracja:około 5 lat
  • Ostatnio:3 miesiące
  • Postów:14
0

To ma być prosta baza z 2 tabelami i do max 1 tyś rekordów z ok. 10 kolumnami. Jeden użytkownik. Zależy mi żeby była prosta do przeniesienia na inny komputer. Przenoszę aplikacje i plik bazy i dll lub instaluję.

MY
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 5 godzin
  • Postów:1083
0

No to moim zdaniem takie Firebird będzie odpowiedni. Nauczysz się czegoś, podstaw SQL'a i to zaprocentuje na przyszłość.

siloam
  • Rejestracja:prawie 8 lat
  • Ostatnio:prawie 2 lata
  • Postów:99
0

Teraz korzystam z bazy Access i ODBC, ale chciałem coś prostszego.

Jest jakiś powód by nie użyć SQLite?


WL
  • Rejestracja:ponad 21 lat
  • Ostatnio:20 dni
  • Postów:1083
0
siloam napisał(a):

Teraz korzystam z bazy Access i ODBC, ale chciałem coś prostszego.

Jest jakiś powód by nie użyć SQLite?

Tak, to jest jakiś potworek a nie porządna baza relacyjna.
A więc jeśli się uczyć, to na pewno nie zaczynając od SQLite.

AK
Zgadzam się. Jeśli na nim się uczyć, to zdecydowanie złych rzeczy uczy. Coś jak - w zupełnie innym segmencie - MySQL
siloam
Ten "potworek" jest bazą wbudowaną w wiele języków programowania oraz bardzo często używaną jako baza w aplikacjach na Androida i iOS'a. Porządne bazy relacyjne są typu klient-serwer. Jeżeli chodzi o embedded sqlite3 to klasyka i dojrzały projekt.
WL
Co nie zmienia faktu, że nadal i wciąż potworkiem jest. Nie wszystko co jest dojrzałe i popularne jest dobre (vel PHP). I nie, nie tylko bazy C/S. Baza embedded też może być porządna, jak np. Firebird czy SQLocalDB, którym to SQlite w obszarze samego RDBMS do pięt nie dorasta. SQLite jest wybudowany w jakiś język programowania? To żart czy bzdura? Dostęp do SQLite z danego języka programowania a wbudowanie w jakiś język to jednak są zupełnie odmienne kwestie.
SK
  • Rejestracja:około 7 lat
  • Ostatnio:około 8 godzin
  • Postów:99
2

Też polecam Firebird :)

Tak na marginesie... @wloochacz - SQLite jest używany przez wiele dużych firm w wielu znanych i używanych przez miliony osób projektach/programach :)
https://www.sqlite.org/famous.html

AK
W programach "single user" gdzie zwykle jest składowiskiem danych. Z dostępem dzielonym już zaczynają się problemy.
SK
@AnyKtokolwiek: wyżej @tomamiko napisał "Jeden użytkownik", dlatego nie skreślałbym SQLite, mimo, że też polecam Firebird'a :)
WL
  • Rejestracja:ponad 21 lat
  • Ostatnio:20 dni
  • Postów:1083
0
skrzat napisał(a):

Też polecam Firebird :)

Tak na marginesie... @wloochacz - SQLite jest używany przez wiele dużych firm w wielu znanych i używanych przez miliony osób projektach/programach :)
https://www.sqlite.org/famous.html

I co z tego?
Ano to z tego, że "wiele dużych firm w wielu znanych i używanych przez miliony osób" nie potrzebuje relacyjnych baz danych, tylko quasi relacyjnego składowiska na dane.
A to nie jest to samo.

Czy coś w tym złego?
Nie.
Ale czy SQLite to dobra baza danych?
Nie, zdecydowanie nie.

Zobacz pozostały 1 komentarz
AK
Jakie to zbrodnie popełnia MS-SQL ?
WL
Tak MS SSQL to jedna z najlepszych baz relacyjnych aktualnie dostępnych na rynku i jestem w stanie udowodnić to argumentami. Ale uprzedzam, ze trzeba będzie wiedzieć trochę więcej niż jak obsłużyć SQLLite z PHP czy innego języka. A poz tym, @siloam czy ty widziałeś może kwadrat Gartnera w obszarze RDBMS (a raczej DBMS)? To popatrz sobie, a okaże się że liderem dbms wg Gartnera jest MSSQL, a nie np. Oracle.
WL
Ach no i oczywiście zachęcam, napisz mi coś, bo ten SQLite to mało śmieszny żart, a może czegoś się jednak dowiem? Bo jak na razie, to wiem tyle że w SQLite nawet zmiennej się nie da zadeklarować i użyć... Jak pisałem - składowisko na dane, ale już z ich przetwarzaniem może być pod górkę.
ME
A skąd ci przyszło do głowy, że tutaj nie wystarczy "quasi relacyjne składowisko na dane"? Z tego opisu autora pewnie: "To ma być prosta baza z 2 tabelami i do max 1 tyś rekordów z ok. 10 kolumnami. Jeden użytkownik. Zależy mi żeby była prosta do przeniesienia na inny komputer. Przenoszę aplikacje i plik bazy i dll lub instaluję.". Tak?
WL
Umiejętność czytania ze zrozumieniem wg chronologii to również cenna cecha, tak? No to już wszystko napisałem, co miałem do napisania....
siloam
  • Rejestracja:prawie 8 lat
  • Ostatnio:prawie 2 lata
  • Postów:99
1

To ma być prosta baza z 2 tabelami i do max 1 tyś rekordów z ok. 10 kolumnami. Jeden użytkownik. Zależy mi żeby była prosta do przeniesienia na inny komputer. Przenoszę aplikacje i plik bazy i dll lub instaluję.

Sqlite3 lekko da radę. Nie wyważaj otwartych drzwi.


WL
  • Rejestracja:ponad 21 lat
  • Ostatnio:20 dni
  • Postów:1083
0
siloam napisał(a):

To ma być prosta baza z 2 tabelami i do max 1 tyś rekordów z ok. 10 kolumnami. Jeden użytkownik. Zależy mi żeby była prosta do przeniesienia na inny komputer. Przenoszę aplikacje i plik bazy i dll lub instaluję.

Sqlite3 lekko da radę. Nie wyważaj otwartych drzwi.

Oczywiście @tomamiko SQLite da radę.
Ale jeśli traktujesz ten projekt również jako naukę baz danych i z tymi bazami danych w przyszłości chcesz mieć więcej do czynienia, to absolutnie nie dotykaj SQLite, bo zrobi Ci krzywdę.
Nauczysz się złych praktyk i po co Ci to?

Patryk27
Jakich złych praktyk? Przecież SQLite jest szeroko wykorzystywana w profesjonalnych zastosowaniach - silnik jak każdy inny: zarówno z zaletami, jak i wadami.
WL
Profesjonale zastosowania... Jasne, zamiast pliku INI. Albo składowisko na dane. To są bardzo specyficzne zastosowania, które mogą być profesjonalne, ale na pewno nie są to zastosowania profesjonalne w obszarze relacyjnych baz danych. Skoro to taka profesjonalna baza danych, to proszę bardzo - pokaż mi jak zadeklarować zmienną np. w procedurze składowanej w SQLite. Wy w ogóle programujecie przy pomocy SQL? Bo raczej nie wydaje mi się...
Patryk27
Porównujesz SQLite do fully-fledged bazy w stylu Postgresa - a to nie jest sprawiedliwe porównanie, ponieważ obydwie aplikacje mają różne cele. SQLite jest szeroko wykorzystywane na Androidzie, w Firefoxie czy setkach innych aplikacji (por. https://www.sqlite.org/famous.html).
WL
Ja próbuję porównać? Wolne żarty. Ja twierdzę, że wykorzystanie SQLite jako silnika bazodanowego dla aplikacji to nie jest dobry pomysł. Jako składowisko na dane, być może ma to sens. Rozumiesz różnicę? Nie wiadomo dużo na temat celów, ale ja bym się od tego tworu trzymał z dala tak długo, jak długo nie będzie innego wyjścia. A co do reszty, to nie będę się powtarzał. A o złych praktykach wspomniałem - no i co z tą zmienną? A może zmienna to również cecha fully-fledged DBMS? :P
Patryk27
Wydaje mi się, że w takim razie mówimy o tym samym - rdbms vs składowisko na dane, niech będzie :-P
ME
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:638
2

@wloochacz: narzędzia dobiera się do zadania, używanie czegoś większego i bardziej złożonego, niż sqlite do tego, co autor chce zrobić to błąd. A krzywdę, to możesz sobie zrobić, jak młotkiem nie trafisz w gwóźdź, tylko w palec. W programowaniu umiejętność poprawnego dobierania narzędzi do zadań to cenna umiejętność.

WL
  • Rejestracja:ponad 21 lat
  • Ostatnio:20 dni
  • Postów:1083
1
Meini napisał(a):

@wloochacz: narzędzia dobiera się do zadania, używanie czegoś większego i bardziej złożonego, niż sqlite do tego, co autor chce zrobić to błąd.

Po pierwsze, to autor po czasie dopisał wymagania.
A po drugie, Firebird embbeded nie wymaga więcej wiedzy niż SQLite, ale w razie czego posiada pewne możliwości, które quasi-relacyjne składowisko na dane nie posiada.
Poza tym, w środowisku Delphi, użycie Firebirda kosztem SQLite jest zdecydowanie łatwiejsze, ze względu na mnogość informacji tutoriali i narzędzi dla Firebirda.
Ale tego pewnie nie wiesz...

A krzywdę, to możesz sobie zrobić, jak młotkiem nie trafisz w gwóźdź, tylko w palec.

Raczej w życiu nie pracowałeś młotkiem, prawda?
Tylko taki idiota jak np. programista, który nic innego nie potrafi, może trafić się młotkiem w palec przy wbijaniu gwoździ ;-)

W programowaniu umiejętność poprawnego dobierania narzędzi do zadań to cenna umiejętność.

Którą to umiejętność można wykorzystać dopiero wtedy, gdy jest się świadomym wyboru.

ME
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:638
1

No, jeżeli SqLite jest kiepsko wspierany w Delphi, to już jest inna para kaloszy. Ale właśnie do takich zastosowań, o których pisze autor powstał SqLite. Ty najwyraźniej albo nie rozumiesz celu jego istnienia i porównujesz go z prawdziwymi relacyjnymi bazami danych, albo masz jakiś inny osobisty uraz.

Trochę sam sobie zaprzeczasz, autor potrzebuje właśnie prostego składowiska na dane, a nie prawdziwego rdbms, a ty piszesz żeby stosować prawdziwy rdbms, bo SqLite to tylko składowisko na dane. Powtórzę jeszcze raz: narzędzia dobiera się minimalnie do celu, który mają spełniać. Jeżeli SqLite wystarczy, to pełny rdbms nie ma tu sensu. Takie jest moje zdanie.

edytowany 1x, ostatnio: Meini
somedev
  • Rejestracja:prawie 7 lat
  • Ostatnio:prawie 5 lat
  • Postów:666
0

Ja bym poszedł dalej - i powiedział, że nie wiem czy to nawet ten SQLite nie jest za dużo - może zwykłe dwa pliki CSV by starczyły. Pytanie, jaki będzie rozrost tych danych i metadanych. Jeśli ma być to statyczne składowisko danych na całe życie programu (bo i tak się zdarza), to bym zupełnie się nie bał, zrobić coś prosto jak budowa cepa.

WL
  • Rejestracja:ponad 21 lat
  • Ostatnio:20 dni
  • Postów:1083
0
Meini napisał(a):

No, jeżeli SqLite jest kiepsko wspierany w Delphi, to już jest inna para kaloszy.

Nie, nie jest wspierany kiepsko, a po prostu Firebird jest bardziej popularny od lat i siłą rzeczy dla tej bazy jest zdecydowanie więcej wszystkiego dla Delphi.
Tylko tyle i aż tyle.

Ale właśnie do takich zastosowań, o których pisze autor powstał SqLite. Ty najwyraźniej albo nie rozumiesz celu jego istnienia i porównujesz go z prawdziwymi relacyjnymi bazami danych, albo masz jakiś inny osobisty uraz.

Z mojego punktu widzenia to wy nie rozumiecie ograniczeń SQLite i podają tu jakieś argumenty jakie to poważne firmy i super oprogramowanie z niego korzystają.
No i co z tego wynika?
Że korzystają i owszem, jako np. format plików w przypadku Adobe.
Czy to jest standardowe wykorzystanie dla baz danych?
Nie, zdecydowanie nie jest. I tak naprawdę to jest cały czas potwierdzenie tego, o czym mówię.
Że SQLite jest specyficzne i nadaje się do specyficznych zastosowań.

Tylko czy OP ma typowe czy specyficzne potrzeby?
Tego nie wiem, ale Wy możecie zastosować SQLite ;-)

Mam wrażenie graniczące z pewnością, że nikt z promujących SQLite nie programował baz danych na poważnie.
Używacie baz danych i owszem, ale nie programujecie w nich i nie przetwarzacie danych za pomocą SQL w stopniu wykraczającym poza średnio skomplikowane CRUDy.
Takie wrażanie mam ;-)

Zastosowanie SQLite jest OK, pod warunkiem że jest się świadomym jego ułomności.
A nie ma ich mało, ale widać je dopiero wtedy, gdy chce się skorzystać (kuriozalnie zabrzmi, ale to prawda) z możliwości jakie oferują "normalne" bazy danych.

Trochę sam sobie zaprzeczasz, autor potrzebuje właśnie prostego składowiska na dane, a nie prawdziwego rdbms, a ty piszesz żeby stosować prawdziwy rdbms, bo SqLite to tylko składowisko na dane.

Być może potrzebuje prostego składowiska.
Ale nie widzę abym sam sobie zaprzeczał, ja tylko i wyłącznie twierdzę, ze SQLite to bardzo słaba baza danych jest.
I powtarzam, jak komuś to nie przeszkadza i jest tego świadomy, to bardzo proszę.

Powtórzę jeszcze raz: narzędzia dobiera się minimalnie do celu, który mają spełniać. Jeżeli SqLite wystarczy, to pełny rdbms nie ma tu sensu. Takie jest moje zdanie.

Powtarzam; nie ma sensu na rozpoczęcie przygody z bazami danych z poziomu SQLite.

ME
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 4 lata
  • Postów:638
2

Tu nie chodzi o rozpoczęcie przygody, tylko o użycie minimalnego narzędzia spełniającego wymagania. Nikt tu nie promuje SqLite. Mówimy tylko, że do takich akurat zastosowań SqLite powstał i w tym przypadku najlepiej będzie użyć SqLite. W innym może być inaczej. Ile jeszcze razy muszę powtórzyć: umiejętnie dobierajmy narzędzia do potrzeb. Czy myślisz, że Mozilla używa SqLite, bo myśli, że to wspaniała baza danych? Albo Google w Androidzie? I że nie znają jego ograniczeń? Używają, bo akurat w tych zastosowaniach się sprawdza. Tu jest tak samo.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.