Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

БД / Базы данных / Лабораторные работы / Лабораторная №7(Схема_данных)

.doc
Скачиваний:
64
Добавлен:
30.05.2015
Размер:
446 Кб
Скачать

Лабораторная работа № 7.

Тема: Работа со схемой данных.

У нас было определение

Реляционная база данных – это набор взаимосвязанных таблиц.

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

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

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

В главном окне базы данных на панели инструментов есть инструмент Схема данных и в меню Сервис есть также элемент Схема данных.

Законченная схема нашей БД будет выглядеть так:

На схеме данных изображены прямоугольниками таблицы -

в заголовке таблицы дано имя таблицы,

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

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

Щелкнув левой кнопкой мыши на связи откроется окно следующего содержания (щелкнули на связи, соединяющей таблицы ТипыПродуктов и Продукты):

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

Определение. Если две таблицы связаны связью “1:M” (один ко многим), как например, наши таблицы ТипыПродуктов и Продукты, то таблица, которая участвует в связи с характеристикой 1 – называется главной, а вторая – подчиненной. В Access вместо “многие” связь помечается значком ∞. В нашем примере главной таблицей будет ТипыПРодуктов, подчиненной Продукты.

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

  • схеме данных связь помечается как “1 ко многим” (∞.) или “1:1”. Access сам определяет тип связи на основе значения полей, участвующих в связи. Связь 1:1 устанавливается, если поля обеих полей, участвующие в связи имеют уникальный индекс.

  • в подчиненную таблицу Вы не добавите запись с неустановленным (или не правильно установленным) значением внешнего ключа (значение отсутствует в столбце первичного ключа главной таблицы).

  • В главной таблицы нельзя удалить запись, если с ней есть связанные записи в подчиненной таблице

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

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

При создании связи между таблицами связываемые поля могут иметь разные имена. Однако связываемые поля должны иметь одинаковый тип данных, за исключением случая, когда поле первичного ключа является полем типа Счетчик. Поле счетчика связывается с числовым полем, если значения свойства Размер поля обоих полей совпадают. Например, допускается связывание поля счетчика с числовым полем, если свойство Размер поля обоих полей имеет значение Длинное целое. Даже в том случае, когда связываются поля типа «Числовой», их свойства Размер поля должны иметь одинаковые значения.

Определение связи с отношением «один-к-одному» или «один-ко-многим»

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

  2. Для перехода в окно базы данных нажмите клавишу F11.

  3. Нажмите кнопку Схема данных на панели инструментов.

  4. Если в базе данных еще не определены связи, автоматически открывается диалоговое окно Добавление таблицы.

  5. Если нужно добавить таблицы для создания связей, а диалогового окна Добавление таблицы на экране нет, нажмите кнопку Отобразить таблицу на панели инструментов.

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

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

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

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

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

  1. Для создания связи нажмите кнопку Создать.

  2. Для каждой пары таблиц, которые необходимо связать, повторите шаги с 5 по 8. При закрытии окна Схема данных Microsoft Access выводит приглашение сохранить макет. Независимо от выбранного ответа, созданные связи будут сохранены в базе данных.

Задание или изменение типа объединения.

В параметрах связи можно указать также способ (алгоритм) соединения двух таблиц при реализации запроса.

Установка типа объединения по умолчанию для связей между двумя таблицами.

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

Переключатель 1 определяет внутреннее объединение или объединение по равенству. Он выбран по умолчанию.

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

Переключатель 2 определяет левое внешнее объединение.

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

Переключатель 3 определяет правое внешнее объединение.

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

Пример соединения двух таблиц разными способами Улицы и ТипыУлиц (тип связи M:1):

Содержание подчиненной таблицы Улицы

НомерУлицы

НазваниеУлицы

НомерКатегории

11

Советская

1

12

Сибирская

1

13

Уральский

2

14

Фрунзе

4

15

Тихий

5

Содержание главной таблицы ТипыУлиц -

НомерКатегории

КатегорияУлицы

1

Улица

2

Переулок

3

Площадь

4

Проспект



Будем выполнять соединение таблиц Улицы и ТипыУлиц

    1. Объединение по равенству

НомерУлицы

НазваниеУлицы

НомерКатегории

Категория

11

Советская

1

Улица

12

Сибирская

1

Улица

13

Уральский

2

Переулок

14

Фрунзе

4

Проспект

2. Левое объединение (все строки левой таблицы)

НомерУлицы

НазваниеУлицы

НомерКатегории

Категория

11

Советская

1

Улица

12

Сибирская

1

Улица

13

Уральский

2

Переулок

14

Фрунзе

4

Проспект

15

Тихий

5

3. Правое объединение (все строки из правой таблицы)

НомерУлицы

НазваниеУлицы

НомерКатегории

КатегорияУлицы

11

Советская

1

Улица

12

Сибирская

1

Улица

13

Уральский

2

Переулок

3

Площадь

14

Фрунзе

4

Проспект

Внимательно проанализируйте особенности разных способов объединения!

Задание 1. Даны две таблицы Преподаватели и Должности (содержание приведено ниже)

  1. Определите, каким типом связи связаны эти две таблицы

  2. Какая таблица главная и какая подчиненная в этой связи

  3. Выполните разными способами объединение двух таблиц

Таблица Преподаватели

НомерПреподавателя

Фамилия

НомерДолжности

11

Новицкий

4

21

Сухов

3

31

Леонтьева

3

41

Петров

2

51

Ласточкин

2

61

Водочкина

7

Таблица Должности

НомерДолжности

Должность

1

Преподаватель

2

Доцент

3

Аспирант

4

Профессор

5

декан