W jaki sposób uczyć się relacyjnych baz danych?

W jaki sposób uczyć się relacyjnych baz danych?
rafal95p
  • Rejestracja:około 2 lata
  • Ostatnio:ponad rok
  • Postów:157
0

Załóżmy, że znam podstawy języka SQL i "czuję" różnicę pomiędzy DELETE * FROM db a DROP db. Co dalej mogę zrobić by poszerzyć swoją wiedzę z relacyjnych baz danych? Chodzi mi o kierunek rozwoju.

edytowany 1x, ostatnio: Riddle
Z2
  • Rejestracja:prawie 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:22
0

Na ten temat baza dla Ciebie to wyłącznie składowisko danych.

Spoko, ale w zasadzie w czym lepsze będzie to od excela?

Zacznij używać excela, zacznij pisać większe programy, gdzie jest więcej użytkowników, a szybciej poznasz problemy, które baza rozwiązuje.

Z perspektywy nauki to jest lepsza droga niż klepanie na sucho teorii, której właściwie na teraz nie potrzebujesz.

Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:3 minuty
  • Postów:6622
3

Rób zadania z HackerRank.

https://www.hackerrank.com/domains/sql


🕹️⌨️🖥️🖱️🎮
edytowany 1x, ostatnio: Spine
rafal95p
Dzięki, wygląda fajnie.
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:30 minut
  • Postów:8399
1
rafal95p napisał(a):

Załóżmy, że znam podstawy języka SQL i "czuję" różnicę pomiędzy DELETE * FROM db a DROP db. Co dalej mogę zrobić by poszerzyć swoją wiedzę z relacyjnych baz danych? Chodzi mi o kierunek rozwoju.

to JOINów się poucz, GROUP BY itp. a nie, że tylko kasowania się zachciało.


edytowany 1x, ostatnio: LukeJL
rafal95p
Te też znam.
SI
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 2 godziny
  • Postów:104
0

Zwłaszcza że w dużych projektach/bazach nie stosuje się delete

Zobacz pozostałe 13 komentarzy
YA
@flinst-one: po co przebudowywać indeksy skoro można na starcie dobrze zaprojektować? :) Przebudowanie takiego partycjonowanego index organized nie jest takie trywialne jakby się mogło wydawać.
SI
..o widzę ze temat indeksów został wyjaśnione to już nie musze tego tłumaczyć.. pracuje z bazami DB2, SQL sever, Mysql zatem tu to obowiazuje. Oczywiście można kasować a potem odbudować indexy.. jak ktoś się nudzi w pracy to powodzenia. I jak tu kolega fajnie napisał... można na starcie dobrze zaprojektować.. Właśnie tak to sie projektuje że jeżeli dany rekord ma być nie brany uwagę ustawia się flagę (np tworzymy kolumnę anuluj, czy status) który zgodnie z indexem ma nie zostać wyświetlony.
flinst-one
@sight: czyli zamiast robić delete i co jakiś czas runstaty na indexach (w przypadku db2) lepiej dodać kolejną kolumnę ? Z d**y rozwiązanie. Zbieranie statystyk idzie po całej tabeli i im więcej danych, tym dłużej to trwa. Postgres używa mvcc, tam nie ma fizycznego delete, ale i tak vacuum jest potrzebne (jakbyś systemu nie zaprojektował).
YA
Nie do końca tak z tymi statystykami. Sporo zależy od możliwości jakie oferuje silnik (np. samplowanie % segmentów/bloków, zbieranie per partycja, zamrażanie statystyk). Zauważ, że w postgresie przy delete będziesz zostawiony wiersz poprzedni, więc postgresowi z przypadku vacuum wszystko jedno czy to update czy delete. Przy fizycznym delete musi jeszcze zaktualizować indeks (vacuum) :-) Przy update niekoniecznie (o ile nie masz indeksu na flagę DELETED). Co do dużych tabel przy projektowaniu trzeba brać pod uwagę ficzery typu partycjonowanie, columnar storage.
SI
@flinst-one: Hej moim zdaniem bardzo dobre rozwiązanie.. mam tabele po miliony rekordów.. robisz indexy po np statusach bez anulowania.. Gdy budujesz aplikacje i potrzebujesz widok dla przykładu otwartych zamówień to budujesz tak index aby pokazywał Ci nie anulowane i np z jakim statusem.. od lat mamy firmie takie gigantyczne bazy danych i to śmiga w ułamkach sekund... budujemy raportu z zakresami rocznymi.. Jak masz okazję to sprawdzić no może nie na DB2 ale na SQL serwerze to podłącz sobie taką bazę i w sql management studio masz obliczanie kosztów zapytania...
biela_
  • Rejestracja:ponad 8 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:WPR
  • Postów:135
1

Hasła kolejne do przejrzenia profiler, hurtownia danych, azure

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)