Введение в системы БД (542480), страница 22
Текст из файла (страница 22)
Повторим, единственное требование состоит в следующем: какая бы физическая структура не была выбрана, она должна полностью реализовывать существующую логическую структуру. ° Во-вторых, у реляционных баз данных есть одно замечательное свойство, называемое иифармацианным принципам: все информационное содержимое базы данных представлено одним и талька одним способом, а именна — явным зада- г К сожалению, приходится констатировать, что большинство современных БСл1;продуктов не обеспечивает должной поддержки этого аспекта теории. А точнее, они обычно в определенной степени поддерживают только отображения "чонцгптуальный — внутренний" для операций выборки (нан правило, отображают одну логическую таблицу непосредственно в один хранимый файл).
И вследствие этого ани не обеспечивают неэависимость ат физических данных в той мэре, в какой это теоретически предусмотрено в реляционной технологии. 95 Глава 3. Введение в реляционные базы данных нием значений, ломки!енных в позиции столбцов в строках таблицы. Этот метод представления единственна возможный для реляционных баз данных (естественно, на логическом уровне).
В частности, иет никаких указателей, связывающих одну таблицу с другой. Например, на рис. 3. ! сушествует определенная связь между строкой '01' в таблице РЕРТ и строкой 'Е1' в таблице ЕМР, указываюшая, что служащий с номером 'Е1' работает в отделе с номером '01'; но эта информация представлена не указателем, а наличием значения '01' в столбце РЕРТ1 строки 'Е1' в таблице ЕМР. В нереляционных системах (например, в !МЯ и !РМЕ), напротив, такая информация обычно представляется (о чем шла речь в главе 1) неким указателем, который пользователь видит явно.
Замечание. Когда мы говорим, что в реляционной системе нет указателей, мы не имеем в виду, что в ней не может быть указателей на физическом уровне; наоборот, они, конечно, могут быть на этом уровне и в действительности наверняка есть. Но, как уже обьяснялось, подобные детали физического хранения в реляционных системах скрываются от пользователя. На этом закончим с вопросами, связанными со структурой и обработкой данных в реляционной модели, и перейдем к рассмотрению аспекта целостности. Еше раз воспользуемся базой данных отделов и сотрудников, приведенной на рис.
3.!. На практике для такой базы данных потребовалось бы определить несколько ограничений поддержки целостности базы. Например, зарплата служаших не должна выходить за пределы диапазона, скажем, от 25 до 95 тыс. долларов в год, а бюджет отдела должен быть, например, в пределах от ! до 15 млн долларов и т.д. Некоторые из таких правил имеют настолько важное практическое значение, что получили специальные названия. Рассмотрим их. 1. Каждая строка в таблице РЕРТ должна включать уникальное значение столбца РЕРТ1; аналогично каждая строка в таблице ЕМР должна включать уникальное значение столбца ЕИР1.
Говорят, что столбцы РЕРТ$ в таблице РЕРТ и ЕИР(( в таблице ЕИР являются первичными ключами для своих таблиц. (Вспомните, что в главе 1 мы условились отмечать на рисунках столбцы первичных ключей двойным подчеркиванием.) 2. Каждое значение столбца РЕРТ$ в таблице ЕИР должно сушествовать как значение столбца ПЕРТТИ в таблице РЕРТ для отражения того факта, что каждый служаший должен быть приписан к сушествующему отделу. Говорят, что столбец РЕРТ$ в таблице ЕМР является внешним ключом, ссылаюшимся на первичный ключ таблицы РЕРТ. Завершим этот раздел определением реляционной модели, чтобы в дальнейшем на него можно было ссылаться (хотя на данном этапе такое определение будет несколько абстрактным и не очень вразумительным).
В первом приближении реляционная модель состоит из следующих пяти компонентов. !. Неограниченный набор скалярных типов (включая, в частности, логический тип или значение истины). 2. Генератор типов отношений и соответствуюшая интерпретация для таких сгенерированных типов отношений. 96 Часть 1. Основные понятия 3. Возможность определения переменных отношений для таких сгенерированных типов отношений. 4. Операция реляционного присвоении для присвоения реляционных значений таким переменным отношений.
5. Неограниченный набор общих реляционных операторов для получения значений отношений из других значений отношений. Как видите, реляционная модель — это нечто большее, чем просто "таблицы плюс выборка, проекция и соединение", хотя ее неформально довольно часто характеризуют именно таким образом. Замечание. Вас, возможно, удивило то, что в предыдущем определении отсутствует явное упоминание о правилах целостности. Однако на самом деле такие правила представляют собой просто приложения (хотя и очень важные), использующие реляционные операторы.
Иначе говоря, такие правила формулируются (во всяком случае, концептуально) в терминах реляционных операторов, как мы сможем убедиться в главе 8. 3.3. Отношения и переменные-отношения Если предположить, что реляционная база данных — это, по существу, просто база данных, в которой данные представлены в виде таблиц (а это так и есть), то возникает резонный вопрос: почему же мы называем такую базу данных именно реляционной, а не, скажем, табличной? Ответ прост (фактически он был дан еше в главе 1): термин "ге1айоп" (отношение) — это математическое название таблицы (точнее, определенного вида таблиц; подробности приводятся в главе 5). Например, можно сказать, что база данных отделов и служащих, представленная на рис.
3.1, содержит два оенощевия. В настоящее время в неформальном контексте термины "отношение" и "таблица" принято считать синонимами. На практике в подобном контексте термин "таблица" используется гораздо чаше, чем термин "отношение". На обсуждении этого вопроса стоит немного задержаться, чтобы выяснить, почему все-таки термин "отношение" поставлен на первое место. Вкратце это объясняется следующим.
° Как уже отмечалось, реляционные системы основаны на реляционной модели. Реляционная модель, в свою очередь, — это абстрактная теория данных, основанная на некоторых положениях математики (в основном, теории множеств и логики предикатов). ° Принципы реляционной модели были изначально заложены в 19б9 и 1970 годах Е.Ф.
Коддом (Е.Р. СоИ), который в то время был исследователем, работавшим в корпорации!ВМ. В конце 19б8 года Кодд, математик по образованию, впервые пришел к заключению, что математические дисциплины можно использовать для привнесения в область управления базами данных строгих принципов и точности. Именно этих качеств недоставало данной области в то время. Идеи Ковда впервые подробно были изложены в ставшей классической статье "А Ке1апопа1 Моде! о)' Оа!а Рог Ьагйе Язагед Оа!а Вап1сз" (см. [5.1) в главе 5). ° С того времени эти идеи стали общепринятыми и оказали весьма существенное влияние на все аспекты технологии баз данных, а также на другие области, такие как искусственный интеллект, обработка естественных языков и разработка аппаратных систем. 97 Глава 3.
Введение в реляционные базы данных В реляционной модели, как она изначально была сформулирована Коддом, умышленно применялись определенные термины. Например, сам термин "отношение" практически не использовался в то время в теории информационных технологий, хотя такое понятие иногда употреблялось в других областях. Суть заключалась в том, что многие распространенные тогда термины были очень нечеткими — им не хватало точности, необходимой для такой формальной теории, которую предложил Кодд. Например, рассмотрим термин "запись". В разное время и в различных контекстах он мог означать экземпляр записи или тип записи, логическую запись или физическую запись, хранимую запись или виртуальную запись, а возможно, и еще что-нибудь. Поэтому в формальной реляционной модели термин "запись" не используется вообще — вместо него применяется термин "кортеж" (шр!е), точное определение которого дал сам Кодд, когда впервые его ввел.
Мы не станем приводить здесь это определение, а лишь отметим, что термин "кортеж" приблизительно соответствует понятию строки (так же, как термин "отношение" приблизительно соответствует понятию таблицы). При дальнейшем изучении более формальных аспектов реляционных систем в части !1 мы будем использовать более формальную терминологию, однако здесь мы не станем придерживаться строго формальных терминов, а воспользуемся более привычными, такими как "строка" и "столбец'Ь Однако один формальный термин мы все-таки будем использовать довольно часто — это термин "отношение".
Снова обратимся к базе данных отделов и сотрудников, представленной на рис. 3.1. Заметим, что таблицы 0ЕРТ и ЕМР в базе данных фактически являются переменными отношений, т.е, их значения — это значения отношений (различные значения отношений в разное время). Предположим, например, что таблица ЕМР в данный момент имеет значение (значение отношения), которое показано на рис. 3.1, и далее предположим, что мы удалили строку о сотруднике с фамилией Ба!!о (его номер — ' Е4'). ))ЕЬЕТЕ ЕМР ИНЕНЕ ЕМР4 = 'Е4' Результат выполнения этой операции показан на рис.