Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_raboty_PPP_60_sht.doc
Скачиваний:
9
Добавлен:
01.05.2025
Размер:
21.8 Mб
Скачать
  1. Содержание отчета:

    1. Наименование и цель работы;

    2. Ответы на контрольные вопросы.

5 Контрольные вопросы:

    1. Что такое табулирование функции?

    2. Опишите алгоритм построения диаграммы.

    3. Какие диаграммы относятся к стандартному виду?

    4. Как изменить область данных в диаграмме?

    5. Опишите алгоритм изменения фона диаграммы, заголовка, границ?

    6. Поясните понятие абсолютной и относительной ссылки?

    7. Опишите алгоритм функции автозаполнения.

    8. Сформулируйте алгоритм построения поверхности.

    9. Как настроить объемный вид диаграммы?

    10. С помощью каких средств можно изменить параметры диаграммы?

Лабораторная работа № 31-32

Наименование: Проектирование БД. Проектирование связей между таблицами базы данных.

1. Цель работы:

1.1. Изучить этапы проектирования модели баз данных. Спроектировать базу данных по исходным данным.

2. Подготовка к работе:

3.1. Изучить предложенную литературу.

3.2. Подготовить бланк отчёта.

3. Литература:

2.1. Фуфаев Э.В., Фуфаев Д.Э. Пакеты прикладных программ: учебник для студ. сред. проф. образования / под ред. Э.В. Фуфаев, Д.Э. Фуфаев. – Москва: Издательский центр «Академия», 2008. – 256 с.

2.2. Кунтаева Г.Х., Строева Л.Р. Конспект лекций по МДК 03.03: «Пакеты прикладных программ».

4. Перечень необходимого оборудования: 4.1. Персональный IBM PC.

5. Задание на работу:

5.1. Изучить теоретические вопросы по проектированию базы данных.

5.2. Изучить типы моделей базы данных.

5.3. Изучить виды взаимосвязей в БД.

5.4. Изучить принципы нормализации таблиц баз данных.

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

6. Порядок проведения лабораторной работы:

6.1. Получить допуск к работе.

6.2. Выполнить задания в соответствие с приложением.

6.3. Ответить на контрольные вопросы.

6.4. Оформление отчета.

7. Содержание отчета:

7.1. Наименование и цель работы.

7.2. Ответы на контрольные вопросы.

7.3. Выводы о проделанной работе.

8. Контрольные вопросы:

8.1. Назовите виды моделей баз данных. Отличия, достоинства, недостатки.

8.2. Назовите виды взаимосвязей между объектами БД. Отличия, достоинства, недостатки.

8.3. Что такое нормализация таблиц, для какой цели проводят процедуру нормализации?

8.4. Перечислите этапы проектирования

Приложение

Организация данных

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

Это означает, что данные в строках каждого из столбцов составного ключа могут повторяться, но комбинация данных каждой строки этих столбцов является уникальной. Например, в таблице Студенты есть столбцы Фамилии и Год рождения. В каждом из столбцов есть некоторые повторяющиеся данные, т.е. одинаковые фамилии и одинаковые года рождения. Но если студенты, имеющие одинаковые фамилии, имеют разные года рождения, то эти столбцы можно использовать в качестве составного к ключа. Как правило, ключ является уникальным, т.е. каждый кортеж определяется значением ключа однозначно, но иногда используют и неуникальные ключи (ключи с повторениями). В локализованной (русифицированной) версии Access вводится термин ключевое поле, которое можно трактовать как первичный ключ.

В Access можно выделить зри типа ключевых полей: простой ключ, составной ключ и внешний ключ.

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

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

В Access можно задать три вида связей между таблицами; Один-ко-многим Многие-ко-многим и Один-к-одному.

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

При связи Многие-ко-многим одной записи в таблице А может соответствовать несколько записей в таблице В, а одной записи в таблице В - несколько записей в таблице А. Такая схема реализуется только с помощью третьей (связующей) таблицы, ключ которой состоит по крайней мере из двух по 1СЙ, одно из которых является общим с таблицей А, а другое общим – общим с таблицей В.

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

Тип создаваемой связи зависит от полей, для которых определяется связь:

  • связь Один-ко-многим создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс, т.е. значения в нем не повторяются;

  • связь Один-к-одному создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы;

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

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

Целостность данных означает систему правил, используемых в СУБД Access для поддержания связей между записями и связанных таблицах (таблиц, объединенных с помощью связи), а также обеспечивает защиту от случайного удаления или изменения связанных данных. Контролировать целостность данных можно, если выполнены следующие условия:

- связанное поле (поле, посредством которого осуществляется связь) одной таблицы является ключевым полем или имеет уникальный индекс;

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

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

1. Перед разработкой информационно-логической модели реляционной базы данных рассмотрим из каких информационных объектов должна состоять база данных. Можно выделить три объекта, которые не будут обладать избыточностью,- Студенты, Дисциплины и Преподаватели. Представим состав реквизитов этих объектов в виде «название объекта (перечень реквизитов)": Студенты (код студента, фамилия, имя, отчество, номер группы, дата рождения, стипендия, оценки). Дисциплины (код дисциплины, название дисциплины), Преподаватели (код преподавателя, фамилия,имя, отчество, дата рождения, телефон, заработная плата).

Рассмотрим связь между объектами Студенты и Дисциплины. Студент изучает несколько дисциплин, что соответствует многозначной связи и отражено ни pис.1 двойной стрелкой. Понятно, что каждая дисциплина изучается множеством студентов. Это тоже многозначная связь, обозначаемая двойной стрелкой (связь "один обозначена одинарной стрелкой). Таким образом, связь между объектами Студенты и Дисциплины Многие- ко- многим (M:N)

Рис.1. Типы связей между Объектами Студенты, Дисциплины и Преподаватели

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

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

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

Рис. 2. Информационно-логическая модель реляционной базы данных В реляционной базе данных в качестве объектов рассматриваются отношения, которые можно представить в виде таблиц. Таблицы между собой связываются посредством общих полей, т.е. одинаковых по форматам и. как правило, по названию, имеющихся в обеих таблицах. Рассмотрим, какие общие поля надо ввести в таблицы для обеспечения связности данных. В таблицах Студенты и Оценки таким полем будет "Код студента", в таблицах Дисциплины и Оценки - "Код дисциплины", в таблицах Преподаватели и Дисциплины - "Код дисциплины". Выбор цифровых кодов вместо фамилий или названий дисциплин обусловлен меньшим объемом информации в таких полях: например, число "2". по количеству символов значительно меньше слова "математика". В соответствии с этим логическая модель базы данных представлена на рис. 3. где жирными буквами выделены ключевые поля.

Рис.3 Логическая модель базы данных

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

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

Основные правила нормализации:

  1. Нормализация требует, чтобы на пересечении поля и записи находилось единственное значение, которое было бы «атомарным».

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

  3. Запрещена зависимость одного не ключевого поля от другого не ключевого поля; они могут зависеть только от первичного ключа.

  4. Запрещены независимые отношения типа «один – ко – многим» между ключевыми и не ключевыми полями.

  5. Необходимо таблицы разбивать на минимально возможные части для устранения в них избыточности данных.

Выполнение работы:

Создайте базу данных «Заказы товаров» в своей папке.

Создайте таблицу ЗАКАЗЧИКИ в режиме КОНСТРУКТОР и задайте следующие поля:

Имя поля

Тип данных

Свойства

Описание

Код_заказчика

числовой

Размер – Целое, Подпись- Код заказчика

Ключевое поле

ФИО

текстовый

Размер –15, Подпись- фамилия и. о.

Введите фамилию и инициалы

Дата_рождения

Дата/время

Маска ввода - краткий формат даты Подпись- Дата рождения Условие на значение -<#1/01/90# Сообщение об ошибке - Молодой заказчик!

Адрес

текстовый

Размер-10, Подпись - город По умолчанию -Суровикино

Введите город

Телефон

текстовый

Размер-10, Маска ввода: ##-##-##

Специальное_ образование

логический

Формат -да/нет Подпись – Специальное образование

Задайте поле Код_заказчика - ключевым.

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

Код заказчика

ФИО

Дата рождения

адрес

Телефон

Специальное образование

202

Иванов В.А.

26.09.76

Волгоград

75-26-89

да

204

Сидоров П.Р.

20.05.77

Москва

76-02-48

нет

306

Захаров К.Н,

02.03.78

Киев

23-78-50

нет

324

Морозов В.С.

06.06.56

Волгоград

36-85-80

да

476

Петров С.К.

21.04.69

Волжский

68-23-40

нет

598

Иванов М.С.

24.03.70

Воронеж

71-22-32

да

786

Петров К.Г.

28.06.79

Волгоград

45-56-78

нет

101

Морозов Н.А.

26.03.79

Москва

65-78-69

да

111

Михайлов Н.П.

12.11.78

Волгоград

56-78-23

да

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

Имя поля

Тип данных

Свойства

Код_товара

числовой

Размер –Целое

Товар

текстовый

Размер -25 Подпись- наименование

Цена

Денежный

Формат - Денежный, подпись- цена (руб) Условие на значение >0 Сообщение об ошибке Цена не может быть отрицательной!

Вес

числовой

Размер - целое, Подпись- вес(г) Условие на значение >0 Сообщение об ошибке Вес не может быть отрицательным!

Поле Код_товара задайте ключевым.

  1. В «Режиме таблицы» создайте следующую таблицу:

товар

наименование

Цена (руб.)

Вес (г)

32

Зефир в шоколаде

52,4

1000

56

Торт «Сказка»

36,6

600

62

Чай «Беседа»

13,4

250

57

Торт «Наполеон»

62,7

500

72

Пряники шоколадные

13,4

250

81

Печенье «Лимонное»

23,7

1000

21

Вафли «Птичье молоко»

32,6

1000

92

Пряники ванильные

28,5

1000

82

Печенье «Октябрьское»

22,3

1000

83

Печенье «Крекер»

16,7

500

13

Конфеты Птичье молоко»

41,3

500

14

Конфеты «Ночка»

51,3

500

84

Печенье «Ночка»

32,7

1000

68

Чай «Принцесса Гита»

15,6

250

66

Чай «Бодрость»

13,6

250

58

Торт «Птичье молоко»

56,7

800

69

Чай «Принцесса Нури»

14,7

250

Создайте таблицу ЗАКАЗЫ в режиме Конструктор.

Имя поля

Тип данных

Свойства

Код_заказчика

Числовой

Размер- Целое

Код_товара

Числовой

Размер - Длинное Целое

Дата_заказа

Дата/время

Формат - Длинный формат даты Маска ввода- Краткий формат даты Подпись- Дата заказа

Количество

Числовой

Размер - Целое

Выполнение

Логический

Формат - Да/нет

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

  1. Введите данные таблицы:

    Код заказчика

    Код товара

    Дата заказа

    Кол-во

    Выполнение

    306

    32

    21.10.09

    400

    Да

    204

    81

    16.10.09

    1000

    Нет

    476

    72

    11.10.09

    500

    Нет

    111

    82

    21.10.09

    2000

    Да

    306

    83

    26.10.09

    300

    Нет

    101

    81

    16.10.09

    200

    Да

    111

    68

    12.10.09

    350

    Нет

    876

    58

    21.10.09

    700

    Нет

    202

    69

    16.10.09

    500

    Да

    876

    92

    11.10.09

    200

    Да

    306

    68

    22.10.09

    2300

    Да

  2. Введите в базу свои данные и выполните 3 заказа в таблице Заказы, для этого откройте таблицу Заказы и Товары и упорядочите с помощью команды меню Окно сверху вниз и введите ваш код_заказчика и код_товаров выбранных вами.

  3. Сделать вывод: к какой форме нормальности принадлежит ваша база данных, почему?

Создание связей

  1. Откройте окно «Схема данных» и добавьте в окно все три таблицы.

  2. Попробуйте связать таблицы Заказчики и Заказы по полям Код_заказчика с обеспечением целостности данных.

  3. Access не разрешил Вам связать эти таблицы, т.к. в таблице Заказы совершил заказ Заказчик с кодом 876, а такого в таблице Заказчики нет! Выберите отмена в окне Схема данных и сверните это окно.

  4. Проверьте таблицы Заказчики и Заказы на совпадение значений, для этого откройте обе таблицы, окно Базы данных сверните и упорядочите окна сверху вниз, используя меню Окно. Сохраните изменения и закройте таблицы.

  5. Разверните окно схема данных и свяжите таблицы ещё раз с обеспечением целостности данных и каскадного обновления и удаления.

  6. Попробуйте связать таблицы Товары и Заказы по полям Код_товара с обеспечением целостности данных.

  7. Access не разрешил Вам связать эти таблицы, т.к. в таблице Товары поле Код_товара размера целое, а в таблице Заказы длинное целое! Выберите отмена в окне Схема данных и сверните это окно.

  8. Откройте таблицу Заказы в режиме Конструктор и измените размер для поля Код_товара на целое. Закройте таблицу и сохраните

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

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

  11. В таблице Заказчики измените, код Михайлова Н.П. 111 на 112 и перейдите на другую запись, посмотрите результат в таблице Заказы.

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

  13. Удалите запись с товара с кодом 68 -Чай "Принцесса Гита", для этого выделите строку и в контекстном меню выберите Удалить запись, подтвердите удаление, посмотрите результат в таблице Заказы.

  14. Создайте индексы для полей ФИО, с совпадениями, для этого откройте таблицу Заказчики в режиме Конструктор и выберите поле ФИО, в свойстве Индексированное поле выберите Да (совпадения допускаются). Аналогично для поля дата_рождения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]