Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемИнна Петрушкина
1 МНОГОТАБЛИЧНЫЕ БАЗЫ ДАННЫХ ГБОУ СОШ 840
2 Достаточно часто встречается ситуация, когда хранить все данные в одной таблице реляционной БД неудобно и нерационально. Таблица может содержать слишком большое количество полей. При этом во многих полях могут дублироваться данные, что увеличивает необходимое для хранения место и замедляет процедуры обработки данных. Счетчик, Наименование, Описание, Название фирмы, Адрес, Цена Поясним это на примере. Пусть реляционная база данных «Комплектующие компьютера и поставщики» содержит информацию о различных комплектующих и имеет поля: Счетчик, Наименование, Описание, Название фирмы, Адрес, Цена (табл. 3.2). ГБОУ СОШ 840
3 Наименование, Описание, Название фирмыАдрес Данные записей 1 и 2, 3 и 4, 5 и 6, 7 и 8 дублируются в полях Наименование, Описание, Название фирмы и Адрес. Таким образом, почти половину объема таблицы составляет избыточная, дублированная информация. : Наименование ОписаниеНазвание фирмы, Адрес Цена Проанализируем причину дублирования. Комплектующие компьютера имеют два неотъемлемых свойства: Наименование и Описание. Название фирмы, Адрес и Цена не являются свойствами комплектующих компьютера, они являются свойствами поставщика. ГБОУ СОШ 840
4 Таблица 3.2. Комплектующие компьютера и поставщики СчетчикНаименованиеОписание Название фирмы Адрес Цена, руб. 1 Системный блок Intel Соге 2 Quad Фирма1Адрес Системный блок Intel Соге 2 Quad Фирма2Адрес Монитор19"Фирма1Адрес Монитор19"Фирма2Адрес Клавиатура104 КЛ.Фирма1Адрес1250 6Клавиатура104 КЛ.Фирма2Адрес2300 7МышьБеспроводнаяФирма1Адрес МышьБеспроводнаяФирма2Адрес2350 ГБОУ СОШ 840
5 Естественно выделить из исходной таблицы две отдельные таблицы: «Комплектующие» и «Поставщики». Чтобы однозначно идентифицировать записи в этих таблицах, введем в них первичные ключи. Код комплектующих В таблицу «Комплектующие» введем поле Код комплектующих (табл. 3.3). Комплектующие Таблица 3.3. Комплектующие в таблицу «Поставщики» введем поле Код поставщика (табл. 3.4). Поставщики Таблица 3.4. Поставщики Код комплектующихНаименованиеОписание К1Системный блокIntel Соге 2 Quad К2Монитор19" К3Клавиатура104 кл. К4МышьБеспроводная Код поставщика Название фирмыАдрес П1Фирма1Адрес1 П2Фирма2Адрес2 ГБОУ СОШ 840
6 Связывание таблиц После создания множества таблиц, содержащих данные, относящиеся к разным аспектам базы данных, необходимо обеспечить целостность базы данных. Для этого необходимо связать таблицы между собой. При связи в отношении «один-ко-многим» каждой записи в одной (главной) таблице могут соответствовать несколько записей в другой (подчиненной) таблице, а запись в подчиненной таблице не может иметь более одной соответствующей ей записи в главной таблице. Если одной записи в первой таблице могут соответствовать несколько записей во второй таблице, а одной записи во второй таблице - несколько записей в первой таблице, то реализуется связь в отношении «многие-ко-многим». ГБОУ СОШ 840
7 В нашем случае реализуется именно такая связь. Одной записи в таблице «Комплектующие» соответствуют две за- писи в таблице « Поставщики », так как устройства одного вида продаются двумя фирмами. Одной же записи таблицы «Поставщики» соответствуют четыре записи таблицы «Комплектующие», так как одна фирма продает устройства четырех разных видов. Две таблицы, находящиеся в отношении «многие-ко- многим», могут быть связаны только с помощью третьей (связующей) таблицы. Таблицы «Комплектующие» и «Поставщики» можно связать в отношении «многие-ко-многим» путем создания двух связей с отношением «один-ко-многим» для таблицы «Цена», Таблицы «Комплектующие: и «Поставщики: будут главными по отношению к таблице «Цена». Связь между таблицами устанавливает отношения между совпадающими значениями в полях. В нашем примере связываемые поля имеют одинаковые имена, в этом случае СУБД устанавливает связь автоматически, по команде. В противном случае связываемые поля надо указывать вручную. ГБОУ СОШ 840
8 С первичным ключом главной таблицы связывается одноименное поле подчиненной таблицы (внешний ключ). В главной таблице «Комплектующие» поле Код комплектующих является первичным ключом, соответственно в подчиненной таблице «Цена» должно существовать одноименное поле, которое является внешним ключом. Таблица «Поставщики» также является главной по отношению к таблице «Цена». Ее поле Код поставщика является первичным ключом, соответственно в подчиненной таблице «Цена» должно существовать одноименное поле, которое является внешним ключом. Таким образом, таблица «Цена» должна содержать следующие поля (табл. 3.5): Счетчик (первичный ключ); Код комплектующих (поле внешнего ключа для таблицы «Комплектующие» ); Код поставщика (поле внешнего ключа для таблицы «Поставщики» ); Цена (числовое поле). ГБОУ СОШ 840
9 СчетчикКод комплектующихКод поставщикаЦена, руб. 1К1П К1П К2П К2П К3П1250 6кзП2300 7К4П1300 8К4П2350 Межтабличная связь обеспечивает целостность данных. Связанные таблицы представляют собой единую базу данных, в которой можно создавать новые таблицы, а также запросы и отчеты, содержащие данные из связанных таблиц. Прежде чем приступить к созданию многотабличной базы данных, необходимо продумать ее проект. Проект представляет собой модель будущей базы данных, состоящей из объектов и их связей, необходимых для выполнения поставленных задач. Процесс проектирования включает, прежде всего, определение перечня необходимых таблиц и задание их структуры, а также установки типа связей между этими таблицами. ГБОУ СОШ 840
10 Задание: создать реляционную многотабличную базу данных «Компьютеры», в качестве основных объектов которой будут использованы три таблицы: «Комплектующие», «Поставщики» и «Цена». Таблицы «Комплектующие» и «Поставщики» должны быть связаны отношением «многие-ко-многим» с помощью таблицы «Цена»; создать запрос, который осуществляет отбор данных, необходимых для закупки дешевого системного блока. Итак, прежде всего, необходимо создать три таблицы: «Комплектующие», «Поставщики» и «Цена». Создать Создать в СУБД Мiсrosоft Access 2010 новую базу данных с помощью команды [Создать]. Имя файла В появившемся диалоговом окне в текстовом поле Имя файла: присвоить файлу базы данных имя Компьютеры. accdb. Создать Щелкнуть по кнопке Создать. Код комплектующих, Наименование и Описание Таблица «Комплектующие» должна содержать три текстовых поля: Код комплектующих, Наименование и Описание. ГБОУ СОШ 840
11 Комплектующие 1. В диалоговом окне Компьютеры: база данных создать таблицу «Комплектующие» и ввести данные. Режим Конструктор 2. Ввести команду [Режим Конструктор ]. Код комплектующих В качестве первичного ключа задать поле Код комплектующих. Поставщики 3. Создать таблицу «Поставщики», выполнив рассмотренную выше последовательность действий. Ввести данные. Код поставщика Первичным ключом является поле Код поставщика ГБОУ СОШ 840
12 ЦенаСчетчикКод комплектующихКод поставщикаЦена Таблица «Цена» должна содержать поля Счетчик, Код комплектующих, Код поставщика, а также поле Цена. Счетчик В качестве первичного ключа этой таблицы будет использоваться поле Счетчик. Цена 4. С помощью аналогичных действий создать таблицу «Цена» и ввести данные КомплектующиеПоставщики один-ко-многимЦенаЦена Код комплектующих Код поставщика внешними ключами Таблицы «Комплектующие» и «Поставщики» должны быть связаны отношением «один-ко-многим» С таблицей «Цена». Таблица «Цена» содержит поля Код комплектующих и Код поставщика, являющиеся внешними ключами исходных таблиц. ГБОУ СОШ 840
13 Установим связи между таблицами. Работа с базами данных-Схема данных 5. Ввести команду [Работа с базами данных-Схема данных]. многие-ко-многим КомплектующиеПоставщикиЦена Связь в отношении «многие-ко-многим» между таблицами «Комплектующие» и «Поставщики» через таблицу «Цена» будет установлена Созданная многотабличная база данных «Компьютеры» состоит из трех связанных таблиц и поэтому обладает целостностью данных. Это значит, что можно создавать запросы, формы и отчеты, которые используют данные из разных таблиц. Создадим, например, запрос, который осуществляет отбор данных, необходимых для закупки дешевого системного блока. ГБОУ СОШ 840
14 Режим-Конструктор Ввести команду [Режим-Конструктор]. КомплектующиеКод комплектующих К1ПоставщикиНазвание фирмы Адрес ЦенаЦена 6. В таблице «Комплектующие» для поля Код комплектующих ввести условие равно "К1", в таблице «Поставщики» для полей Название фирмы и Адрес установить вывод на экран, в таблице «Цена» для поля Цена ввести условие
15 Режим-Режим таблицы 7. Ввести команду [Режим-Режим таблицы]. Появится результат выполнения запроса. ГБОУ СОШ 840
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.