У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент



Реферат - Бази даних у Internet
28



даних, ми не маємо унікального номера ID, щоб розпізнавати вхід. Таким чином, ми повинні вибрати інший унікальний атрибут, щоб розпізнати вхід. Ми могли б додати номер ID в базу даних, але заради простоти, ми використовуватимемо ім'я, як унікальне поле. (І, якщо ви знаєте два людей з точно тими ж першими, останніми, і середніми іменами, ви знаєте дуже багато людей.)

Програма CGI пошуку

print "</pre><br>";
print "<A HREF=\"addrbk.html\">Go</a> back to the form to make another search.<br>\n";
print "</body></html>\n";

стає такою :

print "</pre><br>";
print "<A HREF=\"addrbk.html\">Go</a> back to the form to make another search.<br>\n";
if ($I == 1) {
print "<A HREF=\"change.cgi?a=d&name=$arr[0]\">Delete</a> this entry.<br>";
print "<A HREF=\"change.cgi?a=c&name=$arr[0]\">Modify</a> this entry.<br>";
}
print "</body></html>\n";

безпосереднє спрощення CGI:

#!/bin/perl

require cgi_head;
use Msql;
$dbh = Connect Msql;
SelectDB $dbh "addresses";
$all = "name, phone, street, city, state, zip";

if ($FORM{'a'} eq "d") {
    Query $dbh "DELETE FROM addresses WHERE name=$FORM{'name'}";
   <<EOF;
<HTML><HEAD><TITLE>Deletion successful</title></head><BODY>
<h3>Your entry has been deleted</h3>
<A HREF="addrbk.html">Go</a> back to the form to make another search.
</body></html>
EOF
   ;
} elsif ($FORM{'a'} eq "c") {
   = Query $dbh "SELECT $all FROM addresses WHERE name=$FORM{'name'}";
   = FetchRow $guy;
   <<EOE;
<HTML><HEAD><TITLE>Modify Me</title></head><BODY>
<h4>Modify your entry in the form below</h4>
<FORM ACTION="change.cgi" METHOD="POST">
<INPUT TYPE=HIDDEN NAME="a" VALUE="m">
Name: <INPUT SIZE=45 NAME="name" VALUE="$guy[0]"><br>
Phone: <INPUT SIZE=45 NAME="phone" VALUE="$guy[1]"><br>
Street: <INPUT SIZE=45 NAME="street" VALUE="$guy[2]"><br>
City: <INPUT SIZE=20 NAME="city" VALUE="$guy[3]">
State: <INPUT SIZE=3 NAME="state" VALUE="$guy[4]">
Zip: <INPUT SIZE=6 NAME="zip" VALUE="$guy[5]">
<br><INPUT TYPE=SUBMIT VALUE="  Entry  
<INPUT TYPE=RESET VALUE="  Form  
</form></body></html>
EOE
   ;
} elsif ($FORM{'a'} eq "m") {
   (keys %FORM) {       забрати дані з форми
       =. " $_ = $FORM{'$_'},; по одній лінії.
    }
   =~ s/,$//;          # Get rid of that annoying trailing ','
   $dbh "UPDATE addresses SET $query WHERE name=$FORM{'name'}";
   <<EOF;
<HTML><HEAD><TITLE>Modification successful</title></head><BODY>
<h3>Your entry has been modified</h3>
<A HREF="addrbk.html">Go</a> back to the form to make another search.
</body></html>
EOF
   ; # Th' th' that's all folks
}  

Це так просто, як і у попередньому випадку. П'ятдесят стрічок Perl проти понад однієї сотні. Справжня гнучкість сервера бази даних відкриває двері до різноманітних можливостей.

Висновок

Світ взаємодії бази даних з Web є такий же широким як і зовнішній світ. Для будь-якої проблеми, є дюжини розв'язків, чимсь кращих за інші. Це зводиться до особистої переваги і досвіду. Для особи з навичкою обробки даних в Windows, можливо, буде найлегше використовувати Windows-базу даних як наприклад Paradox або Access разом з одним з готових інтерфейсів CGI для них. Програміст C може віддати перевагу грі з одним з APIs, передбаченого для різних серверів SQL як наприклад Sybase, Oracle, SQL Server, і mSQL. Хто-небудь, який є "тільки іншим Perl-хакер" повинний почувати себе найбільш зручно з одним з багатьох інтерфейсів Perl до серверу бази даних SQL і ODBM (або, можливо, вони повинні тільки написати одного з них для себе).

Всередині цього королівства великої гнучкості, ефективність взаємодії бази даних з Web залежить від багатьох речей:

Які інструментальні засоби доступні? Чи є ви адміністратором системи UNIX, підсиленої потужним сервером? Або, можливо, ваш Internet-зв'язок є тільки PPP-з'єднанням з Windows-машиною. Якщо ви використовуєте Windows-платформу, не варто воювати з погано написаними мовами програмування, коли є величезна бібліотека вже доступних інструментальних засобів. Якщо UNIX є вашою опорою, ви можете подумати перед вибиттям артилерійським вогнем декількох тисяч доларів для серверів Sybase або Oracle, коли є безкоштовні інструментальні засоби, як, наприклад, легко доступні mSQL і POSTGRES. (Але з другого боку знову, можливо ваші потреби такі, що лише тільки high-end-сервер баз даних буде достатнім.) Варто бути обізнаним що є для вас доступним.

Який розмір вашого проекту?  Розмір має велике значення. Як ми бачили, пласкі текстові базові бази даних просто не звертають уваги на розмір. 50 MB версія нашої фонової книги могла б поставити навіть найбільш могутній RISC-сервер на коліна. У той же час, треба багато часу, щоб створити БД, яка використовує сервер. Вам потрібно мати дозвіл, і поперед усе, вам потрібно мати доступ до сервера. Якщо ви є студент з університетським account'ом, є шанс, що текст - це все, з чим необхідно мати справу. Навіть сервери баз даних звертають увагу на розмір і складність вашого проекту - зберігання бази даних всіх телефонних номерів в Америці могло б бути заведикою роботою навіть для окремої бази даних, подібної Access або Paradox. З іншого боку, база даних з таблицями, які з'єднуються з таблицями непрямими та переплутанитими шляхами є просто неможлива у вільнодоступних серверах, подібних до mSQL. (POSTGRES має більші функціональні можливості, за рахунок швидкості, складності, і відсутності стандартного інтерфейсу SQL) Перш ніж писати проект, спробуйте передбачити максимальний розмір і план відповідно.

Програмувати або ні? Зі значним списком ресурсів, показаних раніше в розділі, чому будь-хто має писати власні CGI взагалі? Можливо ви не будете робити цього. кщо ви маєте зайві гроші, є шанс, що що-небудь відповідатиме вашим вимогам. Навіть якщо ви не багатій, ви можливо знайдете щось схоже. Але цього не завжди достатньо. Невеличкого знання того, як CGI спілкуються з базами даних, може вистачити надовго.

Є там альтернатива до CGI?  Павутина є велике місце,вона зростає кожного дня, і CGI є не єдиною грою. Не потрапте до пастки ігнорування нових технологій тільки через те, що вони нові. (У той


Сторінки: 1 2 3 4 5 6