Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Проектирование баз данных

Принципы проектирования баз данных

Выбор подходов к проектированию баз данных (БД) зависит от следующих факторов:

  1. сложность проекта;
  2. технологические и экономические возможности (каким оборудованием располагает проект, сколько времени будет длиться разработка, сколько сотрудников в ней будут участвовать);
  3. корпоративная IT-культура (какие операционные системы и инструменты применяются разработчиками: например, если организация-заказчик предпочитает продукцию компании Microsoft, то, скорее всего, будут выбраны такие инструменты, как Microsoft Access или Microsoft SQL Server, если у заказчика принято использовать ПО категории OpenSource, то, скорее всего, будут задействованы такие продукты, как MySQL, PostgreSQL и т.п.).

Проектирование начинается со сбора информации о предметной области. В ходе серии интервью с заказчиком следует выяснить, учет каких категорий объектов предполагается вести в БД, как они взаимосвязаны между собой, насколько они многочисленны.

Замечание 1

Для малочисленных объектов с жестко заданной номенклатурой целесообразно создавать не отдельные таблицы, а ограничения, проверяющие соответствие вводимых данных на соответствие диапазону значений.

Этапы проектирования базы данных. Автор24 — интернет-биржа студенческих работ

Рисунок 1. Этапы проектирования базы данных. Автор24 — интернет-биржа студенческих работ

Следующим этапом проектирования БД может стать подготовка серии диаграмм UML, результатом которой становится диаграмма классов. Между ними устанавливаются связи типов "один-к-одному", "один-к-многим", "многие-к-многим".

Диаграмма классов как промежуточный этап проектирования БД. Автор24 — интернет-биржа студенческих работ

Рисунок 2. Диаграмма классов как промежуточный этап проектирования БД. Автор24 — интернет-биржа студенческих работ

«Проектирование баз данных» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

Получив необходимую информацию, можно приступать к созданию таблиц реляционной БД. Для этого могут использоваться как визуальные средства (например, в Microsoft Access), так и текстовые запросы, выполняемые непосредственно на языке SQL.

Визуальный дизайнер для баз данных MySQL. Автор24 — интернет-биржа студенческих работ

Рисунок 3. Визуальный дизайнер для баз данных MySQL. Автор24 — интернет-биржа студенческих работ

Создание взаимосвязанных таблиц

При подготовке структуры таблиц следует продумать имена колонок и типы данных, которые в них будут содержаться. Современные СУБД предоставляют широкий диапазон типов данных для хранения: числовые (цельночисленные, с плавающей точкой, двойной точности и т. п.), текстовые (char, varchar, text), календарные (дата и время), финансовые (с учетом особенностей валют) и т.п.

Кроме того, в таблицах следует установить некоторые ограничения, чтобы в записи не попадали некорректные данные. Например, если в таблице есть поле, содержащее номер пластиковой карты, то следует убедиться, что последовательность цифр, из которых он состоит, соответствует определенному шаблону.

Помимо обеспечения корректного заполнения таблиц, следует позаботиться о том, чтобы они были связаны правильно. В каждой таблице формируется поле или набор полей, характеризующее запись уникальным образом. Такой идентификатор называется ключом и используется в других таблицах как внешний ключ. Например, в таблице "Водители" базы данных "Гараж" ключевым полем может стать номер водительского удостоверения. Тогда в таблице "Транспортные средства" следует создать колонку "Водитель", ссылающуюся на таблицу "Водители" и содержащую одно из значений ее колонки "Удостоверение".

При проектировании связей между таблицами следует учитывать требования т.н. "нормальных форм".

Определение 1

Нормальная форма — свойство связи между таблицами в реляционной базе данных, свидетельствующее о наличии или отсутствии в ней избыточности. Избыточность может приводить к логическим ошибкам. Иными словами, нормальная форма - совокупность требований, которым должна соответствовать связь между таблицами.

При проектировании БД учитывается сразу несколько нормальных форм (всего их насчитывается до 7, в зависимости от методики подсчета). Свойствам нормальных форм посвящены многочисленные исследования.

Проектирование вспомогательных объектов реляционных БД

После создания взаимосвязанных таблиц проектировщики БД разрабатывают дополнительные средства, облегчающие работу с данными. Реализации языка SQL предусматривают такие удобные возможности, как отчеты (view), индексы, триггеры и т.д. Развитые СУБД предоставляют разработчикам множество встроенных функций для работы с текстом, числами, датами, объектами БД. БД может содержать и вновь созданные конкретно для ее целей функции.

В качестве примера рассмотрим ситуацию, когда из таблицы "Пациенты" базы данных "Поликлиника" нужно выбирать сотрудников возрастом старше 60 лет. Хранить сведения о возрасте в таблице нецелесообразно, т.к. он постоянно меняется, но можно задействовать функцию AGE, которая находит разницу между текущей датой и датой рождения. Создадим соответствующее представление (view):

CREATE VIEW OLD_PERSONS AS 
SELECT ID, 
EXTRACT (YEAR FROM AGE(CAST(BIRTHDATE AS DATE))) 
FROM PATIENTS 
WHERE AGE >= 60;

Теперь, совершая запрос

SELECT * FROM OLD_PERSONS;

, мы можем легко получить необходимую информацию.

В СУБД, ориентированных на визуальную разработку, таких, как Microsoft Access, в состав баз данных входят также формы и отчеты с удобными элементами управления и офисного форматирования. Последовательно совершенствуя запросы, формы, отчеты, насыщая базу данных новыми возможностями, разработчики стремятся сделать ее всё более эффективной для обработки данных, соответствующих заданной предметной области.

Замечание 2

Применение набирающих популярность баз данных класса NoSQL существенно сокращает время проектирования, поскольку в них для хранения данных применяются не взаимосвязанные таблицы, а принципиально другие способы, предоставляющие в ряде случаев более гибкие возможности по сравнению с SQL-инструментами.

Дата написания статьи: 01.02.2019
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot