<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=%2FNormalizacjaDanych</id>
	<title>/NormalizacjaDanych - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="http://brain.fuw.edu.pl/edu/index.php?action=history&amp;feed=atom&amp;title=%2FNormalizacjaDanych"/>
	<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=/NormalizacjaDanych&amp;action=history"/>
	<updated>2026-04-18T15:56:48Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=/NormalizacjaDanych&amp;diff=2033&amp;oldid=prev</id>
		<title>Jarekz: Utworzono nową stronę &quot;= TI:WTBD/NormalizacjaDanych =  == Cele normalizacji ==  * redukcja powtórzeń * redukcja anomalii w modyfikacji danych * uproszczenie reguł integralności  == Ano...&quot;</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=/NormalizacjaDanych&amp;diff=2033&amp;oldid=prev"/>
		<updated>2015-05-23T14:48:28Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot;= &lt;a href=&quot;/edu/index.php/TI:WTBD&quot; title=&quot;TI:WTBD&quot;&gt;TI:WTBD&lt;/a&gt;/NormalizacjaDanych =  == Cele normalizacji ==  * redukcja powtórzeń * redukcja anomalii w modyfikacji danych * uproszczenie reguł integralności  == Ano...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= [[TI:WTBD]]/NormalizacjaDanych =&lt;br /&gt;
&lt;br /&gt;
== Cele normalizacji ==&lt;br /&gt;
&lt;br /&gt;
* redukcja powtórzeń&lt;br /&gt;
* redukcja anomalii w modyfikacji danych&lt;br /&gt;
* uproszczenie reguł integralności&lt;br /&gt;
&lt;br /&gt;
== Anomalie danych ==&lt;br /&gt;
&lt;br /&gt;
* efekt uboczny usuwania -- usuwając encję tracimy więcej danych niż zamierzaliśmy usunąć&lt;br /&gt;
* efekt uboczny modyfikacji -- zmiana wartości atrybutu wymaga dalszych kaskadowych zmian dla utrzymania integralności&lt;br /&gt;
* efekt uboczny wstawiania -- dodanie encji może wymagać dodania atrybutów których wartości są aktualnie niedostępne lub nie istnieją&lt;br /&gt;
&lt;br /&gt;
== Postaci normalne ==&lt;br /&gt;
&lt;br /&gt;
Każda kolejna postać normalna zakłada spełnienie poprzedniej. Klucz główny to atrybut lub zbiór atrybutów, których wartość jednoznacznie określa encję (wiersz tabeli).&lt;br /&gt;
&lt;br /&gt;
;1NF&lt;br /&gt;
: Każdy atrybut niekluczowy jest funkcyjnie zależny od klucza głównego&lt;br /&gt;
&lt;br /&gt;
Zależność funkcyjna odpowiada matematycznej definicji odwzorowania (pomiędzy zbiorem wartości kluczy a dziedziną atrybutu). Doprowadzenie do 1NF wiąże się z właściwą identyfikacją klucza lub kluczy oraz eliminacją powtarzających się wartości atrybutów, zazwyczaj prowadzi to do wzrostu liczby tabel. Sygnałem naruszenia 1NF może być np. rozkładalność wartości pewnego atrybutu.&lt;br /&gt;
&lt;br /&gt;
;2NF&lt;br /&gt;
: Każdy atrybut niekluczowy jest w pełni zależny funkcyjnie od klucza głównego&lt;br /&gt;
&lt;br /&gt;
W pełni zależny funkcyjnie - to znaczy, że jest wyznaczony przez całość wartości klucza głównego a nie jej podzbiór właściwy. Doprowadzenie zbioru relacji do 2NF polega więc na eliminacji lub redukcji niewłaściwych kluczy złożonych - często na rzecz kluczy syntetycznych.&lt;br /&gt;
&lt;br /&gt;
;3NF&lt;br /&gt;
: Każdy atrybut niekluczowy jest bezpośrednio (a nie przechodnio) zależny od klucza głównego&lt;br /&gt;
&lt;br /&gt;
Z zależnością przechodnią mamy do czynienia wtedy, gdy klucz główny K wyznacza (funkcyjnie) atrybuty A i B, ale wartość atrybutu B jest również wyznaczona funkcyjnie przez wartość atrybutu A.&lt;br /&gt;
Stwierdając taką sytuację, powiązane atrybuty przenosimy do oddzielnej tabeli.&lt;br /&gt;
&lt;br /&gt;
== Prosty przykład normalizacji ==&lt;br /&gt;
&lt;br /&gt;
Gwiazdkami oznaczam atrybuty kluczowe (wchodzące w skład klucza głównego danej tabeli)&lt;br /&gt;
&lt;br /&gt;
  KURSY(NAZWA, NR_PRAC, NAZW_PRAC, NR_STUD, NAZW_STUD, OCENA, TYP_OCENY)&lt;br /&gt;
  {tabela nieznormalizowana}&lt;br /&gt;
&lt;br /&gt;
  KURSY(NAZWA*, NR_PRAC, NAZW_PRAC)&lt;br /&gt;
  ZALICZENIA(NAZWA_K*, NR_STUD*, NAZW_STUD, OCENA, TYP_OCENY*)&lt;br /&gt;
  {1NF}&lt;br /&gt;
&lt;br /&gt;
  KURSY(NAZWA*, NR_PRAC, NAZW_PRAC)&lt;br /&gt;
  STUDENCI(NR_STUD*, NAZW_STUD)&lt;br /&gt;
  ZALICZENIA(NAZWA_K*, NR_STUD*, OCENA, TYP_OCENY*)&lt;br /&gt;
  {2NF}&lt;br /&gt;
&lt;br /&gt;
  KURSY(NAZWA*, NR_PRAC)&lt;br /&gt;
  WYKLADOWCY(NR_PRAC*, NAZW_PRAC)&lt;br /&gt;
  STUDENCI(NR_STUD*, NAZW_STUD)&lt;br /&gt;
  ZALICZENIA(NAZWA_K*, NR_STUD*, OCENA, TYP_OCENY*)&lt;br /&gt;
  {3NF}&lt;br /&gt;
&lt;br /&gt;
#Bez powtórzeń&lt;br /&gt;
#Pola zależą od klucza&lt;br /&gt;
#Od całego klucza&lt;br /&gt;
#I niczego innego, tylko klucza&lt;br /&gt;
#Tak mi dopomóż Codd&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;;-)))&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jarekz</name></author>
		
	</entry>
</feed>