Реляционная модель В реляционной модели каждое отношение представляет из себя таблицу. Атрибуты отношения – это столбцы таблицы. Записи объектов, удовлетворяющих данному отношению, - это строки таблицы. Записи в реляционной модели принято называть кортежами.
Некоторые другие формальные определения Кардинальность отношения – это количество кортежей (записей), удовлетворяющих данному отношению. Степень отношения – это количество атрибутов отношения. Домен, которому принадлежит атрибут – совокупность допустимых значений, которые может принимать данный атрибут.
Реляционная алгебра Основные действия, которые можно делать с реляционными отношениями и их кортежами, описаны реляционной алгеброй.
Операции реляционной алгебры Выборка Пусть задано отношение A(X, Y, …) и операция : (X,Y) {T|F}. Тогда - выборкой из отношения A по атрибутам X, Y называется новое отношение B, с теми же атрибутами и содержащие все такие кортежи отношения A, для атрибутов X, Y которых (X, Y) = T.
Проекция Пусть задано отношение A(X, Y, …). Тогда проекцией отношения A по атрибутам X, Y называется новое отношение B, состоящее только из атрибутов X и Y и содержащие все кортежи вида {X:x, Y:y}, такие, что множество кортежей отношения A содержит хотя бы один кортеж вида {X:x, Y:y, ….}.
Произведение Пусть заданы отношение A(A 1, A 2, … A n ) и отношение B(B 1, B 2,... B n ). Тогда произведением отношения A на отношение B называется новое отношение С, состоящее только из множества атрибутов A 1, A 2, … A n, B 1, B 2,... B n и содержащее все кортежи, полученные путем дописывания к каждому кортежу отношения A каждый кортеж отношения B.
Объединение Пусть заданы отношение A(X 1, X 2, … X n ) и отношение B(X 1, X 2,... X n ). Тогда объединением отношении A и B называется новое отношение С, состоящее из тех же атрибутов X 1, X 2, … X n, и содержащее все такие кортежи k, что k принадлежит множеству кортежей отношения A или множеству кортежей отношения B.
Пересечение Пусть заданы отношение A(X 1, X 2, … X n ) и отношение B(X 1, X 2,... X n ). Тогда пересечением отношении A и B называется новое отношение С, состоящее из тех же атрибутов X 1, X 2, … X n, и содержащее все такие кортежи k, что k принадлежит множеству кортежей отношения A и множеству кортежей отношения B.
Разность Пусть заданы отношение A(X 1, X 2, … X n ) и отношение B(X 1, X 2,... X n ). Тогда разностью отношении A и B называется новое отношение С, состоящее из тех же атрибутов X 1, X 2, … X n, и содержащее все такие кортежи k, что k принадлежит множеству кортежей отношения A и не принадлежит множеству кортежей отношения B.
Естественное соединение Пусть заданы отношение A(A 1, A 2, … A n,X,…Y) и отношение B(X,Y,B 1, B 2,... B m ). Тогда естественным соединением отношения A и отношения B называется новое отношение С, состоящее только множества атрибутов A 1, A 2, … A n, X … Y, B 1, B 2,... B m и содержащее все кортежи, полученные путем дописывания к каждому кортежу отношения A - (A 1 :a1, A 2 :a2, … A n :an,X :x,…Y :y) недостающей части каждого кортежа r отношения B – (B 1 :b1, B 2 :b2,... B m :bm) для таких k из A и r из B, что значения атрибутов X,Y у k и r совпадают.
-соединение Соединением отношений A(A 1, A 2 …A n ) и B(B 1, B 2 … B n ) по операции :A 1 xA 2 x…A n xB 1 xB 2 …B n {T|F} называется новое отношение, содержащее все кортежи, получаемые путем соединения кортежей из исходных A и B и удовлетворяющие условию (A:B) = T.
Пример Заказы Id_клиентаТоварСтатус 1КартошкаДоставлено 1ОгурцыНа складе 2ПомидорыНа складе Клиенты IdИмя 1Вася Пупкин 2Петя Васечкин : Заказы.id_клиента == Клиенты.id && Заказы.Статус != Доставлено Заказы Клиенты Id_клиентаТоварСтатусIdИмя 1ОгурцыНа складе1Вася Пупкин 2ПомидорыНа складе2Петя Васечкин
Эквисоединение Если операция представляет из себя равенство каких-либо полей (наборов полей), то такое соединение называется эквисоединением. Пример: : Заказы.Id_клиента = Клиента.Id
Деление Результатом деления отношения A(A1, A2 … An) на отношение B(B1, B2 … Bn) по отношению C(A1, A2 … An, B1, B2 … Bn) называется новое отношение, содержащее все такие кортежи x из отношения A для которых выполняется условие: для любого y, принадлежащего множеству кортежей B, отношение C содержит кортеж x:y. A называется делимым, В – делителем, а C – посредником.
Пример A F1F B F3F C F1F2F3F A divide by B per C F1F2 12
Реляционная БД Реляционная база данных – это набор реляционных отношений (таблиц) и только их. Никаким другим образом (переменные, массивы) данные не представлены. Над реляционными таблицами можно осуществлять только операции описанные реляционной алгеброй. Причем результатом всех операции также являются реляционные отношения.
12 правил Кодда разработки реляционной СУБД 0.Основное (подразумеваемое правило). Система, которая рекламируется или провозглашается поставщиком как реляционная СУБД должна управлять базами данных исключительно способами, соответствующими реляционной модели. 1.Информационное правило. Вся информация, хранимая в реляционной базе данных, должна быть явно, на логическом уровне, представлена единственным образом: в виде значений в реляционных таблицах.
1.Правило гарантированного логического доступа. К каждому имеющемуся в реляционной базе атомарному значению должен быть гарантирован доступ с помощью указания имени реляционной таблицы, значения первичного ключа и имени столбца. Правило 2 указывает на роль первичного ключа при поиске информации в базе данных.Имя таблицы позволяет найти требуемую таблицу, имя столбца позволяет найти требуемый столбец, а первичный ключ позволяет найти строку, содержащую искомый элемент данных. 2.Правило наличия значения. В полностью реляционной СУБД должны иметься специальные индикаторы (отличные от пустой символьной строки или строки из одних пробелов и отличные от нуля или какого-либо другого числового значения) для выражения (на логическом уровне, систематично и независимо от типа данных) того факта, что значение отсутствует по меньшей мере по двум различным причинам: его действительно нет, либо оно неприменимо к данной позиции. СУБД должна не только отражать этот факт, но и распространять на такие индикаторы свои функции манипулирования данными независимо от их типа. Обычно такие индикаторы носят название NULL.
1.Правило динамического диалогового реляционного каталога. Описание базы данных выглядит логически как обычные данные, так что авторизованные пользователи и прикладные программы могут употреблять для работы с этим описанием тот же реляционный язык, что и при работе с обычными данными. 2.Правило исчерпывающего подъязыка данных. Реляционная система может поддерживать различные языки и режимы взаимодействия с пользователем (например, режим вопросов и ответов). Однако должен существовать по крайней мере один язык, операторы которого можно представить в виде строк символов в соответствии с некоторым четко определенным синтаксисом и который в полной мере поддерживает следующие элементы: –определение данных; –определение представлений; –обработку данных (интерактивную и программную); –условия целостности; –идентификация прав доступа; –границы транзакций (начало, завершение и отмена). Правило 5 требует, чтобы СУБД использовала язык реляционной базы данных. Такой язык должен поддерживать все основные функции СУБД - создание базы данных, чтение и ввод данных, реализацию защиты базы данных и т.д.
1.Правило модификации таблиц. В СУБД должен существовать корректный алгоритм, позволяющий автоматически для каждой таблицы определять во время ее создания, может ли она использоваться для вставки и удаления строк и какие из столбцов допускают модификацию, и заносящий полученную таким образом информацию в системный каталог. Это правило также называют правилом модификации представлений. Говоря простым языком оно гласит, что все представления подлежащие обновлению должны быть доступны для этого. Представлениями в реляционных СУБД называют такие виртуальные таблицы, которые формируются на основе запроса к реальным таблицам. 2.Правило множественности операций. Операции вставки, удаления и изменения данных должны быть применимы как к одной строке, так и ко множеству строк или всем кортежам таблицы в целом. Правило 7 акцентирует внимание на том, что базы данных по своей природе ориентированы на множества. Оно требует, чтобы операции добавления, удаления и обновления можно было выполнять над множествами строк.
1.Правило физической независимости. Диалоговые операторы и прикладные программы на логическом уровне не должны не должны зависеть от используемых способов хранения данных на носителях и методов обращения к ним. 2.Правило логической независимости. Диалоговые операторы и прикладные программы на логическом уровне должны на логическом уровне оставаться нетронутыми при внесении в базовые таблицы любых изменений, которые теоретически позволяют сохранить нетронутыми содержащиеся в этих таблицах данные. Правила 8 и 9 означают отделение пользователя и прикладной программы от низкоуровневой реализации базы данных.
1.Правило независимости условий целостности. Должна существовать возможность определить условия целостности, специфические для конкретной реляционной базы данных, на подъязыке реляционной базы данных и хранить их в каталоге, а не в прикладной программе. Правило 10 гласит, что язык базы данных должен поддерживать ограничительные условия, налагаемые на вводимые данные и действия, которые могут быть выполнены над данными. 2.Правило независимости от распределенности. Диалоговые операторы и прикладные программы на логическом уровне не должны страдать от совершаемого физического разнесения данных (если первоначально СУБД работала с нераспределенными данными) или перераспределения (если СУБД действительно распределенная). 3.Правило не нарушения реляционного языка. Если в реляционной СУБД имеется язык низкого уровня (для работы с отдельными строками), он не должен позволять нарушать или обходить правила, сформулированные на языке высокого уровня (множественном) и занесенные в системный каталог.
Элементы разработки реляционных БД Модель описания данных сущность-связь (ER- модель) Основные элементы: a)множества сущностей, b)атрибуты, c)связи. Сущность – это абстрактный объект определенного вида. Набор однородных сущностей образует множество сущностей. Множеству сущностей отвечает набор атрибутов, являющихся свойствами отдельных его представителей. Связи – это отношения между двумя или большим числом множеств сущностей.
Пример Фильмы Актеры Студии Название Год Жанр Ф.И.О.Адрес НазваниеАдрес Снимались Владеет