
- •Введение в курс “Базы данных”
- •Классификация бд по способу хранения данных
- •Факультет
- •Классификация бд по их использованию
- •Реляционные бд (ms Access)
- •Типы полей в реляционных бд
- •Связи между таблицами
- •Поддержка целостности данных
- •Нормализация бд
- •Неформальные методы приведения таблиц к третьей нормальной форме
- •Операции в бд (vba) Операции над отношениями/таблицами
- •Операции над записями
- •Типы данных используемых в sql
- •Операторы манипулирования данными Оператор Select
- •Группировка
- •Объединение таблиц
- •Параметры
- •Перекрёстные запросы
- •Обновление данных (запрос Update)
- •Удаление данных (запрос Delete)
- •Подчинённые запросы
- •Создание таблиц
- •Добавление новых полей
- •Технология разработки программного обеспечения, использующего базы данных
- •Доступ к данным в Visual Basic 6.0
- •Работа с записями
- •Создание многоуровневых приложений
- •Д Fill оступ к данным в c# (Visual Studio 2005)
- •Создание отчётов
- •Olap технологии. Xml язык
- •Клиент-серверные системы
- •Триггер
- •Программирование триггера
Связи между таблицами
Связи между таблицами бывают 3 типов:
Связь “один к одному”, когда каждой записи в первой таблице соответствует 1 запись во второй таблице.
Связь “Один ко многим”, когда одной записи в одной таблице соответствует множество записей во второй таблице.
С
1
1
∞
∞
∞
∞
вязь “Многие ко многим”, когда одной записи из первой таблицы соответствует множество записей из второй таблицы, и одной записи из второй таблицы соответствует множество записей из первой таблицы. Такие связи в реляционных БД НЕДОПУСТИМЫ. Они преобразуются в две связи один-ко-многим через внедрение вспомогательной таблицы.
Поддержка целостности данных
Поддержка целостности данных предназначена для исключения ошибок при вводе данных и их редактировании, а также при удалении ненужных записей. При включенном режиме невозможно удалить записи из первой таблицы, если существуют связанные с ней записи во второй таблице. Например, имеется 2 таблицы: наименований товаров и их приход. При включённой поддержке целостности данных при удалении (или изменении ключевого поля) одного из товаров в таблице Товары будут также удалены (изменены) записи, соответствующие этому товару, в таблице Приход.
Характерные черты:
При изменении значения ключевого поля в 1-й таблице автоматически изменяется значение в связанных записях.
Невозможно ввести во вторую таблицу в поле внешнего ключа значение, которого нет в первой таблице.
Допустимые опции:
Каскадное обновление.
Каскадное удаление.
Нормализация бд
При создании БД, в первую очередь необходимо разработать её структуру. Следующим шагом должна быть её нормализация.
Нормализация БД предназначена для уменьшения объёма хранимых данных и снижения вероятности ошибки при вводе данных и затрат труда при этом.
Пример.
Имеется следующая таблица, в которой содержаться данные по товарным накладным:
№ накладной |
Дата |
Поставщик |
Адрес |
Товар |
Цена |
Количество |
Стоимость |
|
|
|
|
|
|
|
|
Она имеет очевидные недостатки:
Одна накладная может иметь разные даты вследствие человеческой ошибки.
У одного и того же товара могут быть разные цены.
Адреса у одного и того же поставщика могут быть разные
Стоимость можно ввести неверно.
Для того чтобы устранить эти недостатки, таблицу необходимо привести к 3-й нормальной форме (всего существует 5 нормальных форм).
Первая нормальная форма. Таблица соответствует 1-й нормальной форме, если каждый столбец содержит атомарные (которые нельзя разделить на более простые) значения, а в таблице не содержаться повторяющиеся группы. В рассматриваемом примере повторяющейся группой является накладная, следовательно, часть полей повторяется. Группы удаляются помощью добавления таблиц. Создаём дополнительную таблицу “Накладная”.
Чтобы привести таблицу ко второй нормальной форме необходимо, чтобы таблица была в первой нормальной форме, и каждый столбец должен зависеть от ключевого поля. В примере выделяется ещё одна таблица, в которой содержаться код товара (ключевое поле), наименование товара и его цена.
БД находится в 3 нормальной форме, если она находится во второй нормальной форме, и каждый столбец зависит от первичного ключа и не зависти от части ключа. В таблице не должны присутствовать поля, которые можно вычислить, как бы сложно это ни было. Таким образом, в отдельную таблицу также выделяются поставщик, его уникальный идентификатор, его адрес и телефон.