Wszelkie prawa zastrzeżone. Rozpowszechnianie arty kułu bez zgody Software Wy dawnictwo Sp. z o.o. zabronione.

Wielkość: px
Rozpocząć pokaz od strony:

Download "Wszelkie prawa zastrzeżone. Rozpowszechnianie arty kułu bez zgody Software Wy dawnictwo Sp. z o.o. zabronione."

Transkrypt

1 2 / Wszelkie prawa zastrzeżone. Rozpowszechnianie arty kułu bez zgody Software Wy dawnictwo Sp. z o.o. zabronione. Softw a r e W y da w n ict w o Sp. z o.o., u l. Lew a r tow skieg o 6, W a r sza w a, POLSKA. Kon ta kt : Da r iu sz Pa w łow ski (dpa w low psolm a g.or g )

2 Początki, czyli Interbase za darmo Anatol Ogórek Programista PHP najczęściej wybiera MySQL lub PostgreSQL wychodząc z założenia, że produkt najpopularniejszy oznacza najlepszy. Ten warunek nie zawsze jest jednak spełniony. Od 2000 roku bardzo intensywnie rozwijany jest projekt. Efektem prac jest darmowa, w pełni relacyjna i profesjonalna baza danych, wprost idealna dla webdeweloperów. W SIECI 1. oficjalna strona a 2. informacje na temat Interbase/ 3. strona dla użytkowników IB/FB 4. de/ strona z narzędziami dla IB/FB (po niemiecku) 5. strona dla początkujących użytkowników FB 6. rge.net/ interfejs webowy do zarządzania FB/IB NA CD Na dołączonym do pisma CD znajdują się wszystkie omawiane w artykule skrypty oraz program instalacyjny a. Zalet spółki PHP + SQL nie sposób nie docenić. Co ciekawe, wielu webmasterów utożsamia SQL-a z bazą danych MySQL sądząc, że jest to jedyne słuszne rozwiązanie. Niektórzy wykorzystują też coraz popularniejszego SQLite'a lub linuksowego PostgreSQL-a. To jednak nie koniec dobrych rozwiązań. Mało tego, istnieją systemy lepsze, a jednym z nich jest. Nazwa wielu osobom skojarzy się (po części słusznie) z odchudzoną przeglądarką internetową Mozilla, którą nieświadomie ochrzczono w ten sposób. Spowodowało to spore zamieszanie i wiele dyskusji, ponieważ nazwa ta była już wcześniej zajęta przez darmową bazę danych, która mimo wielu zalet ciągle jest niestety mało znana. 25 lipca 2000 roku Borland opublikował kod źródłowy swojej, do dzisiaj bardzo popularnej bazy Interbase na licencji IPL (InterBase Public License v.1.0). Wtedy na jego podstawie został zapoczątkowany projekt SQL, który ma na celu dalsze rozwijanie bardzo już solidnego narzędzia Borlanda. stał się bazą danych oferowaną na licencji Open Source, a co za tym idzie, zupełnie darmową i do dzisiejszego dnia intensywnie rozwijaną. Co należy wiedzieć? Czytelnikowi przyda się ogólna wiedza na temat relacyjnych baz danych. Powinien też znać podstawy PHP. Co obiecujemy? Z artykułu czytelnik dowie się, jak zbudować aplikację bazodanową w oparciu o a, z uwzględnieniem takich cech jak transakcyjność, wyzwalacze czy blokady na poziomie wierszy. Powiemy też, dlaczego a w przeciwieństwie do MySQL-a można uważać za w pełni relacyjną bazę danych. 44

3 Początki Dostępny jest na wielu różnych platformach, począwszy od Linuksa, poprzez szereg innych systemów uniksowych i Microsoft Windows, a na Mac OS X kończąc. Przyjrzyjmy się bliżej jego możliwościom. Potęga ognistego ptaka Niewątpliwie za jedną z większych zalet a można uznać jego łatwość obsługi. Instalacja pod Windows sprowadza się do kilku kliknięć myszką, natomiast w systemach uniksowych wystarczy uruchomić odpowiedni skrypt instalacyjny. Baza potrzebuje bardzo niewielu zasobów systemowych, zarówno jeśli chodzi o miejsce na dysku jak i pamięć operacyjną. Wynika to stąd, że silnik Interbase projektowany był w czasach, gdy komputery nie miały jeszcze tak dużej mocy obliczeniowej jak obecnie. Nie oznacza to, że baza jest prymitywna - wręcz przeciwnie, funkcjonalnością dorównuje wielu komercyjnym i drogim odpowiednikom. Pliki bazy danych mogą być rozmieszczone w wielu różnych miejscach na dysku i nic nie stoi na przeszkodzie, aby przechowywać je na osobnych partycjach. Jest to niewątpliwą zaletą, jeśli spodziewamy się, że nasza baza może w przyszłości osiągnąć duży rozmiar. Kolejną cechą a jest niemal pełna zgodność ze standardami SQL: zaimplementowano w niej większość cech SQL-89, SQL-92 oraz część właściwości SQL-99. System posiada pełną obsługę złączeń warunkowych i bezwarunkowych (ang. inner join, left join, right join, outer join), unie (ang. unions) i perspektywy (ang. views). Dla użytkowników MySQL-a nowością będzie możliwość korzystania z podzapytań (ang. subqueries). Dodatkowo wsparcie dla pól wyliczanych (ang. calculated fields), procedur składowanych (ang. stored procedures), wyzwalaczy (ang. triggers), wyzwalaczy na perspektywach, więzów (ang. constraints) czy też lokalizacji sprawia, że bazę można uznać za w pełni profesjonalną. Generatory Każda baza danych posiada swój mechanizm nadawania unikalnych identyfikatorów. Przykładowo w MySQL możemy korzystać z pól typu autoincrement, a w Oracle z sekwencji. W zie wykorzystuje się generatory. Generator nie jest ściśle powiązany z żadną kolumną, ani nawet z żadną tabelą. Może się zdarzyć, że jeden generator będzie obsługiwał wszystkie tabele naszej bazy. Zwykle jednak przyjmuje się, że istnieje osobny generator dla każdej tabeli, która posiada klucz główny (ang. primary key). Aby stworzyć generator, wystarczy wykonać polecenie: CREATE GENERATOR nazwa_generatora; Następnie, aby nadawanie unikalnych numerów odbywało się automatycznie, można na tabelę założyć wyzwalacz: :SET TERM!! ; CREATE TRIGGER SET_UNIQUE_ FOR OUR_TABLE BEFORE INSERT AS BEGIN IF (NEW. IS NULL) THEN NEW. = GEN_(OUR_TABLE_GENERATOR, 1); END!! SET TERM ;!! W tym wypadku przed wstawieniem wiersza do tabeli, jeśli pole ma wartość NULL nadawana jest mu kolejna wartość generatora. Nie jest jednak konieczne używanie wyzwalaczy. Wartość generatora można również pobrać i wstawić do bazy ręcznie za pomocą funkcji: GEN_(nazwa_generatora, skok). Bardzo ważną cechą generatorów jest to, że nie są transakcyjne. Jeśli rozpoczniemy transakcję, pobierzemy kolejną wartość z generatora, a następnie anulujemy transakcję, generator nie cofnie się do poprzedniej wartości. Wbrew pozorom jest to olbrzymia zaleta, ponieważ daje nam stuprocentową pewność, że otrzymamy unikalne. Dla webdeweloperów świetnie nadaje się do tworzenia dynamicznych serwisów WWW. Ciężko podać przypadek, w którym nie sprostałby naszym wymaganiom. Jeśli potrzebujemy bazy prostej w administracji, wieloplatformowej, mającej niewielkie wymagania sprzętowe, a do tego darmowej, wybór może być tylko jeden. Istnieje oczywiście Postgre- SQL, lecz uruchomienie go na systemach innych niż Linux jest dość trudne. PostgreSQL ma też zdecydowanie większe wymagania, jeśli chodzi o zasoby systemowe oraz przestrzeń na dysku, a jego konfiguracja i administracja jest znacznie bardziej skomplikowana. Warto dodać, że tempo rozwoju a jest zawrotne, a kolejne wersje przynoszą coraz większą funkcjonalność i wydajność systemu. Praktyka Zalety a można mnożyć bardzo długo. Przejdźmy jednak do konkretów. Załóżmy, że tworzymy serwis wymagający wysokiej niezawodności, bezpieczeństwa oraz kontroli integralności danych. Potrzebujemy więc bazy z doskonałą obsługą transakcyjności. Transakcja to zbiór operacji, których wykonanie musi zakończyć się sukcesem. W przypadku niepowodzenia którejkolwiek z nich wszystkie powinny być anulowane. Transakcje opisuje zasada AC Atomicity, Consistency, Isolation, and Durability: Atomicity transakcja może być wykonana tylko w całości albo wcale, Consistency stan bazy danych zawsze przedstawia stan przed lub po transakcji. Zapytania do systemu w czasie wykonywania transakcji muszą pokazywać stan bazy przed transakcją, Isolation transakcja zachodzi niezależnie od innych wykonywanych operacji, w tym od innych transakcji, Durability w przypadku awarii całego systemu bazodanowego transakcje pozostają kompletne. W naszym projekcie MySQL niestety się nie sprawdzi, ponieważ transakcje w tej bazie są dopiero w powijakach. Jeśli dodatkowo system ma być dostępny na różnych platformach systemowych, nie mamy zbyt wielkiego wyboru. Pokażemy teraz, jak w praktyce wygląda wykorzystanie a z poziomu PHP. Spróbujemy wykorzystać transakcyjność za pomocą funkcji wbudowanych 45

4 Początki Listing 1. Tworzymy tabelę INVOICE DROP TABLE INVOICE; CREATE TABLE INVOICE( INTEGER NOT NULL PRIMARY KEY, NUMBER varchar(30) default '', DOC_DATE date, SALE_DATE date, CONTRACTOR varchar(250) default '', NETTO NUMERIC(15,2) default 0, VAT NUMERIC(15,2) default 0, GROSS_SUM NUMERIC(15,2) default 0 ); DROP GENERATOR INVOICE_GEN; CREATE GENERATOR INVOICE_GEN; w PHP oraz zastosować wyzwalacze i procedury składowane. Zacznijmy więc od podstaw, czyli od instalacji. Instalacja Wersja dla Microsoft Windows rozpowszechniana jest w postaci standardowego instalatora. Jedyna opcja, którą warto zaznaczyć, to copy client library to <system> directory, co spowoduje, że biblioteka FBCLIENT.DLL zostanie skopiowana do katalogu systemowego. Na koniec należy jeszcze zadecydować, czy ma być uruchamiany jako usługa (Win XP, Win 2000) czy jako aplikacja (Win 9x). Po kilku minutach mamy zainstalowaną i gotową do użycia bazę danych. W przypadku Linuksa po pobraniu i rozpakowaniu pakietu należy z poziomu użytkownika root uruchomić skrypt install.sh, który cały proces instalacji wykona automatycznie. Nasza baza zostanie zainstalowana w katalogu /opt/firebird/. Wszystkie niezbędne narzędzia administracyjne znajdują się w katalogu instalacyjnym, w podkatalogu bin/. Będziemy jeszcze poproszeni o podanie standardowego hasła masterkey dla domyślnego użytkownika SYSDBA (administratora bazy danych). Oczywiście można korzystać z ustawień domyślnych, co pozbawia nas wszelkich dodatkowych czynności administracyjnych, ale nie jest to bezpieczne. Warto zmienić domyślne hasło oraz założyć nowego użytkownika. W tym celu należy skorzystać z polecenia gsec z podkatalogu bin/:./gsec -user SYSDBA -pass masterkey Listing 2. Tworzymy tabelę POSITIONS oraz generator DROP TABLE POSITIONS; CREATE TABLE POSITIONS( id INTEGER NOT NULL PRIMARY KEY, _INVOICE INTEGER, ITEM VARCHAR(20) default '', QUANTITY NUMERIC(15,3) default 0, NETTO NUMERIC(15,2) default 0, VAT_RATE NUMERIC(5,2) default 0); DROP GENERATOR POSITIONS_GEN; CREATE GENERATOR POSITIONS_GEN; SET TERM!!; create trigger POSITIONS_GEN_ for POSITIONS BEFORE INSERT POSITION 0 AS BEGIN NEW.id = GEN_(POSITIONS_GEN,1); END!! SET TERM ;!! Następnie możemy zmienić hasło administratora: GSEC>modify SYSDBA S -pw nowe_hasło oraz dodać nowego użytkownika foo z hasłem bar: GSEC>add foo -pw bar GSEC>quit Po tych czynnościach możemy utworzyć nową bazę danych, której właścicielem będzie użytkownik foo. Można to zrobić z poziomu konsoli isql:./isql SQL>CREATE DATABASE 'invoice.gdb's USER 'foo' PASSWORD 'bar'; Na dysku została utworzona baza danych plik invoice.gdb. pozwala dodatkowo na skopiowanie tego pliku w dowolne miejsce na dysku stanowi to jego olbrzymią zaletę. Wystarczy, że w ścieżce do bazy podczas połączenia wpiszemy: localhost:/sciezka/do/pliku/s invoice.gdb i baza zostanie poprawnie otwarta (zakładając oczywiście, że nadane są prawa do odczytu/zapisu pliku). W ten sposób możemy utworzyć kilka różnych baz danych i rozmieścić je na osobnych partycjach. Daje to nam dużą elastyczność i pewność, że w razie braku miejsca na jednej z partycji, możemy umieścić plik z bazą na nowo dodanym dysku zmieniając jedynie ścieżkę dostępu. W dalszej części artykułu zakładamy, że użytkownik korzysta z systemu Linux (w przypadku systemu Windows zmiany będą niewielkie w większości wypadków wystarczy jedynie zmodyfikować ścieżki dostępu) oraz że plik invoice.gdb znajduje się w katalogu /opt/firebird. Przykład z życia Załóżmy, że piszemy skrypt do wystawiania faktur VAT. Tworzymy więc pliki invoice.sql (Listing 1) oraz positions.sql (Listing 2) i wykonujemy dodając do bazy nowe tabele: /opt/firebird/bin/isql -u foo S -p bar /opt/firebird/ invoices.gdb<invoice.sql /opt/firebird/bin/isql -u foo S -p bar /opt/firebird/s invoices.gdb<positions.sql Zakładamy, że użytkownik wprowadził już dane. Pora wykorzystać PHP i połączyć się z em spójrzmy zatem na Listing 3. Do nawiązania połączenia służy funkcja ibase _ connect(). Teraz musimy zapisać dane do tabel. Aby mieć pewność, że dane zostały zapisane poprawnie, musimy w tym miejscu rozpocząć transakcję: $tr = ibase_trans($dbh);s Po tej czynności możemy przejść do właściwych operacji, czyli zapisu danych. Zakładamy, że dane faktury znajdują się w tablicy asocjacyjnej, której pola mają takie same nazwy jak pola tabeli w bazie danych. Na początku musimy zapisać ogólne dane dotyczące faktury do tabeli INVOICE. W tym celu należy najpierw pobrać wartość generatora przypisanego do tej tabeli za pomocą zapytania: select GEN_(INVOICE_GEN, 1)S FROM RDB$DATABASE Teraz możemy wstawić do bazy dane faktury. Należy wspomnieć, że znaną praktyką jest wstawianie wartości do 46

5 Początki tabeli przed pobraniem wygenerowanego identyfikatora przy pomocy funkcji MAX(nazwa _ pola). W przypadku aplikacji WWW postępowanie takie jest bardzo niebezpieczne, ponieważ może się okazać, że otrzymaliśmy identyfikator rekordu, który w międzyczasie wstawił ktoś inny. Wtedy zapisywane w kolejnym kroku pozycje dopisalibyśmy do zupełnie innej faktury. Bezpieczeństwo tego typu operacji w znacznej mierze zależy od stosowanego przez bazę danych poziomu izolacji (ang. isolation level). Dla a domyślnie jest to poziom snapshot (transakcja ma dostęp do wszystkich tabel, lecz nie do zmian wprowadzonych i zatwierdzonych przez inne, rozpoczęte później transakcje), w którym moglibyśmy skorzystać z funkcji MAX() do pobrania identyfikatora ostatnio dodanej pozycji, lecz jeśli przełączylibyśmy poziom izolacji np. na read commited (transakcja ma dostęp do wszystkich tabel i zmian wprowadzonych oraz zatwierdzonych przez inne transakcje) mogłoby się okazać, że nasz program w niektórych przypadkach nie działa poprawnie. Mamy zatem pobrane wcześniej faktury możemy zapisać do bazy wszystkie pozycje tablicy POSITIONS z tym identyfikatorem jako kluczem obcym. Jeśli w trakcie wystąpi błąd zapisu którejkolwiek pozycji, powinniśmy wycofać wszystkie operacje (wraz z zapisaniem danych ogólnych) oraz wyświetlić odpowiedni komunikat błędu. Wyzwalacze Wyzwalacz (ang. trigger) to specjalna procedura, uruchamiana automatycznie podczas zajścia operacji na bazie danych. W zie można tworzyć wyzwalacze uruchamiane przed lub po wstawianiu (INSERT), modyfikacji (UPDATE) lub skasowaniu (DELETE) rekordu. Wyzwalacze nie służą jedynie go generowania unikalnych identyfikatorów. Można je wykorzystać do wielu różnych celów na przykład do obsługi pól automatycznie wyliczanych, jednak głównym ich zadaniem jest zapewnienie spójności danych w bazie. Na przykład, po skasowaniu faktury, powinny również zostać usunięte wszystkie jej pozycje. W tym celu możemy stworzyć odpowiedni wyzwalacz, który pobierze identyfikator usuniętego rekordu i skasuje wszelkie pozycje z takim kluczem obcym Listing 4. Po dodaniu takiego wyzwalacza Listing 3. Łączymy się z em i wstawiamy dane do bazy <?php $host = 'localhost:/opt/firebird/invoice.gdb'; $username = 'foo'; $password ='bar'; $dbh = ibase_connect($host, $username, $password); if (!$dbh) die ("error connecting to database"); $tr = ibase_trans( $dbh); $invoice = array("number"=>"2/04/2004", "DOC_DATE"=>" ","SALE_DATE"=>" ", "CONTRACTOR"=>"Jan Kowalski Sp. z o.o", "NETTO"=>"100","VAT"=>"22","GROSS_SUM"=>"122"); $poz= array( array( "ITEM"=>"Drukarka", "QUANTITY"=>"2", "NETTO"=>"400","VAT_RATE"=>"0.22"), array("item"=>"monitor", "QUANTITY"=>"1", "NETTO"=>"1200","VAT_RATE"=>"0.22")); // pobieramy wartość pola id przed wstawieniem do bazy $query = 'select GEN_(INVOICE_GEN, 1) FROM RDB$DATABASE'; $sth = ibase_query($tr, $query); if (!$sth) database_error ("Błąd przy pobieraniu ", $tr); $row = ibase_fetch_row($sth); $id = $row[0]; $query = "INSERT INTO INVOICE (, NUMBER, DOC_DATE, SALE_DATE, CONTRACTOR, NETTO, VAT, GROSS_SUM) VALUES('$id', '${invoice[number]}','${invoice[doc_date]}', '${invoice[sale_date]}','${invoice[contractor]}', '${invoice[netto]}','${invoice[vat]}','${invoice[gross_sum]}')"; // wstawiamy fakturę do bazy $sth = ibase_query($tr, $query); if (!$sth) database_error ("Błąd przy wstawianiu faktury", $tr); // wstawiamy kolejno wszystkie pozycje faktury for ($a = 0; $a<count( $poz ); $a++) { $query = "INSERT INTO POSITIONS (_INVOICE, ITEM, QUANTITY, NETTO) VALUES($id,'".$poz[$a][ITEM]."','".$poz[$a][QUANTITY]."', '".$poz[$a][netto]."')"; $sth = ibase_query($tr, $query); if (!$sth) database_error ("Błąd przy wstawianu pozycji", $tr); } // wszystko poszło OK. Zatwierdzamy transakcję. ibase_commit($tr); echo ("Fakturę dodano pomyślnie"); // funkcja obsługująca błędy function database_error ($error, $transaction) { // wycofujemy transakcję ibase_rollback($transaction); }?> // i kończymy działanie skryptu komunikatem o błędzie die($error); 47

6 Początki Listing 4. Wyzwalacz, który usunie wszystkie pozycje faktury z danym kluczem obcym DROP trigger delete_invoice; SET TERM!!; create trigger delete_invoice for invoice AFTER DELETE AS BEGIN delete from positions where id_invoice=old.; END!! SET TERM ;!! działa zupełnie inaczej. Domyślnie każda transakcja widzi swoją wersję rekordu z chwili, kiedy została rozpoczęta. Zmiany wprowadzone przez inne transakcje nie są widoczne, dopóki transakcje nie zostaną zatwierdzone (commit). Najlepiej zobrazuje to poniższy przykład: Otwieramy pierwszą sesję, która modyfikuje pozycję z tabeli BOOK: Session #1: SQL> select * from book; 1 Lord of the rings Widać, że każda z sesji posiada odrębne wersje rekordów widoczne w ramach swojej transakcji. Zatwierdźmy teraz wprowadzone zmiany: Session #1: SQL> commit; Session #2: SQL> commit; SQL> select * from book; możemy wejść do konsoli isql i usunąć ręcznie jedną z wstawionych wcześniej faktur. Przekonamy się, że pozycje będą kasowane automatycznie. Procedury składowane Użytkownicy mający doświadczenie w pracy z dużymi środowiskami bazodanowymi zapewne nieraz korzystali z procedur składowanych (ang. stored procedures). Są to procedury pisane w wewnętrznym języku bazy danych, parsowane i kompilowane jednorazowo przed pierwszym wykonaniem. Zastosowanie ich znacząco odciąży naszą aplikację, przyspieszy jej działanie i zwiększy bezpieczeństwo. W zie również możemy pisać takie procedury przy użyciu języka PSQL, który, choć może mniej rozbudowany od swoich odpowiedników w ORACLE czy PostgreSQL, spełnia wymagania większości użytkowników. Dodatkowo, pozwala na tworzenie funkcji UDF (User Defined Functions). Są one pisane w zewnętrznym języku (np. C/C++ lub Delphi), a następnie kompilowane do postaci bibliotek współdzielonych (*.dll lub *.so). Biblioteki te ładowane są do bazy danych, po czym można z nich korzystać z poziomu SQL-a. Procedury składowane w połączeniu z funkcjami UDF mogą przerzucić część ciężaru czasochłonnych operacji na silnik bazy danych, a co za tym idzie dodatkowo zwiększyć wydajność aplikacji. Blokady na poziomie wierszy MySQL domyślnie oferuje blokady wyłącznie na poziomie tabel. W przypadku bardzo obciążonych serwisów metoda taka jest dalece nieefektywna. Mechanizm transakcji w zie 1 Lord of the rings SQL> update book set title = 'Harry Potter' where id = 1; SQL> select * from title; 1 Harry Potter Na poziomie tej sesji, zawartość tabeli została zmodyfikowana. Otwieramy drugą sesję, która odwołuje się do tej samej tabeli: Session #2: SQL> select * from book; 1 Harry Potter Jak widać. niezatwierdzona transakcja z sesji pierwszej nie zabroniła dostępu do danych transakcji z sesji drugiej, jednakże widoczne były nieuaktualnione (stare) dane. Innym bardzo ważnym mechanizmem blokowania dostępu do rekordów jest select for update. Ta metoda gwarantuje, że żadna inna sesja nie zmieni wybranych danych, dopóki sesja blokująca nie zakończy ich przetwarzania (czyli nie zatwierdzi transakcji). Spójrzmy na poniższy przykład: Session #1: SQL> select * from book where id = 1 for update Pseudorelacyjność kontra MySQL Klucze obce służą do tworzenia połączeń relacyjnych (relacji stąd właśnie pochodzi nazwa relacyjna baza danych) pomiędzy tabelami. W większości przypadków dopasowywane pola to: klucz podstawowy (primary key) z głównej tabeli, który dostarcza unikatowego identyfikatora, dla klucza obcego z każdego rekordu w drugiej tabeli. Weźmy bazę danych dokumentów z księgowości tabele dokumenty i kontrahenci: tabela dokumenty zawiera m. in. kolumny id _ dokumentu (klucz główny), numer, data, kontrahent, a tabela kontrahenci: kolumny id _ kontrahenta (klucz główny), nazwisko, adres, telefon, , itp. Kolumna dokumenty.kontrahent może być kluczem obcym odnoszącym się do kolumny kontrahenci.id _ kontrahenta. Unika się w ten sposób powielania tych samych danych w różnych tabelach, co m. in. ułatwia utrzymanie zgodności pomiędzy zawartością bazy danych, a stanem faktycznym. Nic nie stoi na przeszkodzie, aby taką relację stworzyć bez kluczy głównych/obcych, lecz wtedy nie będzie zachowana pełna integralność danych. Dzięki kluczom silnik bazy danych dba o to, aby do tabeli podrzędnej możliwe było wstawienie jedynie rekordów, które mają przyporządkowany wpis w tabeli głównej. Niemożliwe będzie również usunięcie rekordu z tabeli głównej, jeśli nie zostały wcześniej usunięte wszystkie przyporządkowane mu rekordy z tabeli podrzędnej. MySQL nie posiada pełnego wsparcia dla mechanizmu kluczy głównych, dlatego często bywa nazywany pseudorelacyjną bazą danych. Częściowa implementacja dostępna jest jedynie dla tabel typu InnoDB. oferuje pełne wsparcie dla kluczy obcych, wraz ze sprawdzaniem więzów integralności. 48

7 Początki with lock; 1 Lord of the rings Session #2: SQL> update book set title = 'PHP Solutions' where id = 1; (Blokada) Jak widać, w tym wypadku druga sesja nie może modyfikować nawet swojej wersji rekordu. Może tego dokonać dopiero po zatwierdzeniu transakcji w obu sesjach. Należy zaznaczyć, że takie sterowanie dostępem do rekordów równie dobrze możemy zastosować z poziomu PHP. MySQL nie oferuje tak rozbudowanego mechanizmu obsługi transakcji, nawet jeśli korzystamy z tabel typu InnoDB. Abstrakcyjny dostęp do a Wielu webmasterów przyzwyczaiło się już do korzystania z abstrakcyjnych metod dostępu do bazy danych. Nie ma w tym nic dziwnego, jako że w PHP obsługa każdej bazy danych odbywa Listing 5. Przykład połączenia z bazą przy użyciu biblioteki PEAR <?php?> require_once("pear.php"); require_once("db.php"); $dsn = array( 'phptype' => 'ibase', 'username' => 'foo', 'password' => 'bar', 'hostspec' => 'localhost', 'database' => '/opt/ firebird/invoice.gdb', ); $options = array( 'persistent' => true ); $db = DB::connect($dsn,$options); $sql = "select * from invoice"; $result = $db->query($sql); $row = $result->fetchrow(); print_r ($row); $db->disconnect(); Listing 6. Przykład połączenia z bazą przy użyciu biblioteki ADOdb <? include("adodb.inc.php"); $db = NewADOConnection('firebird'); $db->connect("localhost", "foo", "bar", "/opt/firebird/.gdb"); $result = $db->execute("select * FROM POSITONS"); if ($result === false) die("błąd"); while (!$result->eof) { for ($i=0, $max=$result->fieldcount(); $i < $max; $i++) print $result->fields[$i].' '; $result->movenext(); print "<br>"; }?> się za pomocą osobnych funkcji. Jeśli potrzebujemy przenośności kodu oraz niezależności od bazy danych, powinniśmy skorzystać z bibliotek takich jak AdoDB czy PEAR:DB. Zobaczmy, jak interfejsy te radzą one sobie z em. i PEAR:DB PEAR to zbiór bibliotek i rozszerzeń PHP będących odpowiednikiem perlowskiego CPAN, dzięki którym budowa nawet skomplikowanej aplikacji staje się o wiele prostsza. PEAR dołączany jest do każdej oficjalnej dystrybucji PHP, dzięki czemu pisany przez nas kod staje się w pełni przenośny. Jednym z komponentów tej biblioteki jest również klasa DB, która zapewnia zunifikowane API obsługi baz danych. Wśród wielu wspieranych baz jest również /Interbase. Jeśli wcześniej tworzyliśmy swoje projekty przy użyciu tej biblioteki można modyfikując kilka linijek kodu dostosować je do współpracy z em. Na Listingu 5 przedstawiliśmy przykład połączenia z bazą przy użyciu biblioteki PEAR. Wygląda ono podobnie, jak w przypadku innych baz danych. Tworzymy DSN (Data Source Name) i wypełniamy go odpowiednimi parametrami. W przypadku a (Interbase) dobrze jest przekazać DSN w postaci obiektu, a nie łańcucha. W przeciwnym wypadku mogą wystąpić problemy z połączeniem. Następnie tworzymy obiekt $options, który do prawidłowego połączenia z bazą danych musi zawierać pole: persistent => true; Do danych odwołujemy się w identyczny sposób jak w przypadku innych baz obsługiwanych przez PEAR:DB. i AdoDB Skrót ADODB oznacza Active Data Objects DataBase (Obiektowa Baza Danych). W uproszczeniu można powiedzieć, że jest odpowiednikiem PEAR:DB. Również ta biblioteka wśród szerokiej gamy obsługiwanych baz oferuje dostęp do a. Na Listingu 6 przedstawiliśmy prosty przykład połączenia z bazą danych. Jeśli ktoś korzystał już z tej biblioteki, na pewno nie będzie miał problemów z przesiadką na a. Wszystkich spragnionych dodatkowej wiedzy na temat AdoDB odsyłamy do artykułu AdoDB interfejsowa alternatywa z numeru 4/2004, gdzie bardzo dokładnie opisywaliśmy implementację aplikacji bazodanowej w oparciu o interfejs AdoDB. Podsumowanie Jak pokazaliśmy w artykule, imponuje funkcjonalnością znaną niemal jedynie z komercyjnych baz takich jak ORACLE czy SyBase. Jego licencja (IPL) pozwala na dowolne wykorzystanie programu również w projektach komercyjnych. Prostota instalacji i administracji, niewielkie wymagania sprzętowe oraz wysoka wydajność i niezawodność sprawiają, że przy rozpoczynaniu kolejnego projektu warto pomyśleć o zie jako dobrej alternatywie dla MySQL czy PostgreSQL. 49

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK Dostęp do baz danych z serwisu www - PHP Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK Bazy Danych I, 8 Grudzień 2009 Plan Trochę teorii Uwagi techniczne Ćwiczenia Pytania Trójwarstwowy

Bardziej szczegółowo

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł

Bardziej szczegółowo

DECLARE VARIABLE zmienna1 typ danych; BEGIN

DECLARE VARIABLE zmienna1 typ danych; BEGIN Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;

Bardziej szczegółowo

Podstawy programowania III WYKŁAD 2

Podstawy programowania III WYKŁAD 2 Podstawy programowania III WYKŁAD 2 Jan Kazimirski 1 Komunikacja z bazami danych 2 PHP i bazy danych PHP zapewnia dostęp do wielu popularnych baz danych. Kilka poziomów abstrakcji: Funkcje obsługujące

Bardziej szczegółowo

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Laboratorium nr 4. Temat: SQL część II. Polecenia DML Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze

Bardziej szczegółowo

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście. Rodzaje triggerów Triggery DML na tabelach INSERT, UPDATE, DELETE Triggery na widokach INSTEAD OF Triggery DDL CREATE, ALTER, DROP Triggery na bazie danych SERVERERROR, LOGON, LOGOFF, STARTUP, SHUTDOWN

Bardziej szczegółowo

Kowalski Marcin 156439 Wrocław, dn. 3.06.2009 Jaśkiewicz Kamil 148592. Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

Kowalski Marcin 156439 Wrocław, dn. 3.06.2009 Jaśkiewicz Kamil 148592. Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami Kowalski Marcin 156439 Wrocław, dn. 3.06.2009 Jaśkiewicz Kamil 148592 Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami Spis treści Założenia Projektowe...1 Schemat Bazy Danych...1

Bardziej szczegółowo

Projektowanie baz danych za pomocą narzędzi CASE

Projektowanie baz danych za pomocą narzędzi CASE Projektowanie baz danych za pomocą narzędzi CASE Metody tworzenia systemów informatycznych w tym, także rozbudowanych baz danych są komputerowo wspomagane przez narzędzia CASE (ang. Computer Aided Software

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9

Wdrożenie modułu płatności eservice. dla systemu Magento 1.4 1.9 Wdrożenie modułu płatności eservice dla systemu Magento 1.4 1.9 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do

Bardziej szczegółowo

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa

Wprowadzenie do projektowania i wykorzystania baz danych. Katarzyna Klessa Wprowadzenie do projektowania i wykorzystania baz danych Katarzyna Klessa POWTÓRKA Z PIERWSZYCH ZAJĘĆ Lista słówek - do zapamiętania na początek Z podstaw SQL: CREATE - Tworzenie tabeli, czyli Coś czego

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x Wdrożenie modułu płatności eservice dla systemu oscommerce 2.3.x - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4 Wdrożenie modułu płatności eservice dla systemu Gekosale 1.4 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do integracji...

Bardziej szczegółowo

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych Paweł Paduch paduch@tu.kielce.pl 06-04-2013 Rozdział 1 Wstęp Na dzisiejszych zajęciach zajmiemy się projektem bazy danych.

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5 Wdrożenie modułu płatności eservice dla systemu Zen Cart 1.3.9 1.5 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

Bardziej szczegółowo

Cele. Definiowanie wyzwalaczy

Cele. Definiowanie wyzwalaczy WYZWALACZE Definiowanie wyzwalaczy Cele Wyjaśnić cel istnienia wyzwalaczy Przedyskutować zalety wyzwalaczy Wymienić i opisać cztery typy wyzwalaczy wspieranych przez Adaptive Server Anywhere Opisać dwa

Bardziej szczegółowo

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

Paweł Cieśla. Dokumentacja projektu

Paweł Cieśla. Dokumentacja projektu Paweł Cieśla Dokumentacja projektu Projekt Project1 został utworzony i skompilowany na próbnej wersji Delphi XE 4. Po uruchomieniu programu należy kliknąć przycisk Wczytaj plik tekstowy, następnie wskazać

Bardziej szczegółowo

Wprowadzenie do Doctrine ORM

Wprowadzenie do Doctrine ORM Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,

Bardziej szczegółowo

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Wprowadzenie do projektowania i wykorzystania baz danych Relacje Wprowadzenie do projektowania i wykorzystania baz danych Relacje Katarzyna Klessa Dygresja nt. operatorów SELECT 2^2 SELECT 2^30 SELECT 50^50 2 Dygresja nt. operatorów SELECT 2^30 --Bitwise exclusive OR

Bardziej szczegółowo

15. Funkcje i procedury składowane PL/SQL

15. Funkcje i procedury składowane PL/SQL 15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp

Bardziej szczegółowo

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1 Bazy danych Wykład IV SQL - wprowadzenie Copyrights by Arkadiusz Rzucidło 1 Czym jest SQL Język zapytań deklaratywny dostęp do danych Składnia łatwa i naturalna Standardowe narzędzie dostępu do wielu różnych

Bardziej szczegółowo

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia Składowe wyzwalacza ( ECA ): określenie zdarzenia ( Event ) określenie

Bardziej szczegółowo

Projektowanie systemów baz danych

Projektowanie systemów baz danych Projektowanie systemów baz danych Seweryn Dobrzelewski 4. Projektowanie DBMS 1 SQL SQL (ang. Structured Query Language) Język SQL jest strukturalnym językiem zapewniającym możliwość wydawania poleceń do

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność

Bardziej szczegółowo

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze

Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze Wykład 5 funkcje i procedury pamiętane widoki (perspektywy) wyzwalacze 1 Funkcje i procedury pamiętane Następujące polecenie tworzy zestawienie zawierające informację o tym ilu jest na naszej hipotetycznej

Bardziej szczegółowo

SQL 4 Structured Query Lenguage

SQL 4 Structured Query Lenguage Wykład 5 SQL 4 Structured Query Lenguage Instrukcje sterowania danymi Bazy Danych - A. Dawid 2011 1 CREATE USER Tworzy nowego użytkownika Składnia CREATE USER specyfikacja użytkownika [, specyfikacja użytkownika]...

Bardziej szczegółowo

Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/

Oracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 6 Wprowadzenie Definiowanie wyzwalaczy DML Metadane wyzwalaczy Inne zagadnienia, tabele mutujące Wyzwalacze INSTEAD OF Wyzwalacze

Bardziej szczegółowo

Naprawa uszkodzonej bazy Interbase/Firebird

Naprawa uszkodzonej bazy Interbase/Firebird Naprawa uszkodzonej bazy Interbase/Firebird W przypadku, gdy podczas pracy programu KS-Apteka Windows pojawiają się błędy jak na rysunku 1, (takie błędy w szczegółach zaczynają się od słów: internal gds

Bardziej szczegółowo

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia).

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia). POZIOMY IZOLACJI TRANSAKCJI 1. Microsoft SQL Server 2012 (od SQL Server 2005) W systemie SQL Server można wybrać sposób sterowania współbieżnością. Podstawowy sposób to stosowanie blokad. Wykorzystywane

Bardziej szczegółowo

2010-11-22 PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

2010-11-22 PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH PLAN WYKŁADU Bezpieczeństwo w języku SQL Użytkownicy Uprawnienia Role BAZY DANYCH Wykład 8 dr inż. Agnieszka Bołtuć OGRANICZENIA DOSTĘPU DO DANYCH Ograniczenie danych z tabeli dla określonego użytkownika

Bardziej szczegółowo

Ogólne informacje o Systemie Archiwizacji ZEUS

Ogólne informacje o Systemie Archiwizacji ZEUS Ogólne informacje o Systemie Archiwizacji ZEUS System Archiwizacji ZEUS przeznaczony jest do opracowywania zasobów archiwalnych. Oprogramowanie powstało w wyniku wielomiesięcznej analizy potrzeb jednego

Bardziej szczegółowo

Internetowe bazy danych

Internetowe bazy danych Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy Internetowe bazy danych wykład 3 dr inż. Jacek Mazurkiewicz e-mail: Jacek.Mazurkiewicz@pwr.wroc.pl Typy tabel MySQL domyślny MyISAM inne możliwe:

Bardziej szczegółowo

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych SQL SQL (ang. Structured Query Language): strukturalny język zapytań używany do tworzenia strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych

Bardziej szczegółowo

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

Aspekty aktywne baz danych

Aspekty aktywne baz danych Aspekty aktywne baz danych Aktywne aspekty baz danych Baza danych powinna zapewniać pewne własności i niezmienniki; Własności te powinny mogą być zapisane do bazy danych, a baza danych powinna zapewniać

Bardziej szczegółowo

Instalacja MySQL. http://dev.mysql.com/downloads/mysql/5.0.html#downloads

Instalacja MySQL. http://dev.mysql.com/downloads/mysql/5.0.html#downloads Instalacja MySQL Baza MySQL tworzona jest przez Szwedzką firmę MySQL AB strona domowa projektu to: www.mysql.com Wersję bezpłatną (różniącą się od komercyjnej brakiem wsparcia technicznego, nośnika i podręcznika)

Bardziej szczegółowo

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk Wstęp wprowadzający do laboratorium 2 mgr inż. Rafał Grycuk Plan prezentacji 1. Czym jest T-SQL i czym się różni od standardu SQL 2. Typy zapytań 3. Zapytanie typu SELECT 4. Słowo o indeksach T-SQL (1)

Bardziej szczegółowo

Bazy Danych i Usługi Sieciowe

Bazy Danych i Usługi Sieciowe Bazy Danych i Usługi Sieciowe Ćwiczenia I Paweł Daniluk Wydział Fizyki Jesień 2011 P. Daniluk (Wydział Fizyki) BDiUS ćw. I Jesień 2011 1 / 15 Strona wykładu http://bioexploratorium.pl/wiki/ Bazy_Danych_i_Usługi_Sieciowe_-_2011z

Bardziej szczegółowo

z przedmiotu: Techniki Informatyczne Stanisław Flaga (stanislaw.flaga@agh.edu.pl)

z przedmiotu: Techniki Informatyczne Stanisław Flaga (stanislaw.flaga@agh.edu.pl) mysql relacyjna baza danych wstęp Materiały pomocnicze do laboratorium z przedmiotu: Techniki Informatyczne Stanisław Flaga () Wydział Inżynierii Mechanicznej i Robotyki Katedra Automatyzacji Procesów

Bardziej szczegółowo

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8 Bazowy skrypt PHP do ćwiczeń z bazą MySQL: Utwórz skrypt o nazwie cw7.php zawierający następującą treść (uzupełniając go o właściwą nazwę uŝytkownika

Bardziej szczegółowo

Instrukcjaaktualizacji

Instrukcjaaktualizacji Instrukcja Instrukcjaaktualizacji aktualizacji oprogramowania oprogramowaniainpro InProBMS BMS SPIS TREŚCI 1. AKTUALIZACJA 3 1.1. ARCHIWIZACJA BAZY DANYCH...3 1.1.1. AUTOMATYCZNA...3 1.1.2. RĘCZNA...4

Bardziej szczegółowo

Język SQL, zajęcia nr 1

Język SQL, zajęcia nr 1 Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze

Bardziej szczegółowo

Firebird Alternatywa dla popularnych darmowych systemów bazodanowych MySQL i Postgres

Firebird Alternatywa dla popularnych darmowych systemów bazodanowych MySQL i Postgres Firebird Alternatywa dla popularnych darmowych systemów bazodanowych MySQL i Postgres Artur Kozubski Software Development GigaCon Warszawa 2008 Plan Historia projektu Firebird Architektura serwera Administracja

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

Bazy danych i usługi sieciowe

Bazy danych i usługi sieciowe Bazy danych i usługi sieciowe Ćwiczenia I Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) BDiUS ćw. I Jesień 2014 1 / 16 Strona wykładu http://bioexploratorium.pl/wiki/ Bazy_danych_i_usługi_sieciowe_-_2014z

Bardziej szczegółowo

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED Podręcznik użytkownika Katowice 2010 Producent programu: KAMSOFT S.A. ul. 1 Maja 133 40-235 Katowice Telefon: (0-32) 209-07-05 Fax:

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Zapytania SELECT Dr inż. Paweł Kasprowski pawel@kasprowski.pl Przykład HAVING Podaj liczebność zespołów dla których najstarszy pracownik urodził się po 1940 select idz, count(*) from prac p

Bardziej szczegółowo

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach

Wykład V. Indeksy. Struktura indeksu składa się z rekordów o dwóch polach Indeksy dodatkowe struktury służące przyśpieszeniu dostępu do danych o użyciu indeksu podczas realizacji poleceń decyduje SZBD niektóre systemy bazodanowe automatycznie tworzą indeksy dla kolumn o wartościach

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota Laboratorium nr 3 1 Bazy Danych Instrukcja laboratoryjna Temat: Wprowadzenie do języka SQL, tworzenie, modyfikacja, wypełnianie tabel 3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota 1)

Bardziej szczegółowo

INSTRUKCJA NAPRAWA BAZY DANYCH FIREBIRD ISO 9001:2008 Dokument: 2011.01.11 Wydanie: 1 Waga: 90

INSTRUKCJA NAPRAWA BAZY DANYCH FIREBIRD ISO 9001:2008 Dokument: 2011.01.11 Wydanie: 1 Waga: 90 NAPRAWA USZKODZONEJ BAZY INTERBASE/FIREBIRD W przypadku, gdy podczas pracy programu KS-APTEKA Windows pojawiają się błędy jak na rysunku 1, (takie błędy w szczegółach zaczynają się od słów: internal gds

Bardziej szczegółowo

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych Przetwarzanie i organizowanie danych : bazy danych Nr ćwiczenia 10 Temat Aplikacje

Bardziej szczegółowo

Piotr Dynia. PowerPivot. narzędzie do wielowymiarowej analizy danych

Piotr Dynia. PowerPivot. narzędzie do wielowymiarowej analizy danych Piotr Dynia PowerPivot narzędzie do wielowymiarowej analizy danych Od autora Wraz z wprowadzeniem na rynek nowej wersji pakietu Office: Microsoft Office 2010 udostępniono darmowy dodatek dla Excela o nazwie

Bardziej szczegółowo

QUERY język zapytań do tworzenia raportów w AS/400

QUERY język zapytań do tworzenia raportów w AS/400 QUERY język zapytań do tworzenia raportów w AS/400 Dariusz Bober Katedra Informatyki Politechniki Lubelskiej Streszczenie: W artykule przedstawiony został język QUERY, standardowe narzędzie pracy administratora

Bardziej szczegółowo

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko Podstawowe pojęcia dotyczące relacyjnych baz danych mgr inż. Krzysztof Szałajko Czym jest baza danych? Co rozumiemy przez dane? Czym jest system zarządzania bazą danych? 2 / 25 Baza danych Baza danych

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium PHP + bazy danych Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię PHP. Aplikacja pokazuje takie aspekty, współpraca PHP z bazami

Bardziej szczegółowo

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika Programowanie w SQL procedury i funkcje UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika 1. Funkcje o wartościach skalarnych ang. scalar valued

Bardziej szczegółowo

Pracownia internetowa w szkole ZASTOSOWANIA

Pracownia internetowa w szkole ZASTOSOWANIA NR ART/SBS/07/01 Pracownia internetowa w szkole ZASTOSOWANIA Artykuły - serwery SBS i ich wykorzystanie Instalacja i Konfiguracja oprogramowania MOL Optiva na szkolnym serwerze (SBS2000) Artykuł opisuje

Bardziej szczegółowo

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu Zbiór pytań nr 5 1 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu connect athos/musketeer grant select,insert,update,delete on athos.services to porthos with grant option; grant

Bardziej szczegółowo

Bazy Danych. Ćwiczenie 1: Przygotowanie środowiska pracy dla bazy MySQL z wykorzystaniem XAMPP Portable Lite oraz MySQL-Front

Bazy Danych. Ćwiczenie 1: Przygotowanie środowiska pracy dla bazy MySQL z wykorzystaniem XAMPP Portable Lite oraz MySQL-Front Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Bazy Danych Ćwiczenie 1: Przygotowanie środowiska pracy dla bazy MySQL z wykorzystaniem XAMPP Portable Lite oraz MySQL-Front opracował:

Bardziej szczegółowo

MySQL. Æwiczenia praktyczne

MySQL. Æwiczenia praktyczne IDZ DO PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG MySQL. Æwiczenia praktyczne Autor: Marek Nowakowski ISBN: 83-7197-884-7 Format: B5, stron: 114 TWÓJ KOSZYK DODAJ

Bardziej szczegółowo

Administracja bazami danych

Administracja bazami danych Administracja bazami danych dr inż. Grzegorz Michalski Na podstawie wykładów dra inż. Juliusza Mikody Klient tekstowy mysql Program mysql jest prostym programem uruchamianym w konsoli shell do obsługi

Bardziej szczegółowo

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678'); polecenie UPDATE służy do aktualizacji zawartości wierszy tabel lub perspektyw składnia: UPDATE { } SET { { = DEFAULT NULL}, {

Bardziej szczegółowo

Bazy danych. Dr inż. Paweł Kasprowski

Bazy danych. Dr inż. Paweł Kasprowski Plan wykładu Bazy danych Architektura systemów zarządzania bazami danych Realizacja zapytań algebra relacji Wielodostęp do danych - transakcje Dr inż. Paweł Kasprowski pawel@kasprowski.pl Aplkacja przechowująca

Bardziej szczegółowo

NARZĘDZIA WIZUALIZACJI

NARZĘDZIA WIZUALIZACJI Kurs interaktywnej komunikacji wizualnej NARZĘDZIA WIZUALIZACJI Andrzej Łachwa andrzej.lachwa@uj.edu.pl 3 4/8 Zobacz film: http://www.ted.com/talks/david_mccandless_the_beauty_of_dat a_visualization.html

Bardziej szczegółowo

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Rozpoczniemy od zaprojektowania bazy danych w programie SYBASE/PowerDesigner umieszczamy dwie Encje (tabele) prawym

Bardziej szczegółowo

Typy tabel serwera MySQL

Typy tabel serwera MySQL Typy tabel serwera MySQL Kopie zapasowe baz danych Zabezpieczanie serwera MySQL Zakładanie konta użytkownika z określonymi uprawnieniami Zarządzanie kontem i bazą danych Kilka kolejnych informacji na temat

Bardziej szczegółowo

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych widok ankiety w przeglądarce Rozpoczniemy od zaprojektowania bazy danych w programie SYBASE/PowerDesigner umieszczamy

Bardziej szczegółowo

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu):

Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu): Utwórz bazę danych Cw: CREATE DATABASE Cw Sprawdzenie poziomu izolacji transakcji (w aktualnym połączeniu): DBCC USEROPTIONS Przykład z zapisem do tabeli tymczasowej: --Jeśli istnieje tabela tymczasowa

Bardziej szczegółowo

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED Podręcznik użytkownika Katowice 2010 Producent programu: KAMSOFT S.A. ul. 1 Maja 133 40-235 Katowice Telefon: (0-32) 209-07-05 Fax:

Bardziej szczegółowo

AKTYWNY SAMORZĄD. Instrukcja instalacji, aktualizacji i konfiguracji. www.as.tylda.pl

AKTYWNY SAMORZĄD. Instrukcja instalacji, aktualizacji i konfiguracji. www.as.tylda.pl AKTYWNY SAMORZĄD Instrukcja instalacji, aktualizacji i konfiguracji TYLDA Sp. z o.o. 65-001 Zielona Góra ul. Wazów 6a tel. 68 324-24-72 68 325-75-10 www.tylda.pl tylda@tylda.pl wersja 1.0 2013.04.12 2

Bardziej szczegółowo

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL, Mój projekt przedstawia bazę danych noclegów składającą się z 10 tabel. W projekcie wykorzystuje program LibreOffice Base do połączenia psql z graficznym interfejsem ( kilka formularzy przedstawiających

Bardziej szczegółowo

Baza danych. Modele danych

Baza danych. Modele danych Rola baz danych Systemy informatyczne stosowane w obsłudze działalności gospodarczej pełnią funkcję polegającą na gromadzeniu i przetwarzaniu danych. Typowe operacje wykonywane na danych w systemach ewidencyjno-sprawozdawczych

Bardziej szczegółowo

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań, 04.03.2010

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań, 04.03.2010 Bezpieczeństwo interoperacyjnego hostingu Gerard Frankowski, Zespół Bezpieczeństwa PCSS 4. Konferencja MIC Nowoczesne technologie bliżej nas Poznań, 04.03.2010 1 Agenda Wprowadzenie Zespół Bezpieczeństwa

Bardziej szczegółowo

Instrukcja instalacji aplikacji Comarch Smart Card ToolBox

Instrukcja instalacji aplikacji Comarch Smart Card ToolBox Instrukcja instalacji aplikacji Comarch Smart Card ToolBox dla urządzeń kryptograficznych Bankowość Internetowa R-Online Biznes Spis treści: 1. Wstęp...2 2. Instalacja Comarch Smart Card ToolBox w systemie

Bardziej szczegółowo

startup pfile= '$HOME/admin/pfile/initDBx.ora'; create spfile from pfile= '$HOME/admin/pfile/initDBx.ora';

startup pfile= '$HOME/admin/pfile/initDBx.ora'; create spfile from pfile= '$HOME/admin/pfile/initDBx.ora'; Administrowanie systemami baz danych Ćwiczenia laboratoryjne (1) Podstawy uruchamiania serwera bazy danych 1. Przy pomocy programu Putty, połącz się z serwerem miner.cs.put.poznan.pl. Dla wygody otwórz

Bardziej szczegółowo

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38 Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem zajęcia 1 dr Jakub Boratyński pok. A38 Program zajęć Bazy danych jako podstawowy element systemów informatycznych wykorzystywanych

Bardziej szczegółowo

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X Wrocław 2006 INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład X Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl INTERNETOWE BAZY DANYCH PLAN NA DZIŚ zajęcia 1: 2. Procedury składowane

Bardziej szczegółowo

Założenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Założenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń. Cel: polecenia T-SQL Założenia do ćwiczeń: SQL Server UWM Express Edition: 213.184.8.192\SQLEXPRESS Authentication: SQL Server Authentication Username: student01,, student21 Password: student01,., student21

Bardziej szczegółowo

Najczęściej występujące problemy z instalacją i konfiguracją i ich rozwiązania.

Najczęściej występujące problemy z instalacją i konfiguracją i ich rozwiązania. Najczęściej występujące problemy z instalacją i konfiguracją i ich rozwiązania. Q. Jak uruchomić instalator? A. Trzeba nadać instalatorowi atrybut 'wykonywalny'. Można to zrobić wydając polecenie `chmod

Bardziej szczegółowo

SSI Katalog. Program do katalogowania zawartości dysków. Dariusz Kalinowski

SSI Katalog. Program do katalogowania zawartości dysków. Dariusz Kalinowski 1.) Wymagania sprzętowe: SSI Katalog Program do katalogowania zawartości dysków Dariusz Kalinowski - System operacyjny: Windows 2000 lub Windows xp - Procesor minimum Pentium 1Ghz - Pamięć RAM minimum

Bardziej szczegółowo

Pawel@Kasprowski.pl Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Pawel@Kasprowski.pl Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07 PHP i bazy danych Paweł Kasprowski pawel@kasprowski.pl Użycie baz danych Bazy danych używane są w 90% aplikacji PHP Najczęściej jest to MySQL Funkcje dotyczące baz danych używają języka SQL Przydaje się

Bardziej szczegółowo

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi 1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) Tworząc tabelę nie możemy określić, do którego pliku trafi, lecz możemy określić do której grupy plików trafi Zawsze istnieje grupa zawierająca

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

I. Informacje ogólne. Jednym z takich systemów jest Mambo. MAMBO (CMS) I. Informacje ogólne CMS, Content Management System ("system zarządzania treścią") jest to jedna lub zestaw aplikacji internetowych pozwalających na łatwe utworzenie oraz późniejszą aktualizację

Bardziej szczegółowo

Zarządzanie obiektami bazy danych Oracle11g

Zarządzanie obiektami bazy danych Oracle11g Zarządzanie obiektami bazy danych Oracle11g Wstęp Obiekty to struktury przechowujące, porządkujące lub operujące na danych takie jak: Tabele Więzy integralności Indeksy Widoki Sekwencje Procedury Linki

Bardziej szczegółowo

Bazy danych 10. SQL Widoki

Bazy danych 10. SQL Widoki Bazy danych 10. SQL Widoki P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2005/06 Widoki, AKA Perspektywy W SQL tabela, która utworzono za pomoca zapytania CREATE TABLE, nazywa się tabela

Bardziej szczegółowo

Instrukcja instalacji aplikacji Plansoft.org

Instrukcja instalacji aplikacji Plansoft.org plansoft.org PLANOWANIE ZAJĘĆ, REZERWOWANIE SAL I ZASOBÓW Instrukcja instalacji aplikacji Plansoft.org Oprogramowanie współpracuje z każdą wersją bazy danych Oracle, włączając darmową wersję XE Edition.

Bardziej szczegółowo

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS UNIWERSYTET ZIELONOGÓRSKI INSTYTUT INFORMATYKI I ELEKTROTECHNIKI ZAKŁAD INŻYNIERII KOMPUTEROWEJ Przygotowali: mgr inż. Arkadiusz Bukowiec mgr inż. Remigiusz Wiśniewski LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

Zarządzanie kontami użytkowników w i uprawnieniami

Zarządzanie kontami użytkowników w i uprawnieniami 106 Plan prezentacji 107 Zarządzanie kontami użytkowników w i uprawnieniami Schematy a użytkownicy Tworzenie użytkowników, uwierzytelnianie Przywileje systemowe i obiektowe, role Profile kontrola wykorzystania

Bardziej szczegółowo

Sieciowa instalacja Sekafi 3 SQL

Sieciowa instalacja Sekafi 3 SQL Sieciowa instalacja Sekafi 3 SQL Niniejsza instrukcja opisuje instalację Sekafi 3 SQL w wersji sieciowej, z zewnętrznym serwerem bazy danych. Jeśli wymagana jest praca jednostanowiskowa, należy postępować

Bardziej szczegółowo

TABUN_CMS. System zarządzania treścią dla dedykowanej grupy użytkowników. Tabun_CMS 2008 Marcin Biegun, Szymon Bąk

TABUN_CMS. System zarządzania treścią dla dedykowanej grupy użytkowników. Tabun_CMS 2008 Marcin Biegun, Szymon Bąk TABUN_CMS System zarządzania treścią dla dedykowanej grupy użytkowników Spis treści TABUN_CMS...1 Informacje wstępne...3 Cele wdrożenia systemu...3 Wykorzystane technologie...3 Ocena działania systemu...3

Bardziej szczegółowo

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Instalacja SQL Server Express. Logowanie na stronie Microsoftu Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy

Bardziej szczegółowo

BAZY DANYCH Cz III. Transakcje, Triggery

BAZY DANYCH Cz III. Transakcje, Triggery BAZY DANYCH Cz III Transakcje, Triggery Transakcje Definicja: Zbiór operacji (modyfikacja danych, usuwanie, wstawianie, tworzenie obiektów bazodanowych), które albo wszystkie kończone są sukcesem, albo

Bardziej szczegółowo

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych Nr ćwiczenia: 9 Praca z bazą danych MySQL wersja 2.0 Temat: Cel ćwiczenia:

Bardziej szczegółowo

Instrukcja instalacji i obsługi programu Szpieg 3

Instrukcja instalacji i obsługi programu Szpieg 3 COMPUTER SERVICE CENTER 43-300 Bielsko-Biała ul. Cieszyńska 52 tel. +48 (33) 819 35 86, 819 35 87, 601 550 625 Instrukcja instalacji i obsługi programu Szpieg 3 wersja 0.0.2 123 SERWIS Sp. z o. o. ul.

Bardziej szczegółowo