Projekt logiczny

1. Schemat bazy

Schemat bazy danych

2. Słowniki danych

Base

  • base_name – PK, VARCHAR(30) – unikalna nazwa bazy przeszukiwań, będąca jednocześnie kluczem głównym
  • created – DATE, NOT NULL – data utworzenia bazy przeszukiwań
  • notify_type – VARCHAR(6), NOT NULL – typ powiadomień ustawiony w bazie – email, sms lub żaden.
  • frequency – INTEGER, NOT NULL – częstotliwość sprawdzania czy w bazie zaszły zmiany
  • base_type – INTEGER, NOT NULL - typ bazy (rss lub html)


Channels

  • channelid – PK, INTEGER – id kanału rss
  • Uri – VARCHAR(200), NOT NULL – adres kanału
  • title – VARCHAR(100), NOT NULL – tytuł kanału
  • last_modified – DATE – data ostatnich zmian w kanale rss
  • base_name – FK, VARCHAR(30) – klucz obcy, nazwa bazy zawierającej dany kanał


Entries

  • entryid – PK, INTEGER – id wpisu
  • title – VARCHAR(40), NOT NULL – tytuł wpisu
  • uri – VARCHAR(200), NOT NULL – adres do szczegółów dotyczących wpisu
  • description – TEXT, NOT NULL – skrótowy opis wpisu
  • created – DATE – data utworzenia wpisu
  • reprted - INTEGER, NOT NULL – czy wpis został już zaraportowany
  • channeled – FK, INTEGER – klucz obcy, id kanału zawierającego ten wpis


Keyword

  • keywordid PK, INTEGER - id słowa kluczowego
  • word – VARCHAR(100), NOT NULL – wartość słowa kluczowego
  • base_name – FK, VARCHAR(30) – klcuz obcy, baza zawierająca to słowo kluczowe


3. Analiza zależności funkcyjnych i normalizacja tabel

1NF
Relacja jest w pierwszej postaci normalnej (1NF) wtedy i tylko wtedy gdy wszystkie atrybuty przyjmują wartości elementarne (atomiczne). Atomowość danych jest ściśle powiązana z ich typem (nazwanym i skończonym zbiorem wartości). Pierwsza postać normalna jest konieczna, aby tabelę można było nazwać relacją.

Nasza baza spełnia te warunki. Wszystkie wartości w tabelach są atomiczne.

2NF
Relacja R jest w drugiej postaci normalnej (2NF) wtedy i tylko wtedy, gdy nie zawiera zależności częściowych, tzn. żadna zależność częściowa nie wynika logicznie ze zbioru F.

Wszystkie tabele w naszej bazie posiadają klucz prosty, więc ich atrybuty zależą w całości od klucza głównego. Baza jest w 2NF.

3NF
Relacja jest w trzeciej postaci normalnej tylko wtedy, gdy jest w drugiej postaci normalnej i każdy atrybut wtórny jest tylko bezpośrednio zależny od klucza głównego. Innymi słowy wymaga usunięcia wszelkich pól niezwiązanych z kluczem głównym.

Z powodu, że każda tabela w naszej bazie posiada klucz prosty, jej atrybuty są w całości zależne od klucza głównego. Więc warunek postaci 3NF jest również spełniony.

4. Projektowanie operacji na danych

Pobranie wszystkich baz do modelu jListy

SELECT base_name FROM bases;


Dodanie nowego kanału

INSERT INTO channels(uri, title, last_modified, base_name) 
VALUES ('www.pudelek.pl','Najświeższe ploteczki', '2012-06-01', 'Ploteczki');


Zmiana częstotliwości odświeżania danej bazy

UPDATE bases
SET frequency=5
WHERE base_name='Ploteczki';


Pobranie wszystkich wpisów z konkretnej bazy przeszukiwań

SELECT e.entryid, e.title, e.uri, e.description, e.created, e.reported, ch.uri
FROM entries e 
JOIN channels ch USING (channelid) 
WHERE ch.base_name=’Nazwa_bazy’;
pl/dydaktyka/ztb/2012/projekty/rss/logiczny.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0