• 4-неделя

    • Цель: изучить основные принципы структуризации и нормализации баз данных 

      План занятия: 

      1. Изучить основные принципы структурирования БД 

      2. Рассмотреть этапы нормализации БД

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

      База данных (БД) - именованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области. Под предметной областью понимается некоторая область человеческой деятельности или область реального мира, на основе которой создается БД и её структура. 

      Система управления базами данных (СУБД) - совокупность языковых и программных средств, предназначенных для создания, наполнения, обновления и удаления баз данных.

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

      К современным базам данных, а, следовательно, и к СУБД, на которых они строятся, предъявляются следующие основные требования: 

       ·Высокое быстродействие (малое время отклика на запрос). Время отклика - промежуток времени от момента запроса к БД до фактического получения данных. 

       ·Простота обновления данных. 

       ·Независимость данных - возможность изменения логической и физической структуры БД без изменения представлений пользователей.

       ·Совместное использование данных многими пользователями. 

       ·Безопасность данных - защита данных от преднамеренного или непреднамеренного нарушения секретности, искажения или разрушения. 

       ·Стандартизация построения и эксплуатации БД (фактически СУБД). 

       ·Адекватность отображения данных соответствующей предметной области. 

       ·Простой интерфейс пользователя.

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

      Безопасность данных включает их целостность и защиту. 

      Целостность данных - устойчивость хранимых данных к разрушению и уничтожению, связанных с неисправностями технических средств, системными ошибками и ошибочными действиями пользователей. Она предполагает: 

       отсутствие неточно введенных данных или двух одинаковых записей об одном и том же факте; 

       защиту от ошибок при обновлении БД; 

       невозможность удаления (или каскадное удаление) связанных данных разных таблиц; 

       неискажение данных при работе в многопользовательском режиме и в распределенных базах данных; 

       сохранность данных при сбоях техники (восстановление данных).

      Целостность обеспечивается триггерами целостности - специальными приложениями-программами, работающими при определенных условиях. Защита данных от несанкционированного доступа предполагает ограничение доступа к конфиденциальным данным и может достигаться: 

       · введением системы паролей; 

       · получением разрешений от администратора базы данных (АБД); 

       · запретом от АБД на доступ к данным; 

       · формирование видов - таблиц, производных от исходных и предназначенных конкретным пользователям.

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

      Проектирование баз данных - процесс решения класса задач, связанных с созданием баз данных. Основные задачи проектирования баз данных: 

       · Обеспечение хранения в БД всей необходимой информации. 

       · Обеспечение возможности получения данных по всем необходимым запросам. 

       · Сокращение избыточности и дублирования данных. 

       ·Обеспечение целостности данных (правильности их содержания): исключение противоречий в содержании данных, исключение их потери и т.д.

      Основные этапы проектирования баз данных: 

      Концептуальное (инфологическое) проектирование – построение формализованной модели предметной области. Такая модель строится с использованием стандартных языковых средств, обычно графических, например ER-диаграмм (диаграмм «Сущность-связь»). Такая модель строится без ориентации на какую-либо конкретную СУБД. 

      Основные элементы данной модели:

       · Описание объектов предметной области и связей между ними. 

       Описание информационных потребностей пользователей (описание основных запросов к БД). 

       · Описание алгоритмических зависимостей между данными. 

       · Описание ограничений целостности, т.е. требований к допустимым значениям данных и к связям между ними.

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

      Для реляционных СУБД даталогическая модель – набор таблиц, обычно с указанием ключевых полей, связей между таблицами. Если инфологическая модель построена в виде ER-диаграмм (или других формализованных средств), то даталогическое проектирование представляет собой построение таблиц по определённым формализованным правилам, а также нормализацию этих таблиц. Этот этап может быть в значительной степени автоматизирован. 

      Физическое проектирование – реализация даталогической модели средствами конкретной СУБД, а также выбор решений, связанных с физической средой хранения данных: выбор методов управления дисковой памятью, методов доступа к данным, методов сжатия данных и т.д. – эти задачи решаются в основном средствами СУБД и скрыты от разработчика БД. На этапе инфологического проектирования в ходе сбора информации о предметной области требуется выяснить:

       · основные объекты предметной области (объекты, о которых должна храниться информация в БД);  · атрибуты объектов; 

       · связи между объектами; 

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

      Проектирование БД можно представить следующим образом: 

      - Сбор всей информации об объектах решаемой задачи в рамках одной таблицы (одного отношения) - Разбиение полученной таблицы на несколько взаимосвязанных таблиц на основе принципа нормализации отношений. 

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

      Основными считаются первые 3 нормальные формы: 

      1НФ - таблица находится в первой нормальной форме (1НФ) тогда и только тогда, когда ни одна из ее строк не содержит в любом своем поле более одного значения и ни одно из ее ключевых полей не пусто. (Любое поле таблицы содержит неделимую информацию и в таблице определен первичный ключ) 

      2НФ - Таблица находится во второй нормальной форме (2NF) в том и только в том случае, когда находится в 1NF, и каждый ее неключевой атрибут полностью зависит от первичного ключа. (Таблица должна удовлетворять 1NF и любое неключевое поле должно однозначно идентифицироваться ключевыми полями.) 

      3НФ – Таблица находится в третьей нормальной форме (3NF) в том и только в том случае, если находится в 2NF и каждый неключевой атрибут нетранзитивно зависит от первичного ключа. (Таблица должна удовлетворять 2NF и ни одно из неключевых полей не должно однозначно идентифицироваться значением другого неключевого поля (полей))