Электронная библиотека » Владимир Илюшечкин » » онлайн чтение - страница 3


  • Текст добавлен: 27 мая 2022, 23:23


Автор книги: Владимир Илюшечкин


Жанр: Базы данных, Компьютеры


сообщить о неприемлемом содержимом

Текущая страница: 3 (всего у книги 14 страниц) [доступный отрывок для чтения: 4 страниц]

Шрифт:
- 100% +
1.6. Архитектура и типы СУБД

По своей архитектуре СУБД делятся на одно-, двух– и трехзвенные [19]. В однозвенной архитектуре (рис. 1.11, а) используется единственное звено (клиент), обеспечивающее необходимую логику управления данными и их визуализацию. В двухзвенной архитектуре (рис. 1.11, б) значительную часть логики управления данными реализует сервер баз данных (сервер БД), в то время как клиентское звено в основном занято отображением данных в удобном для пользователя виде. В трехзвенных СУБД (рис. 1.11, в) используется промежуточное звено – сервер приложений, являющееся посредником между клиентом и сервером БД. Сервер приложений позволяет полностью избавить клиента от функций по управлению данными и обеспечению связи с сервером БД.

Рис. 1.11. Архитектура СУБД: а – однозвенная; б – двухзвенная; в – трехзвенная.


В зависимости от местоположения отдельных частей СУБД различают локальные и сетевые СУБД. Все части локальной СУБД размещаются на компьютере пользователя, обращающегося к базе данных. Чтобы с одной и той же БД одновременно могло работать несколько пользователей, каждый пользовательский компьютер должен иметь доступ к своей копии локальной БД. Существенной проблемой СУБД такого типа является синхронизация содержимого копий данных (репликация данных), именно поэтому для решения задач, требующих совместной работы нескольких пользователей, локальные СУБД не пригодны.

К сетевым относятся файл-серверные, клиент-серверные и распределенные СУБД. Непременным атрибутом этих систем является сеть, обеспечивающая аппаратную связь компьютеров и делающая возможной совместную работу множества пользователей с одной и той же базой данных.

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

Клиент-серверные (двухзвенные) системы значительно снижают нагрузку на сеть, так как клиент общается с данными через специализированного посредника – сервер БД, который размещается на машине с базой данными. Сервер БД принимает запрос от клиента, отыскивает в данных нужную запись и передает ее клиенту. Таким образом, по сети передаются относительно короткий запрос и единственная нужная запись, даже если база данных содержит сотни тысяч записей. Как правило, запрос к серверу формируется на специальном языке запросов SQL, поэтому часто серверы БД называются SQL-серверами. Серверы БД представляют собой относительно сложные программы, разрабатываемые различными фирмами, например: Microsoft SQL Server (SQL Server) производства корпорации Microsoft, Sybase Adaptive Server корпорации Sybase, Oracle производства одноименной корпорации, DB2 корпорации IBM, InterBase корпорации Borland и т. д. Клиент-серверные СУБД обеспечивают функционирование, или масштабируются, до сотен и тысяч клиентских мест.

Распределенные СУБД могут содержать несколько десятков и сотен серверов БД. Количество клиентских мест в них может достигать десятков и сотен тысяч. Обычно такие СУБД обеспечивают работу организаций государственного масштаба (например, Центральной избирательной комиссии РФ), отдельные подразделения которых рассредоточены на значительной территории. В распределенных СУБД некоторые серверы могут дублировать друг друга с целью достижения предельно малой вероятности отказов и сбоев, которые могут исказить жизненно важную информацию.

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

1.7. Публикация данных в Интернете

Наиболее развитой частью Интернета является World Wide Web – Всемирная паутина, представляющая собой систему публикации ресурсов в виде гипертекстовых документов. Технологии, обеспечивающие работу WWW, называются Web-технологиями. Чтобы выделить аппаратные и программные компоненты, реализующие Web-технологии, серверный компьютер, предназначенный для размещения документов, удобно именовать WWW-сервером, а программу, находящуюся на WWW-сервере и обеспечивающую доступ к документам, – Web-сервером. В настоящее время наиболее распространенным является Web-сервер Apache, версии которого работают практически на всех известных аппаратно-программных платформах, в отличие от Web-сервера Microsoft Internet Information Services (IIS), ориентированного на операционные системы Windows.

Для просмотра гипертекстовых документов, называемых Web-страницами, используются специальные программы – браузеры, примерами которых являются Microsoft Internet Explorer, Fire fox и Opera. Браузер интерпретирует команды, содержащиеся в гипертекстовом документе, и отображает этот документ на экране для просмотра пользователем.

Для автоматического создания Web-страниц с изменяющейся информацией применяются специальные расширения Web-сервера, называемые Web-приложениями. Типичная задача, выполняемая Web-приложением, – это получение из базы данных информации, которая затем помещается в Web-страницу и передается Web-серверу, пересылающему эту Web-страницу браузеру. В этом случае схема доступа к базе данных (рис. 1.12) соответствует трехуровневой архитектуре СУБД (см. рис. 1.11).

Рис. 1.12. Схема доступа к базе данных через Интернет.


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

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

Благодаря всем этим достоинствам доступ к базам данных на основе Web-технологии применяется и в локальных сетях. Сети, использующие Web-технологию для доступа к данным, называются интрасетями, или интранетом (intranet).

Для доступа к базам данных через Интернет наиболее часто используется один из двух подходов [7]:

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

2) динамическое создание гипертекстовых документов на основе информации, содержащейся в базе данных, и информации, переданной клиентом Web-серверу В этом варианте доступ к базе данных обеспечивается специальным Web-приложением (CGI, ASP, PHP и т. п.), вызываемым Web-сервером в ответ на запрос, полученный от клиента. Web-приложение обрабатывает запрос, производит необходимую выборку из базы данных и на ее основе формирует выходной HTML-документ, возвращаемый клиенту. Такое решение эффективно для больших баз данных со сложной структурой. Данный вариант позволяет также обеспечить возможность изменения данных, хранящихся в базе, с учетом информации, поступающей от клиента.

Глава 2
Реляционная модель данных

2.1. Основные понятия

Реляционная модель данных базируется на теории множеств, в которой применяются специальные математические символы, используемые в тексте учебного пособия и поясняемые далее:

– принадлежность элемента множеству (например,

означает, что элемент d принадлежит множеству D);

– отрицание принадлежности элемента множеству (например,

означает, что элемент d не принадлежит множеству D);

| D | – мощность множества D, равная числу элементов в этом множестве;

– вхождение одного множества в другое множество (например,

означает, что все элементы множества А одновременно являются элементами множества D и | А | ≤ | D |);

– включение одного множества в другое множество (например,

означает, что все элементы множества А одновременно являются элементами множества D и | А | < | D |);

– объединение множеств (например,

означает множество, элементы которого принадлежат множеству X или множеству У);

– пересечение множеств (например,

означает множество, элементы которого принадлежат одновременно множеству X и множеству У);

– пустое множество, т. е. множество, в котором отсутствуют элементы;

{а, b, с}– множество, состоящее из элементов а, b, с;

{е | у} — множество элементов е, удовлетворяющих условию у; при записи условия могут использоваться символы:

обозначающие логические операторы «И» и «ИЛИ» соответственно, например,

обозначает множество элементов х, которые принадлежат множеству R и не принадлежит множеству 5.

Реляционная БД – это совокупность отношений, содержащих всю информацию, которая должна храниться в БД.

Математически термин «отношение» определяется следующим образом.

Пусть даны N множеств D1, D2,…, DN. Отношением R над этими множествами называется множество упорядоченных N-кортежей вида <d1, d2, …, dn>, где

Множества D1, D2, …, DN называются доменами (областями определения) отношения R.

Поясним это определение конкретным примером. Пусть даны четыре домена: D1множество целых чисел, обозначающих номера преподавателей; D2множество символьных строк, представляющих собой фамилии преподавателей; D3множество символьных строк, представляющих собой названия должностей; D4множество целых чисел, обозначающих стаж работы преподавателей. На рис. 2.1 показан пример отношения R, состоящего из пяти кортежей.

Рис. 2.1. Отношение с математической точки зрения.


Каждый кортеж состоит из четырех элементов, которые выбираются каждый из своего домена. Порядок элементов в каждом кортеже строго определен: первый элемент кортежа выбирается из домена D, второй элемент – из домена D2 и т. д. Каждый элемент кортежа представляет собой значение одного из атрибутов, соответствующего одному из доменов.

С программной точки зрения отношение является файлом (рис. 2.2), каждая запись в файле представляет собой кортеж отношения, а поля в записи содержат значения соответствующих атрибутов или доменов.

Рис. 2.2. Отношение с точки зрения обработки данных.


Итак, разными точками зрения допускается следующая терминология:

Количество атрибутов в кортеже, или число столбцов в таблице, называется степенью отношения. Текущее число кортежей, или строк, называется мощностью отношения и обозначается как | R |. Степень отношения не изменяется после создания отношения, но мощность отношения будет изменяться при добавлении новых и удалении старых кортежей. Схемой отношения R называется перечень атрибутов А. данного отношения с указанием домена Di, к которому они относятся:

По определению все кортежи различаются. Для однозначной идентификации конкретного кортежа используется так называемый первичный ключ отношения. Первичный ключ – это атрибут, или набор из минимального числа атрибутов, который однозначно идентифицирует конкретный кортеж и не содержит дополнительных атрибутов. Это значит, что если отдельный произвольный атрибут исключить из первичного ключа, то оставшихся атрибутов будет недостаточно для однозначной идентификации отдельных кортежей. Например, в отношении ПРЕПОДАВАТЕЛЬ первичным ключом может быть только номер преподавателя НП, в таблице ЧИТАЕТ первичным ключом является набор атрибутов <НП, НК>, обозначающих номер преподавателя и номер читаемого учебного курса (рис. 2.3).

Для краткости отношение R принято обозначать именем, после которого в скобках перечисляются его атрибуты, причем атрибуты, входящие в первичный ключ указываются в начале списка и подчеркиваются, например:

Рис. 2.3. Первичные ключи.


В реляционной БД таблицы взаимосвязаны и соотносятся друг с другом как главные и подчиненные. Одной строке главной таблицы могут соответствовать несколько строк подчиненной таблицы (рис. 2.4). Связь главной и подчиненной таблиц осуществляется через первичный ключ (primary key) главной таблицы и внешний ключ (foreign key) подчиненной таблицы. Внешний ключ – это атрибут, или набор атрибутов, подчиненной таблицы, который в главной таблице является первичным ключом. Связь главной и подчиненной таблиц схематически изображается линией, соединяющей первичный и внешний ключи этих таблиц, с указанием одной стрелки со стороны главной таблицы и двух стрелок со стороны подчиненной таблицы (рис. 2.5).

Рис. 2.4. Связь главной таблицы ПРЕПОДАВАТЕЛЬ с подчиненной таблицей ЧИТАЕТ.


Рис. 2.5. Схематическое изображение связи главной таблицы ПРЕПОДАВАТЕЛЬ с подчиненной таблицей ЧИТАЕТ.


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

В результате индексирования создается дополнительный индексный файл, упорядоченный по значениям индексного ключа. Структура индексного файла может быть разной, но должна обеспечивать быстрый поиск. На рис. 2.6 показана возможная структура индексного файла, ускоряющего поиск в файле ПРЕПОДАВАТЕЛЬ по номеру преподавателя.

Рис. 2.6. Пример индексного файла.

2.2. Реляционная алгебра

Реляционная алгебра служит математической основой реляционной ДЛМ. Так как отношение является множеством, то реляционная алгебра является алгеброй взаимосвязей между особыми множествами, называемыми отношениями.

В реляционной алгебре существует ряд операций над отношениями, например: проекция, выборка, соединение, объединение, пересечение, вычитание, умножение.

2.2.1. Проекция

Воспользуемся в качестве примера следующим отношением R, представленным в виде таблицы (рис. 2.7).

Рис. 2.7. Отношение R (r кортеж).


Пусть для конкретного кортежа г, являющегося элементом отношения R, r[Х] обозначает расположенные в ряд составляющие кортежа, соответствующие множеству атрибутов X. Например, если Х={ЗавК, Нтел}, то r[Х] = <Вернер, 2882>.

Проекцией отношения R на X называют новое отношение:

Проекции R[ЗавК, Нтел] и R[НП, ЗавК] показаны на рис. 2.8.

Рис. 2.8. Проекции R[ЗавК, Нтел] и R[НП, ЗавК].


То есть при проецировании из исходного отношения R удаляется часть атрибутов, не указанных в X. При этом если в полученном таким способом отношении окажутся одинаковые кортежи, то из них оставляют по одному представителю. Следовательно, проекция является операцией, при которой из отношения выделяются только нужные столбцы.

2.2.2. Выборка

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

Выборкой из отношения R по условию Θ для множества атрибутов X называют новое отношение:

Так, выборка по условию Θ(r[Х]) = (ЗавК='Шаньгин'), т. е. информация о преподавателях, работающих на кафедре Шаньгина, показана на рис. 2.9.

Рис. 2.9. Выборка.

2.2.3. Соединение

Операция соединения обратна операции проекции и предназначена для создания одного нового отношения из двух уже существующих отношений. Новое отношение получается путем конкатенации (сцепления) кортежей первого отношения R с кортежами второго отношения S. Только те кортежи подвергаются конкатенации, в которых значение заданного атрибута X в отношении R совпадает со значением заданного атрибута Y в отношении S:

Если R имеет N атрибутов (столбцов), а S – М атрибутов, то отношение R[X=Y]S будет иметь N+M атрибутов (столбцов). В получаемом отношении в двух столбцах всегда будут содержаться одинаковые значения. Если один из этих столбцов удалить, то результат принято называть естественным соединением.

Например, естественное соединение R1[ЗавК=ЗавК]R2 отношений R1 и R2 (рис. 2.10), показанных на рис. 2.8, совпадает с отношением R, приведенным на рис 2.7.

2.2.4. Объединение

Объединение – это операция получения отношения, полностью объединяющего кортежи, содержащиеся в отношениях R и 5. Множества атрибутов и порядок следования атрибутов в кортежах должны быть одинаковыми в отношениях R и S. Результирующее отношение называется множеством-суммой:


Рис. 2.10. Соединение.

2.2.5. Пересечение

Результатом данной операции является отношение, состоящее из общих кортежей отношений R и S:

2.2.6. Вычитание

Это операция получения отношения, состоящего из кортежей, которые являются кортежами отношения R и не являются кортежами отношения S:

2.2.7. Умножение

Результатом данной операции является декартово, или прямое, произведение:

Если умножаются отношение R степени т и отношение S степени п, то получается отношение:

степени (m+n).

Мощность отношения:

равна i · j, где i и j – мощности отношений соответственно R и S.

Например, если

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

2.3. Примеры запросов на языке реляционной алгебры

Реляционную алгебру и предусмотренные в ней операции можно использовать в качестве языка для формулировки запросов к базе данных. Примеры такого использования рассмотрим для базы данных (рис. 2.11), в пяти таблицах которой хранятся сведения о жителях, их квартирах, доходах и телефонах:

PERSON (Nom, FIO, Rdate, Pol, SumD, Adr)

FLAT (Adr, Skv, Nrooms, KCategory)

TPHONE (Ntel, TCategory, Adr)

PROFIT (Id, Source, Money)

HAVE_D (Nom, Id)

Рис. 2.11. Учебная база данных.


Год рождения жителя с номером 199 определяется запросом

(person[nom=199])[Rdate]

Сведения о жителях, проживающих в квартире с адресом 901-15, можно получить по запросу

person[Adr = '901-15']

Все сведения о жителе с номером 199 определяются запросом

(((((PERSON[Nom=199])[Adr=Adr]FLAT)[Adr=Adr] TPHONE)[Nom=Nom]HAVE_D)[Id=Id]PROFIT)

Список дат рождения и адресов для всех жителей формируется запросом

person[Rdate, Adr]

Определить для каждого жителя источник дохода, дающий больше 500 рублей, можно с помощью запроса

(((PERSON[Nom=Nom]Have_D)[Id=Id]PROFIT)[Money>500])[Nom, Source]

Язык реляционной алгебры не является «дружественным», поскольку выражения реляционной алгебры не всегда понятны и привычны обычному пользователю.

Как правило, реляционная алгебра используется для внутреннего представления запросов, а для взаимодействия с БД были разработаны языки запросов, ориентированные на пользователя, например, QBE и SQL. Наиболее популярным языком является SQL, ставший стандартом для реляционных СУБД.


Страницы книги >> Предыдущая | 1 2 3 4 | Следующая
  • 0 Оценок: 0

Правообладателям!

Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.

Читателям!

Оплатили, но не знаете что делать дальше?


Популярные книги за неделю


Рекомендации