Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Теоретико-множественные операции реляционной алгебры.





Алгеброй называется множество объектов с заданной на нем совокупностью операции, замкнутых относительно этого множества, называемого основным множеством.

Основным множеством в реляционной алгебре является множество отношений. Все множество операций можно разделить на две группы: теоретико-множественные операции и специальные операции. В первую группу входят 4 операции. Три первые теоретико-множественные операции являются бинарными, то есть в них участвуют два отношения и они требуют эквивалентных схем исходных отношений.

Объединением двух отношении называется отношение, содержащее множество кортежей, принадлежащих либо первому, либо второму исходным отношениям, либо обоим отношениям одновременно.

Пусть заданы два отношения R1 = { r1 } , R2 = { r2 }, где r1 и r2 – соответственно кортежи отношений R1 и R2, то объединение R1 R2 = { r | r R1 Vr R2 }. Здесь r – кортеж нового отношения, V – операция логического сложения «ИЛИ».

Пересечением отношений называется отношение, которое содержит множество кортежей, принадлежащих одновременно и первому и второму отношениям R1 и R2:

R3 = R1 R2={ r | r R1 ^ r R2 }, здесь ^ – операция логического умножения (логическое «И»).

Разностью отношений R1 и R2 называется отношение, содержащее множество кортежей, принадлежащих R1 и не принадлежащих R2:

R5 = R1 \ R2 = { r | r R1 ^ r R2 }

Пересечением отношений называется отношение, которое содержит множество кортежей, принадлежащих одновременно и первому и второму отношениям R1 и R2:

R3 = R1 R2 ={ r | r R1 ^ r R2 }, здесь ^ – операция логического умножения («И»).

Разностью отношений R1 и R2 называется отношение, содержащее множество кортежей, принадлежащих R1 и не принадлежащих R2:

R5 = R1 \ R2 = { r | r R1 ^ r R2 }



Сцеплением, пли конкатенацией, кортежей с = <c1, с2, ..., сn> и q = <q1, q2, ..., qm> называется кортеж, полученный добавлением значений второго в конец первого. Сцепление с и q обозначается как (с , q).

(с, q) = <с1 с2, ... , сn, q1, q2, .... qm>

Здесь n – число элементов в первом кортеже с, m – число элементов во втором кортеже q.

Все предыдущие операции не меняли степени или арности отношений – это следует из определения эквивалентности схем отношений. Операция декартова произведения меняет степень результирующего отношения.

Расширенным декартовым произведением отношения R, степени n со схемой SR1=(А12...,Аn) и отношения R2 степени m со схемой SR2=(В12, ... , Вm) называется отношение R3 степени n+m со схемой

SR3 = (А1, А2, ... , Аn, В1, В2, ..., Вm), содержащее кортежи, полученные сцеплением каждого кортежа r отношения R1 с каждым кортежем q отношения R2.

То есть если R1 = { r }, R2 = { q }

R1 R2 = {(r, q) | r R1 ^ q R2}.

Специальные операции реляционной алгебры.

Первой специальной операцией реляционной алгебры является горизонтальный выбор, или операция фильтрации, или операция ограничения отношений.

Пусть а – булевское выражение, составленное из термов сравнения с помощью связок И (^), ИЛИ (V), НЕ (–) и, возможно, скобок. В качестве термов сравнения допускаются:

а) терм А ос а, где А – имя некоторого атрибута, принимающего значения из домена D; а – константа, взятая из того же домена D, a D; ос – одна из допустимых для данного домена D операций сравнения;

б) терм А ос В, где А, В – имена некоторых Q-сравнимых атрибутов, то есть атрибутов, принимающих значения из одного и то же домена D.

Тогда результатом операции выбора, или фильтрации, заданной на отношении R в виде булевского выражения, определенного на атрибутах отношения R, называется отношение R[G], включающее те кортежи из исходного отношения, для которых истинно условие выбора или фильтрации:

R[G(r)] = {r | r R ^ G(r) = "Истина"}

Следующей специальной операцией является операция проектирования. Пусть R – отношение, SR = (А1, ... , Аn) – схема отношения R. Обозначим через В подмножество [ Аi]; В { Аi } При этом пусть В1 – множество атрибутов из { Ai }, не вошедших в В. Если В = {A1j.A2j .....Akj}, В1 = {А1j,А2j,...,Аkj}и r = <а1j, а2j,...,аkj >, аkj Аkji, то r [В], s= < a1j, а2 j, ... , аm, > ; аm, Аmj

Проекцией отношения R на набор атрибутов В, обозначаемой R[B], называется отношение со схемой, соответствующей набору атрибутов В SR|B| = В, содержащему кортежи, получаемые из кортежей исходного отношения R путем удаления из них значений, не принадлежащих атрибутам из набора В.

R[B] = {r[В]}

По определению отношений все дублирующие кортежи удаляются из результирующего отношения.

Операция проектирования, называемая иногда также операцией вертикального выбора, позволяет получить только требуемые характеристики моделируемого объекта. Чаще всего операция проектирования употребляется как промежуточный шаг в операциях горизонтального выбора, или фильтрации. Она используется самостоятельно на заключительном этапе получения ответа на запрос.

Следующей специальной операцией реляционной алгебры является операция условного соединения.

В отличие от рассмотренных специальных операций реляционной алгебры: фильтрации и проектирования, которые являются унарными, то есть производятся над одним отношением, операция условного соединения является бинарной, то есть исходными для нее являются два отношения, а результатом – одно.

Пусть R = {r}, Q = { q } – исходные отношения, SR, SQ – схемы отношений R и Q соответственно.

SR = (А1, А2, ... , Ak): SQ = (В1 В2, ... , Bm), где А,, В, – имена атрибутов в схемах отношений R и Q соответственно. При этом полагаем, что заданы наборы атрибутов А и В

А { Аi } ,j=1,k; В { Bj } j=1,m, и эти наборы состоят из Q-сравнимых атрибутов.

Тогда соединением отношений R и Q при условии р будет подмножество декартова произведения отношений R и Q, кортежи которого удовлетворяют условию р, рассматриваемому как одновременное выполнение условий:

r.Aj Qj Вi, : i=l,k, где k – число атрибутов, входящих в наборы А и В, а Qj – конкретная операция сравнения.

Aj Qj Вi Di Qi – i-й предикат сравнения, определяемый из множества допустимых на домене Di операций сравнения.

R [ Р ] Q = { r.q) | (r. q) | r.A Qj q.Bj - «Истина», i=l,k}

Последней операцией, включаемой в набор операций реляционной алгебры, является операция деления.

Для определения операции деления рассмотрим сначала понятие множества образов.

Пусть R – отношение со схемой SR = (A1, A2 ,..., Ak);

Пусть А – некоторый набор атрибутов А { Аi } i=l,k , А1–набор атрибутов, не входящих в множество А.

Пересечение множеств А и А1 пусто: А А1 = 0; объединение множеств равно множеству всех атрибутов исходного отношения: A А1 = SR.

Тогда множеством образов элемента у проекции R[А] называется множество таких элементов у проекции R[A1] , для которых сцепление (х, у) является кортежами отношения R, то есть

QA(x) = {у | у R[A1] ^ (х, у) R} – множество образов.

Дадим теперь определение операции деления. Пусть даны два отношения R и Т соответственно со схемами: SR = (А1, А2, ... , Ak); ST =-(В1, В2, ... , Вm);

А и В – наборы атрибутов этих отношений, одинаковой длины (без повторений);

А SR ; В ST. Атрибуты А1 – это атрибуты из R, не вошедшие в множество А.

Пересечение множеств А А1 = – пусто и A А1 = SR. Проекции R[A] и Т[В] совместимы по объединению, то есть имеют эквивалентные схемы: SR|A|~ ST[B].

Тогда операция деления ставит в соответствие отношениям R и Т отношение

Q = R[A:B]T, кортежи которого являются теми элементами проекции R[A1], для которых Т[В] входит в построенные для них множество образов:

R[A:B]T = {r | r R[A1] ^ Т[В] (у | у R [А] ^ (r, у) R } }.

Операция деления удобна тогда, когда требуется сравнить некоторое множество характеристик отдельных атрибутов.

Различные архитектурные решения, используемые при реализации многопользовательских СУБД. Централизованная архитектура. Технология с сетью и файловым сервером (архитектура «файл-сервер»). Технология «клиент – сервер». Трехзвенная (многозвенная) архитектура «клиент – сервер».

Понятие базы данных изначально предполагало возможность решения многих задач несколькими пользователями. Важнейшей характеристикой современных СУБД является наличие многопользовательской технологии работы. Разная реализация таких технологий в разное время была связана как с основными свойствами вычислительной техники, так и с развитием ПО.

Централизованная архитектура.При использовании этой технологии база данных, СУБД и прикладная программа (приложение) располагаются на одном компьютере (мэйнфрейме или персональном компьютере) (рис.1). Для такого способа организации не требуется поддержки сети и все сводится к автономной работе. Работа построена следующим образом:

База данных в виде набора файлов находится на жестком диске компьютера.

На том же компьютере установлены СУБД и приложение для работы с БД.

Пользователь запускает приложение. Используя предоставляемый приложением пользовательский интерфейс, он инициирует обращение к БД на выборку/обновление информации.

Все обращения к БД идут через СУБД, которая инкапсулирует внутри себя все сведения о физической структуре БД.

СУБД инициирует обращения к данным, обеспечивая выполнение запросов пользователя.

Результат СУБД возвращает в приложение.

Приложение, используя пользовательский интерфейс, отображает результат выполнения запросов.

Рис. 1. Централизованная архитектура

Подобная архитектура использовалась в первых версиях СУБД DB2, Oracle. Основным недостатком этой модели является резкое снижение производительности при увеличении числа пользователей.

Технология с сетью и файловым сервером (архитектура "файл-сервер").Увеличение сложности задач, появление персональных компьютеров и локальных вычислительных сетей явились предпосылками появления новой архитектуры файл-сервер. Эта архитектура баз данных с сетевым доступом предполагает назначение одного из компьютеров сети в качестве выделенного сервера, на котором будут храниться файлы базы данных. В соответствии с запросами пользователей файлы с файл-сервера передаются на рабочие станции пользователей, где и осуществляется основная часть обработки данных. Центральный сервер выполняет в основном только роль хранилища файлов, не участвуя в обработке самих данных (рис. 2.).

Рис. 2. Архитектура "файл-сервер".

Работа построена следующим образом:

БД в виде набора файлов находится на жестком диске специально выделенного компьютера (файлового сервера).

Существует локальная сеть, состоящая из клиентских компьютеров, на каждом из которых установлены СУБД и приложение для работы с БД.

На каждом из клиентских компьютеров пользователи имеют возможность запустить приложение. Используя предоставляемый приложением пользовательский интерфейс, он инициирует обращение к БД на выборку/обновление информации.

Все обращения к БД идут через СУБД, которая инкапсулирует внутри себя все сведения о физической структуре БД, расположенной на файловом сервере.

СУБД инициирует обращения к данным, находящимся на файловом сервере, в результате которых часть файлов БД копируется на клиентский компьютер и обрабатывается, что обеспечивает выполнение запросов пользователя (осуществляются необходимые операции над данными).

При необходимости данные отправляются назад на файловый сервер с целью обновления БД.

Результат СУБД возвращает в приложение.

Приложение, используя пользовательский интерфейс, отображает результат выполнения запросов.

В рамках архитектуры "файл-сервер" были выполнены первые версии популярных так называемых настольных СУБД, таких, как dBase и Microsoft Access. Основные недостатки данной архитектуры:

При одновременном обращении множества пользователей к одним и тем же данным производительность работы резко падает.

Неоптимально расходуются ресурсы клиентского компьютера и сети. В результате возрастает сетевой трафик и увеличиваются требования к аппаратным мощностям пользовательского компьютера.

Используется навигационный подход, ориентированный на работу с отдельными записями.

Низкий уровень безопасности – хищение и нанесение вреда, внесение ошибочных изменений.

Недостаточно развитый аппарат транзакций служит источником ошибок в плане нарушения смысловой и ссылочной целостности информации при одновременном внесении изменений.

Технология "клиент – сервер".Использование технологии "клиент - сервер" предполагает наличие некоторого количества компьютеров, объединенных в сеть, один из которых выполняет особые управляющие функции (является сервером сети).

Архитектура "клиент - сервер" разделяет функции приложения пользователя (клиента) и сервера. Приложение-клиент формирует запрос к серверу, на котором расположена БД, на структурном языке запросов SQL. Удаленный сервер принимает запрос и переадресует его SQL-серверу БД. SQL-сервер – специальная программа, управляющая удаленной БД. SQL-сервер обеспечивает выполнение запроса в базе данных, формирование результата выполнения запроса и выдачу его приложению-клиенту. Клиентский компьютер лишь отсылает запрос к серверной БД и получает результат, после чего интерпретирует его необходимым образом и представляет пользователю. Т.к. клиентскому приложению посылается результат выполнения запроса, по сети "путешествуют" только те данные, которые необходимы клиенту. В итоге снижается нагрузка на сеть. Поскольку выполнение запроса происходит там же, где хранятся данные (на сервере), нет необходимости в пересылке больших пакетов данных. SQL-сервер оптимизирует полученный запрос таким образом, чтобы он был выполнен в минимальное время с наименьшими накладными расходами. Архитектура системы представлена на рис. 3.

Все это повышает быстродействие системы и снижает время ожидания результата запроса. При выполнении запросов сервером существенно повышается степень безопасности данных, поскольку правила целостности данных определяются в базе данных на сервере и являются едиными для всех приложений, использующих эту БД. Таким образом, исключается возможность определения противоречивых правил поддержания целостности.

Рис. 3. Архитектура "клиент – сервер".

Итак, в результате работа построена следующим образом:

БД в виде набора файлов находится на жестком диске специально выделенного компьютера (сервера сети).

СУБД располагается также на сервере сети.

Существует локальная сеть, состоящая из клиентских компьютеров, на каждом из которых установлено клиентское приложение для работы с БД.

На каждом из клиентских компьютеров пользователи имеют возможность запустить приложение. Используя предоставляемый приложением пользовательский интерфейс, он инициирует обращение к СУБД, расположенной на сервере, на выборку/обновление информации. Для общения используется специальный язык запросов SQL, т.е. по сети от клиента к серверу передается лишь текст запроса.

СУБД инкапсулирует внутри себя все сведения о физической структуре БД, расположенной на сервере.

СУБД инициирует обращения к данным, находящимся на сервере, в результате которых на сервере осуществляется вся обработка данных и лишь результат выполнения запроса копируется на клиентский компьютер. Таким образом СУБД возвращает результат в приложение.

Приложение, используя пользовательский интерфейс, отображает результат выполнения запросов.

Функции приложения-клиента: посылка запросов; интерпретация запросов; представление результатов.

Функции серверной части: прием запросов; обеспечение системы безопасности и разграничение доступа; управление целостностью БД; реализация стабильности многопользовательского режима работы.

В архитектуре "клиент - сервер" работают так называемые "промышленные" СУБД. Промышленными они называются из-за того, что именно СУБД этого класса могут обеспечить работу ИС масштаба среднего и крупного предприятия, организации, банка (MS SQL Server, Oracle, InterBase и т.д.).

SQL-сервер обслуживается отдельным сотрудником или группой сотрудников. Они управляют физическими характеристиками БД, производят оптимизацию, настройку и переопределение различных компонентов БД, создают новые БД, изменяют существующие и т.д.

Рассмотрим основные достоинства данной архитектуры по сравнению с архитектурой "файл-сервер":

Существенно уменьшается сетевой трафик.

Уменьшается сложность клиентских приложений (большая часть нагрузки ложится на серверную часть), а, следовательно, снижаются требования к аппаратным мощностям клиентских компьютеров.

Наличие специального программного средства – SQL-сервера – приводит к тому, что существенная часть проектных и программистских задач становится уже решенной.

Существенно повышается целостность и безопасность БД.

К числу недостатков можно отнести более высокие финансовые затраты на аппаратное и программное обеспечение, а также определенные трудности со своевременным обновлением клиентских приложений на всех компьютерах-клиентах.

Трехзвенная (многозвенная) архитектура "клиент – сервер".Трехзвенная (в некоторых случаях многозвенная) архитектура представляет собой дальнейшее совершенствование технологии "клиент - сервер". Рассмотрев архитектуру "клиент - сервер", можно заключить, что она является 2-звенной: первое звено – клиентское приложение, второе звено – сервер БД + сама БД. В трехзвенной архитектуре вся бизнес-логика (деловая логика), ранее входившая в клиентские приложения, выделяется в отдельное звено, называемое сервером приложений. При этом клиентским приложениям остается лишь пользовательский интерфейс. Так, в качестве клиентского приложения в описанном выше примере выступает Web-браузер.Теперь при изменении бизнес-логики более нет необходимости изменять клиентские приложения и обновлять их у всех пользователей. Кроме того, максимально снижаются требования к аппаратуре пользователей.

Итак, в результате работа построена следующим образом:

БД ввиде набора файлов нах-ся на жестком диске специально выделенного компьютера(сервера сети).

СУБД располагается также на сервере сети.

Существует специально выделенный сервер приложений, на котором располагается программное обеспечение (ПО) делового анализа (бизнес-логика).

Существует множество клиентских компьютеров, на каждом из которых установлен так называемый "тонкий клиент" – клиентское приложение, реализующее интерфейс пользователя.

На каждом из клиентских компьютеров пользователи имеют возможность запустить приложение – тонкий клиент. Используя предоставляемый приложением пользовательский интерфейс, он инициирует обращение к ПО делового анализа, расположенному на сервере приложений.

Сервер приложений анализирует требования пользователя и формирует запросы к БД. Для общения используется специальный язык запросов SQL, т.е. по сети от сервера приложений к серверу БД передается лишь текст запроса.

СУБД инкапсулирует внутри себя все сведения о физической структуре БД.

СУБД инициирует обращения к данным, находящимся на сервере, в результате которых результат выполнения запроса копируется на сервер приложений.

Сервер приложений возвращает результат в клиентское приложение (пользователю).

Приложение, используя пользовательский интерфейс, отображает результат выполнения запросов.

Понятие целостности базы данных. Логическая и физическая целостность базы данных. Классификация ограничений целостности. Проблема целостности базы данных. Транзакции и блокировки. Синхронизация работы пользователей.

Обеспечение целостности данных является важнейшей задачей при проектировании и эксплуатации систем обработки данных (СОД). Проблема целостности состоит в обеспечении ... правильности данных в базе данных в любой момент времени». Целостность – актуальность и непротиворечивость информации, ее защищенность от разрушения и несанкционированного изменения.

Целостность является одним из аспектов информационной безопасности наряду с доступностью – возможностью с приемлемыми затратами получить требуемую информационную услугу, и конфиденциальностью – защитой от несанкционированного прочтения.

Целостность данных – неотъемлемое свойство базы данных, и ее обеспечение является важнейшей задачей проектирования БнД. Целостность данных описывается набором специальных предложений, называемых ограничениями целостности. Ограничения целостности представляют собой утверждения о допустимых значениях отдельных информационных единиц и связях между ними. Эти ограничения определяются в большинстве случаев особенностями предметной области. При выполнении операций над БД проверяется выполнение ограничений целостности. Ограничения целостности могут классифицироваться по разным признакам (рис.).

Различают логическую и физическую целостность БД. Логическая целостность– состояние БД, характеризующееся отсутствием нарушений ограничений целостности, присущих логической модели данных (т.е. неявных ограничений), и явных ограничений, заданных декларативным или процедурным путем. Физическая целостностьотсутствие нарушений спецификаций схемы хранения, а также физических разрушений данных на носителе.

Для контроля целостности БД применяется также механизм триггеров. Триггер – это действие, которое активизируется при наступлении указанного события (вставки, удаления, обновления записи). Триггеры специфицируются в схеме базы данных. Более широким понятием по отношению к триггеру является понятие хранимая процедура. Хранимые процедуры описывают фрагменты логики приложения, хранятся и исполняются на сервере, что позволяет улучшать характеристики производительности.

Транзакции.Транзакция представляет собой законченную совокупность действий над БД, которая переводит ее из одного целостного в логическом смысле состояния в другое.

К транзакциям предъявляется набор требований, известный под названием ACID (Atomicity, Consistency, Isolation, Durability). Эти требования вытекают из определения транзакции.

Атомарность (atomicity). Транзакция представляет собой некоторый набор законченных действий. Система обеспечивает их выполнение по принципу «все или ничего» - либо выполняются все действия, тогда транзакция «фиксируется»; либо, если возможность выполнить все действия отсутствует, например, в случае сбоев, транзакция «откатывается» назад, а БД остается в исходном состоянии.

Согласованность (consistency). Предполагается, что в результате выполнения транзакции система переходит из одного корректного состояния в другое.

Изолированность (isolation). При выполнении транзакции данные могут временно находиться в несогласованном состоянии. Такие данные не должны быть видны другим транзакциям, пока изменения не будут завершены (т.е. пока вес модификации не будут формально зафиксированы).

Долговечность (durability). Если транзакция зафиксирована, то ее результаты должны быть долговечными. Состояния всех объектов сохранятся даже в случае аппаратных или системных сбоев.

Блокировки.Наиболее популярные алгоритмы управления одновременным доступом основаны на механизме блокировок. Блокировка заключается в запрещении некоторых операций над данными, если ее обрабатывает другой пользователь. В такой схеме всякий раз, когда транзакция пытается получить доступ к какой-либо единице данных, на эту единицу накладывается блокировка.

Блокировки накладываются в соответствии с правилами совместимости блокировок, исключающими конфликты чтение-запись, запись-чтение и запись-запись. Сериализуемость транзакций заведомо гарантируется, если блокировки, относящиеся к одновременно выполняемым транзакциям, удовлетворяют следующему правилу: «Ни одна блокировка от имени какой-либо транзакции не должна устанавливайся, пока не будет снята ранее установленная блокировка». Это правило известно под названием двухфазового блокирования, поскольку транзакция проходит при этом сначала фазу роста, когда она устанавливает блокировки, а затем фазу сжатия, когда блокировки снимаются. Блокировка может выполняться автоматически, а может и управляться пользователем.

Взависимости от блокируемых информационных единиц можно выделить следующие уровни блокирования: база данных, совокупность связанных таблиц, таблица, совокупность связанных записей, запись, поле. Объектами блокирования могут являться страница, группа страниц, область базы данных.

Некоторые системы предусматривают динамическую схему блокировки, заключающуюся в том, что сначала транзакция блокирует большую информационную единицу, например страницу.

Различают пессимистические и оптимистические блокировки. Пессимистические блокировки запрещают доступ к данным других транзакций, когда какая-то транзакция уже работает с ними. Оптимистические блокировки разрешают параллельное выполнение транзакций, отслеживают случаи возникновения конфликтов и обеспечивают их разрешение.

Синхронизация работы пользователей.Тиражирование – используемая в РБнД технология, предусматривающая поддержку копий всей БД или ее фрагментов в нескольких узлах сети. Копия базы данных, являющаяся членом набора других копий, которые могут быть синхронизированы между собой, называется репликой. Копии БД обычно приближены к местам использования информации. Как синоним понятию «тиражирование» используется термин «репликация». Процесс обновления реплик, при котором происходит передача обновляемых записей и других объектов и согласование дублирующихся данных, называется синхронизацией. Обмен данными между репликами может быть как односторонним, так и двусторонним. Кроме того, возможна синхронизация реплик под управлением синхронизатора. В отличие от собственно распределенных систем, в которых, при выполнении распределенных запросов реализуется протокол двухфазной фиксации, в системах с реплицированными базами данных обычно используется инструментарий асинхронной репликации.

В настоящее время многие известные СУБД предлагают пользователям возможности репликации. В некоторых системах используются метафоры из издательской деятельности (издатель, публикация, подписчик).Совокупность данных, которые могут подвергаться тиражированию, называется публикацией.









ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...

Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...

ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2021 zdamsam.ru Размещенные материалы защищены законодательством РФ.