Системы баз данных. Теория и практика использования в Internet и среде Java

Грег Риккарди

Principles of Database Systems with Internet and Java Applications First Edition
Gregory Riccardi
книга Системы баз данных. Теория и практика использования в Internet и среде Java

Тираж данной книги закончился.
Введение

Обсуждение книг по Java в блоге Виктора Штонда

В книге рассматривается широкий круг вопросов, связанных с системами баз данных. Автору удалось соединить изложение общих теоретических положений (модели данных, реляционная алгебра) с углубленным рассмотрением практических аспектов (языки SQL и Java, физические характеристики баз данных, взаимодействие с Internet, объектно-ориентированные системы).Изложение материала сопровождается рядом примеров, начиная от простых иллюстраций отдельных понятий и заканчивая полномасштабной рабочей моделью СУБД для обслуживания компании по прокату видеокассет. Книга изначально задумывалась в качестве учебного пособия для студентов старших курсов, но благодаря удачному объединению сведений о взаимодополняющих областях информатики может быть полезной самому широкому кругу читателей.

480 стр., с ил.; ISBN 5-8459-0208-8, 0-201-61247-X; формат 70x100/16; 2001, 4 кв.; Вильямс.



Понравилась книга? Порекомендуйте её друзьям и коллегам:







Книги, рекомендуемые вместе с этой книгой:

Разделы каталога:



Предисловие

Книга "Принципы организации баз данных с Internet- и Java-приложениями" представляет собой сжатое современное изложение основ технологии баз данных и предназначена для студентов высших учебных заведений, изучающих базы данных, слушателей практических курсов, посвященных взаимодействию баз данных со всемирной сетью WWW, а также профессиональных разработчиков. В частности, в книгу включены Java- и Internet-приложения как иллюстрация практического применения основ теории систем управления базами данных (в дальнейшем — СУБД).

В данной книге содержатся основные сведения по организации информации, базам данным, программированию на языке Java и взаимодействию с базами данных в сети WWW. Книга ориентирована на читателей, обладающих базовыми знаниями в программировании, и поможет им улучшить свои навыки в разработке и реализации сложных информационных систем.

Главная тема этой книги — рациональная организация информации. Этой цели служит разработка моделей данных и представление информации в виде реляционных баз данных. Читатели научатся определять информационное содержимое посредством моделей "сущность-связь" и представлять это содержимое в реляционных базах данных. Они смогут детально изучить язык структурированных запросов (Structured Query Language — SQL), а также ознакомиться с некоторыми особенностями современных реляционных баз данных. Читатели узнают, что именно необходимо для создания высококачественных информационно-насыщенных приложений. В дополнение, они увидят, как объединив возможности Web и языка Java можно распространять и собирать всевозможную информацию.

В книге широко представлен материал о базах данных и информационных системах. Среди рассматриваемых тем анализ информационных требований, разработка концептуальных моделей данных, преобразование концептуальных моделей в реляционные, процесс нормализации и улучшения реляционных схем, написание запросов на языке SQL и разработка приложений баз данных. Изложение материала сопровождается рассмотрением иллюстративных примеров. Дополнительно представлена информация о связи объектно-ориентированного моделирования и баз данных, производительности и оптимизации баз данных, ограничениях и триггерах, транзакциях, резервном копировании и восстановлении, файловых структурах, индексировании, а также технологии работы с распределенными объектами.

Для углубленного изучения систем реляционных баз данных в книгу включены материалы, посвященные применению общедоступных СУБД, таких как, Microsoft Access, базы данных SQL, а также средств объектно-ориентированной разработки. Microsoft Access используется для иллюстрации роли реляционных моделей в разработке информационных приложений. Также демонстрируются способы использования баз данных SQL совместно с ODBC, JDBC и языком Java. Преподаватели смогут использовать программные проекты в среде Oracle или, по своему желанию, адаптировать их для применения в других реляционных СУБД.

Изложение языка Java закладывает основу для обсуждения вопросов представления информации в объектно-ориентированном языке. Рассмотрение этого языка программирования начинается с описания способов его взаимодействия с реляционными базами данных. Помимо этого, язык Java применяется для создания систем взаимодействия в среде Web, распределенных приложений, представления файловых структур и индексов, проектирования объектно-ориентированных моделей данных. Те, кто знаком с объектно-ориентированным языком, без труда смогут усвоить этот материал. А тем, кто еще не программировал на языке Java, полезно будет прочитать приложение, посвященное данному языку, и возможно понадобится воспользоваться руководством по Java.

Взаимодействие между приложениями и базами данных обсуждается и иллюстрируется в контексте создания Web-узлов. JDBС-классы языка Java предоставляют независимый от конкретной базы данных и платформы метод создания приложений баз данных. В книге содержится подробное описание соответствующих классов, приводятся многочисленные примеры. После изучения основ программирования с использованием HTML и CGI, студентам предлагается осуществить разработку собственных Web-узлов с использованием программ на языке Java для обслуживания CGI-запросов и генерирования ответов в виде HTML-документов. Дополнительно рассматриваются вопросы использования Java-сервлетов для замещения CGI-программ, а также разработка простых Java-аплетов в качестве пользовательских интерфейсов баз данных.

При рассмотрении основополагающих принципов организации файловых структур акцент делается на разработке программного обеспечения. Студентам предоставляется возможность ознакомиться с объектно-ориентированным способом представления информации в файлах. В книгу включены определения классов для организации ввода/вывода файлов прямого доступа, упаковки и распаковки буфера, индексирования, а также реализации B+ деревьев. Раздел файловых структур завершается обсуждением методов реализации систем реляционных баз данных.

Приложения баз данных и примеры

К отличительным особенностям данной книги можно отнести то, что в ней особое внимание уделяется разработке программного обеспечения, используется язык программирования Java, а всемирная сеть WWW представлена в качестве средства взаимодействия баз данных. Для знакомства с объектно-ориентированными методами и для применения этих методов в процессе разработки приложений баз данных используется язык Java. Поддержка языком Java взаимодействия с базами данных является ключом к успеху при обеспечении доступа к информации через Internet. Подробное обсуждение взаимодействия языка Java и Web помогает понять, что необходимо для создания полезных приложений. Благодаря этому, книга окажется особенно полезной для преподавателей, стремящихся соединить в своем курсе основы баз данных с Internet-технологиями.

Практически в начале книги вводятся сложные информационные приложения, которые затем используются для иллюстрации общих концепций и деталей. Основным примером является состоящая из ряда точек проката и продажи видеокассет вымышленная фирма BigHit Video Company. Информационные и прикладные потребности этой компании вполне достаточны для разработки широкого спектра приложений, от простейших до весьма сложных. Каждая новая тема сопровождается демонстрацией ее использования в конкретных информационных приложениях.

Дополнительные материалы, доступ к которым можно получить через Internet, содержат базы данных, SQL, а также примеры программ, помещенных в книге. Кроме того, преподаватели смогут получить полные реализации примеров баз данных Microsoft Access. Эти базы данных продуманы таким образом, что могут быть доработаны и усовершенствованы студентами в курсовых проектах. Примеры на языке SQL пригодны как для использования в Access, так и в других стандартных базах данных SQL. Особое внимание автор уделил тому, чтобы использованный в книге и приложениях язык SQL принадлежал к универсально применимому подмножеству стандартного языка SQL.

Книга для преподавателей курса по базам данных

Курс по общим принципам организации баз данных для студентов старших курсов является одним из наиболее важных в программе обучения, так как в нем объединяются интересы пользователей, разработчиков и специалистов по обслуживанию систем программного обеспечения. Преподаватели должны предоставить студентам такой набор тем, который позволит им понять, каким образом можно удовлетворить эти различные потребности. Несмотря на то, что изучающие этот курс студенты могут обладать некоторым опытом в программировании, им, тем не менее, необходимо научиться объединять анализ, проектирование и навыки в программировании для создания полезного и эффективного программного обеспечения.

Курс баз данных для специалистов по информационным технологиям должен включать изложение основ проектирования и реализации информационных систем, реляционных СУБД и языка SQL. Он должен служить целям повышения общего уровня подготовки и профессиональных навыков студентов, готовящихся стать специалистами в области программного обеспечения. И наконец, этот курс должен стимулировать студентов к упорному труду, чему должно способствовать, в частности, интересное содержание.

Предпосылкой к написанию этой книги явилось то, что объединение в единое целое предмета баз данных, языка Java и возможностей World Wide Web позволяет создать курс, наиболее полно отвечающий всем вышеперечисленным требованиям. Содержащийся в книге современный и интересный материал делает ее особо привлекательной для студентов.

Наиболее интересной частью курса по базам данных может стать разработка приложений баз данных, поддерживающих Web-узлы. В данной книге достаточно широко представлена тема, посвященная объектно-ориентированному программированию, чтобы продемонстрировать, как прикладные программы могут взаимодействовать с базами данных, посредством языка SQL. Также излагаются основы языка HTML, HTML-форм и программирования CGI-сценариев. В нее даже включено рассмотрение использования Java-сервлетов в качестве альтернативы CGI.

Студентам, приступающим к изучению книги, не требуется наличие обширного опыта использования языка Java. Описание языка Java начинается с рассмотрения основных базовых классов и постепенно переходит ко все более сложным структурам. Студенты, знакомые с любым другим объектно-ориентированным языком программирования, смогут легко разобраться с примерами программ и упражнениями.

Как читать эту книгу

Можно предложить как минимум три подхода к преподаванию баз данных с помощью этой книги: традиционный курс по системам баз данных, курс по объектно-ориентированным приложениям баз данных и курс, ориентированный на прикладное использование баз данных. Все три курса должны включать в себя введение, а также главы, посвященные моделям данных, модели "сущность-связь" и ее расширениям, реляционным схемам, манипулированию реляционной информацией и языку SQL. Как следует из личного опыта автора, эти темы занимают приблизительно половину семестра. Этот материал содержится в следующих главах:

  • глава 1 "Управление информацией и системы баз данных",
  • часть 1 "Информационные модели и реляционные базы данных" (гл. 2 – 5),
  • часть 2 "Обработка и манипулирование реляционными данными" (гл. 6 – 7).

В традиционном курсе по базам данных наибольшее внимание в оставшейся части курса уделяется способам использования реляционных баз данных в информационных системах. При этом основное внимание уделяется вопросам проектирования реляционных баз данных на основе файловых структур и индексов, выполнению и оптимизации запросов, обеспечению целостности, изучению транзакций, безопасности, резервному копированию и восстановлению. Этот материал содержится в следующих главах:

  • часть 4 "Физические характеристики баз данных" (гл. 11 – 12),
  • часть 5 "Производительность и надежность систем с реляционными базами данных" (гл. 13 – 15).

В отличие от традиционного курса, в курсе по объектно-ориентированным приложениям баз данных оставшаяся часть курса должна быть посвящена разработке информационно-насыщенных приложений с использованием Java в качестве основного языка программирования. В этом случае внимание должно фокусироваться на взаимодействии приложений и реляционных баз данных, поддержке приложениями баз данных Web-узлов, а также распределенных информационных системах, объектно-ориентированных и объектно-реляционных системах баз данных. Это материал излагается в следующих главах:

  • часть 3 "Приложения баз данных и World Wide Web" (гл. 8 – 10),
  • часть 4 "Физические характеристики баз данных" (гл. 16 – 17).

Автор книги предпочитает преподавать курс, ориентированный на прикладное использование баз данных, объединяющий оба эти подхода. В первой половине курса излагается стандартный материал и студенты создают достаточно сложное приложение с соответствующим пользовательским интерфейсом на основе Microsoft Access. Вторая половина курса начинается с описания приложений реляционных баз данных на языке Java (гл. 8) и взаимодействия баз данных и Web (гл. 9). На этой стадии изучения студенты начинают работу по созданию Web-узла с использованием языка Java и базы данных SQL. Далее в курсе кратко излагаются физическая реализация баз данных (часть 4) и обработка запросов (гл. 13), и завершается он подробным изучением транзакций, безопасности, резервного копирования и восстановления (гл. 14 и 15).

Программирование приложений баз данных на языке Java

Значительная часть разработанных в этой книге приложений основана на использовании языка Java. Для незнакомых с языком Java читателей в книгу включено приложение, содержащее введение в программирование на этом языке. Автор книги несколько лет преподавал язык Java студентам университета Флориды. Большинство студентов были хорошо знакомы с программированием на языке C++, но не обладали каким-либо опытом в использовании языка Java. Автор всегда старался убедить студентов в том, что программирование на языке Java приложений баз данных и Web-узлов является простым и прозрачным. Студенты, как правило, сомневались, но всегда преуспевали на конечном этапе обучения. Они с удовольствием отмечали, что в предложенных учебных программных проектах практически полностью отсутствуют наиболее сложные, по общему мнению, особенности языка Java. В частности, совершенно не требуется программировать графический интерфейс пользователя.

Многие люди полагают, что язык Java ориентирован на создание живых Web-страниц. Безусловно, верно, что это — хорошее средство для создания пользовательских интерфейсов, исполняемых в среде Web-броузера. Однако язык Java — это еще и наилучшее из существующих программных средств для разработки приложений баз данных, представленных в этой книге.

Настоящая мощь языка Java является следствием его способности организовать взаимодействие между приложениями независимо от Web-сервера. Его способность взаимодействовать с любым сервером баз данных на любой из платформ является решающим фактором для качественной разработки динамических Web-узлов, а его возможности поддержки распределенных объектов действительно уникальны.

Примеры программного кода в этой книге служат ориентиром при разработке приложений на языке Java, а также содействуют приобретению навыков квалифицированного программиста баз данных на языке Java. Для выполнения большинства практических задач студентам достаточно адаптировать приведенные в книге классы языка Java, чтобы получить нужное решение. Несколько незначительных изменений, и появляется совершенно новое приложение. Студенты, с которыми работал автор, находят, что значительно проще понимать код программы на языке Java, зная C++. Выполняя упражнение за упражнением, они начинают лучше понимать возможности языка и приобретать все больший опыт в данном вопросе. После окончания обучения многие из них обнаруживают, что их знание языка Java и умение использовать его для программирования баз данных являются наиболее востребованными на рынке труда.

Понимание примеров кода программ, приведенных в данной книге, требует от читателя внимательного прочтения, а также доступа к полной реализации примеров на поддерживающем эту книгу Web-узле. Примеры кода в самой книге зачастую достаточно фрагментарны и имеют весьма лаконичные комментарии. На Web-узле же располагается полный и содержащий подробные комментарии код.

Дополнительные материалы

Преподаватели и студенты могут получить доступ к большому количеству дополнительных материалов через Internet. Весь код на языке Java, примеры баз данных Microsoft Access, примеры баз данных на языке SQL доступны читателю на ftp-узле ftp.aw.com в каталоге authors/riccardi/database. Основная часть материала бесплатна, однако руководство для преподавателей, примеры заданий, ответы на упражнения и некоторые крупные приложения доступны только преподавателям при условии, что они свяжутся с торговым представителем издательства Addison-Wesley в соответствующем регионе.

Все представленные в книге схемы баз данных, SQL-выражения и прикладные программы также доступны через Internet. Соответствующий материал содержит базы данных Microsoft Access, необходимый для создания и заполнения таблиц на языке SQL, весь необходимый для разработки приложений и Web-узлов код на языке Java, а также код, требуемый для интеграции Web-приложений на платформах Unix и Windows.

Пакеты на языке Java, обеспечивающие взаимодействие между Web-броузерами, Web-серверами и приложениями баз данных, предлагаются на Web-узле в двух вариантах. Первый вариант поддерживает платформу Microsoft Windows с использованием Microsoft Access, ODBC и бесплатно распространяемого фирмой Microsoft персонального Web-сервера. В этом варианте примеры Web-узлов реализованы таким образом, чтобы максимально упростить студентам и преподавателям их установку на платформе Windows. Второй вариант рассчитан на использование платформы Unix, Web-сервера Apache и базы данных SQL, поддерживающей JDBC. Все примеры были протестированы с использованием свободно распространяемой базы данных MySql и системы баз данных Oracle 8. Программы-приложения баз данных на языке Java могут исполняться как в среде Unix, так и в среде Windows.

Размещенное в Internet руководство преподавателя содержит заметки к лекциям по курсу, ответы к упражнениям и примеры заданий. Этот материал доступен исключительно для преподавателей, использующих книгу в учебном процессе. Единственным способом поддержания актуальности этой книги является наполнение Web-узла новыми упражнениями и масштабными проектами. Все эти вопросы можно решить с торговым представителем издательства Addison-Wesley в вашем регионе.

Автор будет признателен, если вы свяжетесь с ним по электронной почте (Greg.Riccardi@acm.org), чтобы сообщить об обнаруженных ошибках или получить новейшие дополнения.

Благодарности от автора

Я хотел бы поблагодарить сотрудников издательского и производственного отделов Отделения вычислительной техники издательства Addison-Wesley за поддержку и содействие. Редактор отдела новых рукописей Мэйти Суарез-Ривас (Matie Suarez-Rivas) настаивала на том, что я могу написать замечательную книгу, и именно она смогла побудить меня сделать это. Редактор проекта Кэтрин Харутунян (Katherine Harutunian) к тому моменту уже поработала со мной над двумя книгами, и я не могу желать более полезного и приятного редактора. Процесс выпуска существенно выиграл от участия в нем Пэта Махтани (Pat Mahtani) и Дайаны Фрид (Diane Freed).

Эта книга была детально и глубоко отрецензирована профессорами Муниндаром П. Сингхом (Munindar P. Singh) из университета Северной Каролины, Генри А. Этлингером (Henry A. Etlinger) из Технологического Института Рочестера, Салихом Юртас (Salih Yurttas) из Техасского A&M Университета, Ариджитом Сенгупта (Arijit Sengupta) из университета Джорджии и Ли Грунволдом (Le Gruenwald) из университета Оклахомы. Их советы трудно переоценить. Профессоры Сюзан Дитрих (Suzanne Dietrich) из университета Аризоны, Бил Гроски (Bill Grosky) из государственного университета Уэйна, Джанпин Сан (Junping Sun) из Юго-Восточного университета Новы также внесли свой вклад, просмотрев отдельные главы.

Мой опыт преподавания систем баз данных, а также работа со студентами и сотрудниками факультета университета Флориды сослужили мне огромную службу при написании этой книги. Я собенно признателен Лоуренсу Деннису (Lawrence Dennis), Брайону Элману (Bryon Ehlmann), Чарльзу В. Форду-мл. (Charles W. Ford Jr.), Луису Райт Хоуксу (Lois Wright Hawkes), Самуэлю Ж. Ивзу II (Samuel J. Eaves II), Дмитрию Благинину (Dmitriy Blaginin), Трою Кокрэну (Troy Cochran) и Шанмагураджа Рамасвами (Shanmaguraja Ramaswamy). Студенты группы COP 4710 Databases любезно согласились использовать предварительный вариант этой книги в качестве учебника. Я благодарен всем этим студентам и особенно Чан-Вену Чену (Chang-Wen Cheng), Ахмеду Муссе (Ahmed Moussa), Габриэль Рид (Gabrielle Reed), Тилаку Мадену (Tilal Maden), Андресу Наранхо (Andres Naranjo), Хью Лин То (Huey Ling Toh), Рони Робинсону (Ronie Robinson), Вильяму Махеру (William Maher), Рону Стидману (Ron Steedman) и Соломону Вильямсу (Solomon Williams).

В наибольшем долгу я перед моей женой Анной и дочерьми Мэри, Кристиной и Элизабет. Они мирились с моим частым отсутствием, как физическим, так и мысленным, во время моей работы над данным проектом. Всеми своими успехами я обязан им.

Об авторе

Грэг Риккарди (Greg Riccardi) — профессор Отделения информатики университета Флориды, доцент Школы вычислительных наук и информационных технологий при университете Флориды, а также член подразделения по вопросам сотрудничества Национального комитета содействия научно-техническому прогрессу им. Томаса Джефферсона, г.Ньюпорт Ньюс, штат Вирджиния. К научным интересам профессора Риккарди относятся теория баз данных, теория вычислений, а также вопросы организации вычислений в распределенных средах. За успехи в подготовке студентов в 1997 году Университет Флориды удостоил его Награды президента.


Copyright © 1992-2015 Издательская группа "Диалектика-Вильямс"

Rambler  Top100