Bazy danych

LINQ

W sieci Internet używamy wielu rodzajów baz danych. Począwszy od MySql który jest darmowy aż po wersje komercyjne takie jak Oracle czy też MS SQL Server. Łączenie z tymi bazami było utrudnione ze względu na ich różnorodność.  Jednak możemy uzyć technologii LINQ. Program ten ma za zadanie skomunikować się z dowolną bazą. Jednak potrafi on także odczytać dane z innych źródeł takich jak pliki XML, tablice, kolekcie. Do tej pory korzystając z każdego z tych źródeł pobieraliśmy dane w zupełnie inny sposób.  Był to problem ponieważ znacznie wydłużało to czas pisania nowego oprogramowania. Firma Microsoft wyszedł naprzeciw temu problemowi i ułatwiła programistom pracę z danymi. Na rynku ukazał się LINQ, możemy go znaleźć w Framework już od wersji 3.5. Jak pisze Microsoft jest to kompleksowy język zapytań, jest to rozszerzenie stosowane w językach programowania takich jak C# oraz Visual Basic. Jednak dotyczy to wersji .NET. Jeśli tylko skorzystamy z LINQ to nie musimy się martwić o sposób połączenia z danymi. Program potrafi pobrać dane z dowolnego źródła. Dzięi tej aplikacji mamy możliwość w łatwiejszy sposób tworzyć aplikacje nie tylko internetowe ale i stacjonarne. LINQ ma coś wspólnego z SQL tzn. jego architektura jest podobna.  Sposób w jaki LINQ pobiera dane czyli zapytania jest całkowicie niezależny od źródła, nie ma więc różnicy czy będzie to baza danych czy też tablica czy dokument XML.  Schemat działania jest bardzo prosty, Dane zawarte w jednej z tych form są odczytywane Przez LINQ i dostarczane do aplikacji desktop lub strony WWW. Do testowania nowego rozwiązania będziemy potrzebowali Visual Studio 2008, jednak nie musimy instalować całego oprogramowania a wystarczy zainstalować jedynie silnik bazy dnych oraz Visual C#. Do baz danych możemy za pomocą LINQ tworzyć dowolne zapytania i nieważne jak to jest baza.

phpMyAdmin

Zarządzanie serwerem MySQL
Najwygodniejszym sposobem obsługi serwera MySQL jest darmowe narzędzie o nazwie phpMyAdmin. Instalacja jest prosta, po pobraniu rozpakopwywujemy plik i kierujemy do niego posiadany serwer www. W systemie Debian narzędzie to znajduje się na liście repozytoriów więc możemy je zainstalować za pomocą komendy apt-get install. Narzędzie trzeba zabezpieczyć przed dostępem osób trzecich. Na początku w zakładce Uprawnienia nadajemy hasło dla wszystkich userów. Do logowania niezbędny jest plik phpmyAdmin, edytujemy plik config.sample.inc.php i w lini 17 wstawiamy frazę odpowiadającą szyfrowaniu następnie zapisujemy go jako confing.inc.php. Należy też zainstalować bibliotekę służącą szyfrowaniu nazywa się ona mcrypt.

Po załogowaniu ukażą nam się parametry serwera MySQL i WWW. Kilkoma kliknięciami możemy utworzyć nową bazę danych. W zakładce SQl możemy wprowadzać komendy. Zakładka Uprawnienia może nam w organizacji uprawnień na naszym serwerze. Można tam np. ograniczyć zasoby konkretnemu użytkownikowi.

Duże bazy danych składają się z ogromnej ilości tabel dzięski raz napisanemu skryptowi SQL możemy wielokrotnie go używać. Tworzenie tabel i wpisów nie jest trudne, trudniejsze jesrt zaprojektowanie całej bazy danych.

HSQLDB

Nie wiele osób zna ten silnik baz danych. Wszyscy znamy MySQL PostrageSQL, Ms server czy Oracle ale kto słyszał o HSQLDB? Na pewno niewielu. Panuje moda na MySQL ale przecież nie każdy potrzebuje skomplikowanych baz danych, HSQLDB jest prostsze i łatwiejsze do opanowania, trzymajmy się zasady że to co jest bardziej rozbudowane to jest trudniejsze do nauki. Z powodzenia można Oracle zastąpić prostszymi i do tego funkcjonalnymi rozwiązaniami. Właśnie taka jest baza HSQLDB. rozpowszechniana na podstawie licencji BSD. Jest to relacyjna baza danych która oparta została o język JAVA i XML. Połączenie tych technologii dało dobry rezultat w którego wyniku otrzymaliśmy proste i wydajne narzędzie. Silnik ten jest używany w OpenOffice. Baza ta występuje w jednej wersji, jest to spakowany zipem pakiet zwierający foldery i pliki. Pobrany pakiet nie wymaga żadnych czynności instalacyjnych, wystarczy nagrać go na dysk.. Program ten można uruchomić jako serwer lub jako proces aplikacji. Serwer pracuje przy wykorzystaniu silnika wirtualnej maszyny Javy. Nasłuchuje on połączeń z sieci. Z bazą łączymy się za pomocą sterownika JDBC HSQLDB, silnik ten może obsłużyć jednocześnie do dziesięciu baz danych. Wadą rozwiązania jest to że przy każdym uruchomieniu komputera trzeba od nowa wykonywać czynności rozruchowe.

Podstawy MySQL

MySQL to narzędzie które operuje na bazach danych, tworzy je modyfikuje i przechowuje dane. Co najważniejsze serwer MySQL jest wydajny i stabilny, jego instalacja jest darmowa. Nie ważne czy mamy doczynienia z MySQL pod systemem Windows czy innym praca na bazach danych zawsze wygląda tak samo. Zawdzięczamy to językowi SQL, skrót ten oznacza Structured Query Language. Serwer baz danych firmy Microsoft taże posługuje się tym językiem, Oracle też ale mogą występować drobne różnice. Najważniejszym plusem tego silnika bazodanowego jest możliwość łączenia się witryn www z bazą danych. Czyli serwer Apache współpracuje z serwerem MySQL. Przyjrzyjmy się działami tych serwerów na dystrybucji DEBIAN. Abyśmy mogli zacząć korzystać z dobrodziejstw MYSQL-a musimy zainstalować kilka pakietów. Są to apache2 php5 libapache2-mod-php5 mysql-server mysql-client php5-mysql. Po przeprowadzeniu instalacji trzeba utworzyć użytkownika i nadać mu hasło robimy to poleceniem MYSQL.

mysql> CREATE USER ‘user1’@’localhost’ identyfied by ‘haslo1’
Polecenie to tworzy użytkownika o nazwie user1 i tworzy dla niego hasło: haslo1

mysql>GRANT SELECT, INSERT, UPDATE, DELETE ON *.* to ‘user1’@’localhost’

Dajemy uprawnienia do wszystkich baz danych za wyjątkiem tworzenia nowych.

Debian:~# mysql –user=user1 –p

Logowanie

Kolejnym krokiem będzie utworzenie bazy danych.

Tworzenie bazy

Aby utworzyć bazę danych należy po zalogowaniu wykonać polecenia:

Mysql> CREATE DATABASE moja_baza;

Mysql> SHOW DATABASE;

Mysql> USE moja_baza;

Mysql> CREATE TABLE ‘kontakty’ (

è ‘e-mail’ text,

è ‘adres’ text,

è ‘opis’ text );

Powstała nam tabela składająca się z trzech pól formatu tekstowego. W celu nauki do bazy musimy wprowadzić jakieś dane. Mamy do wyboru dwa sposoby, robimy to za pomoca klienta mysql w ten sam sposób co tworzyliśmy tabele lub za pomocą skrypu php uruchamianego z pozimou przeglądarki.

Jeśli chodzi o skrypty to najlepiej urzyć dwóch plików, pierwszy to będzie formularz html a drugi to funkcje operujące na bazie. Przyjeło się że wszystkie funkcje umieszcza się w jednym pliku.

Nasz formularz który wprowadzi dane do bazy powinien wyglądać w ten sposób:

<?

Include(„funkcje.php”);

?>

<form action=”zapisz_dane.php” metod=”post”>

email: <input type=”text” size=”50” name=”email” value=””><br/>

adres strony: <input type=”text” size=”80” name=”adres” value=””><br/>

opis twojej strony www <input type=”text” size=”250” name=”opis” value=””><br/></br>

<input type=”submit” value=”ZAPISZ”>

</form>

<?

zapisz();

?>

function zapisz()

{ $adres=trim($_POST[‘adres’]);

$regx=’/^((?:[a-z0-9]+)(?:\.\w+)+))(?:L\d+))?(\/.+?)?(?:\?(.+?))?(?:\#(.+?))?$/;

if(preg_match($regx,$adres,$match)){

$sql_conn=mysql_connect(„$serwer”,$user”,”haslo”);

mysql_select_db(„$baza”,$sql_cionn) or die („nie wybrano bazy – błąd”);

$zapytanie=mysql_query(„select adres from adres where adres=’adres’”);

if (mysql_fetch_row($zapytanie)) echo”taki wpis już jest w naszej bazie”;

else

{$temat=trim($_POST[‘temat’]);