Базы данных (780594), страница 3
Текст из файла (страница 3)
Рисунок 4 - ER-диаграмма разработанной базы данных
Нормализация
Нормализация – это разбиение таблицы на две или более, обладающих лучшими свойствами при добавлении, изменении и удалении данных.
Окончательная цель нормализации сводится к получению такого проекта базы данных, в котором каждый факт появляется лишь в одном месте, т.е. исключена избыточность информации. Это делается не столько с целью экономии памяти, сколько для исключения возможной противоречивости хранимых данных.
Нормализация представляет собой процесс, направленный на уменьшение избыточности информации в базе данных. Кроме самих данных, в базе данных также могут быть нормализованы различные наименования, имена объектов и выражения.
Нормализация — это процесс, направленный на уменьшение избыточности информации в реляционной базе данных.
В теории реляционных баз данных обычно выделяется следующая последовательность нормальных форм:
1) первая нормальная форма (1 NF);
2) вторая нормальная форма (2 NF);
3) третья нормальная форма (3 NF);
4) нормальная форма Бойса – Кодда (BCNF);
5) четвертая нормальная форма (4 NF);
6) пятая нормальная форма, или нормальная форма проекции-соединения (5 NF или PJ/NF).
Нормальная форма — это своеобразный показатель уровня, или глубины, нормализации базы данных. Уровень нормализации базы данных соответствует нормальной форме, в которой она находится.
Целью первой нормальной формы является разделение исходных данных на логические составляющие, именуемые таблицами. После проектирования каждой таблицы для большинства из них (или даже для всех) назначается первичный ключ.
Первая нормальная форма требует, чтобы на любом пересечении строки и столбца находилось единственное значение, которое должно быть атомарным, и в таблице не должно быть повторяющихся строк.
Отношение находится во второй нормальной форме (2НФ), если оно находится в 1НФ и если каждый непервичный атрибут функционально полно зависит от каждого возможного ключа.
Целью второй нормальной формы является помещение в отдельную таблицу данных, которые только частично зависят от первичного ключа.
Отношение находится в 3НФ, если оно находится в 2НФ и в нем нет транзитивных зависимостей атрибутов от возможных ключей, т.е. каждый непервичный атрибут нетранзитивно зависит от каждого возможного ключа отношения.
Целью третьей нормальной формы является устранение из таблицы данных, не зависящих от ее первичного ключа.
В рамках данного курса нормализации с 4 нормальной формы по 6 нормальную форму не рассматриваются.
Процесс нормализации данных приводит к улучшению их общей организации, тем самым облегчая работу каждому — от пользователя, который обращается к таблицам, до администратора базы данных, ответственного за управление всеми объектами базы данных в целом. Снижение избыточности данных влечет за собой упрощение их структуры и способствует рациональному использованию дискового пространства. Вследствие минимизации дублирующей информации значительно уменьшается вероятность появления противоречивых данных.
Результаты анализа критериев влияния логического моделирования данных на качество физических моделей данных и производительность базы данных:
Критерий | Отношения слабо нормализованы | Отношения сильно нормализованы |
Адекватность базы данных предметной области | ХУЖЕ (-) | ЛУЧШЕ (+) |
Легкость разработки и сопровождения базы данных | СЛОЖНЕЕ (-) | ЛЕГЧЕ (+) |
Скорость выполнения вставки, обновления, удаления | МЕДЛЕННЕЕ (-) | БЫСТРЕЕ (+) |
Скорость выполнения выборки данных | БЫСТРЕЕ (+) | МЕДЛЕННЕЕ (-) |
Как видно из таблицы, более сильно нормализованные отношения оказываются лучше спроектированы (три плюса, один минус). Они больше соответствуют предметной области, легче в разработке, для них быстрее выполняются операции модификации базы данных.
Основы SQL: запросы к базе данных
Структурированный язык запросов (Structured Query Language) – стандарт коммуникации с базой данных, который поддержан ANSI. Самая последняя версия – SQL-99, хотя новый стандарт SQL-200n уже находится в разработке. Большинство баз данных твердо придерживается стандарта ANSI-92. Было много обсуждений по поводу введения более современных стандартов, но изготовители коммерческих баз данных отклоняются от этого, развивая свои новые концепции манипуляции хранимыми данными.
SQL содержит большое количество встроенных функций (табл.), позволяющих обрабатывать данные. Среди этих функций наиболее широко используемыми являются математические, статистические функции, функции для работы с данными время/дата, символьными данными, системные функции, функции конфигурирования и функции, обеспечивающие безопасность системы.
Функция | Назначение |
ABS(N) | Вычисление модуля числа N |
SIGN(N) | Определение знака числа N |
RAND | Генератор случайного числа в диапазоне |
ROUND(N,d) | Округление числа N с точностью d |
POWER(N,M) | Возведение числа N в степень M |
SIN(N), COS(N) | Тригонометрические функции |
EXP(N) | Экспонента числа N |
LOG(N) | Натуральный логарифм числа N |
LEN(S) | Вычисление длины строки символов S |
LTRIM(S), | Удаление пробелов в начале и в конце строки S |
LEFT(S,i) | Копирование i символов строки S начиная с левого |
RIGHT(S,i) | Копирование i символов строки S начиная с право |
SUBSTRING(S,i,j) | Копирование подстроки длины j строки S начиная с |
STR(N) | Преобразование числа N в символьный тип |
LOWER(S) | Перевод строки S в нижний регистр |
UPPER(S) | Перевод строки S в верхний регистр |
Запросы используются для получения пользователем информации, содержащейся в БД, в удобном для него виде. Результат запроса отображается для пользователя в виде таблицы, содержащей требуемую этим пользователем информацию. Запросы делятся на поисковые и корректирующие. Первый тип запросов используется только лишь для отображения данных, второй применяется для возможности внесения изменений в данные – их модификацию.
Основным оператором для отбора информации из БД является оператор SELECT.
SELECT [ALL | DISTINCT] [TOP n [PERCENT] СписокВыборки
FROM ИмяТаблицы
WHERE УсловиеОтбора
Пример использования команды SELECT:
SELECT ФИО, Группа
FROM Результат_сессии
WHERE Предмет = ‘Медицинская информатика’ AND Оценка = ‘5’
Операнд WHERE используется для отбора записей в таблицах БД в соответствии с указанными условиями поиска. Этих условий может быть несколько и в них могут входить операторы сравнения и логические функции. Допустимо также использование специальных предикатов.
В корректирующих запросах основными операторами являются операторы INSERT, UPDATE и DELETE.
Оператор INSERT предназначен для включения в таблицу новых строк и имеет следующий формат:
INSERT INTO <название таблицы>
{DEFAULT VALUES}
Значения должны вводиться в столбцы, перечисленные в списке, в том порядке, в котором они указаны, в противном случаезначения должны вводиться во все столбцы новых строк.
Добавим нового преподавателя в соответствующую таблицу, внеся значения во все поля:
INSERT INTO Сотрудник
VALUES (503, ‘Семенов А.’, 9, ‘Доцент’, 3000, NULL)
Оператор UPDATE используется для корректировки содержания таблицы:
UPDATE SET = [, = …]
[WHERE ]
UPDATE Сотрудник
SET Должность = ‘Доцент’, Оклад = 3000
WHERE Таб_№ = 289
При использовании этого оператора можно изменять значение в столбце для всех записей таблицы (при отсутствии условия WHERE) или только для тех записей, которые удовлетворяют условию WHERE.
Оператор DELETE используется для удаления строк из таблицы:
DELETE
FROM
[WHERE ]
Если условие WHERE отсутствует, то удаляются все строки таблицы.
DELETE Сотрудник.ФИО
FROM Сотрудник
WHERE (Сотрудник.ФИО) = ‘Семенов А.’
Тестовый контроль
1. какие модели представления данных основаны на таблицах?
а) реляционные
б) Иерархические
с) сетевые
2. Эквивалент для уникального идентификатора?
а) кортеж
б) домен
с) первичный ключ
3. Ниже в табличной форме представлен фрагмент базы данных о «Основные сведения о небесных телах»: Сколько записей в данном фрагменте удовлетворяют условию
(Наличие атмосферы = «Очень плотн.») И (Средний радиус, км > 10 000)?
а) Сатурн, Уран, Плутон
б) Уран, Нептун, Юпитер, Венера
с) Юпитер, Сатурн, Уран, Нептун
d) Юпитер, Сатурн, Марс, Меркурий
4. Система управления базами данных представляет собой программный продукт, входящий в состав:
а) системного программного обеспечения
б) прикладного программного обеспечения
с) систем программирования
d) уникального программного обеспечения
5. Как называется набор хранимых записей одного типа?
а) Кортеж
б) хранимый файл
с) связь
d) ER- диаграмма
6. Файл базы данных имеет расширение:
а) docx
б) assdb
с) asvi
d) accdb
7. Выберите режим, в котором можно изменить тип данных таблицы базы данных:
а) режим таблицы
б) режим Конструктора
с) режим Мастера
8. Связи между полями таблиц базы данных создаются в диалоговом окне:
а) связи
б) схема данных
с) конструктор
d) перекрестная схема