Implementacja prototypu modułu dostępu do danych SkOs przy pomocy protokołu LDAP

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

Download "Implementacja prototypu modułu dostępu do danych SkOs przy pomocy protokołu LDAP"

Transkrypt

1 Implementacja prototypu modułu dostępu do danych SkOs przy pomocy protokołu LDAP Wojciech Kowalczyk( Przemysław Curzytek( 19 stycznia Częśćkonceptualna 1.1 Sformułowanie zadania projektowego SkOs, a mówiąc dokładniej Skład Osobowy- stanowi bardzo popularną bazę danych i doskonałe źródło podstawowych informacji na temat pracowników Akademii Górniczo-Hutniczej. Jest on przydatny w szczególności dla studentów, podczas wpisywania nazwisk i tytułów naukowych wykładowców do indeksów oraz kiedy zajdzie potrzeba uzyskania pewnych porad i skonsultowania się w sprawach naukowych drogą mailową, czy też odbycia bezpośredniej rozmowy w pokoju pracownika. Jednak oprócz studentów z tej bazy danych korzystają również pracownicy AGH oraz innych uczelni, a także osoby trzecie, które z różnych przyczyn potrzebują się skontaktować z daną osobą. Cały system SkOs został wykonany jako praca dyplomowa przy użyciu następujących technologii: Apache+PostgreSQL+PHP. Naszym zadaniem jest zaimportowanie istniejących danych do stworzonej przez nas bazy danych, a następnie postawienie serwera wykorzystującego protokół dostępu do katalogu, LDAP(Lightweight Directory Access Protocol). Spróbujemy również stworzyć prosty interfejs webowy dostępu do bazy danych przy wykorzystaniu popularnego frameworka webowego, Django. 1.2 Analiza stanu wyjściowego Projekt stanowi rozszerzenie, a zarazem alternatywę istniejącego na uczelni systemu SkOs. Dane zgromadzone w tej bazie są efektem kilkuletniej pracy administratorów tegoż systemu. Dla celów naszego projektu niezbędna jest możliwość zaimportowania zgromadzonych danych oraz ich późniejszego aktualizowania. Wiąże się to jednak z koniecznością wyrażenia zgody przez władze uczelni, ponieważ w bazie będą przetwarzane rzeczywiste dane osobowe. Dlatego też najprawdopodobniej w bazie nie znajdą się dane prywatne, takie jak adres zamieszkania, czy telefon prywatny. Istniejąca baza danych została przeanalizowana na podstawie udostępnionych zapomocąstrony 1 danychpersonalnych.niesątojednakwszystkieinformacjezawartewtej bazie. Reszta danych, jak na przykład lista osób administrujących poszczególne obszary bazy jest niedostępna. Jakkolwiek struktura SkOs wydaje się przejrzysta i nie mieliśmy problemu ze 1 1

2 1 CZĘŚĆ KONCEPTUALNA 2 stworzeniem projektu naszej bazy danych. Pojawiają się jednak obawy, co do stworzonej tabeli unit, w której zostaną umieszczone poszczególne jednostki administracyjne AGH. Założeniem tej tabeli jest możliwość rekursywnego przeszukiwania od najniższych szczebli do najwyższych w hierarchii struktur uczelni. Rozwiązanie takie uważamy w tej sytuacji za najprostsze, jednak nie wiemy jak zostało to zrealizowane w istniejącym systemie. 1.3 Analiza wymagań użytkownika Użytkownik systemu będzie chciał uzyskać interesujące go informacje używając interfejsu webowego pozwalającego na współpracę z serwerem. Będzie wysyłał do procesu postmastera żądania typu SELECT. Ponieważ tworzona baza danych jest przeznaczona wyłącznie do odczytu danych, należy położyć szczególny nacisk na prędkość wyszukiwania. Dobrym sposobem na uzyskanie takiego efektu będzie stworzenie indeksów, które w znaczący sposób zwiększają prędkość przeszukiwania danych w stosunku do typowego szukania sekwencyjnego. PostgreSQL jest jednak wyposażony w mechanizm automatycznego dodawania indeksu dla kolumny zdefiniowanej jako klucz główny. Prawdopodobnie będzie to wystarczające dla naszej niewielkiej bazy danych, choć bez większych konsekwencji będzie można dodać kilka innych indeksów. Może to jedynie spowolnić wprowadzanie i aktualizację danych, jednak czynności te będą wykonywane co pewien ustalony okres. 1.4 Określenie scenariuszy użycia i identyfikacja funkcji Baza danych SkOs ma jedynie charakter informacyjny. Użytkownik(host) nie może w żaden sposób modyfikować istniejących danych, ani dopisywać nowych. Może jedynie wyszukiwać pracowników AGH na podstawie dostępnych kryteriów, m.in. nazwisko, imie, grupa, stanowisko, funkcja, jednostka. Kryteria te są identyczne jak w przypadku istniejącego już systemu. Również uprawnienia administratora systemu są bardzo ograniczone. Nie może bowiem zmieniać zaimportowanych danych, zgodnie z ustawą o ochronie danych osobowych. Będzie natomiast odpowiadał za konfigurację systemu i czuwał nad poprawnym przebiegiem procedury importu danych, tak by nie doszło do naruszenia spójności, atomiczności i izolacji danych. Wyszukiwanie osób według kryteriów: 1. Wyszukiwanie podstawowe: (a) Nazwisko (b) Imię (c) Tytuł 2. Wyszukiwanie zaawansowane(= Wyszukiwanie podstawowe +): (d) Grupa (e) Stanowisko (f) Funkcja (g) (h) Jednostka

3 1 CZĘŚĆ KONCEPTUALNA 3 (i) Pawilon (j) Pokój (k) Telefon (l) Ciało kolegialne Ze względu na bardzo duże restrykcje nałożone na użytkowanie bazy danych diagramy DFD, STDiFHDsątrywialne. 1.5 FHD Functional Hierarchy Diagram 1. System zarządzania danymi osobowymi pracowników AGH 1.1 Ewidencja pracowników Wyszukiwanie pracownika Aktualizacja danych pracownika Dodanie pracownika Usunięcie pracownika Należy tutaj jednak zaznaczyć, że operacje dodawania, usuwania, czy też aktualizowania danych nie są przeprowadzane bezpośrednio przez administratora systemu, lecz w momencie importu i aktualizacji z bazy danych SkOs. 1.6 STD State Transition Diagram

4 1 CZĘŚĆ KONCEPTUALNA ERD Entity Relationship Diagram 1.8 DFD Data Flow Diagram diagram kontekstowy

5 2 CZĘŚĆ LOGICZNA 5 diagram zerowy(systemu) 2 Częśćlogiczna 2.1 Opis podstawowych tabel bazy danych Diagram ERD zawierający wszystkie tabele został przedstawiony już w sekcji 1.7. Na diagramie widoczne są zależności między tabelami, wyszczególnione są klucze główne i obce. PostgreSQL jest wyposażony w mechanizm automatycznego tworzenia indeksów na kolumnach będących kluczami głównymi tabel. Dla celów naszego projektu nie było potrzebne zdefiniowanie nowych indeksów, ze względu na fakt, iż dane są przenoszone do bazy hierarchicznej LDAP. 2.2 Słownikidanych Słowniki danych stanowią alternatywną metodę zapisu konceptualnego modelu danych. Każda tabela zawiera opis i typ atrybutów. Związki pomiędzy tabelami można odczytać na podstawie zawartego w sekcji 1.7 diagramu ERD. Przyjęta przez nas konwencja stanowi, że atrybuty tabeli będące kluczami obcymi posiadają identyczną nazwę jak klucze główne tabel połączonych relacjami, co ma pomóc w analizie struktury. W bazie danych występują dwie relacje typu wiele do wielu. Odpowiednie tabele pośrednie tych relacji posiadają w swoich nazwach sufiks pomoc. Tabela 1: tytul tytul id(pk) integer not null identyfikator tytułu naukowego tytul nazwa varchar(32) not null nazwa tytułu naukowego

6 2 CZĘŚĆ LOGICZNA 6 Tabela 2: pracownik pracownik id(pk) integer not null identyfikator pracownika AGH tytul id(fk) integer identyfikator tytułu naukowego imie varchar(32) imię pracownika nazwisko varchar(32) not null nazwisko pracownika Tabela 3: strona www www id(pk) integer not null identyfikator strony pracownika www text adres strony pracownika pracownik id(fk) integer not null identyfikator pracownika Tabela 4: adres prywatny pracownik id(pk,fk) integer not null identyfikator pracownika AGH ulica varchar(64) ulica miasto varchar(32) miasto kod pocztowy character(6) kod pocztowy Tabela 5: adres mail mail id(pk) integer not null identyfikator adresu mail mail text adres mail pracownika pracownik id(fk) integer not null identyfikator pracownika Tabela 6: telefon prywatny telefon id(pk) integer not null identyfikator telefonu telefon numer varchar(20) numer telefonu pracownik id(fk) integer not null identyfikator pracownika Tabela 7: funkcja agh funkcja agh id(pk) integer not null identyfikator funkcji AGH funkcja nazwa varchar(20) nazwa funkcji

7 2 CZĘŚĆ LOGICZNA 7 Tabela 8: jednostka agh jednostka agh id(pk) integer not null identyfikator jednostki AGH jednostka nazwa text not null nazwa jednostki jednostka nadrzedna id integer identyfikator jednostki nadrzędnej Tabela 9: funkcja pracownika funkcja pracownika id integer not null identyfikator funkcji (PK) pracownik id(fk) integer not null identyfikator pracownika funkcja agh id(fk) integer not null identyfikator funkcja AGH jednostka agh id(fk) integer not null identyfikator jednostki AGH Tabela 10: cialo kolegialne cialo kolegialne id(pk) integer not null identyfikator ciała kolegialnego cialo kolegialne nazwa text not null nazwa ciała kolegialnego jednostka agh id(fk) integer not null identyfikator jednostki nadzorującej ciało Tabela 11: cialo kolegialne pomoc cialo kolegialne id(pk) integer not null identyfikator tabeli pomocniczej pracownik id(fk) integer not null identyfikator pracownika cialo kolegialne id(fk) integer not null identyfikator ciała Tabela 12: grupa grupa id(pk) integer not null identyfikator grupy AGH grupa nazwa text not null nazwa grupy Tabela 13: stanowisko stanowisko id(pk) integer not null identyfikator stanowiska AGH stanowisko nazwa text not null nazwa stanowiska Tabela 14: pawilon pawilon id(pk) integer not null identyfikator pawilonu AGH pawilon nazwa text not null nazwa pawilonu

8 2 CZĘŚĆ LOGICZNA 8 Tabela 15: telefon sluzbowy telefon id(pk) integer not null identyfikator telefonu AGH telefon numer varchar(20) not null numer telefonu Tabela 16: fax zatrudnienie id(pk,fk) integer not null identyfikator faksu AGH telefon numer varchar(20) not null numer faksu Tabela 17: telefon sluzbowy pomoc telefon zatrudnienie id integer not null identyfikator tabeli pomocniczej (PK) telefon id(fk) integer not null identyfikator telefonu AGH zatrudnienie id(fk) integer not null identyfikator zatrudnienia Tabela 18: zatrudnienie zatrudnienie id(pk) integer not null identyfikator zatrudnienia pracownika pracownik id(fk) integer identyfikator pracownika jednostka agh id(fk) integer identyfikator jednostki AGH stanowisko id(fk) integer identyfikator stanowiska AGH grupa id(fk) integer identyfikator grupy AGH pawilon id(fk) integer identyfikator pawilonu AGH pietro pokoj varchar(40) piętro i numer pokoju pracownika glowne boolean defaulttrue oznaczenie zatrudnienia jako główne lub dodatkowe Powyższe tabele zostały stworzone tylko na podstawie analizy danych umieszczonych na stronach systemu SKOS. Oznacza to, iż pewne dane i relacje mogły zostać pominięte. Te dane posłużyły do znalezienia i odpowiedniego umiejscowienia w bazie następujących związków: 1. Każdy pracownik może posiadać 0 lub kilka stron www, adresów mailowych, telefonów prywatnych. 2. Każdy pracownik może posiadać lub nie tytuł naukowy. 3. Każdy pracownik może udostępnić swój adres prywatny lub nie. 4. Każdy pracownik może wykonywać 0 lub więcej funkcji 5. Każdy pracownik może należeć do 0 lub więcej ciał kolegialnych

9 2 CZĘŚĆ LOGICZNA 9 6. Każdy pracownik może posiadać 0 lub więcej miejsc pracy(tabela zatrudnienie), z miejscem pracy wiążą się jednostka, stanowisko, grupa, pawilon, piętro, pokój oraz numery telefonów służbowych 2.3 Analiza zależności funkcyjnych i normalizacja tabel Wszystkie tabele posiadają klucze proste, dlatego też wszystkie relacje są w drugiej postaci normalnej. Powodem użycia klucza prostego w tabelach pomocniczych relacji wiele do wielu jest fakt iż framework Django, który został wykorzystany do administracji bazy danych nie daje możliwości tworzenia kluczy złożonych. Taki klucz w literaturze angielskiej jest określany jako surrogate key. Wszystkie tabele oprócz tabeli adres prywatny(zależne od siebie pola miasto i kod pocztowy) są również w trzeciej postaci normalnej, a zarazem BCNF. Atrybuty są zależne jedynie od kluczy głównych. Denormalizację tabel uważamy tutaj za czynność zbyteczną, ze względu na fakt iż baza danych jest stosunkowo niewielka, a także później tworzony jest widok denormalizujący całą strukturę bazy danych, w celu umieszczenia danych w bazie LDAP. Poniżej umieszczony został kod SQL tworzący taki widok. create view ldap person (id,id prim,imie,nazwisko,cn,tytul,mail,www,tel prywatny,adres prywanty,grupa, stanowisko,pokoj,pawilon,fax,tel sluzbowy,czy glowne,jednostka agh,cialo kolegialne,funkcja) as select pracownik.pracownik id+1000, pracownik.pracownik id+1000, pracownik.imie, pracownik.nazwisko, pracownik.imie ŠŠ ŠŠpracownik.nazwisko, tytul.tytul nazwa, adres mail.mail, strona telefon prywatny.telefon numer, adres prywatny.ulica ŠŠ $ ŠŠadres prywatny.kod pocztowy ŠŠ ŠŠadres prywatny.miasto, grupa.grupa nazwa, stanowisko.stanowisko nazwa, zatrudnienie.pietro pokoj, pawilon.pawilon nazwa ŠŠ, ŠŠzatrudnienie.pietro pokoj, fax.fax, telefon sluzbowy.telefon numer, case when zatrudnienie.glowne = true then Główne miejsce pracy else Dodatkowe miejsce pracy end, zwroc jednostki(zatrudnienie.jednostka agh id), cialo kolegialne.cialo kolegialne nazwa, funkcja: ŠŠfunkcja agh.funkcja nazwa ŠŠ w jednostce: ŠŠ zwroc jednostki(funkcja pracownika.jednostka agh id) from pracownik left outer join tytul on tytul.tytul id = pracownik.tytul id left outer join adres mail on adres mail.pracownik id = pracownik.pracownik id left outer join strona www on strona id = pracownik.pracownik id left outer join telefon prywatny on telefon prywatny.pracownik id = pracownik.pracownik id left outer join adres prywatny on adres prywatny.pracownik id = pracownik.pracownik id

10 2 CZĘŚĆ LOGICZNA 10 left outer join zatrudnienie on zatrudnienie.pracownik id = pracownik.pracownik id left outer join grupa on grupa.grupa id = zatrudnienie.grupa id left outer join stanowisko on stanowisko.stanowisko id = zatrudnienie.stanowisko id left outer join pawilon on pawilon.pawilon id = zatrudnienie.pawilon id left outer join fax on fax.zatrudnienie id = zatrudnienie.zatrudnienie id left outer join telefon sluzbowy zatrudnienie pomoc on telefon sluzbowy zatrudnienie pomoc.zatrudnienie id = zatrudnienie.zatrudnienie id left outer join telefon sluzbowy on telefon sluzbowy.telefon id = telefon sluzbowy zatrudnienie pomoc.telefon id left outer join cialo kolegialne pracownik pomoc on cialo kolegialne pracownik pomoc.pracownik id = pracownik.pracownik id left outer join cialo kolegialne on cialo kolegialne.cialo kolegialne id = cialo kolegialne pracownik pomoc.cialo kolegialne id left outer join funkcja pracownika on funkcja pracownika.pracownik id = pracownik.pracownik id left outer join funkcja agh on funkcja agh.funkcja agh id = funkcja pracownika.funkcja agh id; 2.4 Opis tabel i widoków LDAP OpenLDAP dostarcza specjalnych narzędzi(sql-backend), za pomocą których możliwe jest przeniesienie danych z bazy PostgreSQL do bazy hierarchicznej LDAP. Operacja ta jest możliwa przy pomocy pięciu obowiązkowych tabel zdefiniowanych przez standardy pakietu OpenLDAP. Tabela 19: ldap oc mappings id(pk) integer notnull identyfikator klasy protokołu LDAP name varchar(64) not null nazwa klasy protokołu keytbl varchar(64) not null nazwa tabeli zawierających dane personalne keycol varchar(64) not null klucz główny tabeli create proc varchar(255) wyrażenie w języku SQL delete proc varchar(255) wyrażenie w języku SQL expect return integer not null wartość zwracana Tabela ldap oc mappings(tabela 19) definiuje m.in. przynależność poszczególnych wpisów widoku ldap person do odpowiedniej klasy protokołu LDAP- inetorgperson. Ponieważ nie jest możliwe tworzenie i usuwanie danych z bazy LDAP za pomocą plików ldif, pola create proc oraz delete proc mają wartość NULL. Gdyby jednak dopuścić taką możliwość pola te zawierałyby wyrażenia w języku SQL odpowiednio wstawiające oraz usuwające dane z bazy PostgreSQL. Pole expect return zgodnie z konwencją posiada zawsze wartość 0. Oprócz klasy inetorgperson do opisu pracowników w projekcie zostały użyte również klasy eduperson i pleduperson. Ponieważ jednak nie jest możliwe jednoczesne przypisanie obiektu do trzech klas, proces ten odbywa się przy pomocy innej tabeli. Dwie inne klasy: organization oraz organizationalunit opisują odpowiednio Akademię Górniczo-Hutniczą, jako organizację i ogólną społeczność pracowników.

11 2 CZĘŚĆ LOGICZNA 11 Wpisy jakie zostały wprowadzone do tabeli ldap oc mappings: 1. insert into ldap oc mappings(name,keytbl,keycol,create proc,delete proc,expect return) values( organization, uczelnia, id,null,null,0); 2. insert into ldap oc mappings(name,keytbl,keycol,create proc,delete proc,expect return) values( organizationalunit, jednostka organizacyjna, orgunit id,null,null,0); 3. insert into ldap oc mappings(name,keytbl,keycol,create proc,delete proc,expect return) values( inetorgperson, ldap person, id,null,null,0); Tabela 20: ldap attr mappings id(pk) integer not null identyfikator mapowania kolumnynaatrybutklasyldap oc map id(fk) integer not null identyfikator klasy protokołu LDAP name varchar(255) not null nazwa atrybutu klasy sel expr varchar(255) not null kolumna tabeli sel expr u varchar(255) from tbls varchar(255) not null nazwa tabeli join where varchar(255) wyrażenie SQL add proc varchar(255) wyrażenie SQL delete proc varchar(255) wyrażenie SQL param order integer not null expect return integer not null wartość zwracana Tabela ldap attr mappings(tabela 20) definiuje zależności między atrybutami klas protokołu LDAP, a odpowiednimi kolumnami widoku i tabel zawierających dane pracowników. Ponownieniezezwalasięnadodawanieiusuwaniewpisówzapomocąplikówldif,stądpola,któremożna uzupełnić wyrażeniami języka SQL mają wartość NULL. Ważne jest odpowiednie uzupełnienie pola sel expr nazwą kolumny, która później będzie wykorzystywana w procesie wyszukiwania danych. Za pomocą tabeli ldap attr mappings przemapowane zostały odpowiednie kolumny widoku ldap person na atrybuty klas. Lista użytych atrybutów poszczególnych klas: 1. organization(tabela uczelnia) (a) o- nazwa organizacji (b) postaladdress- adres pocztowy (c) telephonenumber- numer telefonu 2. organizationalunit(tabela jednostka orgaznizacyjna) (a) ou- nazwa jednostki organizacyjnej (b) description- opis jednostki 3. inetorgperson(widok ldap person)

12 2 CZĘŚĆ LOGICZNA 12 (a) employeenumber- numer identyfikujący pracownika(pracownik id+1000) (b) givenname- imię (c)sn-nazwisko (d)cn-imięinazwisko (e) title- tytuł naukowy (f)mail-adresmail (g) displayname- imię i nazwisko (h) uid- numer identyfikacyjny (i) labeleduri- adres strony internetowej (j) homephone- telefon prywatny (k) homepostaladdres- adres domowy (l) departmentnumber- nazwa jednostki AGH (m) roomnumber- piętro i numer pokoju (n)l-nazwapawilonu (o) facsimiletelephonenumber- numer faksu (p) telephonenumber- numer telefonu służbowego (q) description- oznaczenie miejsca pracy jako główne lub dodatkowe (r) ou- nazwa ciała kolegialnego (s)o-funkcjainazwajednostki,wktórejtafunkcjajestpełniona 4. eduperson, pleduperson(widok ldap person) (a) edupersonaffiliation- nazwa grupy pracowników (b) plposition- nazwa stanowiska Pełny opis klas i ich atrybutów dostępny jest na stronach Tabela 21: ldap referrals entry id(pk) integer not null identyfikator url text not null adres URL Tabela ldap referrals(tabela 21) jest tabelą obowiązkową, aczkolwiek nie znaleźliśmy żadnych informacji dotyczących jej przeznaczenia i użycia. W projekcie nie jest ona uzupełniana, ani używana. Kolejna tabela to tabela ldap entries. Jednak nie jest wskazane utworzenie tej tabeli, a następnie uzupełnienie jej odpowiednimi informacjami, ponieważ wiązałoby się to z koniecznością zduplikowania danych zgromadzonych we wcześniej utworzonym widoku. Dlatego zamiast tabeli jest tworzony widok o tej samej nazwie i wykorzystana jest do tego tabela pomocnicza, przechowująca dane statyczne.

13 2 CZĘŚĆ LOGICZNA 13 Tabela 22: ldap static entries id integer not null identyfikator obiektu dn varchar(255) not null unikatowy ciąg znaków identyfikujący obiekt oc map id integer not null identyfikator klasy obiektu parent integer not null identyfikator rodzica w drzewie hierarchii keyval integer not null identyfikator tabeli, z której pochodzi dany obiekt Wykonane wpisy do tabeli: insert into ldap static entries(id,dn,oc map id,parent,keyval) values(1, dc=agh,dc=edu,c=pl,1,0,1); insert into ldap static entries(id,dn,oc map id,parent,keyval) values(2, ou=people,dc=agh,dc=edu,c=pl,2,1,400); Następnie tworzony jest widok ldap entries: create view ldap entries(id,dn,oc map id,parent,keyval) as selectid,dn,ocmapid,parent,keyvalfromldapstaticentries union select id, cn= ŠŠcn ŠŠ +uid= ŠŠid ŠŠ,ou=people,dc=agh,dc=edu,c=PL, 3, 2, id from ldap person wherecnisnotnull; Widok ldap entries pełni dużą rolę w procesie przekazywania danych z bazy PostgreSQL do bazy LDAP. Po pierwsze nadaje każdemu obiektowi distinguish name, czyli unikatowy ciąg znaków, w którym zawarta jest również ścieżka drzewa do danego obiektu. Ważne jest wskazanie rodzica każdego obiektu. W przypadku pracowników rodzicem obiektu klasy inetorgperson jest organizationalunit people, którego rodzicem jest organization AGH, będąca korzeniem drzewa. Jak już wcześniej zostało wspomniane nie jest możliwe równoczesne przypisanie obiektu do trzech klas. Operacja ta jest wykonywana po stworzeniu widoku ldap entries. Pierwszym krokiem jest stworzenie tabeli, w której przechowywana jest lista dodatkowych klas wraz z identyfikatorami klas już użytych(tabela ldap objectclass list). Następnie, na jej podstawie w widoku ldap entry objclasses następuje przypisanie kolejnych obiektów z widoku ldap entries do odpowiedniej dodatkowej klasy. Tabela 23: ldap objectclass list oc map id integer not null identyfikator klasy z tabeli ldap oc mappings objectclass varchar(64) not null nazwa dodatkowej klasy Wpisy do tabeli: insert into ldap objectclass list values(1, dcobject ); insert into ldap objectclass list values(2, dcobject ); insert into ldap objectclass list values(3, eduperson ); insert into ldap objectclass list values(3, pleduperson );

14 2 CZĘŚĆ LOGICZNA 14 Widok ldap entry objclasses: create view ldap entry objclasses(entry id,oc name) as select id, objectclass from ldap entries,ldap objectclass list where ldap entries.oc map id = ldap objectclass list.oc map id; 2.5 Zapytania serwera LDAP Wyszukiwanie danych w bazie LDAP odbywa się przy pomocy polecenia ldapsearch. Komenda wywoływana jest w shellu. Jej składnia jest następująca: $ ldapsearch-x-b"dn""filtr" Parametr-x oznacza prostą autentykację,-b dn oznacza przeszukiwanie w bazie o zadanym dn. Przykłady prostych filtrów: "(objectclass=*)"- znajdź wszystkie obiekty "(&(objectclass=inetorgperson)(cn=m*))"- znajdź wszystkie obiekty klasy inetorg- Person o atrybucie cn(imię i nazwisko) zaczynającym się od litery M " (givenname=*sztof)(title=*dr*)"- znajdź wszystkie obiekty o imieniu kończącym się sztof lub tytule naukowym zawierającym wyrażenie dr(domyślnie klasy inetorgperson, ponieważ tylko ona posiada wymienione w filtrze atrybuty) W projekcie wykorzystaliśmy framework Django, oparty na pythonie. Dostęp do bazy danych oraz operacje wyszukiwania udostępnia moduł python-ldap(klient API LDAP). Operacja łącznia z bazą danych ldap następuje przy pomocy polecenia: con = ldap.initialize( ldap://localhost:389 ) Wyszukiwanie z kolei jest możliwe przy pomocy komendy: con.search s( dn, ldap.scope SUBTREE, filtr,[lista szukanych atrybutów])

Implementacja prototypu modułu dostępu do danych SkOs przy pomocy protokołu LDAP

Implementacja prototypu modułu dostępu do danych SkOs przy pomocy protokołu LDAP Implementacja prototypu modułu dostępu do danych SkOs przy pomocy protokołu LDAP Wojciech Kowalczyk, Przemysław Curzytek 1 grudnia 2009 1 Częśćkonceptualna 1.1 Sformułowanie zadania projektowego SkOs,

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

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

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

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

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

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Modelowanie hierarchicznych struktur w relacyjnych bazach danych Modelowanie hierarchicznych struktur w relacyjnych bazach danych Wiktor Warmus (wiktorwarmus@gmail.com) Kamil Witecki (kamil@witecki.net.pl) 5 maja 2010 Motywacje Teoria relacyjnych baz danych Do czego

Bardziej szczegółowo

P o d s t a w y j ę z y k a S Q L

P o d s t a w y j ę z y k a S Q L P o d s t a w y j ę z y k a S Q L Adam Cakudis IFP UAM Użytkownicy System informatyczny Aplikacja Aplikacja Aplikacja System bazy danych System zarządzania baz ą danych Schemat Baza danych K o n c e p

Bardziej szczegółowo

us lugi katalogowe? Czym różni si e serwer katalogowy od serwera bazy danych:

us lugi katalogowe? Czym różni si e serwer katalogowy od serwera bazy danych: Co to sa us lugi katalogowe? Czym różni si e serwer katalogowy od serwera bazy danych: Dane w serwerze katalogowym sa przegladane dużo cz eściej, niż sa modyfikowane, inaczej niż w zwyk lej bazie danych.

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

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

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

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

Ć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

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

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

Część 1: OLAP. Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych

Część 1: OLAP. Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych Łukasz Przywarty 171018 Wrocław, 05.12.2012 r. Grupa: CZW/N 10:00-13:00 Raport z zajęć laboratoryjnych w ramach przedmiotu Hurtownie i eksploracja danych Część 1: OLAP Prowadzący: dr inż. Henryk Maciejewski

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

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

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

BAZA DANYCH SIECI HOTELI

BAZA DANYCH SIECI HOTELI Paulina Gogół s241906 BAZA DANYCH SIECI HOTELI Baza jest częścią systemu zarządzającego pewną siecią hoteli. Składa się z tabeli powiązanych ze sobą różnymi relacjami. Służy ona lepszemu zorganizowaniu

Bardziej szczegółowo

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia BAZY DANYCH LABORATORIUM Studia niestacjonarne I stopnia Gdańsk, 2011 1. Cel zajęć Celem zajęć laboratoryjnych jest wyrobienie praktycznej umiejętności tworzenia modelu logicznego danych a nastepnie implementacji

Bardziej szczegółowo

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie bazy danych Jarosław Kuchta Projektowanie Aplikacji Internetowych Możliwości projektowe Relacyjna baza danych Obiektowa baza danych Relacyjno-obiektowa baza danych Inne rozwiązanie (np. XML)

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

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

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

Systemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012:

Systemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012: Systemy baz danych 16.04.2013 1. Plan: 10. Implementacja Bazy Danych - diagram fizyczny 11. Implementacja Bazy Danych - implementacja 2. Zadania: 1. Przygotować model fizyczny dla wybranego projektu bazy

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. Dr inż. Paweł Kasprowski

Bazy danych. Dr inż. Paweł Kasprowski Plan wykładu Bazy danych Podstawy relacyjnego modelu danych Dr inż. Paweł Kasprowski pawel@kasprowski.pl Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność

Bardziej szczegółowo

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Język DML Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE Systemy Baz Danych, Hanna Kleban 1 INSERT Instrukcja INSERT dodawanie

Bardziej szczegółowo

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania

Bardziej szczegółowo

Fizyczna struktura bazy danych w SQL Serwerze

Fizyczna struktura bazy danych w SQL Serwerze Sposób przechowywania danych na dysku twardym komputera ma zasadnicze znaczenie dla wydajności całej bazy i jest powodem tworzenia między innymi indeksów. Fizyczna struktura bazy danych w SQL Serwerze

Bardziej szczegółowo

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

1: 2: 3: 4: 5: 6: 7: 8: 9: 10: Grupa A (LATARNIE) Imię i nazwisko: Numer albumu: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: Nazwisko prowadzącego: 11: 12: Suma: Ocena: Zad. 1 (10 pkt) Dana jest relacja T. Podaj wynik poniższego zapytania (podaj

Bardziej szczegółowo

OPRACOWANIE: SŁAWOMIR APANOWICZ

OPRACOWANIE: SŁAWOMIR APANOWICZ PROJEKTOWANIE RELACYJNEJ BAZY DANYCH OPRACOWANIE: SŁAWOMIR APANOWICZ 1. Ogólne informacje o projektowaniu bazy danych Przystępując do projektowania bazy danych należy określić jej cel oraz zadania, jakie

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

Temat projektu: mpk-database

Temat projektu: mpk-database 1 PROJEKT KOŃCOWY Temat projektu: mpk-database Author: Barbara BEREK Marcin KESY Piotr SALA 14 lutego 2010 Sformułowanie zadania projektowego a Zaprojektowanie bazy danych, która będzie mogła przechowywać

Bardziej szczegółowo

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Podstawowe definicje Baza danych to uporządkowany zbiór danych umożliwiający łatwe przeszukiwanie i aktualizację. System zarządzania bazą danych (DBMS) to oprogramowanie

Bardziej szczegółowo

Hurtownia Świętego Mikołaja projekt bazy danych

Hurtownia Świętego Mikołaja projekt bazy danych Aleksandra Kobusińska nr indeksu: 218366 Hurtownia Świętego Mikołaja projekt bazy danych Zaprezentowana poniżej baza jest częścią większego projektu bazy danych wykorzystywanej w krajowych oddziałach wiosek

Bardziej szczegółowo

11. Autoryzacja użytkowników

11. Autoryzacja użytkowników 11. Autoryzacja użytkowników Rozwiązanie NETASQ UTM pozwala na wykorzystanie trzech typów baz użytkowników: Zewnętrzna baza zgodna z LDAP OpenLDAP, Novell edirectory; Microsoft Active Direcotry; Wewnętrzna

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

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

Bardziej szczegółowo

DMX DMX DMX DMX: CREATE MINING STRUCTURE. Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

DMX DMX DMX DMX: CREATE MINING STRUCTURE. Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski DMX DMX DMX Data Mining Extensions jest językiem do tworzenia i działania na modelach eksploracji danych w Microsoft SQL Server Analysis Services SSAS. Za pomocą DMX można tworzyć strukturę nowych modeli

Bardziej szczegółowo

SQL :: Data Definition Language

SQL :: Data Definition Language SQL :: Data Definition Language 1. Zaproponuj wydajną strukturę danych tabela) do przechowywania macierzy o dowolnych wymiarach w bazie danych. Propozycja struktury powinna zostać zapisana z wykorzystaniem

Bardziej szczegółowo

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel SQL, LIKE, IN, CASE, EXISTS Marcin Orchel Spis treści 1 LIKE 2 2 BETWEEN 4 3 IN 5 4 EXISTS 6 5 WYRAŻENIA CASE 7 6 Zadania 9 1 Rozdział 1 LIKE Predykat LIKE jest testem dopasowującym wzorzec łańcucha. Składnia

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

DECLARE typ [( )] [ NOT NULL ] [ { := DEFAULT } ];

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ]; Braki w SQL obsługi zdarzeń i sytuacji wyjątkowych funkcji i procedur użytkownika definiowania złożonych ograniczeń integralnościowych Proceduralny SQL Transact- SQL używany przez Microsoft SQL Server

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

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

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

Język SQL podstawy zapytań

Język SQL podstawy zapytań Język SQL podstawy zapytań 1 Plan prezentacji 1. Krótka historia języka SQL 2. Cechy języka SQL 3. Przykładowa baza danych 4. Podstawy zapytań - operacje na modelu relacyjnym 5. Polecenie SELECT zapytania

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

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

11. Sesja Linuksowa. Usªuga katalogowa na przykªadzie. Jakub Juszczakiewicz. 1 / 20 Jakub Juszczakiewicz Usªuga katalogowa na przykªadzie OpenLDAP

11. Sesja Linuksowa. Usªuga katalogowa na przykªadzie. Jakub Juszczakiewicz. 1 / 20 Jakub Juszczakiewicz Usªuga katalogowa na przykªadzie OpenLDAP 11. Sesja Linuksowa Usªuga katalogowa na przykªadzie OpenLDAP Jakub Juszczakiewicz 1 / 20 Jakub Juszczakiewicz Usªuga katalogowa na przykªadzie OpenLDAP Co to jest usªuga katalogowa? Baza danych Przynajmniej

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

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

WTYCZKA FARA-TCM Dane techniczne dla twórców zewnętrznych aplikacji do obsługi map cmentarza

WTYCZKA FARA-TCM Dane techniczne dla twórców zewnętrznych aplikacji do obsługi map cmentarza 2015 WTYCZKA FARA-TCM Dane techniczne dla twórców zewnętrznych aplikacji do obsługi map cmentarza Dokumentacja techniczna dostępu do podstawowych danych cmentarnych w programie FARA. wersja 1.0 aktualizacja:

Bardziej szczegółowo

KatMPBSoft marekbilski@katmpbsoft.pl - 1 -

KatMPBSoft marekbilski@katmpbsoft.pl - 1 - Przedstawiona dokumentacja UML jest ściśle chroniona prawami autorskimi. Jej celem jest jedynie pokazanie w jaki sposób firma KatMPBSoft, takie dokumentacje przygotowuje. Dokumentacja UML nie może być

Bardziej szczegółowo

Podzadanie AI 1/2D. Wdrażanie BDFBO. Dokumentacja powdrożeniowa BDFBO. Rezultat AI 13. Wersja finalna. Wykonawcy

Podzadanie AI 1/2D. Wdrażanie BDFBO. Dokumentacja powdrożeniowa BDFBO. Rezultat AI 13. Wersja finalna. Wykonawcy Podprojekt 3. Wykorzystanie technologii informatycznych do sprawnego zarządzania wiedzą i procesami dotyczącymi zasobów ludzkich branży okrętowej oraz do skutecznego i wydajnego zarządzania pracą Partnerstwa

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

SYSTEM INFORMATYCZNY KS-SEW

SYSTEM INFORMATYCZNY KS-SEW DOKUMENTACJA TECHNICZNA KAMSOFT S.A. 40-235 Katowice ul. 1-Maja 133 Tel. (032) 2090705, Fax. (032) 2090715 http:www.kamsoft.pl, e-mail: 5420@kamsoft.pl SYSTEM INFORMATYCZNY NR KATALOGOWY 2334PI06.00 WYDANIE

Bardziej szczegółowo

Dokumentacja interfejsu MySQL. Platforma BSMS.PL Instrukcja podłączenia po przez mysql

Dokumentacja interfejsu MySQL. Platforma BSMS.PL Instrukcja podłączenia po przez mysql Dokumentacja interfejsu MySQL Platforma BSMS.PL Instrukcja podłączenia po przez mysql Dokumentacja interfejsu mysql (strona 2) SPIS TREŚCI 1. Zawartość dokumentu str.3 2. Informacje ogólne 2.1 Zastosowanie

Bardziej szczegółowo

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r.

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Bazy danych dla producenta mebli tapicerowanych Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Założenia Stworzyć system bazodanowy dla małej firmy produkującej meble tapicerowane. Projekt ma umożliwić

Bardziej szczegółowo

Wstęp. Opis ten dotyczy wydziałów orzeczniczych.

Wstęp. Opis ten dotyczy wydziałów orzeczniczych. Wstęp. Opis ten dotyczy wydziałów orzeczniczych. W związku z przekształceniem 79 Sądów w Wydziały Zamiejscowe i związane z tym liczne zapytania odnośnie strony technicznej i sposobu przygotowania baz danych

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

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

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze Cechy bloków nazwanych: w postaci skompilowanej trwale przechowywane na serwerze wraz z danymi wykonywane na żądanie użytkownika lub w

Bardziej szczegółowo

Tworzenie raportów XML Publisher przy użyciu Data Templates

Tworzenie raportów XML Publisher przy użyciu Data Templates Tworzenie raportów XML Publisher przy użyciu Data Templates Wykorzystanie Szablonów Danych (ang. Data templates) jest to jedna z metod tworzenia raportów w technologii XML Publisher bez użycia narzędzia

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

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

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

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

Java Server Faces narzędzie do implementacji w wy prezentacji

Java Server Faces narzędzie do implementacji w wy prezentacji Java Server Faces narzędzie do implementacji w wy prezentacji pojęcie komponentu powiązanie z modelem danych widok (View) jako drzewo komponentów obiekty pomocnicze: konwertery, walidatory, obsługa zdarzeń

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

RELACYJNE BAZY DANYCH

RELACYJNE BAZY DANYCH RELACYJNE BAZY DANYCH Aleksander Łuczyk Bielsko-Biała, 15 kwiecień 2015 r. Ludzie używają baz danych każdego dnia. Książka telefoniczna, zbiór wizytówek przypiętych nad biurkiem, encyklopedia czy chociażby

Bardziej szczegółowo

Wprowadzenie do baz danych

Wprowadzenie do baz danych Wprowadzenie do baz danych Bazy danych stanowią obecnie jedno z ważniejszych zastosowań komputerów. Podstawowe zalety komputerowej bazy to przede wszystkim szybkość przetwarzania danych, ilość dostępnych

Bardziej szczegółowo

SZKOLENIE: Administrator baz danych. Cel szkolenia

SZKOLENIE: Administrator baz danych. Cel szkolenia SZKOLENIE: Administrator baz danych. Cel szkolenia Kurs Administrator baz danych skierowany jest przede wszystkim do osób zamierzających rozwijać umiejętności w zakresie administrowania bazami danych.

Bardziej szczegółowo

Połączenie Partnera z serwisem JustPay poprzez - METODĘ 2

Połączenie Partnera z serwisem JustPay poprzez - METODĘ 2 Połączenie Partnera z serwisem JustPay poprzez - METODĘ 2 Generowanie kodów: po stronie Partnera Weryfikacja kodów: po stronie Partnera Spis treści 1. Kolejne kroki w stworzeniu własnego serwisu 2. Jak

Bardziej szczegółowo

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika Prowadzący: Dr inż. Jacek Habel Instytut Technologii Maszyn i Automatyzacji Produkcji Zakład Projektowania Procesów

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

Baza danych Uczniowie.mdb

Baza danych Uczniowie.mdb Baza danych Uczniowie.mdb Zadania: 1. Tabele: Założyć bazę danych uczniowie.mdb o strukturze danych: Uczniowie-dane - zip Uczniowie1_dane - zip uczzsbd1.mdb 1) UCZNIOWIE (NRU, nazwisko, imie) a) Wpisać

Bardziej szczegółowo

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1 Bazy danych wprowadzenie teoretyczne Piotr Prekurat 1 Baza danych Jest to zbiór danych lub jakichkolwiek innych materiałów i elementów zgromadzonych według określonej systematyki lub metody. Zatem jest

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

Politechnika Częstochowska. Projektowanie systemów użytkowych II

Politechnika Częstochowska. Projektowanie systemów użytkowych II Politechnika Częstochowska Wydział Inżynierii Mechanicznej i Informatyki Projektowanie systemów użytkowych II Zdalny wybór Prac Dyplomowych Diana Kisiała Tomasz Jewiarz Jacek Kucharzewski Informatyka,

Bardziej szczegółowo

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL 1 Podstawy relacyjnego modelu danych. 3h UWAGA: Temat zajęć jest typowo teoretyczny i stanowi wprowadzenie do zagadnień

Bardziej szczegółowo

Wykład 3 2014-04-25 12:45 BD-1 W_3

Wykład 3 2014-04-25 12:45 BD-1 W_3 Wykład 3 SQL - język operacji na bazach danych Schemat przykładowej bazy danych Uczelnia Skrypt SQL - utworzenie bazy Uczelnia Polecenia selekcji i projekcji Interakcyjny dostęp do bazy danych 2014-04-25

Bardziej szczegółowo

Intro. I.Wojnicki, ZTB:XML ZTB: XML. Igor Wojnicki. Katedra Informatyki Stosowanej, Akademia Górniczo-Hutnicza w Krakowie.

Intro. I.Wojnicki, ZTB:XML ZTB: XML. Igor Wojnicki. Katedra Informatyki Stosowanej, Akademia Górniczo-Hutnicza w Krakowie. Intro Igor Wojnicki (AGH, KIS) XML 18 grudnia 2013 1 / 37 ZTB: XML Igor Wojnicki Katedra Informatyki Stosowanej, Akademia Górniczo-Hutnicza w Krakowie 18 grudnia 2013 Intro Igor Wojnicki (AGH, KIS) XML

Bardziej szczegółowo

Monika Sychla 241858 Daniel Smolarek 241875. Projekt bazy danych

Monika Sychla 241858 Daniel Smolarek 241875. Projekt bazy danych Monika Sychla 241858 Daniel Smolarek 241875 Projekt bazy danych Naszym zadaniem było zaprojektowanie przykładowej bazy danych, w oparciu o zagadnienia jakie zostały wprowadzone w trakcie kursu z baz danych.

Bardziej szczegółowo

Programowanie obiektów

Programowanie obiektów Programowanie obiektów lokalne tabele tymczasowe, globalne tabele tymczasowe, zmienne lokalne, zmienne globalne przypisane wartości zmiennym 1 T-SQL Transact SQL (T-SQL), tak jak inne języki programoawania

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

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

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1 Viatoll Calc Instrukcja użytkownika Strona 1 Spis treści 1 Wstęp...3 2 Opis panelu głównego...3 2.1 Menu aplikacji...4 2.2 Tabela z trasami...5 2.3 Strona kalkulatora viatoll...6 2.4 Pasek statusu...7

Bardziej szczegółowo

Tworzenie aplikacji bazodanowych w delphi dla dużych baz danych FRAMEWORK IMPET

Tworzenie aplikacji bazodanowych w delphi dla dużych baz danych FRAMEWORK IMPET Tworzenie aplikacji bazodanowych w delphi dla dużych baz danych FRAMEWORK IMPET Maciej Szymczak, maj 2001 soft@home.pl Ostatnia aktualizacja: 2012-03-31 1 Plan widoczny podczas całego wykładu Numer slajdu

Bardziej szczegółowo

Nowe funkcje w programie Symfonia Finanse i Księgowość

Nowe funkcje w programie Symfonia Finanse i Księgowość Symfonia Finanse i Księgowość 1 / 11 Nowe funkcje w programie Symfonia Finanse i Księgowość Spis treści : Korzyści z zakupu nowej wersji 2 Symfonia Finanse i Księgowość w wersji 2011.1.b 3 Nowe wzory deklaracji

Bardziej szczegółowo

Data Mining podstawy analizy danych Część druga

Data Mining podstawy analizy danych Część druga Data Mining podstawy analizy danych Część druga W części pierwszej dokonaliśmy procesu analizy danych treningowych w oparciu o algorytm drzewa decyzyjnego. Proces analizy danych treningowych może być realizowany

Bardziej szczegółowo

Technologie baz danych

Technologie baz danych Plan wykładu Technologie baz danych Wykład 2: Relacyjny model danych - zależności funkcyjne. SQL - podstawy Definicja zależności funkcyjnych Reguły dotyczące zależności funkcyjnych Domknięcie zbioru atrybutów

Bardziej szczegółowo

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE Wykład 9 Implementacja języka SQL w systemach baz danych Oracle manipulowanie danymi (DML), tworzenie, modyfikowanie i usuwanie obiektów bazy danych: tabel i perspektyw, więzów integralności, komentarzy

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

CREATE TABLE logika (p BOOLEAN); INSERT INTO logika VALUES(true); INSERT INTO logika VALUES(false); INSERT INTO logika VALUES(NULL);

CREATE TABLE logika (p BOOLEAN); INSERT INTO logika VALUES(true); INSERT INTO logika VALUES(false); INSERT INTO logika VALUES(NULL); 1. Zaªó» tabel logika o trzech atrybutach p,q,r typu BOOLEAN. Uzupeªnij j wszystkimi mo»liwymi waluacjami logiki SQL (oczywi±cie nie rób tego r cznie). Nast pnie przy u»yciu komend SQLa sprawd¹, dla jakich

Bardziej szczegółowo

Bazy danych i usługi sieciowe

Bazy danych i usługi sieciowe Bazy danych i usługi sieciowe Wstęp do problematyki baz danych Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) BDiUS w. I Jesień 2014 1 / 17 Plan wykładu 1 Bazy danych 1 Motywacja

Bardziej szczegółowo