Antywzorce_jezyka_SQL_Jak_unikac_pulapek_podczas_programowania_baz_danych_antysq.pdf

(703 KB) Pobierz
Tytuł oryginału: SQL Antipatterns: Avoiding the Pitfalls of Database Programming
Tłumaczenie: Mikołaj Szczepaniak
ISBN: 978-83-246-3482-8
Copyright © 2011 The Pragmatic Programmers, LLC
All rights reserved
Copyright © 2012 by Helion S.A.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any
means, electronic or mechanical, including photocopying, recording or by any information storage
retrieval system, without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu
niniej¬szej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą
kserograficz¬ną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym
lub innym powoduje naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi
ich właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje
były kompletne i rzetelne. Nie biorą jednak
żadnej
odpowiedzialności ani za ich wykorzystanie, ani
za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz
Wydawnictwo HELION nie ponoszą również
żadnej
odpowiedzialności za ewentualne szkody
wynikłe z wykorzystania informacji zawartych w książce.
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/antysq.zip
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/antysq
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis tre ci
Rozdziaï 1. Wprowadzenie ................................................................. 11
1.1. Dla kogo jest ta ksiÈ ka ............................................................................. 13
1.2. Co znajduje siÚ w tej ksiÈ ce ...................................................................... 14
1.3. Czego nie ma w tej ksiÈ ce ........................................................................ 16
1.4. Konwencje ............................................................................................... 18
1.5. Przykïadowa baza danych ......................................................................... 19
1.6. PodziÚkowania ......................................................................................... 22
CzÚ Ê I. Antywzorce logicznego projektu bazy danych ....... 23
Rozdziaï 2. Przechodzenie na czerwonym wietle ......................... 25
2.1. Cel: przechowywanie atrybutów wielowarto ciowych ................................... 26
2.2. Antywzorzec: listy elementów oddzielonych przecinkami ............................. 27
2.3. Jak rozpoznaÊ ten antywzorzec .................................................................. 31
2.4. Usprawiedliwione u ycia tego antywzorca .................................................. 31
2.5. RozwiÈzanie: utworzenie tabeli ïÈczÈcej ..................................................... 32
Rozdziaï 3. Naiwne drzewa ............................................................... 37
3.1. Cel: przechowywanie i uzyskiwanie hierarchii ............................................. 38
3.2. Antywzorzec: zawsze odwoïuj siÚ do rodzica .............................................. 39
3.3. Jak rozpoznaÊ ten antywzorzec .................................................................. 43
3.4. Usprawiedliwione u ycia tego antywzorca .................................................. 44
3.5. RozwiÈzanie: nale y u yÊ alternatywnych modeli drzew .............................. 46
Kup książkę
Poleć książkę
6
Antywzorce jÚzyka SQL
Rozdziaï 4. Identyfikator potrzebny od zaraz ................................. 61
4.1. Cel: wypracowanie konwencji dla kluczy gïównych ..................................... 62
4.2. Antywzorzec: jeden rozmiar dla wszystkich ................................................ 64
4.3. Jak rozpoznaÊ ten antywzorzec .................................................................. 69
4.4. Usprawiedliwione u ycia tego antywzorca .................................................. 70
4.5. RozwiÈzanie: klucz skrojony na miarÚ ..................................................... 70
Rozdziaï 5. Wpis bez klucza ............................................................... 75
5.1. Cel: uproszczenie architektury bazy danych ................................................ 76
5.2. Antywzorzec: rezygnacja z ograniczeñ ....................................................... 77
5.3. Jak rozpoznaÊ ten antywzorzec .................................................................. 80
5.4. Usprawiedliwione u ycia tego antywzorca .................................................. 81
5.5. RozwiÈzanie: deklarowanie ograniczeñ ...................................................... 81
Rozdziaï 6. Encja-atrybut-warto Ê .................................................... 85
6.1. Cel: obsïuga zmiennych atrybutów ............................................................. 86
6.2. Antywzorzec: zastosowanie uniwersalnej tabeli atrybutów ........................... 87
6.3. Jak rozpoznaÊ ten antywzorzec .................................................................. 93
6.4. Usprawiedliwione u ycia tego antywzorca .................................................. 94
6.5. RozwiÈzanie: modelowanie podtypów ........................................................ 95
Rozdziaï 7. ZwiÈzki polimorficzne .................................................. 103
7.1. Cel: odwoïania do wielu rodziców ........................................................... 104
7.2. Antywzorzec: zastosowanie dwuzadaniowego klucza obcego ..................... 105
7.3. Jak rozpoznaÊ ten antywzorzec ................................................................ 109
7.4. Usprawiedliwione u ycia tego antywzorca ................................................ 110
7.5. RozwiÈzanie: uproszczenie relacji ............................................................ 110
Rozdziaï 8. Atrybuty wielokolumnowe .......................................... 117
8.1. Cel: przechowywanie atrybutów wielowarto ciowych ................................. 118
8.2. Antywzorzec: utworzenie wielu kolumn .................................................... 118
8.3. Jak rozpoznaÊ ten antywzorzec ................................................................ 122
8.4. Usprawiedliwione u ycia tego antywzorca ................................................ 123
8.5. RozwiÈzanie: utworzenie tabeli zale nej ................................................... 124
Kup książkę
Poleć książkę
Spis tre ci
7
Rozdziaï 9. Tribble metadanych ..................................................... 127
9.1. Cel: zapewnienie skalowalno ci ............................................................... 128
9.2. Antywzorzec: klonowanie tabel lub kolumn .............................................. 129
9.3. Jak rozpoznaÊ ten antywzorzec ................................................................ 134
9.4. Usprawiedliwione u ycia tego antywzorca ................................................ 135
9.5. RozwiÈzanie: partycjonowanie i normalizacja ........................................... 137
CzÚ Ê II. Antywzorce fizycznego projektu bazy danych ... 141
Rozdziaï 10. BïÚdy zaokrÈgleñ ......................................................... 143
10.1. Cel: stosowanie liczb uïamkowych zamiast liczb caïkowitych .................... 144
10.2. Antywzorzec: stosowanie typu danych FLOAT .................................... 144
10.3. Jak rozpoznaÊ ten antywzorzec .............................................................. 149
10.4. Usprawiedliwione u ycia tego antywzorca .............................................. 150
10.5. RozwiÈzanie: stosowanie typu danych NUMERIC ............................... 150
Rozdziaï 11. 31 smaków ................................................................... 153
11.1. Cel: ograniczenie zakresu danych kolumny do okre lonych warto ci ......... 154
11.2. Antywzorzec: okre lanie warto ci w definicji kolumny ............................. 155
11.3. Jak rozpoznaÊ ten antywzorzec .............................................................. 159
11.4. Usprawiedliwione u ycia tego antywzorca .............................................. 160
11.5. RozwiÈzanie: okre lanie akceptowanych warto ci na poziomie danych ..... 160
Rozdziaï 12. Pliki-widma ................................................................. 165
12.1. Cel: przechowywanie obrazów i innych du ych zasobów ......................... 166
12.2. Antywzorzec: przekonanie o konieczno ci stosowania plików ................... 167
12.3. Jak rozpoznaÊ ten antywzorzec .............................................................. 171
12.4. Usprawiedliwione u ycia tego antywzorca .............................................. 172
12.5. RozwiÈzanie: stosowanie typów danych BLOB ..................................... 173
Rozdziaï 13. Strzelanie indeksami ................................................... 177
13.1. Cel: optymalizacja wydajno ci ............................................................... 178
13.2. Antywzorzec: stosowanie indeksów bez adnego planu ........................... 179
13.3. Jak rozpoznaÊ ten antywzorzec .............................................................. 184
13.4. Usprawiedliwione u ycia tego antywzorca .............................................. 184
13.5. RozwiÈzanie: zasada MENTOR dla indeksów ..................................... 185
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin