Проектирование базы данных строительного предприятия

СОДЕРЖАНИЕ 

 

      Введение

 

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

      Цель  курсового проекта – разработка автоматизированной системы управления проектами на примере строительной компании.

      Для достижения поставленных целей в  проекте были поставлены следующие задачи:

      1. Теоретические основы создания  базы данных.

      2. Проектирование базы данных строительного  предприятия.

      В качестве программного обеспечения  выбор был сделан в пользу продуктов Microsoft, точнее Microsoft Access, так как в Microsoft Access успешно сочетаются возможности хранения и обработки данных с простотой использования, характерной для приложений Windows.

      Специфической особенностью СУБД Access является то, что  вся информация, относящаяся к  одной базе данных, хранится в едином файле.

      Такой файл имеет расширение *.mdb. Данное решение, как правило, удобно для непрофессиональных пользователей, поскольку обеспечивает простоту при переносе данных с одного рабочего места на другое. Внутренняя организация данных в рамках mdl формата менялась от версии к версии, но фирма Microsoft поддерживала их ее вместимость снизу вверх, то есть базы данных из файлов в формате ранних версии Access могут быть конвертированы в формат, используемый в версиях боле поздних.

     Глава 1. Теоретические основы создания базы данных

     1.1. Microsoft Access как настольная  СУБД реляционного  типа

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

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

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

      Чтобы избежать дублирования данных, рекомендуется  создать две таблицы и затем  связать их. В первую таблицу включить сведения об организации — и это  будет главная таблица. Во вторую (подчиненную) будут внесены участники  семинара и их должности, а вместо полной информации о месте работы — код организации, равный порядковому номеру организации в первой таблице. Далее устанавливаем связь между таблицами по полю "Код организации". В результате главная таблица принимает вид, где реквизиты каждой организации записаны один раз и (под строкой организации) можно раскрыть список всех сотрудников данной организации, посетивших семинар.

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

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

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

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

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

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

     1.2. Различия между СУБД Access и электронными таблицами Excel

      На  первый взгляд СУБД Access очень похожа по своему назначению и возможностям на программу электронных таблиц Microsoft Excel. Однако между ними существуют принципиальные различия.

      ·  При работе с электронной таблицей Excel вы можете в ячейку таблицы внести любую информацию, вследствие чего на рабочем листе можно разместить и таблицу, и текст, и рисунок. В один столбец таблицы могут при необходимости вноситься разные данные — числа, текст, даты. Таблица в базе данных Access отличается от таблицы Excel тем, что в ней, как уже говорилось выше, для каждого поля записи определен тип данных, т. е. нельзя в однин столбец таблицы в разные строки заносить данные разных типов.

      ·  Access позволяет не только вводить данные в таблицы, но и контролировать правильность вводимых данных. Для этого необходимо установить правила проверки прямо на уровне таблицы. Тогда каким бы образом не вводились данные — прямо в таблицу, через экранную форму или на странице доступа к данным, Access не позволит сохранить в записи те данные, которые не удовлетворяют заданным правилам.

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

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

      ·  В Access возможно создание связей между таблицами, что позволяет совместно использовать данные из разных таблиц. При этом для пользователя они будут представляться одной таблицей. Реализовать такую возможность в системах управления электронными таблицами сложно, а иногда просто невозможно.

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

      ·  Excel позволяет работать нескольким пользователям с одним документом, однако эти возможности очень ограничены. Access может поддерживать одновременную работу с базой данных 50 пользователей, при этом все пользователи гарантировано будут работать с актуальными данными.

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

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

     1.3. Создание новой базы данных

      Для создания новой базы данных необходимо воспользоваться областью задач  Создание файла (New file) окна приложения Microsoft Access. Эта область появляется справа при первом запуске Access. Если вы уже использовали Access для работы с каким-либо файлом и после его закрытия не видите в главном окне этой области, вы можете:

      выбрать команду Создать (New) из меню Файл (File);

      нажать  кнопку Создать (New) на панели инструментов.

      Любое из этих действий приведет к открытию справа области задач Создание файла (New file).

      Создать новую базу данных можно тремя  способами:

      путем создания новой пустой базы данных;

      созданием копии существующей базы данных;

      с помощью создания базы данных с использованием шаблона.

 

      Глава 2. Проектирование базы данных строительного предприятия

 

 

     2.1. Создание базы данных

      Для создания новой базы данных выбираем «Новая база данных» и нажимаем «Создать».

      Рис. 1. Окно базы данных 

      2.2. Технология разработки базы данных

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

      Создание  таблицы

      Для создания таблицы выберите в списке вкладок в левой части окна базы данных вкладку Таблица. После этого в окне базы данных будут отображены ярлыки вариантов создания таблицы: в режиме конструктора, с помощью мастера и путем ввода данных. Дважды щелкнув мышью по строке «Создание таблицы в режиме Конструктор», откройте окно таблицы в режиме Конструктор, как показано на рис. 2.

      Рис. 2. Определение параметров поля таблицы  в режиме Конструктор

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

      В столбце Имя поля введите произвольное имя поля, а в следующем столбце укажите тип данных для этого поля. Тип данных можно выбрать из раскрывающегося списка. Как только курсор оказывается в столбце Тип данных, в нижней части окна возникает бланк Свойства поля (характеристики данного поля). Он представляет собой перечень свойств (слева - название свойства, справа - значение этого свойства) с окном подсказки по каждому свойству. Перечень свойств меняется в зависимости от типа данных, который в текущий момент отображается в столбце Тип данных. Щелкнув мышью на поле значения в бланке свойств, вы можете изменить это значение (в рамках допустимого для этого типа данных). Большинство значений принимается системой по умолчанию, многие свойства можно изменить самостоятельно. Некоторые значения можно выбрать из раскрывающегося списка.

      Действуя  аналогично, введите следующие данные о других полях таблицы (табл. 2).

      Завершив  ввод описания полей таблицы, определите первичный ключ.

      Операции  с данными в  таблице

      Ввод  данных. Выбрав в окне таблицу Клиенты, щелкните кнопку «Открыть». По окончании ввода значения поля нажмите клавишу Tab для перехода к следующему полю. В остальные поля этой записи введите остальные данные в первой записи1

      По  окончании ввода значений всех полей  этой записи нажмите клавишу Tab для  перехода к следующей записи. Введите еще четыре записи. Заполненная таблица может выглядеть следующим образом (рис. 3).

      Закончив  создание таблицы, мы открыли ее и  заполнили данными. Если вам не нравится ширина столбца таблицы (например, она  слишком велика или, наоборот, мала и скрывает часть данных), ее можно уменьшить или увеличить - точно так же, как вы изменяли ширину столбца в Excel.

      Перемещение по таблице. Как показано на рис. 3, в строке состояния окна таблицы указываются общее число записей в таблице и номер текущей записи. Текущая запись отмечается стрелкой в левой части окна (в области маркировки записей). Для перемещения по таблице служат кнопки переходов в строке состояния (слева направо: переход к первой записи таблицы, к предыдущей записи, к следующей записи и к последней записи таблицы).

      Чтобы переместить текстовый курсор в  произвольную ячейку таблицы, можно  просто щелкнуть на ячейке мышью. Кроме  того, по таблице можно перемещаться с помощью клавиш Tab, Shift+Tab, стрелок курсора.

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

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

      Типы  связей между таблицами. При установлении связи между таблицами возможны три типа связей.

            1.    Отношение «один-ко-многим». Это наиболее часто используемый тип связи между таблицами. В отношении «один-ко-многим»каждой записи в таблице А могут соответствовать несколько записей в таблице В, но запись в таблице В не может иметь более одной соответствующей ей записи в таблице А.

            2.    Отношение «многие-ко-многим». При этом типе связи одной записи в таблице А могут соответствовать несколько записей в таблице В, а одной записи в таблице В - несколько записей в таблице А.Этот тип связи возможен только с помощью третьей (связующей) таблицы, первичный ключ которой состоит из двух полей, которые являются внешними ключами таблиц А и В. Отношение «многие-ко-многим» по сути представляет собой два отношения «один-ко-многим» с третьей таблицей. Например, отношение «многие-ко-многим» между таблицами «Заказы» и «Товары» определяется путем создания двух отношений «один-ко-многим» с таблицей «Заказано».

            3.    Отношение «один-к-одному». При отношении «один-к-одному» запись в таблице А может иметь не более одной связанной записи в таблице В и наоборот. Отношения этого типа используются не очень часто, поскольку большая часть сведений, связанных таким образом, может быть помещена в одну таблицу. Отношение «один-к-одному» может использоваться для разделения очень широких таблиц, для отделения части таблицы по соображениям защиты, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице. Например, можно создать таблицу для отслеживания участия сотрудников в благотворительных спортивных мероприятиях.

      Тип отношения в создаваемой Microsoft Access связи между таблицами зависит  от способа определения связываемых  полей. Отношение «один-ко-многим» создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс. Отношение «один-к-одному» создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы. Отношение «многие-ко-многим» фактически является двумя отношениями «один-ко-многим» с третьей таблицей, первичный ключ которой состоит из полей — внешних ключей двух других таблиц.

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

      Целостность данных означает:

            ·         в связанное поле подчиненной таблицы можно вводить только те значения, которые имеются в связанном поле главной таблицы;

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

      Установить  целостность данных можно, если выполнены  следующие условия.

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

            2.    Связанные поля не обязательно должны иметь одинаковые имена, но они должны иметь одинаковые типы данных (из этого правила существуют два исключения) и иметь содержимое одного типа. Кроме того, связываемые поля числового типа должны иметь одинаковые значения свойства Размер поля (FieldSize).

            Исключения: 1) поле счетчика можно связывать с числовым полем, свойство Размер поля (FieldSize) которого имеет значение Длинное целое; 2) поле счетчика можно связать с числовым, если для обоих полей в свойстве Размер поля (FieldSize) задано значение Код репликации.

            3.    Обе таблицы принадлежат одной базе данных Microsoft Access. Если таблицы являются связанными, то они должны быть таблицами Microsoft Access. Для установки целостности данных база данных, в которой находятся таблицы, должна быть открыта. Для связанных таблиц из баз данных других форматов установить целостность данных невозможно.

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

      Установив целостность данных, необходимо следовать  следующим правилам:

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

            2.    Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице. Например, невозможно удалить запись из таблицы «Сотрудники», если в таблице «Заказы» имеются заказы, относящиеся к данному сотруднику.

            3.    Невозможно изменить значение первичного ключа в главной таблице, если существуют записи, связанные с данной записью. Например, невозможно изменить код сотрудника в таблице «Сотрудники», если в таблице «Заказы» имеются заказы, относящиеся к этому сотруднику.

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

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

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

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

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

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

      Например, при удалении из таблицы «Клиенты» записи конкретного клиента будут автоматически удалены все связанные записи в таблице «Заказы» (а также записи в таблице «Заказано», связанные с записями в таблице «Заказы»).

      Если  записи удаляются из формы или  таблицы при установленном флажке Каскадное удаление связанных записей, Microsoft Access выводит предупреждение о возможности удаления связанных записей.

      Если  же записи удаляются с помощью  запроса на удаление, то Microsoft Access удаляет  записи автоматически без вывода предупреждения. 

      Определение связей между таблицами

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

      

      Печать  окна схемы данных. Для создания отчета, отображающего связи между таблицами базы данных в том виде, как они показаны в окне схемы данных, Microsoft Access использует мастер печати схемы данных. Для создания такого отчета при открытом окне Схема данных выберите в меню Файл команду Печать схемы данных. После этого раскроется окно отчета о связях между таблицами в текущей базе данных. Закройте окно отчета с сохранением, щелкнув кнопку «Да» в ответ на запрос Сохранить изменения макета отчета?, задав имя отчета, щелкните кнопку «ОК».

      Использование фильтра для отбора данных в таблице

      Работая с таблицей в оперативном режиме, можно установить фильтр, т.е. задать логическое выражение, которое позволит выдавать на экран только записи, для которых это выражение принимает значение True («Истина»).

      Рис. 6. Вид записей таблицы Учащиеся с фильтром Имя=«Павел»

      Чтобы снять фильтр и увидеть все  записи в таблице, щелкните кнопку «Удалить фильтр» в панели инструментов Стандартная.

Проектирование базы данных строительного предприятия