sobota 4. ledna 2014

Přidávání, úprava a mazání tabulek, sloupců a řádků

Při studiu Oracle Academy jsem se začal pomalu ztrácet v tom, jaký SQL příkaz slouží pro manipulaci s tabulkou, jaký s řádkem a jaký se sloupcem. Udělal jsem si tedy následující jednoduchou tabulku, která třeba pomůže i někomu jinému. Není zaměřená na syntaxi jednotlivých příkazů. Má za úkol pouze zpřehlednit, který příkaz se používá na co.



Přidání
Úprava
Smazání
Tabulka
CREATE TABLE
ALTER TABLE
DROP TABLE
Sloupec
ADD
MODIFY
DROP COLUMN
Řádek
INSERT INTO
UPDATE
DELETE

úterý 24. prosince 2013

Jak na počítání IP adres v IPv4

Vypočet počtu hostů v síti

Myslím, že nejlepší je to ukázat na příkladu. Mějme následující zadání: Kolik hostů se vejde do sítě, která má IP adresu 172.16.16.0 s prefixem /23. Maska sítě je tedy 255.255.254.0. Nejlepší je převést si adresu sítě i masky do dvojkové soustavy, pač z dvojkového tvaru to jde krásně vyčíst.


Decimální tvar
Binární tvar
Adresa sítě
172.16.16.0
10101100.00010000.00010000.00100000
Maska sítě
255.255.254.0
11111111.11111111.11111110.00000000


Nyní se stačí řídit podle masky sítě. Spočítáme počet nul v masce a podle vzorce 2n, kde n je počet nul, vypočítáme počet hostů, které v síti mohou být. V tomto příkladě je nul devět, takže 29 a to se rovná 512. Podle zadané masky tedy můžeme vytvořit až 512 IP adres. Musíme ale odečíst dvě, protože jedna IP adresa náleží adrese sítě a druhá náleží adrese broadcastu. V této síti tedy můžeme přidělit 510 adres.

Rozdělení sítě na podsítě

Nyní si ukážeme trošku složitější příklad. Mějme zadanou IP adresu 10.10.0.0 s maskou 255.255.0.0. Náš úkol je rozdělit IP adresy na 4 podsítě, kde síť A má mít  419 hostů, síť B má mít 4 hosty, síť C 16 hostů a síť D 1680 hostů. Seřídíme si podsítě od největší po nejmenší, takže začneme se sítí D.


Decimální tvar
Binární tvar
Adresa sítě
10.10.0.0
00001010.00001010.00000000.00000000
Maska sítě
255.255.0.0
11111111.11111111.00000000.00000000


Podle výše napsaného vzorce je třeba se zeptat, na kolikátou je třeba umocnit dvojku, abychom dosáhli požadovaného počtu hostů? Musí to vyjít tak, aby výsledné číslo bylo větší než 1680. Můžeme zkusit 28 = 256. To nám nestačí. Tak zkusíme 29 = 512. Pořád málo. Takhle se dostaneme k 211, což je 2048. Hodně to přesahuje počet, který potřebujeme, ale jinak to nejde. 210 je 1024 a to je příliš málo. Nyní budeme číst z dvojkového tvaru adresy 10.10.0.0. Ve dvojkovém tvaru posuneme desetinnou čárku o 11 míst zprava doleva. To samé uděláme s dvojkovým tvarem masky sítě. Dostaneme se tedy do místa naznačeného svislou čarou.


Decimální tvar
Binární tvar
Adresa sítě
10.10.0.0
00001010.00001010.00000|000.00000000
Maska sítě
255.255.0.0
11111111.11111111.00000|000.00000000


Abychom dostali adresu sítě, všechno na pravé straně od svislé čáry musí být 0. Pro adresu broadcastu musí být všechno napravo od svislé čáry 1. Maska sítě musí mít nalevo od svislé čáry samé jedničky a napravo nuly. Výsledkem je tedy:

Síť D
Decimální tvar
Binární tvar
Adresa sítě
10.10.0.0
00001010.00001010.00000|000.00000000
Broadcast
10.10.7.255
00001010.00001010.00000|111.11111111
Maska sítě
255.255.248.0
11111111.11111111.11111|000.00000000

První adresu, kterou můžeme přidělit hostu, je 10.10.0.1 a poslední adresa hosta je 10.10.7.254.

Nyní budeme pokračovat druhou největší sítí a to je síť A. Ta má mít 419 hostů. Adresu sítě dostaneme tak, že k poslední adrese sítě D přičteme jedničku, čímž dostaneme adresu 10.10.8.0. Stejným způsobem jako u sítě D zjistíme, kolik musíme vzít bitů zprava, aby se nám tam vlezli všichni požadovaní hosti. Po chvíli zjistíme, že musíme odebrat 9 bitů, pač 29 je 512.


Síť A
Decimální tvar
Binární tvar
Adresa sítě
10.10.8.0
00001010.00001010.0000100|0.00000000
Broadcast
10.10.9.255
00001010.00001010.0000100|1.11111111
Maska sítě
255.255.254.0
11111111.11111111.1111111|0.00000000

Opět k broadcastu přičteme jedničku a tak dostaneme adresu sítě C. Ta má mít 16 hostů, což znamená, že si zprava půjčíme 5 bitů. 25 = 32 možných adres. 26 je 16 a to by nám umožnilo jen 14 adres pro hosty.

Síť C
Decimální tvar
Binární tvar
Adresa sítě
10.10.10.0
00001010.00001010.00001010.000|00000
Broadcast
10.10.10.31
00001010.00001010.00001010.000|11111
Maska sítě
255.255.255.224
11111111.11111111.11111111.111|00000

Zbývá nám síť B. Narážíme tu na podobný problém jako u sítě C. Nemůžeme si zprava vzít jen 2 bity, pač bychom dostali jen 2 adresy pro hosty a my potřebujeme čtyři. Takže si ukojíme 3 bity.

Síť B
Decimální tvar
Binární tvar
Adresa sítě
10.10.10.32
00001010.00001010.00001010.00100|000
Broadcast
10.10.10.39
00001010.00001010.00001010.00100|111
Maska sítě
255.255.255.248
11111111.11111111.11111111.11111|000

A to je vlastně vše. Všimněte si, jak se měnila maska sítě. Je na ni krásně vidět, jak se z velkého kusu postupně krájí podle našich potřeb.

Síť D11111111.11111111.11111|000.00000000
Síť A11111111.11111111.1111111|0.00000000
Síť C11111111.11111111.11111111.111|00000
Síť B11111111.11111111.11111111.11111|000

Na závěr bych ještě rád upozornil, že dvě sítě mohou klidně mít stejnou masku. Pomocný nástroj bych doporučil obyčejnou kalkulačku ve Windows nebo klidně Linuxu. Když ji přepnete na programátorskou, tak si tam můžete lehce klikat jedničky a nuly. Dál se hodí klidně jen na internetu najít nějakou IP kalkulačku, ale to používat pouze pro kontrolu!

Pokud byste našli chybu nebo měli dotaz, pište do komentářů.