Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Типы баз данных.
За время использования компьютерных БД было предложено несколько типовых структур (по-другому называемых видами или типами БД), некоторые из которых получили широкое распространение, а другие – значительно меньшее. Вот перечень наиболее важных из них: [21] ) § Иерархические БД – их структуру можно представить в виде дерева (рис.10.1), причем объекты нижних уровней являются частью объектов верхних уровней (каждый объект имеет ровно одного родителя). § Сетевые БД – наподобие иерархических (рис.10.2), но каждый объект может иметь больше одного родителя (структуру можно представить в виде графа). Фактически сетевая модель является расширением иерархической. § Реляционные БД, которые основаны на использовании для хранения данных совокупности двумерных таб-лиц (рис. 10.3), называемых «отношениями» и математических операций над множествами. Реляционная мо-дель была предложена в 1969 г. американским ученым Е.Ф. Коддом. 1) Примечание. Наиболее распространенные среди существующих промышленных СУБД (Oracle, Sybase, MS SQL, Interbase, Informix и др. ) поддерживают реляционный тип БД. Рис.10.3. Схема реляционной модели данных. Основные понятия реляционных БД. Таким образом: Определение. Реляционная база данных — это хранилище данных, содержащее набор двухмерных таблиц.
Любая таблица реляционной базы данных состоит из строк (называемых также записями) и столбцов (называемых также полями). Строки таблицы содержат сведения о представленных в ней фактах (или документах, или людях, одним словом, — об однотипных объектах). На пересечении столбца и строки находятся конкретные значения содержащихся в таблице данных. Данные в таблицах должны удовлетворять следующим принципам: § Каждое значение, содержащееся на пересечении строки и колонки, должно быть атомарным (то есть не расчленяемым на несколько значений). § Значения данных в одной и той же колонке должны принадлежать к одному и тому же типу, доступному для использования в данной СУБД. § Каждая запись в таблице уникальна, то есть в таблице не существует двух записей с полностью совпадающим набором значений ее полей. § Каждое поле имеет уникальное имя. § Последовательность полей в таблице несущественна. § Последовательность записей также несущественна. Примечание. Несмотря на то, что строки таблиц считаются неупорядоченными, любая СУБД позволяет сортировать строки и колонки в выборках из нее нужным пользователю способом. Поскольку последовательность колонок в таблице несущественна, обращение к ним производится по имени, и эти имена для данной таблицы уникальны (но не обязаны быть уникальными для всей базы данных) В теории реляционных баз данных кроме понятий запись и поля используются также понятия тип данных, домен, атрибут, кортеж, первичный ключ и отношение. Покажем смысл этих понятий на примере. Пример: Пусть имеется некоторая организация. Для нее можно построить отношение (таблицу) «сотрудники», содержащее информацию о сотрудниках некоторой организации (рис.10.4): Рис.10.4.Пример таблицы реляционной БД.
Определение. Тип данных некоторого объекта — это такое свойство этих данных, которое определяет, какие значения можно хранить в данном объекте и какие операции над этими значениями можно выполнять. Примечание. Понятие тип данных в реляционной модели соответствует понятию типа данных в языках программирования. В современных БД применяются следующие типы данных: [22] ) § символьный (текстовый) – произвольная последовательность символов длиной, обычно, не более 255, например: «Иванова М.П.», «ЦП Intel Pentium-III 800 МГц»; § числовой – целые и вещественные числа, например: –1234, 777, 3.1415926; § логический – одно из двух возможных значений: истина-ложь, да-нет, false-true; § временной – для хранения даты и/или времени, например: «12.04.1961»; § специализированный – например, деньги, графическое изображение, гиперссылка, в принципе, может быть все, что угодно. Примечание. В примере отношения «сотрудники» имеются данные трех типов: символьные, целые числа и " деньги". Определение. Потенциальное множество допустимых значений данных указанного типа называется доменом, при этом домен сужает множество значений для заданного поля по сравнению с исходным типом данных.
Пример: Не всякие последовательности символов подходят для поля «ФИО», а только последовательности, состоящие из Фамилии, Имени и Отчества, разделенных пробелом. Еще один пример. Пример: Хотя поля «ФИО» и «Адрес» относятся к символьному типу данных, их нельзя использовать одно вместо другого, поскольку множества их допустимых значений не пересекаются.
Теперь дадим определения понятиям атрибут, кортеж и отношение. Определение. Атрибутом называется столбец таблицы (в теории баз данных – это пара (имя_атрибута: имя_домена)). Определение. Кортеж – это строка таблицы (в теории баз данных – множество атрибутов, соответствующих одной строке отношения). Определение. Отношение – это двумерная таблица, все строки которой уникальны (в теории баз данных – множество кортежей, соответствующих одной схеме отношения). Следствием того, что все кортежи в отношении должны быть уникальны, является наличие у отношения первичного ключа (primary key). Определение. Первичный ключ – это атрибут ( или несколько атрибутов), значения которого (которых) однозначно определяют кортеж отношения, при этом, если первичный ключ состоит из более чем одного столбца — из набора атрибутов, он называется составным первичным ключом (composite primary key). Примечание. В приведенном выше примере, первичным ключом является поле «Номер сотрудника», т.к. оно не может повторяться. Другим хорошим кандидатом для первичного ключа таблицы является «Номер паспорта». В качестве первичного ключа также можно использовать комбинацию «ФИО + Дата рождения», но в этом случае уже возможно дублирование информации для разных людей. Для справки приведем таблицу соответствия терминов реляционной модели и их эквивалентов (синонимов) — см. табл.10.1. Таблица 10.1.
Типичная база данных обычно состоит из нескольких связанных таблиц. В этом случае в обеих таблицах должны находиться ключевые поля, через которые устанавливается взаимодействие между таблицами, причем значения этих полей должны быть одинаковыми. Определение. Бинарные ассоциации, показывающие каким образом два отношения (две таблицы), т.е. через какие их атрибуты (поля), соотносятся друг и с другом, называются связью. Если связь между двумя отношениями (таблицами) установлена, то она определяет характер взаимосвязи между экземплярами одного и другого отношений (таблиц). Различают три типа бинарных связей: «один к одному», «один ко многим» и «многие ко многим». § Когда имеет место связь между единственными экземплярами отношений (таблиц) с обеих сторон, между сторонами имеет место тип связи «один к одному». § Если имеет место связь между единственным экземпляром отношения (таблицы) первой стороны и множеством экземпляров отношений (таблиц) другой, то такая связь между сторонами характеризуется как «один ко многим». § В тех случаях, когда каждый экземпляр отношений (таблиц) первой стороны имеет множество связей с отношения (таблицами) другой стороны и, в свою очередь, каждый экземпляр отношений (таблиц) другой стороны имеет связи с отношениями (таблицами) первой стороны, такая связь между сторонами классифицируется как «многие ко многим». Определение. А трибут ( или несколько атрибутов) одного отношения, который является первичным ключом другого отношения называется внешним ключом (foreign key). Иными словами, поле в первой таблице, указывающее на поле в другой таблице, связанной с данной таблицей, называется внешним ключом. Пример: Рассмотрим пример двух связанных таблиц (ри.10.5) — таблица 1 «Клиенты» и таблица 2 «Заказы». В таблице 2 содержится информация о заказах, сделанных клиентами. Для идентификации клиентов в состав таблицы 2 введено поле «Клиент (идентификатор)». Если нам нужно узнать, как называется компания, разместившая заказ, мы должны поискать это же значение идентификатора клиента в поле «Клиент (идентификатор)» таблицы 1 и в найденной записи прочитать имя компании в соответствующем поле «Имя компании». Иными словами, нам нужно связать две таблицы — таблицу 1 «Клиенты» и таблицу 2 «Заказы» по полю «Клиент (идентификатор)». Рис.10.5.Пример БД с внешним и первичными ключами. Как видно из рис.10.5, в случае с таблицей 2 «Заказы» внешним ключом является поле «Клиент (идентификатор)», а первичным ключом — аналогичное поле в таблице 1 «Клиенты». Кстати в таблице 2 «Заказы» поле «Номер заказа» также является первичным ключом. Чтобы упорядочить сведения о характере взаимоотношений между таблицами БД вводят понятие схемы базы данных. Определение. Группа связанных таблиц с указанием характера связей между ними называется схемой базы данных (database schema). Информация о таблицах, их колонках (имена, тип данных, длина поля), первичных и внешних ключах называется метаданными (metadata).
|