Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:sbd:2012:projekty:sieci:start:logiczny [2012/12/04 23:15]
sbd12
pl:dydaktyka:sbd:2012:projekty:sieci:start:logiczny [2019/06/27 15:50] (aktualna)
Linia 85: Linia 85:
 ====== 5. Słowniki danych====== ====== 5. Słowniki danych======
  
-{{:pl:dydaktyka:sbd:2012:projekty:sieci:start:slowniki.png|}}+ 
 + 
 +^ **Nazwa** ^ **Zastosowanie** ^ **Wartości** ^ 
 +| Port | Port może być zarówno w ścianie (wtedy referencja do pomieszczenia) jak i w panelu, wtedy referencja do panelu. | nazwa_portuLiczba naturalna, nie globalna. Wraz z oznaczeniem panelu stworzy pełny identyfikator ​ | 
 +| Typ portu | Rozróżnienie,​ gdzie port się znajduje | opis_portuenum ścienny/​panelowy| 
 +| Panel krosowniczy | Grupuje gniazdka | Nazwa_panelutextNajczęściej będzie to jedna litera | 
 +| Urządzenie końcowe | Urządzenie podłączane do sieci. Może mieć jedno lub wiele gniazdek i interfejsów sieciowych | adres_macmacaddr, adres_IPinet, maska_podsieciinet, domyslna_droga:inet, adres_dns_glowny:inet, adres_dns_drugorzedny:​inet | 
 +| Typ urządzenia końcowego | Określa typ urządzenia podłączonego do sieciPozwala opisać urządzenie,​ np. czy jest to ruter czy komputer | Opis: text | 
 +| Switch | Urządzenie sieciowe | Opis:text, adres_Mac:​macaddr | 
 +| Szafa | Grupuje panele krosownicze | Nazwa:text | 
 +| Pomieszczenie | Grupuje szafy, gniazdka i urządzenia | numer_pomieszczenia:​integer | 
 +| Piętro | Grupuje pomieszczenia | numer_pietra:​integer pole_techniczne:​text | 
 +| Typ pomieszczenia | Określa typ pomieszczenia | Opis:text | 
 +| VLAN | Grupuje gniazdka w switchu w wirtualne sieci lokalne | nazwa_vlanu:​text,​ opis:text | 
 +| Port2Port | Opisuje połączenie między portami | REL_port1<​REL_port2 | 
 +| Typ połączenia | Opisuje typ połączenia port2port | Opis:​text ​| 
  
 ====== 6. Analiza zależności funkcyjnych i normalizacja tabel====== ====== 6. Analiza zależności funkcyjnych i normalizacja tabel======
 +^Nazwa ^ Atrybuty niekluczowe ^ Postać Normalna ^
 +| Port | Klucz:P_ID , reszta: niekluczowe zależne od klucza | 3NF |
 +| Typ portu | Klucz:​TP_ID,​ , reszta: niekluczowe zależne od klucza | 3NF |
 +| Panel Krosowniczy | Klucz:PK_ID , reszta: niekluczowe zależne od klucza | 3NF |
 +| Urządzenie końcowe | Klucz:UK_ID , reszta: niekluczowe zależne od klucza | 3NF |
 +| Typ urządzenia końcowego | Klucz:​TUP_ID , reszta: niekluczowe zależne od klucza | 3NF |
 +| Switch | Klucz:S_ID , reszta: niekluczowe zależne od klucza | 3NF |
 +| Szafa | Klucz:S_ID , reszta: niekluczowe zależne od klucza | 3NF |
 +| Pomieszczenie | Klucz:P_ID , reszta: niekluczowe zależne od klucza | 3NF |
 +| Piętro | Klucz:P_ID , reszta: niekluczowe zależne od klucza | 3NF |
 +| Typ pomieszczenia | Klucz:TP_ID , reszta: niekluczowe zależne od klucza | 3NF |
 +| VLAN | Klucz:V_ID , reszta: niekluczowe zależne od klucza | 3NF |
 +| Port2Port | Klucz:PP_ID , reszta: niekluczowe zależne od klucza | 3NF |
 +| Typ połączenia | Klucz:TP_ID , reszta: niekluczowe zależne od klucza | 3NF |
  
-{{:​pl:​dydaktyka:​sbd:​2012:​projekty:​sieci:​start:​normalizacja.png|}} 
  
 Uzasadnienie:​ Uzasadnienie:​
Linia 104: Linia 133:
  
 # Wyszukanie wszystkich gniazdek na danym piętrze # Wyszukanie wszystkich gniazdek na danym piętrze
->>>​ Port.objects.filter(port_type='​R',​ room__floor__number=1 ​ )+>>>​ Port.objects.filter(port_type='​R',​ room__floor__number=1)
 SELECT "​main_port"​."​id",​ "​main_port"​."​number",​ "​main_port"​."​room_id",​ "​main_port"​."​port_type",​ "​main_port"​."​vlan_id",​ "​main_port"​."​switch_id",​ "​main_port"​."​terminal_id",​ "​main_port"​."​patch_panel_id"​ FROM "​main_port"​ INNER JOIN "​main_room"​ ON ("​main_port"​."​room_id"​ = "​main_room"​."​id"​) INNER JOIN "​main_floor"​ ON ("​main_room"​."​floor_id"​ = "​main_floor"​."​id"​) WHERE ("​main_floor"​."​number"​ = 1  AND "​main_port"​."​port_type"​ = R ) SELECT "​main_port"​."​id",​ "​main_port"​."​number",​ "​main_port"​."​room_id",​ "​main_port"​."​port_type",​ "​main_port"​."​vlan_id",​ "​main_port"​."​switch_id",​ "​main_port"​."​terminal_id",​ "​main_port"​."​patch_panel_id"​ FROM "​main_port"​ INNER JOIN "​main_room"​ ON ("​main_port"​."​room_id"​ = "​main_room"​."​id"​) INNER JOIN "​main_floor"​ ON ("​main_room"​."​floor_id"​ = "​main_floor"​."​id"​) WHERE ("​main_floor"​."​number"​ = 1  AND "​main_port"​."​port_type"​ = R )
  
 # Wyszukanie wszystkich połączeń między portami podanego switcha (SW1), a portami należącymi do patch paneli. # Wyszukanie wszystkich połączeń między portami podanego switcha (SW1), a portami należącymi do patch paneli.
 >>>​ Port2Port.objects.filter(port1_id__port_type='​S',​ port1_id__switch__name='​SW1',​ port2_id__port_type='​P'​) | Port2Port.objects.filter(port2_id__port_type='​S',​ port2_id__switch__name='​SW1',​ port1_id__port_type='​P'​) >>>​ Port2Port.objects.filter(port1_id__port_type='​S',​ port1_id__switch__name='​SW1',​ port2_id__port_type='​P'​) | Port2Port.objects.filter(port2_id__port_type='​S',​ port2_id__switch__name='​SW1',​ port1_id__port_type='​P'​)
-SELECT "​main_port2port"​."​id",​ "​main_port2port"​."​port1_id",​ "​main_port2port"​."​port2_id",​ "​main_port2port"​."​connection_type_id"​ FROM "​main_port2port"​ INNER JOIN "​main_port"​ ON ("​main_port2port"​."​port1_id"​ = "​main_port"​."​id"​) LEFT OUTER JOIN "​main_switch"​ ON ("​main_port"​."​switch_id"​ = "​main_switch"​."​id"​) INNER JOIN "​main_port"​ T4 ON ("​main_port2port"​."​port2_id"​ = T4."​id"​) LEFT OUTER JOIN "​main_switch"​ T5 ON (T4."​switch_id"​ = T5."​id"​) WHERE(("​main_switch"​."​name"​ = SW1  AND "​main_port"​."​port_type"​ = S  AND T4."​port_type"​ = P ) OR (T4."​port_type"​ = S  AND "​main_port"​."​port_type"​ = P  AND T5."​name"​ = SW1 ))+SELECT "​main_port2port"​."​id",​ "​main_port2port"​."​port1_id",​ "​main_port2port"​."​port2_id",​ "​main_port2port"​."​connection_type_id"​ FROM "​main_port2port"​ INNER JOIN "​main_port"​ ON ("​main_port2port"​."​port1_id"​ = "​main_port"​."​id"​) LEFT OUTER JOIN "​main_switch"​ ON ("​main_port"​."​switch_id"​ = "​main_switch"​."​id"​) INNER JOIN "​main_port"​ T4 ON ("​main_port2port"​."​port2_id"​ = T4."​id"​) LEFT OUTER JOIN "​main_switch"​ T5 ON (T4."​switch_id"​ = T5."​id"​) WHERE ( ( "​main_switch"​."​name"​ = SW1  AND "​main_port"​."​port_type"​ = S  AND T4."​port_type"​ = P ) OR (T4."​port_type"​ = S  AND "​main_port"​."​port_type"​ = P  AND T5."​name"​ = SW1 ))
  
-Wyszukanie wszystkich połączeń należących do danego VLANA (VLAN1) oraz do urządzenia końcowego+===== Wyszukanie wszystkich połączeń należących do danego VLANA (VLAN1) oraz do urządzenia końcowego ​===== 
 +<code python>
 >>>​ Port2Port.objects.filter(port1_id__vlan__name='​VLAN1',​ port2_id__port_type='​T'​) | Port2Port.objects.filter(port2_id__vlan__name='​VLAN1',​ port1_id__port_type='​T'​) >>>​ Port2Port.objects.filter(port1_id__vlan__name='​VLAN1',​ port2_id__port_type='​T'​) | Port2Port.objects.filter(port2_id__vlan__name='​VLAN1',​ port1_id__port_type='​T'​)
-SELECT "​main_port2port"​."​id",​ "​main_port2port"​."​port1_id",​ "​main_port2port"​."​port2_id",​ "​main_port2port"​."​connection_type_id"​ FROM "​main_port2port"​ INNER JOIN "​main_port"​ ON ("​main_port2port"​."​port1_id"​ = "​main_port"​."​id"​) LEFT OUTER JOIN "​main_vlan"​ ON ("​main_port"​."​vlan_id"​ = "​main_vlan"​."​id"​) LEFT OUTER JOIN "​main_port"​ T4 ON ("​main_port2port"​."​port2_id"​ = T4."​id"​) LEFT OUTER JOIN "​main_vlan"​ T5 ON (T4."​vlan_id"​ = T5."​id"​) WHERE(("​main_vlan"​."​name"​ = VLAN1  AND T4."​port_type"​ = T ) OR (T5."​name"​ = VLAN1  AND "​main_port"​."​port_type"​ = T ))+</​code>​ 
 + 
 +<code sql> 
 +SELECT "​main_port2port"​."​id",​ "​main_port2port"​."​port1_id",​ "​main_port2port"​."​port2_id",​ "​main_port2port"​."​connection_type_id"​ FROM "​main_port2port"​ INNER JOIN "​main_port"​ ON ("​main_port2port"​."​port1_id"​ = "​main_port"​."​id"​) LEFT OUTER JOIN "​main_vlan"​ ON ("​main_port"​."​vlan_id"​ = "​main_vlan"​."​id"​) LEFT OUTER JOIN "​main_port"​ T4 ON ("​main_port2port"​."​port2_id"​ = T4."​id"​) LEFT OUTER JOIN "​main_vlan"​ T5 ON (T4."​vlan_id"​ = T5."​id"​) WHERE ( ("​main_vlan"​."​name"​ = VLAN1  AND T4."​port_type"​ = T ) OR (T5."​name"​ = VLAN1  AND "​main_port"​."​port_type"​ = T )) 
 +</​code>​
pl/dydaktyka/sbd/2012/projekty/sieci/start/logiczny.1354659311.txt.gz · ostatnio zmienione: 2019/06/27 15:55 (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