Co to jest baza danych? Baza danych to logicznie uporządkowany zbiór danych o strukturze wynikającej z przyjętego modelu, posiada określone uwarunkowa...
19 downloads
42 Views
46KB Size
Co to jest baza danych? Baza danych to logicznie uporządkowany zbiór danych o strukturze wynikającej z przyjętego modelu, posiada określone uwarunkowania, związki i schemat. Są to powiązane i przechowywane razem rekordy. Plik jest zbiorem rekordów. Baza danych posiada zasadniczą właściwość - zgromadzone dane muszą być utrwalone poza czas życia aplikacji do której zostały wprowadzone. Trwałość danych jest podstawowym wymogiem dla realizacji baz danych. Wyjaśnij pojęcia: dane, struktury danych, krotka, encja, atrybut, typ danych - dane to zapis/reprezentacja faktów - zapis danych nie posiada kontekstu czy znaczenia (np. wartości „40”, „czerwony”) - struktura danych to sposób uporządkowania informacji w komputerze, na strukturach opierają się algorytmy - struktura uporządkowania danych w bazie definiowana jest przez model danych, przykładowe struktury danych to: tablica, lista, stos, kolejka, drzewo, graf, rekord - krotka reprezentuje uporządkowaną listę elementów, zapisywana jest z użyciem nawiasów (), przecinek rozdziela poszczególne elementy np. ('Baza', 'danych', 'projekt'), w teorii zbiorów krotka może mieć charakter funkcji wiążącej indeks z wartością - encja to obiekt konkretny, wyróżnialny, mający określoną formę lub własności - w bazach danych encja reprezentowana jest przez dane, zgodnie z przyjętą strukturą/modelem - atrybut, to pewna cecha (własność) encji najczęściej reprezentowana przez dane - typ danych to forma reprezentacji danych w komputerze, wszystkie typy danych zbudowane są z bitów/bajtów - różne postaci danych można odwzorować na typy składające się z bitów/bajtów, np. varchar, integer, date, char Co to są związki w bazach danych? Związki w bazach danych zachodzą pomiędzy poszczególnymi encjami. Podstawowe rodzaje związków to jeden-do-jednego, jeden-do-wielu, wiele-do-jednego, wiele-do-wielu. Co to jest model danych? Model danych z punktu widzenia architektury to zbiór podstawowych zasad posługiwania się danymi. Określają one: - strukturę danych (definicja danych) - operacje na danych (operowanie danymi) - poprawne stany bazy danych (integralność danych) Wyróżniamy trzy generacje modeli danych: - proste (struktura rekordów - pliki - operacje) - klasyczne (hierarchiczne, sieciowe, relacyjne) - semantyczne (znaczenie informacji - model obiektowy) Z punktu widzenia projektu model danych to zintegrowany zbiór wymagań dotyczących danych dla określonej aplikacji - jest typową częścią specyfikacji systemu informacyjnego Wymień poznane modele danych i scharakteryzuj ich istotę. model płaski, model prosty modele dynamiczne: hierarchiczny, sieciowy, relacyjny, obiektowy, obiektowo-relacyjny
hierarchiczny model danych - podstawą jest struktura danych określana jako drzewo - począwszy od węzła podstawowego, będącego korzeniem drzewa poprzez rozgałęzienia dochodzimy do ostatnich zbiorów danych - liści. System hierarchiczny jest często przedstawiany poprzez związek „rodzic-potomek”. Rodzic posiada pewną liczbę potomków, potomkowie ci mogą mieć swoich potomków itd. Dla tego modelu charakterystyczne są związki wiele-do-jednego i jeden-do-wielu. Zastosowanie: foldery plików, XML warunki integralności modelu hierarchicznego: - każdy rekord (z wyjątkiem korzenia drzewa) musi posiadać własnego, jednego rodzica - jeżeli dany rekord posiada więcej rodziców niż jeden musi być skopiowany dla każdego rodzica oddzielnie tak, aby prawdziwa była powyższa zasada, - jeżeli usunięty zostaje dany rekord oznacza to, że usunięte zostają również wszystkie wywodzące się z niego rekordy – potomkowie (węzły i liście) sieciowy model danych - w tym modelu możliwe jest wykorzystanie wszystkich typów związków encji, obecnie jest rzadko stosowany, ponieważ w dużych bazach danych, większa liczba wskaźników znacznie ograniczyła szybkość wyszukiwania rekordów - model sieciowy został zastąpiony przez nowy model - relacyjny. relacyjny model danych - dane grupowane są w relacje, które reprezentowane są przez tablice. Relacje są pewnym zbiorem rekordów o identycznej strukturzewewnętrznie powiązanych za pomocą związków zachodzących pomiędzy danymi. Relacje zgrupowane są w tzw. schematy bazy danych. Relacją może być tabela zawierająca dane pracowników, zaś schemat może zawierać wszystkie dane firmy. Model relacyjny porównaniu do innych modeli danych ułatwia wprowadzanie zmian, zmniejsza możliwość pomyłek, ale dzieje się to kosztem wydajności warunki integralności modelu relacyjnego: - integralność encji - każda encja reprezentowana przez krotkę jest unikalna - integralność odwołań (nie mogą istnieć niedopasowane wartości klucza obcego) - integralność referencyjna - dziedzina w danej tabeli jest określana przez dziedzinę (zbior użytych wartości) innej tabeli włącznie z wartością NULL Wyjaśnij pojęcie system zarządzania baz danych DBMS. Z jakich elementów się składa? System zarządzania BD oprogramowanie (ang. Data Base Management System) zarządzające dostępem i wykorzystaniem bazy danych. Kontroluje ono wszelkie operacje na danych, sprawdza zgodność z modelem (schematem, relacjami, warunkami), przyjętymi zasadami bezpieczeństwa, itp. Możemy je podzielić na trzy funkcjonalne podgrupy programów: - rdzeń (realizacja podstawowych funkcji) - interfejs (język pośredniczący między rdzeniem a innymi programami) - narzędzia (projektowanie graficzne, profilowanie zapytań) Wyjaśnij pojęcie system zarządzania baz danych. Z jakich elementów się składa? System baz danych = baza danych + system zarządzania bazą danych: to struktura organizacyjne zbioru danych, która określa podział zbioru na stałe elementy zwane rekordami, oraz system łączenia, dopisywania i wyszukiwania danych - składa się z trzech elementów: - warstwy użytkownika - jak dane widziane przez użytkownika i aplikacje - warstwy koncepcyjnej - logiczny widok danych - warstwy fizycznej - sposób przechowywania i dostępu do danych
Co to jest normalizacja danych i do czego ona służy? Jest to proces mający na celu eliminację powtarzających się danych w relacyjnej bazie danych. Główna idea polega na trzymaniu danych w jednym miejscu, a w razie potrzeby linkowania do danych. Taki sposób tworzenia bazy danych zwiększa bezpieczeństwo danych i zmniejsza ryzyko powstania niespójności. Co to są funkcje w bazach danych? Jak się je tworzy? Funkcje wywołuje się poleceniem SELECT nazwafunkcji(parametry). Aby stworzyć własną funkcję używamy polecenia CREATE FUNCTION. CREATE [ OR REPLACE ] FUNCTION name ( [ [ argmode ] [ argname ] argtype [, ...] ] ) [ RETURNS rettype ] { LANGUAGE langname | IMMUTABLE | STABLE | VOLATILE | CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT | [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER | COST execution_cost | ROWS result_rows | SET configuration_parameter { TO value | = value | FROM CURRENT } | AS 'definition ' | AS 'obj_file ', 'link_symbol ' } ... [ WITH ( attribute [, ...] ) ] Co to są funkcje agregacji? Podaj trzy przykłady takich funkcji. Za pomocą nich możemy badać różne statystyki dla zbiorów wartości. Przykłady: Count, Min, Max, Avg. Co to są wyzwalacze w bazach danych? Jak się je tworzy? Wyzwalacze (TRIGGER) są zdarzeniami, które można przypisać w określonym miejscu do tabeli. W przypadku wystąpienia warunku określonego do wyzwolenia triggera wywołana zostanie określona funkcja. Przykład: CREATE TRIGGER name { BEFORE | AFTER } { event [ OR ... ] } ON table [ FOR [ EACH ] { ROW |STATEMENT }] EXECUTE PROCEDURE funcname( arguments ) Co to są widoki i do czego służą? Widok to logiczna struktura, wirtualna tabela tworzona przez serwer baz danych w czasie rzeczywistym, określona przez zapytanie SQL. Umożliwia dostęp do podzbioru kolumn i wierszy tabel lub tabeli, oraz utrwalenie treści zapytań. Przy pobieraniu wyników z bazy danych do widoku należy odwoływać się identycznie jak w przypadku tabeli. Modyfikacja widoku: ALTER VIEW.
Przykład widoku: CREATE VIEW pokaz_wypozyczenia (imie, nazwisko,tytul,data_wypozyczenia,data_zwrotu) AS SELECT imie,nazwisko,tytul,data_wyp, data_z FROM osoba,wypozyczenie,plyta WHERE osoba.id = wypozyczenie.kto and plyta.numer=wypozyczenie.co; Zasady tworzenia interfejsu użytkownika w bazach danych. - odseparowanie końcowego użytkownika od znajomości języka SQL - ograniczenie uprawnień użytkownika wewnątrz bazy danych - wstępna walidacja wprowadzanych danych - dostarczenie ergonomicznego narzędzia do wydajnego wprowadzania danych - prezentacja wyników: - powinien zapewnić możliwie intuicyjną i wygodną pracę z aplikacją - powinien być dopasowany do potrzeb bieżącej aplikacji - powinien zabezpieczyć bazę danych przed błędami użytkownika - udostępniać przejrzyste formularze do wprowadzania danych Co to jest język SQL? SQL to strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych. Język SQL jest językiem deklaratywnym. Decyzję o sposobie przechowywania i pobrania danych pozostawia się systemowi zarządzania bazą danych (DBMS) Wymień grupy składni języka SQL. Podaj zastosowania. Użycie SQL, zgodnie z jego nazwą, polega na zadawaniu zapytań do bazy danych. Zapytania można zaliczyć do jednego z czterech głównych podzbiorów: SQL DML (ang. Data Manipulation Language – „język manipulacji danymi”) służy do wykonywania operacji na danych – do ich umieszczania w bazie, kasowania, przeglądania oraz dokonywania zmian. Najważniejsze polecenia z tego zbioru to: INSERT UPDATE DELETE SQL DDL (ang. Data Definition Language – „język definicji danych”) służy do operowania na strukturach, w których dane są przechowywane – czyli np. dodawać, zmieniać i kasować tabele lub bazy. Najważniejsze polecenia tej grupy to: CREATE DROP ALTER SQL DCL (ang. Data Control Language – „język kontroli nad danymi”) SQL DQL (ang. Data Query Language – „język definiowania zapytań”) to język formułowania zapytań do bazy danych. W zakres tego języka wchodzi jedno polecenie - SELECT Podaj sposoby użycia języka SQL. Scharakteryzuj jeden z nich. SQL interakcyjny (autonomiczny) wykorzystywany jest przez użytkowników w celu bezpośredniego pobierania lub wprowadzania informacji do bazy. Przykładem może być zapytanie prowadzące do uzyskania zestawienia aktywności kont w miesiącu. Wynik jest wówczas przekazywany na ekran, z ewentualną opcją przekierowania go do pliku lubdrukarki.
Statyczny kod SQL (Static SQL) nie ulega zmianom i pisany jest wraz z całą aplikacją, podczas której pracy jest wykorzystywany. Nie ulega zmianom w sensie zachowania niezmiennej treści instrukcji, które jednak zawierać mogą odwołania do zmiennych lub parametrów przekazujących wartości z lub do aplikacji. Statyczny SQL występuje w dwóch odmianach. - Embedded SQL oznacza włączenie kodu SQL do kodu źródłowego innego języka. Większość aplikacji pisana jest w takich językach jak C++ czyJava, jedynie odwołania do bazy danych realizowane są w SQL. W tej odmianie statycznego SQL-a do przenoszenia wartości wykorzystywane są zmienne. - Język modułów. W tym podejściu moduły SQL łączone są z modułami kodu w innym języku. Moduły kodu SQL przenoszą wartości do i z parametrów, podobnie jak to się dzieje przy wywoływaniu podprogramów w większości języków proceduralnych. Jest to pierwotne podejście, zaproponowane w standardzie SQL. Embedded SQL został do oficjalnej specyfikacji włączony nieco później. Dynamiczny kod SQL (Dynamic SQL) generowany jest w trakcie pracy aplikacji. Wykorzystuje się go w miejsce podejścia statycznego, jeżeli w chwili pisania aplikacji nie jest możliwe określenie treści potrzebnych zapytań – powstaje ona w oparciu o decyzje użytkownika. Tę formę SQL generują przede wszystkim takie narzędzia jak graficzne języki zapytań. Utworzenie odpowiedniego zapytania jest tu odpowiedzią na działaniaużytkownika. XML a bazy danych. XML jest przykładem hierarchicznego modelu danych. Każdemu elementowi można przypisać pewne atrybuty. W elemencie definiowane są atrybuty. Każdy element musi posiadać znacznik 'zamykający' np. Mercedes . W cudzysłowie zapisujemy wartość atrybutów. Wartość elementu znajduje się między znacznikami. Cele XML: - umożliwia tworzenie dokumentów o strukturze wyznaczanej przez definiowane znaczniki - prosty i szybki do utworzenia, czytelny dla twórcy i łatwo interpretowany przez program - wspomaga różne typy aplikacji - liczb cech opcjonalnych XML powinna być minimalna - projektowanie dokumentu XML powinno umożliwiać weryfikację jego poprawności W wielu systemach zarządzania BD można tworzyć struktury, które będą obsługiwały atrybuty typu XML. Dzięki temu dokument XML może być pamiętany jako wartość jednego z wielu atrybutów danego rekordu Co to jest DTD. Jakie ma wady? DTD to metoda definicji schematu dokumentu XML. Obsługa zawiera definicje schematu i wywołanie schematu. Wady: - brak referencji, grupowania i opisów elementów - brak typów danych innych niż tekstowy, nie można definiować własnych typów - nie można zdefiniować kolejności i liczebności występowania elementów - niezgodność ze specyfikacją XML
Co to są transakcje? Jakie reguły powinny spełniać? Jak obsługuje się transakcje w bazach danych? Transakcje to zbiór operacji na bazie danych, które stanowią w istocie pewną całość i jako takie powinny być wykonane wszystkie lub żadne z nich. Powinny być spełnione reguły ACID(Atomowości, spójności, izolacji i trwałości). Co to jest poziom izolacji transakcji, wymień znane poziomy i krótko scharakteryzuj. Które z nich zaimplementowano w PostgreSQL? Poziom izolacji transakcji (transaction isolation levels) to stopień uniezależnienia się transakcji od siebie nawzajem. Im wyższy poziom izolacji tym większa pewność, że podczas wykonywania jednej transakcji zmiany dokonywane w tym samym czasie przez inne transakcje nie wpłyną na nią. Wyróżniamy obecnie 4 poziomy: - Odczyt niezatwierdzonych, - Odczyt zatwierdzonych, - Odczyt powtarzalny, - Szeregowalność, Odczyt niezatwierdzonych: najniższy poziom izolacji, jedna transakcja może odczytywać wiersze, na których działają inne transakcje Odczyt zatwierdzonych: podstawowa izolacja, w której transakcja zawsze widzi tylko dane zatwierdzone. Odczyt powtarzalny: przy tym poziomie izolacji transakcja w dalszym ciągu widzi zmiany zatwierdzane już po jej rozpoczęciu przez inne transakcje, ale ma zapewnioną powtarzalność odczytów, czyli nie dojdzie do sytuacji, w której czytając te same dane kilka razy otrzyma inne wyniki. Transakcja nie może czytać, ani zapisywać, na wierszach odczytywanych, bądź zapisywanych w innej transakcji. Szeregowalność: pełna izolacja, wyniki współbieżnie realizowanych zapytań muszą być identyczne z wynikami tych samych zapytań realizowanych szeregowo W jaki sposób przydziela się i odbiera uprawnienia w bazach danych? Logujemy się na konto administratora, następnie wpisujemy: grant select on nazwa_tabeli to nazwa_uzytkownika; - przeglądanie grant insert on nazwa_tabeli to nazwa_uzytownika; - dodawanie danych do tabeli Do usuwanie uprawnień służy komenda REVOKE. W jaki sposób można dokonywać blokad w bazach danych i po co się je stosuje? Blokady stanowią mechanizm strzegący integralności danych w sytuacji wielodostępu, poprzez zapewnienie określonemu klientowi wyłączności dostępu do modyfikowanych przez niego danych, gdy jest to niezbędne aby zapobiec błędom które mogłyby wyniknąć z ,,przemieszania'' modyfikacji danych wykonywanych przez różnych klientów. Blokady stosowane są zarówno do struktur danych widocznych dla użytkownika (tabele, wiersze), jak i do wewnętrznych struktur danych systemu. Co to są postacie normalne relacji w bazie danych? Jakich zależności dotyczą? Postać relacji w bazie danych, w której nie występuje redundancja(nadmiarowość), czyli powtarzanie się tych samych informacji. Doprowadzeniu relacji do postaci normalnej służy normalizacja bazy danych. Charakterystyka:
Relacja jest w pierwszej postaci normalnej, jeśli: opisuje jeden obiekt, wartości atrybutów są elementarne, nie zawiera kolekcji (powtarzających się grup informacji), posiada klucz główny, kolejność wierszy może być dowolna. Relacja jest w drugiej postaci normalnej wtedy i tylko wtedy, gdy jest w I postaci normalnej i każda kolumna zależy funkcyjnie od całego klucza głównego (a nie np. od części klucza). Relacja jest w trzeciej postaci normalnej wtedy i tylko wtedy, gdy tabela jest w 2NF oraz gdy wszystkie pola niebędące polami klucza głównego są od niego zależne bezpośrednio. Czwarta i piąta postać normalna znajduje zastosowanie tylko w rozważaniach teoretycznych. Wymień operatory w algebrze relacyjnej i krótko je scharakteryzuj. Operatory: - wybór działa na relacji powodując generację nowej relacji zawierającej te krotki relacji R, które spełniają zadany warunek. np. WHERE id=3 - rzut jest również operatorem działającym na jednej relacji. Tworzy nową relację, która zawiera wybrane atrybuty relacji początkowej. Jest szczególnie przydatny wówczas, gdy konieczna jest generacja tylko wybranych danych z tabeli np. FROM klient, - unia (suma) jest operatorem dwuargumentowym działającym na zgodnych relacjach co do struktury, wynikiem działania tego operatora jest powstanie nowej relacji 3 składającej się ze wszystkich krotek relacji wejściowych 1 i 2 przecięcie (część wspólna) działa na dwóch zgodnych strukturalnie relacjach, generuje nową relację 3 zawierającą krotki występujące zarówno w 1 jak i w 2 relacji - różnica generuje nową relację na podstawie relacji 1 i 2, taką że wszystkie jej wiersze występują w relacji 1, a nie występują w relacji 2, dla operacji 1-2 - iloczyn kartezjański jest operatorem dwuargumentowym, generujący nową relację 3 na podstawie wszystkich możliwych kombinacji dziedzin relacji 1 i 2, - iloraz jest odwrotnością iloczynu, redukcja polega na tym, że w wynikowej relacji 1 są zawarte atrybuty z relacji 3, a nie ma w wybranych wierszach atrybutów występujące w 2 - złączenie (join) generujący nową relację 3 na podstawie dwóch relacji wejściowych 1 i 2, nowa relacja 3 powstaje według zasady zadanej zgodności atrybutów poszczególnych relacji 1 i 2, jest to więc operacja iloczynu z zadanym warunkiem wyboru Podstawowe metody dostępu do danych z poziomu aplikacji. 1. logowanie 2. dostęp dany przez administratora bazy