Preskrypt do ćwiczeń, język SQL
Niniejszy skrypt powstaje równolegle z zajęciami z języków programowania, oraz informatycznych systemów zarządzania prowadzonymi na Wydziale Inżynierii Produkcji Politechniki Warszawskiej (www.wip.pw.edu.pn w semestrze zimowym roku akademickiego 2012/13. Częścią wspólną tych zajęć jest wykorzystywanie baz danych. Skrypt ten nie rości sobie praw do bycia podręcznikiem, czy jakimkolwiek całościowym ujęciem tematu. Jego celem jest przede wszystkim pomoc w powtórzeniu materiału, uporządkowanie sobie całości wiedzy, czy własna nauka tematu.
Zastanówmy się na początek, czym jest baza danych. Pierwsze określenie, które się nasuwa to jakiś zbiór danych. Czy jednak o każdym zbiorze danych możemy powiedzieć, że jest bazą danych? Czy jeśli powycinamy słowa z gazety i wrzucimy do worka, to będzie to już baza danych, czy jeszcze nie do końca?
Nietrudno dojść do wniosku, że po pierwsze nie będzie to specjalnie użyteczne, po drugie o tych danych nic właściwie nie da się powiedzieć. Wprawdzie każde z nich jest słowem, ale nic ponadto nie można o nich powiedzieć. Nie daje się określić relacji, zależności pomiędzy nimi, do niczego konkretnego nie można wykorzystać (chyba, że do napisania listu z żądaniem okupu...). Czy jednak lista słów jako taka może być bazą danych? A jeśli nie, to czego jej brakuje?
Wyobraźmy sobie, że znajdujemy się w bibliotece. Mamy na półkach szereg książek. Spróbujmy spisać ich tytuły. Wszystkich. Czy to jest już baza danych? W pewnym, najprostszym sensie możemy tak naszą listę traktować, jest listą książek, które posiadamy (powinniśmy posiadać) na stanie. Zwróćmy jednak uwagę, że w tym momencie każda pozycja ma swoją konkretną interpretację, czy inaczej nazywając, konkretne znaczenie. Każdy wpis jest tytułem książki, filozoficznie można stwierdzić, że każdemu rekordowi odpowiada jakiś eidos ze świata rzeczywistego. W tym konkretnym przypadku wiemy, że odpowiada mu Tytuł książki. Jeśli jednak zapisywać będziemy zarówno tytuły, jak i autorów, może się zdarzyć, że nie będziemy w stanie stwierdzić co jest tytułem, a co autorem (o ile np. „Analiza matematyczna w zadaniach” jest z pewnością tytułem, o tyle mając „Jan Luksemburski” oraz „Wojciech Iwańczak” nie jest już tak oczywistym, że to Wojciech Iwańczak napisał biografię Jana Luksemburskiego, a nie odwrotnie). O ile nam może to stwarzać problemy, dla systemu informatycznego jest to stokroć trudniejsze. W ten sposób dochodzimy do tego, że dane które posiadamy muszą mieć określoną strukturę - muszą mieć w jakiś sposób opisane znaczenie.
Opis danych może być bardzo różny, jednak musi wystąpić. Najprostszym rozwiązaniem jest oczywiście wymuszenie konkretnej struktury i zmuszenie zainteresowanych do podporządkowania się jej. Wyobraźmy sobie na przykład, że chciałbym poznać dane personalne wszystkich słuchaczy przedmiotu (pomińmy kwestię zgodności z Ustawą o Ochronie Danych Osobowych...) W jaki sposób mogę to osiągnąć?
Mogę przygotować formularz (czy tabelę) z konkretnymi polami do wypełnienia: Imię, Nazwisko, PESEL, Adres. Wówczas wszystkie dane będą miały identyczną formę. Oczywiście nie musi być podpisane, że Piotr to imię, a Modliński - nazwisko. Wystarczy, że z góry określę zasady, że w pierwszej kolumnie wpisujemy imię, potem nazwisko, adres itd. (jeśli ktoś wypełniał zeznanie podatkowe, będzie wiedział o czym mówię). Czy to jednak jedyna metoda?
Innym rozwiązaniem jest zebranie od Państwa dokumentów tożsamości (i np. zrobienie zdjęć