ďťż
 
Projekt bazy danych ďťż
 
Projekt bazy danych
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Projekt bazy danych



Jan Kowalski - 11-11-2005 11:40
Projekt bazy danych
  Prosze o opinie i rade.
Tworze system ktory ma zapisywac zdarzenia do bazy danych. Wybralem MySql.
Uzytkownicy beda przesylali zdarzenia. Zadarzen bedzie nawet do 50 tys.
dziennie od jednego uzytkownika, kazdy rekord to ok 30 liczb lub tekstow.
Zastanawiam sie nad projektem bazy.Pola w tabeli moga wygladac tak:

User ID
Data1
Data2
..
..
..
DataN

A moze zalozyc tabele dla kazdego uzytkownika ktorej nazwa bedzie User ID?
Czy nie bedzie tak szybciej uzyskac dostep do danych usera? Jakie jest
ograniczenie wielkosci bazy (lub tabeli ) w MySql? Jakie moga wystapic
problemy z utrzymaniem tak duzej ilosci danych?

Pozdrawiam
Janek





Wojtek pBT (lapt) - 11-11-2005 11:41

  Dnia 2005-11-08 16:34, Użytkownik Jan Kowalski napisał:

> Prosze o opinie i rade.
> Tworze system ktory ma zapisywac zdarzenia do bazy danych. Wybralem MySql.
> Uzytkownicy beda przesylali zdarzenia. Zadarzen bedzie nawet do 50 tys.
> dziennie od jednego uzytkownika, kazdy rekord to ok 30 liczb lub tekstow.
> Zastanawiam sie nad projektem bazy.Pola w tabeli moga wygladac tak:
>
> User ID
> Data1
> Data2
> .
> .
> .
> DataN
>
> A moze zalozyc tabele dla kazdego uzytkownika ktorej nazwa bedzie User ID?
> Czy nie bedzie tak szybciej uzyskac dostep do danych usera? Jakie jest
> ograniczenie wielkosci bazy (lub tabeli ) w MySql? Jakie moga wystapic
> problemy z utrzymaniem tak duzej ilosci danych?

Mam nadzieję że to projekt na zaliczenie a nie coś produkcyjnego...

zrób kilka tabel:

Zdarzenia
idZ|nazwa|...

User
idU|nazwisko|...

Log
idL|data|idZ|idU|...

Przy czym tabela Lol powinna miec jak najmniej kolumn. Możesz nawet
myśłec o relacji 1:1 jeżeli bo części danych bedziesz dobierał się
rzadziej. Zaplanuj dobrze indeksy (Bo kiedyś mysql nie najlepiej
wypadała przy złączeniach). A może zmien bazę.

Ograniczeniem jest wielkość pliku, który wytrzyma twój system
operacyjny. Jedna tabela skłąda sę z 3 plików: opisu_danych, danych, indeksu

pBT




Jan Kowalski - 11-11-2005 11:41

  Raczej cos komercyjnego. Zdarzenia beda takie same (datagodzina,
wartość1,wartość2) wiec nie potrzebuje tabel id zdarzenia. A potem chce te
dane odczytywac i wyswietlac dane z okreslonego okresu (sumowac, srednie,
ilosc itp.)

Użytkownik "Wojtek pBT (lapt)" <bato3@WirtualanPolskap.pl> napisał w
wiadomości news:dkqh3b$qm9$1@news.dialog.net.pl...
> Dnia 2005-11-08 16:34, Użytkownik Jan Kowalski napisał:
>
>> Prosze o opinie i rade.
>> Tworze system ktory ma zapisywac zdarzenia do bazy danych. Wybralem
>> MySql.
>> Uzytkownicy beda przesylali zdarzenia. Zadarzen bedzie nawet do 50 tys.
>> dziennie od jednego uzytkownika, kazdy rekord to ok 30 liczb lub tekstow.
>> Zastanawiam sie nad projektem bazy.Pola w tabeli moga wygladac tak:
>>
>> User ID
>> Data1
>> Data2
>> .
>> .
>> .
>> DataN
>>
>> A moze zalozyc tabele dla kazdego uzytkownika ktorej nazwa bedzie User
>> ID? Czy nie bedzie tak szybciej uzyskac dostep do danych usera? Jakie
>> jest ograniczenie wielkosci bazy (lub tabeli ) w MySql? Jakie moga
>> wystapic problemy z utrzymaniem tak duzej ilosci danych?
>
>
> Mam nadzieję że to projekt na zaliczenie a nie coś produkcyjnego...
>
> zrób kilka tabel:
>
> Zdarzenia
> idZ|nazwa|...
>
> User
> idU|nazwisko|...
>
> Log
> idL|data|idZ|idU|...
>
> Przy czym tabela Lol powinna miec jak najmniej kolumn. Możesz nawet myśłec
> o relacji 1:1 jeżeli bo części danych bedziesz dobierał się rzadziej.
> Zaplanuj dobrze indeksy (Bo kiedyś mysql nie najlepiej wypadała przy
> złączeniach). A może zmien bazę.
>
>
> Ograniczeniem jest wielkość pliku, który wytrzyma twój system operacyjny.
> Jedna tabela skłąda sę z 3 plików: opisu_danych, danych, indeksu
>
> pBT




darek - 11-11-2005 11:41

  Jan Kowalski napisał(a):
> Raczej cos komercyjnego. Zdarzenia beda takie same (datagodzina,
> wartość1,wartość2) wiec nie potrzebuje tabel id zdarzenia. A potem chce te
> dane odczytywac i wyswietlac dane z okreslonego okresu (sumowac, srednie,
> ilosc itp.)

A czytales cos na temat normalizacji i jej zalet, a takze tego kiedy
mozna z niej zrezygnowac?
To co zaproponowales wyglada nienaturalnie w relacyjnych bazach danych.

Pozdrawiam
Darek





Jan Kowalski - 11-11-2005 11:41

  Użytkownik "darek" <chq_at_wp_pl@spam.pl> napisał w wiadomości
news:b5cae$4370f979$540a1666$31142@news.chello.pl. ..
> A czytales cos na temat normalizacji i jej zalet, a takze tego kiedy mozna
> z niej zrezygnowac?
> To co zaproponowales wyglada nienaturalnie w relacyjnych bazach danych.

Piszesz o tej ostatniej propozycji? Masz inny pomysl na zapis tych danych?




Jan Kowalski - 11-11-2005 11:41

  > A czytales cos na temat normalizacji i jej zalet, a takze tego kiedy mozna
> z niej zrezygnowac?
> To co zaproponowales wyglada nienaturalnie w relacyjnych bazach danych.
>
OK, poczytalem. Oczywiscie dane klientów beda w innej tabeli. Dla
uproszczenia skupilem sie tylko na danych ktore sa wynikiem chwilowych
parametrow i chodzi mi o konstrukcje tylko tego fragmentu bazy w ktorej
bedzie np:

datagodzina
temperatura
wartosc napiecia

Pytanie brzmi czy w tym wypadku lepiej uzyc jednej tabeli i dodac pole
IDKlienta czy dla kazdego IDKlienta utworzyc nowa tabele.

Pozdrawiam
Janek




emes - 11-11-2005 11:41

  w zaleznosci jak pozniej chcesz na tym wykonywac zapytania + jaka bedzie
liczba tych klientow

--
emes




Jan Kowalski - 11-11-2005 11:41

 
Użytkownik "emes" <emesemes@wp.pl> napisał w wiadomości
news:43710493$0$5427$f69f905@mamut2.aster.pl...
>w zaleznosci jak pozniej chcesz na tym wykonywac zapytania + jaka bedzie
>liczba tych klientow
>

Klientow kilkaset (a w skrajnych wypadkach kilka tysiecy). Zapytania to
sumy, wyswietlanie rekordow z zadanego okresu lub o zadanej wartosci,
srednie, wyswietlanie wartosci z zadanego czasu u wszystkich klientów,
sumowanie wartości z zadanego czasu pogrupowane wg klientow itp.




Kazek Kurz - 11-11-2005 11:41

  Jan Kowalski wrote:
> Prosze o opinie i rade.
> Tworze system ktory ma zapisywac zdarzenia do bazy danych. Wybralem MySql.
> Uzytkownicy beda przesylali zdarzenia. Zadarzen bedzie nawet do 50 tys.
> dziennie od jednego uzytkownika, kazdy rekord to ok 30 liczb lub tekstow.
> Zastanawiam sie nad projektem bazy.Pola w tabeli moga wygladac tak:
>
> User ID
> Data1
> Data2
> .
> .
> .
> DataN
>
> A moze zalozyc tabele dla kazdego uzytkownika ktorej nazwa bedzie User ID?
> Czy nie bedzie tak szybciej uzyskac dostep do danych usera? Jakie jest
> ograniczenie wielkosci bazy (lub tabeli ) w MySql? Jakie moga wystapic
> problemy z utrzymaniem tak duzej ilosci danych?
>
> Pozdrawiam
> Janek
Przy takim rozmachu normalizacja bazy to duzo za mala wiedza aby projekt
z sensem prowadzic i zakonczyc. Musisz odpowiedziec takze na takie
pytania jak:
a) czy dane moga byc tracone? Jesli absolutnei konieczne jest aby
zapisaly sie wszystkie wpisy, w istocie projektujesz system typu
bilingowego: to sa systemy o najwyzszych wymaganiach wydajnosciowycj i
niezawodnosciowych Jesi budujesz takiu system pocztaj o kolejn\kowaniu i
o monitorach tranzakcyjnych. Mozna rozwazac rozdwojenie bazy zarowno z
powodw wydajnosciowych jak i niezawodnosciowych
b) czy wpisy moga przychodzic jednoczesnie z wielu zrodel, czy siec,
dysk, procesor, logi wydola. Znowu byc moze monitor tranzakcyjny sie
przycac moze.
c) czy potrzebna jest pelna transakcyjnosc: jesli nie wywal ja zaraz jak
sie tylko da: po co ci wpisy i do tabel i do logow, skoro chcesz miec
tylko dane.
d) rozwaz podzielenei tabeli w taki sposob aby zwiekszyc wydajnosc
zapisu. W informixie sa mechanizmy pozwalajace JEDNA tabele rozlozyc na
N dyskow ( klauzula FRAGMENT BY) tak, zeby zapisy komunikatow
Adamskiego, Kowalskiego i Żubra odbywaly sie roznymi kontrolerami
dyskowymi. Alternatywnie mozesz miec wpisy o komunikacie a, b, c d...
albo inna fragmentacje. pamietaj: w relacyjnej bazie danych dane w
tabeli nie sa przechowywane w okreslonej kolejnosci. A mzoe powinienes
pisac do kilku serwerow bazodanowych? Uzywa sie wowczas monitora
tranzakcyjnego. Wogole uzycoie go w takim projekcie jest BARDZO
UZASADNIONE patrz p. a.
e) jakim mechanizmem bedziesz tabele czyscil. Pamietaj: po tygodniu od
200 uzytkownikow bedziesz mial 50*10^3 * 200 = 10^6 rekordow. MILION
rekordow. Co z nimi zrobisz po pol roku? Mechanizm backupu ktory musi tu
byc uzyty musi zapewne spelniac jakies wymogi: czy bedza chcieli
pzreszukiwac archiwa? Czy beda chcieli je przechowywac w jakiejs
sensowenj postaci? czy moze istniec koniecznosc spojnego uzowania danych
takze historycznych?

Na koniec nadmienei ze jedyne tego typu rozwiazania jakie widzialem, co
prawda znacznei wiekszej skali, dzialaly na DB2.
50 tysiecy dziennie/na usera i kilkaset userow...
czlowieku: za co ty sie bierzesz....
Kazek

--
O ktorym Wojtek Wierba napisal:
Kiedyś mówiło się "cogito ergo sum".
No Kazek chyba powiedzialby jednak:
"cogito ergo zum" co tlumaczy sie jako
"... jezdem"




Jan Kowalski - 11-11-2005 11:41

 
Użytkownik "Kazek Kurz"
>
> Na koniec nadmienei ze jedyne tego typu rozwiazania jakie widzialem, co
> prawda znacznei wiekszej skali, dzialaly na DB2.
> 50 tysiecy dziennie/na usera i kilkaset userow...
> czlowieku: za co ty sie bierzesz....
> Kazek

Wlasciwie zakladalem zapis wszystkich rekordow w wierszu, ale czesto w
wierszu zmienia sie tylko zapis jednej kolumny a ja planowalem zapis calego
wiersza. Moze rzeczywiscie to rozbic na tabele:
Tabela 1:
Data, UserID, wartosc1

Tabela2
Data, UserID, wartosc2

i tak 30 tabel?

Jako ciekawostke powiem Ci ze do tej pory robilem to w BAZACH ACCESOWYCH!!!!
i to działa pare lat!
Moze to szok dla niektorych ale tak to jest. Zakladalem codziennie 1 baze
ktorej nazwa byla datą i kazdy klient mial swoją tabele.

Jednak dostęp do tych danych nie był za bardzo wygodny ale był. Ponieważ
obecnie serwery bazodanowe są tanie lub wrecz bezpłatne, dlatego chce
zrezygnowac z MSJet.

Pozdrawiam
Janek
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= [laik]Jak =?ISO-8859-2?Q?stworzy=E6/zaczac_tworzyc__ma=B3=B1?==?ISO-8859-2?Q?__baz=EA_danych_na_potrzeby_www=3F?= [mysql] przenoszenie danych =?ISO-8859-2?Q?mi=EAdzy_tabelami_?==?ISO-8859-2?Q?w_r=F3=BFnych_bazach?= Ksiazka - "Podstawowy =?ISO-8859-2?Q?wyk=B3ad_z_system=F3w_?==?ISO-8859-2?Q?baz_danych=22?= Zrywanie =?ISO-8859-2?Q?po=B3aczen_z_baza_danych_-_pos?==?ISO-8859-2?Q?tgresql_=3C-=3E_odbc?= =?iso-8859-2?Q?=5BSQL_Server_2000=5D_uprawnienienia_do_u=BFyw ania_widoku_?==?iso-8859-2?Q?opartego_na_tabeli_z_innej_bazy?= Dwie bazy czy dwie tabele? [PHP i MySQL] Wstawianie =?ISO-8859-2?Q?rekord=F3w_do_bazy_?==?ISO-8859-2?Q?a_z=B3e_kodowanie?= [mssql] insert do tabeli na podstawie danych z innej tabeli =?ISO-8859-2?Q?=5Bmysql=5D_synchronizacja_struktury_bazy_?==? ISO-8859-2?Q?lokalnej_ze_zdaln=B1?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • ptsite.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com