Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki 1 do 10 z 16

Temat: odnosnie baz danych

  1. #1
    Zarejestrowany
    Aug 2009
    Postów
    408

    Domyślnie odnosnie baz danych

    zastanawia mnie po co komu tyle skomplikowanych funkcji, typu union select.

    przeciez z tego sie wcale nie kozysta (normalnie)!


    mnie by wystarczylo:
    create
    drop
    truncate
    alter
    select
    insert
    update

    i w zasadzie to wszsytko z podstawowych zapytan!
    pytam sie po co skomplikowane funkcje? szczegolniwe te ktore tworza pliki na serwerze.

  2. #2
    Zarejestrowany
    Jul 2008
    Skąd
    /dev/random
    Postów
    556

    Domyślnie

    Jak zaczniesz robic sobie jakas rozbudowana baze z powiazaniami w tabelach itp. itd. to zrozumiesz tak trudno wytlumaczyc. W sumie do puki nie zaczelem kiedys pisac systemu monitoringu i zarzadzania do TV Kablowych (internet w systemie DOCSIS) to tez zastanawialem sie po co to komu potem stwierdzilem ze mocno to ulatwia zycie tak jak widoki, trigery i cala reszta. Oczywiscie jak chcesz tez dbac o integralnosc calej bazy

    Prawde mowiac trudno jednoznacznie odpowiedziec na twoje pytanie, to tak jak by zapytac po co nam komputery - kiedys wystarczylo wszak liczydlo albo kalkulator...
    Ostatnio edytowane przez tom : 09-22-2009 - 01:47
    --
    ToM's Super Fix IT "No Fucking Problem"

  3. #3
    Zarejestrowany
    Aug 2009
    Postów
    408

    Domyślnie

    hmm, ale i tak wszsytko mozna osiagnac wykonujac wiecej zapytan sql.

    w prawdzie bedzie to trfalo dluzej, ale prostota po pierwsze.

  4. #4
    Zarejestrowany
    Jun 2006
    Postów
    141

    Domyślnie

    Ale w bazach nie ma trwac dluzej ;P Wlasnie czas w jakim zapytanie jest wykonywane jest bardzo wazne.

  5. #5
    Zarejestrowany
    Jul 2008
    Skąd
    /dev/random
    Postów
    556

    Domyślnie

    Cytat Napisał rax666 Zobacz post
    hmm, ale i tak wszsytko mozna osiagnac wykonujac wiecej zapytan sql.

    w prawdzie bedzie to trfalo dluzej, ale prostota po pierwsze.
    No mozna zrobic wszystko tylko jakim kosztem w pewnym momencie sam sie pogubisz w kodzie ktory obsluguje dana baze danych. Zamiast jednego zapytania np. prosty select do widoku zrobisz cala sterte zapytan do sterty roznych tabel. Albo masz prosta tabelke np. "Kolor kredki", "ilosc na magazynie", "czas przyjecia na magazyn" i chcesz nagle wiedziec ile masz wszystkich kredek niezaleznie od koloru przyjetych powiedzmy przed jakas data na magazyn...

    Przykladow mozna powielac... wlasnie dzisiaj dostalem cos co mnie zalamalo.

    Nie jestem programista w firmie ale znowu na mnie spadlo pisanie aplikacji bazodanowo/obliczeniowej pod Windows - komunikujacej sie z SQL-em (do wyboru MySQL lub PgSQL)... jak bys zobaczyl cala strukture co ma projekt robic itd. to juz jest zalamka do tego nie wspomne jak zakrecona bedzie struktura samych tabel. Dochodzi do tego jeszcze interfejs komunikacji do Matlaba i sterta innego badziewia...

    Niestety z wiadomych przyczyn nie moge udostepnic calej dokumentacji co jest oczekiwane ale tak miedzy innymi kilka punktow wyrywkowo

    Ale mam wlasnie lekka zalamke - chodzi tutaj tez o wygodny interfejs uzytkownika he he osobiscie nie widze tego jak bym mial uzywac tylko tego co wymieniles

    Kod:
    1. powinna istnieć możliwość definiowania własnych wzorów testów statystycznych (są to obliczenia elementarne więc zapisanie ich w języku skryptowym nie będzie opóźniać wyników)
    
    2.aplikacja powinna udostępniać wyniki statystyk standardowych (średnia, odchylenie standardowe, test normalności rozkładu etc.)
    
    3. aplikacja powinna oferować zaawansowaną wyszukiwarkę realizującą wielopoziomowe zapytania logiczne pozwalającą na wyszukiwanie i zestawianie ze sobą reklam (według producentów, marek, słów kluczowych etc.), sekwencji (według ich kategorii), klientów i innych elementów składowych bazy, ich sortowanie i ponowne filtrowanie wyników wyszukania
    
    
    I kolejne dotyczace analizy czesci zawartych w SQL-u danych
    
    
    1. algorytm rozkładu na składowe główne – polegający na jednokrotnym wyznaczeniu macierzy kowariancji oraz na rozwiązaniu układu równań liniowych w postaci macierzowej
    
    2. algorytm rozkładu na składowe niezależne - algorytm adaptacyjny z maksymalna liczba iteracji w celu znalezienia rozwiązania ustawiona na 512. Pojedyncza iteracja to kilka operacji odwracania, mnożenia  i obrotów dużych macierzy aż do spełnienia kryterium obliczanego na ich podstawie.
    Złożoność jak i czas znalezienia rozwiązania silnie zależą od długości badanego fragmentu oraz ilości kanałów (w naszym przypadku 32)
    
    3. algorytm obliczający moc sygnału w różnych częstotliwościach - złożoność obliczeniowa O(Nlog2(N)) gdzie N to długość sygnału w próbkach. Na pojedynczej reklamie dla pojedynczej osoby wykonywanych jest około 6 500 tych analiz z N=512 punktów – w sumie około 30 000 000 operacji
    --
    ToM's Super Fix IT "No Fucking Problem"

  6. #6
    Zarejestrowany
    Aug 2009
    Postów
    408

    Domyślnie

    Powodzenia
    Mnie tak naprawde nigdy nie interesowalo programowanie zlozonych problemow, raczej os i internale, czyli jak cos dziala i jak mozna to zrobic lepiej.

    I dalej twierdze, ze baza powinna udostepniac tylko standardowy interfejs.




    Prostsze zapytania szybciej obslugiwane. tak naprawde to zamiast wyrazow zrobic bajty albo nawet bity.

    czyli select = bajt 0x01, update 0x02, etc.


    to baza danych.
    Oraz inny program, nazwijmy go operator bazy danych, przydatny jesli laczysz sie via siec. Dziala jak proxy, przyjmuje zapytania i instrukcje co ma z nimi zrobic, odpytuje baze w prosty sposob, i odsyla do usera wynik.
    Tak naprawde moglo by byc to rozszerzenie. Czyli odciazylo by to baze z analizy zapytan.

    Jestem zwolennikiem prostoty, im prosciej - tym lepiej.
    Lepiej miec 30 roznych programow z ktorych kazdy robi swoje I TYLKO SWOJE niz 1 kombajn ktory sie zawiesi i niewiadomo dlaczego.

  7. #7
    Zarejestrowany
    Jul 2008
    Skąd
    /dev/random
    Postów
    556

    Domyślnie

    hmm

    Tylko takie uproszczenia wrecz komplikuja, a nie uproszczaja

    np. popatrzmy na redukcje wielkosci zapytania - w przypadku bazy danych sam procent zapytan to znikoma ilosc w stosunku do danych. Do tego mozesz sobie uzc procedur czy trigerow gdzie przeslesz prosty select - a baza wykona skaplikowana procedure.

    Odnosnie proxy to tez nie ma sensu - w przypadku bardzo zlozonych problemow robi sie cluster i dane sa rozproszone na wielu komputerach.

    Zobacz jak glupie klucze obce potrafia ulatwic sprawe czy chocby tranzakcje - nie musisz wielu spraw zalatwiac w oprogramowaniu ktore uzywa bazy.

    Osobiscie nie jestem specjalista od baz danych, ot takim bardziej dlubaczem ktory uczy sie caly czas i powiem ci ze to naprawde ulatwia zycie jak sie zacznie uzywac. Kiedys uzywalem tysiac update czy drop dbajac o integralnosc danych itp. teraz to mi zalatwia baza (bo po to jest).

    to naprawde nikt nie tworzyl aby utrudnic zycie i zwolnic bazy danych, to wszystko jest robione wrecz w przeciwnym kierunku...
    --
    ToM's Super Fix IT "No Fucking Problem"

  8. #8
    Zarejestrowany
    Aug 2007
    Postów
    104

    Domyślnie

    @tom ma duzo racji w tym co pisze

    @rax666 - niestety mylisz sie w wielu kwestiach
    jedna baza danych ma dzialac szybko i dobrze; jezeli bedzie do d..y to bedzie zle dzialac - sztuka polega na dobrym jej stworzeniu

    jezeli bedzie wiele programow obslugiwalo cos - musza wspoldzialac, trzeba przeprowadzac aktualizacje, jeden sie posypie i masz spierd... potrzebne opcje - nie wiesz co sie dzieje - a niech sie posypie 5 takich programow...?

    podstawy to: create, insert into, update, delete from, drop, select, alter table, operatory porównania (<,>, !=, ... itd)
    agregacja czyli grupowanie: select distinct, klauzule:group by, having, order by
    widoki: - ograniczaja dostep do tabel w bazie, upraszczaja zapytania kierowane do systemu, zapewniaja niezaleznosc danych wewnetrznych aplikacji (przy przebudowaniu tabel mozna zmodyfikowac widok tak aby zapytania nie wymagaly zmian)
    złączenia: - czyli from (tabela1) join (tabela 2) on..., from tab1 join tab2 using...
    klucze: - jego zadaniem jest jednoznaczna identyfikacja wierszy tabeli; klucz danej tabeli to podzbior kolumn tej tabeli wystarczajacy do jednoznacznej identyfikacji kazdego wiersza w kazdej sytuacji tzn. dla wszystkich mozliwych ukladow wartosci danych w tabeli - taka jednoznacznosc gwarantuje brak powtorzen w odrebie kolumn nalezacych do klucza
    transakcje: - czyli zespol czynnosci (rozkazow), ktore musza zostac wszystkie wykonane lub wszsytkie wycofane, by nie pozostawic bazy w stanie niespojnym podczas awarii
    czy stosowanie petli programowych oraz triggerow, zeby nie tworzyc po 15 zapytan ktore obciazaja maszyne - bo musi wykonac wiecej operacji zamiast jednej porzadnej

  9. #9
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    ... a ja dodam jeden konkretny argument o ktorym wspomnial tom ale nieco inaczej go opisze...

    Jesli budujecie duzy system transakcyjny bardzo czesto najlepszym rozwiazaniem jest taka budowa systemu, aby baza danych jako glowne lub wrecz jedyne i zdecydowanie autorytatywne zrodlo danych bylo mozgiem calosci operacji. Jesli ja dodaje cos do bazy i dalej musze wykonac 20 operacji w bazie to ma sens zrobienie triggera albo napisanie wlasnej funkcji ktora calosc ladnie wykona w 100% lub nie wykona nic (rollback) jesli cokolwiek w procesie zwroci blad.

    Zamiast pisac obsluge bazy w aplikacji zostawcie to bazie...
    1. Aplikacja ma wykonywac funkcje uzytkowe - po to aplikacja powstala
    2. Funkcje wybudowane sa szybsze niz wywolania z poziomu aplikacji - silniki baz danych sa mocno optymalizowane!
    3. Przeniesienie abstrakcji obslugi danych do silnika bazodanowego upraszcza znacznie pisanie wlasciwej aplikacji - masz proste API, wykonujesz proste zapytanie (SELECT, UPDATE, INSERT, DELETE) a silnik sam dba o cala reszte operacji zwiazanych z baza (to tak aby zaoszczedzic pare(set/tysiecy) linii kodu ktory robi cos czego nie powinien bo to nie jest logika aplikacji tylko logika silnika skladujacego dane).

    @rax666 - sorry, nie masz racji... ale nie martw sie - ja tez tak kiedys myslalem ze to zbedne funkcje ;-) a pozniej czlowiek dorasta do pewnych rzeczy i zaczyna rozumiec o co w tym chodzi.
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  10. #10
    Zarejestrowany
    Aug 2009
    Postów
    408

    Domyślnie

    tqm, lesli ktos uzywa duzej sieci i z danych kozysta wiele osob, to po co sie odwolywac w sposob zapytan?

    Napisac serwer http i dodac w nim baze danych.
    Zeby miec do niej dostep jak do pamieci, a nie jak do oddziejnego czegos.

Strona 1 z 2 12 OstatniOstatni

Podobne wątki

  1. Przechwytywanie danych
    By Glowid in forum Hacking
    Odpowiedzi: 2
    Autor: 01-26-2009, 20:56
  2. [C++]Baza danych
    By RoN in forum C/C++
    Odpowiedzi: 0
    Autor: 01-14-2009, 19:10
  3. Odnosnie tibii - moj brat to sciagnol
    By Pomocnik in forum Hardware Hacking
    Odpowiedzi: 7
    Autor: 07-15-2008, 13:03
  4. pytanie odnosnie ICMP
    By ma~ in forum Newbie - dla początkujących!
    Odpowiedzi: 15
    Autor: 03-24-2008, 00:24
  5. Przywracanie danych
    By DnS in forum Newbie - dla początkujących!
    Odpowiedzi: 5
    Autor: 01-21-2008, 20:41

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj