Краткие теоретические сведения. Слово «реляционная» происходит от английского слово relation – отношение, отношение – математическое понятие



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

 

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

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

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

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

Например, в таблице Студенты есть столбцы Фамилия и Год рождения.

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

Выделяются три типа ключевых полей:

Ÿ Простой ключ;

Ÿ Составной ключ;

Ÿ Внешний ключ.

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

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

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

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

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

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

 


Виды связей между таблицами

В ACCESS можно задать три вида связей между таблицами:

1. Один – ко – многим.

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

2. Многие – ко – многим.

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

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

3. Один – к – одному.

Запись в таблице А может иметь не более одной связанной записи в таблице В и наоборот. Этот тип связи используется не очень часто, так как такие данные могут быть помещены в одну таблицу.

Связь один – к – одному создается в том случае, когда оба связываемых поля являются ключевыми или имеют одинаковые индексы.

 

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

 

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

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

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

Ÿ Обе таблицы принадлежат одной базе данных. Для установки целостности данных база данных, в которой находятся таблицы, должна быть открыта.

 

Удаление и восстановление связей между таблицами

1. Щелкнуть на кнопке СХЕМА ДАННЫХ панели инструментов.

2. Щелкнуть на линии связи между таблицами. Толщина линии на экране увеличится.

3. Нажать клавишу <DEL>.

4. Подтвердить свое решение, щелкнув на «ДА».

5. Для восстановления связей выполнить все действия, необходимые для создания связей между таблицами.

Удаление макета

 

1. Щелкнуть на кнопке СХЕМА ДАННЫХ панели инструментов. Откроется окно СХЕМА ДАННЫХ с макетом, который был в нем на момент сохранения.

2. Щелкнуть на кнопке ОЧИСТИТЬ МАКЕТ панели инструментов. В окне сообщения щелкнуть на «ДА»или выполнить команду:

ПРАВКА → ОЧИСТИТЬ МАКЕТ.


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

1. Виды запросов, предусмотренных в ACCESS. Самое важное достоинство реляционных баз данных.

2. Как реализуется схема МНОГИЕ-КО-МНОГИМ в АCCESS?

3. Для чего необходимо обеспечивать целостность данных?

4. Что дает установка флажка каскадное обновление связанных полей и каскадное удаление связанных записей?

 


 

Задание №1

 

к лабораторной работе №3

 

Создание информационно-логической и логической моделей базы данных

 

1. Разработать информационно-логическую модель реляционной базы данных.

2. Разработать логическую модель реляционной базы данных.

 

Технология работы

 

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

Ÿ Студенты

Ÿ Дисциплины

Ÿ Преподаватели.

Теперь для каждого объекта надо определить перечень реквизитов (атрибутов).

Для объекта Студенты:

Ÿ Код студента

Ÿ Фамилия

Ÿ Имя

Ÿ Отчество

Ÿ Номер группы

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

Ÿ Стипендия

Ÿ Оценки

Для объекта Дисциплины:

Ÿ Код дисциплины

Ÿ Название дисциплины

Для объекта Преподаватели:

Ÿ Код преподавателя

Ÿ Фамилия

Ÿ Имя

Ÿ Отчество

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

Ÿ Телефон

Ÿ Заработная плата

Теперь надо рассмотреть связь между объектами Студенты и Дисциплины.

 

Студент изучает несколько дисциплин. Каждая дисциплина изучается множеством студентов. Таким образом, связь между объектами Студенты и Дисциплины ¾ Многие – ко – многим

 

 


Одну дисциплину могут преподавать несколько преподавателей. Это соответствует связи один – ко – многим:

 

 


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

Ÿ Код студента

Ÿ Код дисциплины

Ÿ Оценки

Каждый студент имеет оценки по нескольким дисциплинам, поэтому связь между объектами Студенты и Оценки будет Один –ко –многим

Каждую дисциплину сдаёт множество студентов, поэтому связь между объектами Дисциплина и Оценки также будет Один–ко–многим. В результате получается информационно – логическая модель базы данных.

 

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

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

Рассмотрим, какие общие поля надо ввести в таблицы для обеспечения связанности данных. В таблицах Студенты и Оценки таким полем будет «Код студента», в таблицах Дисциплина и Оценки – «Код дисциплины», а в таблицах Преподаватели и Дисциплина – «Код дисциплины».

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

 

Задание №2

 

к лабораторной работе №3

 

Создание реляционной базы данных

 

1. Создать базу данных Деканат.

2. Создать структуру таблицы Студенты.

3. Создать структуру таблицы Дисциплины.

4. Изменить структуру таблицы Преподаватели.

5. Создать структуру таблицы Оценки.

6. Разработать схему данных, то есть создать связи между таблицами.

 

Технология работы

 

1. Создание базы данных Деканат.

1.1. Загрузить ACCESS. В появившемся окне выбрать пункт Новая база данных. Щелкнуть на кнопке <OK>.

1.2. В окне «Файл новой базы данных» задать имя (пункт имя файла), выбрать папку (пункт Папки), где будет находиться база данных. Задать имя Деканат.

1.3. Щелкнуть на кнопке «Создать».

2. Создать структуру таблицы Студенты.

2.1. В окне базы данных выбрать вкладку Таблицы и щелкнуть на кнопке «Создать».

2.2. В окне «База Данных» выбрать пункт Создание таблицы в режиме КонструкторА. В появившемся окне следует определить поля таблицы.

2.3. Определить поля таблицы в соответствии с таблицей.

Имя поля Тип данных Размер поля
Код студента Числовой Целое
Фамилия Текстовый 15
Имя Текстовый 12
Отчество Текстовый 15
Номер группы Числовой Целое
Телефон Текстовый 9
Стипендия Логический Да/Нет

2.4. В качестве ключевого поля задать «КОД СТУДЕНТА». Для этого щелкнуть по полю «Код студента» и по кнопке <   > на панели инструментов или выполнить команду

  

ПРАВКА  → КЛЮЧЕВОЕ ПОЛЕ.

2.5. Закрыть таблицу, задать ей имя Студенты.

           

ПРИМЕЧЕНИЕ: Заполнять таблицу данными пока не требуется.

3. Создать структуру таблицы Дисциплины аналогично пункту 2 и в соответствии с таблицей.

Имя поля Тип данных Размер поля
Код дисциплины Числовой Целое
Название дисциплины Текстовый 30

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

ПРИМЕЧАНИЕ: Скопировать ранее созданные таблицу Преподавателии форму СОСТАВ ПРЕПОДАВАТЕЛЕЙ в базу данных Деканат.

4. Изменить структуру таблицы Преподаватели.

Добавить поле «Код дисциплины», указав тип данных  - числовой, размер поля – целое.

Для добавления поля выполнить следующие действия:

Ÿ Выделить нужную таблицу в окне базы данных

Ÿ Нажать кнопку «Конструктор» на панели инструментов окна базы данных

Ÿ Выбрать поле, ниже которого нужно вставить новое поле

Ÿ Нажать кнопку «Добавить строки» на панели инструментов ACCESS

Ÿ Ввести имя поля, тип данных, размер поля

Ÿ Нажать кнопку «сохранить» на панели инструментов ACCESS

Ÿ Выйти из режима конструктора таблицы, нажав кнопку «Закрыть» в правом верхнем углу окна конструктора таблицы

5. Создать структуру таблицы Оценки аналогично пункту 2 и в соответствии с таблицей:

Имя поля Тип данных Размер поля
Код студента Числовой Целое
Код дисциплины Числовой Целое
Оценки Числовой байт

      Ключевое поле создавать не надо, так как данные могут повторяться.

6. Разработать схему данных, то есть создать связи между таблицами.

6.1. Щелкнуть по кнопке     на панели инструментов или выполнить команду:                                                                         

СЕРВИс  → СХЕМА ДАННЫХ

На экране появится окно «Схема данных»

6.2. Выполнить команду:

СВЯЗИ → ДОБАВИТЬ ТАБЛИЦУ

Таблицы добавлять в следующей последовательности:

Ÿ Студенты

Ÿ Оценки

Ÿ Дисциплины

Ÿ Преподаватели

6.3. В появившемся окне будет выделено название одной таблицы. Щелкнуть по кнопке «Добавить».

6.4. Перевести курсор на имя следующей таблицы и щелкнуть на кнопке «Добавить».

Аналогично добавить оставшиеся две таблицы.

6.5. Закрыть окно, щелкнув на кнопке «Закрыть».

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

6.7. Установить флажок («галочку») в свойстве Обеспечение целостности данных,щелкнув по нему.

6.8. Установить флажок в свойстве Каскадное обновление связанных полейиКаскадное удаление связанных записей.  

ПРИМЕЧАНИЕ: Задание каскадного обновления связанных полей и каскадного удаления связанных записей позволяет отредактировать записи только в таблице Дисциплины, а в таблице Оценкиэти действия будут со связанными записями выполняться автоматически. Например, если удалить из таблицы Дисциплины один предмет, то в таблице Оценки удалятся все строки, связанные с этим предметом.

6.9. Щелкнуть на кнопке «Создать». Связь будет создана.

6.10. Аналогично создать связи между полем «Код дисциплины» в таблице Дисциплинаи полем «Код дисциплины» в таблице Преподаватели, а так же между полем «Код студента» в таблице Студенты и поле «Код студента» в таблице Оценки.

Закрыть окно схемы, ответив «Да» на вопрос о сохранении макета.


Задание №3

 

к лабораторной работе №3

 

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

 

1. Создать форму Студенты;

2. Заполнить данными таблицу Студенты посредствам формы Студенты;

3. Создать форму Дисциплина;

4. Заполнить данными таблицу Дисциплины посредствам формы Дисциплины;

5. Создать форму Оценки;

6. Заполнить данными таблицу Оценкипосредствам формы Оценки.

 

 

Технология работы

 

1. Создать форму Студенты

1.1. В окне базы данных открыть вкладку Формы

1.2. Щелкнуть на кнопке «Создать»

1.3. В открывающемся списке выбрать таблицу Студенты

1.4. Выбрать пункт Автоформа: ленточная

1.5. Щелкнуть <OK>. Форма для ввода данных создана

2. Заполнить данными таблицу Студенты посредством формы Студенты.

Код студента Фамилия Имя Отчество Номер группы Телефон Сти-пендия
1 Арбузов Николай Николаевич 151 260-15-63 Да
2 Киршин Петр Валерьевич 151 110-67-82 Да
3 Кривинский Сергей Николаевич 151 172-97-21 Нет
4 Крылова Елена Петровна 151 130-31-87 Да
5 Кульчий Григорий Викторович 151 269-53-75 Да
6 Патрикеев Олег Борисович 152 234-11-63 Нет
7 Перлов Кирилл Николаевич 152 312-21-33 Нет
8 Соколова Наталия Петровна 152 166-87-24 Нет
9 Степанская Ольга Витальевна 152 293-43-77 Да
10 Тимофеев Сергей Трофимович 152 260-11-57 Да

 

ПРИМЕЧАНИЕ:

 Переход между ячейками лучше выполнить клавишей «Tab» либо мышью.

Закрыть форму, задав ей имя Студенты.

3. Создать форму Дисциплины аналогично пункту 1.

4. Заполнить данными таблицу Дисциплины посредством формы Дисциплины.

Код дисциплины Название Дисциплины
1 информатика
2 математика
3 физика
4 экономика

5. Создать форму Оценки аналогично пункту 1.

6. Заполнить данными таблицу Оценки посредством формы Оценки и закрыть форму, дав ей имя Оценки.


Код студента Код дисциплины Оценки
1 1 4
1 2 5
1 3 4
1 4 4
2 1 5
2 2 5
2 3 4
2 4 4
3 1 3
3 2 5
3 3 4
3 4 3
4 1 4
4 2 4
4 3 5
4 4 4
5 1 5
5 2 5
5 3 5
5 4 5
Код студента Код дисциплины Оценки
6 1 5
6 2 4
6 3 5
6 4 4
7 1 4
7 2 3
7 3 4
7 4 3
8 1 3
8 2 5
8 3 5
8 4 4
9 1 4
9 2 4
9 3 4
9 4 4
10 1 5
10 2 5
10 3 5
10 4 5


Лабораторная работа №4

 

Формирование сложных запросов

Цель работы:

Научиться формировать запросы для поиска и отбора записей.

 


Дата добавления: 2018-02-28; просмотров: 317; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!