Czym jest dobra znajmość relacyjnych baz danych ?

0

Witam,
W ogłoszeniach o pracę często można spotkać takie wpisy:

Dobra znajomość relacyjnych baz danych MS SQL i/lub Oracle oraz języka SQL

Co pracodawca rozumie poprzez znajomość bad danych ? Oddziela tu dwie kwestie tj. znajomość baz danych oraz znajomość języka SQL. Ostatnio pracowałem głównie na MySql, ale wcześniej także na ORACLE i z tego co pamiętam to są jakieś niewielkie różnice w składni sql, ale bez przesady.

Zakładam, że nie ma na myśli tworzenia tabel z uwzględnieniem relacji/doborem typów kolumn itp, nadawaniem uprawnień itp...,a więc co ma na myśli ? To zdanie pojawia się w każdej ofercie pracy, a co z nim się kryje ?

0

Niewielkie różnice między Oracle i MSSQL? Google: pl/sql i tsql to tak na początek ;)
A co przez to rozumieją? Zapewne że rozumiesz jak działają takie bazy, że umiesz napisać sensowne zapytanie (i rozumiesz czym się różni outer, inner, left i right join i umiesz ich używać), że wiesz jak sie tworzy tabele, robi dumpy bazy i je wciąga. Że umiesz zdiagnozować czemu jakieś zapytanie działa powoli, umiesz założyć sensowne indeksy i tak dalej.

0

Trzeba zacząć od tego, że MySQL ma SQL-a do d**y.
Sama znajomość MySQL (i to jeszcze np z jakimś frameworkiem, gdzie de facto się zapytań nie pisze), to tak jakbyś nie znał baz danych.
A niewielkie różnice między MySQL a ORACLE - tu to żeś pojechał... Skoro tak twierdzisz, to znaczy, że żadnej z tych baz nie poznałeś.

0

Między DBMS-ami w zakresie podstawowego DML rzeczywiście są niewielkie różnice.
Wyjątkiem jest tu MySQL który ma nawet podstawowe rzeczy zaimplementowane odmiennie (np. grupowanie).
Schody zaczynają się gdy masz napisać procedure składowaną, batch-a, zapytanie rekurencyjne lub specyficzny (np. klastrujący) indeks...

0

Dziękuje panowie za objaśnienie mi tego.

Faktycznie moje pojęcie różnic dot. baz danych jest dosyć płytkie. Na ORACLE pracowałem ze złożonymi zapytaniami pisanymi z palca, a przy MySQL jedynie proste zapytania dla stron internetowych oraz HQL przy realizacji projektu na uczelni w JavaEE.

Dzięki jeszcze raz :)

0

Yeah, mysql bardziej prymitywny to fakt. Ale spróbujcie w mysql napisać zapytanie, które doda do tabeli kolumnę nie na koniec tylko w środku, potem napiszcie zapytanie w oraclu, które robi dokładnie to samo. Porównajcie te zapytania - jaki wniosek?

Jeszcze śmieszniejsze - sql developer, przy edycji tabeli ma przyciski strzałek góra dół, które jakoby służą do zmiany kolejności kolumn w tabeli. Problem w tym, że są one zawsze nieaktywne (wiadomo czemu), to po cholerę one są?

Poza tym, zawsze mnie kurwica strzela jak muszę zrobić backup/restore bazy w oracle. Dobrze że jest chociaż data pump bo grzebanie w konsoli mi sie nie usmiecha zbytnio. Ale i tak do wygody z mssql i jego management studio to jeszcze daleko.

0

@othello a próbowałeś użyć Enterprise Managera? To jest taki webowy klient do Oracle i ma znacznie wiecej możliwości niż sql developer :)

0

Otóż tak: w Oracle jest to niemożliwe. Trzeba usunąć całą tabelę i założyć ją od początku. Jeśli w tabeli były dane, to trzeba też zrzucić te dane. A jeśli tabela była powiązana kluczami obcymi, były triggery, indeksy itd....

0

@othello głowy nie daje bo nie pamiętam jak to było w Oracle, ale to chyba wynika z organizacji danych na dysku, tzn że dane na dysku są zapisane wierszami a nie kolumnami i dlatego nie da się ot tak wcisnąć nic do środka.

0

Nadmienić wypada, że taka funkcjonalność to jest chyba tylko w mysql. MS SQL też nie pozwala wstawić kolumny w środku. Ale, w odróżnieniu od Oracle, Management Studio pozwala na wyklikanie kolejności kolumn, automatycznie generuje skrypt który ponownie tworzy tabelę. A SQL Developer od Oracla? Pozostawione nieaktywne przyciski i tyle. Po prostu wkurzają mnie takie rzeczy.

0

Dobra znajomość bazy danych zależy od stanowiska i zadań. Czego innego wymaga się od programisty, który do bazy będzie dobierał się przez ORMa, czego innego od osoby aplikującej na stanowisko programisty PL/SQL, a jeszcze inne wymagania stawia się przed adminem. Prowadząc weryfikację techniczną kandydatów na stanowisko programisty zazwyczaj pytam o kilka prostych rzeczy - joiny, having, union plus o kilka z oraclowego podwórka typu merge, widoki materializowane, tabele partycjonowane. Staram się za to unikać pytań o rzeczy związane z administracją, bo nie jest to istotne (no chyba, że mi się trafi taki archetyp od klienta, ale to rzadko). Jak bym miał męczyć kandydata na admina to zapewne pytał bym o diagnostykę, wykrywanie problemów czy zarządzanie sotragem czy jakieś duperele sieciowe.

0

Podepnę się i zapytam czym czym jest podstawowa znajomość baz danych? Bo taki jest wymóg w interesującym mnie ogłoszeniu w którym chciałem aplikować na juniora i wydaje mi się ze spełniam pozostałe wymagania, natomiast z bazami danych nie miałem za dużo do czynienia, zrobiłem sobie kurs zelenta, przeczytałem kurs bazy danych z poziomu pythona, porobiłem sobie te podstawowe zapytania i nie wiem co dalej

1 użytkowników online, w tym zalogowanych: 0, gości: 1