Основы теории реляционных баз данных
Современные информационные системы характеризуются большими объемами хранимых данных, их сложной организацией, а также высокими требованиями к скорости и эффективности обработки этих данных. Это становится возможным при использовании специальных программных средств - систем управления базами данных (СУБД).
Базы данных (БД) — это совокупность сведений о реальных объектах, процессах, событиях или явлениях, относящихся к определенной теме или задаче, организованная таким образом, чтобы обеспечить удобное представление этой совокупности как в целом, так и любой ее части.
Система управления базами данных (СУБД) – это комплекс программных и языковых средств, необходимых для структурирования информации, размещения ее в таблицах, обработки баз данных и поддержания их в актуальном состоянии.
Основные функции СУБД — это определение данных (описание структуры баз данных), обработка данных и управление данными. В настоящее время насчитывается более 50 типов СУБД для персональных компьютеров. К наиболее распространенным типам СУБД относятся: MS SQL Server, Oracle, Informix, Sybase, DB2, MS Access и другие.
Существуют 4 основные модели данных – списки (плоские таблицы), реляционные базы данных, иерархические и сетевые структуры.
В течение многих лет преимущественно использовались плоские таблицы типа списков в Excel, вся информация которых содержалась в одной таблице, никак не связанной с другими таблицами, размещенные в других базах данных.
В иерархических моделях любой объект может подчиняться только одному объекту вышестоящего уровня, то есть описывается как древовидный граф.
В сетевых моделях непосредственный доступ возможен к любому объекту независимо от уровня, на котором он находится в модели.
В настоящее время наибольшее распространение при разработке баз данных получили реляционные модели данных. Реляционная модель данных является совокупностью простейших двумерных таблиц, имеющих название отношения (англ. relation) и обеспечивают простоту, гибкость структуры, удобство реализации. Этот способ организации данных позволяет связывать данные в одной таблице с данными в других таблицах через уникальные идентификаторы (ключи) или ключевые поля.
Реляционная база данных является множеством взаимосвязанных таблиц, каждая из которых содержит информацию об объектах определенного типа.
Таблица – регулярная структура, состоящая из конечного набора одно типичных записей.
Для успешного функционирования базы данных важна правильная организация данных в ней. При определении структуры данных в базе выделяют следующие основные понятия:
Класс объектов - совокупность объектов, обладающих одинаковым набором свойств. Для каждого отдельного объекта из данного класса объектов в таблице создается отдельная запись.
Свойство (атрибут) - определенная часть информации о некотором объекте. Хранится в виде столбца (поля) таблицы.
Связь (отношение) - способ, которым связана информация о разных объектах.
Каждая строка таблицы включает данные об одном объекте (например, клиенте, автомобиле, документе), а столбцы таблицы содержат различные характеристики этих объектов — атрибуты (например, наименования и адреса клиентов, марки и цены автомобилей). Строки таблицы называются записями; все записи имеют одинаковую структуру — они состоят из полей, в которых хранятся атрибуты объекта. Каждое поле записи содержит одну характеристику объекта и имеет строго определенный тип данных (например, текстовая строка, число, дата). Все записи имеют одни и те же поля, только в них содержатся разные значения атрибутов (рис. 7.1).
Поле_1 | Поле_2 | ... | Поле_n | |
Название поля_1 | Название поля_2 | ... | Название поля_n | |
запись_1 | атрибут11 | атрибут12 | ... | атрибут1n |
запись_2 | атрибут11 | атрибут22 | ... | атрибут2n |
... | ... | ... | ... | ... |
запись_k | атрибутk1 | атрибутk2 | ... | атрибутkn |
Рисунок 7.1 – Структура таблицы реляционной базы данных
Проектирование таблиц базы осуществляется так, чтобы последние не содержали дублирующих данных за исключением соединительных кодов. Для каждой таблицы следует определить структуру записи (перечень полей, тип записываемой в них информации), ключевые поля и поля для связи с другими таблицами. Процесс организации данных в таблицы называется нормализацией. Далее приведены основные правила нормализации:
-в каждой таблице БД не должно быть полей, которые повторяются;
-в каждой таблице должен быть уникальный идентификатор (первичный ключ);
-каждому значению первичного ключа должна соответствовать достаточная информация о типе сущности или об объекте таблицы (например, информация об успеваемости, о группе или студентах);
-изменение значений в полях таблицы не должно влиять на информацию в других полях (кроме изменений в полях ключа).
Ключ – это поле (или несколько полей), которые прилагаются к таблице и позволяют установить связь с записями в другой таблице и однозначно определяют любую запись в таблице реляционной базы данных.
Существуют ключи двух типов: первичные и вторичные (или внешние).
Первичный ключ – это одно или несколько полей, комбинация значений которых однозначно определяют каждую запись в таблице. Первичный ключ не допускает значений Null и всегда должен иметь уникальный индекс. Первичный ключ используется для связывания таблицы с внешними ключами и других таблицах.
Внешний (вторичный) ключ - это одно или несколько полей (столбцов) в таблице, содержащей ссылку на поле или поля первичного ключа в другой таблице. Внешний ключ определяет способ объединения таблиц.
Из двух логически связанных таблиц одну называют таблицей первичного ключа или главной таблицей, а другую таблицей вторичного (внешнего) ключа или подчиненной таблицей. СУБД позволяют сопоставить родственные записи из обеих таблиц и совместно вывести их в форме, отчете или запросе.
Существует три типа первичных ключей: ключевые поля счетчика, простой ключ или составной ключ.
Поле счетчика (Тип данных «Счетчик»). Тип данных поля в базе данных, в котором для каждой записи, которая прилагается таблица, в поле автоматически заносится уникальное числовое значение.
Простой ключ. Если поле содержит уникальные значения, такие как коды или инвентарные номера, то это поле можно определить как первичный ключ. В качестве ключа можно определить любое поле, содержащее данные, если это поле не содержит значения Null или значения, которые повторяются.
Составной ключ. В случаях, когда невозможно гарантировать уникальность значений каждого поля, существует возможность создать ключ, состоящий из нескольких полей. Чаще всего такая ситуация возникает для таблицы, используемой для связывания двух таблиц «многие-ко-многим».
Связь устанавливается между двумя общими полями (столбцами) двух таблиц. Существующие связи с отношением «один-к-одному», «один-ко-многим» и «многие-ко-многим».
Отношения, которые могут существовать между записями двух таблиц:
1. один–к–одному, каждой записи из одной таблицы соответствует одна запись в другой таблице;
2. один–ко–многим, каждой записи из одной таблицы соответствует несколько записей другой таблице;
3. много–к–одному, множеству записей из одной таблице соответствует одна запись в другой таблице;
4. многие-ко-многим, множеству записей из одной таблице соответствует несколько записей в другой таблице.
Тип отношений в связи, что создается, зависит от способа определения полей, которые связываются:
Отношение «один-ко-многим» создается в том случае, когда только одно из полей является полем первичного ключа или уникального индекса.
Отношение «один-к-одному» создается в том случае, когда оба поля, которые связываются, являются ключевыми или имеют уникальные индексы.
Отношение «многие-ко-многим» фактически является двумя отношениями «один-ко-многим» с третьей таблицей, первичный ключ которой состоит из полей внешнего ключа двух других таблиц.
Дата добавления: 2019-12-09; просмотров: 614;