Тема_2 (1122332), страница 3
Текст из файла (страница 3)
Кузнецов. Базы данных.36 Понятие модели даНеформальное введение в реляционную модель данных (5)Реляционные структуры данных (2)Такая «таблица» со множеством столбцов {A1, A2, …, An}, вкоторой каждый столбец Ai может содержать значения измножества Ti = {vi1, vi2, …, vim} (все множества конечны), вматематическом смысле представляет собой отношение надмножествами {T1, T2, …, Tn}.В математике отношением над множествами {T1, T2, …, Tn}называется подмножество декартова произведения этихмножеств, т.е.
некоторое множество кортежей {{v1, v2, …, vn}},где vi ∈ Ti.Поэтому для обозначения родовой структуры Кодд сталиспользовать термин отношение (relation), а дляобозначения элементов отношения – термин кортеж.Соответственно, модель данных получила названиереляционной модели.16.09.2008С.Д. Кузнецов. Базы данных.37 Понятие модели даНеформальное введение в реляционную модель данных (6)Реляционные структуры данных (3)Схема БД в реляционной модели данных – этонабор именованных заголовков отношений видаHi = {<Ai1, Ti1>, < Ai2, Ti2 >, …, < Aini, Tini >}.Ti называется доменом атрибута Ai.По Кодду, каждый домен Ti являетсяподмножеством значений некоторого базовоготипа данных Ti+, а значит, к его элементамприменимы все операции этого базового типав конце 1960-х гг.
базовыми типами данных считалисьтипы данных распространенных тогда языковпрограммирования;в IBM наиболее популярными языками были PL1 иCOBOL.16.09.2008С.Д. Кузнецов. Базы данных.38 Понятие модели даНеформальное введение в реляционную модель данных (7)Реляционные структуры данных (4)Реляционная база данных в каждый момент временипредставляет собой набор именованных отношений, каждоеиз которых обладает заголовком, таким как он определен всхеме БД, и телом.Имя отношения Ri совпадает с именем заголовка этогоотношения HRi.Тело отношения BRi – это множество кортежей вида {<Ai1, Ti1,vi1>, < Ai2, Ti2, vi2 >, …, < Aini, Tini, vini>}, где vij ∈ Tij.Во время жизни БД тела отношений могут изменяться, новсе содержащиеся в них кортежи должны соответствоватьзаголовкам соответствующих отношений.16.09.2008С.Д.
Кузнецов. Базы данных.39 Понятие модели даНеформальное введение в реляционную модель данных (8)Манипулирование реляционными данными (1)К отношениям, вообще говоря, применимы обычныетеоретико-множественные операции: объединение,пересечение, вычитание, взятие декартова произведения.Для двух множеств S1 {s1} и S2 {s2} результатомоперации объединения этих двух множествS1 UNION S2 является множество S {s} такое,что s ∈ S1 или s ∈ S2 .Результатом операции пересеченияS1 INTERSECT S2 является множество S {s}такое, что s ∈ S1 и s ∈ S2 .Результатом операции вычитания S1 MINUS S2является множество S {s} такое, что s ∈ S1 и s ∉ S216.09.2008С.Д. Кузнецов.
Базы данных.40 Понятие модели даНеформальное введение в реляционную модель данных (9)Манипулирование реляционными данными (2)Понятно, что эти операции применимы к любым теламотношений, но результатом не будет являться отношение,если у отношений-операндов не совпадают заголовки.Кодд предложил в качестве средства манипулированияреляционными базами данных специальный наборопераций, которые гарантированно производят отношения.Этот набор операций принято называть реляционнойалгеброй Кодда, хотя он и не является алгеброй вматематическом смысле этого термина, посколькунекоторые бинарные операции этого набора применимы не кпроизвольным парам отношений.16.09.2008С.Д. Кузнецов.
Базы данных.41 Понятие модели даНеформальное введение в реляционную модель данных (10)Манипулирование реляционными данными (3)В алгебре Кодда имеется деcять операций: объединение (UNION), пересечение (INTERSECT), вычитание (MINUS), взятие расширенного декартова произведения (TIMES), переименование атрибутов (RENAME), проекция (PROJECT), ограничение (WHERE), соединение (Θ-JOIN), деление (DIVIDE BY) и присваивание.Если не вдаваться в некоторые тонкости, то почти всеоперации этого набора обладают очевидной и простойинтерпретацией.16.09.2008С.Д. Кузнецов. Базы данных.42 Понятие модели даНеформальное введение в реляционную модель данных (11)Манипулирование реляционными данными (4)При выполнении операции объединения (UNION) двухотношений с одинаковыми заголовками производитсяотношение, включающее все кортежи, входящие хотя бы водно из отношений-операндов.Операция пересечения (INTERSECT) двух отношений содинаковыми заголовками производит отношение,включающее все кортежи, входящие в оба отношенияоперанда.Отношение, являющееся разностью (MINUS) двухотношений с одинаковыми заголовками, включает всекортежи, входящие в отношение-первый операнд, такие, чтони один из них не входит в отношение, являющееся вторымоперандом.16.09.2008С.Д.
Кузнецов. Базы данных.43 Понятие модели даНеформальное введение в реляционную модель данных (12)Манипулирование реляционными данными (5)При выполнении декартова произведения (TIMES) двухотношений, пересечение заголовков которых пусто,производится отношение, кортежи которого производятсяпутем объединения кортежей первого и второго операндов.Операция переименования (RENAME) производитотношение, тело которого совпадает с телом операнда, ноимена атрибутов изменены; эта операция позволяет выполнять первые три операции надотношениями с «почти» совпадающими заголовками(совпадающими во всем, кроме имен атрибутов) и выполнятьоперацию TIMES над отношениями, пересечение заголовковкоторых не является пустым.16.09.2008С.Д. Кузнецов. Базы данных.44 Понятие модели даНеформальное введение в реляционную модель данных (13)Манипулирование реляционными данными (6)Результатом ограничения (WHERE) отношения понекоторому условию является отношение, включающеекортежи отношения-операнда, удовлетворяющее этомуусловию.При выполнении проекции (PROJECT) отношения назаданное подмножество множества его атрибутовпроизводится отношение, кортежи которого являютсясоответствующими подмножествами кортежей отношенияоперанда.При Θ-соединении (Θ-JOIN) двух отношений по некоторомуусловию (Θ) образуется результирующее отношение,кортежи производятся путем объединения кортежей первогои второго отношений и удовлетворяют этому условию.16.09.2008С.Д.
Кузнецов. Базы данных.45 Понятие модели даНеформальное введение в реляционную модель данных (14)Манипулирование реляционными данными (7)У операции реляционного деления (DIVIDE BY)два операнда – бинарное и унарное отношения.Результирующее отношение состоит из унарныхкортежей, включающих значения первого атрибутакортежей первого операнда таких, что множествозначений второго атрибута (при фиксированномзначении первого атрибута) включает множествозначений второго операнда.Операция присваивания (:=) позволяетсохранить результат вычисления реляционноговыражения в существующем отношении БД.16.09.2008С.Д. Кузнецов.
Базы данных.46 Понятие модели даНеформальное введение в реляционную модель данных (15)Целостность в реляционной модели данных (1)Кодд предложил два декларативныхмеханизма поддержки целостностиреляционных баз данных, которыезатвержены в реляционной моделиданных и должны поддерживаться влюбой реализующей ее СУБД:ограничение целостности сущности, илиограничение первичного ключа иограничение ссылочной целостности, илиограничение внешнего ключа.16.09.2008С.Д. Кузнецов.
Базы данных.47 Понятие модели даНеформальное введение в реляционную модель данных (16)Целостность в реляционной модели данных (2)Ограничение целостности сущности звучит следующимобразом: для заголовка любого отношения базы данныхдолжен быть явно или неявно определен первичный ключ,являющийся таким минимальным подмножеством заголовкаотношения, что в любом теле этого отношения, котороеможет появиться в базе данных, значение первичного ключав любом кортеже этого тела является уникальным, т.е.отличается от значения первичного ключа в любом другомкортеже.Под минимальностью первичного ключа понимается то, чтоесли из множества атрибутов первичного ключа удалитьхотя бы один атрибут, то ограничение целостностиизменится, т.е. в БД смогут появляться тела отношений,которые не допускались исходным первичным ключом.16.09.2008С.Д.
Кузнецов. Базы данных.48 Понятие модели даНеформальное введение в реляционную модель данных (17)Целостность в реляционной модели данных (3)Если первичный ключ не объявляется явно, то вкачестве первичного ключа отношенияпринимается весь его заголовок.Поскольку по определению любое телоотношения с заданным заголовком являетсямножеством, следовательно, в нем отсутствуютдубликаты, и первичный ключ, совпадающий сзаголовком отношения, всегда обладаетсвойством уникальности.Должно быть понятно, что в этом случаеопределение первичного ключа не задаетникакого ограничения целостности.16.09.2008С.Д. Кузнецов. Базы данных.49 Понятие модели даНеформальное введение в реляционную модель данных (18)Целостность в реляционной модели данных (4)Чтобы пояснить смысл ограничения ссылочнойцелостности, нужно сначала ввести понятие внешнегоключа.В принципе при использовании реляционной модели данныхможно хранить все данные, соответствующие предметнойобласти в одной таблице.Такой подход приводит к избыточности хранения (данные оботделе повторяются в каждой записи о служащем этогоотдела) и усложняет выполнения некоторых операций.16.09.2008С.Д.