- •Основные понятия
- •1.1.Состав субд
- •1.2. Классификация баз данных
- •1. 3. Архитектура баз данных
- •Глава 2 проектирование баз данных
- •2.1. Этапы проектирования базы данных
- •2.2. Моделирование локальных представлений
- •3.1 Иерархические модели
- •3.2. Сетевые модели
- •3.3. Реляционные базы данных
- •Реляционные основы концептуального проектирования
- •4.1. Нормализация отношений
- •4.2. Проектирование реляционных баз данных (рбд)
- •5. Агрегированные объекты могут быть сведены в одно реляционное отношение в том случае, если те объекты, с которыми связан каждый из них, полностью совпадают (рис.4.13).
- •Упражнения к главе 4
- •Операции над отношениями
- •5.1. Выполнение операций над отношениями
- •На рис.5.1 приведены примеры операций реляционной алгебры над отноше
- •Реляционные языки запросов
- •6.1. Язык sql (Structured Query Language)
- •6.2. Операторы манипулирования данными
- •Поставщики (s)Tаблица 6.1
- •6.3.Выборки
- •Результат: номер поставщикасостояние
- •Результат: номер_деталивес
- •Р6 Шайба Красный 19 Липецк
- •6.4.3Апросы, использующие соединения
- •6.5.Подзапросы
- •6.6. Подзапросы с несколькими уровнями вложения
- •6.7. Коррелированный подзапрос.
- •6.8. Квантор существования. Запрос, использующий exists
- •6.9. Стандартные функции
- •6.10. Использование группировок (group by)
- •6.11. Объединение с использованием union
- •6.12. Многоаспектный запрос
- •6.13. Операции обновления
- •6.14. Представления
- •Упражнения к главе 6
- •Субд foxpro 2.0
- •7.1. Системный интерфейс FoxPro, главное меню
- •7.2. Архитектура субд FoxPro 2.0
- •Типы и размеры полей (в байтах).
- •Поле дат 8.
- •7.3. Основные команды FoxPro 2.0
- •7.4. Создание и редактирование бд
- •Антонов 4
- •7.5. Команды просмотра и редактирования записей
- •7.6. Создание командных файлов
- •Сведения о сотрудниках
- •7.7. Команды управления
- •7.8. Циклы в FoxPro
- •7.9. Построение экранных форм
- •Карта ввода
- •Карта ввода
- •7.10. Работа с массивами
- •Фио Должность Оклад
- •7.11. Построение меню
- •Пример составления меню
- •7.12. Модульное программирование
- •7.13.Изобразительные средства субд
- •7.14. Функции в FoxPro
- •7.15. Работа с несколькими бд, связывание бд
- •7.16. Работа с окнами
- •Упражнения к главе 7
- •Создание базы данных в среде Microsoft Access
- •8.1. Создание и открытие базы данных
- •8.2. Конструирование форм в среде Microsoft Access
- •8.3. Связывание таблиц в Microsoft Access
- •8.4. Запросы к связанным таблицам
- •8.5. Отчеты
- •8.6. Рисунки и другие объекты в среде Microsoft Access
- •Приложение 1 База данных поставок
- •Приложение 2 Список вопросов для повторения учебного материала
- •Приложение 3 Задания для самостоятельного выполнения
- •Список литературы
- •Оглавление
- •Глава 7. Субд foxpro 2.0................................................…….........………… 54
- •Глава 8. Создание базы данных в среде Microsoft Access .........……................88
2.2. Моделирование локальных представлений
Выбор локального представления зависит от масштабов ПО. Для удобства проектирования желательно использовать 6-7 типов сущностей. Для каждого локального представления необходимо сформулировать сущности ( выделить
13
сущности). Иногда это сложно, так как некоторые сущности могут выступать и как атрибуты и как связи.
Пример. Пусть решается задача поставок товаров на склад. Предполагается, что в одной поставке может участвовать только один поставщик, поставляющий только один вид товара. Опишем сущность ПОСТАВКА (рис.2.9).
ПОСТАВКА
.
2.9.Модель задачи поставки товаров на склад
Модель, представленная на рис 2.9 обладает недостатком, так как с ее помощью
нельзя представить порцию информации об отдельном поставщике, который не
выполняет поставок в настоящее время и нет информации о товарах, отсутствующих в поставках. Все это учтено в модели на рисунке 2.10.
ТОВАР
ПОСТАВЩИК
ПОСТАВКА
Рис.2.10. Модель задачи поставок товаров на склад с выделением сущностей
14
Для устранения выше упомянутых недостатков введены сущности ПОСТАВЩИК и ТОВАР, что позволяет предоставить наиболее полную информацию о поставках и поставщиках.
Г Л А В А 3
МОДЕЛИ ДАННЫХ
Система баз данных поддерживает в памяти ЭВМ модель предметной области (ПО). Однако результат моделирования зависит не только от предметной области, но и от используемой СУБД. Так как каждая система предоставляет свой инструментарий для отображения предметной области то его инструментарий принято называть моделью данных. В то же время результат описания ПО в терминах модели данных называется моделью баз данных.
Поддерживаемые СУБД модели данных традиционно разбивают на иерархические, сетевые и реляционные.
3.1 Иерархические модели
Иерархические модели основываются на древовидных структурах. Это связанный, неориентированный граф, не содержащий циклов (петель). Дерево представляет собой иерархию элементов, называемых узлами. На самом верхнем уровне иерархии имеется только один узел - корень. Верхние элементы называются исходными а нижние – порожденными. Ни один элемент не имеет более одного исходного. Элементы, расположенные в конце ветви, т.е. не имеющие порожденных, называются листьями. Деревья изображаются перевернутыми - корнем вверху и листьями внизу (рис. 3.1)
Рис. 3.1. Графическое изображение иерархической структуры БД
Иногда используется термин “сбалансированное дерево” (рис.3.2 а). В таком дереве каждый узел имеет одинаковое число ветвей. Структуры, в которых допускается не более двух ветвей, называются двоичным деревом (рис.3.2 6) .
15
Рис.3.2. Примеры иерархических “деревьев”
а. “сбалансированное дерево” , б. “двоичное дерево”
Можно выделить основные особенности иерархической модели БД:
1. Все типы связей функциональные, т.е. 1:1, 1:М, М:1.
2. Структура связей древовидная.
3. Иерархия всегда начинается с корневого узла.
4. На первом уровне (i=1) может находиться только один узел - корневой.
5. На нижних уровнях (i = 2, 3, ..., n) находятся порожденные (зависимые) узлы.
6. Каждый порожденный узел, связан только с одним непосредственно исходным узлом.
7. Каждый исходный узел может иметь один или несколько непосредственно порожденных узлов, которые называются подобными.
8. Доступ к каждому порожденному узлу выполняется через его непосредственно исходный узел.
9. Существует единственный иерархический путь доступа к любому узлу, начиная от корня дерева.
Иерархический путь включает все связанные между собой узлы, начиная с корневого узла и кончая заданным. Иерархический путь является линейным, т. к. все узлы встречаются по одному разу. Среди систем, в основе которых лежат иерархические модели данных, наибольшее распространение получили ОКА и ИНЕС.
На рис.3.3 приведен пример иерархической базы данных ОКА, состоящей из двух сегментов: факультета и кафедры, каждый из которых включает по два поля: шифр и название. Над названием полей указаны размеры полей в байтах.
Рис. 3.3. Пример структуры базы данных
Далее приведено описание этой базы на языке системы ОКА.
16
DBD NAME = ФАКУЛЬТЕТ, ACCESS = HISAM
SEGM NAME = ФАКУЛЬТЕТ, PARENT = 0, ВYTES =22
FIELD NAME = ШИФР_ФАК, BYTES = 2, START = 1, TYPE = С
FIELD NAME = НАЗВАНИЕ, BYTES - 20, START = 3, TYPE = С
SEGM NAME = КАФЕДРА, PARENT = ФАКУЛЬТЕТ, BYTES = 34
FIELD NAME = ШИФР_КАФ., BYTES - 4, START = 1, TYPE = С
FIELD NAME - НАЗВАНИЕ, BYTES = 30, START = 5, TYPE = С
. . .
DBDGEN
FINISH
END
Языки манипулирования данными (ЯМД) используются программистами для разработки различных приложений. Различают включающие и автономные ЯМД. Включающие ЯМД позволяют разрабатывать программы на традиционных языках программирования: Ассемблер, Фортран, Кобол, Паскаль и пр. Операторы ЯМД встраиваются в тело программ путем использования оператора CALL, с помощью которого происходит обращение к СУБД. Например в системе ОКА в качестве ЯМД используются операторы:
GET UNNIQUE (GU) - получить уникальный;
GET NEXT (GN) - получить следующий);
INSERT – включить;
DELETE (DLET) – удалить;
REPLASE (REPL) - заменить.
Автономные ЯМД представляют собой специальные языковые средства, разработанные в рамках конкретной системы управления базой данных.