[[
✎ pl:dydaktyka:ztb:2012:projekty:rss:logiczny
]]
aiWiki
Pokaż stronę
Ostatnie zmiany
Indeks
Zaloguj
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
====== Projekt logiczny ====== ==== 1. Schemat bazy ==== **Schemat bazy danych** {{:pl:dydaktyka:ztb:2012:projekty:rss:n_baza.png|}} ==== 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// <code sql>SELECT base_name FROM bases;</code> \\ //Dodanie nowego kanału// <code sql>INSERT INTO channels(uri, title, last_modified, base_name) VALUES ('www.pudelek.pl','Najświeższe ploteczki', '2012-06-01', 'Ploteczki');</code> \\ //Zmiana częstotliwości odświeżania danej bazy// <code sql>UPDATE bases SET frequency=5 WHERE base_name='Ploteczki';</code> \\ //Pobranie wszystkich wpisów z konkretnej bazy przeszukiwań// <code sql>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’;</code>
pl/dydaktyka/ztb/2012/projekty/rss/logiczny.txt
· ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
Pokaż stronę
Poprzednie wersje
Menadżer multimediów
Do góry