Implementowanie dużej bazy danych do delphi

Implementowanie dużej bazy danych do delphi
MI
  • Rejestracja:prawie 12 lat
  • Ostatnio:ponad 4 lata
  • Postów:20
0

Witam witam i o kody pytam.

Mam przykładowo bazę kodów pocztowych
nie chce ich trzymać w pliku gdyż nie chcę aby osoby nieupoważnione nie miały do niej dostępu
Baza jest tekstowa i każda kolumna jest oddzielona tabulatorem. Takich baz chce zaimplementować więcej np adresy zusów itp.

Czy istnieje jakiś umiejętny sposób na wrzucenie tego do kodu
myślałem o wklepaniu tego do zasobów, ale zwolniło by to wyszukiwanie miasta po kodzie. (10000 linijek trwa 10 sec)

a ręczne wypełnianie Array trwałoby chyba miesiąc :D

Jakieś pomysły ?

Pozdrawiam
Mienio

_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:10 dni
0
  1. W zasobach nie spowolni zaś przyspieszy.
  2. Jeżeli masz wyszukiwanie "10000 linijek trwa 10 sec" to zapodaj mi dane ja zrobię ci to w mniej niż 1 sek (nie za darmo oczywiście)

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
szopenfx
  • Rejestracja:prawie 21 lat
  • Ostatnio:6 miesięcy
0

nie chce ich trzymać w pliku gdyż nie chcę aby osoby nieupoważnione nie miały do niej dostępu
za dużo "nie" w jednym zdaniu nie wiadomo o co chodzi.
Jeśli masz jakąkolwiek bazę danych trzymaną lokalnie to jest to w zasadzie równoważne z trzymaniem jej jawnie.

Możesz zastanowić się nad skorzystaniem z np. SQLite. Silniki bazodanowe mają zaimplementowane wydajne mechanizmy wyszukiwania, sortowania, filtrowania danych

edytowany 1x, ostatnio: szopenfx
Azarien
"nie chcę aby osoby nieupoważnione nie miały do niej dostępu" == "chcę aby osoby nieupoważnione miały do niej dostęp"
flowCRANE
Na to wychodzi :)
TO
  • Rejestracja:prawie 20 lat
  • Ostatnio:ponad 4 lata
0

Na wszystkie pytania jest jedna prosta odpowiedź: Baza danych

Import danych z pliku CSV ma większość szanujących się narzędzi do zarządzania nimi. A jak nie mają - zawsze możesz sobie sklecić takie zapytanie w Excelu.

Oprócz błyskawicznego wyszukiwania, które realizujesz jednym prostym zapytaniem SQL - możesz łączyć dane z wielu tabel w jeden wynik - w szczególnych przypadkach bez rekompilacji kodu aplikacji. W Kodzie wykonanie niektórych operacji oprócz tego, że jest czasochłonne, to uciążliwe programistycznie i nie zawsze daje spodziewane wyniki.

Jeżeli chcesz bezpieczeństwa i zapobiegnięcia dostępowi do poufnych danych - użyj zamiast SQLite - MySQLa, PostgreSQLa albo Firebirda - one mają dostatecznie zaawansowane systemy zarządzania dostępem.

P.S. 10000 rekordów to jest maluteńka baza.

edytowany 1x, ostatnio: toyman
madmike
  • Rejestracja:prawie 20 lat
  • Ostatnio:ponad 5 lat
0
toyman napisał(a)

Jeżeli chcesz bezpieczeństwa i zapobiegnięcia dostępowi do poufnych danych - użyj zamiast SQLite - MySQLa, PostgreSQLa albo Firebirda - one mają dostatecznie zaawansowane systemy zarządzania dostępem.

Nie maja, bo rozprowadzajac program razem z baza rozprowadzasz jednoczesnie dane dostepu do tej bazy - jakby nie byly zaszyte w programie sa do wydobycia...

Swoja droga sqlite tez mozna uzywac z szyfrowaniem - stosunkowo proste do wykonania,wiec nie trzeba nawet innych...


edytowany 2x, ostatnio: madmike
TO
  • Rejestracja:prawie 20 lat
  • Ostatnio:ponad 4 lata
0
madmike napisał(a):
toyman napisał(a)

Jeżeli chcesz bezpieczeństwa i zapobiegnięcia dostępowi do poufnych danych - użyj zamiast SQLite - MySQLa, PostgreSQLa albo Firebirda - one mają dostatecznie zaawansowane systemy zarządzania dostępem.

Nie maja, bo rozprowadzajac program razem z baza rozprowadzasz jednoczesnie dane dostepu do tej bazy - jakby nie byly zaszyte w programie sa do wydobycia...

Swoja droga sqlite tez mozna uzywac z szyfrowaniem - stosunkowo proste do wykonania,wiec nie trzeba nawet innych...

Pokażę ci system, którzy korzysta z PostgreSQL. Jest rozpowszechniony w kilkunastu tysiącach kopii w całej polsce(bodaj 17000+ stanowisk) i będziesz się musiał deko spocić, żeby się dostać do danych w jego bazie. Co ciekawe - masz użytkownika i hasło dostępowe do bazy. Ale do pewnych obszarów się nie dostaniesz.

Do wydobycia danych w postaci stringowych z programu napisanego w Delphi wystarczy DeDe, SurceRescuer lub PE Explorer.

Zasada jest prosta - pytanie dla kogo jest program, jakie dane mamy zabezpieczać i po co ? Dla mnie zabezpieczanie dostępu do kodów pocztowych, które są publicznie dostępne na stronach poczty polskiej to jakaś pomyłka. Być może autor miał na myśli jakiś głębszy sens - w sensie myślał o innych danych. Pytanie czy te dane rzeczywiście wymagają zabezpieczania, czy tylko autor ma nadzieję, że wykonując czynności, które wydają mu się skomplikowane ukryje swoją myśl techniczną.

Wiem tylko jedno - dla zdeterminowanej osoby, która chce się dobrać do tych danych - nie ma zabezpieczeń nie do przejścia. Wszystko jest kwestią czasu.

edytowany 2x, ostatnio: toyman
_13th_Dragon
Wystarczy że te dane będą nieco bardziej ukryte/zaszyfrowane niż te na wspomnianej stronie.
TO
Oj. No to na prawdę da się to zrobić prostymi mechanizmami - niechby dane były w postaci kodowanej/szyfrowanej, a program odczytując robił dekodowanie/deszyfrowanie. Autor musi sobie odpowiedzieć, czy narzut związany z zabezpieczeniem, jest wart danych, które chce zabezpieczyć. We wspomnianej aplikacji dane w bazie nie są szyfrowane. Szyfrowana jest komunikacją z bazą (nawet po localhoscie), a nawet wywołanie procedur z biblioteki dll.
_13th_Dragon
No właśnie to sugeruję :)

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.