problem dotyczy pewny krytycznych danych, od których wymagane jest 100%
pewności, że nie zostały przypadkiem/celowo zmodyfikowane. O ile celową
ingerencję można (wstępnie) wykluczyć, o tyle przypadkowe popsucie
danych nie. W przypadku uszkodzenia bazy wolę stracić część danych niż
mieć chociaż cień wątpliwości czy naprawa bazy nie popsuła danych.
Jest kilka relacji pomiędzy zbiorami, ale zasadniczo problem można
zawęzić do dwóch przypadków:
1. określenie czy dane zapisane do tabeli są na pewno tymi samymi
danymi, które z tabeli odczytujemy.
2. określenie, czy rekord odczytany z tabeli detail, na pewno jest
poprawnie powiązany z właściwym rekordem z master.
Problem dotyczy tylko wybranych pól w tabelach. Nie muszę /wręcz nie
chcę/ robić tego sprawdzenia na całym rekordzie z tabeli.
Pierwsze co mi wpadło do głowy, to trzymanie sum kontrolnych:
Ad.1. dodajemy nadmiarowe pole z sumą kontrolną, która jest wyliczana wg
niezmiennego schematu (liczby i daty trzeba jakoś ustandaryzować)
Ad.2. dwie wersje
- trzymamy osobną sumę kontrolną od całego złączenia detail+master
- trzymamy w detail sumę kontrolną z master
Oba przypadki wymagają przeliczenia sumy kontrolnej w detail, w
przypadku gdy zmienią się dane z master - to nie jest problemem.
Drugie rozwiązanie to dublowanie danych. Dane zapisujemy w bliźniaczych
tabelach a każdy odczyt danych wymusza weryfikowanie danych z
bliźniaczej tabeli. Warunkiem jest zachowanie tych samych ID, albo
upraszczając, trzymanie ID z głównych tabel w ich zdublowanych
odpowiednikach.
Problem jest na razie ogólny, nie dotyczy żądnego konkretnego systemu
DB. No, chyba że jakiś SZBD ma wbudowane mechanizmy do wspierania takich
wymagań.
Gdyby ktoś miał jakiś pomysł, albo doświadczenie w takim temacie, to
zapraszam do dyskusji. Może istnieją jakieś wzorce opisujące takie
przypadki?
--
Pozdrawiam
J.B.
> b) jak rzecz jest krytycznie wa�na, robi si� nie 2 warstwowo, tylko 3
> (serwer aplikacyjny).
Architektura 3 warstwowa IMO nie zapewnia zak�adanych postulat�w, a
2-warstwowa ich nie wyklucza.
> Pewno��, tajno��
Tajno�� nie jest nadrz�dna, zreszt� o niej nie wspomina�em.
> itd na 2 warstwach nie jest do utrzymania na d�u�szy
> dystans.
Uzasadnij. Tak teoretycznie to mo�na sobie d�ugu dyskutowa�.
> Jedna z aplikacji jak� sprzedawa�em, mia�a nieudokumentowane
> tabele i kodowane pola (w cz�ci zarz�dzajacej u�ytkownikami), ale jak
> sie wywraca� setup, ujawnia� w komunikatach o b�edach wszystkie tajne
> skrypty tworz�ce obiekty w bazie ;)
Co to ma do rzeczy?
> c) sumy kontrolne spotyka�em nie tak rzadko w 'oddolnych' rozwi�zaniach,
> nie spotka�em si� w teori� to wspieraj�c� w odniesieniu do baz.
Do czego odnosi�y si� te sumy i jaki mia�y cel? Do rekordu, relacji,
wybranego pola?
> d) wi�cej elementu 'hurtownianego' ? Tabel write only, historycznych itd?
Nie do ko�ca o to chodzi. Zostawmy hurtownie danych w spokoju.
Podsumowuj�c, nie za bardzo wiem co mi chcia�e� przekaza�. W kontek�cie
zadanego pytania nie odnajduj� tutaj �adnej odpowiedzi. Podej�ewam, �e
jestem na du�o ni�szym poziomie i po prostu nie rozumiem, wi�c je�eli
mo�esz, to rozwi� troch� my�l albo (co lepsze) ode�lij mnie do
konkretnej literatury. Ch�tnie doczytam, tylko na razie nie wiem czego
szukaďż˝.
--
Pozdrawiam
J.B.
>> d) wi�cej elementu 'hurtownianego' ? Tabel write only, historycznych itd?
> Nie do ko�ca o to chodzi. Zostawmy hurtownie danych w spokoju.
>
> Podsumowuj�c, nie za bardzo wiem co mi chcia�e� przekaza�.
Tylko tyle, �e
1. wali� sporo danych (danych g�ownych, nie sum) do dodatkowych tabel, z
odpowiednimi grantami :insert+, update-, delete-
Kosztowne, prymitywne, brutalne, dok�adne
Te chcia�em zilustrowa� hurtowni�.
2. Sumy kontrolne owszem, je�li obawa jest o przypadkowe zmiany, ale nie
utrzyma si� je�li z�o�liwe.
>Pierwsze co mi wpad�o do g�owy, to trzymanie sum kontrolnych:
>Ad.1. dodajemy nadmiarowe pole z sum� kontroln�, kt�ra jest wyliczana wg
>niezmiennego schematu (liczby i daty trzeba jakoďż˝ ustandaryzowaďż˝)
>Ad.2. dwie wersje
>- trzymamy osobn� sum� kontroln� od ca�ego z��czenia detail+master
>- trzymamy w detail sumďż˝ kontrolnďż˝ z master
>Oba przypadki wymagajďż˝ przeliczenia sumy kontrolnej w detail, w
>przypadku gdy zmieniďż˝ siďż˝ dane z master - to nie jest problemem.
Dobra, masz metodďż˝ wykrywania zmian. Ale co z nimi zrobisz jak znajdziesz
r�nic�? Przecie� suma kontrolna raczej nie umo�liwi odtworzenia danych.
Druga sprawa - jak odr�nisz zapis celowy od niecelowej zmiany? Czy dane w bazie
majďż˝ byďż˝ zapisywane tylko raz, a potem tylko odczytywane?
A najlepiej to przedstaw jaki masz problem, zamiast proponowania od razu
rozwi�za�. Przed czym/kim chcesz si� zabezpieczy�, jakiego rodzaju to baza i
aplikacja itd.
--
S�awomir Szysz�o
Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych
FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/
Archiwum http://groups.google.com/groups?group=pl.comp.bazy-danych
Utrata danych nie jest problemem. Je�eli widz� korupcj� danych, to je
usuwam bo je�eli dane zgin� to nic wielkiego si� nie stanie. Istotne
jest to, �e je�eli mam dane, to musz� mie� 100% pewno��, �e s� poprawne.
> Druga sprawa - jak odr�nisz zapis celowy od niecelowej zmiany? Czy dane w bazie
> majďż˝ byďż˝ zapisywane tylko raz, a potem tylko odczytywane?
Zak�adam, �e polityka dost�pu do danych obroni si� przed celow� zmian�.
Mo�e inaczej - nikt nie ma z�ych intencji, system jest odseparowany od
internetu, wi�c wchodzi jedynie fizyczne/si�owe w�amanie. Pomi�my taki
przypadek.
> A najlepiej to przedstaw jaki masz problem, zamiast proponowania od razu
> rozwi�za�. Przed czym/kim chcesz si� zabezpieczy�, jakiego rodzaju to baza i
> aplikacja itd.
S� to wyniki bardzo specyficznych i trudnych pomiar�w. Na podstawie
wynik�w b�d� podejmowane decyzje - proste decyzje, czyli wynik X ->
decyzja A, Wynik Y -> decyzja B, itd. Wyniki wykonanego pomiaru mogďż˝ byďż˝
nieu�ywane przez np 3 lata. Dlatego po 3 latach musi by� pewno�� 100%,
�e dane przez te 3 lata nie zosta�y uszkodzone.
Brak danych oznacza konieczno�� wykonania eksperymentu i dopiero mamy
wynik. Czas jest istotny, ale du�o mniej warty od b��dnie podj�tej
decyzji. Czas przelicza si� na pieni�dze, natomiast b��dna decyzja mo�e
powodowa� odpowiedzialno�� karn�.
--
Pozdrawiam
J.B.
Ale co to zmienia? Co to wnosi do meritum? Ok, uznajmy, �e wykonany i
opracowany pomiar jest archiwalny. Co nam to daje w kontek�cie
zapewnienia, �e dane s� na 100% takie, jak je zapisano 3 lata temu? Czy
przywo�ana wcze�niej hurtownia danych co� tutaj pomo�e? W�tpi�, ale
ch�tnie naucz� si� czego� nowego!
> najpierw sam siďż˝ nastawiasz na zmiany starych danych, potem stwierdzasz,
> �e masz z tym problem. To prawdziwy "pomiar" jaki zna in�ynieria. czy
> raczej badania marketingowe kt�re wiadomo jak maj� wyj��?
To prawdziwy pomiar, w�a�ciwie seria pomiar�w i opracowanie wynik�w.
Stare dane sďż˝: niezmienne (wynik opracowania danych), oraz
/sporadycznie/ zmienne (dane z tabeli master). Dodatkowo do detali
dochodz� nowe opracowania, kt�re po zatwierdzeniu staj� si� niezmienne.
Ale to nadal IMHO nie wp�ywa to na metod� zapewnienia poprawno�ci danych.
> Mam swoj� dewiz�, �e system informatyczny wychodzi lepiej, jak
> odwzorowuje prawdďż˝, niďż˝ jak jego celem jest fikcja (w finansach,
> produkcji itd). Jak kto�, kto powiedzia�, �e "ma s�aba pami�� i dlatego
> woli m�wic prawd�"
Zgadzam si�. W tym temacie jest tak jak powiedzia� "cz�owiek z bran�y":
Z tymi danymi to jest tak jak z badaniami krwi - jak ktoďż˝ siďż˝ pomyli, to
po transfuzji pacjent robi si� zielony i ma 2 minuty, �eby po�egna� si�
z rodzin�. Jak jest cie� w�tpliwo�ci, to robimy pomiary od nowa,
niestety musimy czeka� (p�acimy ludziom a oni nie pracuj�) a koszt
(wykonania badania) jest du�y, wi�c potrzeba nam system, kt�ry zapewni
nam, �e dane s� ok!
--
Jerzy B.
>1. określenie czy dane zapisane do tabeli są na pewno tymi samymi
>danymi, które z tabeli odczytujemy.
Na lokalnym komputerze tworzysz lokalna baze danych z hashami
rekordow, ktore zapisujesz do bazy zewnetrznej.
Oczywiscie pojawia sie pytanie, czy dane zapisane do bazy lokalnej sa
tymi samymi danymi...
>2. określenie, czy rekord odczytany z tabeli detail, na pewno jest
>poprawnie powiązany z właściwym rekordem z master.
>Problem dotyczy tylko wybranych pól w tabelach. Nie muszę /wręcz nie
>chcę/ robić tego sprawdzenia na całym rekordzie z tabeli.
Foreign key.
milego dnia, hej
--
Moja wyprzedaz wszystkiego: ksiazki, plyty, filmy.
http://www.garaz.pol.pl/
> W dniu 2011-09-07 22:08, Piotr M Kuďż˝ pisze:
> > Reasumuj�c chcesz pozwoli� na wstawianie i ogl�danie danych,
> > ale zabroniďż˝ modyfikowania.
>
> To nie tak. Mo�na wyci�gn�� taki wniosek, ale nie jest to za�o�enie.
> Uproszczony model tak wygl�da, ale opracowanie wynik�w jest kilku
> etapowe. Ju� na etapie wynik�w po�rednich musz� zapewni� deklarowan�
> poprawno�� danych, wi�c widzisz, �e nie t�dy droga. Oczywi�cie finalny
> wynik mo�na potraktowa� jako niezmienny, ale tak jak pisa�em powy�ej,
> jest to wniosek a nie za�o�enie.
>
No to pytanie, czy te serie zmieszczďż˝ siďż˝ na DVD-R?
Andrzej.
> > Mo�esz to osi�gn�� poprzez separacj�
> > u�ytkownik�w bazodanowych od tego kt�ry jest w�ascicielem
> > tabel z danymi,
>
> To nie jest rozwi�zanie podanego problemu. Uszkodzenie/przek�amanie
> (jakiekolwiek, nie wnikajmy jakie) danych nie zostanie tutaj wykryte.
>
> > steruj�c uprawnieniami. Poni�ej masz przyk�ad,
>
> Dzi�kuj� za przyk�ad, ale tutaj nie znajdzie zastosowania.
>
--
Wys�ano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Piszesz w k�ko to samo. Je�eli chcesz pom�c, to prosz� przeczytaj ze
zrozumieniem opis problemu. Co z tego, �e pozwol� na tylko insert?
Za��my, �e dane zosta�y uszkodzone (np. zawiesi� si� OS na serwerze) i
jedna warto�� w ca�ej bazie zosta�a zmieniona. Nie mo�na wykluczy� na
100% takiej sytuacji.
Inny przypadek - uszkodzi�y si� pliki bazy. Robimy napraw�, walidacj� i
okazuje si�, �e 80% rekord�w jest ok. Gra warta �wieczki, bo te 80% to
kupa kasy. Musimy jednak wykaza�, �e po tej naprawie s� to na 100% te
dane, kt�re zosta�y zapisane. Co do jednego bitu. Kto si� pod tym
podpisze je�eli dane s� zabezpieczone tylko i wy��cznie kluczem obcym?
--
Pozdrawiam
JB.
>FK leży u podstaw, natomiast założenia są szersze - ja muszę
>zweryfikować, że na 100% ten FK się nie przekłamał!
Na 100% sie nie przeklamal.
Nie obraz sie, ale mam wrazenie, ze Ty nie rozwiazujesz problemu
technicznego, tylko szukasz magii na uleczenie paranoi. Paranoja nie
jest zla, o ile ma silne podstawy merytoryczne -- w tym przypadku
jednak tak wg mnie nie jest.
> Zmieszcz� si�. Jest to jaki� pomys�, aby napisa� aplikacj�, kt�ra u�yje
> danych z p�yty do weryfikacji danych bazie. Procedura b�dzie troch�
> upierdliwa, ale akceptowalna ze wzgl�du na wymogi. Zaproponowana w innym
> po�cie baza lokalna z hashami ma bardziej ulotny charakter od p�yty DVD
> trzymanej w sejfie. Wezmďż˝ to pod uwagďż˝.
Nie wiem z jakiej bazy korzystasz i w czym masz pisanďż˝ aplikacjďż˝
ale jak chcesz tylko por�wna� dane na dysku z danymi na DVD
to poprostu por�wnujesz zawarto�� rekord�w (rekord z rekordem, pole z polem)
a dla r�nic albo robisz pole w bazie na dysku albo wr�cz robisz now�
tabelk�, w kt�rej s� wykazane r�nice mi�dzy bazami.
Ja zrozumia�em pytanie tak, �e robisz tabel� wynik�w, kt�r�
chcia�by� zabezpieczy� przed jakimikolwiek zmianami aby
po jakim� czasie por�wna� dane stare (zabezpieczone) z nowymi danymi.
My�la�em, �e chodzi ci o gwarancj� bezpiecze�stwa danych.
Andrzej.
Co do uszkodzenia. Najlepiej replikować bazę, masz wtedy drugą kopię,
która nie uległa uszkodzeniu. Możesz na jej podstawie weryfikować
poprawność rekordów. Jeśli to tak ważne dane można robić jeszcze jedno,
zapisywać każdy insert, każde update, nawet jako polecenie SQL do logu
tekstowego. Wtedy masz historię zmian i możesz po niej robić weryfikację.
--
wer <",,)~~
http://szumofob.eu
> dziękuję wszystkim za odpowiedzi. Niestety problem jest chyba za trudny do
> dyskusji, bo /pomimo chęci/ nie udało się wypracować nic więcej, niż to co
> sam zaproponowałem na początku. Jeszcze raz dziękuję wszystkim za
IMHO to czego potrzebujesz to podpis elektroniczny. W zasadzie każda baza
posiada funkcje haszujące którymi wyliczysz "odcisk palca" interesujących
cię danych. Wyliczoną sumę kontrolną zapisujesz w dowolny sposób (choćby i
na karce) i za 10 lat uruchamiasz to samo zapytanie generujące skrót i
wiesz, czy dane które ono obejmuje zmieniły się czy też nie.