- •Н.С. Безруких, и.С. Матвеева управление базами данных
- •080502, 080109, 220501 Заочной формы обучения
- •Содержание
- •Введение
- •1 Работа с базой данных
- •1.1 Понятие базы данных
- •1.2 Виды моделей данных
- •1.2.1 Иерархическая модель данных
- •1.2.3 Реляционная модель данных
- •1.2.2 Сетевая модель данных
- •1.3 Проектирование базы данных
- •1.3.1 Этапы проектирования
- •1.3.2 Понятие сущности, атрибута и связи
- •1.3.3 Пример проектирования базы данных
- •1.4 Функциональные возможности субд
- •1.5.4 Вывод информации из базы
- •1.6 Технология работы в субд ms Access
- •2 Лабораторные работы
- •2.1 Лабораторная работа №1. Создание таблиц и ввод данных
- •2.1.1 Указания к выполнению лабораторной работы
- •2.1.1.1 Описание структур таблиц
- •2.1.1.2 Технология создания структуры таблицы конструктором
- •2.1.1.3 Обеспечение контроля ввода данных
- •2.1.1.4 Создание столбца подстановок
- •2.1.1.5 Создание схемы данных
- •2.1.1.6 Понятие связной целостности данных
- •2.1.2 Задание
- •I Создание структуры таблиц базы данных
- •II Установка связей между таблицами
- •III Ввод данных в таблицы
- •IV Проверка поддержания связной целостности данных
- •2.2 Лабораторная работа №2. Создание запросов на выборку данных
- •2.2.1 Указания к выполнению лабораторной работы
- •2.2.1.1 Технология создания запроса на выборку
- •2.2.1.2 Создание запроса с параметром
- •2.2.1.3 Использование выражений в условиях отбора
- •2.2.1.4 Создание вычисляемых полей в запросах
- •2.2.1.5 Групповые операции в запросах
- •2.2.1.6 Построение запроса на основе других запросов
- •2.2.1.7 Перекрестные запросы
- •2.2.2 Задание
- •2.3 Лабораторная работа №3. Создание форм
- •2.3.1 Указания к выполнению лабораторной работы
- •2.3.1.1 Создание однотабличной формы с помощью Автоформы
- •2.3.1.2 Создание многотабличной формы
- •2.3.1.3 Доработка формы в режиме конструктора
- •2.3.1.4 Вычисления в форме
- •2.3.2 Задание
- •2.4 Лабораторная работа №4. Разработка отчетов
- •2.4.1 Указания к выполнению лабораторной работы
- •2.4.1.1 Создание однотабличного отчета с помощью мастера
- •2.4.1.2 Доработка отчета в режиме конструктора
- •2.4.1.3 Добавление в отчет вычисляемых полей Определение вычисляемого поля
- •2.4.1.4 Создание многотабличного отчета
- •2.4.1.5 Редактирование многотабличного отчета в режиме конструктора
- •2.4.2 Задание Создание многотабличного отчета
- •3 Задания для контрольной работы Общие требования к выполнению контрольной работы
- •4 Пример выполнения контрольной работы
- •Доработка формы в режиме конструктора
- •Создаем отчет
- •Редактируем отчет в режиме конструктора
- •Библиографический список
- •Приложение а (обязательное) Перечень ключевых слов
- •Приложение b (обязательное) Образец титульного листа
- •Обработка информации в среде субд
- •Управление базами данных
1.2.2 Сетевая модель данных
В сетевой модели каждый элемент может быть связан с любым другим элементом, но иерархия явно не выражена. Любой элемент может быть и главным и подчиненным. На рисунке 2 изображена сетевая модель данных в виде графа.
Рисунок 2 – Графическое изображение сетевой структуры БД
Примером двухуровневой сетевой модели может служить структура базы данных, содержащей сведения о студентах, участвующих в научно-исследовательских работах (НИРС). Возможно участие одного студента в нескольких НИРС, а также участие нескольких студентов в разработке одной НИРС.
1.2.3 Реляционная модель данных
Наиболее удобным и для пользователя и для компьютера является представление данных в виде двумерной таблицы. Подавляющее большинство современных информационных систем работает именно с такими таблицами. Базы данных, которые состоят из двумерных таблиц, называются реляционными (relation – отношение). Примером реляционной модели данных может служить таблица с информацией о студентах (рисунок 3).
Номер зачетной книжки |
Группа |
Фамилия |
Имя |
Отчество |
Дата рожде-ния |
Адрес |
042099 |
41-1 |
Сергеев |
Петр |
Михайлович |
01.01.93 |
ул. Горького, 38-44 |
042003 |
41-2 |
Иванов |
Денис |
Николаевич |
24.03.93 |
ул. Тотмина, 12-21 |
042002 |
41-2 |
Тихонова |
Ольга |
Петровна |
19.12.92 |
ул. Ленина, 120-80 |
042023 |
41-3 |
Яковлев |
Иван |
Васильевич |
13.05.93 |
ул. Щорса, 63-30 |
Рисунок 3 – Пример реляционной таблицы
Каждая таблица в реляционной БД состоит из фиксированного числа столбцов и некоторого (переменного) количества строк. Каждый столбец таблицы имеет уникальное имя и называется полем. Описание полей принято называть макетом таблицы. Для описания поля используются характеристики (свойства поля):
имя поля, например, Номер зачетной книжки, Группа, Фамилия, Имя, Отчество, Дата рождения, Адрес;
тип поля, например, символьный, числовой, дата;
дополнительные свойства (размер, например, 15 байт, формат для числовых данных, например, целое или вещественное с указанием количества десятичных знаков после запятой).
Каждая строка таблицы называется записью. Запись логически объединяет все поля, описывающие один объект данных
Чтобы четко отличить одну запись от другой, каждая таблица должна иметь уникальный ключ (первичный ключ) – набор полей, однозначно определяющих запись. Этот ключ может состоять из одного поля (простой ключ) или нескольких полей (составной ключ). По значению ключа отыскивается единственная запись. Первичным ключом в таблице с информацией о студентах является номер зачетной книжки.
Таблицы в реляционной базе данных взаимосвязаны. Связь устанавливается между общими полями двух таблиц и может иметь один из видов:
один к одному (1:1);
один ко многим (1:М);
многие ко многим (М:М).
Связь «один к одному» предполагает, что каждой записи одной таблицы (A) соответствует только одна запись второй таблицы (B) и, наоборот, каждой записи второй таблицы (B) соответствует только одна запись первой таблицы (A). Графическое изображение связи «один к одному» приведено на рисунке 4.
Рисунок 4 – Графическое изображение связи «один к одному»
Такой тип связи встречается не часто. Обычно это бывает в том случае, когда таблица содержит большое число столбцов. Тогда оказывается удобнее разбить ее на две или более таблиц, которые окажутся связанными по типу «один к одному».
Связь «один ко многим» означает, что каждой записи первой таблицы (A) может соответствовать несколько записей второй таблицы (B), а каждой записи второй таблицы (B) – только одна запись первой таблицы (A). Графическое изображение связи «один ко многим» приведено на рисунке 5.
Рисунок 5 – Графическое изображение связи «один ко многим»
Cвязь вида «многие ко многим» говорит о том, что каждой записи из одной таблицы (A) могут соответствовать несколько записей в другой таблице (B), а каждой записи второй таблицы (B) может соответствовать тоже несколько записей первой таблицы (A). Связи «многие ко многим» не могут непосредственно реализовываться в реляционных базах данных. При выявлении таких связей их нужно преобразовать путем введения дополнительной таблицы (C), с которой таблица (A) и таблица (B) будут связаны по типу «один ко многим» (рисунок 6).
Рисунок 6 – Преобразование связи «многие ко многим»
Чтобы связать две реляционные таблицы, необходимо ключ первой таблицы ввести в состав ключа второй таблицы (возможен вариант совпадения ключей). В противном случае нужно ввести в структуру второй таблицы внешний ключ – ключ первой таблицы.
На рисунке 7 показаны связи между тремя таблицами Студент, Сессия и Стипендия. В скобках указаны поля таблиц, используемые для связи.
Рисунок 7 – Пример реляционной модели
Таблица Студент имеет поля: Номер зачетной книжки (ключ), Группа, Фамилия, Имя, Отчество, Дата рождения, Адрес. Таблица Сессия содержит набор экзаменационных оценок каждого студента в сессию и состоит из полей: Номер зачетной книжки (ключ), Оценка1, Оценка2, Оценка3, Оценка4, Результат. Таблицы Студент и Сессия имеют совпадающие ключи (Номер зачетной книжки), что дает возможность легко организовать связь между ними по типу «один к одному».
Таблица Стипендия с полями Результат (ключ) и Процент содержит информацию о размере стипендии в зависимости от результата. Таблица Стипендия связана с таблицей Сессия по своему ключу Результат. Тип связи - «один ко многим», так как установленный размер стипендии по результатам сдачи сессии может повторяться многократно для различных студентов. Для таблицы Сессия первичным ключом является поле Номер зачетной книжки, а поле Результат представляет собой внешний ключ, используемый для связи с таблицей Стипендия.
