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

Автор работы: Пользователь скрыл имя, 12 Декабря 2011 в 10:13, курсовая работа

Краткое описание

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

Содержание работы

Введение…………………………………………………………………...…3
Глава 1. Основные понятия БД и СУБД ………………………..……….....4
Данные и ЭВМ……………………………………………...…....……4
Архитектура СУБД………………………………………...………….6
Модели данных…………………………………………………...…...9
Глава 2. Инфологическая модель данных "Сущность-связь"………..….11
Основные понятия………………………………………………...…..11
Характеристика связей и язык моделирования………………….….13
Классификация сущностей…………………………………………...15
Первичные и внешние ключи………………………………………..17
Ограничения целостности………………………………………...….22
Глава 3. Реляционный подход………………………………………….…24
Реляционная структура данных……………………………...………24
Реляционная база данных……………………………………...……..27
Манипулирование реляционными данными…………………….….29
Глава 4. Проектирование и реализация базы данных……………………30
4.1 Проектирование концептуальной модели базы данных……………...30
4.2 Проектирование логической модели базы данных…………………...32
4.3 Реализация базы данных в СУБД MS Access…………………………..36
Заключение………………………………………………………………….44
Список используемой литературы………………………………………...45

Содержимое работы - 1 файл

курсач.doc

— 562.00 Кб (Скачать файл)

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

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

4.3 Реализация базы данных в СУБД MS Access

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

 

      Рисунок 2 – Схема данных базы данных «Отдел кадров фирмы»

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

        Создание таблицы в режиме конструктора.

       Для перехода в окно базы данных нажмите клавишу F11. Выберите Таблицы в списке Объекты и нажмите кнопку Создать на панели инструментов окна базы данных. Дважды щелкните строку Режим конструктора. Определите все нужные поля в таблице. Откройте таблицу в режиме конструктора.  

 

      Рисунок 3 – Создание таблицы в режиме конструктора  

          Чтобы вставить в таблицу поле, щелкните строку, над которой его нужно поместить, и нажмите кнопку Добавить строки на панели инструментов.

          Чтобы добавить поле в конец таблицы, щелкните первую пустую строку. Щелкните ячейку в столбце Имя поля и введите уникальное имя поля. В столбце Тип данных можно оставить настройку по умолчанию (Текстовый) или выбрать из раскрывающегося списка ячейки столбца Тип данных другой тип данных.

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

        В процессе проектирования были созданы следующие таблицы данных.(рисунок 4)

 

 

 

 

      Рисунок 4 – Таблицы базы данных «Отдел кадров фирмы» 

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

        Запрос, используемый для  удаления из базы данных информации об уволенном сотруднике (удаление):

DELETE сотрудники.[ФИО  Сотрудника]

FROM сотрудники

WHERE сотрудники.[ФИО  Сотрудника]=[Кого уволить?];

        Запрос, используемый для перевода  сотрудника из отдела в отдел  (обновление):

UPDATE отдел INNER JOIN сотрудники ON отдел.[Код Отдела]=сотрудники.[Код  Отдела] SET сотрудники.[Код Отдела] = [Введите новый отдел]

WHERE сотрудники.[ФИО  Сотрудника]=[Введите ФИО];

      Запрос на получение сведений о сотруднике (общие данные о сотруднике):

SELECT сотрудники.[Табельный  Номер], сотрудники.[ФИО Сотрудника], сотрудники.[Домашний Адрес], сотрудники.[Номер Телефона], сотрудники.[Дата Приёма], сотрудники.Должность, оклад.Оклад, отдел.[Название Отдела], отдел.[Начальник Отдела], отдел.Этаж, отдел.[Номер Кабинета]

FROM отдел  INNER JOIN (оклад INNER JOIN сотрудники ON оклад.Должность=сотрудники.Должность) ON отдел.[Код Отдела]=сотрудники.[Код Отдела]

WHERE сотрудники.[ФИО  Сотрудника]=[Введите ФИО сотрудника];

          Запрос, используемый для  получения сведений о номере телефона сотрудника (номер телефона):

SELECT сотрудники.[ФИО  Сотрудника], сотрудники.[Номер Телефона]

FROM сотрудники

WHERE сотрудники.[ФИО  Сотрудника]=[Введите ФИО сотрудника:];

          Запрос на получение сведений о кол-ве сотрудников в каждом отделе (количество сотрудников отделе):

SELECT отдел.[Название  Отдела], Count(сотрудники.[ФИО Сотрудника]) AS [Кол-во Сотрудников]

FROM отдел INNER JOIN сотрудники ON отдел.[Код Отдела]=сотрудники.[Код  Отдела]

GROUP BY отдел.[Название  Отдела];

         Запрос на получение сведений о фонде заработной платы (сумма):

SELECT отдел.[Название Отдела], Sum(оклад.Оклад) AS [фонд заработной платы]

FROM отдел INNER JOIN (оклад INNER JOIN сотрудники ON оклад.Должность=сотрудники.Должность) ON отдел.[Код Отдела]=сотрудники.[Код  Отдела]

GROUP BY отдел.[Название  Отдела];

            Запрос, используемый для  упорядочивания сотрудников по ФИО (упорядочение по ФИО сотрудников):

SELECT сотрудники.*

FROM сотрудники

ORDER BY сотрудники.[ФИО  Сотрудника];

          Запрос, используемый для  упорядочивания сотрудников по отделам (упорядочивание по отделам):

SELECT сотрудники.*, отдел.[Название Отдела]

FROM отдел INNER JOIN сотрудники ON отдел.[Код Отдела]=сотрудники.[Код  Отдела]

ORDER BY отдел.[Название  Отдела] DESC; 

             Запрос на поиск сотрудников,  работающих на одном этаже  (этаж):

SELECT сотрудники.[ФИО Сотрудника]

FROM отдел INNER JOIN сотрудники ON отдел.[Код Отдела]=сотрудники.[Код  Отдела]

WHERE отдел.Этаж Like [введите этаж];

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

           Для просмотра результатов созданных  запросов созданы формы (кроме запроса на удаление и на обновление).

  Форму можно создать тремя различными способами:

  1. при помощи автоформы на основе таблицы или запроса. С помощью автоформ можно создавать формы, в которых выводятся все поля и записи базовой таблицы или запроса. Если выбранный источник записей имеет связанные таблицы или запросы, то в форме также будут присутствовать все поля и записи этих источников записей;
  2. при помощи мастера на основе одной или нескольких таблиц или запросов. Мастер задает подробные вопросы об источниках записей, полях, макете, требуемых форматах и создает форму на основании полученных ответов;
  3. вручную в режиме конструктора. Сначала создается базовая форма, которая затем изменяется в соответствии с требованиями в режиме конструктора. В окне базы данных в списке Объекты выберите Формы. На панели инструментов окна базы данных нажмите кнопку Создать. В диалоговом окне Новая форма выберите строку Конструктор. Выберите имя таблицы или другого источника записей, содержащего данные, на которых нужно основать форму. Если форма не будет содержать данные (например, если нужно создать кнопочную форму для открытия других форм или отчетов или если нужно создать пользовательское диалоговое окно), не выбирайте ничего из этого списка.

  
 
 
 

Рисунок 5 – Главная форма базы данных «Отдел кадров фирмы» 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

    Заключение

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

    Основным  достоинством реляционных баз данных совместимость с самым популярным языком запросов  SQL. С помощью единственного запроса на  этом языке можно соединить несколько таблиц во временную таблицу и вырезать из нее требуемые строки и столбцы (селекция и проекция).  Так как табличная структура реляционной базы данных интуитивно понятна пользователям, то и язык SQL является простым и легким для изучения. Реляционная модель имеет солидный теоретический фундамент, на котором были основаны эволюция и реализация реляционных баз данных. На волне популярности, вызванной успехом реляционной модели, SQL стал основным языком для реляционных баз данных.

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

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

     Литература

  1. Дейт К. Руководство по реляционной СУБД DB2. - М.: Финансы и статистика, 1988. - 320 с.
  2. Кириллов В.В. Основы проектирования реляционных баз данных .Учебное пособие. - СПб.: ИТМО, 1994. - 90 с.
  3. Мейер М. Теория реляционных баз данных. -М.: Мир, 1987. - 608 с.
  4. Ульман Дж. Базы данных на Паскале. -М.: Машиностроение, 1990. - 386 с.
  5. http://www.citforum.ru/database/sql_kg/index.shtml “ Основы проектирования реляционных баз данных ”
  6. Литвинская О.С. Проектирование базы данных в среде Microsoft Access . – Пенза: Издательство Пенз. гос. технол. акад., 2004.
  7. Диго С.М. Базы данных: проектирование и использование. – М.: Финансы и статистика, 2005.
  8. Робинсон С. MicrosoftAccess 2000 учебный курс. - СПб.: Питер, 2000. 

Информация о работе Проектирование и реализация базы данных