Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИАД-лекции.doc
Скачиваний:
7
Добавлен:
22.11.2019
Размер:
788.48 Кб
Скачать

Глава 5.Системы управления базами данных (субд) в сфере сервиса

Краткое содержание главы. СУБД как средства информационных технологий управления. Модели данных: иерархическая; сетевая; реляционная; объектно-ориентированная. Проблемы оптимизации структуры данных. Реляционная модель: предметная область; классы однородных объектов и их атрибуты; плоские таблицы; поля и записи; виды связей между таблицами. Компьютерные технологии интеллектуальной поддержки управленческих решений. СУБД Access: базы данных (БД) как совокупность связанных таблиц, запросов, форм, макросов, модулей, отчетов, www-страниц управления данными.

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

Предметная область - это множество объектов, исследуемых для решения некоторой задачи.

Атрибут объекта - это свойство объекта, которое необходимо рассматривать для решения поставленной задачи.

Имя атрибута - это название соответствующего свойства.

Класс однородных объектов - множество всех объектов предметной области с одинаковым набором атрибутов.

Например, стоит задача оптимизации деятельности небольшой торгово-закупочной организации. Класс ТОВАРЫ может содержать такие объекты, как ПОМИДОРЫ, ОГУРЦЫ, АВТОРУЧКА. Указанные объекты в рамках решаемой задачи имеют одинаковый набор атрибутов: НАИМЕНОВАНИЕ, ЕДИНИЦА ИЗМЕРЕНИЯ, ЦЕНА. Объекты из класса СОТРУДНИКИ имеют другой набор атрибутов: ФИО, ДАТА РОЖДЕНИЯ, ЗАРПЛАТА и т.п.

Модель предметной области - это формализованное описание предметной области со степенью детализации, позволяющей решить поставленную задачу.

Для построения модели предметную область обычно разбивают на классы однородных объектов, а затем исследуют связи между атрибутами различных классов.

База данных (БД) - это структурированная информация об объектах предметной области (см. таблицу 1.1), записанная на внешние носители информации ЭВМ - на магнитные и лазерные диски, магнитные ленты и т.п.

Банк данных (БнД) - это построенная в соответствии с моделью предметной области совокупность баз данных (БД) и необходимого для работы с ними программного обеспечения (ПО), технических средств (ТС) и организационного обеспечения (ОО).

Таблица 5.1. Простейшая база данных для класса ТОВАРЫ

НАИМЕНОВАНИЕ

ЕДИНИЦА ИЗМЕРЕНИЯ

ЦЕНА

ПОМИДОРЫ

КГ

80

ОГУРЦЫ

КГ

40

АВТОРУЧКА

ШТ

5

Запись БД - это имеющаяся в БД информация о каком-то одном объекте. В таблице 1.1 записям соответствуют строки с данными об объектах (ПОМИДОРЫ, ОГУРЦЫ, АВТОРУЧКА).

Поле БД - это множество всех значений какого-то атрибута. В таблице 1.1 полям соответствуют столбцы.

Имя поля - это имя соответствующего атрибута.

Значение поля для данного объекта - это значение соответствующего атрибута для этого объекта. Таблица 5 .1, например, дает значение поля ЦЕНА для объекта ПОМИДОРЫ равным 80 рублей.

БнД могут функционировать как на одной, так и на нескольких ЭВМ. Локальными называются БнД, функционирующие на одной ЭВМ. Распределенными называются БнД, функционирующие на нескольких ЭВМ, используя сетевые аппаратные и программные средства.

БнД могут функционировать как на одной, так и на нескольких ЭВМ. Локальными называются БнД, функционирующие на одной ЭВМ. Распределенными называются БнД, функционирующие на нескольких ЭВМ, используя сетевые аппаратные и программные средства.

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

СУБД поддерживают определенные модели БД и языки манипулирования БД. Наиболее известны три модели БД: иерархическая, сетевая и реляционная. Развитием реляционной является объектно-ориентированная модель, когда кроме атрибутов (данных) однородных объектов в единстве рассматриваются также характерные для них операции (алгоритмы). Рассматриваемая нами СУБД Access как раз и является объектно-ориентированной, поскольку поддерживает именно такую модель данных.

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

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

Однако более эффективные алгоритмы доступа к данным дает реляционная (и объектно-ориентированная) модель.

Товары

Заказы

Клиенты

ДопСвед

КодТовара

1

КодЗаказа

1

КодКли-ента

1

1

КодКлиен-та

Наименова-ние

КодКлиен-та

ФИО

Адрес

ЕдИзм



КодТовара

Телефон

Цена

Количест-во

Рисунок 5.7. Структура реляционной БД “Фирма”

Реляционная модель БД - это модель, включающая отношения и связи между ними. Отношения - это двумерные таблицы, описывающие атрибуты некоторых однородных объектов (Таблица 5 .1). Столбцы отношения представляют собой поля, а строки - записи со значениями полей для конкретных объектов. Реляционная модель также требует, чтобы поля были атомарны (т.е. значением поля не может быть множество), а записи - уникальны (т.е. среди записей не должно быть одинаковых). Количество полей называется степенью отношения, а количество записей - мощностью отношения. Схемой отношения называют список имен его полей, например: Товары (КодТовара, Наименование, ЕдИзм, Цена), Клиенты(КодКлиента, ФИО), ДопСвед(КодКлиента, Адрес, Телефон), Заказы(КодЗаказа, КодКлиента, КодТовара, Количество) - схемы отношений реляционной СУБД “Фирма” (Рисунок 1 .1).

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

Связи между полями двух отношений бывают: один к одному (1 - 1) и один ко многим (1 - ). Например, для реляционной СУБД “Фирма” (Рисунок 5 .7) связь между отношениями Клиенты(КодКлиента, ФИО) и ДопСвед(КодКлиента, Адрес, Телефон) по полям Код Клиента обоих отношений - это связь один к одному. Строки таблицы ДопСвед дополняют соответствующие строки таблицы Клиенты. Соответствие устанавливается по одинаковому значению полей КодКлиента в обеих таблицах. Связь между отношениями Клиенты(КодКлиента, ФИО) и Заказы(КодЗаказа, КодКлиента, КодТовара, Количество) по полям КодКлиента - типичный пример связи один ко многим. В таблице Клиенты конкретный КодКлиента может встретиться лишь один раз, а в таблице Заказы этот КодКлиента может встретиться несколько раз, поскольку один и тот же клиент может сделать несколько заказов на разные товары. Еще один пример связи один ко многим - связь между отношениями Товары (КодТовара, Наименование, ЕдИзм, Цена) и Заказы(КодЗаказа, КодКлиента, КодТовара, Количество) по полям КодТовара. Поле, посредством которого устанавливается связь со стороны “многие” в соответствующей таблице называется чужим ключом. При наличии связей СУБД автоматически контролирует так называемую целостность данных, например, не дает удалять запись из таблицы Товары, если на соответствующий товар в таблице Заказы имеются записи о заказах.

Иногда также упоминают связь многие ко многим, в нашем примере это связь таблиц Клиенты и Товары - один клиент может заказать несколько товаров и один товар может быть заказан несколькими клиентами. Такие связи представимы в виде совокупности связей один ко многим и один к одному. В нашем примере это представление сделано через таблицу Заказы.

Здесь следует также обратить внимание на оптимальность организации хранения данных в отношениях БД “Фирма”. Дублирование информации в таблице Заказы неизбежно, но у нас оно сведено к минимуму (Рисунок 5 .7), поскольку будут дублироваться КодКлиента и КодТовара, а коды обрабатываются ЭВМ автоматически и занимают в памяти меньше места, чем непосредственная информация о клиентах и товарах, которая размещается в других таблицах и не дублируется. При правильном проектировании структуры данных дублирование должно быть исключено (т.е. сведено на уровень кода). Дублирование данных в системе может порождать при работе с ними многочисленные ошибки. Например, пусть в муниципальной базе данных фамилия жителя указывается в 5 полях. Пусть фамилия некоторой женщины изменилась с Петровой на Сидорову. Предположим, что оператор в 3 полях заменил фамилию, а про 2 поля забыл. В результате мы получим противоречивую базу данных, где будут формально существовать два человека (Петрова и Сидорова) вместо одного.

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

Процедурные языки манипулирования БД бывают специализированными (предназначенными исключительно для СУБД) и разработанными на основе универсальных языков программирования применительно к СУБД. Среди специализированных языков наиболее известено в настоящее время семейство dBase-подобных языков. Эти языки встроены во множество СУБД таких как dBase, Clipper, Microsoft Visual FoxPro. dBase-подобные языки постоянно совершенствуются и расширяются от версии к версии этих СУБД. Среди языков манипулирования БД, разработанных на основе универсальных языков наиболее популярен VBA, в частности встроенный в СУБД Microsoft Access.

Таблица 5.2. Клиенты

КодКлиента

ФИО

Пол

Адрес

ДатаРожд

1

Николаев М.П.

м

СПб, Пушкин

28.07.1957

2

Кукуев И.Д.

м

СПб, Ульянка

15.05.1947

3

Иванова М.А.

ж

СПб, Пушкин

30.07.1928

4

Петрова Н.С.

ж

Пенза

21.08.1957

5

Иванов И.П.

м

Новгород

23.01.1946

6

Петров С.В.

м

Москва

16.02.1953

Таблица 5.3. Товары

КодТовара

Наименование

ЕдИзм

Цена

Сорт

1

Мыло

шт

2.00 р.

высший

2

Водка

бутылка

40.00 р.

1

3

Хлеб

буханка

6.50 р.

3

4

Помидоры

кг

12.00 р.

2

5

Сыр

кг

85.00 р.

1

6

Огурцы

кг

12.00 р.

высший

7

Пластелин

коробка

5.00 р.

1

8

Телевизор

шт

6500.00 р.

высший

Наиболее популярными декларативными языками манипулирования БД являются в настоящее время языки SQL и QBE. Эти языки предназначены для работы с реляционными БД. Язык SQL предназначен в основном для профессионалов-разработчиков информационных систем, язык QBE проще, он предназначен для опытных пользователей. Языки SQL и QBE встроены в СУБД Microsoft Access и Microsoft Visual FoxPro. Существует мощнейшая СУБД, предназначенная для работы с распределенными БД - Microsoft SQL Server.

Несмотря на наличие современных СУБД, использование универсальных языков программирования при разработке информационных систем остается актуальным. При программировании на языках Си, Паскаль, Фортран можно пользоваться специальными библиотеками, содержащими процедуры доступа к стандартным БД, соответствующим большинству современных СУБД. Самые современные универсальные системы программирования Microsoft Visual Basic, паскалеобразная система Inprise Delphi, системы Inprise C++ Builder, Microsoft Visual C++ и др. имеют встроенные средства работы со стандартными БД.

Таблица 5.4. Заказы

КодЗаказа

КодТовара

КодКлиента

Количество

ДатаЗаказа

1

4

5

2.5

28.12.2000

2

2

4

1

02.01.2001

3

1

3

5

07.02.2001

4

4

1

2

05.03.2001

5

3

2

2

05.03.2001

6

6

6

1.5

05.03.2001

7

4

6

1.5

07.04.2001

8

2

6

1

07.04.2001

9

3

6

1

09.05.2001

10

4

4

2

09.05.2001