Preface |
|
xxi | (4) |
For More Information... |
|
xxii | (1) |
Application Servers |
|
xxii | (1) |
Acknowledgements |
|
xxii | (3) |
Introduction |
|
xxv | |
Who Can Do It? |
|
xxvii | (2) |
What Can You Do? |
|
xxix | (1) |
Costs |
|
xxx | (1) |
Opportunities |
|
xxxi | |
Part I. Overview: Databases on the Web |
|
1 | (58) |
|
Chapter I. Databases on the Web |
|
|
3 | (18) |
|
Using a Database to Publish Data on the Web |
|
|
4 | (3) |
|
Using a Database to Share Data |
|
|
7 | (4) |
|
|
7 | (1) |
|
|
8 | (3) |
|
Using a Database for E-Commerce |
|
|
11 | (6) |
|
E-Commerce on a Grand Scale--the Apple Store |
|
|
12 | (2) |
|
E-Commerce on a Small Scale--International Motor Parts |
|
|
14 | (3) |
|
Using a Database to Keep Web Pages up to Date |
|
|
17 | (3) |
|
|
20 | (1) |
|
Chapter 2. What Is a Database? |
|
|
21 | (12) |
|
|
22 | (6) |
|
Databases Handle Large Amounts of Structured Data |
|
|
23 | (1) |
|
Database Data Can Change Quickly (Often Unpredictably) |
|
|
24 | (1) |
|
Database Data Needs to Be Selected and Displayed in Different Ways (Sometimes Unpredictable) |
|
|
24 | (1) |
|
Databases Have Tools to Manipulate Their Data |
|
|
25 | (1) |
|
Databases Contain Meta-Data |
|
|
25 | (1) |
|
Databases Contain Data Validation and Integrity Features |
|
|
26 | (1) |
|
Databases Are Often Shared across Time and Space |
|
|
27 | (1) |
|
Databases and Their Data Can Be Related to One Another |
|
|
27 | (1) |
|
The Structure of Database Data |
|
|
28 | (3) |
|
Databases Contain Multiple Instances of Similarly Structured Data |
|
|
29 | (1) |
|
Databases Can Be Normalized |
|
|
30 | (1) |
|
|
31 | (2) |
|
Chapter 3. What Is the Web? |
|
|
33 | (6) |
|
|
34 | (4) |
|
The Web Can Manage Large Amounts of Data |
|
|
34 | (1) |
|
Web Data Changes Quickly (Often Unpredictably) |
|
|
34 | (1) |
|
Web Data Needs to Be Selected and Displayed in Different Ways (Sometimes Unpredictable) |
|
|
35 | (1) |
|
The Web Has Tools to Manipulate Its Data |
|
|
35 | (1) |
|
Web Pages Contain Meta-Data |
|
|
36 | (1) |
|
Web Pages Are Often Shared across Time and Space |
|
|
37 | (1) |
|
|
38 | (1) |
|
Chapter 4. How Databases Work on the Web |
|
|
39 | (20) |
|
|
40 | (11) |
|
Dumb Terminals and Mainframes |
|
|
41 | (3) |
|
|
|
|
|
|
|
Operating Systems and Structured Programming |
|
|
44 | (2) |
|
Personal Computers and Client/Server Architecture |
|
|
46 | (2) |
|
|
48 | (3) |
|
|
|
|
|
Client/Server Architecture on the Web |
|
|
|
|
51 | (6) |
|
Connecting to the Internet |
|
|
52 | (1) |
|
Connecting to an Internet Address |
|
|
53 | (2) |
|
|
|
|
|
|
|
Sessions and Transactions |
|
|
55 | (2) |
|
|
57 | (1) |
|
|
57 | (2) |
Part II. Getting Started |
|
59 | (132) |
|
Chapter 5. Creating a Database-Driven Web Site: Overview |
|
|
61 | (8) |
|
Internet Service Provider/Database Service Provider |
|
|
62 | (1) |
|
|
63 | (1) |
|
Application Servers and Other Intermediaries |
|
|
64 | (2) |
|
|
65 | (1) |
|
|
66 | (1) |
|
|
67 | (2) |
|
Chapter 6. Choosing Your Internet Service Provider |
|
|
69 | (24) |
|
|
70 | (5) |
|
|
71 | (1) |
|
|
72 | (1) |
|
|
73 | (2) |
|
|
|
|
|
Connecting a Server to the Internet |
|
|
75 | (13) |
|
|
76 | (3) |
|
|
|
|
|
|
|
|
|
Dial-Up Connection with Static IP Address |
|
|
79 | (1) |
|
|
|
|
|
|
|
|
|
|
80 | (3) |
|
|
|
|
|
|
|
|
|
|
83 | (3) |
|
|
|
|
|
|
|
|
|
|
86 | (2) |
|
|
|
|
|
|
|
|
|
Other Internet/Database Service Provider Services |
|
|
88 | (4) |
|
E-Commerce and Secure Servers |
|
|
89 | (1) |
|
|
90 | (1) |
|
Site Development Services |
|
|
91 | (1) |
|
|
91 | (1) |
|
|
91 | (1) |
|
|
91 | (1) |
|
|
92 | (1) |
|
|
92 | (1) |
|
Chapter 7. Database Software |
|
|
93 | (76) |
|
The Great Database Secrets |
|
|
94 | (5) |
|
|
94 | (1) |
|
|
95 | (1) |
|
|
96 | (3) |
|
|
|
Platforms and Environments |
|
|
|
|
99 | (2) |
|
|
99 | (1) |
|
|
100 | (1) |
|
|
101 | (1) |
|
|
101 | (39) |
|
Microsoft Access Overview |
|
|
103 | (11) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 | (2) |
|
|
116 | (23) |
|
Publish to the Web Wizard |
|
|
|
|
|
|
|
|
|
|
|
Upsizing Microsoft Access Databases |
|
|
139 | (1) |
|
|
140 | (23) |
|
|
141 | (6) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
147 | (16) |
|
|
|
FileMaker Pro Connection Assistant |
|
|
|
Home Page Graphical Editor for FileMaker Pro |
|
|
|
|
|
|
|
Databases for Programmers |
|
|
163 | (3) |
|
|
165 | (1) |
|
|
165 | (1) |
|
|
166 | (1) |
|
|
166 | (1) |
|
|
167 | (1) |
|
|
167 | (2) |
|
Chapter 8. Application Servers and Development Tools |
|
|
169 | (22) |
|
Where Is the Application Server? |
|
|
170 | (1) |
|
Tools for Working with Application Servers |
|
|
171 | (5) |
|
|
172 | (1) |
|
|
173 | (1) |
|
|
173 | (2) |
|
Which Tool Is Right for You? |
|
|
175 | (1) |
|
|
176 | (12) |
|
|
176 | (1) |
|
|
177 | (3) |
|
|
180 | (2) |
|
|
182 | (4) |
|
Sending Mail and Writing to Files |
|
|
186 | (2) |
|
|
188 | (3) |
Part III. How to Do It: Setting Up and Using a Database |
|
191 | (40) |
|
Chapter 9. SQL and Relational Databases |
|
|
193 | (26) |
|
What Database-Driven Web Sites Need from Their Databases |
|
|
194 | (3) |
|
Publishing Data on the Web |
|
|
194 | (1) |
|
|
195 | (1) |
|
|
196 | (1) |
|
Keeping Web Pages Up to Date |
|
|
196 | (1) |
|
|
197 | (1) |
|
|
197 | (10) |
|
The Relational Model in Two Simple Points |
|
|
198 | (1) |
|
|
199 | (1) |
|
|
200 | (1) |
|
|
200 | (1) |
|
|
201 | (6) |
|
First Normal Form (Eliminate Repeating Groups) |
|
|
|
Second Normal Form (Eliminate Redundant Data) |
|
|
|
Third Normal Form (Eliminate Fields Not Dependent on the Key Field) |
|
|
|
Fourth Normal Form (Separate Multiple Relations) |
|
|
|
Fifth Normal Form (Use Common Sense) |
|
|
|
|
207 | (10) |
|
|
208 | (2) |
|
How This Works in Traditional Programs |
|
|
|
Why This Matters for Database-Driven Web Sites |
|
|
|
|
210 | (1) |
|
|
|
|
|
|
211 | (5) |
|
Examples of Select Statements |
|
|
|
|
|
|
216 | (1) |
|
|
216 | (1) |
|
|
216 | (1) |
|
|
216 | (1) |
|
|
|
|
|
|
217 | (2) |
|
Chapter 10. Programming with Databases |
|
|
219 | (12) |
|
|
220 | (4) |
|
|
221 | (1) |
|
|
221 | (1) |
|
Differences between Procedural and Database Programming |
|
|
221 | (1) |
|
|
222 | (2) |
|
|
224 | (3) |
|
Automating Web Page Production |
|
|
225 | (1) |
|
|
226 | (1) |
|
|
227 | (2) |
|
The Data and Nothing But the Data |
|
|
229 | (1) |
|
|
229 | (2) |
Part IV. How to Do It: Integrating the Database with a Web Site |
|
231 | (78) |
|
Chapter II. HTML for Database Designers |
|
|
233 | (22) |
|
|
234 | (7) |
|
|
235 | (1) |
|
Managing Markup Information |
|
|
235 | (1) |
|
|
236 | (1) |
|
|
237 | (1) |
|
|
238 | (1) |
|
HTML Documents and Their Editors |
|
|
239 | (2) |
|
Numeric Character References |
|
|
|
Character Entity References |
|
|
|
|
|
Creating and Editing HTML Documents with Graphic Editors |
|
|
|
Creating and Editing HTML Documents with Text-Based Editors |
|
|
|
|
241 | (10) |
|
|
243 | (1) |
|
|
243 | (1) |
|
|
244 | (2) |
|
|
246 | (1) |
|
|
247 | (1) |
|
|
248 | (1) |
|
Hypertext References (Links) |
|
|
249 | (1) |
|
|
250 | (1) |
|
|
251 | (1) |
|
|
252 | (1) |
|
|
253 | (2) |
|
Chapter 12. Sending Data to Web Sites with HTTP and Forms |
|
|
255 | (26) |
|
Requesting a Resource on the Web |
|
|
256 | (5) |
|
|
257 | (1) |
|
|
257 | (2) |
|
Sending Data as Part of a Request |
|
|
259 | (2) |
|
|
|
Sending Data in the Message Body |
|
|
|
|
261 | (11) |
|
|
261 | (4) |
|
HTML for the Table Example |
|
|
|
|
265 | (2) |
|
Example Code for a Form within a Table |
|
|
267 | (5) |
|
|
|
|
|
|
|
|
272 | (5) |
|
|
273 | (1) |
|
|
273 | (2) |
|
|
|
|
|
|
275 | (1) |
|
|
276 | (1) |
|
|
277 | (2) |
|
|
277 | (1) |
|
Scrolling and Screen Size |
|
|
|
|
|
|
|
|
278 | (1) |
|
|
279 | (1) |
|
|
279 | (2) |
|
Chapter 13. Scripting for Database Applications |
|
|
281 | (28) |
|
|
282 | (7) |
|
|
283 | (5) |
|
|
|
|
|
|
|
|
288 | (1) |
|
Manipulating Data with Scripts |
|
|
289 | (5) |
|
|
289 | (3) |
|
How to Do It with Script Commands |
|
|
|
How to Do It with a Script Element |
|
|
|
Analyzing and Editing Data |
|
|
292 | (2) |
|
|
|
Enhancing the Interface with Scripts |
|
|
294 | (10) |
|
|
295 | (1) |
|
|
296 | (3) |
|
Locate the Object That Causes Script Activity |
|
|
|
Identify the Object That Will Be Changed |
|
|
|
Write the Script(s) That Will Be Triggered |
|
|
|
Associate the Script(s) with the Hot Object |
|
|
|
Example: Animating a Button |
|
|
299 | (5) |
|
Controlling Forms and URL Requests with Scripts |
|
|
304 | (3) |
|
|
305 | (2) |
|
|
|
Submitting a Form with JavaScript |
|
|
|
|
307 | (2) |
Part V. How to Do It: Using Your Database on the Web |
|
309 | (82) |
|
Chapter 14. Setting It Up |
|
|
311 | (44) |
|
Tools and Resources for Your Database-Driven Web Site |
|
|
312 | (7) |
|
|
313 | (1) |
|
|
|
|
|
|
314 | (1) |
|
|
315 | (1) |
|
|
316 | (1) |
|
|
317 | (1) |
|
|
318 | (1) |
|
Organizing the Web Site Structure |
|
|
319 | (19) |
|
The Site Structure That Your Users See |
|
|
319 | (9) |
|
What Does the Site Look Like? |
|
|
|
|
|
|
|
Pages May Be Different at Different Times |
|
|
|
|
|
The Site Structure That You Manage |
|
|
328 | (4) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
332 | (4) |
|
|
|
File Structures for Easy Maintenance |
|
|
|
|
|
|
|
Keep Track of Files and Folders |
|
|
|
|
|
|
|
|
336 | (2) |
|
|
|
|
|
|
|
|
338 | (8) |
|
Maintaining Your Databases on the Web from Afar |
|
|
338 | (5) |
|
Databases That Move and Those That Do Not |
|
|
|
|
|
|
343 | (1) |
|
|
|
|
|
Scheduling Maintenance and Updates |
|
|
344 | (1) |
|
|
345 | (1) |
|
|
346 | (7) |
|
What Are You Doing on the Web? |
|
|
346 | (1) |
|
What Your Site Says about You |
|
|
347 | (2) |
|
|
|
|
|
Letting People Know about Your Site |
|
|
349 | (2) |
|
Do Not Change Your Address |
|
|
|
Indentify the Site in Relation to a Known Address |
|
|
|
The Site Is Part of Your Address |
|
|
|
Managing Problems in the Public World of a Network |
|
|
351 | (1) |
|
|
352 | (1) |
|
Dealing with Registration, Guest Books, and Gatekeepers |
|
|
352 | (1) |
|
|
353 | (2) |
|
|
355 | (30) |
|
When You Do Not Have to Worry about Security |
|
|
356 | (2) |
|
Myth: Ignorance Is Security |
|
|
357 | (1) |
|
|
357 | (1) |
|
Myth: We Can Fix It Later |
|
|
358 | (1) |
|
Myth: You Can Never Have Too Much Security |
|
|
358 | (1) |
|
|
358 | (1) |
|
|
359 | (1) |
|
|
360 | (4) |
|
Authentication and Identification |
|
|
361 | (1) |
|
|
362 | (1) |
|
|
362 | (2) |
|
Internet Access Passwords |
|
|
|
Web Page Access Passwords |
|
|
|
|
|
Passwording a Section of Your Site |
|
|
364 | (9) |
|
|
364 | (1) |
|
What Should Be Protected? |
|
|
365 | (3) |
|
HTTP Basic Authentication |
|
|
368 | (5) |
|
Specifying Access Control--.htaccess |
|
|
|
Specifying User Names and Passwords--.htpasswd |
|
|
|
Notes on Files and Filenames |
|
|
|
|
373 | (1) |
|
|
373 | (6) |
|
|
374 | (3) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
377 | (1) |
|
|
|
|
|
|
378 | (1) |
|
|
|
|
|
|
378 | (1) |
|
|
379 | (2) |
|
Nonclick and Automated Access |
|
|
381 | (1) |
|
Handling Security Problems |
|
|
382 | (1) |
|
Digital Signatures and Authorial Authentication |
|
|
383 | (1) |
|
|
384 | (1) |
|
Chapter 16. Copyright, Pornography, and Treason |
|
|
385 | (6) |
|
|
386 | (2) |
|
Who Owns the Material You Are Publishing? |
|
|
386 | (1) |
|
What Is the Nature of the Material You Are Publishing? |
|
|
387 | (1) |
|
Are You Delegating Your Publishing Power? |
|
|
387 | (1) |
|
|
387 | (1) |
|
|
388 | (1) |
|
|
389 | (1) |
|
|
390 | (1) |
Part VI. Doing It: Case Studies |
|
391 | (82) |
|
Chapter 17. Publishing Data on the Web |
|
|
393 | (14) |
|
|
394 | (2) |
|
|
396 | (9) |
|
Character-Based Interfaces |
|
|
397 | (2) |
|
|
|
Graphical User Interfaces |
|
|
399 | (2) |
|
|
|
|
401 | (4) |
|
|
|
Customizing the Basic Interface |
|
|
|
Integrating the Customized Interface |
|
|
|
|
|
|
405 | (2) |
|
Chapter 18. Sharing Data on the Web |
|
|
407 | (12) |
|
Upper Valley Materials Exchange |
|
|
408 | (6) |
|
|
409 | (1) |
|
|
409 | (2) |
|
|
411 | (1) |
|
|
412 | (1) |
|
|
412 | (2) |
|
|
414 | (1) |
|
|
414 | (4) |
|
|
414 | (1) |
|
|
415 | (3) |
|
|
418 | (1) |
|
|
419 | (16) |
|
|
420 | (10) |
|
|
421 | (1) |
|
|
422 | (1) |
|
Implementing a Shopping Cart |
|
|
|
|
423 | (4) |
|
|
|
|
|
The Shopping Cart in Action |
|
|
427 | (1) |
|
|
428 | (2) |
|
|
430 | (3) |
|
|
430 | (1) |
|
|
431 | (2) |
|
|
433 | (2) |
|
Chapter 20. Totally Database-Driven Web Sites |
|
|
435 | (22) |
|
|
436 | (10) |
|
|
436 | (1) |
|
How a Story Gets On to the Site |
|
|
437 | (3) |
|
|
440 | (2) |
|
|
442 | (4) |
|
|
|
|
|
|
|
|
446 | (5) |
|
|
446 | (1) |
|
|
447 | (4) |
|
Some Notes on Performance |
|
|
451 | (2) |
|
Static versus Dynamic Home Pages |
|
|
451 | (1) |
|
|
452 | (1) |
|
|
452 | (1) |
|
Cookies, Options, and Parameters |
|
|
453 | (2) |
|
|
453 | (1) |
|
Implementing Options and Preferences |
|
|
454 | (1) |
|
Where to Place the Cookie |
|
|
454 | (1) |
|
|
455 | (2) |
|
Chapter 21. Reinventing Your Organization |
|
|
457 | (16) |
|
|
458 | (9) |
|
|
459 | (3) |
|
|
|
|
462 | (1) |
|
|
463 | (2) |
|
|
465 | (1) |
|
|
466 | (1) |
|
|
467 | (3) |
|
Automatically Sending E-Mail |
|
|
468 | (2) |
|
Generating and Sending on E-Mail Message |
|
|
|
|
|
|
470 | (3) |
Glossary |
|
473 | (8) |
Index |
|
481 | |