- •Р а з д е л 3. Технологии обработки данных, реализуемые системами управления базами данных
- •Логическая и физическая независимость данных:
- •Независимость Зависит от средств физического
- •Тема 4.2. Реляционный подход к построению предметной области
- •Например, отношение
- •Студент_группы Студент Группа
- •Успеваемость Студент Оценка_дисциплина
- •Типы связей. ИОб конкретной по обычно связаны между собой. При этом возможны связи следующих типов:
- •Студент Сессия,
- •Стипендия Сессия,
- •Студент Преподаватель,
- •Атрибут, Название цеха, в котором он работает
- •Завод-поставщик детали Страна-местонахождение завода-поставщика Служащий (из варианта 2).
- •Приведем пример таблицы Служащий:
- •Деталь*, Поставщик*, Цех*.
Студент_группы Студент Группа
Н
омер*
Номер*
Группа*
Ф
амилия
Фамилия
Староста
И мя = Имя +
Отчество Отчество
Дата Дата
Факультет Факультет
Г
руппа
Группа
С тароста
Другой пример «расщепления» структуры ИОб Успеваемость.
Успеваемость Студент Оценка_дисциплина
Номер*
Номер*
Номер*
ФИО
ФИО
Дисциплина*
Дисциплина* = + Оценка
Оценка
Типы связей. ИОб конкретной по обычно связаны между собой. При этом возможны связи следующих типов:
один-к-одному (1:1);
один-ко-многим (1:M);
многие-ко-многим (М:М).
Связь «один-к-одному» (1:1) предполагает, что в каждый момент времени одному экземпляру Аi ИОб А соответствует не более одного экземпляра Бj ИОб Б и наоборот, что графически изображается так:
А
Б
А2 Б2
При связи «один-ко-многим» (1:М) одному экземпляру Аi ИОб А соответствует 0, 1 или более экземпляров объекта Б, но каждый экземпляр Бj связан не более, чем с 1 экземпляром Аi, что графически изображается так:
А1
Б1
А
Б
А2 Б2
А3 Б3
Связь «многие-ко-многим» (М:М) предполагает, что в каждый момент времени одному экземпляру Аi ИОб А соответствует 0, 1 или более экземпляров Бj и наоборот:
А
Б
А2
Б2
А3 Б3
Рассмотрим базу данных «Учебный процесс», состоящую из четырех ИОб:
1. Студент(Номер, Фамилия, Имя, Отчество, Пол, Дата, Факультет, Группа)
2. Сессия (Номер, Оценка1, Оценка2, Оценка3, Оцкнка4, Результат)
3. Стипендия (Результат, Процент)
4. Преподаватель (Код,Фамилия, Имя, Отчество),
Между ИОб Студент и Сессия следует установить связь 1:1, а именно:
Студент Сессия,
поскольку каждый студент имеет после сессии определенный набор экзаменационных оценок.
Между ИОб Стипендия и Сессия существует связь 1:М, а именно:
Стипендия Сессия,
так как.установленный размер стипендии по результатам сдачи сессии может многократно повторяться для различных студентов.
Между ИОб Студент и Преподаватель имеет место связь М:М, а именно:
Студент Преподаватель,
так как один студент обучается у многих преподавателей, и один преподаватель обучает многих студентов.
Обеспечение целостности базы данных. В процессе создания структуры БзД, т.е. определения входящих в нее таблиц, необходимо позаботиться о целостности БзД. Целостность БзД обеспечивается встроенными в СУБД средствами:
назначения первичного ключа, в том числе средствами для работы с полем типа «счетчик» (т.е. полем с автоматическим приращением на 1 при переходе к следующему экземпляру ИОб; при этом СУБД сама присваивает экземпляру новое уникальное значение);
поддержания ссылочной целостности, которые записывают информацию о связях между таблицами и автоматически пресекают любую операцию, приводящую к нарушению ссылочной целостности.
Обеспечение безопасности. Средства обеспечения безопасности данных основываются на выполнение следующих операций:
защита паролем;
шифрование данных;
ограничение уровня доступа (к БзД в целом, к таблице, к словарю).
Сравнительный анализ популярных СУБД. Оценка характеристик популярных СУБД в баллах приведена в табл.1. В случае “да”, 1 – лучшая 5 – худшая оценка.
Производительность СУБД оценивается:
временем выполнения запросов;
скоростью поиска информации в неиндексированных полях;
временем импортирования БзД из других форматов;
cкоростью выполнения операций обновления, вставки, удаления данных;
временем генерации отчета и др.
Необходимость слежения за целостностью данных также влияет на производительность СУБД.
Таблица 1
Наименование |
dBase IV |
MS Access |
MS Fox Pro |
Paradox |
Производительность |
4 |
3 |
1 |
2 |
Обеспечение целостности |
нет |
1 |
нет |
2 |
Обеспечение безопасности |
1 |
2 |
5 |
4 |
Импорт-экспорт |
2 |
1 |
1 |
1 |
Доступ к данным SQL |
2 |
1 |
2 |
3 |
Возможности запросов и сред-ства разработки приложений |
3 |
3 |
1 |
4 |
Как видно из приведенных в табл. 2 характеристик СУБД, MS Access наилучшим образом соответствует реляционной модели БзД по надежности сохранения целостности данных (правила, обеспечивающие целостность базы данных, хранятся вместе с БзД и соблюдаются автоматически).
Кроме того, MS Access имеет хорошие характеристики безопасности (может назначать пароли для индивидуальных пользователей (ПЗ) или {ПЗ}, присваивает различные права доступа отдельно таблицам, запросам, отчетам и т.д. на уровне ПЗ или группы ПЗ).
Т е м а 4.3. Разработка структуры БЗД по описанию предметной области
Покажем разработку структуры БЗД на примере решения упрощенной задачи для предметной области «Завод», имеющей следующее содержательное описание:
В цехах завода используются детали, поставляемые по определенной стоимости другими заводами, в том числе находящимися в других странах. Цех возглавляет начальник цеха, отвечающий за информацию о необходимых деталях и руководящий служащими цеха. Служащие имеют определенную зарплату, причем необходимо знать дату их поступления на завод.
Решение.
А. Выделение ИЭл и ИОб. Выделим ИЭлементы и рассмотрим несколько возможных вариантов организации их в ИОбъекты
Вариант 1. БзД в виде одной таблицы «Цех» (одного ИОб).
Цех:
( Название цеха;
Начальник цеха;
Деталь, используемая в цеху;
Завод-поставщик детали;
Страна-местонахождение завода-поставщика детали;
Служащий цеха;
Зарплата служащего цеха;
Дата поступления служащего цеха на работу).
Вариант 2. БзД в виде двух таблиц (двух ИОб)
Цех:
( Название цеха, использующего деталь;
Начальник цеха;
Деталь, используемая в цеху;
Стоимость детали, используемой в цеху;
Завод-поставщик детали;
Страна-местонахождение завода-поставщика детали).
Служащий:
( Служащий цеха;
Зарплата служащего цеха;
Дата поступления на работу;
Название цеха, в котором он работает).
По приведенным вариантам видно, что при одном и том же количестве ИЭл в предметной области, может быть выделено большое количество различных ИОб. Какой же вариант предпочтительнее? Тот, в котором меньшее число дублированных ИЭл, так как такой вариант позволит упростить изменение ИЭл и внесение новых экземпляров в ИОб данной БзД. Другая сторона предпочтительности такого выделения ИОб (таблиц) – использование в каждой из них функциональной зависимости (X Yi, где X – ключ таблицы, а Yi, – её описательные атрибуты, причем каждое значение ключа xX определяет одно значение описательного атрибута y Yi).
В варианте 1 ключ, т. е. атрибут, определяющий экземпляр ИОб – это номер цеха, тогда
Название цеха Начальник цеха (функциональное отношение)
Название цеха {Деталь} (отношение 1: m)
Название цеха {Завод- поставщик детали} (отношение 1: m)
Название цеха {Служащий} (отношение 1: m)
В варианте 2 ИОб «Цех» имеет такие же недостатки, а ИОб «Служащий» удовлетворяет требованию функциональной зависимости -
Служащий:
Служащий цеха Зарплата служащего цеха,
(ключевой Дата поступления на работу,
