- •Материалы по субд Лекция 1
- •Введение в системы управления базами данных
- •Основные понятия баз данных
- •Некоторые правила построения баз данных
- •Реляционные отношения между таблицами. Целостность данных
- •Отношение «один-к-одному»
- •Отношение «один-ко-многим»
- •Отношение «многие-ко-многим»
- •Нормализация
- •Индексирование
- •Лекция 2
- •Использование языка sql ms access
- •Лекция 3
- •Общие сведения о ms access
- •Запуск ms Access
- •Порядок работы при создании объекта:
- •Практическое занятие 1 – 2
- •Использование субд Microsoft Access на примере создания базы данных по учету товаров
- •Практическое занятие 3
- •Использование суБд access на примере ведения карточки студента
- •Практическое занятие 4
- •Практические задания для самостоятельной работы Вариант 1. "Жители"
- •2. База "Жители" состоит из 3-х следующих таблиц: "Район", "Здание", "Жильцы".
- •Вариант 2. "Жители-2"
- •Вариант 3. "Жильё"
- •Вариант 4. "Население"
- •Вариант 5. "Вакансии"
- •Вариант 6. "Автомагазины"
- •База "Магазины запчастей" состоит из 3-х следующих таблиц:
- •Вариант 7. "Реализация"
- •Вариант 8. "Поставщики-детали"
- •База "Поставщики-детали" состоит из 3-х следующих таблиц:
- •Вариант 9. "Покупатели"
- •Вариант 10. "Станции техобслуживания"
- •База "Станции техобслуживания" состоит из 4-х следующих таблиц: "Станции", "Автомобили", "Услуги", "Стоимость".
- •Вариант 11. "Магазины запчастей"
- •2. База "Магазины запчастей" состоит из 4-х следующих таблиц:
- •Вариант 12. "Больница"
- •Вариант 13. "Служащие"
- •Вариант 13. "Жилье-2"
- •1.2. Спланировать и описать структуру базы данных (смотри п.2).
- •Контрольные вопросы по теме
Отношение «один-ко-многим»
Связь "один-ко-многим" является самой распространенной для реляционных баз данных. Она позволяет моделировать иерархические структуры данных. Различают две разновидности этой связи: в первом случае всякой записи в родительской таблице должны соответствовать записи в дочерней таблице, во втором случае некоторые записи в родительской таблице могут не иметь записей в дочерней таблице.
Таблица «Товары» Таблица «Отпуск товаров»
Товар |
Ед. изм. |
Цена ед. |
|
Товар |
Дата |
Кол-во (ед) |
Сахар |
кг |
12 |
|
Сахар |
10.01.03 |
100 |
Макароны |
кг |
10 |
|
Сахар |
15.01.03 |
200 |
Куры |
кг |
60 |
|
Сахар |
12.02.03 |
50 |
Фанта |
бут.1 л |
15 |
|
Макароны |
20.02.03 |
1000 |
|
|
|
|
Макароны |
10.03.03 |
500 |
|
|
|
|
Фанта |
09.01.03 |
2000 |
Отношение «многие-ко-многим»
Ниже приведены таблицы, состоящие в отношении "многие-ко-многим". Каждой учебной группе соответствует несколько преподавателей. Каждый преподаватель может вести, во-первых, несколько разных предметов и, во-вторых, преподавать в разных группах.
Таблица «Группы и предметы» Таблица «Преподаватели»
Группа |
Предмет |
№ преподавателя |
|
№ преподавателя |
ФИО |
Кафедра |
1Ф1 |
Информатика |
10 |
|
10 |
Иванов В.В. |
ТИ-1 |
1Ф1 |
Теория систем |
10 |
|
12 |
Петров П.П. |
ТИ-1 |
1Ф1 |
Информатика |
12 |
|
62 |
Васин И.И. |
РИО |
1Ф1 |
Философия |
62 |
|
78 |
Лавров И.И. |
ТИ-1 |
1У1 |
Социология |
62 |
|
85 |
Павлов В.А. |
ЭИ-1 |
… |
… |
… |
|
… |
… |
… |
Ссылочную целостность рассмотрим на примере наиболее часто встречающейся связи между таблицами "один-ко-многим". Возможны два вида изменений, которые приведут к утере связей между записями в родительской и дочерней таблицах.
изменение значения поля связи в записи родительской таблицы без изменения значений полей связи в соответствующих записях дочерней таблицы;
изменение значения поля связи в одной из записей дочерней таблицы без соответствующего изменения значения поля связи в родительской и дочерней таблицах;
Рассмотрим первый случай: заменим в таблице «Товары» в поле «Товар» «Сахар» на «Рафинад». В результате в дочерней таблице «Отпуск товаров» для поля «Рафинад» нет сведений об его отпуске со склада и некоторые записи таблицы «Отпуск товаров» содержат сведения об отпуске товара «Сахар», о котором нет информации в таблице «Товары».
Рассмотрим второй случай: заменим в одной из записей таблицы «Отпуск товаров» значение поля связи «Сахар» на «Рафинад». В результате в дочерней таблице «Отпуск товаров» недостоверны сведения об отпуске товара «Сахар» и одна из записей таблицы «Отпуск товаров» содержат сведения об отпуске товара «Рафинад», данные о котором отсутствуют в таблице «Товары».
И в первом, и во втором случае произошло нарушение целостности базы данных, информация, хранящаяся в ней, становится недостоверной.
СУБД обычно блокирует действия, которые нарушают целостность связей между таблицами, т.е. нарушают ссылочную целостность. Когда говорят о ссылочной целостности, имеют в виду совокупность связей между отдельными таблицами во всей БД. Нарушение хотя бы одной такой связи делает информацию в БД недостоверной. Чтобы предотвратить потерю ссылочной целостности, используют механизм каскадных изменений. На этапе формирования связей (например, СУБД Access) надо установить флажок «Обеспечение целостности данных» и далее флажки «Каскадное обновление связанных полей» и «Каскадное удаление связанных полей».