Ograniczenia modelu relacyjnego. Rodzaje kluczy w relacyjnych bazach danych

Tworząc schematy baz danych, możemy korzystać z narzucanych przez model relacyjny ograniczeń, aby system baz danych "pilnował nas" podczas pracy z przechowywanymi w bazie danymi.

Ograniczenia modelu relacyjnego możemy podzielić na trzy grupy:

  1. ograniczenia oparte na modelu danych, wynikające wprost z założeń modelu relacyjnego,
  2. ograniczenia oparte na schemacie (ograniczenia bezpośrednie), wynikające z zaprojektowanego schematu danych,
  3. ograniczenia oparte na aplikacjach (ograniczenia semantyczne / reguły biznesowe), wynikające z założeń, na podstawie których projektuje się schemat bazy danych; ograniczenia te nie mogą być zaprogramowane w bazie danych (lub jest to bardzo trudne do zaimplementowania), przez co są wyrażane w projektowanej aplikacji bazodanowej.
Czytaj dalej

Ćwiczenia w kwerendach wprowadzających/wstawiających

Bazując na bazie testowej Sakila, wykonaj następujące ćwiczenia. Pod listą zadań znajduje się przypomnienie składni polecenia INSERT INTO.

  1. Stworzyć kwerendę wprowadzającą do tabeli actor następujące dane.
polewartość
actor_id201
first_nameAndrew
last_nameMcConaughey
last_update2020-10-21 14:12:23
Dane do wprowadzenia do tabeli actor.

2. Stworzyć kwerendę dodającą do tabeli film_actor następujące dane. Nieokreślone dane pozostawić domyślne.

actor_idfilm_id
2011
2012
2013
Dane do wprowadzenia do tabeli film_actor.

3. Utworzyć tabelę actor_copy zgodną z definicją tabeli actor.

4. Utworzyć zapytanie wykonujące kopię danych z tabeli actor do tabeli actor_copy.

Czytaj dalej

SQL DQL - ćwiczenia w zapytaniach, funkcjach agregujących i złączeniach

Bazując na bazie testowej Sakila, wykonaj następujące ćwiczenia.

Lista 1: zapytania na jednej tabeli

  1. Podaj tytuły, opisy, czas wypożyczenia, koszt wypożyczenia za dzień i całkowity koszt wypożyczenia (jako iloczyn czasu wypożyczenia i jego kosztu) dla każdego filmu. Przyjmij, że pole rental_rate zawiera koszt wypożyczenia za dzień (według dokumentacji bazy jest to koszt wypożyczenia na tyle dni, ile zapisano w polu rental_duration).
    • Wersja zgodna z dokumentacją. Podaj tytuły, opisy, czas wypożyczenia oraz koszt wypożyczenia za dzień (jako iloraz kosztu wypożyczenia na przewidzianą liczbę dni) dla każdego filmu.
  2. Ile jest unikalnych nazwisk aktorów? Wypisz je w kolejności alfabetycznej.
  3. Wypisz wszystkie rodzaje ratingów filmów (każdy rating jednokrotnie).
  4. Wypisz tytuły, opisy, ratingi i długość filmów, które trwają 3 godziny lub dłużej.
  5. Wypisz wszystkie informacje z tabeli customers o tych klientach, którzy są nieaktywni albo ich nazwisko kończy się na M.
  6. Wypisz wszystkie kategorie, których identyfikator jest większy niż 4, a których nazwa zaczyna się na C, S lub T. Użyj klauzuli WHERE.
  7. Wykonaj powyższe ćwiczenie, używając operatora IN.
    Uwaga. Takie zapytanie da się wykonać tylko w systemie baz danych Oracle. Używa się wówczas funkcji CONTAINS. Zobacz: Is there a combination of "LIKE" and "IN" in SQL?
    Można także skorzystać z funkcji REGEXP.
  8. Wypisz wszystkie filmy z ratingiem G, PG-13 lub NC-17. Użyj operatora IN.
Czytaj dalej

Tworzenie kont i grup w Linuksie

Systemy Linux są wieloużytkownikowe, czyli pozwalają na pracę wielu użytkowników. Możemy zatem tworzyć dla nich konta czy grupować ich w grupy.

Jak często bywa, możliwe są dwa warianty konfiguracji: konsolowa i graficzna.

Czytaj dalej

Konfiguracja interfejsów sieciowych w Linuksie

Jak zawsze, wśród Linuksów można wskazać wiele sposobów na konfigurację jednego rzeczy. W przypadku konfigurowania interfejsów sieciowych natomiast jest to dość podobne w większości systemów operacyjnych z tej rodziny.

W tej notatce znajdują się trzy sposoby konfiguracji:

  • "klasyczny" - użycie pliku /etc/network/interfaces,
  • "konsolowy", polecany w dzisiejszym świecie - użycie polecenia ip,
  • oraz graficzny.

Najczęstszym dziś sposobem jest jednak konfiguracja sieci z wykorzystaniem netplanu. Zostanie on omówiony w osobnym wpisie.

Czytaj dalej