IDZ DO
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Bazy danych SQL.
Teoria i praktyka
Autor: Wiesaw Dudek
ISBN: 83-246-0503-7
Format: B5, stron: 4882
Przykady na ftp: 1929 kB
Bazy danych to aplikacje, z ktrych korzystaj niemal wszyscy uytkownicy
komputerw, czasem nawet nie zdajc sobie z tego sprawy. W bazach danych
przechowywane s informacje o uytkownikach witryny WWW, kontrahentach firmy
czy numerach telefonw abonentw operatora telekomunikacyjnego. Baz danych jest
rwnie rejestr systemu Windows i ksika telefoniczna w telefonie komrkowym.
Jednak aby zapisa dane w formacie odpowiednim dla aplikacji niezbdne s
standardy. Wspczenie wykorzystywany relacyjny model przechowywania danych
sprawdza si znakomicie. Do manipulowania danymi zapisanymi w bazach stosowany
jest inny standard: jzyk SQL.
Ksika Bazy danych SQL. Teoria i praktyka przedstawia wszystkie zagadnienia
zwizane z przechowywaniem i przetwarzaniem danych we wspczesnych aplikacjach.
Przeczytasz w niej o relacyjnym i obiektowym modelu danych oraz najczciej
stosowanych systemach zarzdzania bazami danych. Dowiesz si, jakie instrukcje
jzyka SQL wykorzystywane s do wprowadzania danych, przetwarzania ich
i wybierania z bazy. Nauczysz si optymalizowa zapytania oraz stosowa indeksy
i procedury skadowane. W ksice znajdziesz rwnie praktyczne wskazwki
dotyczce konfigurowania serwerw baz danych i administrowania nimi.
Przechowywanie prostych danych
Relacyjny i obiektowy model danych
Typy danych w jzyku SQL
Instrukcje jzyka SQL
Indeksy, wyzwalacze i procedury skadowane
Manipulowanie danymi
Optymalizacja zapyta
Charakterystyka najpopularniejszych systemw zarzdzania bazami danych
Wydawnictwo Helion
ul. Kociuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@[Link]
Poznaj tajniki wspczesnych mechanizmw przechowywania informacji
Spis treci
Rozdzia 1. Sposoby na przechowywanie prostych danych .................................... 7
Typy plikw .......................................................................................................................7
Pliki tekstowe ...............................................................................................................7
Pliki typowane .............................................................................................................9
Pliki strumieniowe .....................................................................................................10
Pliki amorficzne .........................................................................................................14
Przechowywanie konfiguracji programu ...........................................................................18
Rejestr systemu Windows ..........................................................................................18
Pliki INI .....................................................................................................................21
Pliki XML ..................................................................................................................23
Zaawansowane rozwizania systemu Windows ..............................................................24
Pliki odwzorowane .....................................................................................................24
Pliki ustrukturalizowanego skadowania ...................................................................35
Rozdzia 2. Baza danych rozwizanie dla wymagajcych ................................ 47
Typy baz danych ..............................................................................................................49
Relacyjny model danych ............................................................................................49
Obiektowy model danych ..........................................................................................52
SQL (strukturalny jzyk zapyta) ....................................................................................53
Charakterystyka jzyka SQL .....................................................................................53
Typy danych ...............................................................................................................57
Generowanie unikalnych kluczy ................................................................................75
Wartoci NULL .........................................................................................................79
Predykaty ...................................................................................................................80
Funkcje agregujce ....................................................................................................98
Wyraenia SQL ........................................................................................................105
Konstruktor wartoci wierszy i tabel .......................................................................128
Transakcje ................................................................................................................130
SQL jzyk definicji danych ................................................................................131
SQL jzyk manipulowania danymi .....................................................................171
SQL jzyk nadzoru .............................................................................................191
Optymalizowanie zapyta ........................................................................................193
Tabele sownikowe ..................................................................................................227
Projektowanie baz danych ..............................................................................................227
Projektowanie logiczne ............................................................................................227
Projektowanie fizyczne ............................................................................................235
Projektowanie danych. Reprezentacje danych rzeczywistych .................................238
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\_Spis [Link]
Bazy danych SQL. Teoria i praktyka
Rozdzia 3. LDAP hierarchiczna baza danych ............................................... 245
Krtka charakterystyka bazy ..........................................................................................245
LDIF .........................................................................................................................246
Schemat ....................................................................................................................248
Zalety i wady ..................................................................................................................252
Instalacja i konfiguracja .................................................................................................253
Popularne konfiguracje serwera LDAP ...................................................................254
Instalacja ksiki adresowej LDAP .........................................................................259
Konfigurowanie bazy SQL jako backendu ..........................................................259
Administrowanie serwerem ............................................................................................263
Uruchamianie i zatrzymywanie serwera ..................................................................263
Replikacja ................................................................................................................264
Bezpieczestwo ..............................................................................................................265
Prawa dostpu do serwera ........................................................................................269
Tworzenie kopii bazy danych ..................................................................................271
Narzdzia ........................................................................................................................271
Interfejsy dostpu do serwera LDAP .............................................................................273
Java ..........................................................................................................................273
Linki ...............................................................................................................................279
Rozdzia 4. Oracle 10g ................................................................................... 281
Krtka charakterystyka dostpnych dystrybucji ............................................................281
Zalety i wady ..................................................................................................................283
Instalacja i konfiguracja .................................................................................................285
Windows ..................................................................................................................285
Linux ........................................................................................................................287
Windows i Linux ......................................................................................................290
Administrowanie serwerem ............................................................................................290
Uruchamianie i zatrzymywanie serwera ..................................................................291
Zarzdzanie bazami danych .....................................................................................293
Konfiguracja zestawu znakw .................................................................................298
Replikacja bazy ........................................................................................................300
Bezpieczestwo ..............................................................................................................301
Prawa dostpu do serwera, uytkownicy i role ........................................................302
Tworzenie kopii bezpieczestwa i odzyskiwanie danych .......................................308
Narzdzia ........................................................................................................................310
SQLPlus ...................................................................................................................310
Exp(ort), Imp(ort) ....................................................................................................311
SQLLoader ...............................................................................................................312
Rozdzia 5. SQL Server 2005 .......................................................................... 315
Krtka charakterystyka dostpnych dystrybucji ............................................................315
Zalety i wady ..................................................................................................................317
Instalacja i konfiguracja .................................................................................................319
Opis instalacji MSDE w systemie Windows 2000 ..................................................319
Administrowanie serwerem ............................................................................................322
Uruchamianie i zatrzymywanie serwera ..................................................................323
Zarzdzanie bazami danych .....................................................................................323
Konfiguracja zestawu znakw .................................................................................329
Replikacja bazy ........................................................................................................330
Bezpieczestwo ..............................................................................................................332
Prawa dostpu do serwera, uytkownicy i role ........................................................334
Tworzenie kopii bezpieczestwa i odzyskiwanie danych .......................................340
Metadane ........................................................................................................................348
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\_Spis [Link]
Spis treci
5
Narzdzia ........................................................................................................................348
OSQL .......................................................................................................................348
SQLCmd ..................................................................................................................350
SQLMaint ................................................................................................................351
BCP (Bulk Copy Program) ......................................................................................352
SQLDiag ..................................................................................................................354
Cliconfg ....................................................................................................................354
Microsoft SQL Server Management Studio Express ...............................................354
Rozdzia 6. MySQL 5.0 ................................................................................... 355
Krtka charakterystyka dostpnych dystrybucji ............................................................355
Zalety i wady ..................................................................................................................356
Instalacja i konfiguracja .................................................................................................358
Windows ..................................................................................................................358
Linux ........................................................................................................................361
Administrowanie serwerem ............................................................................................367
Uruchamianie i zatrzymywanie serwera ..................................................................368
Zarzdzanie bazami danych .....................................................................................369
Konfiguracja zestawu znakw .................................................................................372
Replikacja bazy ........................................................................................................373
Klaster MySQL ........................................................................................................376
Bezpieczestwo ..............................................................................................................379
Konfigurowanie bezpiecznych pocze SSL .........................................................380
Prawa dostpu do serwera, uytkownicy i role ........................................................381
Tworzenie kopii bezpieczestwa i odzyskiwanie danych .......................................386
Metadane ........................................................................................................................391
Narzdzia ........................................................................................................................391
Mysql .......................................................................................................................391
Mysqladmin .............................................................................................................394
Mysqldump ..............................................................................................................395
Mysqlimport .............................................................................................................396
Mysqlbinlog .............................................................................................................396
Mysqlcheck ..............................................................................................................397
Mysqlshow ...............................................................................................................397
Myisamchk ...............................................................................................................397
Myisampack .............................................................................................................398
MySQL Administrator .............................................................................................398
MySQLInstanceConfig ............................................................................................398
Rozdzia 7. PostgreSQL 8.1 ............................................................................ 399
Krtka charakterystyka dostpnych dystrybucji ............................................................399
Zalety i wady ..................................................................................................................399
Instalacja i konfiguracja .................................................................................................401
Windows ..................................................................................................................401
Linux ........................................................................................................................402
Administrowanie serwerem ............................................................................................410
Uruchamianie i zatrzymywanie serwera ..................................................................411
Zarzdzanie bazami danych .....................................................................................413
Konfiguracja zestawu znakw .................................................................................414
Konserwacja bazy danych ........................................................................................415
Bezpieczestwo ..............................................................................................................416
Konfigurowanie bezpiecznych pocze SSL i tunelowanie SSH ..........................417
Prawa dostpu do serwera, uytkownicy i role ........................................................418
Tworzenie kopii bezpieczestwa i odzyskiwanie danych .......................................420
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\_Spis [Link]
Bazy danych SQL. Teoria i praktyka
Metadane ........................................................................................................................423
Narzdzia ........................................................................................................................424
Narzdzia od strony serwera ....................................................................................424
Narzdzia od strony klienta .....................................................................................426
Rozdzia 8. Firebird 1.5 .................................................................................. 431
Krtka charakterystyka dostpnych dystrybucji ............................................................431
Zalety i wady ..................................................................................................................431
Instalacja i konfiguracja .................................................................................................433
Windows ..................................................................................................................433
Linux ........................................................................................................................434
Administrowanie serwerem ............................................................................................436
Uruchamianie i zatrzymywanie serwera ..................................................................437
Zarzdzanie bazami danych .....................................................................................439
Konfiguracja zestawu znakw .................................................................................440
Konserwacja bazy danych ........................................................................................440
Replikacja bazy ........................................................................................................444
Bezpieczestwo ..............................................................................................................445
Konfigurowanie bezpiecznego tunelu pomidzy klientem i serwerem ...................447
Prawa dostpu do serwera, uytkownicy i role ........................................................449
Tworzenie kopii bezpieczestwa i odzyskiwanie danych .......................................451
Metadane ........................................................................................................................452
Narzdzia ........................................................................................................................454
isql ............................................................................................................................454
gbak ..........................................................................................................................454
gfix ...........................................................................................................................455
gsec ..........................................................................................................................456
gstat ..........................................................................................................................457
qli .............................................................................................................................457
Skorowidz ..................................................................................... 459
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\_Spis [Link]
Rozdzia 3.
LDAP hierarchiczna
baza danych
Opis technologii LDAP prezentowany w tym rozdziale bdzie si gwnie opiera
na dystrybucji serwera OpenLDAP w wersji 2.x ([Link]).
Krtka charakterystyka bazy
Z pojciem LDAP wie si baza danych oparta na hierarchicznej strukturze, o typie
danych atrybut-warto oraz protokole dostpu dziaajcym w oparciu o TCP/IP.
Hierarchia bazy danych przypomina drzewo katalogu plikw (rysunek 3.1), gdzie DN
(distinguish name) odpowiada ciece dostpu do zbioru atrybutw i identyfikuje wze
drzewa (entry).
Kady taki wze posiada skojarzony z nim zbir obiektw, ktre jednoznacznie definiuj zbir jego dozwolonych atrybutw. Obiekty i atrybuty dla bazy danych LDAP
definiuje schemat bazy danych (patrz: punkt Schemat).
Rysunek 3.1.
Hierarchiczna
struktura bazy LDAP
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\[Link]
(26-09-06)
245
246
Bazy danych SQL. Teoria i praktyka
Zaoeniem LDAP jest uzyskanie prostoty dostpu do danych oraz niewielka ilo
operacji zapisu w porwnaniu z operacjami odczytu obserwowana w rzeczywistych systemach. W wyniku tych zaoe LDAP nie oferuje transakcji.
Serwer LDAP moe by skonfigurowany tak, aby delegowa odpowiedzialno za podga do innego serwera LDAP dziaajcego zwykle na innym komputerze (przedstawia
to rysunek 3.2). Dziki takiemu rozwizaniu bazy LDAP charakteryzuj si du skalowalnoci.
Rysunek 3.2. Przydzia wzw do serwerw LDAP
W systemie skonfigurowanym jak na rysunku 3.2 kade danie dostpu do wza
o DN: dzielnica=podgorze, miasto=Krakow, kraj=PL, ktre zostanie zgoszone do serwera LDAP1, zostanie przekierowane do serwera LDAP3, ktry zosta oddelegowany
do obsugi podgazi "dzielnica=podgorze,miasto=Krakow,kraj=PL". Poszczeglne etapy
obsugi dania przedstawia rysunek 3.3.
Obsuga przekierowania powinna zosta zaimplementowana przez program klienta.
Istnieje jednak bardzo wiele programw klienckich nieobsugujcych przekierowa
i ignorujcych informacj otrzyman od serwera LDAP1.
LDIF
LDIF (LDAP Data Intercharge Format) jest formatem tekstowym reprezentujcym
dane LDAP. Poniewa uyto formatu tekstowego, wic dane te mog by z atwoci
edytowane przez uytkownika.
246 (26-09-06)
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\[Link]
Rozdzia 3. LDAP hierarchiczna baza danych
247
Rysunek 3.3.
Obsuga
dania dostpu
do oddelegowanego
wza
W uproszczeniu format pliku LDIF przedstawia si nastpujco:
# komentarz
dn: <nazwa jednoznaczna>
<atrybut>: <warto>
<atrybut>: <warto>
Pliki LDIF mog jednak posiada bogatsz struktur. Informacje na ten temat mona
znale w dokumencie RFC 2849 [1].
Przykad pliku LDIF:
dn: identyfikator=kowalj,miasto=krakow,kraj=pl
objectclass: osoba
identyfikator: kowalj
nazwisko: kowal
imie: jan
wiek: 20
Tworzc pliki LDIF, moemy atwo przygotowa baz danych dla serwera LDAP,
a nastpnie skorzysta z narzdzia ldiff2ldbm, ktre potrafi utworzy na jego podstawie baz ldbm.
ldif2ldbm -f [Link] -i [Link]
Odwrotn operacj konwersji bazy danych ldbm na format LDIF umoliwia ldbmcat.
ldbmcat -n [Link] > [Link]
Jednak nie moemy uy narzdzia ldif2ldbm, jeli jako bazy danych dla serwera LDAP
(tzw. backend) uywamy bazy innej ni ldbm. W tej sytuacji mamy cigle do dyspozycji
standardowe narzdzia dostarczane z serwerem i opisane w punkcie Narzdzia takie jak:
ldapadd, ldapmodify, ldapdelete itd..
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\[Link]
(26-09-06)
247
248
Bazy danych SQL. Teoria i praktyka
Utworzenie bazy danych na podstawie pliku LDIF za pomoc ldapadd przedstawia si
nastpujco:
ldapadd -v -D "identyfikator=manager,miasto=krakow,kraj=PL" -w manager -f [Link]
Jeli najpierw zatrzymamy serwer, moemy posuy si rwnie narzdziem slapadd:
slapadd -l [Link] -cv
Schemat
Schemat LDAP zawiera definicje bazy danych: typy przechowywanych danych, dozwolone wartoci lub zakresy atrybutw, wymagalno lub opcjonalno atrybutw,
informacje o wizach narzuconych na przechowywane wartoci, takich jak brak duplikatw, czy informacje o sposobie porwnywania wartoci. Schemat jest wic definicj
struktury bazy.
Schematy s odczytywane podczas startu serwera i tylko dane zgodne z reguami zawartymi w schemacie s dozwolone w bazie danych LDAP.
Z serwerem OpenLDAP dostarczanych jest kilka plikw schematw, ktre mog okaza
si uyteczne dla uytkownika. Jedynie schemat [Link] jest wymagany do pracy
serwera LDAP, pozostae s opcjonalne.
W dostarczonych z serwerem OpenLDAP plikach schematw zdefiniowano wiele obiektw i atrybutw, ktre mog by wykorzystane przy tworzeniu wasnej bazy danych.
Przykadowo tabela 3.1 zawiera list atrybutw wraz z odpowiadajcymi im obiektami,
ktre mog okaza si przydatne podczas tworzenia wasnej bazy uytkownikw.
Oczywicie uytkownik moe w miar swoich potrzeb tworzy wasne pliki schematw,
ktre moe doczy do pliku konfiguracyjnego [Link] za pomoc instrukcji include.
Przykad prostego pliku schematu przedstawia listing 3.1:
Listing 3.1. Przykadowy plik schematu
# Autor: Wiesaw Dudek
# definicja typw atrybutw
attributetype ( [Link].4.1.4203.666.1 NAME 'identyfikator'
EQUALITY caseIgnoreMatch
SYNTAX [Link].4.1.1466.[Link]
SINGLE-VALUE)
attributetype ( [Link].4.1.4203.666.2 NAME 'nazwisko'
EQUALITY caseIgnoreMatch
SYNTAX [Link].4.1.1466.[Link]
SINGLE-VALUE)
attributetype ( [Link].4.1.4203.666.3 NAME 'kraj'
EQUALITY caseIgnoreMatch
SYNTAX [Link].4.1.1466.[Link]
SINGLE-VALUE)
248 (26-09-06)
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\[Link]
Rozdzia 3. LDAP hierarchiczna baza danych
249
Tabela 3.1. Lista waniejszych atrybutw zdefiniowanych w schematach dostarczonych
wraz z serwerem OpenLDAP
Atrybut
Nazwa pola
w MSOutlook
Plik schematu
z definicj
Nazwa obiektu,
w ktrym wystpuje
atrybut
cn
Name:
[Link]
objectPerson
givenName
First Name:
[Link]
inetOrgPerson
initials
Middle Name:
[Link]
inetOrgPerson
sn
Last Name:
[Link]
objectPerson
mail
Email Address:
[Link]
inetOrgPerson
title
Job Title:
[Link]
organizationalPerson
physicalDeliveryOfficeName
Office:
[Link]
organizationalPerson
Company Name:
[Link]
inetOrgPerson
postalAddress
Business
Street Address:
[Link]
organizationalPerson
Business City:
[Link]
organizationalPerson
st
Business
State/Province:
[Link]
organizationalPerson
postalCode
Business Zip Code:
[Link]
organizationalPerson
Business
Country/Region:
[Link]
officePerson
telephoneNumber
Business:
[Link]
organizationalPerson
facsimileTelephoneNumber
Business Fax:
[Link]
organizationalPerson
homePhone
Home:
[Link]
inetOrgPerson
mobile
Mobile:
[Link]
inetOrgPerson
homePostalAddress
Home Street Address:
[Link]
inetOrgPerson
manager
Manager:
[Link]
inetOrgPerson
pager
Pager:
[Link]
inetOrgPerson
attributetype ( [Link].4.1.4203.666.4 NAME 'miasto'
EQUALITY caseIgnoreMatch
SYNTAX [Link].4.1.1466.[Link]
SINGLE-VALUE)
attributetype ( [Link].4.1.4203.666.5 NAME 'dzielnica'
EQUALITY caseIgnoreMatch
SYNTAX [Link].4.1.1466.[Link]
SINGLE-VALUE)
attributetype ( [Link].4.1.4203.666.6 NAME 'imie'
DESC 'Imiona'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX [Link].4.1.1466.[Link])
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\[Link]
(26-09-06)
249
250
Bazy danych SQL. Teoria i praktyka
attributetype ( [Link].4.1.4203.666.7 NAME 'wiek'
EQUALITY caseIgnoreMatch
SYNTAX [Link].4.1.1466.[Link]
SINGLE-VALUE)
#definicja typw obiektw
objectclass ( [Link].4.1.4203.666.8 NAME 'osoba'
MUST ( identyfikator $ nazwisko $ imie)
MAY ( wiek ) )
objectclass ([Link].4.1.4203.666.9 NAME 'miasteczko'
MUST ( miasto ))
objectclass ( [Link].4.1.4203.666.10 NAME 'rejon'
MUST ( dzielnica ))
Jak widzimy, kady element schematu posiada wasny identyfikator obiektu, tzw. OID
(Object Identifier), np. OID elementu "rejon" to [Link].4.1.4203.666.10. Numer ten
rozpoczyna si od prefiksu przyznanego organizacji przez waciwy urzd (np. przez
urzd IANA[2]). W przykadzie uylimy prefiksu [Link].4.1.4203.666, ktry jest
zarezerwowany przez [Link] dla celw eksperymentalnych. Jednak moglimy uy dowolnego prefiksu zgodnego z notacj OID niekolidujcego z prefiksami
uytymi w innych uywanych przez nas schematach, poniewa nasz plik schematu jest
przeznaczony tylko do wasnego uytku. Kolejne elementy schematu otrzymuj numery
rozpoczynajce si od prefiksu: [Link].4.1.4203.666.1, [Link].4.1.4203.666.2 itp.
W naszym przykadowym pliku schematu pojawiy si dwa typy definicji: definicje
typw atrybutw rozpoczynajce si od sowa attributetype oraz definicje typw
obiektw rozpoczynajce si od sowa objectclass. Definicja typu obiektu okrela,
jakie atrybuty musz lub mog sta si jego skadnikami.
Skadowe definicji typu atrybutu
NAME nazwa atrybutu. Nazwa ta, podobnie jak numer OID, powinna by
unikalna. Jeli schemat bdzie publicznie wykorzystywany, dobrym pomysem
jest poprzedzanie nazw naszych atrybutw prefiksem organizacji, podobnie jak
to ma miejsce w przypadku numeru OID.
Dozwolone jest uycie kilku nazw dla atrybutu, np. attributetype ( [Link] NAME
( 'l' 'localityName' ) SUP name ).
DESC opis atrybutu.
SUP deklaracja dziedziczenia; definiowanie nowego atrybutu na podstawie
istniejcego.
Przykad pochodzcy z pliku [Link] definiowanie atrybutu member:
attributetype ( [Link] NAME 'member' SUP distinguishedName )
250 (26-09-06)
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\[Link]
Rozdzia 3. LDAP hierarchiczna baza danych
251
Atrybut member dziedziczy waciwoci atrybutu distinguishedName.
EQUALITY okrela regu porwnywania elementw (patrz: tabela 3.2).
ORDERING okrela regu porwnywania elementw za pomoc operatorw
<= i >= (moliwe wartoci patrz: tabela 3.2).
Tabela 3.2. Reguy dopasowywania
Nazwa
Stosowana do
Znaczenie
booleanMatch
EQUALITY
porwnywanie wartoci logicznych
caseIgnoreMatch
EQUALITY
brak wraliwoci na wielko liter i odstpy
caseExactMatch
EQUALITY
wraliwe na wielko liter, niewraliwe
na odstpy
distinguishedNameMatch
EQUALITY
porwnywanie wartoci DN
integerMatch
EQUALITY
porwnywanie liczb cakowitych
numericStringMatch
EQUALITY
porwnywanie cigw numerycznych
octetStringMatch
EQUALITY
porwnywanie cigw bajtw
objectIdentiferMatch
EQUALITY
porwnywanie OID-w
caseIgnoreOrderingMatch
ORDERING
niewraliwe na wielko liter i odstpy
caseExactOrderingMatch
ORDERING
wraliwe na wielko liter, niewraliwe
na odstpy
integerOrderingMatch
ORDERING
porwnywanie liczb cakowitych
numericStringOrderingMatch
ORDERING
porwnywanie cigw numerycznych
octetStringOrderingStringMatch
ORDERING
porwnywanie cigw bajtw
octetStringSubstringsStringMatch
ORDERING
porwnywanie cigw bajtw
caseIgnoreSubstringsMatch
SUBSTR
niewraliwe na wielko liter i odstpy
caseExactSubstringsMatch
SUBSTR
wraliwe na wielko liter, niewraliwe
na odstpy
numericStringSubstringsMatch
SUBSTR
porwnywanie cigw numerycznych
SUBSTR okrela regu porwnywania elementw za pomoc znakw
wieloznacznych (wildcards) (patrz: tabela 3.2).
SYNTAX typ atrybutu (najczciej wykorzystywane typy atrybutw patrz:
tabela 3.3).
Przykad deklaracji:
SYNTAX [Link].4.1.1466.[Link]{30} okrela atrybut typu
DirectoryString kodowany w UTF-8 o dugoci maksymalnej 30 znakw.
SINGLE-VALUE blokuje wstawianie duplikatw.
NO-USER-MODIFICATION blokuje moliwo modyfikacji atrybutu.
COLLECTIVE atrybut bdzie definiowa kolekcj wzw.
USAGE jedna z wartoci: userApplications, directoryOperation,
distributedOperation, dSAOperation.
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\[Link]
(26-09-06)
251
252
Bazy danych SQL. Teoria i praktyka
Tabela 3.3. Typy atrybutw (SYNTAX)
Nazwa
OID
Znaczenie
boolean
[Link].4.1.1466.[Link]
warto logiczna
DirectoryString
[Link].4.1.1466.[Link]
cig znakw kodowany w UTF-8
Mona zapisywa polskie znaki.
distinguishedName
[Link].4.1.1466.[Link]
LDAP DN
integer
[Link].4.1.1466.[Link]
liczba cakowita
numericString
[Link].4.1.1466.[Link]
cig znakw numerycznych
OID
[Link].4.1.1466.[Link]
identyfikator obiektu
octetString
[Link].4.1.1466.[Link]
cig bajtw, np. rysunek lub inny obiekt
binarny kodowany w standardzie Base64
Skadowe definicji typu obiektu
NAME nazwa obiektu. Nazwa ta powinna by unikalna.
DESC opis obiektu.
SUP deklarowanie dziedziczenia (okrelanie nowego obiektu na podstawie
istniejcego).
ABSTRACT deklarowanie obiektu abstrakcyjnego, tj. bdcego punktem wyjcia
do definiowania nowych obiektw.
MUST deklarowanie atrybutw, ktre musz towarzyszy obiektowi.
MAY deklarowanie atrybutw, ktre mog (ale nie musz) towarzyszy
obiektowi.
Zalety i wady
W podrozdziaach Zalety i wady standardowo wystpujcych w kadym z nastpnych
rozdziaw zostan przedstawione wybrane cechy opisywanego systemu, ktre z rnych
powodw zasuguj na uwag. Trzeba jednak pamita, e sytuacja na rynku informatycznym zmienia si z dnia na dzie i opisywane wady mog zosta usunite w kolejnych wersjach, a zalety stan si standardem na rynku tego typu oprogramowania.
Przedstawione w tej ksice zestawienia maj jednak da Czytelnikowi wyobraenie
na temat biecej sytuacji. Sam uytkownik zdecyduje, ktre z tych cech maj dla niego
znaczenie. By moe pewna wada zdyskwalifikuje produkt pod ktem jakiego wykorzystania. Z drugiej strony uytkownik moe chcie skorzysta z pewnej opcji dostpnej
w danym produkcie, ktra z pozoru wydawaaby si mao istotna.
ledzc zapotrzebowanie na pewne rozwizania, wydaje si, e stworzenie listy wad
i zalet ma sens. Uytkownik moe je traktowa jako pewien gos w dyskusji.
252 (26-09-06)
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\[Link]
Rozdzia 3. LDAP hierarchiczna baza danych
253
Przedstawiajc w duym skrcie i z pewnoci nie wyczerpujc tematu, mona wymieni zalety i wady technologii LDAP.
Zalety:
mae wymagania sprztowe;
atwo integracji z innym oprogramowaniem (serwerami SQL, programami
pocztowymi itp.);
bardzo dobra skalowalno;
prostota w uyciu.
Wady:
maa szybko i moliwoci w porwnaniu z bazami danych SQL;
brak transakcji.
Podsumowanie
Zapytania do bazy danych SQL s duo szybsze ni odpowiadajce im zapytania do
bazy LDAP. Co wicej, efektywno LDAP moe by nawet kilkadziesit razy mniejsza ni bazy danych SQL. Wybr rozwizania moe wic wydawa si bardzo prosty,
jednak naley pamita, e bazy LDAP maj te sporo zalet. Zalety te powoduj, e
cigle s one obiektem zainteresowania i staj si standardem dla pewnych rozwiza, np.: systemu logowania uytkownikw, systemu ksiek adresowych, informacji
o uytkownikach itd. Do zalet tych naley gwnie prostota i atwo integracji z innym oprogramowaniem. Otwarty protok LDAP i wsppraca serwerw LDAP z innym
oprogramowaniem, w szczeglnoci z bazami danych SQL, moe pomc w integracji
systemw bdcych w dyspozycji uytkownika.
Instalacja i konfiguracja
Instalacja serwera OpenLDAP jest stosunkowo prosta. Z pewnoci bdzie wymaga
troch wicej wysiku w systemie Linux, zwaszcza jeli zechcemy skonfigurowa bezpieczne uwierzytelnienie np. przez SSL.
OpenLDAP jest darmowym oprogramowaniem, ktre mona pobra ze strony www.
[Link].
Instalacja serwera OpenLDAP zarwno w systemie Windows, jak i w systemie Linux
przebiega bardzo podobnie i skada si z nastpujcych etapw:
1. Zainstalowanie oprogramowania serwera.
2. Utworzenie plikw schematu bazy danych (patrz: punkt Schemat).
3. Skonfigurowanie serwera polegajce na modyfikacji pliku [Link]
(patrz: punkt: Plik [Link]).
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\[Link]
(26-09-06)
253
254
Bazy danych SQL. Teoria i praktyka
4. Utworzenie pliku LDIF z danymi naszej nowej bazy danych
(patrz: punkt LDIF).
5. Uruchomienie serwera LDAP (patrz: punkt Uruchamianie i zatrzymywanie
serwera).
6. Utworzenie bazy danych na podstawie pliku LDIF (patrz: punkt LDIF).
Standardowe porty, na ktrych nasuchuje serwer LDAP, to port 389 dla poczenia
nieszyfrowanego oraz 636 dla pocze szyfrowanych TLS/SSL.
Popularne konfiguracje serwera LDAP
Najpopularniejsze konfiguracje serwera LDAP przedstawiono na kolejnych rysunkach.
Niektre z nich pozwalaj na rozoenie obcienia na kilka serwerw (patrz: rysunek 3.5
i rysunek 3.6), celem innych jest dodatkowo uzyskanie bezpieczestwa danych (patrz:
rysunek 3.6).
Konfiguracja podstawowa
Jest to konfiguracja domylna tworzona podczas instalacji serwera LDAP, na ktr
skada si jeden serwer (patrz: rysunek 3.4). dania nadchodzce od strony klienta s
cakowicie przetwarzane na tym serwerze. Jeli serwer nie potrafi obsuy da, informuje o tym i nie odsya klienta do innych serwerw LDAP.
Rysunek 3.4.
Konfiguracja
podstawowa
Rysunek 3.5.
Konfiguracja
z serwerami
referencyjnymi
254 (26-09-06)
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\[Link]
Rozdzia 3. LDAP hierarchiczna baza danych
255
Rysunek 3.6. Konfiguracja z replikacj typu MASTER-SLAVE
Konfiguracja z serwerami referencyjnymi
Ta konfiguracja pozwala uzyska sie powizanych ze sob serwerw LDAP, ktre
odsyaj klientw do siebie nawzajem w zalenoci od moliwoci obsuenia ich da.
Na rysunku 3.5 klient w kroku 2. otrzymuje od serwera LDAP1 referencj do serwera
LDAP2, ktry zdaniem serwera LDAP1 jest w stanie obsuy danie klienta. Klient
po otrzymaniu referencji ponawia danie, kierujc je ju do waciwego serwera.
Serwery LDAP obsuguj dwa rodzaje referencji:
1. Referencje definiowane w pliku [Link] za pomoc sowa referral
referral ldap://[Link]/
Jeli danie klienta dotyczy wza spoza obsugiwanej domeny okrelonej
poprzez sowo suffix, serwer zwraca klientowi referencj do waciwego
serwera LDAP (ldap://[Link]), ktry moe obsuy danie
klienta lub odesa go do innego serwera.
Na przykad: jeli w pliku [Link] okrelono
suffix miasto=krakow,kraj=pl
danie klienta dotyczce wza miasto=warszawa,kraj=pl zwrci referencj
zdefiniowan w referral.
2. Referencje definiowane dla wza poprzez przypisanie wzowi obiektu
referral
dn: dc=poddrzewo,dc=myserver,dc=pl
objectClass: referral
objectClass: extensibleObject
dc: poddrzewo
ref: ldap://[Link]/dc=poddrzewo,dc=myserver,dc=pl
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\[Link]
(26-09-06)
255
256
Bazy danych SQL. Teoria i praktyka
Kade odwoanie do podgazi dc=poddrzewo,dc=myserver,dc=pl zwrci
referencj: ldap://[Link]/dc=poddrzewo,dc=myserver,dc=pl. W ten sposb
obsuga tej podgazi zostanie oddelegowana do serwera [Link].
Niestety wiele narzdzi klienta nie potrafi zinterpretowa otrzymanej od serwera LDAP
referencji i ponowi dania z wykorzystaniem otrzymanej referencji.
Konfiguracja z replikacj typu MASTER-SLAVE
Konfiguracja ta pozwala zmniejszy ryzyko utraty danych w przypadku awarii i poprawi bezpieczestwo systemu, poniewa dane s replikowane do innych baz danych
LDAP. Dodatkow korzyci uzyskiwan tutaj jest rozproszenie danych, ktre podobnie jak w poprzednio omwionym przypadku pozwala na rozoenie obcienia serwerw. Przykadowo: serwer LDAP2 moe obsugiwa jedynie modyfikacje danych,
natomiast serwer LDAP1 (replika) suy do odczytywania i przegldania danych.
Konfiguracja ta jest oparta na architekturze MASTER-SLAVE. MASTER jest serwerem
gwnym, a modyfikacje jego bazy danych s propagowane dalej i zapisywane do baz
danych wszystkich skonfigurowanych serwerw SLAVE.
Przykad dania zapisu danych do bazy serwera LDAP1 przedstawia rysunek 3.6.
Serwer LDAP1, ktry jest serwerem SLAVE, informuje klienta, e takie zmiany mona
wprowadza jedynie na serwerze MASTER, zwracajc odpowiedni referencj (2).
Klient formuuje nowe danie, wysyajc je tym razem pod waciwy adres (3) i uzyskuje potwierdzenie (4). Zmiany wprowadzone w bazie danych serwera MASTER s
zapisywane do dziennika replikacji (5) i od tego momentu s dostpne dla programu
slurpd (6), ktry propaguje je dalej (7) do serwera SLAVE (lub wielu serwerw SLAVE).
Przedstawiony scenariusz opisuje prb zapisu na serwerze SLAVE. W przypadku
prby odczytu scenariusz zakoczyby si w punkcie 2. po zwrceniu odpowiedzi przez
serwer SLAVE.
Dalsze informacje na temat konfigurowania replikacji s opisane w punkcie Replikacja.
Konfiguracja mieszana
Konfiguracja mieszana stanowi poczenie konfiguracji z serwerami referencyjnymi
oraz konfiguracji z replikacj typu MASTER-SLAVE i jest podstaw budowy duych
systemw.
Plik [Link]
Konfiguracja serwera LDAP jest oparta na pliku [Link]. Plik ten decyduje o wszystkich parametrach pracy serwera (patrz: tabela 3.4).
Przykad minimalnej konfiguracji (plik [Link]) przedstawia listing 3.2.
256 (26-09-06)
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\[Link]
Rozdzia 3. LDAP hierarchiczna baza danych
257
Listing 3.2. Przykadowy plik [Link]
include
./schema/[Link]
include
./schema/[Link]
#definicja bazy
database ldbm
suffix
"miasto=krakow,kraj=pl"
rootdn
"identyfikator=manager,miasto=krakow,kraj=pl"
rootpw
manager
directory
./data
access to * by * write
Tabela 3.4. Lista i znaczenie parametrw konfiguracyjnych pliku [Link]
Parametr
Znaczenie
Uycie
access
Okrela prawa dostpu do wzw
i atrybutw.
Patrz: punkt Prawa dostpu
do serwera.
defaultaccess
Domylny tryb dostpu, jeli tryb
dostpu nie by okrelony
w parametrze access.
defaultaccess none brak dostpu.
include
Wczenie pliku (plik powinien
posiada taki sam format jak
[Link]).
defaultaccess read domylny
tryb odczytu.
include [Link] wczenie pliku
schematu.
loglevel
Poziom logowania.
loglevel 255 szczegowy poziom
logowania informacji.
referral
Referencja zwracana klientowi
w przypadku da dotyczcych
wzw nieobsugiwanych
przez serwer.
referral [Link]
sizelimit
Maksymalna ilo elementw
zwrcona przez serwer w jednej
operacji odczytu.
sizelimit 100
timelimit
Maksymalny czas (w sekundach)
na obsug dania klienta.
timelimit 300
database
Wybrana baza danych dla serwera
LDAP.
Wszystkie parametry pojawiajce
si do nastpnego uycia parametru
database dotycz tej bazy danych
(patrz: przykad [Link]
w punkcie Interfejs).
database ldbm
database shell
database passwd
readonly
Wcza lub wycza tryb read-only.
readonly on
replica
Informacja o powizanym serwerze
replikacji SLAVE.
Patrz: punkt Replikacja.
replica uri=ldap://myserver:389
binddn="identyfikator=manager,
miasto=krakow,kraj=pl" bindmethod=
simple credentials=manager
replogfile
Nazwa pliku dziennika logowania
zmian w bazie danych, plik ten jest
uywany w procesie replikacji
przez program slurpd.
replogfile ./logs/[Link]
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\[Link]
(26-09-06)
257
258
Bazy danych SQL. Teoria i praktyka
Tabela 3.4. Lista i znaczenie parametrw konfiguracyjnych pliku [Link] (cig dalszy)
Znaczenie
Uycie
rootdn
Parametr
DN logowania do serwera,
(uywane w opcji -D narzdzi
takich jak ldapadd).
rootdn "identyfikator=manager,
miasto=krakow,kraj=pl"
rootpw
Haso logowania do serwera.
rootpw manager
suffix
Okrela wze podstawowy
dla danej bazy danych, wszystkie
zapytania kierowane do tego wza
lub podwzw bd dotyczyy bazy,
dla ktrej jest ustawiony suffix.
suffix "miasto=krakow,kraj=pl"
updatedn
Okrela DN uprawione
do wprowadzenia zmian do repliki
(SLAVE), powinno odpowiada
klauzuli binddn dyrektywy replica
dla serwera MASTER.
Opcja dostpna tylko dla SLAVE.
updatedn "identyfikator=manager,
miasto=krakow,kraj=pl"
updateref
Referencja do serwera MASTER.
Opcja dostpna tylko dla SLAVE.
updateref "[Link]"
directory
Kartoteka dla bazy danych.
directory ./data
index
Definicje indeksw.
Dozwolone wartoci:
none brak indeksu,
eq wyszukiwanie w indeksie
bdzie oparte na porwnaniu
caych elementw,
sub wyszukiwanie
podstringw,
pres wyszukiwanie
przez (st=*), tzn. wszystkich
elementw.
index objectClass eq indeks
dla obiektu objectClass.
objectclass
Patrz: punkt Schemat.
attributetype
Patrz: punkt Schemat.
schemacheck
Wczenie lub wyczenie
sprawdzenia pliku schematu.
schemacheck on
TLSCipherSuite
Akceptowalny sposb szyfrowania.
TLSCipherSuite HIGH:MEDIUM:+SSLv2
TLSCACertificateFile
Plik z certyfikatem.
TLSCACertificateFile [Link]
TLSCACertificatePath
Kartoteka zawierajca
certyfikaty CA.
TLSCACertificatePath ./cert
TLSCertificateFile
Plik z certyfikatem serwera.
TLSCertificateFile [Link]
TLSCertificateKeyFile Plik klucza prywatnego serwera.
TLSCertificateKeyFile [Link]
TLSVerifyClient
TLSVerifyClient demand
258 (26-09-06)
Poziom uwierzytelnienia klienta:
never, allow, try, demand, hard.
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\[Link]
Rozdzia 3. LDAP hierarchiczna baza danych
259
Instalacja ksiki adresowej LDAP
Instalacja ksiki adresowej LDAP w programie Microsoft Outlook Express przedstawia si nastpujco:
1. W menu Narzdzia naley wybra Konta.
2. W oknie Konta internetowe po wybraniu Dodaj wybieramy Usuga katalogowa.
3. W oknie Kreator pocze internetowych naley poda URL serwera LDAP,
np. [Link] lub localhost, jeli nasz serwer uruchomilimy na lokalnym
komputerze.
4. Ustalamy, czy musimy logowa si do serwera.
5. Jeli wybralimy opcj logowania do serwera, powinnimy poda DN
logowania i haso, np.:
Nazwa konta: identyfikator=manager,miasto=krakow,kraj=pl
Haso: manager
6. Decydujemy, czy program MS Outlook Express powinien sprawdza
wpisywane adresy e-mail w bazie danych LDAP.
7. W oknie Konta internetowe w zakadce Usuga katalogowa wybieramy z listy
skonfigurowany przez nas serwer i naciskamy przycisk Waciwoci.
8. Wybieramy zakadk Zaawansowane i sprawdzamy, czy ustawienie portu
jest waciwe (jest to szczeglnie wane, jeli serwera nie uruchomilimy
na standardowym numerze portu) i jeli jest niewaciwe, poprawiamy je.
Wprowadzamy rwnie poprawnie Baz wyszukiwania, czyli wze stanowicy
podstaw przeszukiwania drzewa LDAP.
9. Naciskamy OK.
Aby skorzysta z tak skonfigurowanej ksiki adresowej:
1. Otwieramy ksik adresow, naciskajc przycisk: Adresy.
2. W menu Edycja wybieramy Znajd osoby.
3. Na licie Szukaj w wybieramy skonfigurowany przez nas serwer LDAP.
4. Wprowadzamy np. nazw uytkownika w polu Nazwa (moe by *)
i naciskamy OK.
Konfigurowanie bazy SQL jako backendu
Serwer LDAP dysponuje du liczb moliwoci, jeli chodzi o wybr bazy danych
uywanej do przechowywania danych (tzw. backends): bdb, hdb, ldbm. W roli bazy
danych (backendu) mona uy shell, aby uzyska dostp do wybranych skryptw powoki, lub passwd, aby uzyska dostp do pliku passwd. Niekoniecznie zatem w roli
D:\Dane\Druk\Bazy danych SQL. Teoria i praktyka\09_druk\[Link]
(26-09-06)
259