КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Лекция №7. Название лекции: Введение в теорию реляционных СУБД
Название лекции: Введение в теорию реляционных СУБД. План: 1. Основные термины и понятия реляционных БД. 2. Основные реляционные операции 3. Правила Кодда
1) Основные термины и понятия реляционных БД. Перед рассмотрением правил Кодда приведём основные термины и понятия реляционных БД. Объект – сущность предметной области. Атрибут (имя Атрибута, реквизит) – параметр объекта предметной области. (Свойство некоторой сущности). Пример: Фамилия, Возраст – свойства объекта сотрудник. Домен (атрибута) – множество допустимых значений, которые может принимать атрибут. Пример: значение атрибута Возраст должно принадлежат интервалу [18…80] Схема отношения – конечное множество [имен] атрибутов, определяющих объект. (Мощность схемы отношения = арности кортежей.) Отношение – конечное множество кортежей (подмножество прямого произведения), составленных из допустимых значений атрибутов схемы отношений.
Ключ (первичный ключ) – множество атрибутов, значение которых уникальным образом идентифицирует кортеж в отношении. Это означает, что для любого содержания отношения никакие два различных кортежа не могут иметь одно и тоже значение атрибутов ключа Схема реляционной базы – множество используемых в приложениях схем отношений. Реляционная база данных (РБД) – множество отношений (предполагается, что отношения логически связаны между собой). Реляционные операции – операции над отношениями. Результатом любой реляционной операции является также отношение. Реляционное выражение – выражение над отношениями, составленное из реляционных операций. Реляционное выражение – тоже отношение. Реляционный запрос – описание свойств (условий), которые должны удовлетворять интересующие пользователя данные. Эквивалентной формой описания запроса является реляционное выражение. СУБД – набор программных средств, обеспечивающих хранение и обработку данных в базе. Взаимодействие прикладной программы с базой данных выполняется через СУБД. Приложение взаимодействует с СУБД на некотором языке. Язык описания данных (ЯОД, DDL) – язык, позволяющий описать структуру БД и создать БД с требуемой структурой. Язык манипулирования данными (ЯМД, DML) – язык, позволяющий описать действия по чтению, добавлению, обновлению и удалению данных в БД. Язык запросов – часть языка манипулирования данными, предназначенный для удобного определения сложных реляционных запросов. Целостность базы данных – свойство БД, при наличии, которой БД содержит полную и непротиворечивую информацию, необходимую и достаточную для корректного функционирования приложений. Ограничения целостности – набор условий, определяющие целостность базы данных. Различают ограничения диапазонов возможных значений атрибутов и структурные ограничения (т.е. ограничения на кортежи, имеющиеся в отношениях). Примером ограничения диапазонов является определение доменов атрибутов. Примером структурного ограничения является определение ключей. Транзакция – неделимая операция по изменению содержания БД. Выполнение транзакции завершается двумя способами: - отмена транзакции (возврат в предыдущее состояние); - регистрация транзакции: проверка и, при необходимости, восстановление целостности БД. Итак, до и после выполнения транзакции база данных гарантированно находится в целостном состоянии. В течение выполнения транзакции целостность базы данных не контролируется. Защита баз данных – это: - защита БД от физических и логических разрушений; - обеспечение санкционированного доступа к данным. Разрушенная база данных не обладает целостностью и требует восстановления. Каждый пользователь может иметь свои санкции для доступа к базе данных (свою видимую область БД, свои права на выполнение каждой из операций над данными). Для предотвращения физического доступа к данным используется хранение закодированных данных. Кодирование и декодирование автоматически выполняется СУБД незаметно для приложений и пользователей.
2) Основные реляционные операции Операция объединения (соединения) – объединение множества кортежей двух отношений в одно общее отношение. Операция определена для двух отношений одинаковой арности. Пусть R и S – отношения арности n. Объединение RÈS = { (V1,V2 … Vn) │(V1…Vn)ÎR Ú(V1 … Vn)ÎS } Операция разности отношений – разностью двух отношений арности n называется отношение (арности n), в которую включены кортежи первого отношения, не принадлежащие одновременно второму отношению. Пусть R и S – отношения арности n. Разность: R – S = { (V1 … Vn) | (V1 … Vn)ÎR Ù (V1 … Vn)ÏS} Операция декартового произведения – двух отношений R (арности n), и S (арности m) называется отношение арности m+n, кортежи которого составлены из кортежей R и S. Пусть R – отношение арности n, S – отношение арности m. Декартовое произведение для R= {(V1 … Vn)} и S= {(W1 … Wm)} это: RхS = {(V1…Vn, W1…Wm) │ (V1…Vn)ÎRÙ(W1…Wm)ÎS} Операция проекции – это унарная операция, заключающаяся в проецировании отношения на заданную схему (отношения). Схема проецирования получается из схемы исходного отношения, удалением ряда атрибутов и (или) перестановкой атрибутов исходной схемы. Пусть R – отношение арности n, обозначим πi1,i2…im (R) – проекцию R на атрибуты i1, i2, …im, где 1 ≤ ij ≤ n, 1 ≤ j ≤ m Проекция: πi1,i2…im (R) = {(a1 … am) | $ (b1 … bn) Î R | aj = bij " j = 1 … m } Пример: проекция π2,1(R) – составлена из значений второго и первого элемента схемы отношения R. Операция селекции – это унарная операция над отношением, заключающаяся в выборе из этого отношения множества кортежей, удовлетворяющих заданному условию. Пусть F (предикат на множества атрибутов) – логическая формула, в которую входят: - константы; - имена атрибутов; - функции; - операции арифметических отношений <, >, ≤, ≥≠, =; - логические операции Ù,Ú,¬. Селекцией отношения R по формуле F – это отношение: δF(R)={(V1…Vn)ÎR| F≡1} Естественное соединение. Пусть отношение А имеет атрибуты{X1, X2…Xm, Y1, Y2…Yn}, а отношение В {Y1, Y2…Yn, Z1, Z2, …Zk}. Атрибуты Y1, Y2 … Yn, и только они являются общими для этих отношений. Пусть атрибуты с одинаковыми именами определены на одних и тех же доменах. Для простоты множества атрибутов обозначим буквами: X,Y,Z Естественным соединением А и В (A Join B) называется отношение с атрибутами X, Y, Z, состоящими из кортежей (x, y, z), таких, для которых в отношении А атрибуты X=xÙY=y, при этом в отношении В атрибуты Y=yÙZ=z. (A Join B) JoinС = A Join (B Join C) Пример: А = {код, имя, статус, город} – поставщики, В = {номер, вес, город} – детали
Отношение A:
Отношение В:
Отношение A Join B:
Другие примеры операций над отношениями: R:
S:
R È S:
& Схему необходимо выбрать дополнительно R – S:
R ´ S
pA,C (R):
δB=b (R)
3) Правила Кодда (требования к реляционным БД) Большинство СУБД, распространённых на ПК, принято считать реляционными, хотя они таковыми не являются в полной мере. Кроме представления данных в виде двумерных таблиц, принадлежность к разряду реляционных систем определяется рядом признаков, сформулированных Коддом, получивших название правил Кодда. Перечислим эти правила: 1) Явное представление данных. Все данные должны быть представлены явно и их значения должны рассчитываться косвенными алгоритмами (исключение – однозначные отображения). Пример: если, явно не указан пол, то его нельзя (ошибочно) получать из фамилии, т.к. различные алгоритмы интерпретации фамилии в различных приложениях могут вызвать противоречия (нарушить целостность) в БД. Для явного представления нужны типы: числа, строки, даты, время и т.д. 2) Гарантированный доступ к данным. Вся информация в БД должна быть доступной для приложения. Выделение любого значения в РБД выполняется при указании: а) имени отношения; б) указателя на кортеж (например, значение первичного ключа кортежа); в) имени атрибута; (имя_отношения, первичный ключ, атрибут) 3) Полная обработка неопределенных значений. Неопределенные значения, отличные от любого определенного значения, должны поддерживаться для всех типов данных при выполнении всех операций. 4) Доступ к базе данных в терминах реляционной модели. Описание БД (перечень отношений, определения схем отношений и ключей, статистическая информация и т.д.) должно быть выполнено на реляционном языке. Пользователь должен иметь доступ к этой информации с помощью реляционного языка. Т.е. должна быть возможность администрирования баз данных независимо от приложений. 5) Полнота подмножества реляционного языка. Реляционная схема может поддерживать несколько языков, по крайней мере, язык DDL и DML. Однако хотя бы один из языков должен иметь синтаксис предложений, поддерживающий следующие понятия: - определение данных (отношения, атрибуты, домены, ключи, ограничения целостности); - определение виртуальных (мнимых) отношений образованных с помощью реляционных выражений на основе одного или нескольких отношений (определение представлений); - манипулирование данными (интерактивное или программное); - ограничение целостности; - санкционированный доступ; - управление транзакциями (начало транзакции, фиксация выполнения, отказ от выполнения).
6) Обновляемость представлений. Все представления (виртуальные отношения) должны автоматически обновляться при модификации данных в базовых отношениях. Если, например, A= R È S, и А – это представление, то А должно обновляться как только меняется R или S. 7) Наличие высокоуровнего языка манипулирования данными. Операции вставки, обновления и удаления должны применяться к отношению в целом: обеспечивая контроль над целостностью базы данных при модификации отношений. При выполнении вставки над отношением в целом легко проверить уникальность первичного ключа, ограничения на значения и пр. 8) Физическая независимость данных. Прикладные программы не должны зависеть от используемых способов хранения данных на носителях информации и методов доступа к ним. Физически независимые обеспечивает работоспособность приложений при изменении расположения данных в сети. 9) Логическая независимость данных. Прикладные программы не должны зависеть от реализации любого из используемых представлений (виртуальных отношений). Определив виртуальные отношение в рамках БД, можно разрабатывать приложения, использующие это отношение, не беспокоясь о том, что структура БД изменится и виртуальные отношение будет строиться на основе другого реляционных выражения. 10) Независимость контроля целостности. Все ограничения целостности и внешнее представления (виртуальные отношения, отчеты) должны определяться не в приложениях, а должны быть определены с помощью языка определения данных и сохранения в каталоге (словаре) базы данных. 11) Дистрибутивная независимость. Реляционная система должна быть распространяема и переносима. Создание разнородных компьютерных систем требует обеспечения доступа к базам данных в различных OS и на различных платформах. Дистрибутивная независимость предполагает полную реализацию СУБД для различных платформ или реализацию коммуникационных блоков в составе СУБД, позволяющих обмениваться данными различным СУБД. 12) Согласования языковых уровней. Если реляционная система имеет низкоуровневый язык доступа (элемент доступа – запись) и высокоуровневый язык доступ (элемент доступа – отношения). То выполнение низкоуровневых команд должно производиться с контролем целостности, так же как и при высокоуровневых командах.
Дата добавления: 2014-01-05; Просмотров: 500; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |