hackmd Flashcards

1
Q

Spójność danych

A

to cecha, która zapewnia, że dane w systemie są kompletne, zgodne i poprawne w odniesieniu do ustalonych reguł oraz założeń logicznych.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Model wymiarowy opracowany przez Kimballa:
a) Powstał wcześniej niż model relacyjny.
b) Jest modelem biznesowym, a nie technicznym.
c) Został opracowany z myślą o analizowaniu nieustrukturyzowanych i częściowo ustrukturyzowanych danych.

A

B

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Systemy bazodanowe łączą tabele:
a) Zawsze zaczynając od najmniejszej.
b) Wybierając sposób złączenia na podstawie oszacowanej selektywności, czyli liczby dopasowanych wierszy.
c) Wszystkie na raz.

A

B

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Relacja

A

w modelu relacyjnym - dwuwymiarowa tabela, która operuje na prostych typach danych, gdzie każda relacja składa się ze stałej liczby atrybutów (kolumn) i dowolnej liczby krotek (wierszy)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Związek

A

jest pewnym powiązaniem między encjami, charakteryzuje się liczebnością/krotnością, i opcjonalnie nazwą.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Klucze

A

Klucz główny - powinien być: unikatowy, jak najmniejszy, stabilny
Klucz biznesowy - pochodzi z danych źródłowych
Klucz obcy
Opcje klucza obcego: NO ACTION, CASCADE, SET NULL, SET DEFAULT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Postacie normalne

A

1NF - Tabela jest w 1NF, jeżeli wszystkie atrybuty wielowartościowe zostały usunięte
2NF - Tabela jest w 2NF, jeżeli jest w 1NF i wszystkie częsciowe zależności funkcyjne zostały wyeliminowane.
3NF - Tabela jest w 3NF, jeżeli jest w 2NF i wszystkie pośrednie zależności funkcyjne

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Normalizacja

A

Normalizacja - wyeliminowanie wynikających z nadmiarowości danych anomalii, które mogłyby doprowadzić do utraty spójności danych.
Anomalie:

Anomalia modyfikacji
Anomalia usunięć
Redundancja

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Denormalizacja

A

ma na celu wprowadzenie kontrolowanej nadmierności do bazy danych w celu przyspieszenia odczytu danych.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Generalizacja

A

łączenie podobnych obiektów (entity) w jedną encję, co stanowi podzestaw relacji pomiędzy tabelami

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Bazy relacyjne

A

Baza relacyjna - baza danych w której dane przestawione są w postaci relacji - dwuwymiarowych tabel.
W bazie danych w modelu relacyjnym dane grupowane są w relacje, reprezentowane przez (nieuporządkowane) tabele o stałej ilości kolumn (atrybutów) oraz dowolnej liczbie wierszy (krotek, rekordów informacji). Każda tabela ma zdefiniowany klucz (mogący składać się z jednego lub więcej atrybutów), który jednoznacznie identyfikuje dany wiersz w tabeli (relacji). Wyszukiwanie danych w takiej bazie polega na odnalezieniu odpowiedniego klucza i identyfikacji danego wiersza za jego pomocą.
W relacyjnej bazie danych wyróżnia się trzy typy relacji między tabelami:

1 do 1
wiele do wielu
1 do wielu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Widok wirtualny

A

to standardowy widok w SQL Server, który nie przechowuje danych fizycznie. Jest zdefiniowany za pomocą zapytania SQL i generowany dynamicznie za każdym razem, gdy jest wywoływany.

Create view NazwaWidoku as
select * from Pracownicy
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Ograniczenia widoków

A

-Brak możliwości modyfikacji danych w widokach złożonych - Widoki zawierające funkcje agregujące (SUM, AVG, COUNT), klauzule DISTINCT, GROUP BY, HAVING, UNION lub podzapytania w SELECT, nie pozwalają na operacje modyfikacji danych (INSERT, UPDATE, DELETE).
-Brak wsparcia dla parametrów - Widoki w SQL Server nie mogą przyjmować parametrów wejściowych (w przeciwieństwie np. do procedur składowanych).
-Ograniczenia wynikające z klauzuli SELECT - Widok nie może zawierać klauzuli ORDER BY, chyba że jest używana razem z klauzulą TOP.
-Widoki nie mogą zawierać funkcji zmiennych wierszowo (np. NEWID() w SELECT).
-Widoki a uprawnienia - Widoki dziedziczą uprawnienia z tabel źródłowych. Użytkownik potrzebuje odpowiednich uprawnień do tabel źródłowych lub może zostać ograniczony wyłącznie do widoku.
-Brak wsparcia dla tymczasowych obiektów - Widoki nie mogą odnosić się do tabel tymczasowych (#TabelaTymczasowa lub @ZmiennaTabelaryczna).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Widok zmaterializowany

A

jest strukturą przechowującą dane fizycznie, w przeciwieństwie do standardowych widoków wirtualnych.
~~~

CREATE VIEW SalesSummary WITH SCHEMABINDING AS SELECT ProductID, SUM(SalesAmount) AS TotalSales FROM Sales GROUP BY ProductID;
—- LUB
CREATE MATERIALIZED VIEW tickets_view AS
SELECT ticket_no, passenger_name
FROM tickets
WITH DATA;

~~~

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Indeks klastrowany/grupowany

A

indeks jest obiektem bazy danych, który optymalizuje czas wykonywania zapytania do niej. Indeks klastrowany fizycznie sortuje dane wg kolumny, na której został założony (dane te wchodzą w skład indeksu). Wyszukiwanie odbywa się podobnie jak w przypadku encyklopedii: najpierw wyszukuje się hasła na liście słów kluczowych, a następnie lokalizuje strony danych, które zawierają wyszukiwane rekordy z danymi. Indeks klastrowany powstaje zazwyczaj przy okazji tworzenia klucza głównego tabeli.
~~~
CREATE CLUSTERED INDEX IDX_Pracownicy_Id ON Pracownicy(Id);
~~~

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Indeks nieklastrowany/niegrupowany

A

nie zawiera w swojej strukturze całych rekordów, a jedynie wszystkie wartości z kolumny indeksowanej. Na poziomie liści znajdują się wszystkie wartości z kolumny indeksowanej posortowane alfabetycznie. Na poziomach znajdujących się wyżej znajdują się pierwsze pozycje ze stron o jeden poziom niżej. Poziom liści oprócz wartości z kolumny indeksowanej zawiera odsyłacze bezpośrednio do rekordów w nieposortowanej strukturze tabeli.
~~~
CREATE NONCLUSTERED INDEX IX_NazwaIndeksu ON NazwaTabeli (NazwaKolumny);
~~~

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Indeks kolumnowy

A

zaawansowany mechanizm indeksowania danych w systemach baz danych, który przechowuje dane w formie kolumn zamiast tradycyjnego przechowywania wierszowego (row-based storage). Jest on szczególnie przydatny w analitycznych zapytaniach, takich jak te występujące w hurtowniach danych, gdzie głównym celem jest szybkie przetwarzanie dużych ilości danych i agregacje.
Korzyści indeksów kolumnowych:

-Szybsze zapytania analityczne - Indeksy kolumnowe są zoptymalizowane dla zapytań typu SELECT, szczególnie z operacjami agregacji, takich jak SUM, AVG, COUNT.
-Zmniejszenie rozmiaru danych - Dzięki kompresji kolumnowej dane zajmują mniej miejsca na dysku i w pamięci.
-Lżejsze operacje I/O - Mniejsze ilości danych są odczytywane z dysku, co zmniejsza obciążenie operacjami wejścia/wyjścia.
-Lepsza skalowalność - Indeksy kolumnowe umożliwiają przetwarzanie ogromnych wolumenów danych w sposób wydajny.

CREATE COLUMNSTORE INDEX IND_OrderProducts
ON OrderProducts (Id,OrderId,

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Indeks rzadki

A

ma wpisy tylko dla wybranych rekordów (np. pierwszego w bloku) i jest typowy dla indeksów nieklastrowanych. Jest mniej pamięciożerny, ale wolniejszy przy wyszukiwaniu.

CREATE INDEX IND_Shipments_ShippingCost
ON Shipments(ShippingCost)
WHERE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Indeks gęsty

A
  • ma wpis dla każdego rekordu tabeli i jest stosowany w indeksach klastrowanych. Jest szybki w wyszukiwaniu, ale bardziej obciąża pamięć.

CREATE INDEX IND_Customers_Id
ON Customers(Id);

20
Q

Jakie kolumny indeksujemy

A

kolumny, które służą do wyszukiwania danych,
kolumny, w których wartości są unikalne lub rzadko się powtarzają,
kolumny, w których chcemy wymusić unikalność wartości (także klucze główne),
kolumny, które są wykorzystywane do złączeń (klucze obce).

21
Q

Jakich kolumn nie indeksujemy

A

kolumn o dużych rozmiarach (w szczególności tzw. LOBów - ang. Large OBject),
kolumn o dużej powtarzalności wartości (np. kolumna Płeć),
kolumn nie wykorzystywanych w zapytaniach do wyszukiwania rekordów.

22
Q

Zalety i wady indeksów

A

Zalety indeksów:
przyspieszają wyszukiwanie danych,
przyspieszają zapytania wymagające sortowania,
pozwalają wymuszać unikalność kolumn.

Wady indeksów:
planowanie i utrzymanie indeksów bywa pracochłonne,
mogą spowodować spowolnienie wykonywania operacji wstawiania i modyfikacji
danych,
wymagają dodatkowego miejsca na dysku twardym.

23
Q

Klastrowanie

A

polega na grupowaniu obiektów (rekordów, wierszy, lub innych elementów) w zbiory, które są podobne według określonych kryteriów. Celem klastrowania jest odkrycie ukrytych wzorców, struktur lub relacji w danych przechowywanych w bazach danych, co umożliwia bardziej efektywną analizę i eksplorację informacji.

24
Q

Klastrowanie wewnątrzplikowe

A

polega na grupowianiu rekordów obok siebie wenątrz jednego pliku i umieszczaniu rekordów obok siebie z jednej tabeli.

25
Q

Klastrowanie miedzyplikowe

A

polega na umieszczaniu na stronie obok siebie rekordów pochodzących z więcej niż jednej tabeli i umieszczaniu na stronie obok siebie rekordów pochodzących z więcej niż jednego pliku.

26
Q

Partycjonowanie

A

proces dzielenia danych na mniejsze, zarządzalne jednostki, zwane partycjami. Partycjonowanie pozwala na zwiększenie efektywności operacji na dużych zbiorach danych, poprawę wydajności zapytań oraz łatwiejsze zarządzanie danymi.

27
Q

Zalety partycjnowania

A

-Lepsza wydajność zapytań - Dzięki partycjonowaniu, zapytania dotyczące małych zestawów danych (np. konkretnego zakresu dat) mogą być szybciej realizowane, ponieważ system bazodanowy może przetwarzać tylko odpowiednią partycję, a nie całą tabelę.
-Zwiększona skalowalność - W przypadku dużych baz danych partycjonowanie umożliwia rozłożenie danych na różnych serwerach, co poprawia wydajność systemu i umożliwia łatwiejsze zarządzanie ogromnymi zbiorami danych.
-Ułatwione zarządzanie danymi - Partycjonowanie pozwala na łatwiejszą archiwizację, usuwanie lub przenoszenie danych. Może to być szczególnie przydatne w sytuacjach, gdy dane są usuwane lub archiwizowane na podstawie określonych kryteriów (np. starsze dane mogą być przenoszone do mniej wydajnych magazynów).
-Poprawa równoważenia obciążenia - Możliwość rozdzielania danych między różne serwery czy dyski fizyczne poprawia wydajność i równoważy obciążenie.

28
Q

Wyzwania i ograniczenia partycjonowania

A

Złożoność zarządzania - Partycjonowanie wymaga odpowiedniego zaplanowania i zarządzania, aby zapewnić efektywność. Złe zaprojektowanie partycji może prowadzić do problemów z wydajnością lub zarządzaniem danymi.
Koszt operacji - Złożone zapytania, które wymagają przetwarzania wielu partycji, mogą być mniej wydajne niż zapytania działające na pojedynczych tabelach, ale skanują mniejszą ilość danych.
Złożoność migracji danych - Zmiana struktury partycji w dużych bazach danych lub migracja danych pomiędzy partycjami może być czasochłonna i wymagać zaawansowanego planowania.

29
Q

Transakcja

A

ciąg operacji wykonywanych na bazie, które to operacje są niepodzielne i muszą być wykonane w całości.

30
Q

Poziomy izolacji transkacji

A

READ UNCOMMITTED, która nie zakłada blok i transakcja jest w stanie odczytać zmodyfikowane dane, ale niezapisane jeszcze fizycznie
READ COMMITTED, która nie pozwala transakcji na odczyt niezapisanych danych
REPEATABLE READ, która podaje te same dane transakcji wykonującej powtarzające się zapytania
SERIALIZABLE, poziom spełniający postulaty ACID (I - isolation: transakcja nic nie wie o innych transakcjach i nie bierze ich pod uwagę, podobnie jej czynności nie są widoczne dla innych transakcji, aż do zakończenia jej działania), zakłada największą ilość blokad praktycznie uniemożliwiając jednoczesny dostęp kilku transakcji do tych samych zasobów
Niektóre systemy wprowadzają także dodatkowe poziomy izolacji w celu zwiększenia wydajności (np. SNAPSHOT w MSSQL Server 2005).

31
Q

Zamki

A

Zamek typu X (Exclusive Lock)

**Zamek wyłączny **(ang. Exclusive Lock) oznacza, że dany zasób (np. rekord w bazie danych) jest zablokowany do wyłącznego użytku przez jedną transakcję lub proces.
Oznacza to, że żadna inna transakcja nie może jednocześnie uzyskać dostępu do tego zasobu — ani w trybie odczytu, ani zapisu.
Zamek typu X blokuje dostęp do danych przez inne procesy do momentu, kiedy transakcja zwolni zamek, co zapewnia integralność operacji zapisu na tym zasobie.
Zamek typu S (Shared Lock)

Zamek współdzielony (ang. Shared Lock) pozwala na równoczesny dostęp do zasobu, ale tylko w trybie odczytu. Oznacza to, że wiele transakcji może jednocześnie odczytywać ten sam zasób, ale nie mogą wprowadzać do niego zmian.
Zamek typu S blokuje operacje zapisu na danych przez inne transakcje, ale nie blokuje operacji odczytu przez innych użytkowników.
Zamek typu S jest stosowany w przypadkach, gdy dane muszą zostać tylko odczytane, a nie modyfikowane, co pozwala na współbieżny dostęp do tych samych danych.

32
Q

Ziarnistość zakładania zamków

A

Ziarnistość zakładania zamków odnosi się do poziomu, na którym zamek jest stosowany w systemie zarządzania bazą danych lub systemie współbieżnym.

33
Q

TRIGGER

A

specjalna procedura składowana, która jest automatycznie wykonywana (wyzwalana) w odpowiedzi na określone zdarzenia związane z danymi w bazie danych. Wyzwalacze są zazwyczaj powiązane z operacjami na danych, takimi jak INSERT, UPDATE lub DELETE, i pozwalają na automatyczne reagowanie na te zmiany, takie jak logowanie, walidacja danych, audyt czy też wykonywanie dodatkowych operacji w bazie.

CREATE TRIGGER Trg_AfterInsert
ON Produkty
AFTER INSERT
AS
BEGIN
    -- Przykładowa akcja: wstawienie logu po dodaniu nowego rekordu do tabeli Produkty
    INSERT INTO Logi (Operacja, Data, Opis)
    SELECT 'INSERT', GETDATE(), 'Dodano nowy produkt'
    FROM INSERTED;
END;
34
Q

Kursory

A

mechanizm umożliwiający iterację (przechodzenie) po zbiorach danych w SQL Server. Zamiast przetwarzać całą tabelę w jednym zapytaniu, kursor pozwala na przetwarzanie rekordów pojedynczo. Kursory są przydatne, gdy trzeba wykonać skomplikowane operacje, które nie mogą być zrealizowane przez jedno zapytanie, lub gdy zachodzi potrzeba iteracji po zestawie wyników w sposób bardziej kontrolowany.

35
Q

Lag,Lead

A

Funkcje okna - uzywają OVER(ORDER BY)
LAG- poprzedni wiersz
Lead- nastepny wiersz

36
Q

sql injection

A

SQL Injection to atak na bazę danych przy użyciu nieprawidłowo napisanej aplikacji, która nie sprawdza (lub sprawdza niedostatecznie dobrze) dane wprowadzane w aplikacji przez użytkownika. Atakujący stosuje kod SQL, który wykona w bazie niedozwoloną akcję. Atakujący może uzyskać nieuprawniony dostęp do zasobów bazy danych lub nawet systemowych.
Sposoby ochrony:

Używanie konta o minimalnych uprawnieniach
Kontrolowanie danych wprowadzanych przez użytkowników i odrzucanie tych nieprawidłowych oraz usuwanie znaków pochodzących z SQL
Brak wyświetlania domyślnych komunikatów o błędach
Używanie procedur składowanych z parametrami
Unikanie konkatencji do tworzenia zapytań SQL w kodzie

37
Q

Przyrost pliku danych

A

Przyrost pliku danych to proces rozszerzania pojemności pliku danych (o zadany procent), w przypadku, gdy dotychczasowa jego wielkość została już osiągnięta. Proces powiększania rozmiaru

38
Q

Obiektowe bazy danych

A

Obiektowa baza danych - jest zbiorem obiektów, których zachowanie się i stan oraz związki są określone zgodnie z obiektowym modelem danych.

Zalety:

-współpraca z aplikacjami opartymi na obiektowych językach programowania
-łatwy dostęp i obsługa danych z punktu widzenia programisty
-bardziej “naturalny” sposób składowania danych pozwala na szybkie i łatwe tworzenie aplikacji obiektowych
-tworzenie dowolnych typów danych i złożonych struktur
-modelowanie złożonych zależności pomiędzy obiektami przy zachowaniu dużej wydajności
-zastosowanie w systemach rozproszonych
-dobra skalowalność (system działa szybko nawet przy dużej ilości danych)

Wady:

-większa zależność danych od aplikacji (w porównaniu do relacyjnych baz danych) - problem współużytkowania danych przez różne aplikacje (rozwiązanie nieuniwersalne)
-brak prostoty obsługi przy bardziej złożonych strukturach danych
-problem synchronizacji danych (tylko w niektórych przypadkach)
-produkt nowy, niedojrzały (w porównaniu do relacyjnych baz danych), aczkolwiek dobrze rozwinięty; brak dominacji na rynku i wiarygodności producentów

39
Q

Grafowa baza danych

A

Grafowa baza danych - baza danych wykorzystująca struktury grafów z węzłami, krawędziami i własnościami do przedstawiania i przechowywania danych do obsługi zapytań.

Struktury w grafowej bazie danych:

Węzeł - zwykle przechowujemy w nich informacje o encjach.
Relacja - łączą ze sobą węzły, tworząc strukturę grafu. Zawsze mają swój typ, kierunek, a także węzeł początkowy i końcowy. Mogą tworzyć pętle wtedy, gdy węzeł początkowy jest węzłem końcowym. Trzeba podkreślić zasadniczą różnicę, pomiędzy pojęciem relacji w modelach relacyjnym i grafowym. W modelu relacyjnym, relacja to dwuwymiarowa tabela, która operuje na prostych typach danych, gdzie każda relacja składa się z atrybutów (kolumn) i krotek (wierszy). W modelu grafowym, relacja to swego rodzaju sposób powiązania encji ze światem. Tak jak w grafie, krawędź to uporządkowana para wierzchołków, tak w modelu grafowym, relacja może zachodzić tylko pomiędzy encjami. Relacja musi łączyć parę encji, czyli nigdy nie może być „dyndająca”.
Własność - zarówno węzły, jak i relacje są kontenerami na własności, które właściwie są parami klucz-wartość. Węzły mogą posiadać jedną lub więcej własności, podobnie do tabel w modelu relacyjnym, które mogą mieć jeden lub więcej atrybutów. Relacje także mogą posiadać własności, które określają moc, wagę lub jakość danej relacji. Dzięki ich obecności, możliwe jest dokładniejsze określenie szukanych wzorców, podczas zadawania pytań i trawersowania grafu.
Etykieta - są nadawane węzłom i stosowane do indeksowania. Etykiety zostały zaprojektowane po to, by umożliwić szybkie i efektywne tworzenie podgrafów.

40
Q

Zalety i wady bazy grafowej

A

Zalety grafowej bazy danych:

łatwe zmiany struktury,
elastyczność,
skalowalność,
wydajność,
łatwo modelowania,
zastosowanie w bazach zorientowanych obiektowo, również w przedstawianiu złożonych sieci
Wady grafowej bazy danych:

Nieefektywne skalowanie poziome,
Nieefektywne aktualizowanie wszystkich węzłów,
Nie istnieje standardowy język zapytań. Język zależy od używanej platformy.
Grafy są nieodpowiednie dla systemów opartych na transakcjach.
Baza użytkowników jest niewielka, co utrudnia znalezienie wsparcia w przypadku napotkania problemu.

41
Q

Bazy danych hierarchiczne

A

Hierarchiczna baza danych
W hierarchicznym modelu bazy danych dane ułożone są w strukturę o kształcie odwróconego drzewa. Każdy rekord związany jest z dokładnie jednym rekordem nadrzędnym (rodzicem). Dane grupowane są w formie kolejnych poziomów drzewa, począwszy od korzenia (zbioru podstawowego) poprzez rozgałęzienia (kolejne podzbiory) aż do liści. Wyszukiwanie w takim modelu polega na zagłębianiu się w strukturę drzewa poprzez kolejne zbiory danych. Przykładem hierarchicznej organizacji danych jest system plików w komputerze (dyski, katalogi, podkatalogi i pliki).

Zalety:

szybkie wyszukiwanie danych danej klasy, poprzez ścisłe powiązania pomiędzy tabelami (nadrzędna-podrzędna)
w przypadku usnięcia rekordu, usunięci zostają też wszyscy jego potomkowie (rekordy z niego wychodzące) - integralność odwołań
Wady:

brak możliwości budowania relacji pomiędzy rekordami różnych drzew
tworzenie nadmiarowych danych
problemy z dodawaniem rekordów do tabel podrzędnych (jeśli nie ma odpowiedniego wpisu w tabeli-rodzicu)

42
Q

Hurtowania danych

A

Hurtownia danych to specjalny rodzaj bazy danych, która umożliwia raportowanie i analizowanie zawartych w niej danych. Składa się ona z tabel zorganizowanych w zestawy do analizy (data mart). W skład jej struktury wchodzą:

tabele faktów (analiza tych danych jest właśnie celem biznesowym)
tabele wymiarów (określają kryteria analizy)
tabele pomocnicze (wykorzystywane przy imporcie danych do tabel faktów i wymiarów)
Pojedynczy wymiar może mieć budowę opartą o poniższe struktury:

strukturę gwiazdy
strukturę płatka śniegu
hierarchię rodzic-dziecko

43
Q

struktura gwiazdy i płatka śniegu

A

Mówimy, że wymiar ma strukturę gwiazdy, jeżeli jego dane są przechowywane w jednej tabeli. Nazwa gwiazda bierze się z graficznej ilustracji pojemnika data mart, którego wszystkie wymiary mają strukturę gwiazdy - układ tabel na diagramie przypomina gwiazdę. Przykładem typowego wymiaru o strukturze gwiazdy jest zapisany w jednej tabeli wymiar Czas, który jest jednym z najczęściej spotykanych wymiarów.

Z kolei strukturę płatka śniegu posiada wymiar, którego hierarchia jest stworzona z kilku tabel. Podobnie, jak w przypadku gwiazdy, nazwa bierze się od układu tabel na diagramie pojemnika data mart, którego wymiary mają strukturę płatka śniegu. Przykład: jeśli wymiar Produkt jest zbudowany przy użyciu dwóch tabel - Kategoria i Produkt - które są ze sobą powiązane związkiem, mówimy, że wymiar ma strukturę płatka śniegu.

44
Q

Hierarchia dziecko-rodzic

A

Hierarchia rodzic-dziecko jest wykorzystana do stworzenia wymiarów, które mają za zadanie obrazowanie zależności hierarchiczne między członkami wymiaru (rekordami w tabeli wymiaru). Przykładem może być wymiar Pracownik, którego struktura oparta jest o hierarchię firmy (każdy pracownik może mieć szefa i podwładnych). Implementacją takiego wymiaru jest pojedyncza tabela i związek unarny (związek, w którym uczestniczą dwie kolumny jednej tabeli).

45
Q

ETL (Extract Transform Load)

A

ETL (Extract Transform Load) - to narzędzia do transferu danych. Wykorzystuje się je do importu danych do hurtowni danych.
Etapy importu:

Import danych do tabel wymiarów
Import danych do tabeli przejściowej. Służy ona do wypełnienia tabeli faktów.
Import danych do tabeli faktów na podstawie danych z tabeli przejściowej i wymiarów.

46
Q

OLAP i OLTP

A

OLAP (On-line Analytical Processing) - charakteryzuje się natomiast stosunkowo nielicznymi, ale za to złożonymi transakcjami odczytu. Miarą efektywności jest czas odpowiedzi. Powszechnie wykorzystuje się go w technikach związanych z Data Miningiem.
OLTP (On-line Transaction Processing) - charakteryzuje się dużą ilością prostych transakcji zapisu i odczytu. Główny nacisk kładziony jest na zachowanie integralności danych w środowisku wieloostępowym oraz na efektywność mierzoną liczbą transakcji w danej jednostce czasu

47
Q

Poziomy izolacji dokładniejsze

A

READ UNCOMMITTED – możliwy brudny odczyt, odczyt nie dający się powtórzyć i odczyt widmo. Problemem tutaj jest to, że chcesz wykonać jedną transakcje na jakiś danych, ale te dane w między czasie zostały już uprzednio zmodyfikowane przez inną.
READ COMMITTED – niemożliwy brudny odczyt, możliwy odczyt niedający się powtórzyć i odczyt widmo. W tym przypadku nie możesz modyfikować danych, na których założona jest już inna transakcja. Jednak wciąż możliwy jest ich odczyt, gdy są one zmieniane przez drugą transakcje, co może prowadzić do braku spójności.
REPEATABLE READ – niemożliwy brudny odczyt i odczyt niedający się powtórzyć, możliwy odczyt widmo. Domyślny poziom dla większości baz danych. Jest on bardzo podobny do poprzedniej opcji, z tą różnicą, że transakcja odczytuje dane sprzed jej rozpoczęcia, co ułatwia zachowanie spójności.
SERIALIZABLE – żaden z niepożądanych odczytów nie jest możliwy. W praktyce oznacza to zablokowanie dostępu do całej tabeli. Niemożliwa jest modyfikacja i odczyt aż do momentu zakończenia transakcji.