Раздел 3. Основы проектирования баз данных
1. П.В. Бураков, В.Ю. Петров ВВЕДЕНИЕ В СИСТЕМЫ БАЗ ДАННЫХ Учебное пособие, Санкт-Петербург 2010
2. Проектирование реляционных баз данных: Метод. указания к курсовому проектированию по курсу "Базы данных" / Московский государственный институт электроники и математики; Сост.: И.П. Карпова. – М., 2010.
3. КРАМОРЕНКО Н. В. БАЗЫ ДАННЫХ, ВЛАДИВОСТОК 2004
Тема 3.1. Основы проектирования БД
Основные понятия БД
Одним из важнейших понятий в теории баз данных является понятие информации. Под информацией понимаются любые сведения о каком-либо событии, процессе, объекте.
Данные — это информация, представленная в определенном виде, позволяющем автоматизировать ее сбор, хранение и дальнейшую обработку человеком или информационным средством. Для компьютерных технологий данные — это информация в дискретном, фиксированном виде, удобная для хранения, обработки на ЭВМ, а также для передачи по каналам связи.
База данных (БД) — именованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области, или иначе БД — это совокупность взаимосвязанных данных при такой минимальной избыточности, которая допускает их использование оптимальным образом для одного или нескольких приложений в определенной предметной области. БД состоит из множества связанных файлов.
|
|
Система управления базами данных (СУБД) — совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.
Функции СУБД
Управление данными во внешней памяти
Данная функция предоставляет пользователям возможности выполнения самых основных операций, которые осуществляются с данными, — это сохранение, извлечение и обновление информации. Она включает в себя обеспечение необходимых структур внешней памяти как для хранения данных, непосредственно входящих в БД, так и для служебных целей, например для ускорения доступа к данным.
Управление транзакциями
Транзакция — это последовательность операций над БД, рассматриваемых СУБД как единое целое. Транзакция представляет собой набор действий, выполняемых с целью доступа или изменения содержимого базы данных. Примерами простых транзакций может служить добавление, обновление или удаление в базе данных сведений о некоем объекте. Сложная же транзакция образуется в том случае, когда в базу данных требуется внести сразу несколько изменений. Инициализация транзакции может быть вызвана отдельным пользователем или прикладной программой.
|
|
Восстановление базы данных
Одним из основных требований к СУБД является надежность хранения данных во внешней памяти. Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя.
Обычно рассматриваются два возможных вида аппаратных сбоев:
- мягкие сбои, которые можно трактовать как внезапную остановку работы компьютера (например, аварийное выключение питания);
- жесткие сбои, характеризуемые потерей информации на носителях внешней памяти.
Поддержка языков БД
Для работы с базами данных используются специальные языки, называемые языками баз данных. В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания, и обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Language — язык структурированных запросов). Язык SQL позволяет определять схему реляционной БД и манипулировать данными.
Управление параллельным доступом
Одна из основных целей создания и использования СУБД заключается в том, чтобы множество пользователей могло осуществлять параллельный доступ к совместно обрабатываемым данным. Параллельный доступ сравнительно просто организовать, если все пользователи выполняют только чтение данных, поскольку в этом случае они не могут помешать друг другу. Однако когда два или больше пользователей одновременно получают доступ к базе данных, конфликт с нежелательными последствиями легко может возникнуть, например, если хотя бы один из них попытается обновить данные. СУБД должна гарантировать, что при одновременном доступе к базе данных многих пользователей подобных конфликтов не произойдет.
Контроль доступа к данным
СУБД должна иметь механизм, гарантирующий возможность доступа к базе данных только санкционированных пользователей и защищающий ее от любого несанкционированного доступа.
Поддержка целостности данных
Термин целостность используется для описания корректности и непротиворечивости хранимых в БД данных. Реализация поддержки целостности данных предполагает, что СУБД должна содержать сведения о тех правилах, которые нельзя нарушать при работе с данными, и обладать инструментами контроля за тем, чтобы данные и их изменения соответствовали заданным правилам.
Каждая ИС в зависимости от ее назначения имеет дело с той или иной частью реального мира, которую принято называть предметной областью (ПрО) системы. Выявление ПрО — это необходимый начальный этап разработки любой ИС, здесь определяются те данные, которые будут хранится в соответствующей БД.
Отдельные программы или комплекс программ, реализующие автоматизацию решения прикладных задач обработки данных, называются приложениями. Приложения, созданные средствами СУБД, относят к приложениям СУБД. Приложения, созданные вне среды СУБД с помощью систем программирования, использующих средства доступа к БД, к примеру, Delphi или Visual Studio, называют внешними приложениями.
Жизненный цикл БД
Как и любой программный продукт, база данных обладает собственным жизненным циклом (ЖЦБД). ЖЦБД включает в себя следующие основные этапы:
1. планирование разработки базы данных;
2. определение требований к системе;
3. сбор и анализ требований пользователей;
4. проектирование базы данных:
концептуальное проектирование базы данных;
логическое проектирование базы данных;
физическое проектирование базы данных;
|
|
5.разработка приложений:
проектирование транзакций;
проектирование пользовательского интерфейса;
6. реализация;
7. загрузка данных;
8. тестирование;
9. эксплуатация и сопровождение:
анализ функционирования и поддержка исходного варианта БД;
адаптация, модернизация и поддержка переработанных вариантов.
Этап проектирования БД
Полный цикл разработки базы данных включает концептуальное, логическое и физическое ее проектирование.
1 – концептуальное проектирование (концептуальный уровень, концептуальная модель БД) – общее представление о сущностях предметной области и связях, т.е. разрабатывается модель данных, которая содержит несколько высокоуровневых сущностей и связей, затем продолжается уточнений сущностей, связей и относящихся к ним атрибутов.
Такой подход называется нисходящим проектированием (сверху-вниз). А модель называется "сущность — связь" (Entity-Relationship model — ER-модель), предложенная Питером Ченом. (Peter Chen) — американский ученый в области информатики, предложивший в 1976 году ER-модель данных.
В построении концептуальной модели данных выделяют ряд этапов.
· Выделение сущностей, описывающих локальную предметную область проектируемой БД, и описание атрибутов, составляющих структуру каждой сущности.
· Выделение ключевых атрибутов.
· Установление связей между сущностями.
· Удаление избыточных связей.
· Анализ и добавление неключевых атрибутов.
Существуют разные нотации ER-модели.
Практика 3.1
Созданная концептуальная модель данных предприятия является источником информации для логического проектирования базы данных.
2 – логический
На этапе логического проектирования разрабатывается логическая структура БД, которая опирается на определенную модель БД (сетевая, иерархическая и реляционная).
|
|
Для реляционной модели существуют формальные правила, которые позволяют преобразовать ER-диаграмму в схему реляционной БД. Кроме получения схемы БД в целом на этом этапе выполняют нормализацию отношений.
3 – физический уровень БД непосредственно спроектированная в некой СУБД.