<?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=%2FModelRelacyjny</id>
	<title>/ModelRelacyjny - 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=%2FModelRelacyjny"/>
	<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=/ModelRelacyjny&amp;action=history"/>
	<updated>2026-04-17T07:11:13Z</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=/ModelRelacyjny&amp;diff=2020&amp;oldid=prev</id>
		<title>Jarekz: Utworzono nową stronę &quot;= TI:WTBD/ModelRelacyjny =  Jest najważniejszym z tzw. klasycznych modeli danych, zarówno ze względu na rozległość zastosowań, jak i na w miarę solidne podst...&quot;</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=/ModelRelacyjny&amp;diff=2020&amp;oldid=prev"/>
		<updated>2015-05-23T14:41:13Z</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;/ModelRelacyjny =  Jest najważniejszym z tzw. klasycznych modeli danych, zarówno ze względu na rozległość zastosowań, jak i na w miarę solidne podst...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= [[TI:WTBD]]/ModelRelacyjny =&lt;br /&gt;
&lt;br /&gt;
Jest najważniejszym z tzw. klasycznych modeli danych, zarówno ze względu na rozległość zastosowań, jak i na w miarę solidne podstawy teoretyczne.&lt;br /&gt;
&lt;br /&gt;
Model relacyjny (jego podstawy teoretyczne) wywodzi się z prac EF Codd'a (1970). Pierwsze implementacje stworzono w MIT (wczesne lata 1970-te) i w U.C. Berkeley (Ingres; 1974). Pierwszą wersję Oracle opartą na SQL wprowadzono na rynek w 1979; wkrótce potem swoje produkty wprowadził IBM.&lt;br /&gt;
&lt;br /&gt;
:Inne modele danych zaliczane do klasycznych to model hierarchiczny i model sieciowy. Ich praktyczne znaczenie jest współcześnie niewielkie, chociaż można powiedzieć, że popularność XML jest w jakimś sensie odrodzeniem modelu hierarchicznego.&lt;br /&gt;
:Zdecydowana większość systemów bazodanowych stosowanych w biznesie i administracji opartych jest (przynajmniej nominalnie) na relacyjnych SZBD.&lt;br /&gt;
&lt;br /&gt;
Najbardziej rozpowszechnione obecnie SZBD, oparte na zasadach modelu relacyjnego i na języku SQL, to: Oracle, Microsoft SQL Server, IBM ~DB2, Sybase -- produkty komercyjne; PostgreSQL, MySQL -- produkty Open Source; SQLite -- biblioteka implementująca bazę relacyjną wbudowaną w aplikację, kod Public Domain: występuje pewnie w największej liczbie egzemplarzy (jest wbudowana praktycznie w każdy smartfon).&lt;br /&gt;
&lt;br /&gt;
== Definicja danych ==&lt;br /&gt;
&lt;br /&gt;
;Relacja&lt;br /&gt;
:Pojęcie relacji pochodzi z teorii mnogości, która jest zresztą formalną podstawą modelu relacyjnego. &lt;br /&gt;
&lt;br /&gt;
Przypomnijmy: ''relacja'' to podzbiór iloczynu kartezjańskiego dwu lub więcej ''dziedzin'', a więc podzbiór zbioru wszystkich krotek uporządkowanych, gdzie ''k-ty element pochodzi z k-tej dziedziny.&lt;br /&gt;
&lt;br /&gt;
W ramach modelu relacyjnego, synonimem relacji jest tabela, ale to nie jest to samo co tabela w języku potocznym.&lt;br /&gt;
&lt;br /&gt;
;baza&lt;br /&gt;
:jest zbiorem relacji&lt;br /&gt;
:: każda relacja jest określona przez swoją nazwę&lt;br /&gt;
;kolumny&lt;br /&gt;
:każda kolumna (pozycja w krotce) ma swoją nazwę, jednoznaczną w ramach danej relacji, i swoją dziedzinę  - to razem określa kolumnę (posługujemy się nazwami kolumn zamiast pozycji w krotce)&lt;br /&gt;
::kolumny relacji (zwane też ''atrybutami'') tworzą zbiór nieuporządkowany&lt;br /&gt;
;wiersze tabeli &lt;br /&gt;
:(krotki należące do relacji) ''również tworzą zbiór nieuporządkowany''&lt;br /&gt;
;pola&lt;br /&gt;
:każde ''pole'' (przecięcie wiersza z kolumną) zawiera ''wartość atomową'' z dziedziny danej kolumny. ''Lub też wartość specjalną NULL, oznaczającą że wartość jest nieokreślona lub nieznana.'' Definicja dziedziny kolumny może wykluczać występowanie NULL.&lt;br /&gt;
;klucz główny&lt;br /&gt;
:każda relacja zawiera ''klucz główny'': kolumnę lub zbiór kolumn, o wartościach różnych od NULL, których podanie jednoznacznie wyznacza wiersz. W szczególności, wiersze się nie powtarzają.&lt;br /&gt;
;klucz obcy&lt;br /&gt;
:jest podstawowym mechanizmem ustanawiania związków pomiędzy relacjami: ''klucz obcy'' wiążący tabelę ''B'' z tabelą ''A'' to kolumna lub grupa kolumn z tabeli ''B'', o dziedzinie ewent. dziedzinach pokrywających się z dziedzinami kolumny lub kolumn tworzących ''klucz główny'' tabeli ''A'', z dodatkowym warunkiem, że wartości pól klucza obcego występują jako wartości klucza głównego w tabeli ''A''.&lt;br /&gt;
&lt;br /&gt;
== Operacje na danych ==&lt;br /&gt;
&lt;br /&gt;
Są definiowane teoriomnogościowo. Argumentami każdej operacji są relacje (jedna lub dwie; dwie pierwsze operacje poniżej są 1-argumentowe, a pozostałe -- 2-argumentowe); wynikiem również jest zawsze relacja (czasami używa się określenia ''zbiór wynikowy'' dla podkreślenia, że nie chodzi o jedną z relacji wchodzących w skład definicji danych w bazie (schematu danych), a o wynik operacji).&lt;br /&gt;
&lt;br /&gt;
;selekcja&lt;br /&gt;
:wybór podzbioru wierszy relacji&lt;br /&gt;
;rzut&lt;br /&gt;
:wybór podzbioru kolumn relacji&lt;br /&gt;
;iloczyn kartezjański&lt;br /&gt;
:relacja, której zbiór wierszy stanowi iloczyn kartezjański zbiorów wierszy relacji - czynników iloczynu (a kolumny - to suma zbiorów kolumn relacji-czynników)&lt;br /&gt;
;równozłączenie&lt;br /&gt;
:gdy w iloczynie kartezjańskim występują jako czynniki dwie relacje, z których każda posiada kolumnę o tej samej dziedzinie, co odp. kolumna w drugiej relacji, to równozłączenie uzyskuje się z iloczynu kartezjańskiego poprzez selekcję za pomocą warunku równości pól w tychże kolumnach&lt;br /&gt;
;złączenie naturalne&lt;br /&gt;
:złączenie naturalne powstaje z równozłączenia poprzez rzut, redukujący do jednej kolumny dwie kolumny, które na mocy warunku równozłączenia mają równe wartości dla każdego wiersza&lt;br /&gt;
;złączenie zewnętrzne&lt;br /&gt;
:złączenie zewnętrzne (lewostronne) powstaje z równozłączenia, jeżeli zbiór wierszy je tworzących uzupełnimy w taki sposób, że dla każdego wiersza lewego czynnika, który nie jest reprezentowany w równozłączeniu, dodamy do równozłączenia wiersz, gdzie pola kolumn pochodzących z prawego czynnika wypełnimy wartościami NULL. Analogicznie tworzy się złączenie prawostronne i obustronne&lt;br /&gt;
;suma&lt;br /&gt;
:relacja składająca się z sumy teoriomnogościowej wiersszy dwóch relacji, o identycznych (co do nazw i dziedzin) zestawach kolumn&lt;br /&gt;
;przecięcie&lt;br /&gt;
:jw. ale iloczyn teoriomnogościowy&lt;br /&gt;
;różnica&lt;br /&gt;
:jw. ale różnica teoriomnogościowa&lt;br /&gt;
&lt;br /&gt;
== Integralność danych ==&lt;br /&gt;
Do zdefiniowania co jest poprawnym stanem bazy, w modelu relacyjnym używa się następujących narzędzi:&lt;br /&gt;
;Integralność encji &lt;br /&gt;
:(warunek klucza głównego) klucz główny nigdy nie jest NULL, a jego wartości się nie powtarzają&lt;br /&gt;
;integralność referencyjna&lt;br /&gt;
:warunek klucza obcego -- klucz obcy przyjmuje jedynie takie wartości, które występują w odp. kolumnie tabeli powiązanej. Zmiana danych w tabeli powiązanej mogłaby potencjalnie prowadzić do naruszenia tego warunku (zbiór dozwolonych wartości klucza obcego ulega zmianie), czyli niepoprawnego stanu bazy. Aby do tego nie dopuścić, stosuje się jedną z 3 reguł:&lt;br /&gt;
:*''Restricted'': operacja zmieniająca dane, prowadząca do unieważnienia wartości klucza obcego, nie może być wykonana&lt;br /&gt;
:*''Cascades'': operacja zmieniająca dane, prowadząca do unieważnienia wartości klucza obcego, pociąga za sobą usunięcie wierszy, której wskutek jej wykonania naruszałyby warunek klucza obcego&lt;br /&gt;
:*''Nullifies'': wartości klucza obcego, które stałyby się nieważne, ulegają zastąpieniu przez NULL&lt;br /&gt;
;integralność dodatkowa (warunki CHECK)&lt;br /&gt;
: w zasadzie dowolne warunki (wyrażenia logiczne), których prawdziwość jest sprawdzana jako warunek wykonania operacji zmieniającej dane w tabeli&lt;/div&gt;</summary>
		<author><name>Jarekz</name></author>
		
	</entry>
</feed>