- •Портфолио по учебной дисциплине «Базы данных»
- •Введение в базы данных Общие определения
- •Основные операции, выполняемые субд:
- •Классификация бд
- •Типы бд
- •Инфологическая модель данных
- •Иерархическая модель.
- •Сетевая модель.
- •Реляционная модель.
- •Основные объекты Microsoft Office Access.
- •Типы данных.
- •Объекты Access.
- •Связи между таблицами
- •Запросы.
- •Реляционная алгебра
- •Создание таблиц.
- •Отчеты Access
- •Архитектура баз данных
- •1 Уровень
- •2 Уровень
- •3 Уровень
- •Внешний уровень
- •Концептуальный уровень.
- •Внутренний уровень
- •Обеспечение целостности данных
- •Технологии и модели клиент-сервер
- •Модель файлового сервера. (fs)
- •Модель доступа к удаленным данным (rda)
- •Модель сервера баз данных (dbs)
- •Модель сервера приложений (as)
- •Разработка структуры бд.
- •Порядок разработки структуры бд:
- •Аномалии в таблицах
- •Нормализация
- •Первая нормальная форма (1нф)
- •Вторая нормальная форма (2нф)
- •Третья нормальная форма (3 нф)
- •Практическая работа по нормализации:
- •Основные объекты реляционной бд
- •Язык qbe
- •Язык sql
- •Описание основных операторов sql
- •Типичный список команд sql:
- •Команды определения данных объектов
- •Команды манипулирования данными
- •Команды управления транзакциями
- •Другие команды
- •Математические функции sql
- •Функции sql для обработки строк
- •Специальные функции
- •Функции обработки даты и времени
- •Агрегатные функции
- •Отличие sql от qbe
- •Индексация
- •Поиск в бд
- •Транзакция
- •Восстановление данных
- •Основные функции субд
- •Непосредственное управление данными во внешней памяти
- •Управление буферами оперативной памяти
- •Управление транзакциями
- •Журнализация
- •Поддержка языков бд
- •Объекты серверной субд.
- •Хранимая процедура
- •Краткий обзор субд
- •Настольные субд
- •Серверные субд
- •Серверы баз данных компании ibm
- •История развития систем обработки и бд.
- •Интеграция баз данных в интернет
- •Оглавление
Первая нормальная форма (1нф)
Первая нормальная форма требует:
-
Чтобы вся информация в БД была представлена в виде таблиц
-
В таблицах не должно быть составных полей
-
В таблицах не должно быть повторяющихся групп
Краткие пояснения
Составное поле – такое поле, что в процессе работы базы необходимо иметь доступ к частям его значения.
Классическим примером такого поля является поле адрес, которое можно разделить на различные смысловые единицы, в зависимости от назначения БД.
Повторяющаяся группа – это группа одинаковых по смыслу полей (например в таблице статистика продаж есть поля для различных видов товаров «Товар 1», «Товар 2», «Товар 3»)
Порядок приведения БД к 1 НФ
-
Представляем все данные в виде таблиц
-
Находим в таблицах составные поля
-
Делим эти поля на отдельные по смыслу единицы
-
Выявляем наличие в таблицах повторяющихся групп
-
Преобразуем таблицы с повторяющимися группами так, чтобы вся группа описывалась одним полем, а одинаковые по смыслу значения становятся записями
Вторая нормальная форма (2нф)
Вторая нормальная форма требует чтобы БД соответствовала 1 НФ и чтобы все поля таблиц зависели от первичного ключа.
Первичный ключ должен однозначно определять запись и не быть избыточным
Поля, зависящие от части первичного ключа, должны быть вынесены в отдельные таблицы.
Заключительным этапом приведения ко 2 НФ является введение в качестве первичных ключей семантически незначимых полей, чтобы избавиться от больших или сложных составных первичных ключей, с которыми неудобно работать.
Порядок приведения БД к 2 НФ
-
Для всех таблиц определяем первичные ключи, однозначно определяющие каждую запись в таблице
-
Находим поля, зависящие только от части первичного ключа, а также поля, независящие от первичного ключа
-
Для полей, независящих от первичного ключа определяем поля, от которых они зависят
-
Все группы таких полей выделяем в отдельные таблицы со своими первичными ключами
-
Вводим семантически незначимые поля с числовым форматом данных, в тех таблицах, в которых присутствуют текстовые и громоздкие первичные ключи.
Третья нормальная форма (3 нф)
Третья нормальная форма требует чтобы БД удовлетворяла требованиям 2 НФ и чтобы в таблицах не имелось транзитивных зависимостей.
Другими словами значение поля не должно выражаться через значения других полей.
Если такие поля существуют в таблице, то одно из полей, входящих в транзитивную зависимость нужно исключить.
Строго говоря, приведение к 3 НФ решает не все конфликты структуры базы, но мы будем считать, что после приведения БД к третьей НФ, структура базы полностью нормализована.
Практическая работа по нормализации:
База данных по продаже билетов
-
БД будет использоваться кассирами в кассах автовокзала для продажи билетов. БД будет содержать информацию о расписании движения (описание рейса, длина маршрута, время отправления, время прибытия, время в пути), о транспорте (марка, количество, вместимость, номера, техническое состояние, стоимость эксплуатации), о водителях (ФИО, паспортные данные, адрес, телефон, стаж работы), стоимости проезда и свободных местах. В работе с БД должны быть возможности просмотра записей о водителях, о расписании движения, транспорте, свободных местах и стоимости, должны так же быть возможности добавления или изменения записей.
-
Основные сущности
Транспорт |
Марка |
Количество |
Вместимость |
Номера |
Техническое состояние |
Стоимость эксплуатации |
Расписание движения |
Описание рейса |
Длина маршрута |
Время отправления |
Время прибытия |
Время в пути |
Водители |
ФИО |
Паспортные данные |
Адрес |
Телефон |
Стаж работы |
Стоимость проезда |
Свободные места |
-
Нормализация
1НФ
Транспорт |
Марка |
Количество |
Вместимость |
Номера |
Техническое состояние |
Стоимость эксплуатации |
Расписание движения |
Станция отправления |
Станция прибытия |
Длина маршрута |
Время отправления |
Время прибытия |
Время в пути |
Стоимость проезда |
Свободные места |
Водители |
Фамилия |
Имя |
Отчество |
Номер паспорта |
Дата рождения |
Область |
Город |
Улица |
Дом |
Квартира |
Телефон |
Стаж работы |
2НФ
Транспорт |
Марка |
Количество |
Вместимость |
Номер транспорта |
Техническое состояние |
Стоимость эксплуатации |
Водители |
Фамилия |
Имя |
Отчество |
Номер паспорта водителя |
Дата рождения |
Область |
Город |
Улица |
Дом |
Квартира |
Телефон |
Стаж работы |
Номер транспорта |
Расписание движения |
Код рейса |
Станция отправления |
Станция прибытия |
Длина маршрута |
Время отправления |
Время прибытия |
Время в пути |
Стоимость проезда |
Свободные места |
Номер транспорта |
Номер паспорта водителя |