Контрольная работа : База данных (работа 2) 


Полнотекстовый поиск по базе:

Главная >> Контрольная работа >> Информатика, программирование


База данных (работа 2)




1. Для заданной предметной области спроектировать базу данных с использованием правил нормализации. Представить схему данных (ER-диаграмму).

2. Написать следующие запросы

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

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

  • Получить список преподавателей и недельной зарплаты каждого.

  • Получить преподавателя с максимальной недельной зарплатой.

  • Поучить учебный план заданной специальности: дисциплина, вид дисциплины, часов в неделю.

3. Первое правило нормализации. Определение. Пример.

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

Базу данных спроектировать и заполнить в СУБД MS Access. После заполнения каждая таблица должна содержать от-5 до-10 строчек. В отчет небходимо включить как тексты запросов, так и результаты их выполнения.

1. По заданию, в среде MS Access спроектирована реляционная база данных, ER-диаграмма которой приведена на рис. 1.

Рис. 1. ER-диаграмма базы данных

В таблице DISCIPL_TYPE указывается вид дисциплины. Таблица DISCIPL содержит наименование дисциплины, и, кроме того, связана с таблицей DISCIPL_TYPE. Таким образом, с каждой дисциплиной ассоциируется ее вид. Вид дисциплины был выделен в отдельную таблицу для того, чтобы при заполнении таблицы DISCIPL не было необходимости писать вручную вид дисциплины, ведь при этом легко ошибиться (много букв), а такая ошибка приведет к невозможности корректного выполнения некоторых запросов, например запроса №1 из задания. Таблица PREPOD служит для связи таблицы DOLJNOST, хранящей информацию о названии должности и соответствующей зарплате, с конкретным преподавателем. Таблица PLAN служит для связи между собой таблиц SPEC (хранит названия специальностей), DISCIPL, PREPOD. Кроме того, в таблице PLAN хранится число часов, которые отведены в неделю для занятий данной специальности по данной дисциплине с привлечением данного преподавателя. Такая структура учебного плана объясняется тем, что любой преподаватель может преподавать разные предметы на разных специальностях, либо одни и те же предметы на разных специальностях, либо разные предметы на одной специальности, и так далее в любой комбинации (что и наблюдается на практике). При этом их часовая ставка, согласно заданию, зависит от должности, но не от специальности или предмета. Количество часов, выданных данным преподавателем студентам данной специальности по данному предмету зависит только от учебного плана.

Таким образом, имеем нормализованную реляционную базу данных, в которой очень легко производить изменения. Так, например, если некий преподаватель уволился и вместо него пришел другой преподаватель и взял на себя все те же самые его часы, то достаточно (если нет необходимости в сохранении записей уволенного преподавателя) изменить имя ушедшего преподавателя на имя нового. Изменение названия специальности (например, если «Госуправление» переименуют в «Муниципальное управление») не отразится на связях в таблице, изменится лишь название специальности в таблице SPEC. Изменение наименования дисциплины, либо изменение ее вида опять же не приводит к существенным изменениям. Централизованное повышение почасовой ставки сразу всем сотрудникам, занимающим одну должность, производится через таблицу DOLJNOST. Используя таблицу PLAN мы можем очень быстро (и не затрагивая содержимого остальных таблиц) изменить учебный план, добавить новые часы, удалить исключенные из плана занятия, сменить преподавателя, изменить число часов.

Ниже представлено содержимое таблиц:

DISCIPL_TYPE

DISCIPL

DOLJNOST

PREPOD

SPEC

PLAN

2. Согласно заданию были разработаны следующие запросы на языке SQL:

А) Получить список всех общеобразовательных дисциплин в учебном плане заданной специальности.

SELECT [discipl].[nazvanie]

FROM (discipl INNER JOIN discipl_type ON [discipl].[id_discipl_type]=[discipl_type].[Код]) INNER JOIN (spec INNER JOIN plan ON [spec].[Код]=[plan].[id_spec]) ON [discipl].[Код]=[plan].[id_discipl]

WHERE [spec].[nazvanie]=[?] And [discipl_type].[nazvanie]='Общеобразовательные';

При исполнении данного запроса в среде MS Access будет запрошено название специальности (параметр ? ), в результате будет получен список общеобразовательных предметов в учебном плане данной специальности. Результат запроса для специальности «Автоматизация техпроцессов и производств» представлен ниже:

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

SELECT spec.nazvanie

FROM discipl INNER JOIN (spec INNER JOIN plan ON spec.Код = plan.id_spec) ON discipl.Код = plan.id_discipl

WHERE (discipl.nazvanie)=[?];

При исполнении данного запроса в среде MS Access будет запрошено название предмета (параметр ? ), в результате будет получен список специальностей, для которых преподается заданный предмет. Результат запроса для предмета «Философия» представлен ниже:

В) Получить список преподавателей и недельной зарплаты каждого.

SELECT prepod.name, sum(plan.number_of_hours_at_week*doljnost.oplata_za_chas) AS oplata_za_week

FROM doljnost INNER JOIN (prepod INNER JOIN plan ON prepod.Код = plan.id_prepod) ON doljnost.Код = prepod.id_doljnost

GROUP BY prepod.name;

Результат запроса представлен ниже:

Г) Получить преподавателя с максимальной недельной зарплатой.

SELECT TOP 1 [prepod].[name], sum([plan].[number_of_hours_at_week]*[doljnost].[oplata_za_chas]) AS oplata_za_week

FROM doljnost INNER JOIN (prepod INNER JOIN plan ON [prepod].[Код]=[plan].[id_prepod]) ON [doljnost].[Код]=[prepod].[id_doljnost]

GROUP BY [prepod].[name]

ORDER BY sum([plan].[number_of_hours_at_week]*[doljnost].[oplata_za_chas]) DESC;

Результат запроса представлен ниже:

Д) Получить учебный план заданной специальности: дисциплина, вид дисциплины, часов в неделю.

SELECT [discipl].[nazvanie], [discipl_type].[nazvanie], [plan].[number_of_hours_at_week]

FROM spec INNER JOIN ((discipl_type INNER JOIN discipl ON [discipl_type].[Код]=[discipl].[id_discipl_type]) INNER JOIN plan ON [discipl].[Код]=[plan].[id_discipl]) ON [spec].[Код]=[plan].[id_spec]

WHERE [spec].[nazvanie]=[?];

При исполнении данного запроса в среде MS Access будет запрошено название специальности (параметр ?). Результат запроса для специальности «Автоматизация техпроцессов и производств» представлен ниже:

3. Первое правило нормализации.

Таблица находится в первой нормальной форме, если каждый её атрибут атомарен. Под выражением «атрибут атомарен» понимается, что атрибут может содержать только одно значение. Таким образом, не соответствуют 1НФ таблицы, в полях которых могут храниться списки значений. Для приведения таблицы к 1НФ обычно требуется разбить таблицу на несколько отдельных таблиц.

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

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

Пример приведения таблицы к первой нормальной форме

Исходная, ненормализованная, таблица:

Сотрудник

Номер телефона

Иванов И. И.

31-56-82
39-57-34

Петров П. П.

22-62-34

Таблица, приведённая к 1НФ:

Сотрудник

Номер телефона

Иванов И. И.

31-56-82

Иванов И. И.

39-57-34

Петров П. П.

22-62-34

Похожие работы:

  • Базы данных и файловые системы

    Доклад >> Информатика, программирование
    ... . Понятие согласованности данных является ключевым понятием баз данных. Фактически, если ... после перезапуска системы ее база данных будет находиться в рассогласованном ... например, многотерминальную) работу с базой данных сотрудников. Если опираться только на ...
  • Базы данных, банки данных: общее понятие

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

    Реферат >> Информатика, программирование
    ... в базе данных Имя Сотрудника Имя Сотрудника в базе данных Отчество Сотрудника Отчество Сотрудника в базе данных 1.5 ... в базе данных 1.2 Фамилия Фамилия Клиента в базе данных 1.3 Имя Имя Клиента в базе данных 1.4 Отчество Отчество Клиента в базе данных 1.5 ...
  • Базы данных и управление ими

    Реферат >> Информатика, программирование
    ... . Структуры данных в моделях К типовым структурам данных относятся элемент данных, агрегат данных, запись, база данных и т.д. Элемент данных – это ...
  • Базы данных

    Контрольная работа >> Информатика, программирование
    ... заданий: Создание базы данных; Занесение, корректировка и изъятие данных; Упорядочение данных; Выбор совокупности данных, что отвечают ... критериям; Оформление выходных данных и т.д. Совокупность СУБД и базы данных – это банк данных. К достоинствам подхода, ...
  • Базы данных

    Курсовая работа >> Информатика, программирование
    ... , эффективность структур данных в реляционной базе данных. Реляционная база данных считается эффективной, если ... база данных “Клиенты”, содержащая необходимые данные об обслуживании клиентов. База данных разработана в программной системе разработки баз данных ...
  • Базы данных

    Курсовая работа >> Информатика, программирование
    ... заданной базы данных. Рисунок 2.1 – Концептуальная модель 3. Построение реляционной модели В реляционной базе данных все данные ... 2004г. 3 Ролланд Ф.Д. Основные концепции баз данных. 2002г. 4 Карпова Т. Базы данных: модели, разработка, реализация, 2001.
  • База данных

    Реферат >> Экономико-математическое моделирование
    ... Заключение. Литература. 1. Введение. База данных – это организованная структура, ... понятием базы данных тесно связано понятие системы управления базой данных. Это ... запросы к базам данных обрабатывают системы управления базами данных (СУБД), для ...
  • База данных

    Реферат >> Информатика, программирование
    ... данных, обработка данных и управление данными. • Определение данных. Можно определить, какие данные будут храниться в базе данных, тип данных ... Список; Таблица – представление объектов базы данных в окне базы данных в соответствующем виде. Панель "Объекты" ...