Дать определение БД и основным понятиям с ней связанным
Реляционные БД – базы данных с табличной формой организации информации. Реляционная БД состоит из одной или нескольких взаимосвязанных двумерных таблиц Достаточно часто встречается ситуация, когда хранить всю базу данных в одной таблице неудобно и нерационально. Таблица может содержать слишком большое количество полей, что неудобно пользователю. Различные записи при этом во многих полях дублируют друг друга, что увеличивает информационный объем базы данных и замедляет процедуры ее обработки.
Комплектующие компьютера и поставщики Счетчик Наименование ОписаниеНазвание фирмы Адрес Цена 1 Системный блокPentium Фирма 1Адрес Системный блокPentium Фирма 2Адрес Монитор 15"Фирма 1Адрес Монитор 15"Фирма 2Адрес Клавиатура 104 кл.Фирма 1Адрес Клавиатура 104 кл.Фирма 2Адрес Мышь Зкн Фирма 1Адрес Мышь 3 кн Фирма 2Адрес 2150 Мы видим, что почти половину объема таблицы составляет избыточная, дублированная информация. Разделить исходную таблицу на две: "Комплектующие" и "Поставщики".
В таблицу "Поставщики" введем дополнительное поле "Код поставщика". Именно это поле будет ключевым в данной таблице. Код комплектующих Наименование Описание К1Системный блокPentium К2Монитор 15" КЗКлавиатура 104 кл. К4Мышь Зкн. Комплектующие Поставщики Код поставщика Название фирмы Адрес П1 Фирма 1Адрес 1 П2 Фирма 2Адрес 2 В таблицу "Комплектующие" введем поле "Код комплектующих". Именно это поле будет ключевым в данной таблице.
Связывание таблиц После создания различных таблиц, содержащих данные, относящиеся к различным аспектам БД, необходимо обеспечить целостность БД. Для этого надо связать таблицы между собой. Связь «один-ко-многим» - каждой записи в одной (главной) таблице могут соответствовать несколько записей в другой (подчиненной) таблице, а запись в подчиненной таблице не может иметь более одной соответствующей ей записи в главной таблице. Связь «многие-ко-многим» - одной записи в первой таблице могут соответствовать несколько записей во второй таблице и, наоборот, одной записи во второй таблице - несколько записей в первой таблице,
Связь «многие-ко-многим» Код комплектующих Наименование Описание К1 Системный блок Pentium К2 Монитор 15" КЗ Клавиатура 104 кл. К4 Мышь Зкн. Код поставщика Название фирмы Адрес П1 Фирма 1Адрес 1 П2 Фирма 2Адрес 2 Счетчик Наименование ОписаниеНазвание фирмы Адрес Цена 1 Системный блокPentium Фирма 1Адрес Системный блокPentium Фирма 2Адрес Монитор 15"Фирма 1Адрес Монитор 15"Фирма 2Адрес Клавиатура 104 кл.Фирма 1Адрес Клавиатура 104 кл.Фирма 2Адрес Мышь Зкн Фирма 1Адрес Мышь 3 кн Фирма 2Адрес 2150
Две таблицы, находящиеся в отношении "многие-ко-многим", могут быть связаны только с помощью третьей (связующей) таблицы. Таблицы "Комплектующие" и "Поставщики" можно связать в отношении "многие-ко-многим" путем создания двух связей "один-ко-многим" по отношению к таблице "Цена". Связь между таблицами устанавливает отношения между совпадающими значениями в полях с одинаковыми именами. С ключевым полем главной таблицы (первичный ключ) связывается одноименное поле подчиненной таблицы (внешний ключ). Таким образом, таблица "Цена" должна содержать следующие поля: "Счетчик" (ключевое поле); "Код комплектующих" (поле внешнего ключа для таблицы "Комплектующие"); "Код поставщика" (поле внешнего ключа для таблицы "Поставщики"); "Цена" (числовое поле).
Счётчик Код комплектующих Код поставщика Цена 1 К1П К1П К2П К2П КЗП КЗП К4П К4П2150 Цена
Межтабличная связь обеспечивает целостность данных. Связанные таблицы представляют собой единую базу данных, в которой можно создавать новые таблицы, а также запросы и отчеты, содержащие данные из связанных таблиц. Базы данных, состоящие из связанных двумерных таблиц, принято называть реляционными. Код комплектующих Наименование Описание К1 Системный блокPentium К2 Монитор 15" КЗ Клавиатура 104 кл. К4 Мышь Зкн. Код поставщика Название фирмы Адрес П1 Фирма 1Адрес 1 П2 Фирма 2Адрес 2 Счётчик Код комплектующих Код поставщика Цена 1К1П К1П К2П К2П КЗП1250 6КЗП2300 7К4П1100 8К4П2150
Прежде чем приступить к созданию реляционной базы данных, необходимо продумать ее проект. Проект представляет собой модель будущей БД, состоящей из объектов и их связей, необходимых для выполнения поставленных задач. Процесс проектирования включает, прежде всего, определение перечня необходимых таблиц и задание их структуры, а также установление типа связей между этими таблицами.
Задание 1: Норамлизовать БД «Поликлинника», включающую следующие поля: Фамилия пациента, дата рождения, дата посещения, диагноз, номер участка, фамилия врача. 1. Определить главный ключ (Фамилия пациента + дата посещения) Фамилия врача Номер участка Иванов И.П.1 Петров М.А.2 2. Не зависит от ключа 3. Зависит от части ключа (фамилии пациента) Фамилия пациента Дата рождения Номер участка Сидоров Р.О Смирнова П.Р Фамилия пациента Дата посещения диагноз Сидоров Р.О ОРЗ Смирнова П.Р грипп «Врач» «Пациент» «Посещения»
Задание 2: «Связать между собой БД «Поликлинника» Фамилия врача Номер участка Иванов И.П.1 Петров М.А.2 Фамилия пациента Дата рождения Номер участка Сидоров Р.О Смирнова П.Р Фамилия пациента Дата посещения диагноз Сидоров Р.О ОРЗ Смирнова П.Р грипп Базовая
Кроссворд «Базы данных с ключевым словом» 1. Структура БД, в которой любой тип данных одновременно может быть главным и подчиненным 2. Средство извлечения данных из БД 3. Набор программ, с помощью которых производится работа с базой данных 4. Столбец в табличной БД 5. Строка в табличной БД 6. Структура БД, в которой данные строятся по принципу взаимосвязанных таблиц 7.Структура, в которой одно данное является главным, все нижележащие – подчиненными. Дайте определение получившемуся вертикальному понятию с точки зрения баз данных. Таблица – основной объект реляционной БД. с е т е в а я з а п р о с п о л е с у б д запись р е л я ц и о н н а я и е р а р х и я
Вопросы: 1. Почему в некоторых случаях целесообразно использовать многотабличные, а не однотабличные базы данных? 2. Какие типы связей между таблицами возможны в реляционных базах данных?
Домашнее задание: Записи в тетради Задание: Нормализовать БД «Спортсмены», включающую следующие поля: Фамилия спортсмена, дата рождения, страна проживания, город проживания, вид спорта, фамилия тренера, название соревнований, дата проведения соревнования, занятое место. Связать между собой таблицы.